菜鸟科技网

showdown命令怎么用?

showdown 是一个功能强大的命令行工具,用于将 Markdown 文件转换为 HTML 文件,它是著名的 JavaScript 库 Showdown.js 的官方命令行接口(CLI),非常适合在构建流程、自动化脚本或快速转换文档时使用。

showdown命令怎么用?-图1
(图片来源网络,侵删)

安装

在使用 showdown 命令之前,你需要先安装它,最简单的方式是通过 npm(Node.js 包管理器)。

前提条件: 你的系统需要安装 Node.js 和 npm。

安装命令: 打开你的终端或命令行工具,然后运行:

npm install -g showdown

-g 标志表示全局安装,这样你可以在任何地方使用 showdown 命令。

showdown命令怎么用?-图2
(图片来源网络,侵删)

基本用法

最简单的用法是直接将一个 Markdown 文件作为输入,输出 HTML 到终端。

命令格式:

showdown <input-file.md>

示例: 假设你有一个名为 readme.md 的 Markdown 文件,内容如下:

# Hello Showdown
这是一个 **粗体** 文本和一个 *斜体* 文本。
- 列表项 1
- 列表项 2
[访问 GitHub](https://github.com)

在终端中运行:

showdown命令怎么用?-图3
(图片来源网络,侵删)
showdown readme.md

输出: 命令会直接在终端打印出转换后的 HTML 代码:

<h1>Hello Showdown</h1>
<p>这是一个 <strong>粗体</strong> 文本和一个 <em>斜体</em> 文本。</p>
<ul>
<li>列表项 1</li>
<li>列表项 2</li>
</ul>
<p><a href="https://github.com">访问 GitHub</a></p>

常用命令行选项

showdown 提供了许多有用的选项来控制转换行为。

1. 输出到文件 (-o, --output)

这是最常用的选项,用于将转换结果保存到一个 HTML 文件中,而不是打印到终端。

命令格式:

showdown <input-file.md> -o <output-file.html>

示例:

showdown readme.md -o readme.html

执行后,会生成一个 readme.html 文件。

2. 指定扩展 (-e, --extension)

Showdown 支持很多非标准的 Markdown 扩展(如表格、任务列表等),你可以通过这个选项来启用它们。

命令格式:

showdown <input-file.md> -e <extension1,extension2,...>

常用扩展:

  • tables: 支持表格语法。
  • tasklists: 支持任务列表语法。
  • smartypants: 将引号、破折号等转换为更智能的印刷字符。
  • gh-codeblock: GitHub 风格的代码块(带语言高亮)。
  • strikethrough: 支持删除线语法 ~~text~~
  • laxhtmlblocks: 允许在 HTML 块中使用空行。

示例: 转换一个包含表格的 Markdown 文件,并启用表格扩展:

# table.md 内容
| 姓名 | 年龄 |
|------|------|
| 张三 | 28   |
| 李四 | 32   |
showdown table.md -e tables -o table.html

table.html 的内容将会是:

<table>
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>28</td>
</tr>
<tr>
<td>李四</td>
<td>32</td>
</tr>
</tbody>
</table>

3. 读取标准输入 (stdin)

你可以将 Markdown 内容通过管道()直接传递给 showdown,这对于脚本处理非常方便。

命令格式:

echo "# Hello from stdin" | showdown

输出:

<h1>Hello from stdin</h1>

4. 查看帮助 (-h, --help)

如果你想查看所有可用的选项和它们的说明,可以使用 --help

showdown --help

这会列出所有命令行参数,包括我们上面提到的和一些更高级的选项。


高级用法:配置文件

当你有很多自定义选项,并且不想在每次执行时都输入一遍时,可以使用配置文件。

  1. 创建一个名为 .showdownrc 的 JSON 文件(在项目根目录)。
  2. 在文件中设置你想要的默认选项。

示例 .showdownrc 文件:

{
  "extension": "tables,tasklists,strikethrough",
  "noHeaderId": true,
  "simplifiedAutoLink": true
}

当你运行 showdown 命令时,它会自动读取这个配置文件中的设置,你仍然可以通过命令行参数来覆盖这些配置。


实战示例:构建一个静态网站

假设你的项目结构如下:

my-blog/
├── posts/
│   ├── post1.md
│   └── post2.md
├── template.html
└── build.sh

template.html (一个简单的 HTML 模板)

<!DOCTYPE html>
<html>
<head>My Blog</title>
</head>
<body>
  <!-- 内容将在这里插入 -->
  <div id="content">
    {{content}}
  </div>
</body>
</html>

build.sh (一个简单的构建脚本)

#!/bin/bash
# 创建输出目录
mkdir -p dist
echo "Building posts..."
# 遍历 posts 目录下的所有 .md 文件
for file in posts/*.md; do
  # 获取文件名,不带扩展名
  filename=$(basename "$file" .md)
  # 1. 使用 showdown 将 Markdown 转换为 HTML
  #    -e tables 启用表格扩展
  #    --strip-html-tags 移除输入中的 HTML 标签(可选)
  showdown "$file" -e tables -o "temp_content.html"
  # 2. 使用 sed 或其他工具将转换后的内容插入模板
  #    这里我们用一个非常简单的方法:用临时文件内容替换 {{content}}
  sed -i "s/{{content}}/$(cat temp_content.html)/" template.html
  # 3. 将最终结果保存到 dist 目录
  mv template.html "dist/${filename}.html"
  # 4. 清理临时文件
  rm -f temp_content.html
  echo "Built dist/${filename}.html"
done
echo "Build complete!"

如何运行:

  1. build.sh 脚本保存。
  2. 给它执行权限:chmod +x build.sh
  3. 运行脚本:./build.sh

这个脚本会自动将 posts 目录下的所有 Markdown 文件转换为独立的 HTML 文件,并使用模板来保持网站风格的一致性。


功能 命令/选项 描述
基本转换 showdown file.md 将 Markdown 转换为 HTML 并输出到终端。
输出到文件 showdown file.md -o output.html 将转换结果保存到指定的 HTML 文件。
启用扩展 showdown file.md -e tables,tasklists 启用一个或多个 Markdown 扩展。
标准输入 echo "text" \| showdown 从管道接收 Markdown 内容并转换。
查看帮助 showdown --help 显示所有可用的命令行选项。
使用配置 创建 .showdownrc 在 JSON 文件中设置默认选项。

showdown 命令是开发者和写作者工具箱中一个非常实用的工具,能够极大地简化 Markdown 到 HTML 的转换工作。

分享:
扫描分享到社交APP
上一篇
下一篇