2016-05-20 8 views
1

Ich habe meine Forschung erschöpft und versucht, viele Methoden keine Wirkung und hoffe ich eine Art einfache Lösung bin mit Blick auf:beibehalten HTML Entities Wenn Parsing Markdown

ich Jekyll Website bin mit HTML-Dateien für E produzieren -mail und müssen HTML-Entitäten für Sonderzeichen (wie em-Bindestriche und intelligente Anführungszeichen) verwenden, um eine falsche Symbolinterpretation zu vermeiden (der Inhaltstyp/Zeichensatz wird aufgrund von Komplexitäten manchmal aus dem E-Mail-Kopf entfernt) wird nicht hier.)

Mein Problem ist, dass Parsing meine Markdown scheint, um alle meine geschriebenen HTML-Entities in die Sonderzeichen zu konvertieren, wenn als HTML ausgegeben, und ich nicht mit gemeinsamen Methoden entkommen kann. Wenn ich &rsquo; in Markdown eintippe, um ein richtiges gelocktes Zitat zu produzieren, wird es in meinem HTML in das Symbol umgewandelt (anstatt &rsquo; in meinem HTML zu behalten). Wenn ich versuche, mit Back-Ticks zu entkommen, wird es &rsquo im HTML nicht konvertieren, aber es platziert es innerhalb <code> Tags, die es als &rsquo; und nicht rendern rendern. Gibt es eine Möglichkeit, typisierte HTML-Entitäten für Sonderzeichen beizubehalten oder - noch besser - Sonderzeichen beim Analysieren in HTML-Entitäten (im HTML) umzuwandeln?

Ich benutze den Kramdown Markdown Parser mit Jekyll. Ich bin sogar so weit gegangen, die entity_output Option in Kramdown zu : as_input ohne Erfolg zu spezifizieren. Jede Hilfe wird sehr geschätzt!

+1

Etwas wie http://htmlentities.rubyforge.org/ vielleicht? (Vielleicht brauchen Sie ein paar kleine Anpassungen, weil alle Beispiele, die ich dort oder auf der GitHub-Seite sehe, < and > konvertieren - aber es könnte ein Ausgangspunkt sein.) – CBroe

Antwort

2

Als Landes docs:

--entity-output ARG 
    Defines how entities are output 

    The possible values are :as_input (entities are output in the same 
    form as found in the input), :numeric (entities are output in numeric 
    form), :symbolic (entities are output in symbolic form if possible) or 
    :as_char (entities are output as characters if possible, only available 
    on Ruby 1.9). 

    Default: :as_char 
    Used by: HTML converter, kramdown converter 

können also diese Optionen versuchen:

$ kramdown --version 
1.11.1 
$ kramdown 
&lsquo;foo&rsquo; 
<p>‘foo’</p> 
$ kramdown --entity-output=as_input 
&lsquo;foo&rsquo; 
<p>&lsquo;foo&rsquo;</p> 
$ kramdown --entity-output=symbolic 
&lsquo;foo&rsquo; 
<p>&lsquo;foo&rsquo;</p> 
$ kramdown --entity-output=numeric 
&lsquo;foo&rsquo; 
<p>&#8216;foo&#8217;</p> 
$ kramdown --entity-output=as_char 
&lsquo;foo&rsquo; 
<p>‘foo’</p> 
$ ruby --version 
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux] 

Beachten Sie, dass ich Kramdown Version 1.11 und Ruby-Version 1.9 haben. Wenn Sie frühere Versionen haben, funktionieren die Dinge möglicherweise nicht richtig.

+0

Danke, versuchen Sie es heute noch einmal die Kramdown-Optionen für Entity-Ausgabe zu erscheinen arbeiten wie in den Unterlagen angegeben. Vielleicht ein Tippfehler, vielen Dank für die Bestätigung, das ist die richtige Methode! –

2

In Ihrem _config.yml können Sie konfigurieren kramdown HTML-Entitäten zu lassen, wie sie in Ihrem Code geschrieben werden mit:

kramdown: 
    entity_output: :as_input 

Siehe documentation.

+0

Danke, ich denke, ein Teil meiner Ausgabe könnte der zweite fehlende Doppelpunkt gewesen sein. Prost! –