jmcmanus/pagedown-extra

此包已被废弃,不再维护。未建议替代包。
关于此包的最新版本(v0.1.0)没有可用的许可信息。

这是一个Markdown Extra语法的Pagedown插件集合。打开demo/demo.html尝试使用。要运行测试,只需在浏览器中打开spec/SpecRunner.html。或者,要像travis-ci那样从命令行运行无浏览器测试,请运行bundle install,然后运行bund

安装: 142

依赖者: 1

建议者: 0

安全: 0

星级: 0

关注者: 2

分支: 92

语言:JavaScript

v0.1.0 2017-06-20 01:12 UTC

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。

travis

使用方法

首先,请确保您有最新版本的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-prettifyHighlight.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 代码高亮器。目前必须是highlightprettify之一

斜体化的扩展计划中,将按所示顺序添加

请参阅PHP Markdown Extra的文档,以获取更完整的语法概述。在GitHub上操作方式不同的情况下,例如表格标题的对齐方式,我选择了与gfm的兼容性,它似乎正在迅速成为最广泛使用的Markdown实现。

特殊字符

Markdown Extra增加了两个新的特殊字符|:,可以通过在它们前面加上\来转义。这样做将导致转义字符在确定代码块和定义列表的范围时被忽略。

##许可证

请参阅LICENSE.txt