aboutsummaryrefslogtreecommitdiff
path: root/node_modules/markdown-it/README.md
diff options
context:
space:
mode:
authorruki <waruqi@gmail.com>2018-11-08 00:38:48 +0800
committerruki <waruqi@gmail.com>2018-11-07 21:53:09 +0800
commit26105034da4fcce7ac883c899d781f016559310d (patch)
treec459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/markdown-it/README.md
parent2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff)
downloadxmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz
xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip
switch to vuepress
Diffstat (limited to 'node_modules/markdown-it/README.md')
-rw-r--r--node_modules/markdown-it/README.md294
1 files changed, 294 insertions, 0 deletions
diff --git a/node_modules/markdown-it/README.md b/node_modules/markdown-it/README.md
new file mode 100644
index 00000000..bce39309
--- /dev/null
+++ b/node_modules/markdown-it/README.md
@@ -0,0 +1,294 @@
+# markdown-it
+
+[![Build Status](https://img.shields.io/travis/markdown-it/markdown-it/master.svg?style=flat)](https://travis-ci.org/markdown-it/markdown-it)
+[![NPM version](https://img.shields.io/npm/v/markdown-it.svg?style=flat)](https://www.npmjs.org/package/markdown-it)
+[![Coverage Status](https://coveralls.io/repos/markdown-it/markdown-it/badge.svg?branch=master&service=github)](https://coveralls.io/github/markdown-it/markdown-it?branch=master)
+[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/markdown-it/markdown-it)
+
+> Markdown parser done right. Fast and easy to extend.
+
+__[Live demo](https://markdown-it.github.io)__
+
+- Follows the __[CommonMark spec](http://spec.commonmark.org/)__ + adds syntax extensions & sugar (URL autolinking, typographer).
+- Configurable syntax! You can add new rules and even replace existing ones.
+- High speed.
+- [Safe](https://github.com/markdown-it/markdown-it/tree/master/docs/security.md) by default.
+- Community-written __[plugins](https://www.npmjs.org/browse/keyword/markdown-it-plugin)__ and [other packages](https://www.npmjs.org/browse/keyword/markdown-it) on npm.
+
+__Table of content__
+
+- [Install](#install)
+- [Usage examples](#usage-examples)
+- [API](#api)
+- [Syntax extensions](#syntax-extensions)
+- [Benchmark](#benchmark)
+- [Authors](#authors)
+- [References / Thanks](#references--thanks)
+- [License](#license)
+
+## Install
+
+**node.js** & **bower**:
+
+```bash
+npm install markdown-it --save
+bower install markdown-it --save
+```
+
+**browser (CDN):**
+
+- [jsDeliver CDN](http://www.jsdelivr.com/#!markdown-it "jsDelivr CDN")
+- [cdnjs.com CDN](https://cdnjs.com/libraries/markdown-it "cdnjs.com")
+
+
+## Usage examples
+
+See also:
+
+- __[API documentation](https://markdown-it.github.io/markdown-it/)__ - for more
+ info and examples.
+- [Development info](https://github.com/markdown-it/markdown-it/tree/master/docs) -
+ for plugins writers.
+
+
+### Simple
+
+```js
+// node.js, "classic" way:
+var MarkdownIt = require('markdown-it'),
+ md = new MarkdownIt();
+var result = md.render('# markdown-it rulezz!');
+
+// node.js, the same, but with sugar:
+var md = require('markdown-it')();
+var result = md.render('# markdown-it rulezz!');
+
+// browser without AMD, added to "window" on script load
+// Note, there is no dash in "markdownit".
+var md = window.markdownit();
+var result = md.render('# markdown-it rulezz!');
+```
+
+Single line rendering, without paragraph wrap:
+
+```js
+var md = require('markdown-it')();
+var result = md.renderInline('__markdown-it__ rulezz!');
+```
+
+
+### Init with presets and options
+
+(*) presets define combinations of active rules and options. Can be
+`"commonmark"`, `"zero"` or `"default"` (if skipped). See
+[API docs](https://markdown-it.github.io/markdown-it/#MarkdownIt.new) for more details.
+
+```js
+// commonmark mode
+var md = require('markdown-it')('commonmark');
+
+// default mode
+var md = require('markdown-it')();
+
+// enable everything
+var md = require('markdown-it')({
+ html: true,
+ linkify: true,
+ typographer: true
+});
+
+// full options list (defaults)
+var md = require('markdown-it')({
+ html: false, // Enable HTML tags in source
+ xhtmlOut: false, // Use '/' to close single tags (<br />).
+ // This is only for full CommonMark compatibility.
+ breaks: false, // Convert '\n' in paragraphs into <br>
+ langPrefix: 'language-', // CSS language prefix for fenced blocks. Can be
+ // useful for external highlighters.
+ linkify: false, // Autoconvert URL-like text to links
+
+ // Enable some language-neutral replacement + quotes beautification
+ typographer: false,
+
+ // Double + single quotes replacement pairs, when typographer enabled,
+ // and smartquotes on. Could be either a String or an Array.
+ //
+ // For example, you can use '«»„“' for Russian, '„“‚‘' for German,
+ // and ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] for French (including nbsp).
+ quotes: '“”‘’',
+
+ // Highlighter function. Should return escaped HTML,
+ // or '' if the source string is not changed and should be escaped externally.
+ // If result starts with <pre... internal wrapper is skipped.
+ highlight: function (/*str, lang*/) { return ''; }
+});
+```
+
+### Plugins load
+
+```js
+var md = require('markdown-it')()
+ .use(plugin1)
+ .use(plugin2, opts, ...)
+ .use(plugin3);
+```
+
+
+### Syntax highlighting
+
+Apply syntax highlighting to fenced code blocks with the `highlight` option:
+
+```js
+var hljs = require('highlight.js'); // https://highlightjs.org/
+
+// Actual default values
+var md = require('markdown-it')({
+ highlight: function (str, lang) {
+ if (lang && hljs.getLanguage(lang)) {
+ try {
+ return hljs.highlight(lang, str).value;
+ } catch (__) {}
+ }
+
+ return ''; // use external default escaping
+ }
+});
+```
+
+Or with full wrapper override (if you need assign class to `<pre>`):
+
+```js
+var hljs = require('highlight.js'); // https://highlightjs.org/
+
+// Actual default values
+var md = require('markdown-it')({
+ highlight: function (str, lang) {
+ if (lang && hljs.getLanguage(lang)) {
+ try {
+ return '<pre class="hljs"><code>' +
+ hljs.highlight(lang, str, true).value +
+ '</code></pre>';
+ } catch (__) {}
+ }
+
+ return '<pre class="hljs"><code>' + md.utils.escapeHtml(str) + '</code></pre>';
+ }
+});
+```
+
+### Linkify
+
+`linkify: true` uses [linkify-it](https://github.com/markdown-it/linkify-it). To
+configure linkify-it, access the linkify instance through `md.linkify`:
+
+```js
+md.linkify.tlds('.py', false); // disables .py as top level domain
+```
+
+
+## API
+
+__[API documentation](https://markdown-it.github.io/markdown-it/)__
+
+If you are going to write plugins - take a look at
+[Development info](https://github.com/markdown-it/markdown-it/tree/master/docs).
+
+
+## Syntax extensions
+
+Embedded (enabled by default):
+
+- [Tables](https://help.github.com/articles/organizing-information-with-tables/) (GFM)
+- [Strikethrough](https://help.github.com/articles/basic-writing-and-formatting-syntax/#styling-text) (GFM)
+
+Via plugins:
+
+- [subscript](https://github.com/markdown-it/markdown-it-sub)
+- [superscript](https://github.com/markdown-it/markdown-it-sup)
+- [footnote](https://github.com/markdown-it/markdown-it-footnote)
+- [definition list](https://github.com/markdown-it/markdown-it-deflist)
+- [abbreviation](https://github.com/markdown-it/markdown-it-abbr)
+- [emoji](https://github.com/markdown-it/markdown-it-emoji)
+- [custom container](https://github.com/markdown-it/markdown-it-container)
+- [insert](https://github.com/markdown-it/markdown-it-ins)
+- [mark](https://github.com/markdown-it/markdown-it-mark)
+- ... and [others](https://www.npmjs.org/browse/keyword/markdown-it-plugin)
+
+
+### Manage rules
+
+By default all rules are enabled, but can be restricted by options. On plugin
+load all its rules are enabled automatically.
+
+```js
+// Activate/deactivate rules, with curring
+var md = require('markdown-it')()
+ .disable([ 'link', 'image' ])
+ .enable([ 'link' ])
+ .enable('image');
+
+// Enable everything
+md = require('markdown-it')({
+ html: true,
+ linkify: true,
+ typographer: true,
+});
+```
+
+
+## Benchmark
+
+Here is the result of readme parse at MB Pro Retina 2013 (2.4 GHz):
+
+```bash
+make benchmark-deps
+benchmark/benchmark.js readme
+
+Selected samples: (1 of 28)
+ > README
+
+Sample: README.md (7774 bytes)
+ > commonmark-reference x 1,222 ops/sec ±0.96% (97 runs sampled)
+ > current x 743 ops/sec ±0.84% (97 runs sampled)
+ > current-commonmark x 1,568 ops/sec ±0.84% (98 runs sampled)
+ > marked x 1,587 ops/sec ±4.31% (93 runs sampled)
+```
+
+__Note.__ CommonMark version runs with [simplified link normalizers](https://github.com/markdown-it/markdown-it/blob/master/benchmark/implementations/current-commonmark/index.js)
+for more "honest" compare. Difference is ~ 1.5x.
+
+As you can see, `markdown-it` doesn't pay with speed for it's flexibility.
+Slowdown of "full" version caused by additional features not available in
+other implementations.
+
+
+## Authors
+
+- Alex Kocharin [github/rlidwka](https://github.com/rlidwka)
+- Vitaly Puzrin [github/puzrin](https://github.com/puzrin)
+
+_markdown-it_ is the result of the decision of the authors who contributed to
+99% of the _Remarkable_ code to move to a project with the same authorship but
+new leadership (Vitaly and Alex). It's not a fork.
+
+## References / Thanks
+
+Big thanks to [John MacFarlane](https://github.com/jgm) for his work on the
+CommonMark spec and reference implementations. His work saved us a lot of time
+during this project's development.
+
+**Related Links:**
+
+- https://github.com/jgm/CommonMark - reference CommonMark implementations in C & JS,
+ also contains latest spec & online demo.
+- http://talk.commonmark.org - CommonMark forum, good place to collaborate
+ developers' efforts.
+
+**Ports**
+
+- [motion-markdown-it](https://github.com/digitalmoksha/motion-markdown-it) - Ruby/RubyMotion
+
+
+## License
+
+[MIT](https://github.com/markdown-it/markdown-it/blob/master/LICENSE)