mirror of
https://github.com/yuin/goldmark
synced 2025-03-04 23:04:52 +00:00
Refactoring
This commit is contained in:
parent
e9b382fb0a
commit
45222d6b03
10 changed files with 26 additions and 30 deletions
|
|
@ -220,11 +220,11 @@ type definitionList struct {
|
|||
var DefinitionList = &definitionList{}
|
||||
|
||||
func (e *definitionList) Extend(m goldmark.Markdown) {
|
||||
m.Parser().AddOption(parser.WithBlockParsers(
|
||||
m.Parser().AddOptions(parser.WithBlockParsers(
|
||||
util.Prioritized(NewDefinitionListParser(), 101),
|
||||
util.Prioritized(NewDefinitionDescriptionParser(), 102),
|
||||
))
|
||||
m.Renderer().AddOption(renderer.WithNodeRenderers(
|
||||
m.Renderer().AddOptions(renderer.WithNodeRenderers(
|
||||
util.Prioritized(NewDefinitionListHTMLRenderer(), 500),
|
||||
))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -263,22 +263,18 @@ type footnote struct {
|
|||
var Footnote = &footnote{}
|
||||
|
||||
func (e *footnote) Extend(m goldmark.Markdown) {
|
||||
m.Parser().AddOption(
|
||||
m.Parser().AddOptions(
|
||||
parser.WithBlockParsers(
|
||||
util.Prioritized(NewFootnoteBlockParser(), 999),
|
||||
),
|
||||
)
|
||||
m.Parser().AddOption(
|
||||
parser.WithInlineParsers(
|
||||
util.Prioritized(NewFootnoteParser(), 101),
|
||||
),
|
||||
)
|
||||
m.Parser().AddOption(
|
||||
parser.WithASTTransformers(
|
||||
util.Prioritized(NewFootnoteASTTransformer(), 999),
|
||||
),
|
||||
)
|
||||
m.Renderer().AddOption(renderer.WithNodeRenderers(
|
||||
m.Renderer().AddOptions(renderer.WithNodeRenderers(
|
||||
util.Prioritized(NewFootnoteHTMLRenderer(), 500),
|
||||
))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ var filterTags = []string{
|
|||
}
|
||||
|
||||
func (e *gfm) Extend(m goldmark.Markdown) {
|
||||
m.Parser().AddOption(parser.WithFilterTags(filterTags...))
|
||||
m.Parser().AddOptions(parser.WithFilterTags(filterTags...))
|
||||
Linkify.Extend(m)
|
||||
Table.Extend(m)
|
||||
Strikethrough.Extend(m)
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ type linkify struct {
|
|||
var Linkify = &linkify{}
|
||||
|
||||
func (e *linkify) Extend(m goldmark.Markdown) {
|
||||
m.Parser().AddOption(parser.WithInlineParsers(
|
||||
m.Parser().AddOptions(parser.WithInlineParsers(
|
||||
util.Prioritized(NewLinkifyParser(), 999),
|
||||
))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -98,10 +98,10 @@ type strikethrough struct {
|
|||
var Strikethrough = &strikethrough{}
|
||||
|
||||
func (e *strikethrough) Extend(m goldmark.Markdown) {
|
||||
m.Parser().AddOption(parser.WithInlineParsers(
|
||||
m.Parser().AddOptions(parser.WithInlineParsers(
|
||||
util.Prioritized(NewStrikethroughParser(), 500),
|
||||
))
|
||||
m.Renderer().AddOption(renderer.WithNodeRenderers(
|
||||
m.Renderer().AddOptions(renderer.WithNodeRenderers(
|
||||
util.Prioritized(NewStrikethroughHTMLRenderer(), 500),
|
||||
))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -219,10 +219,10 @@ type table struct {
|
|||
var Table = &table{}
|
||||
|
||||
func (e *table) Extend(m goldmark.Markdown) {
|
||||
m.Parser().AddOption(parser.WithParagraphTransformers(
|
||||
m.Parser().AddOptions(parser.WithParagraphTransformers(
|
||||
util.Prioritized(NewTableParagraphTransformer(), 200),
|
||||
))
|
||||
m.Renderer().AddOption(renderer.WithNodeRenderers(
|
||||
m.Renderer().AddOptions(renderer.WithNodeRenderers(
|
||||
util.Prioritized(NewTableHTMLRenderer(), 500),
|
||||
))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -106,10 +106,10 @@ type taskList struct {
|
|||
var TaskList = &taskList{}
|
||||
|
||||
func (e *taskList) Extend(m goldmark.Markdown) {
|
||||
m.Parser().AddOption(parser.WithInlineParsers(
|
||||
m.Parser().AddOptions(parser.WithInlineParsers(
|
||||
util.Prioritized(NewTaskCheckBoxParser(), 0),
|
||||
))
|
||||
m.Renderer().AddOption(renderer.WithNodeRenderers(
|
||||
m.Renderer().AddOptions(renderer.WithNodeRenderers(
|
||||
util.Prioritized(NewTaskCheckBoxHTMLRenderer(), 500),
|
||||
))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,9 +71,7 @@ func WithParser(p parser.Parser) Option {
|
|||
// WithParserOptions applies options for the parser.
|
||||
func WithParserOptions(opts ...parser.Option) Option {
|
||||
return func(m *markdown) {
|
||||
for _, opt := range opts {
|
||||
m.parser.AddOption(opt)
|
||||
}
|
||||
m.parser.AddOptions(opts...)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -87,9 +85,7 @@ func WithRenderer(r renderer.Renderer) Option {
|
|||
// WithRendererOptions applies options for the renderer.
|
||||
func WithRendererOptions(opts ...renderer.Option) Option {
|
||||
return func(m *markdown) {
|
||||
for _, opt := range opts {
|
||||
m.renderer.AddOption(opt)
|
||||
}
|
||||
m.renderer.AddOptions(opts...)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -317,7 +317,7 @@ type Parser interface {
|
|||
Parse(reader text.Reader, opts ...ParseOption) ast.Node
|
||||
|
||||
// AddOption adds the given option to thie parser.
|
||||
AddOption(Option)
|
||||
AddOptions(...Option)
|
||||
}
|
||||
|
||||
// A SetOptioner interface sets the given option to the object.
|
||||
|
|
@ -564,8 +564,10 @@ func NewParser(options ...Option) Parser {
|
|||
return p
|
||||
}
|
||||
|
||||
func (p *parser) AddOption(o Option) {
|
||||
o.SetConfig(p.config)
|
||||
func (p *parser) AddOptions(opts ...Option) {
|
||||
for _, opt := range opts {
|
||||
opt.SetConfig(p.config)
|
||||
}
|
||||
}
|
||||
|
||||
func (p *parser) addBlockParser(v util.PrioritizedValue, options map[OptionName]interface{}) {
|
||||
|
|
@ -686,7 +688,7 @@ func (p *parser) Parse(reader text.Reader, opts ...ParseOption) ast.Node {
|
|||
for _, at := range p.astTransformers {
|
||||
at.Transform(root, reader, pc)
|
||||
}
|
||||
root.Dump(reader.Source(), 0)
|
||||
//root.Dump(reader.Source(), 0)
|
||||
return root
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -90,8 +90,8 @@ type NodeRendererFuncRegisterer interface {
|
|||
type Renderer interface {
|
||||
Render(w io.Writer, source []byte, n ast.Node) error
|
||||
|
||||
// AddOption adds given option to thie parser.
|
||||
AddOption(Option)
|
||||
// AddOptions adds given option to thie parser.
|
||||
AddOptions(...Option)
|
||||
}
|
||||
|
||||
type renderer struct {
|
||||
|
|
@ -119,8 +119,10 @@ func NewRenderer(options ...Option) Renderer {
|
|||
return r
|
||||
}
|
||||
|
||||
func (r *renderer) AddOption(o Option) {
|
||||
o.SetConfig(r.config)
|
||||
func (r *renderer) AddOptions(opts ...Option) {
|
||||
for _, opt := range opts {
|
||||
opt.SetConfig(r.config)
|
||||
}
|
||||
}
|
||||
|
||||
func (r *renderer) Register(kind ast.NodeKind, v NodeRendererFunc) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue