之前看到有个选项, (setq org-export-with-sub-superscripts nil)
但是它只对表格外面的 _
有效, 表格内仍然会被替换为: \_
, 这点很恼火.
例子:
student_id
| 测试表格 |
|------------|
| student_id |
导出到 markdown 时, 输出的效果是这样的: |
之前看到有个选项, (setq org-export-with-sub-superscripts nil)
但是它只对表格外面的 _
有效, 表格内仍然会被替换为: \_
, 这点很恼火.
例子:
student_id
| 测试表格 |
|------------|
| student_id |
导出到 markdown 时, 输出的效果是这样的: |
这个应该和 org-export-with-sub-superscripts
没关系,加了个反斜杠应该是因为下划线是 Markdown 的元字符的关系。你可以把 student_id
改成 =student_id=
你的解决方案变成 `hello_world` 了, 也不是我想要的, 而且转化 org 到 md 的本意是, 可以快速的编写表格, 又可以在支持 markdown 的地方分享, 如果还得自己添加 =???=
, 就失去了便捷性了.
我最终, 自己写了一个 bash 脚本, 输出时, 做了一下替换, 将 \_
替换为 _
.
谢谢.
你可以试试下面这个例子:
| 测试表格 |
|---------------------|
| total_student_count |
转成 markdown 再用你的脚本替换一下看看 markdown 渲染出来的效果是不是你想要的
输出结果:
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">测试表格</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">total_student_count</td>
</tr>
</tbody>
</table>
我脚本也贴出来, 你可以自己试一下.
#!/bin/sh
org_table_file=$1
name=$(mktemp).md
emacs --batch "$org_table_file" \
-l 'ox-md' \
--eval "(setq org-export-with-toc nil)" \
--eval "(setq org-export-with-sub-superscripts nil)" \
--eval "(org-export-to-file 'md \"${name}\")"
cat $name |sed 's#\\_#_#g'|sed 's#\\`#`#g'
Option name | Markup |
---|---|
Intra-word emphasis | total\\_student\\_count |
Intra-world emphasis | total_student_count |
我输出结果是我想要的.
Emacs 26.1, org 9.1.9