templates - How can I render markdown to html with Blackfriday in Go? -


मेरे पास इस तरह एक स्ट्रेट है:

  प्रकार पृष्ठ स्ट्रेट {content string}   

फिर मैं एक मार्कडाउन फ़ाइल पढ़ता हूं और एक चर को असाइन करता हूं:

  डेटा, err: = ioutil.ReadFile ("a.md") लाइन = स्ट्रिंग ( डेटा) पृष्ठ.संसाधन = मार्कडाउनरेंडर ([] बाइट (लाइन))   

मार्कडाउन फ़ाइल इस तरह से है:

  ## हैलो वर्ल्ड ### Holo जाओ   

और फिर मैं इसे markdown रेंडर समारोह में डाल दिया और एक स्ट्रिंग मान लौटा:

  func markdownRender (content [] बाइट) स्ट्रिंग {htmlFlags: = 0 html फ़्लेग्ज | = blackfriday.HTML_USE_SMARTYPANTS html फ़्लेग्ज | = blackfriday.HTML_SMARTYPANTS_FRACTIONS रेंडरर: = ब्लैकफ़्रिएड। एचटीएमएल रेंडरर (एचटीएमएलफ़्लैग, "", "") एक्सटेंशन: = 0 एक्सटेंशन | = ब्लैकफ़्रिएड। एक्सटेन्शियन_ओएनजीआरएआरएएएमएफ़एचएएसआईएस एक्सटेंशन | = ब्लैकफ़्रिएड .EXTENSION_TABLES एक्सटेंशन | = ब्लैकफार्ड EXTENSION_FENCED_CODE एक्सटेंशन | = blackfriday.EXTENSION_AUTOLINK एक्सटेंशन | = blackfriday.EXTENSION_STRIKETHROUGH एक्सटेंशन | = बी lackfriday.EXTENSION_SPACE_HEADERS वापसी स्ट्रिंग (blackfriday.Markdown (सामग्री, रेंडरर, एक्सटेंशन))   

और अंत में मैं पेज को कॉल करता हूं। सामग्री html टेम्पलेट में और जेनरेट करते हैं एक स्थिर एचटीएमएल:

  {{content}}   

लेकिन उत्पन्न HTML में यह ब्राउज़र में दिखाता है (मैं क्रोम और सफारी में इसकी कोशिश की ) इस तरह से है (स्रोत कोड नहीं, यह सिर्फ पृष्ठ में दिखाया गया है):

  & lt; p & gt; ## हेलो वर्ल्ड ### होलो गो & lt; / p & gt;   

लेकिन मुझे यह पसंद है

  हैलो वर्ल्ड होलो जाओ   

तो, मैं यह कैसे कर सकता हूँ ¼?

सबसे पहले, आपका मार्कडाउन इनपुट काफी सही नहीं है - शीर्षकों को सफेद स्थान को को अलग करना चाहिए # s से टेक्स्ट आप इसे इसका उपयोग करके सत्यापित कर सकते हैं:

  $ इको ## नमस्कार | ब्लैकफ़्रिड-टूल & lt; p & gt; ## हेलो & lt; / p & gt; $ गूंज ## नमस्कार | ब्लैकफ़्रिडा-टूल & lt; h2 & gt; हैलो & lt; / h2 & gt;   

दूसरा, यदि आप blackfriday से HTML कोड को html / टेम्पलेट में फ़ीड करते हैं, तो यह सुरक्षा के लिए स्वतः बच जाएगा ।

यदि आप मार्कडाउन इनपुट और ब्लैकफाइड के एचटीएमएल आउटपुट पर भरोसा करते हैं, तो आप टेम्पलेट सिस्टम को इसे html / template मान में लपेटकर सामग्री पर भरोसा कर सकते हैं:

  प्रकार पृष्ठ संरचना {content template.HTML} err = t.ExecuteTemplate (w, "पृष्ठ", पृष्ठ {सामग्री: टेम्पलेट। एचटीएमएल (एस)})   

उदाहरण के लिए देखें।

Comments

Popular posts from this blog

Verilog Error: output or inout port "Q" must be connected to a structural net expression -

jasper reports - How to center align barcode using jasperreports and barcode4j -

c# - ASP.NET MVC - Attaching an entity of type 'MODELNAME' failed because another entity of the same type already has the same primary key value -