Nodejs中markdown默认不支持表格?

Nodejs中markdown默认不支持表格?

http://lutaf.com/155.htm

用markdown-js好像不支持表格,不过cnode好像又支持,这是怎么回事?

#aaa

Tables Are Cool
col 3 is right-aligned $1600
col 2 is centered $12
zebra stripes are neat $1

5 回复

Node.js 中 Markdown 默认不支持表格?

在使用 Markdown 编写文档时,有时我们需要插入表格来更好地展示数据。然而,并非所有的 Markdown 解析器都原生支持表格功能。在 Node.js 环境中,使用不同的 Markdown 库可能会导致不同的结果。

问题背景

你提到使用 markdown-js 这个库时发现它不支持表格功能。然而,cnode(可能是某个社区或网站)却能够解析并显示表格。这背后的原因在于 cnode 可能使用了支持表格的 Markdown 库,例如 marked 或其他自定义的 Markdown 解析器。

示例代码

假设我们使用 marked 这个库来解析 Markdown 文档,并且希望在其中插入表格。我们可以按以下步骤操作:

  1. 安装 marked 库:
npm install marked
  1. 创建一个简单的 Node.js 脚本来解析包含表格的 Markdown 文本:
const marked = require('marked');

// 定义包含表格的 Markdown 文本
const markdownText = `
# 表格示例

| Tables        | Are           | Cool  |
| ------------- |:-------------:| -----:|
| col 3 is      | right-aligned | $1600 |
| col 2 is      | centered      |   $12 |
| zebra stripes | are neat      |    $1 |
`;

// 使用 marked 解析 Markdown 文本
const html = marked(markdownText);

console.log(html);

运行上述脚本后,html 变量将包含解析后的 HTML 文本,其中包括表格内容。

总结

  • markdown-js:这是一个轻量级的 Markdown 解析器,但不支持表格。
  • marked:一个更强大的 Markdown 解析器,支持包括表格在内的多种扩展语法。

如果你需要在 Node.js 中处理表格,建议使用像 marked 这样的库,以确保你的 Markdown 文本能够正确解析为包含表格的 HTML。


原生 markdown 不支持表格。

但是一些方言如 Github Flavored Markdown 就支持。

marked 支持

预览用的MD解析器有问题么?预览效果和最后效果有些不同,呵呵

| Tables        | Are           | Cool  |
| ------------- |:-------------:| -----:|
| col 3 is      | right-aligned | $1600 |
| col 2 is      | centered      |   $12 |
| zebra stripes | are neat      |    $1 |

Node.js 中的 Markdown 解析器默认情况下可能并不支持表格功能。Markdown 的官方语法本身并不包含表格,但许多扩展的 Markdown 实现(如 GitHub Flavored Markdown)会加入对表格的支持。

如果你使用的是 markdown-js 这样的库,它可能没有实现这种扩展,因此不支持表格。而 cnode 可能是基于一个支持表格扩展的 Markdown 解析器实现的。

为了在 Node.js 中支持 Markdown 表格,你可以选择一个支持扩展语法的解析器,比如 markedmarkdown-it

示例代码

使用 marked

const marked = require('marked');
const renderer = new marked.Renderer();

renderer.table = function(header, body) {
    return `<table class="table">\n<thead>\n${header}</thead>\n<tbody>\n${body}</tbody>\n</table>\n`;
};

marked.setOptions({
    renderer: renderer,
});

const markdownTable = `
| Tables        | Are           | Cool          |
| ------------- |:-------------:| --------------:|
| col 3 is      | right-aligned | $1600         |
| col 2 is      | centered      | $12           |
| zebra stripes | are neat      | $1            |
`;

console.log(marked(markdownTable));

解释

  • 引入 marked:首先,我们需要引入 marked 库。
  • 自定义渲染器:我们创建一个新的 Renderer 实例,并重写 table 方法以处理表格的渲染。
  • 设置选项:将自定义的渲染器设置到 marked 的选项中。
  • Markdown 内容:定义包含表格的 Markdown 文本。
  • 渲染:调用 marked 函数来解析并生成 HTML 输出。

通过这种方式,即使原生 Markdown 不支持表格,我们也能使用 marked 库来实现这一功能。

回到顶部