Как включить пигменты в файл vimwiki html/smarty?

Я использую vimwiki, что позволяет мне добавить файл шаблона smarty/html вместе с css. Я знаю, как сгенерировать файл css с помощью pygments, но проблема в том, как заставить этот css включать все классы на основе ввода тега <pre>?

Например, если тег pre такой:

<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">&#39;hello&#39;</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">&#39;bd &#39;</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">&#39;-&#39;</span><span class="p">,</span><span class="m">78</span><span class="p">)</span>
    <span class="k">endfor</span>
<span class="p">&lt;</span>/<span class="k">pre</span><span class="p">&gt;</span>
</pre></div>

Я предполагаю, что ответ где-то в строках...

%pygments%
<pre class='pygments highlight'>
print('foo')
</pre>

Я мог бы написать скрипт на Python, импортировать pygments и сделать регулярное выражение для предварительных тегов, но это было бы излишним просто для подсветки синтаксиса. На данный момент я использую prettyprint, который выглядит как заброшенный репозиторий на github, но он работает.


person ritchie    schedule 18.01.2021    source источник


Ответы (1)


В итоге использовал bs4 для решения этой проблемы.

person ritchie    schedule 23.01.2021