Heim > Fragen und Antworten > Hauptteil
vimwikis standardmäßiger Vimwiki2HTML-Befehl konvertiert %toc in das Verzeichnis des aktuellen Wiki-Eintrags, konvertiert jedoch die sekundäre Verzeichnis-ID in toc_1.1 (die ID enthält einen Punkt) und um Bootstrap-Scrollspy zur Implementierung der Scroll-Erkennung zu verwenden ( Referenz: So implementieren Sie die Scroll-Erkennung von Webseiten und die feste Navigationsleiste oben. Punkte können in der ID nicht verwendet werden.
Bitte fragen Sie:
class="nav"
vimwiki-option-custom_wiki2html-------------------------------------------------------- ------ ------------------------------------
Schlüssel-Standardwert~
custom_wiki2html ' '
Beschreibung~
Der vollständige Pfad zu einem vom Benutzer bereitgestellten Skript, das eine Wiki-Seite in HTML konvertiert.
Vimwiki ruft das bereitgestellte |vimwiki-option-custom_wiki2html|-Skript über die
Befehlszeile auf.
Die folgenden Argumente werden in dieser Reihenfolge an das Skript
|vimwiki-option-custom_wiki2| übergeben:
1 erzwingen: [0/1] überschreibe eine vorhandene Datei
3 . Erweiterung: die Dateierweiterung für dieses Wiki
4. Ausgabeverzeichnis: der vollständige Pfad des Ausgabeverzeichnisses, also „Pfad_HTML“
5 Für dieses Wiki
Ein Beispiel und weitere Anweisungen finden Sie im folgenden Skript:
$VIMHOME/autoload/vimwiki/customwiki2html.sh
Um den internen Wiki2html-Konverter zu verwenden, verwenden Sie eine leere Zeichenfolge (Standard).
Mein Level ist begrenzt und ich kann nicht direkt ein externes Skript schreiben. Ich würde gerne auf das Standardskript von vimwiki verweisen, weiß aber nicht, wo das Skript ist.
淡淡烟草味2017-05-16 16:44:17
现在有两种方法:
1. 用sed批量处理;用sed修改vimwiki生成的html,使其合乎规范,脚本如下:
sed -i 'N;s/<p class="toc">\n<ul>/<p class="toc">\n<ul class="nav">/ ; s/toc_\([0-9]*\)\.\([0-9]*\)/toc_\1_\2/g' ~/Documents/wiki_html/cs_html/*.html ~/Documents/wiki_html/life_html/*.html ~/Documents/wiki_html/original_html/*.html ~/Documents/wiki_html/*.html
注意:sed N命令把偶数行添加在奇数行的缓冲区,因此<p class="toc">需要放在奇数行。
2. 修改autoload/vimwiki/html.vim文件,如下:
if level > plevel call add(toc, '<ul class="nav">') elseif level < plevel let plevel = s:close_list(toc, plevel, level) endif
和
for l in range(1, h_level-1) let h_number .= a:id[l].'_' endfor
感谢themacropodus@gmail.com 在 Can I modified the internal wiki2html... 的回答。