Skip to content

A Syntax highlighting extension for the goldmark markdown parser.

License

Notifications You must be signed in to change notification settings

yuin/goldmark-highlighting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

goldmark-highlighting

goldmark-highlighting is an extension for the goldmark that adds syntax-highlighting to the fenced code blocks.

goldmark-highlighting uses chroma as a syntax highlighter.

Installation

go get github.com/yuin/goldmark-highlighting/v2

Usage

package main

import (
	"bytes"
	"fmt"

	"github.com/yuin/goldmark"

	chromahtml "github.com/alecthomas/chroma/v2/formatters/html"
	highlighting "github.com/yuin/goldmark-highlighting/v2"
)

func main() {
	mdsrc := `
		Title
		=======
		` + "```" + `
		func main() {
		    fmt.Println("ok")
		}
		` + "```" + `
	`

	// Simple usage
	markdown := goldmark.New(
		goldmark.WithExtensions(
			highlighting.Highlighting,
		),
	)
	var buf bytes.Buffer
	if err := markdown.Convert([]byte(mdsrc), &buf); err != nil {
		panic(err)
	}
	title := buf.String()
	fmt.Print(title)

	// Custom configuration
	markdown2 := goldmark.New(
		goldmark.WithExtensions(
			highlighting.NewHighlighting(
				highlighting.WithStyle("monokai"),
				highlighting.WithFormatOptions(
					chromahtml.WithLineNumbers(true),
				),
			),
		),
	)
	var buf2 bytes.Buffer
	if err := markdown2.Convert([]byte(mdsrc), &buf2); err != nil {
		panic(err)
	}
	title2 := buf2.String()
	fmt.Print(title2)
}

License

MIT

Author

Yusuke Inuzuka

About

A Syntax highlighting extension for the goldmark markdown parser.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages