微标记扩展网格
Micormark 扩展到解析标记下网格表.
状态
网格表格
这是什么?
此软件包包含扩展名, 将网格表的支持添加到 micromark。 。 。 .
何时使用
这些工具都是低级的.
在许多情况下,您想要使用 @adobe/remark-gridtables 换句话说.
合作时 mdast-util-from-markdown,您必须结合此软件包和
@adobe/mdast-util-gridtables。 。 。 .
概览
网格表是这样的:
+-------------------+------+
| Table Headings | Here |
+--------+----------+------+
| Sub | Headings | Too |
+========+=================+
| cell | column spanning |
| spans +---------:+------+
| rows | normal | cell |
+---v----+:---------------:+
| | cells can be |
| | *formatted* |
| | **paragraphs** |
| | ``` |
| multi | and contain |
| line | blocks |
| cells | ``` |
+========+=========<+======+
| footer | cells | |
+--------+----------+------+
- 单元格顶部必须用
+-接着是一些-或者说+完成于-+。 。 。 . - 如果表格包含页脚但没有页眉,则上行应当使用
=作为网格线. - col 跨度用缺一栏表示(
|(a) 划界人 - 缺行表示行长(
-(a) 划界人 - 单元格可以是左、中、右或对齐的理由;通过放置
:或者说>< - 单元格可以是上,中,或下相v;用箭头的放入表示(
v^x(中文(简体) ) - 标题和页脚段由区划符划定(
=) (中文(简体) ). - 如果没有分区分隔符,所有单元格都放在表格正文中.
- 如果只有1个区划符,则它从正文中划分标题.
- 单元格中的内容可以再次成为完整的Markdown文档。 注,单元格边界(
|(中文(简体) ) 需要与列标记完全匹配(+在行分隔符中,如果单元格内容 包含|,否则无法保证表格的正确布局.
版式
表格布局试图使表格保持一定的宽度(默认为120). 譬如说, 如果表格有3个栏,则每个栏将最大宽40个字符。 如果列中的所有文字 较小, 它会缩小柱子。 然而,当 文本需要被打破。 如果单元格内容需要更多的空格,例如有嵌入式表或 代码块,它会相应增长.
对齐
水平对齐通过在单元格上方的网格线上放置标记来表示:
Justify Center Left Right
+>-----<+ +:-----:+ +:------+ +------:+
| A b C | | ABC | | ABC | | ABC |
+-------+ +-------+ +-------+ +-------+
垂直对齐通过在单元格上方的网格线中心放置标记来表示:
Top Middle Bottom
+---^---+ +---x---+ +---v---+
| Larum | | | | |
| Ipsum | | Larum | | |
| | | Ipsum | | Larum |
| | | | | Ipsum |
+-------+ +-------+ +-------+
语法
gridTable := gridLine cellLine+ gridLine;
gridLine := gridCell+ "+";
cellLine := ( gridCell | cellContent )+ ( "+" | "|" );
gridCell := "+" alignMarkerStart? ("-" | "=")+ vAlignMarker? ("-" | "=")* alignMarkerEnd?;
cellContent := ( "+" | "|" ) " " content " " ;
alignMarkerStart := ":" | ">";
alignMarkerEnd := ":" | "<";
vAlignMarker := "^" | "v" | "x"
使用量
用统一分析
import { unified } from 'unified';
import remarkParse from 'remark-parse';
import { remarkGridTable } from '@adobe/remark-gridtables';
const mdast = unified()
.use(remarkParse)
.use(remarkGridTable)
.parse(markdown);
生成半径
import { toHast, defaultHandlers } from 'mdast-util-to-hast';
import { mdast2hastGridTableHandler, TYPE_TABLE } from '@adobe/helix-markdown-support/gridtable';
const hast = toHast(mdast, {
handlers: {
...defaultHandlers,
[TYPE_TABLE]: mdast2hastGridTableHandler(),
},
allowDangerousHtml: true,
});
生成 HTML
import {micromark} from 'micromark'
import {gridTables, gridTablesHtml} from '@adobe/micromark-extension-gridtables'
const html = micromark(markdown, {
extensions: [gfmTable],
htmlExtensions: [gfmTableHtml]
})
console.log(html)
安装
$ npm install @adobe/micromark-extension-gridtables
发展
构建
$ npm install
测试
$ npm test
林特
$ npm run lint