markdown

package module
v0.0.0-...-4236131 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 21, 2024 License: MIT Imports: 10 Imported by: 0

README

Go Reference LinuxUnitTest MacUnitTest WindowsUnitTest reviewdog Gosec Coverage

What is markdown package

The Package markdown is a simple markdown builder in golang. This library assembles Markdown using method chaining, not uses a template engine like html/template. The syntax of Markdown follows GitHub Markdown.

This library was initially developed to display test results in go-spectest/spectest. Therefore, it implements the features required by spectest, but there are no plans to add additional functionalities unless requested by someone.

Additionally, complex code that increases the complexity of the library, such as generating nested lists, will not be added. I want to keep this library as simple as possible.

Supported OS and go version

  • OS: Linux, macOS, Windows
  • Go: 1.18 or later

Supported Markdown features

  • Heading; H1, H2, H3, H4, H5, H6
  • Blockquote
  • Bullet list
  • Ordered list
  • Checkbox list
  • Code blocks
  • Horizontal rule
  • Table
  • Text formatting; bold, italic, code, strikethrough, bold italic
  • Text with link
  • Text with image
  • Plain text
  • Details
  • Alerts; NOTE, TIP, IMPORTANT, CAUTION, WARNING
Features not in Markdown syntax
  • Generate badges; RedBadge(), YellowBadge(), GreenBadge().
  • Generate an index for a directory full of markdown files; GenerateIndex()

Example

Basic usage
package main

import (
	"os"

	md "github.com/go-spectest/markdown"
)

func main() {
	md.NewMarkdown(os.Stdout).
		H1("This is H1").
		PlainText("This is plain text").
		H2f("This is %s with text format", "H2").
		PlainTextf("Text formatting, such as %s and %s, %s styles.",
			md.Bold("bold"), md.Italic("italic"), md.Code("code")).
		H2("Code Block").
		CodeBlocks(md.SyntaxHighlightGo,
			`package main
import "fmt"

func main() {
	fmt.Println("Hello, World!")
}`).
		H2("List").
		BulletList("Bullet Item 1", "Bullet Item 2", "Bullet Item 3").
		OrderedList("Ordered Item 1", "Ordered Item 2", "Ordered Item 3").
		H2("CheckBox").
		CheckBox([]md.CheckBoxSet{
			{Checked: false, Text: md.Code("sample code")},
			{Checked: true, Text: md.Link("Go", "https://golang.org")},
			{Checked: false, Text: md.Strikethrough("strikethrough")},
		}).
		H2("Blockquote").
		Blockquote("If you can dream it, you can do it.").
		H3("Horizontal Rule").
		HorizontalRule().
		H2("Table").
		Table(md.TableSet{
			Header: []string{"Name", "Age", "Country"},
			Rows: [][]string{
				{"David", "23", "USA"},
				{"John", "30", "UK"},
				{"Bob", "25", "Canada"},
			},
		}).
		H2("Image").
		PlainTextf(md.Image("sample_image", "./sample.png")).
		Build()
}

Output:

# This is H1
This is plain text
  
## This is H2 with text format
Text formatting, such as **bold** and *italic*, `code` styles.
  
## Code Block
```go
package main
import "fmt"

func main() {
        fmt.Println("Hello, World!")
}
```
  
## List
- Bullet Item 1
- Bullet Item 2
- Bullet Item 3
1. Ordered Item 1
2. Ordered Item 2
3. Ordered Item 3
  
