如何在 vimwiki html /smarty 文件中包含 pygments?
How to include pygments in vimwiki html /smarty file?
我正在使用 vimwiki,它允许我添加 smarty/html 模板文件以及 css。我知道如何使用 pygments 生成 css 文件,但问题是如何根据 <pre>
标签的输入让 css 包含所有 类 ?
例如,如果前置标签是这样的:
<pre class='pygments highlight'>
echom 'hello'
function! DeleteUnloadedBuffers()
for buf in getbufinfoprettyprint
if ! buf.loaded
execute 'bd ' . buf.bufnr
endif
echom repeat('-',78)
endfor
endfunction!
</pre>
我需要它来生成这个,以便它可以突出显示语法:
<div class="highlight"><pre><span></span><span class="k">echom</span> <span class="s1">'hello'</span>
<span class="k">function</span><span class="p">!</span> DeleteUnloadedBuffers<span class="p">()</span>
<span class="k">for</span> <span class="k">buf</span> <span class="k">in</span> getbufinfoprettyprint
<span class="k">if</span> <span class="p">!</span> <span class="k">buf</span>.loaded
execute <span class="s1">'bd '</span> . <span class="k">buf</span>.bufnr
<span class="k">endif</span>
<span class="k">echom</span> repeat<span class="p">(</span><span class="s1">'-'</span><span class="p">,</span><span class="m">78</span><span class="p">)</span>
<span class="k">endfor</span>
<span class="p"><</span>/<span class="k">pre</span><span class="p">></span>
</pre></div>
我猜答案大概是...
%pygments%
<pre class='pygments highlight'>
print('foo')
</pre>
我可以编写一个 python 脚本并导入 pygments 并为 pre 标记做一个正则表达式,但是仅仅为了获得一些语法突出显示就太过分了。目前,我一直在使用 prettyprint,它看起来像是 github 上的一个废弃回购协议,但它确实有效。
最终使用 bs4 解决了这个问题。
我正在使用 vimwiki,它允许我添加 smarty/html 模板文件以及 css。我知道如何使用 pygments 生成 css 文件,但问题是如何根据 <pre>
标签的输入让 css 包含所有 类 ?
例如,如果前置标签是这样的:
<pre class='pygments highlight'>
echom 'hello'
function! DeleteUnloadedBuffers()
for buf in getbufinfoprettyprint
if ! buf.loaded
execute 'bd ' . buf.bufnr
endif
echom repeat('-',78)
endfor
endfunction!
</pre>
我需要它来生成这个,以便它可以突出显示语法:
<div class="highlight"><pre><span></span><span class="k">echom</span> <span class="s1">'hello'</span>
<span class="k">function</span><span class="p">!</span> DeleteUnloadedBuffers<span class="p">()</span>
<span class="k">for</span> <span class="k">buf</span> <span class="k">in</span> getbufinfoprettyprint
<span class="k">if</span> <span class="p">!</span> <span class="k">buf</span>.loaded
execute <span class="s1">'bd '</span> . <span class="k">buf</span>.bufnr
<span class="k">endif</span>
<span class="k">echom</span> repeat<span class="p">(</span><span class="s1">'-'</span><span class="p">,</span><span class="m">78</span><span class="p">)</span>
<span class="k">endfor</span>
<span class="p"><</span>/<span class="k">pre</span><span class="p">></span>
</pre></div>
我猜答案大概是...
%pygments%
<pre class='pygments highlight'>
print('foo')
</pre>
我可以编写一个 python 脚本并导入 pygments 并为 pre 标记做一个正则表达式,但是仅仅为了获得一些语法突出显示就太过分了。目前,我一直在使用 prettyprint,它看起来像是 github 上的一个废弃回购协议,但它确实有效。
最终使用 bs4 解决了这个问题。