1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
package commonmark
type linkStyle string
const (
// For example:
//
// [view more](/about.html)
LinkStyleInlined linkStyle = "inlined"
LinkStyleReferencedIndex linkStyle = "referenced_index"
LinkStyleReferencedShort linkStyle = "referenced_short"
)
type headingStyle string
const (
// HeadingStyleATX is the heading style of prefixing the heading with "#" signs indicating the level. For example:
//
// ## Heading
HeadingStyleATX headingStyle = "atx"
// HeadingStyleSetext is the heading style of putting "=" or "-" on the followed line. For example:
//
// Heading
// -------
HeadingStyleSetext headingStyle = "setext"
)
type linkRenderingBehavior string
const (
// LinkBehaviorRender renders the element as a link
LinkBehaviorRender linkRenderingBehavior = "render"
// LinkBehaviorSkip skips link rendering and falls back to the other rules (e.g. paragraph)
LinkBehaviorSkip linkRenderingBehavior = "skip"
)
// config to customize the output. You can change stuff like
// the character that is used for strong text.
type config struct {
// _ or *
//
// default: *
EmDelimiter string
// ** or __
//
// default: **
StrongDelimiter string
// Any Thematic break
//
// default: "* * *"
HorizontalRule string
// "-", "+", or "*"
//
// default: "-"
BulletListMarker string
DisableListEndComment bool
// "indented" or "fenced"
//
// default: "indented"
// TODO: CodeBlockStyle string
// ``` or ~~~
//
// default: ```
CodeBlockFence string
// "setext" or "atx"
//
// default: "atx"
HeadingStyle headingStyle
// TODO: LineBreakStyle string "hard" or "soft"
// "inlined" or "referenced_index" or "referenced_short"
//
// default: inlined
LinkStyle linkStyle
LinkEmptyHrefBehavior linkRenderingBehavior
LinkEmptyContentBehavior linkRenderingBehavior
}
func fillInDefaultConfig(cfg *config) config {
if cfg.EmDelimiter == "" {
// The new default is now "*" (instead of "_") as that works better inside words.
cfg.EmDelimiter = "*"
}
if cfg.StrongDelimiter == "" {
cfg.StrongDelimiter = "**"
}
if cfg.HorizontalRule == "" {
cfg.HorizontalRule = "* * *"
}
if cfg.BulletListMarker == "" {
cfg.BulletListMarker = "-"
}
// TODO: also check for spelling mistakes in "indented"
// if opt.CodeBlockStyle == "" {
// opt.CodeBlockStyle = "indented"
// }
if cfg.CodeBlockFence == "" {
cfg.CodeBlockFence = "```"
}
if cfg.HeadingStyle == "" {
cfg.HeadingStyle = "atx"
}
if cfg.LinkEmptyHrefBehavior == "" {
cfg.LinkEmptyHrefBehavior = LinkBehaviorRender
}
if cfg.LinkEmptyContentBehavior == "" {
cfg.LinkEmptyContentBehavior = LinkBehaviorRender
}
if cfg.LinkStyle == "" {
cfg.LinkStyle = LinkStyleInlined
}
return *cfg
}
|