javascript - 如何使用 showdown.js 将表格文本打印到 md 表格?
问题描述
我想使用 showdown.js 打印 md 表。但是,它似乎没有像我预期的那样正确转换为降价表。
我尝试将选项('table option')设置为'true'并将文本转换为md。但是,不起作用。
以下是我实现的功能,供您参考。
setMdConvert()
<= 正如我所说,我只是尝试了所有选项为真。
getTechDescriptionMd()
<= 将任意降价文本转换为降价表的测试函数
function setMdConvert() {
var mdConverter = new showdown.Converter();
var options = showdown.getOptions();
var keys = Object.keys(options);
keys.forEach((key) => {
if(options[key].constructor === boolConstructor)
mdConverter.setOption(key, true);
});
console.log(mdConverter.getOptions());
return mdConverter;
}
function getTechDescriptionMd() {
var text = '| h1 | h2 | h3 |' +
'|:------|:-------:|--------:|' +
'| 100 | [a][1] | ![b][2] |' +
'| *foo* | **bar** | ~~baz~~ |';
var html = mdConverter.makeHtml(text);
$('.desc-viewer').html(html);
}
结果:
| h1 | h2 | h3 ||:------|:-------:|--------:|| 100 | [a][1] | ![b][2] || foo | bar | baz |
还有其他我想念的选择吗?
解决方案
.getTechDescriptionMd()
这是对我有用的修改版本。我添加了我在昨天的评论中已经提到的换行符,另外我初始化mdConverter
并将其选项 'tables' 设置为 true (受文档启发)。
现在看起来像这样:
function getTechDescriptionMd() {
var text = '| h1 | h2 | h3 |\n' +
'|:------|:-------:|--------:|\n' +
'| 100 | [a][1] | ![b][2] |\n' +
'| *foo* | **bar** | ~~baz~~ |';
var mdConverter = new showdown.Converter();
mdConverter.setOption('tables', true);
var html = mdConverter.makeHtml(text);
$('.desc-viewer').html(html);
}
我得到的结果是:
<table>
<thead>
<tr>
<th style="text-align:left;">h1</th>
<th style="text-align:center;">h2</th>
<th style="text-align:right;">h3</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">100</td>
<td style="text-align:center;">[a][1]</td>
<td style="text-align:right;">![b][2]</td>
</tr>
<tr>
<td style="text-align:left;"><em>foo</em></td>
<td style="text-align:center;"><strong>bar</strong></td>
<td style="text-align:right;">~~baz~~</td>
</tr>
</tbody>
</table>
推荐阅读
- c# - 更换巨大的 DataGridViewComboBoxColumn 以提高性能
- sql - 如何在正则表达式中获取所有组合(无替换的有序采样)
- mysql - MySQL 8 无法启动:插件初始化因错误而中止一般错误
- kubernetes - Istio 入口无法使用无头服务
- java - 删除嵌套的 git 存储库
- vue.js - Webpack 导入的模块不是函数
- excel - 如何根据数据集excel替换单元格字母?
- android - workmanager中android volley的返回响应
- swift - 从 Firebase 分支过滤项目 (SWIFT)
- html - ng-repeat table 多次,每 3 个表在一行中