User:PerfektesChaos/js/WikiSyntaxTextMod/flow

WikiSyntaxTextMod → Work flow

Survey on the general approach.

Procedure
Basically the script executes the major steps in the following sequence:
 * 1) single characters – will be standardized
 * 2) tag soup – stir well
 * 3) templates – analyze, adapt
 * 4) links – analyze, adapt
 * 5) protected regions – define, if necessary
 * 6) readability of syntax – to be improved
 * 7) localization – if not done already by previous steps
 * 8) syntax correction clears errors which can be fixed automatically or notifies on syntax errors, which are reconstructable unambiguously.
 * 9) Some minor issues will be solved, which might be visible to the reader of the article.

Now the actual standardization of wikisyntax is finished. This basic cleanup is performed automatically and with every execution.

Continuation
Next, some few typographic adjustments meaningful for all latin texts are imposed.

Later the user defined replacements for plain text are performed, if any. If user defined replacements are heading for link targets oder template transclusions, they have been executed already integrated into the respective step.

Efficient implementation
It is avoided to scan the entire text many times again and again by complex regular expressions matching every single syntax problem.

In fact, the searchable strings will be scanned exactly one time for occurring of a few terms and all issues related to this pattern. With each match the local environment of the spot is investigated and all related questions will be resolved.
 * First, the code value of any occurring character is inspected and might be transformed or prebooked for later syntax representation.
 * Then the text will be searched one time for the following strings:
 * – If it yields to be a Tag the appropriate action is taken:
 * A comment  will be subject to a user defined comment modification.
 * All comments will be protected against any later search attempt.
 * The inner syntax of the tag is formatted, corrected if required.
 * Related opening and closing tags will be identified, checked for correct nesting, some elements processed from opening until closing tag.
 * – template transclusions are analyzed regarding their extension.
 * Inner templates and links within this transclusion are processed.
 * User defined modifications as well as project specific standard templates are processed.
 * The name of the template might be protected against text changes.
 * – Possible links in brackets are detected (wikilink and URL), might be fixed, formatted, changed on user request, and protected against text changes if necessary.
 * – URL without brackets are treated as mentioned before.

&#91; German page &#93;