TiddlyWiki5/plugins/tiddlywiki/markdown
cdruan 0c328a1696
Revamp markdown plugin (#6528)
* Rename markdown to markdown-legacy

* Change how default renderWikiTextPragma value is displayed

To prevent out-of-sync, dynamically display the default value of
renderWikiTextPragma from the shadow tiddler instead of hard coding
the text in the "usage.tid".

* Repackage remarkable-based markdown plugin as markdown-legacy

- Rename plugin title to $:/plugins/tiddlywiki/markdown-legacy

- Add support for "text/markdown" MIME type and set that as the default
  when creating new markdown tiddlers

* Create new markdown plugin

* add support to text/markdown MIME type

* remove linkify and linkNewWindow config options

- linkify feature should be controlled by "extlink" TW parser rule;
  enabling markdown's linkify option will interfere with parsing

- remove the possibility to open external links in the same tab/window
  to match TW's behavior

* Ignore latex-parser wikirule in rednerWikiTextPragma

* Prevent camel-case link text from generating a link

* Update editions/markdowndemo

* Produce better parse tree

* Improve markdown/tiddlywiki integration

- widget block should not interrupt paragraph
- ignore tw-syntax links inside markdown-syntax links
- remove repeated renderWikiTextPragma parsing
- more efficient findNextMatch when examining tw rules

* Update user docs

* Replace includes() with indexOf() for legacy browsers
2023-01-14 09:49:04 +00:00
..
EditorToolbar Revamp markdown plugin (#6528) 2023-01-14 09:49:04 +00:00
KeyboardShortcuts Revamp markdown plugin (#6528) 2023-01-14 09:49:04 +00:00
editor-operations Revamp markdown plugin (#6528) 2023-01-14 09:49:04 +00:00
files Revamp markdown plugin (#6528) 2023-01-14 09:49:04 +00:00
images Markdown: Add separate link and linkify buttons (#6693) 2022-05-15 18:47:21 +02:00
config.multids Revamp markdown plugin (#6528) 2023-01-14 09:49:04 +00:00
config.tid Revamp markdown plugin (#6528) 2023-01-14 09:49:04 +00:00
docs_type_markdown.tid Revamp markdown plugin (#6528) 2023-01-14 09:49:04 +00:00
markdown-it-katex.js Revamp markdown plugin (#6528) 2023-01-14 09:49:04 +00:00
markdown-it-tiddlywiki.js Revamp markdown plugin (#6528) 2023-01-14 09:49:04 +00:00
new-markdown.tid Revamp markdown plugin (#6528) 2023-01-14 09:49:04 +00:00
plugin.info Revamp markdown plugin (#6528) 2023-01-14 09:49:04 +00:00
readme.tid Revamp markdown plugin (#6528) 2023-01-14 09:49:04 +00:00
styles.tid Revamp markdown plugin (#6528) 2023-01-14 09:49:04 +00:00
syntax.tid Revamp markdown plugin (#6528) 2023-01-14 09:49:04 +00:00
wrapper.js Revamp markdown plugin (#6528) 2023-01-14 09:49:04 +00:00

readme.tid

title: $:/plugins/tiddlywiki/markdown/readme

This plugin provides Markdown support via the [[markdown-it|https://github.com/markdown-it/markdown-it]] parser and its associated plugins:

* markdown-it-deflist
* markdown-it-footnote
* markdown-it-ins
* markdown-it-mark
* markdown-it-sub
* markdown-it-sup

!! Compatibility Notes

* <p>A tab character in Markdown has a size of four spaces. Configure the tab size of your code editor accordingly. For example, if you use <$text text="CodeMirror"/>, it is recommended that you set $:/config/codemirror/indentUnit and $:/config/codemirror/tabSize to `4` to avoid inconsistent indentations.</p>
* <p>HTML blocks are ultimately parsed by the <$text text=WikiText/> parser: //an opening tag followed by a blank line will activate block-level parsing for its content//. When working with tags designed to contain literal content, such as `<pre>` and `<style>` tags, refrain from adding blank lines after the opening tags.</p>
* <p>You must terminate a table with either a blank line or another block-level structure.</p>
* <p>`latex-parser` in $:/config/markdown/renderWikiTextPragma is no longer required and will be ignored.</p>
* <p>Config option `linkNewWindow` is removed.</p>

!! Extending the Parser

You can extend the parser by loading additional markdown-it plugins this way:

```js
var plugin1 = require(...);
var plugin2 = require(...);

var md = $tw.Wiki.parsers["text/markdown"].prototype.md;

md.use(plugin1)
  .use(plugin2, opts, ...);
```