## CheckBox
- [ ] `sample code`
- [x] [Go](https://golang.org)
- [ ] ~~strikethrough~~
  
## Blockquote
> If you can dream it, you can do it.
  
### Horizontal Rule
---
  
## Table
| NAME  | AGE | COUNTRY |
|-------|-----|---------|
| David |  23 | USA     |
| John  |  30 | UK      |
| Bob   |  25 | Canada  |

## Image
![sample_image](./sample.png)

If you want to see how it looks in Markdown, please refer to the following link.

Generate alerts

The markdown package can create alerts. Alerts are useful for displaying important information in Markdown. This syntax is supported by GitHub. Code example:

	md.NewMarkdown(f).
		H1("Alert example").
		Note("This is note").LF().
		Tip("This is tip").LF().
		Important("This is important").LF().
		Warning("This is warning").LF().
		Caution("This is caution").LF().
		Build()

Output:

# Alert example
> [!NOTE]  
> This is note
  
> [!TIP]  
> This is tip
  
> [!IMPORTANT]  
> This is important
  
> [!WARNING]  
> This is warning
  
> [!CAUTION]  
> This is caution

Your alert will look like this;

[!NOTE]
This is note

[!TIP]
This is tip

[!IMPORTANT]
This is important

[!WARNING]
This is warning

[!CAUTION]
This is caution

Generate status badge

The markdown package can create red, yellow, and green status badges. Code example:

	md.NewMarkdown(os.Stdout).
		H1("badge example").
		RedBadge("red_badge").
		YellowBadge("yellow_badge").
		GreenBadge("green_badge").
		Build()

Output:

# badge example
![Badge](https://img.shields.io/badge/red_badge-red)
![Badge](https://img.shields.io/badge/yellow_badge-yellow)
![Badge](https://img.shields.io/badge/green_badge-green)

Your badge will look like this;
Badge Badge Badge

Generate Markdown using "go generate ./..."

You can generate Markdown using go generate. Please define code to generate Markdown first. Then, run "go generate ./..." to generate Markdown.

Code example:

package main

import (
	"os"

	md "github.com/go-spectest/markdown"
)

//go:generate go run main.go

func main() {
	f, err := os.Create("generated.md")
	if err != nil {
		panic(err)
	}

	md.NewMarkdown(f).
		H1("go generate example").
		PlainText("This markdown is generated by `go generate`").
		Build()
}

Run below command:

go generate ./...

Output:

# go generate example
This markdown is generated by `go generate`

Creating an index for a directory full of markdown files

The markdown package can create an index for Markdown files within the specified directory. This feature was added to generate indexes for Markdown documents produced by go-spectest/spectest.

For example, consider the following directory structure:

testdata
├── abc
│   ├── dummy.txt
│   ├── jkl
│   │   └── text.md
│   └── test.md
├── def
│   ├── test.md
│   └── test2.md
├── expected
│   └── index.md
├── ghi
└── test.md

In the following implementation, it creates an index markdown file containing links to all markdown files located within the testdata directory.

		if err := GenerateIndex(
			"testdata", // target directory that contains markdown files
			WithTitle("Test Title"), // title of index markdown
			WithDescription([]string{"Test Description", "Next Description"}), // description of index markdown
		); err != nil {
			panic(err)
		}

The index Markdown file is created under "target directory/index.md" by default. If you want to change this path, please use the WithWriter() option. The link names in the file will be the first occurrence of H1 or H2 in the target Markdown. If neither H1 nor H2 is present, the link name will be the file name of the destination.

Output:

## Test Title
Test Description
  
Next Description
  
### testdata
- [test.md](test.md)
  
### abc
- [h2 is here](abc/test.md)
  
### jkl
- [text.md](abc/jkl/text.md)
  
### def
- [h2 is first, not h1](def/test.md)
- [h1 is here](def/test2.md)
  
### expected
- [Test Title](expected/index.md)

Contribution

First off, thanks for taking the time to contribute! Contributions are not only related to development. For example, GitHub Star motivates me to develop! Please feel free to contribute to this project.

License

MIT License

Documentation

Overview

Package markdown is markdown builder that includes to convert Markdown to HTML.

Example

Examle is example code. Skip this test on Windows. The newline codes in the comment section where the expected values are written are represented as '\n', causing failures when testing on Windows.

package main

import (
	"os"

	md "github.com/go-spectest/markdown"
)

func main() {
	md.NewMarkdown(os.Stdout).
		H1("This is H1").
		PlainText("This is plain text").
		H2f("This is %s with text format", "H2").
		PlainTextf("Text formatting, such as %s and %s, %s styles.",
			md.Bold("bold"), md.Italic("italic"), md.Code("code")).
		H2("Code Block").
		CodeBlocks(md.SyntaxHighlightGo,
			`package main
import "fmt"

func main() {
	fmt.Println("Hello, World!")
}`).
		H2("List").
		BulletList("Bullet Item 1", "Bullet Item 2", "Bullet Item 3").
		OrderedList("Ordered Item 1", "Ordered Item 2", "Ordered Item 3").
		H2("CheckBox").
		CheckBox([]md.CheckBoxSet{
			{Checked: false, Text: md.Code("sample code")},
			{Checked: true, Text: md.Link("Go", "https://golang.org")},
			{Checked: false, Text: md.Strikethrough("strikethrough")},
		}).
		H2("Blockquote").
		Blockquote("If you can dream it, you can do it.").
		H3("Horizontal Rule").
		HorizontalRule().
		H2("Table").
		Table(md.TableSet{
			Header: []string{"Name", "Age", "Country"},
			Rows: [][]string{
				{"David", "23", "USA"},
				{"John", "30", "UK"},
				{"Bob", "25", "Canada"},
			},
		}).
		H2("Image").
		PlainTextf(md.Image("sample_image", "./sample.png")).
		Build()

}
Output:

# This is H1
This is plain text
## This is H2 with text format
Text formatting, such as **bold** and *italic*, `code` styles.
## Code Block
```go
package main
import "fmt"

func main() {
	fmt.Println("Hello, World!")
}
```
## List
- Bullet Item 1
- Bullet Item 2
- Bullet Item 3
1. Ordered Item 1
2. Ordered Item 2
3. Ordered Item 3
## CheckBox
- [ ] `sample code`
- [x] [Go](https://golang.org)
- [ ] ~~strikethrough~~
## Blockquote
> If you can dream it, you can do it.
### Horizontal Rule
---
## Table
| NAME  | AGE | COUNTRY |
|-------|-----|---------|
| David |  23 | USA     |
| John  |  30 | UK      |
| Bob   |  25 | Canada  |

## Image
![sample_image](./sample.png)

Index

Examples

Constants

This section is empty.

Variables

View Source
var (
	// ErrMismatchColumn is returned when the number of columns in the record doesn't match the header.
	ErrMismatchColumn = errors.New("number of columns in the record doesn't match the header")
	// ErrInitMarkdownIndex is returned when the index can't be initialized.
	ErrInitMarkdownIndex = errors.New("markdown index can't be initialized")
	// ErrCreateMarkdownIndex is returned when the index can't be created.
	ErrCreateMarkdownIndex = errors.New("markdown index can't be created")
	// ErrWriteMarkdownIndex is returned when the index can't be written.
	ErrWriteMarkdownIndex = errors.New("markdown index can't be written")
)

Functions

func Bold

func Bold(text string) string

Bold return text with bold format. If you set text "Hello", it will be converted to "**Hello**".

func BoldItalic

func BoldItalic(text string) string

BoldItalic return text with bold and italic format. If you set text "Hello", it will be converted to "***Hello***".

func Code

func Code(text string) string

Code return text with code format. If you set text "Hello", it will be converted to "`Hello`".

func GenerateIndex

func GenerateIndex(targetDir string, opts ...IndexOption) error

GenerateIndex generates an index of all markdown files in the target directory. The index is written to the provided io.Writer.

func Image

func Image(text, url string) string

Image return text with image format. If you set text "Hello" and url "https://example.com/image.png", it will be converted to "![Hello](https://example.com/image.png)".

func Italic

func Italic(text string) string

Italic return text with italic format. If you set text "Hello", it will be converted to "*Hello*".

func Link(text, url string) string

Link return text with link format. If you set text "Hello" and url "https://example.com", it will be converted to "[Hello](https://example.com)".

func Strikethrough

func Strikethrough(text string) string

Strikethrough return text with strikethrough format. If you set text "Hello", it will be converted to "~~Hello~~".

Types

type CheckBoxSet

type CheckBoxSet struct {
	// Checked is whether checked or not.
	Checked bool
	// Text is checkbox text.
	Text string
}

CheckBoxSet is markdown checkbox list.

type Index

type Index struct {
	// contains filtered or unexported fields
}

Index represents an Index of all markdown files in a directory.

type IndexOption

type IndexOption func(*Index) error

IndexOption are options for generating an index.

func WithDescription

func WithDescription(description []string) IndexOption

WithDescription sets the description of the index.

func WithTitle

func WithTitle(title string) IndexOption

WithTitle sets the title of the index.

func WithWriter

func WithWriter(w io.Writer) IndexOption

WithWriter sets the writer to write the index to.

type Markdown

type Markdown struct {
	// contains filtered or unexported fields
}

Markdown is markdown text.

func NewMarkdown

func NewMarkdown(w io.Writer) *Markdown

NewMarkdown returns new Markdown.

func (*Markdown) Blockquote

func (m *Markdown) Blockquote(text string) *Markdown

Blockquote is markdown blockquote. If you set text "Hello", it will be converted to "> Hello".

func (*Markdown) Build

func (m *Markdown) Build() error

Build writes markdown text to output destination.

func (*Markdown) BulletList

func (m *Markdown) BulletList(text ...string) *Markdown

BulletList is markdown bullet list. If you set text "Hello", it will be converted to "- Hello".

func (*Markdown) Caution

func (m *Markdown) Caution(text string) *Markdown

Caution set text with caution format.

func (*Markdown) Cautionf

func (m *Markdown) Cautionf(format string, args ...interface{}) *Markdown

Cautionf set text with caution format. It is similar to fmt.Sprintf.

func (*Markdown) CheckBox

func (m *Markdown) CheckBox(set []CheckBoxSet) *Markdown

CheckBox is markdown CheckBox.

func (*Markdown) CodeBlocks

func (m *Markdown) CodeBlocks(lang SyntaxHighlight, text string) *Markdown

CodeBlocks is code blocks. If you set text "Hello" and lang "go", it will be converted to "```go Hello ```".

func (*Markdown) Details

func (m *Markdown) Details(summary, text string) *Markdown

Details is markdown details.

func (*Markdown) Detailsf

func (m *Markdown) Detailsf(summary, format string, args ...interface{}) *Markdown

Detailsf is markdown details with format.

func (*Markdown) Error

func (m *Markdown) Error() error

Error returns error.

func (*Markdown) GreenBadge

func (m *Markdown) GreenBadge(text string) *Markdown

GreenBadge set text with green badge format.

func (*Markdown) GreenBadgef

func (m *Markdown) GreenBadgef(format string, args ...interface{}) *Markdown

GreenBadgef set text with green badge format. It is similar to fmt.Sprintf.

func (*Markdown) H1

func (m *Markdown) H1(text string) *Markdown

H1 is markdown header. If you set text "Hello", it will be converted to "# Hello".

func (*Markdown) H1f

func (m *Markdown) H1f(format string, args ...interface{}) *Markdown

H1f is markdown header with format. If you set format "%s", text "Hello", it will be converted to "# Hello".

func (*Markdown) H2

func (m *Markdown) H2(text string) *Markdown

H2 is markdown header. If you set text "Hello", it will be converted to "## Hello".

func (*Markdown) H2f

func (m *Markdown) H2f(format string, args ...interface{}) *Markdown

H2f is markdown header with format. If you set format "%s", text "Hello", it will be converted to "## Hello".

func (*Markdown) H3

func (m *Markdown) H3(text string) *Markdown

H3 is markdown header. If you set text "Hello", it will be converted to "### Hello".

func (*Markdown) H3f

func (m *Markdown) H3f(format string, args ...interface{}) *Markdown

H3f is markdown header with format. If you set format "%s", text "Hello", it will be converted to "### Hello".

func (*Markdown) H4

func (m *Markdown) H4(text string) *Markdown

H4 is markdown header. If you set text "Hello", it will be converted to "#### Hello".

func (*Markdown) H4f

func (m *Markdown) H4f(format string, args ...interface{}) *Markdown

H4f is markdown header with format. If you set format "%s", text "Hello", it will be converted to "#### Hello".

func (*Markdown) H5

func (m *Markdown) H5(text string) *Markdown

H5 is markdown header. If you set text "Hello", it will be converted to "##### Hello".

func (*Markdown) H5f

func (m *Markdown) H5f(format string, args ...interface{}) *Markdown

H5f is markdown header with format. If you set format "%s", text "Hello", it will be converted to "##### Hello".

func (*Markdown) H6

func (m *Markdown) H6(text string) *Markdown

H6 is markdown header. If you set text "Hello", it will be converted to "###### Hello".

func (*Markdown) H6f

func (m *Markdown) H6f(format string, args ...interface{}) *Markdown

H6f is markdown header with format. If you set format "%s", text "Hello", it will be converted to "###### Hello".

func (*Markdown) HorizontalRule

func (m *Markdown) HorizontalRule() *Markdown

HorizontalRule is markdown horizontal rule. It will be converted to "---".

func (*Markdown) Important

func (m *Markdown) Important(text string) *Markdown

Important set text with important format.

func (*Markdown) Importantf

func (m *Markdown) Importantf(format string, args ...interface{}) *Markdown

Importantf set text with important format. It is similar to fmt.Sprintf.

func (*Markdown) LF

func (m *Markdown) LF() *Markdown

LF is line feed.

func (*Markdown) Note

func (m *Markdown) Note(text string) *Markdown

Note set text with note format.

func (*Markdown) Notef

func (m *Markdown) Notef(format string, args ...interface{}) *Markdown

Notef set text with note format. It is similar to fmt.Sprintf.

func (*Markdown) OrderedList

func (m *Markdown) OrderedList(text ...string) *Markdown

OrderedList is markdown number list. If you set text "Hello", it will be converted to "1. Hello".

func (*Markdown) PlainText

func (m *Markdown) PlainText(text string) *Markdown

PlainText set plain text

func (*Markdown) PlainTextf

func (m *Markdown) PlainTextf(format string, args ...interface{}) *Markdown

PlainTextf set plain text with format

func (*Markdown) RedBadge

func (m *Markdown) RedBadge(text string) *Markdown

RedBadge set text with red badge format.

func (*Markdown) RedBadgef

func (m *Markdown) RedBadgef(format string, args ...interface{}) *Markdown

RedBadgef set text with red badge format. It is similar to fmt.Sprintf.

func (*Markdown) String

func (m *Markdown) String() string

String returns markdown text.

func (*Markdown) Table

func (m *Markdown) Table(t TableSet) *Markdown

Table is markdown table.

func (*Markdown) Tip

func (m *Markdown) Tip(text string) *Markdown

Tip set text with tip format.

func (*Markdown) Tipf

func (m *Markdown) Tipf(format string, args ...interface{}) *Markdown

Tipf set text with tip format. It is similar to fmt.Sprintf.

func (*Markdown) Warning

func (m *Markdown) Warning(text string) *Markdown

Warning set text with warning format.

func (*Markdown) Warningf

func (m *Markdown) Warningf(format string, args ...interface{}) *Markdown

Warningf set text with warning format. It is similar to fmt.Sprintf.

func (*Markdown) YellowBadge

func (m *Markdown) YellowBadge(text string) *Markdown

YellowBadge set text with yellow badge format.

func (*Markdown) YellowBadgef

func (m *Markdown) YellowBadgef(format string, args ...interface{}) *Markdown

YellowBadgef set text with yellow badge format. It is similar to fmt.Sprintf.

type SyntaxHighlight

type SyntaxHighlight string

SyntaxHighlight is syntax highlight language.

const (
	// SyntaxHighlightNone is no syntax highlight.
	SyntaxHighlightNone SyntaxHighlight = ""
	// SyntaxHighlightText is syntax highlight for text.
	SyntaxHighlightText SyntaxHighlight = "text"
	// SyntaxHighlightAPIBlueprint is syntax highlight for API Blueprint.
	SyntaxHighlightAPIBlueprint SyntaxHighlight = "markdown"
	// SyntaxHighlightShell is syntax highlight for Shell.
	SyntaxHighlightShell SyntaxHighlight = "shell"
	// SyntaxHighlightGo is syntax highlight for Go.
	SyntaxHighlightGo SyntaxHighlight = "go"
	// SyntaxHighlightJSON is syntax highlight for JSON.
	SyntaxHighlightJSON SyntaxHighlight = "json"
	// SyntaxHighlightYAML is syntax highlight for YAML.
	SyntaxHighlightYAML SyntaxHighlight = "yaml"
	// SyntaxHighlightXML is syntax highlight for XML.
	SyntaxHighlightXML SyntaxHighlight = "xml"
	// SyntaxHighlightHTML is syntax highlight for HTML.
	SyntaxHighlightHTML SyntaxHighlight = "html"
	// SyntaxHighlightCSS is syntax highlight for CSS.
	SyntaxHighlightCSS SyntaxHighlight = "css"
	// SyntaxHighlightJavaScript is syntax highlight for JavaScript.
	SyntaxHighlightJavaScript SyntaxHighlight = "javascript"
	// SyntaxHighlightTypeScript is syntax highlight for TypeScript.
	SyntaxHighlightTypeScript SyntaxHighlight = "typescript"
	// SyntaxHighlightSQL is syntax highlight for SQL.
	SyntaxHighlightSQL SyntaxHighlight = "sql"
	// SyntaxHighlightC is syntax highlight for C.
	SyntaxHighlightC SyntaxHighlight = "c"
	// SyntaxHighlightCSharp is syntax highlight for C#.
	SyntaxHighlightCSharp SyntaxHighlight = "csharp"
	// SyntaxHighlightCPlusPlus is syntax highlight for C++.
	SyntaxHighlightCPlusPlus SyntaxHighlight = "cpp"
	// SyntaxHighlightJava is syntax highlight for Java.
	SyntaxHighlightJava SyntaxHighlight = "java"
	// SyntaxHighlightKotlin is syntax highlight for Kotlin.
	SyntaxHighlightKotlin SyntaxHighlight = "kotlin"
	// SyntaxHighlightPHP is syntax highlight for PHP.
	SyntaxHighlightPHP SyntaxHighlight = "php"
	// SyntaxHighlightPython is syntax highlight for Python.
	SyntaxHighlightPython SyntaxHighlight = "python"
	// SyntaxHighlightRuby is syntax highlight for Ruby.
	SyntaxHighlightRuby SyntaxHighlight = "ruby"
	// SyntaxHighlightSwift is syntax highlight for Swift.
	SyntaxHighlightSwift SyntaxHighlight = "swift"
	// SyntaxHighlightScala is syntax highlight for Scala.
	SyntaxHighlightScala SyntaxHighlight = "scala"
	// SyntaxHighlightRust is syntax highlight for Rust.
	SyntaxHighlightRust SyntaxHighlight = "rust"
	// SyntaxHighlightObjectiveC is syntax highlight for Objective-C.
	SyntaxHighlightObjectiveC SyntaxHighlight = "objectivec"
	// SyntaxHighlightPerl is syntax highlight for Perl.
	SyntaxHighlightPerl SyntaxHighlight = "perl"
	// SyntaxHighlightLua is syntax highlight for Lua.
	SyntaxHighlightLua SyntaxHighlight = "lua"
	// SyntaxHighlightDart is syntax highlight for Dart.
	SyntaxHighlightDart SyntaxHighlight = "dart"
	// SyntaxHighlightClojure is syntax highlight for Clojure.
	SyntaxHighlightClojure SyntaxHighlight = "clojure"
	// SyntaxHighlightGroovy is syntax highlight for Groovy.
	SyntaxHighlightGroovy SyntaxHighlight = "groovy"
	// SyntaxHighlightR is syntax highlight for R.
	SyntaxHighlightR SyntaxHighlight = "r"
	// SyntaxHighlightHaskell is syntax highlight for Haskell.
	SyntaxHighlightHaskell SyntaxHighlight = "haskell"
	// SyntaxHighlightErlang is syntax highlight for Erlang.
	SyntaxHighlightErlang SyntaxHighlight = "erlang"
	// SyntaxHighlightElixir is syntax highlight for Elixir.
	SyntaxHighlightElixir SyntaxHighlight = "elixir"
	// SyntaxHighlightOCaml is syntax highlight for OCaml.
	SyntaxHighlightOCaml SyntaxHighlight = "ocaml"
	// SyntaxHighlightJulia is syntax highlight for Julia.
	SyntaxHighlightJulia SyntaxHighlight = "julia"
	// SyntaxHighlightScheme is syntax highlight for Scheme.
	SyntaxHighlightScheme SyntaxHighlight = "scheme"
	// SyntaxHighlightFSharp is syntax highlight for F#.
	SyntaxHighlightFSharp SyntaxHighlight = "fsharp"
	// SyntaxHighlightCoffeeScript is syntax highlight for CoffeeScript.
	SyntaxHighlightCoffeeScript SyntaxHighlight = "coffeescript"
	// SyntaxHighlightVBNet is syntax highlight for VB.NET.
	SyntaxHighlightVBNet SyntaxHighlight = "vbnet"
	// SyntaxHighlightTeX is syntax highlight for TeX.
	SyntaxHighlightTeX SyntaxHighlight = "tex"
	// SyntaxHighlightDiff is syntax highlight for Diff.
	SyntaxHighlightDiff SyntaxHighlight = "diff"
	// SyntaxHighlightApache is syntax highlight for Apache.
	SyntaxHighlightApache SyntaxHighlight = "apache"
	// SyntaxHighlightDockerfile is syntax highlight for Dockerfile.
	SyntaxHighlightDockerfile SyntaxHighlight = "dockerfile"
	// SyntaxHighlightMermaid is syntax highlight for Mermaid.
	SyntaxHighlightMermaid SyntaxHighlight = "mermaid"
)

type TableSet

type TableSet struct {
	// Header is table header.
	Header []string
	// Rows is table record.
	Rows [][]string
}

TableSet is markdown table.

func (*TableSet) ValidateColumns

func (t *TableSet) ValidateColumns() error

ValidateColumns checks if the number of columns in the header and records match.

Directories

Path Synopsis
doc
alert
Package main is generating markdown.
Package main is generating markdown.
badge
Package main is generating markdown.
Package main is generating markdown.
generate
Package main is generating markdown.
Package main is generating markdown.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL