22 Pandoc简介

22 Pandoc简介

Pandoc 是一个强大的文档转换工具,它可以将一种标记语言转换为另一种标记语言。通过使用 Pandoc,用户可以轻松地在 .md(Markdown)和其他格式之间进行转换。

安装Pandoc

在不同的操作系统上,Pandoc 的安装方法可能会有所不同。如果你使用的是 macOS,可以通过 Homebrew 安装:

1
brew install pandoc

对于 Ubuntu 用户,可以使用:

1
sudo apt-get install pandoc

Windows 用户可以从 Pandoc官网 下载 Windows 安装包。

基本用法

使用 Pandoc 进行文档转换的基本语法如下:

1
pandoc [输入文件] -o [输出文件]

例如,将一个 Markdown 文件 example.md 转换为 PDF 文件 example.pdf

1
pandoc example.md -o example.pdf

这条命令会将 example.md 文件中的内容转换为 PDF 格式。

支持的格式

Pandoc 支持多种格式之间的转换,包括但不限于:

  • Markdown
  • HTML
  • PDF
  • LaTeX
  • DOCX(Word文档)

你可以通过以下命令查看 Pandoc 支持的文件格式:

1
pandoc --list-output-formats

使用选项

Pandoc 提供了许多选项来定制文档转换的过程。常用选项包括:

  • --from 指定输入格式
  • --to 指定输出格式
  • --standalone 生成独立文档

例如,如果你想将 Markdown 文件转换为 HTML,且希望生成一个完整的 HTML 页面,可以使用以下命令:

1
pandoc example.md -o example.html --standalone

引用和参考文献

Pandoc 支持对文献的管理。如果你有 BibTeX 格式的文献,你可以将其添加到转换命令中。例如:

1
pandoc example.md -o example.pdf --bibliography=bibliography.bib

这将会在生成的 PDF 中添加参考文献列表。

自定义模板

Pandoc 允许用户使用自定义模板来格式化输出。你可以使用 --template 选项指定自定义模板。例如:

1
pandoc example.md -o example.pdf --template=mytemplate.tex

在这个例子中,mytemplate.tex 是你自定义的 LaTeX 模板。

结合代码示例

以下示例展示了如何使用 Pandoc 将 Markdown 文件转换为 PDF,包含代码块和行内公式。

假设 example.md 的内容如下:

1
2
3
4
5
6
7
# 示例文档

这是一个简单的数学公式 $E=mc^2$。

```python
def hello_world():
print("Hello, world!")
1
2
3
4
5

运行以下命令将其转换为 PDF:

```bash
pandoc example.md -o example.pdf

这将生成一个包含文本和代码块的 PDF 文件。

小结

通过 Pandoc,你可以方便地在不同文档格式之间进行转换,定制化输出,并管理引用。无论是写作报告、论文,还是生成电子书,Pandoc 都是一个不可或缺的工具。

23 Markdown-it 简介

23 Markdown-it 简介

Markdown-it 是一个功能强大的 Markdown 解析器,可以将 Markdown 文本转换为 HTML。它快速、高效,并且支持插件扩展,适合用于各种 JavaScript 应用。

基本用法

要使用 Markdown-it,首先需要安装它。可以通过 npm 来安装:

1
npm install markdown-it

然后在你的 JavaScript 代码中导入并使用它:

1
2
3
4
5
6
7
const MarkdownIt = require('markdown-it');
const md = new MarkdownIt();

// 示例 Markdown 文本
const markdownText = '# Hello, Markdown-it!';
const result = md.render(markdownText);
console.log(result); // 输出为 HTML

以上代码将一个简单的 Markdown 文本转换为 HTML 代码。

配置选项

Markdown-it 提供了多种配置选项来定制其行为。例如,可以启用或禁用特定的功能,如表格、脚注等。

1
2
3
4
5
6
const md = new MarkdownIt({
html: true, // 启用 HTML 标签
xhtmlOut: false, // 输出 XHTML 格式
breaks: false, // 段落换行是否为 <br>
langPrefix: 'language-', // 代码块类前缀
});

插件扩展

