转换为 HTML 时为复选框写入 Ascii
Write Ascii for Check Box when Converting to HTML
我正在写信给 HTML,然后复制文本并粘贴到 MS Teams 中。所以,我希望复选框是 ASCII 而不是 HTML 输入。
我在 Windows 上使用 pandoc 版本 2.10
。
这就是我认为我应该做的。但是好像不行:
echo - [ ] Yep | pandoc --ascii -f MARKDOWN -t HTML
以上是用终端cmder
完成的。我像下面这样用 Powershell 7 尝试了它,它仍然给出了不正确的结果:
echo "- [ ] Yep" | pandoc --ascii -f MARKDOWN -t HTML
Returns:
<ul class="task-list">
<li><input type="checkbox" disabled="" />
Yep</li>
</ul>
但我期待:
<ul class="task-list">
<li>☐ Yep</li>
</ul>
经过反复试验,您需要对命令进行一些更改:
echo "\- ☐ Yep" | pandoc -f markdown -t HTML | % {$_.replace("&","&")}
☐
是 ☐ 的 HTML 实体代码
- pandoc 默认将
&
格式设置为 &
,因此您需要使用 powershell 的替换 % {$_.replace("&","&")}
. 在输出中替换它
这应该给出 <p>- ☐ Yep</p>
,即 HTML.
中的“- ☐ Yep”(不带引号)
你可以在这里看到演示:https://jsfiddle.net/Fermicide/4jsnoya3/1/
如果想直接复制到剪贴板,可以将输出通过管道传输到Set-Cipboard
:
echo "\- ☐ Yep" | pandoc -f markdown -t HTML | % {$_.replace("&","&")} | Set-Clipboard
如您所见,以下输入在输出到 HTML 时呈现一个复选框:
- [ ] Yep
这是由于 pandoc 的 task_list extension,您可以按如下方式关闭它:
pandoc -f markdown-task_lists
将输出:
<ul>
<li>[ ] Yep</li>
</ul
但是,您似乎期望的是复选框 unicode 字符,您可以这样做,例如generic raw attribute:
- `☐`{=html} Yep
使用 Lua filter 的解决方案:
-- file: unicode-checkbox.lua
function Str (s)
if s.text == '☐' then
return pandoc.RawInline('html', s.text)
end
end
与命令一起使用
echo "- [ ] Yep" | pandoc --lua-filter=unicode-checkbox.lua -f MARKDOWN -t HTML
我正在写信给 HTML,然后复制文本并粘贴到 MS Teams 中。所以,我希望复选框是 ASCII 而不是 HTML 输入。
我在 Windows 上使用 pandoc 版本 2.10
。
这就是我认为我应该做的。但是好像不行:
echo - [ ] Yep | pandoc --ascii -f MARKDOWN -t HTML
以上是用终端cmder
完成的。我像下面这样用 Powershell 7 尝试了它,它仍然给出了不正确的结果:
echo "- [ ] Yep" | pandoc --ascii -f MARKDOWN -t HTML
Returns:
<ul class="task-list">
<li><input type="checkbox" disabled="" />
Yep</li>
</ul>
但我期待:
<ul class="task-list">
<li>☐ Yep</li>
</ul>
经过反复试验,您需要对命令进行一些更改:
echo "\- ☐ Yep" | pandoc -f markdown -t HTML | % {$_.replace("&","&")}
☐
是 ☐ 的 HTML 实体代码
- pandoc 默认将
&
格式设置为&
,因此您需要使用 powershell 的替换% {$_.replace("&","&")}
. 在输出中替换它
这应该给出 <p>- ☐ Yep</p>
,即 HTML.
你可以在这里看到演示:https://jsfiddle.net/Fermicide/4jsnoya3/1/
如果想直接复制到剪贴板,可以将输出通过管道传输到Set-Cipboard
:
echo "\- ☐ Yep" | pandoc -f markdown -t HTML | % {$_.replace("&","&")} | Set-Clipboard
如您所见,以下输入在输出到 HTML 时呈现一个复选框:
- [ ] Yep
这是由于 pandoc 的 task_list extension,您可以按如下方式关闭它:
pandoc -f markdown-task_lists
将输出:
<ul>
<li>[ ] Yep</li>
</ul
但是,您似乎期望的是复选框 unicode 字符,您可以这样做,例如generic raw attribute:
- `☐`{=html} Yep
使用 Lua filter 的解决方案:
-- file: unicode-checkbox.lua
function Str (s)
if s.text == '☐' then
return pandoc.RawInline('html', s.text)
end
end
与命令一起使用
echo "- [ ] Yep" | pandoc --lua-filter=unicode-checkbox.lua -f MARKDOWN -t HTML