aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/yuin/goldmark-meta/README.md
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2024-10-25 00:47:47 +0200
committerMitja Felicijan <mitja.felicijan@gmail.com>2024-10-25 00:47:47 +0200
commitc6cc0108ca7738023b45e0eeac0fa2390532dd93 (patch)
tree36890e6cd3091bbab8efbe686cc56f467f645bfd /vendor/github.com/yuin/goldmark-meta/README.md
parent0130404a1dc663d4aa68d780c9bcb23a4243e68d (diff)
downloadjbmafp-master.tar.gz
Added vendor lock on depsHEADmaster
Diffstat (limited to 'vendor/github.com/yuin/goldmark-meta/README.md')
-rw-r--r--vendor/github.com/yuin/goldmark-meta/README.md187
1 files changed, 187 insertions, 0 deletions
diff --git a/vendor/github.com/yuin/goldmark-meta/README.md b/vendor/github.com/yuin/goldmark-meta/README.md
new file mode 100644
index 0000000..4eb7728
--- /dev/null
+++ b/vendor/github.com/yuin/goldmark-meta/README.md
@@ -0,0 +1,187 @@
1goldmark-meta
2=========================
3[![GoDev][godev-image]][godev-url]
4
5[godev-image]: https://pkg.go.dev/badge/github.com/yuin/goldmark-meta
6[godev-url]: https://pkg.go.dev/github.com/yuin/goldmark-meta
7
8
9goldmark-meta is an extension for the [goldmark](http://github.com/yuin/goldmark)
10that allows you to define document metadata in YAML format.
11
12Usage
13--------------------
14
15### Installation
16
17```
18go get github.com/yuin/goldmark-meta
19```
20
21### Markdown syntax
22
23YAML metadata block is a leaf block that can not have any markdown element
24as a child.
25
26YAML metadata must start with a **YAML metadata separator**.
27This separator must be at first line of the document.
28
29A **YAML metadata separator** is a line that only `-` is repeated.
30
31YAML metadata must end with a **YAML metadata separator**.
32
33You can define objects as a 1st level item. At deeper level, you can define
34any kind of YAML element.
35
36Example:
37
38```
39---
40Title: goldmark-meta
41Summary: Add YAML metadata to the document
42Tags:
43 - markdown
44 - goldmark
45---
46
47# Heading 1
48```
49
50
51### Access the metadata
52
53```go
54import (
55 "bytes"
56 "fmt"
57 "github.com/yuin/goldmark"
58 "github.com/yuin/goldmark/extension"
59 "github.com/yuin/goldmark/parser"
60 "github.com/yuin/goldmark-meta"
61)
62
63func main() {
64 markdown := goldmark.New(
65 goldmark.WithExtensions(
66 meta.Meta,
67 ),
68 )
69 source := `---
70Title: goldmark-meta
71Summary: Add YAML metadata to the document
72Tags:
73 - markdown
74 - goldmark
75---
76
77# Hello goldmark-meta
78`
79
80 var buf bytes.Buffer
81 context := parser.NewContext()
82 if err := markdown.Convert([]byte(source), &buf, parser.WithContext(context)); err != nil {
83 panic(err)
84 }
85 metaData := meta.Get(context)
86 title := metaData["Title"]
87 fmt.Print(title)
88}
89```
90
91Or `WithStoresInDocument` option:
92
93```go
94import (
95 "bytes"
96 "fmt"
97 "github.com/yuin/goldmark"
98 "github.com/yuin/goldmark/extension"
99 "github.com/yuin/goldmark/parser"
100 "github.com/yuin/goldmark-meta"
101)
102
103func main() {
104 markdown := goldmark.New(
105 goldmark.WithExtensions(
106 meta.New(
107 meta.WithStoresInDocument(),
108 ),
109 ),
110 )
111 source := `---
112Title: goldmark-meta
113Summary: Add YAML metadata to the document
114Tags:
115 - markdown
116 - goldmark
117---
118`
119
120 document := markdown.Parser().Parse(text.NewReader([]byte(source)))
121 metaData := document.OwnerDocument().Meta()
122 title := metaData["Title"]
123 fmt.Print(title)
124```
125
126### Render the metadata as a table
127
128You need to add `extension.TableHTMLRenderer` or the `Table` extension to
129render metadata as a table.
130
131```go
132import (
133 "bytes"
134 "fmt"
135 "github.com/yuin/goldmark"
136 "github.com/yuin/goldmark/extension"
137 "github.com/yuin/goldmark/parser"
138 "github.com/yuin/goldmark/renderer"
139 "github.com/yuin/goldmark/util"
140 "github.com/yuin/goldmark-meta"
141)
142
143func main() {
144 markdown := goldmark.New(
145 goldmark.WithExtensions(
146 meta.New(meta.WithTable()),
147 ),
148 goldmark.WithRendererOptions(
149 renderer.WithNodeRenderers(
150 util.Prioritized(extension.NewTableHTMLRenderer(), 500),
151 ),
152 ),
153 )
154 // OR
155 // markdown := goldmark.New(
156 // goldmark.WithExtensions(
157 // meta.New(meta.WithTable()),
158 // extension.Table,
159 // ),
160 // )
161 source := `---
162Title: goldmark-meta
163Summary: Add YAML metadata to the document
164Tags:
165 - markdown
166 - goldmark
167---
168
169# Hello goldmark-meta
170`
171
172 var buf bytes.Buffer
173 if err := markdown.Convert([]byte(source), &buf); err != nil {
174 panic(err)
175 }
176 fmt.Print(buf.String())
177}
178```
179
180
181License
182--------------------
183MIT
184
185Author
186--------------------
187Yusuke Inuzuka