Markdown-it 支持通过插件扩展功能。可以找到各种第三方插件,例如 markdown-it-attrsmarkdown-it-table-of-contents

例如,安装 markdown-it-attrs 插件:

1
npm install markdown-it-attrs

然后在代码中使用它:

1
2
3
4
5
6
7
const markdownItAttrs = require('markdown-it-attrs');
md.use(markdownItAttrs);

// 使用插件的 Markdown 示例
const markdownText = '### Header {.className}';
const result = md.render(markdownText);
console.log(result); // 输出带有 class 的 HTML

自定义规则

你还可以定义你自己的解析规则,以满足特定需求。

1
2
3
4
5
6
7
md.renderer.rules.strong_open = function() {
return '<strong class="custom-class">';
};

const markdownText = 'This is **strong text**.';
const result = md.render(markdownText);
console.log(result); // 输出时 `<strong>` 标签带自定义类

公式支持

如果你需要支持数学公式,可以集成 markdown-it-katex 插件,支持行内和块级数学公式。

首先安装 markdown-it-katex

1
npm install markdown-it-katex

然后在代码中使用:

1
2
3
4
5
6
7
const markdownItKatex = require('markdown-it-katex');
md.use(markdownItKatex);

// 示例 Markdown 包含公式
const markdownText = '这是一个行内公式 $E=mc^2$ 和块级公式:\n\n$$\n\\frac{1}{2}mv^2\n$$';
const result = md.render(markdownText);
console.log(result); // 输出 HTML,包含 KaTeX 渲染的公式

总结

Markdown-it 是一个灵活且强大的 Markdown 解析工具,支持多种功能和扩展,可以根据你的项目需求进行灵活定制。通过简单的配置和插件,能够方便地实现许多 Markdown 的高级用法,让文档编写更加高效便捷。

24 Kramdown基础

24 Kramdown基础

Kramdown 是一种轻量级的标记语言,易于阅读和编写,广泛用于生成HTML、PDF等格式。Kramdown 是 Markdown 的一种扩展,增加了更多的功能。

段落与换行

在Kramdown中,您可以通过输入空行来分隔段落。如果希望在同一段落中实现换行,可以在行末添加两个或更多空格,然后回车。

1
2
3
4
这是第一段。

这是第二段,紧接着
这一行是新的一行。

标题

您可以使用 # 符号来创建标题,符号的数量决定了标题的层级。Kramdown支持6级标题。

1
2
3
# 一级标题
## 二级标题
### 三级标题

强调与加粗

使用 *_ 来强调文字,使用两个 *_ 来加粗。

1
2
*这是强调的文字*
**这是加粗的文字**

列表

您可以创建无序列表和有序列表。

无序列表使用 *, +, 或 -

1
2
3
* 项目一
* 项目二
* 子项目

有序列表使用数字和点:

1
2
1. 第一项
2. 第二项

链接与图片

添加链接和图片很简单。使用方括号[]和圆括号()

1
2
3
[这是一个链接](https://example.com)

![这是图片](https://example.com/image.png)

代码块

您可以使用反引号来标记代码。单个反引号用于行内代码,三个反引号用于块级代码。

行内代码示例:

1
这是 `行内代码` 示例。

块级代码示例:

1
2
```
这是块级代码示例。
1
2
3
4
5
6
7

## 引用

引用使用 `>` 符号。它可以用于引用段落或其他内容。

```markdown
> 这是一个引用示例。

表格

Kramdown支持简单的表格格式。使用 | 来分隔列,用 - 来分隔表头和表身。

1
2
3
4
| 姓名 | 年龄 |
| ---- | ---- |
| 小明 | 25 |
| 小红 | 30 |

公式

Kramdown支持数学公式。行内公式使用一对 $ 符号,块级公式使用两对 $ 符号。

行内公式示例:

1
这是一个行内公式 $E=mc^2$ 示例。

块级公式示例:

1
2
3
$$
a^2 + b^2 = c^2
$$

总结

Kramdown是一种功能强大的标记语言,能够通过简单的语法生成格式化良好的文本。通过以上的基本用法,您可以开始使用Kramdown进行文档编写。