diff --git a/tzk/builders.py b/tzk/builders.py index 860fed0..93b30f5 100644 --- a/tzk/builders.py +++ b/tzk/builders.py @@ -360,7 +360,7 @@ def _private_people_replacement_table( @tzk_builder -def replace_private_people(initialer: Callable[[str], str] = None, replace_text = False) -> None: +def replace_private_people(initialer: Callable[[str], str] = None, replace_link_text = False) -> None: """ Replace the names of people who are not marked Public with their initials. @@ -378,16 +378,26 @@ def replace_private_people(initialer: Callable[[str], str] = None, replace_text (e.g., MsJaneDoe becomes J.D.). The links point to the tiddler ``PrivatePerson``, which explains this process. - :param initialer: If you don't like the way that initials - are generated from tiddler filenames by default, - you can customize it by passing a callable - that takes one string argument - (a tiddler filename without the full path, e.g., ``MsJaneDoe.tid``) - and returns a string to be considered the "initials" of that person. + :param initialer: If you don't like the way that initials + are generated from tiddler filenames by default, + you can customize it by passing a callable + that takes one string argument + (a tiddler filename without the full path, e.g., ``MsJaneDoe.tid``) + and returns a string to be considered the "initials" of that person. - :param replace_text: If you have links in the form ``[[John|MrJohnDoe]]``, then enabling - this option ensures that the link text `John` is also replaced with - the initials. + :param replace_link_text: If you have links in the form + ``So then [[John said|MrJohnDoe]] something about this``, + then enabling this option ensures that the link is fully + replaced with + ``So then [[J.D.|PrivatePerson]] something about this``. + This means that when using this feature, having the + link text also be meaningful after redaction is important. + + .. warning :: + Using this link replacement feature does not redact everything, just the link + (and the link text with `replace_link_text` enabled). So *do not* rely on it + for redacting everything. Making a tiddler public still needs consideration and + tooling is there to help, not to replace your own judgment. """ assert 'public_wiki_folder' in build_state @@ -405,7 +415,7 @@ def replace_private_people(initialer: Callable[[str], str] = None, replace_text if '|' + replace_person + ']]' in lines[i]: # link with the person as the target only; # beware that you might have put something private in the text - if replace_text: + if replace_link_text: # with this option, the initials are also # put in the text, solving the warning before end = lines[i].find('|' + replace_person + ']]') @@ -415,8 +425,8 @@ def replace_private_people(initialer: Callable[[str], str] = None, replace_text lines[i] = lines[i].replace(search, replace) else: - lines[i] = line.replace(replace_person, 'PrivatePerson') - elif '[[' + replace_person + ']]' in line: + lines[i] = lines[i].replace(replace_person, 'PrivatePerson') + elif '[[' + replace_person + ']]' in lines[i]: # link with the person as the target and text lines[i] = lines[i].replace( replace_person,