Reasons to revamp (rewrite?) wiki parser
- Alternate content by media
- Override default params for plugins
- Preview wiki page is not identical to saved wiki page
- Preview mode not parsing wiki syntax correctly
- Ease WYSIWYG support
- Character substitutions
-
To have a good handling of plugins within plugins (right now, there can be unwanted results)This is pretty much solved as Wiki Plugins were revamped - Plugin parsing breaks when nested more than 7 times
- plugin edit
- False edit buttons (when plugin within plugin) with edit plugin interface
- profiles can't read a plugin edited by plugin editor
- not possible to do good wiki filter
- Easier to support alternate syntax
- The actual parser is hard to maintain and extend. A new and better organized parser would make easier to create new syntax and would make harder to introduce parser regression bugs when we need to change it (like happened from 2.0 to 3.0)
- Permit to detect, log and report when plugins are used.
- better for backlinks
- Report on how many times a plugin is used
- Permit to alert site admin that a plugin should be turned on
- Task/action markup for meeting notes and plans (like Twiki Action Tracker Plugin)
- fix/avoid various bugs
- Blacklist domains and words
-
Include plugin: direct link to create/edit included page, and send back to initial page after editdone - WikiBlame and WikiTrust
- Check & report broken links
- Signature
- text annotations (select a snippet, and add a signed/dated text note)
- Extra fields for wiki pages
- Indent Syntax like MedaWiki with leading colon (“:â€)
- wiki_edit_plugin changes the syntax and can't be used for profiles.tikiwiki.org
- Email-style wiki parsing, for webmail and for copy-paste of email conversation in a wiki page
- Linebreak idea: End a line with two spaces to add a <br/> linebreak:
New Ideas
- Recent work with Jison has proven very stable and would work great at creating a Javascript parser for GUI if ever needed.
- The same parser from Jison could be used to create a php version of the same parse
Idea on how we could test for wiki parser regressions
From one Tiki version to another, there can be some slight changes in behavior. So a syntax used in Tiki3 will have a slightly different output in Tiki9. Sometimes, this is intentional, sometimes it is not. Ideally, we would have a systematic way to test and find this, using real World data.
- Export HTML version of all wiki pages from *.tiki.org
- Upgrade to next version of Tiki
- Export HTML version of all wiki pages of the same site
- Compare the two and analyze the differences
The same idea could be used to compare the current parser with the Jison Parser
CommonMark
Markdown
Markdown Extra
- https://michelf.ca/projects/php-markdown/extra/
- https://packagist.org/packages/erusev/parsedown-extra
- https://packagist.org/packages/michelf/php-markdown
Asciidoctor
http://opensource.com/life/15/10/asciidoc
http://php.net/manual/en/intro.v8js.php
reStructuredText
Related links
- PHP in Browser, powered by WebAssembly
- http://upndown.netgusto.com/
- https://packagist.org/packages/doctrine/lexer
- improved URL Auto-linking in Horde
- http://www.wikisym.org/ws2011/_media/proceedings:p72-dohrn.pdf
- http://www.xwiki.org/xwiki/bin/view/XWiki/XWikiSyntax
- http://wiki.eclipse.org/Mylyn/Incubator/WikiText
- Online Publishing House - Output formats
- blog post about using Asciidoc(tor) for tehnical writing
- https://github.com/s9e/TextFormatter/blob/master/README.md
- http://sourceforge.net/blog/introducing-sourceforges-new-markdown-text-editor/
- https://github.com/ziadoz/awesome-php/blob/master/README.md#markup
- https://en.m.wikipedia.org/wiki/Comparison_of_document_markup_languages
- https://medium.com/content-uneditable/a-standard-for-rich-text-data-4b3a507af552
- https://github.com/igniterealtime/Pade/issues/79