jmcmanus / pagedown-extra
这是一个Markdown Extra语法的Pagedown插件集合。打开demo/demo.html尝试使用。要运行测试,只需在浏览器中打开spec/SpecRunner.html。或者,要像travis-ci那样从命令行运行无浏览器测试,请运行bundle install,然后运行bund
This package is auto-updated.
Last update: 2024-01-16 05:23:51 UTC
README
#概述
这是一个Pagedown插件的集合,以支持Markdown Extra语法。打开demo/demo.html
自行尝试。要运行测试,只需在浏览器中打开spec/SpecRunner.html
。或者,要像travis-ci那样从命令行运行无浏览器测试,请先运行bundle install
,然后运行bundle exec rake
。如果您使用第二种方法,则需要Ruby和rake gem。
使用方法
首先,请确保您有最新版本的Pagedown(截至2013年2月3日),因为它增加了更多强大的钩子,这是此实现所依赖的。
为了使用扩展,您需要在Pagedown源代码后包含Markdown.Extra.js
。查看示例以获取工作示例。
// create a pagedown converter - regular and sanitized versions are both supported var converter = new Markdown.Converter(); // tell the converter to use Markdown Extra Markdown.Extra.init(converter); // convert some markdown var html = converter.makeHtml("| A | B |\n| :-: | :-: |\n| 1 | 2 |");
在Node.js中使用Pagedown
var pagedown = require("pagedown"); var converter = new pagedown.Converter(); var pagedownExtra = require("pagedown-extra"); pagedownExtra.init(converter);
如果您在同一个页面上使用多个转换器,您可以为每个转换器调用一次Markdown.Extra.init
,然后就可以设置了。
如果您愿意,可以选择只使用当前支持的扩展子集
Markdown.Extra.init(converter, {extensions: ["tables", "fenced_code_gfm", "def_list"]});
有关完整列表,请参阅下面的扩展/选项参考。
表格
以下markdown
| Item | Value | Qty | | --------- | -----:|:--: | | Computer | $1600 | 5 | | Phone | $12 | 12 | | Pipe | $1 |234 |
将根据您选择如何样式化而渲染成类似这样的内容
项目 | 价值 | 数量 |
---|---|---|
电脑 | $1600 | 5 |
电话 | $12 | 12 |
管道 | $1 | 234 |
您还可以为生成的表格指定一个类,例如使用Markdown.Extra.init(converter, {table_class: "table table-striped"})
。
表格单元格内的span级别的markdown也将被转换。
Fenced Code Blocks
支持GitHub风格的Fenced代码块。此markdown
```
var x = 2;
```
将转换成
<pre> <code>var x = 2;</code> </pre>
您可以在传递给Markdown.Extra.init
的选项对象中指定语法高亮器,以生成兼容google-code-prettify或Highlight.js的html。
// highlighter can be either `prettify` or `highlight` Markdown.Extra.init(converter, {highlighter: "prettify"});
如果指定了其中任何一个,语言类型将被添加到代码标签中,例如:<code class="language-javascript">
。如果没有指定,您将得到标准的 <code class="javascript">
,就像PHP Markdown Extra一样。如果指定了prettify
,则<pre>
也将变为<pre class="prettyprint">
。否则,标记与Pagedown生成的常规缩进代码块相同。例如,当使用上面显示的{highlighter: "prettify"}
时,这将
```javascript
var x = 2;
```
生成以下HTML
<pre class="prettyprint"> <code class="language-javascript">var x = 2;</code> </pre>
定义列表
Term 1
: Definition 1
Term 2
: This definition has a code block.
code block
变为
<dl> <dt>Term 1</dt> <dd> Definition 1 </dd> <dt>Term 2</dt> <dd> This definition has a code block. <pre><code>code block</code></pre> </dd> </dl>
定义列表可以包含内联和块级Markdown。
脚注
Here is a footnote[^footnote]. [^footnote]: Here is the *text* of the **footnote**.
变为
<p>Here is a footnote<a href="#fn:footnote" id="fnref:footnote" title="See footnote" class="footnote">1</a>.</p> <div class="footnotes"> <hr> <ol> <li id="fn:footnote">Here is the <em>text</em> of the <strong>footnote</strong>. <a href="#fnref:footnote" title="Return to article" class="reversefootnote">↩</a></li> </ol> </div>
特殊属性
您可以为标题和GFM围栏代码块添加类和id属性。
``` {#gfm-id .gfm-class}
var foo = bar;
```
## A Header {#header-id}
### Another One ### {#header-id .hclass}
Underlined {#what}
==========
SmartyPants
SmartyPants扩展将ASCII标点符号字符转换为“智能”印刷标点HTML实体。例如
ASCII | HTML | |
---|---|---|
单反引号 | 'Isn't this fun?' |
‘Isn’t this fun?’ |
引号 | "Isn't this fun?" |
“Isn’t this fun?” |
破折号 | This -- is an en-dash and this --- is an em-dash |
This – is an en-dash and this — is an em-dash |
换行
GitHub风格的换行(无需两个空格)
Roses are red Violets are blue
变为
<p>Roses are red <br> Violets are blue</p>
删除线
GitHub风格的删除线
~~Mistaken text.~~
变为
<p><del>Mistaken text.</del></p>
扩展/选项参考
您可以使用{extensions: "all"}
启用所有当前支持的扩展。这也是默认设置。如果指定多个扩展,您必须将它们作为数组提供。以下是当前和计划中的选项和扩展列表。我选择了与优秀的Python Markdown库相同的命名方案。
扩展 | 描述 |
---|---|
fenced_code_gfm | GFM围栏代码块 |
tables | 漂亮的表格! |
def_list | 定义列表 |
attr_list | 标题和围栏代码块的特殊属性列表 |
footnotes | 脚注 |
smartypants | SmartyPants |
newlines | GFM换行 |
strikethrough | GFM删除线 |
smart_strong | 不要在单词中间使用强强调 |
abbr | 缩写 |
fenced_code | PHP Markdown Extra围栏代码块 |
选项 | 描述 |
---|---|
table_class | 添加到所有Markdown表格的类。当使用类似bootstrap的框架时很有用。 |
highlighter | 代码高亮器。目前必须是highlight 和prettify 之一 |
斜体化的扩展计划中,将按所示顺序添加
请参阅PHP Markdown Extra的文档,以获取更完整的语法概述。在GitHub上操作方式不同的情况下,例如表格标题的对齐方式,我选择了与gfm的兼容性,它似乎正在迅速成为最广泛使用的Markdown实现。
特殊字符
Markdown Extra增加了两个新的特殊字符|
和:
,可以通过在它们前面加上\
来转义。这样做将导致转义字符在确定代码块和定义列表的范围时被忽略。
##许可证
请参阅LICENSE.txt