Go में Markdown के साथ काम करना: blackfriday, goldmark और chroma लाइब्रेरीज़

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Go (Golang) में Markdown के साथ काम करना: लोकप्रिय लाइब्रेरीज़ का अवलोकन



Go (Golang) एक आधुनिक कम्पाइल्ड भाषा है, जिसे अक्सर उच्च-प्रदर्शन वाले वेब एप्लिकेशन, CLI-उपयोगिताएँ और स्टैटिक साइट जनरेट करने के टूल बनाने के लिए चुना जाता है। एक सामान्य कार्य Markdown मार्कअप को प्रोसेस करना है। इस लेख में हम तीन प्रमुख लाइब्रेरीज़: blackfriday, goldmark और chroma पर विचार करेंगे, और दिखाएंगे कि सिंटैक्स हाइलाइटिंग के साथ Markdown को HTML में पूर्ण कनवर्टर बनाने के लिए उन्हें कैसे संयोजित किया जाए।



1. Go में Markdown को प्रोसेस क्यों करें?

Markdown एक हल्की मार्कअप भाषा है, जिसका व्यापक रूप से दस्तावेज़ीकरण, ब्लॉग, README-फ़ाइलों और सामग्री प्रबंधन प्रणालियों में उपयोग किया जाता है। Go के इकोसिस्टम में कई परिपक्व लाइब्रेरीज़ हैं जो अनुमति देती हैं:

  • वेब प्रकाशन के लिए Markdown को HTML में बदलना।
  • कोड ब्लॉक के लिए सिंटैक्स हाइलाइटिंग जोड़ना।
  • अपने स्वयं के एक्सटेंशन बनाना (उदाहरण के लिए, LaTeX, आरेख या कस्टम ब्लॉक के लिए समर्थन)।
  • स्टैटिक साइट जनरेटर (Hugo, स्वयं के समाधान) में एकीकृत होना।


2. blackfriday लाइब्रेरी (v2)

Blackfriday Go के लिए सबसे पुरानी और सबसे लोकप्रिय लाइब्रेरीज़ में से एक है। यह उच्च गति और CommonMark मानक के करीब व्यवहार के लिए जानी जाती है। स्थापना:

go get github.com/russross/blackfriday/v2


उपयोग का एक सरल उदाहरण:

package main

import ( "fmt" "github.com/russross/blackfriday/v2")

func main() { input := []byte("## नमस्ते, Markdown!

यह **बोल्ड टेक्स्ट** और `कोड` है।") output := blackfriday.Run(input) fmt.Println(string(output))}


परिणाम — h2 शीर्षक, पैराग्राफ और strong/code टैग के साथ HTML कोड। Blackfriday एक्सटेंशन का समर्थन करता है: तालिकाएँ, स्ट्राइकथ्रू, कार्य सूचियाँ और ऑटोलिंक। सक्रिय करने के लिए उपयोग करें:

html := blackfriday.Run(input,    blackfriday.WithNoExtensions(),    blackfriday.WithExtensions(blackfriday.CommonExtensions),)


3. goldmark लाइब्रेरी (अनुशंसित)

Goldmark एक आधुनिक Markdown पार्सर है, जो शुद्ध Go में लिखा गया है। यह CommonMark 0.30 विनिर्देशन का पूरी तरह से पालन करता है और एक्सटेंशन के लिए लचीला API प्रदान करता है। स्थापना:

go get github.com/yuin/goldmark


मूल उदाहरण:

package main

import ( "bytes" "fmt" "github.com/yuin/goldmark")

func main() { source := []byte("# शीर्षक

**बोल्ड** और *इटैलिक* के साथ सामान्य टेक्स्ट।") var buf bytes.Buffer if err := goldmark.Convert(source, &buf); err != nil { panic(err) } fmt.Println(buf.String())}


Goldmark आसानी से विस्तार योग्य है। अंतर्निहित एक्सटेंशन में तालिकाएँ, कार्य सूचियाँ, फुटनोट, ऑटोलिंक और chroma के माध्यम से कोड हाइलाइटिंग शामिल हैं। तालिका एक्सटेंशन के साथ उदाहरण:

import (    "github.com/yuin/goldmark"    "github.com/yuin/goldmark/extension")

markdown := goldmark.New( goldmark.WithExtensions(extension.Table),)


4. chroma के साथ कोड हाइलाइटिंग

Chroma Go पर सिंटैक्स हाइलाइटिंग के लिए एक लाइब्रेरी है, जो 190 से अधिक प्रोग्रामिंग भाषाओं और कई थीम का समर्थन करती है। स्थापना:

go get github.com/alecthomas/chroma/v2


goldmark के साथ एकीकरण इस प्रकार दिखता है:

package main

import ( "bytes" "fmt" "github.com/alecthomas/chroma/v2/quick" "github.com/yuin/goldmark" highlighting "github.com/yuin/goldmark-highlighting/v2")

func main() { source := []byte("```gopackage main

import \\"fmt\\"

func main() { fmt.Println(\\"Hello, world!\\")}```") markdown := goldmark.New( goldmark.WithExtensions( highlighting.Highlighting,

अनुशंसाएँ