===== markdowku Plugin ====== ---- plugin ---- description: Integrates Markdown into DokuWiki syntax author : Julian Fagir, Raphael Wimmer (maintainer) email : raphael.wimmer@ur.de type : Syntax lastupdate : 2021-12-04 compatible : !Greebo, Hogfather, Igor depends : conflicts : similar : mediasyntax, creole, markdown, markdownextra tags : formatting, markdown, markup_language downloadurl: https://github.com/Medieninformatik-Regensburg/dokuwiki-plugin-markdowku/archive/refs/heads/master.zip bugtracker : https://github.com/Medieninformatik-Regensburg/dokuwiki-plugin-markdowku/issues/ sourcerepo : https://github.com/Medieninformatik-Regensburg/dokuwiki-plugin-markdowku/ ---- ===== Installation ===== Search and install the plugin using the [[plugin:extension|Extension Manager]]. Refer to [[:Plugins]] on how to install plugins manually. ==== Greebo ==== The version linked above is only compatible with DokuWiki versions Hogfather and later. If you are still running **Greebo**, please use [[https://github.com/Medieninformatik-Regensburg/dokuwiki-plugin-markdowku/archive/Greebo.zip|this version]] of the plugin. ===== Examples/Usage ===== This plugin will go before the overlapping DokuWiki syntax definitions and overrule them with Markdown specifications. For patterns that are not part of Markdown, you can still use DokuWiki, e.g. you're still able to use DokuWiki tables. ===== Syntax ===== This plugins tries to resemble Markdown as closely as possible and does not extend it. It is a best-effort implementation - I didn't try to match the Markdown test suite, but rather provide a look-alike handler for Markdown syntax, as Markdown itself is somewhat underspecified. You'll find the [[http://daringfireball.net/projects/markdown/basics|basic description]] on the [[http://daringfireball.net/|website]] of the Markdown author, as well as a [[http://daringfireball.net/projects/markdown/syntax|deeper description]] of the syntax. If you encounter any incompatibilities in this version, feel free to add them here or report them. ==== Known incompatibilities ==== Due to the inner working of Markdown and DokuWiki, there are things which currently cannot be done with this plugin. All in all, this plugin is complete. Just when it comes to nesting things, i.e. putting things into each other, this plugin doesn't handle lists and blockquotes well. This should be a complete list of current general incompatibilities. Everything else is a bug: * nested in blockquotes: * codeblocks * paragraph handling * lists * multiline reflinks/refimages * nested in lists: * codeblocks * quotes * multiline reflinks/refimages * ATX headers * Setext headers * horizontal rulers * codespans with more than five backticks (most probably never used) * using underscores to make text bold. Double underline is already used by DokuWiki for underlining text (Markdown can't do that), and I think it's better to have the option for underlining. In general notation, you also rather use underscores for underlining than making text bold. * conflict with [[https://www.dokuwiki.org/template:bootstrap3|bootstraps3 theme]] in bulleted lists === Why no nested content in lists? === From [[https://web.archive.org/web/20160825201421/http://www.komkon2.de/dokuwiki/doku.php?id=projects:markdowku|the old project page]]: The reason behind these incompatibilities are conceptual differences between Markdown's and Dokuwiki's inner workings. Markdown takes a text as a whole and transforms it into HTML. On the way, it will re-parse blocks (i.e. lists or blockquotes), treating them as if they were standing on their own. Here is an example for this: > # Blabla > Blabla Markdown would see that there's a comment, and then reparse the whole thing with the comment brackets removed, but nested inside the comment, i.e. it would reparse # Blabla Blabla and finally produce a blockquote with a headline in it. Dokuwiki, on the other hand, uses a lexer you can pass tokens (regexes) to be matched. Visually spoken this means that Dokuwiki parses text only sequentially, while Markdown parses text also “vertically”. Overcoming this is difficult and the main reason that nesting is not yet implemented for most formatting. ===== Development ===== === Version History === **Please note that this plugin is not actively developed at the moment.!** Markdowku was initially developed by Julian Fagir. Raphael Wimmer just made the plugin ready for Hogfather and moved the repository to GitHub. Contributions welcome. ** Seems to work on Jack Jackrum release (as of 2023-07-21). An extra newline in between bullet points is all I note that is finicky compared to normal markdown (where lines can be right after one another and render proper markdown.) === Bugs/Issues === Please [[https://github.com/Medieninformatik-Regensburg/dokuwiki-plugin-markdowku/issues/|submit an issue on GitHub]]. There are still some issues in the [[https://vcs.in-berlin.de/schrank21_dokuwiki/reportlist|old bug tracker]]. === ToDo/Wish List === This plugin is not complete yet. Incompatibilities are listed above at [[#Known incompatibilities]]. Suggestions by the initial author: * In the end, I want to extend this plugin to be able to handle different markdown flavours (esp. Github), with a switch in the configuration to choose between those all. * A switch like will allow to avoid problems with existing native markup pages. (jseto) -- I'll see what is possible, but I think it will be difficult to implement that. (gnrp 13-09-23) * The plugin editor does not work together with markdown. Either have the possibility to disable it, or even better, make it work with Markdown (Celano 13-08-08, reformatted by gnrp 13-09-23) Further suggestions (dinobib 15-05-25) and other anonymous commenters: * Html doesn’t work but html is correct markdown and really useful for things markdown can’t do. Even the %%%% tags of DokuWiki doesn’t work either. I have allowed html in config options but the plugin just seems to ruin the page when it encounters any %%%%. FIXME * Second problem is that we use a lot the footnote syntax of markdown extra (a footnote syntax %%[^1]%% which become near a standard in markdown tools) [[https://michelf.ca/projects/php-markdown/extra/#footnotes|https://michelf.ca/projects/php-markdown/extra/#footnotes]]. This addition would be very nice. * Reference-style links from classic markdown doesn’t works. [[http://daringfireball.net/projects/markdown/syntax#link|http://daringfireball.net/projects/markdown/syntax#link]] * It would be nice if Commonmark would be supported! ===== FAQ ===== === There are already two Markdown plugins, why do you write a third one? === Prior plugins ([[mdpage]]((last update: 2021)), [[markdown]]((last update: 2006)), [[markdownextra]]((last update: 2016))) work completely different. They just create a large container (either defined by '''' tags or a .md file ending) and parse everything inside them as Markdown. This plugin adds Markdown to the DokuWiki syntax, i.e. it still uses DokuWiki definitions for lists, headers, etc. Thus, markdowku enables you to use internal links, mix Markdown with other plugins and other syntaxes and have clean section headers and media embedding. ===== Discussion ===== ==== Plugin abandoned? ==== --- [[user>digineut|digineut]] //2018-12-15 17:03// According to the Internet Archive, the author's dokuwiki was [[https://web.archive.org/web/20160825202226/http://www.komkon2.de/dokuwiki/doku.php?id=start|last seen in 2016]]. My guess is that he is no longer using it and the plugin is abandoned. My suggestion is to ask his approval for creating a GitHub repo to continue development there. --- [[user>ismirnov|ismirnov]] //2020-06-04 17:03// I have filed an [[https://vcs.in-berlin.de/schrank21_dokuwiki/artifact/19d2e45ef8f5070e|issue]] documenting the breaking changes in Hogfather, but nor response. The [[https://vcs.in-berlin.de/schrank21_dokuwiki/artifact/19d2e45ef8f5070e|License]] is not very forking friendly, but perhaps we can do a GPL/MIT rewrite. --- [[user>raphman|raphman]] //2020-06-06 00:46// I have fixed the plugin, contacted the original author, and taken over maintenance for now with his blessing. @ismirnov: The original license is the standard 2-clause BSD license, nothing special. [[https://github.com/Medieninformatik-Regensburg/dokuwiki-plugin-markdowku|Github Repo with Fork]] --- [[user>anon1|anon1]] //2024-02-03 00:00// Grateful for this markdown support. In `2023-04-04 "Jack Jackrum"` it appears to break the wiki:syntax special page a bit. So far I "fixed" my local local wiki:syntax page by (1) basically removing the section on "Windows Shares" and also (2) massively simplifying the section on "Quoting" in order to only demonstrate single-level quotes. Now my syntax page mostly renders fine, and markdowku can stay Enabled, hooray.