2016-11-02 4 views
0

ich Notizen in kramdown schreiben, dann den kramdown Konverter eine HTML-Datei erhalten lokal (nicht auf einem Server) zu lesen.Wie style HTML-Ausgabe von kramdown-Konverter automatisch style?

$ kramdown notes.txt > notes.html 

Mein Workflow ist ständig notes.txt zu aktualisieren, dann machen notes.html schnell um es anzuzeigen.

Ich mag die Hinweise stylen, also machte ich eine CSS-Datei notes_style.css, die den HTML-Text-Formate:

body { 
... 
} 

Ich habe einen <head> Tag notes.txt und in einem Link zu meinem Sheet setzen. Dann habe ich <body> Tags um den Inhalt notes.txt:

<head> 
    <link rel="stylesheet" type="txt/css" href="themes/notes_style.css" /> 
</head> 
<body> 
    ... 
</body> 

Dann habe ich gemerkt, dass, da kramdown HTML Blöcke ignoriert, nichts in <body> in HTML umgewandelt wird. Wie soll ich den Inhalt von <body> formatieren, während ich den kramdown in HTML konvertieren kann? Ich möchte nicht jedes Mal, wenn ich kramdown verwende, <body> Tags manuell hinzufügen.

Ich vermute, dass mit meinem Workflow etwas falsch, aber nicht sicher, was der richtige Weg, es zu tun ist.

Antwort

2

Kramdown hat die parse_block_html option, dass es den Inhalt von HTML-Elementen zu analysieren verursacht. Sie können es wie folgt verwenden:

$ kramdown --parse-block-html notes.txt > notes.html 

Alternativ Kramdown sucht auch nach einem special markdown attribute on HTML elements. Wenn es auf '1' gesetzt ist, wird Kramdown den Inhalt dieses Elements als Markdown analysieren. So könnten Sie dies tun (müssen Sie die Anführungszeichen um 1 ist Kramdown HTML-Parser sehr streng):

<head> 
    <link rel="stylesheet" type="txt/css" href="themes/notes_style.css" /> 
</head> 
<body markdown='1'> 
Content here will be parsed _as Markdown_. 
</body> 

In beiden Fällen Ihre body Inhalt als normal ausgerichtet gelassen werden muss, kann man nicht einrücken kann es als Sie könnten natürlich schreiben HTML in einem Element verschachtelt.