最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

go語言實(shí)現(xiàn)markdown解析庫的方法示例

 更新時(shí)間:2020年02月03日 15:26:49   作者:lu569368  
這篇文章主要介紹了go語言實(shí)現(xiàn)markdown解析庫的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

Blackfriday是在Go中實(shí)現(xiàn)的Markdown處理器。您可以安全地輸入用戶提供的數(shù)據(jù),速度快,支持通用擴(kuò)展(表,智能標(biāo)點(diǎn)符號(hào)替換等),并且對(duì)于所有utf-8(unicode)都是安全的輸入。

當(dāng)前支持HTML輸出以及Smartypants擴(kuò)展。

使用

首先當(dāng)然要引入:

import github.com/russross/blackfriday

然后

output := blackfriday.MarkdownBasic(input)

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

如果想過濾不信任的內(nèi)容,使用以下方法:

代碼:

package main

import (
  "fmt"

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

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

基本上就這些操作

我的使用方法是在添加新文章時(shí),將表單提交的數(shù)據(jù)直接通過上面的方法轉(zhuǎn)換后,將markdown和轉(zhuǎn)換后的內(nèi)容都存儲(chǔ)到數(shù)據(jù)庫中

不過我在前端渲染時(shí),又出現(xiàn)了問題,就是轉(zhuǎn)換后的內(nèi)容中的html標(biāo)簽會(huì)直接顯示在網(wǎng)頁上,為避免這種狀況,我使用了自定義模板函數(shù)

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

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

  // 使用模板函數(shù)

  {{ .Content|unescaped }}

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Go語言學(xué)習(xí)技巧之命名規(guī)范

    Go語言學(xué)習(xí)技巧之命名規(guī)范

    最近在學(xué)習(xí)go語言,發(fā)現(xiàn)了不少需要整理的知識(shí)點(diǎn),所以整理下分享出來,下面這篇文章主要給大家介紹了關(guān)于Go語言學(xué)習(xí)技巧之命名規(guī)范的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-12-12
  • Go語言題解LeetCode561數(shù)組拆分

    Go語言題解LeetCode561數(shù)組拆分

    這篇文章主要為大家介紹了Go語言題解LeetCode561數(shù)組拆分示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 超越傳統(tǒng):Go語言并發(fā)編程的新境界

    超越傳統(tǒng):Go語言并發(fā)編程的新境界

    Go語言是一種開源的編程語言,以其強(qiáng)大的并發(fā)編程能力而聞名,本文將介紹Go語言并發(fā)編程的新境界,探討如何利用Go語言的特性來實(shí)現(xiàn)高效的并發(fā)編程,需要的朋友可以參考下
    2023-10-10
  • golang中單向channel的語法介紹

    golang中單向channel的語法介紹

    通過消息來共享數(shù)據(jù)是golang的一種設(shè)計(jì)哲學(xué),channel則是這種哲理的體現(xiàn)。下面這篇文章主要給大家介紹了關(guān)于golang中單向channel語法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面來一起看看吧。
    2017-07-07
  • go語言中range用法

    go語言中range用法

    這篇文章主要介紹了go語言中range用法,實(shí)例分析了Go語言中range的功能及使用技巧,需要的朋友可以參考下
    2015-03-03
  • go實(shí)現(xiàn)限流功能示例

    go實(shí)現(xiàn)限流功能示例

    這篇文章主要為大家介紹了go實(shí)現(xiàn)限流功能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Golang實(shí)現(xiàn)帶優(yōu)先級(jí)的select

    Golang實(shí)現(xiàn)帶優(yōu)先級(jí)的select

    這篇文章主要為大家詳細(xì)介紹了如何在Golang中實(shí)現(xiàn)帶優(yōu)先級(jí)的select,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Golang有一定的幫助,需要的可以參考一下
    2023-04-04
  • Golang截取字符串方法示例講解及對(duì)比

    Golang截取字符串方法示例講解及對(duì)比

    這篇文章主要介紹了Golang截取字符串方法,文中介紹了使用rune函數(shù)和utf包以及range遍歷的方式,熟練掌握這些可以幫助我們更方便地處理字符串,提高編程效率和代碼質(zhì)量,感興趣的同學(xué)可以參考下文
    2023-05-05
  • Golang切片Slice功能操作詳情

    Golang切片Slice功能操作詳情

    這篇文章主要介紹了Golang切片功能操作詳情,切片是一個(gè)擁有相同類型元素的可變長度的序列。它是基于數(shù)組類型做的一層封,切片是一個(gè)引用類型,它的內(nèi)部結(jié)構(gòu)包含地址、長度和容量
    2022-09-09
  • Go 實(shí)現(xiàn)熱重啟的詳細(xì)介紹

    Go 實(shí)現(xiàn)熱重啟的詳細(xì)介紹

    這篇文章主要介紹了Go 實(shí)現(xiàn)熱重啟的詳細(xì)介紹,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論

洛阳市| 南木林县| 靖州| 丰城市| 永靖县| 西乌| 曲周县| 图木舒克市| 永康市| 济宁市| 昌图县| 西华县| 汉川市| 金门县| 志丹县| 聂拉木县| 泸水县| 大埔区| 罗定市| 惠东县| 兖州市| 塔城市| 正镶白旗| 繁昌县| 祁连县| 南召县| 洛浦县| 汪清县| 犍为县| 怀安县| 威信县| 格尔木市| 惠州市| 秦皇岛市| 湟中县| 容城县| 竹北市| 丁青县| 紫阳县| 石家庄市| 湾仔区|