diff --git a/.ndocrc b/.ndocrc
index d3383e9..63918f5 100644
--- a/.ndocrc
+++ b/.ndocrc
@@ -4,10 +4,10 @@
--index "./support/api_header.md"
--package "./package.json"
---gh-ribbon "{package.homepage}"
+--gh-ribbon "https://github.com/{package.repository}"
--output "apidoc"
--render "html"
---link-format "{package.homepage}/blob/master/{file}#L{line}"
+--link-format "https://github.com/{package.repository}/blob/master/{file}#L{line}"
--broken-links "show"
diff --git a/Makefile b/Makefile
index 9f92ed9..db64b8b 100644
--- a/Makefile
+++ b/Makefile
@@ -53,13 +53,8 @@ report-coverage:
-istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage
doc:
- @if test ! `which ndoc` ; then \
- echo "You need 'ndoc' installed in order to generate docs." >&2 ; \
- echo " $ npm install -g ndoc" >&2 ; \
- exit 128 ; \
- fi
rm -rf ./apidoc
- ndoc --link-format "{package.homepage}/blob/${CURR_HEAD}/{file}#L{line}"
+ ndoc --link-format "https://github.com/{package.repository}/blob/${CURR_HEAD}/{file}#L{line}"
gh-doc: doc
touch ./apidoc/.nojekyll
diff --git a/package.json b/package.json
index c0d3e29..b474e30 100644
--- a/package.json
+++ b/package.json
@@ -9,7 +9,6 @@
"markdown-it",
"markdown-it-plugin"
],
- "homepage": "https://github.com/markdown-it/markdown-it",
"repository": "markdown-it/markdown-it",
"license": "MIT",
"main": "index.js",
@@ -59,6 +58,7 @@
"markdown-it-testgen": "~0.1.3",
"marked": "0.3.5",
"mocha": "*",
+ "ndoc": "^4.0.0",
"stylus": "~0.53.0",
"uglify-js": "*"
}
diff --git a/support/api_header.md b/support/api_header.md
index d813761..d261f32 100644
--- a/support/api_header.md
+++ b/support/api_header.md
@@ -1,67 +1,199 @@
-
-
+# markdown-it
-# markdown-it API
+## Install
-### Simple use
+**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:
+
+- [Development info](https://github.com/markdown-it/markdown-it/tree/master/docs) -
+ for plugins writers.
-In most cases you will use `markdown-it` in very simple way:
-```javascript
+### 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!');
+```
-var result = md.render('your_markdown_string');
+Single line rendering, without paragraph wrap:
-// Or for inline (without paragraths & blocks)
-var resultInline = md.renderInline('your_markdown_inline_string');
+```js
+var md = require('markdown-it')();
+var result = md.renderInline('__markdown-it__ rulezz!');
```
-### Advanced use
-Advanced use consist of this steps:
+### Init with presets and options
-1. Create instance with desired preset & options.
-2. Add plugins.
-3. Enable/Disable additional rules.
-4. Rewrite renderer functions.
-5. Use result to call `.render()` or `.renderInline()` method.
+(*) 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.
-Of cause, you can skip not needed steps, or change sequense.
+```js
+// commonmark mode
+var md = require('markdown-it')('commonmark');
+// default mode
+var md = require('markdown-it')();
-__Example 1.__ Minimalistic mode with bold, italic and line breaks:
+// 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 (
).
+ // This is only for full CommonMark compatibility.
+ breaks: false, // Convert '\n' in paragraphs into
+ 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 externaly.
+ // If result starts with
`): + +```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 ''; + } catch (__) {} + } + + return '' + + hljs.highlight(lang, str, true).value + + '
'; + } +}); +``` + +### Linkify -md.renderer.rules.strong_open = function () { return ''; }; -md.renderer.rules.strong_close = function () { return ''; }; +`linkify: true` uses [linkify-it](https://github.com/markdown-it/linkify-it). To +configure linkify-it, access the linkify instance through `md.linkify`: -var result = md.renderInline(...); +```js +md.linkify.tlds('.py', false); // disables .py as top level domain ``` +## Syntax extensions + +Embedded (enabled by default): + +- [Tables](https://help.github.com/articles/github-flavored-markdown/#tables) (GFM) +- [Strikethrough](https://help.github.com/articles/github-flavored-markdown/#strikethrough) (GFM) -See classes doc for all available features and more examples. +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')('full', { + html: true, + linkify: true, + typographer: true, +}); +```' + md.utils.escapeHtml(str) + '