佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > go語言實現markdown解析庫的方法示例

go語言實現markdown解析庫的方法示例

熱門標簽:Linux服務器 網站排名優(yōu)化 服務外包 百度競價排名 AI電銷 鐵路電話系統(tǒng) 地方門戶網站 呼叫中心市場需求

Blackfriday是在Go中實現的Markdown處理器。您可以安全地輸入用戶提供的數據,速度快,支持通用擴展(表,智能標點符號替換等),并且對于所有utf-8(unicode)都是安全的輸入。

當前支持HTML輸出以及Smartypants擴展。

使用

首先當然要引入:

import github.com/russross/blackfriday

然后

output := blackfriday.MarkdownBasic(input)

這里input是[]byte類型,可以將markdown類型的字符串強轉為[]byte,即input = []byte(string)

如果想過濾不信任的內容,使用以下方法:

代碼:

package main

import (
  "fmt"

  "github.com/microcosm-cc/bluemonday"
  "github.com/russross/blackfriday"
)

func main() {
  input := []byte("### 5lmh.com是個不錯的go文檔網站")
  unsafe := blackfriday.MarkdownCommon(input)
  html := bluemonday.UGCPolicy().SanitizeBytes(unsafe)
  fmt.Println(string(html))
}

基本上就這些操作

我的使用方法是在添加新文章時,將表單提交的數據直接通過上面的方法轉換后,將markdown和轉換后的內容都存儲到數據庫中

不過我在前端渲染時,又出現了問題,就是轉換后的內容中的html標簽會直接顯示在網頁上,為避免這種狀況,我使用了自定義模板函數

  // 定義模板函數
  func unescaped(x string) interface{} { return template.HTML(x)}

  // 注冊模板函數
  t := template.New("post.html")
  t = t.Funcs(template.FuncMap{"unescaped": unescaped})
  t, _ = t.ParseFiles("templates/post.html")
  t.Execute(w, post)

  // 使用模板函數

  {{ .Content|unescaped }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 漂亮的Django Markdown富文本app插件的實現
  • Django渲染Markdown文章目錄的方法示例

標簽:湘潭 湖南 衡水 銅川 崇左 蘭州 黃山 仙桃

巨人網絡通訊聲明:本文標題《go語言實現markdown解析庫的方法示例》,本文關鍵詞  ;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    高邑县| 疏附县| 栖霞市| 南汇区| 沙河市| 高雄县| 静宁县| 汽车| 长兴县| 五寨县| 红河县| 霍林郭勒市| 阿荣旗| 云阳县| 凌海市| 柳河县| 广宁县| 伊春市| 措勤县| 旅游| 通江县| 玉环县| 来宾市| 永清县| 崇文区| 南皮县| 北辰区| 科技| 兴宁市| 东海县| 赤峰市| 商洛市| 靖边县| 栾城县| 白银市| 嘉禾县| 保德县| 阆中市| 昌吉市| 静宁县| 景谷|