Skip to content

docschina/markdown-it-docs

This branch is 13 commits ahead of LinFeng1997/markdown-it-docs:cn.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2d0329e · Jan 23, 2024

History

19 Commits
Jan 23, 2024
Feb 3, 2021
Oct 13, 2018
Apr 10, 2019
Mar 6, 2021
Oct 6, 2018
Oct 13, 2018
Oct 13, 2018
Mar 6, 2021
Apr 10, 2019
Oct 13, 2018
Oct 13, 2018
Apr 10, 2019

Repository files navigation

markdown-it

安装

node.js & bower:

npm install markdown-it --save
bower install markdown-it --save

browser (CDN):

用法示例

参考:

简单用法

// node.js, 用“类”的方式:
var MarkdownIt = require('markdown-it'),
    md = new MarkdownIt();
var result = md.render('# markdown-it rulezz!');

// 还是 node.js, 但使用更爽的方式:
var md = require('markdown-it')();
var result = md.render('# markdown-it rulezz!');

// 没有 AMD 的浏览器环境,在 js 脚本加载时才添加到“window”
// 注意,“markdownit” 中没有破折号。
var md = window.markdownit();
var result = md.render('# markdown-it rulezz!');

单行渲染,不进行段落换行:

var md = require('markdown-it')();
var result = md.renderInline('__markdown-it__ rulezz!');

带有预设和选项的初始化

预设(preset)定义了激活的规则以及选项的组合。可以是 "commonmark""zero" 或者 "default" (如果省略的话)。

// commonmark 模式
var md = require('markdown-it')('commonmark');

// default 模式
var md = require('markdown-it')();

// 启用所有
var md = require('markdown-it')({
  html: true,
  linkify: true,
  typographer: true
});

// 所有的选项列表(默认情况下)
var md = require('markdown-it')({
  html:         false,        // 在源码中启用 HTML 标签
  xhtmlOut:     false,        // 使用 '/' 来闭合单标签 (比如 <br />)。
                              // 这个选项只对完全的 CommonMark 模式兼容。
  breaks:       false,        // 转换段落里的 '\n' 到 <br>。
  langPrefix:   'language-',  // 给围栏代码块的 CSS 语言前缀。对于额外的高亮代码非常有用。
  linkify:      false,        // 将类似 URL 的文本自动转换为链接。

  // 启用一些语言中立的替换 + 引号美化
  typographer:  false,

  // 双 + 单引号替换对,当 typographer 启用时。
  // 或者智能引号等,可以是 String 或 Array。
  //
  // 比方说,你可以支持 '«»„“' 给俄罗斯人使用, '„“‚‘'  给德国人使用。
  // 还有 ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] 给法国人使用(包括 nbsp)。
  quotes: '“”‘’',

  // 高亮函数,会返回转义的HTML。
  // 或 '' 如果源字符串未更改,则应在外部进行转义。
  // 如果结果以 <pre ... 开头,内部包装器则会跳过。
  highlight: function (/*str, lang*/) { return ''; }
});

插件加载

var md = require('markdown-it')()
            .use(plugin1)
            .use(plugin2, opts, ...)
            .use(plugin3);

语法高亮

使用 highlight 选项给围栏代码块应用语法高亮功能:

var hljs = require('highlight.js'); // https://highlightjs.org/

// 通常的默认值们
var md = require('markdown-it')({
  highlight: function (str, lang) {
    if (lang && hljs.getLanguage(lang)) {
      try {
        return hljs.highlight(lang, str).value;
      } catch (__) {}
    }

    return ''; // 使用额外的默认转义
  }
});

或者使用完全的包裹器覆盖(如果你需要复制 class 到 <pre>):

var hljs = require('highlight.js'); // https://highlightjs.org/

// 通常的默认值们
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 使用 linkify-it。配置 linkify-it,通过 md.linkify 访问 linkify 实例:

md.linkify.tlds('.py', false);  // 禁用 .py 作为顶级域

语法拓展

内嵌的(默认启用):

通过插件:

管理规则

默认情况下,所有规则都已经启用,但可以通过选项进行限制。在插件上加载其所有规则都会自动启用。

// 当前激活/禁用的规则
var md = require('markdown-it')()
            .disable([ 'link', 'image' ])
            .enable([ 'link' ])
            .enable('image');

// 启用所有
md = require('markdown-it')({
  html: true,
  linkify: true,
  typographer: true,
});

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 89.3%
  • Shell 10.7%