Skip to content

Commit c3106da

Browse files
committed
- [*] refactor out handleOptions() & handlePlugins() to reduce cyclomatic complexity of html2md()
1 parent e7c5acc commit c3106da

1 file changed

Lines changed: 28 additions & 19 deletions

File tree

prop_html2md.go

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,30 @@ func html2md(ctx *cli.Context) error {
2929

3030
// Options handling
3131
opt := &md.Options{}
32+
opt = handleOptions(opt, rootArgv)
33+
clis.Verbose(1, "%#v\n", opt)
34+
35+
doc, err := goquery.NewDocumentFromReader(rootArgv.Filei)
36+
clis.AbortOn("Reading file with goquery", err)
37+
content := doc.Find(rootArgv.Sel)
38+
39+
domain, url := rootArgv.Domain, rootArgv.Filei.Name()
40+
if domain == "" && regexp.MustCompile(`(?i)^http`).MatchString(url) {
41+
domain = md.DomainFromURL(url)
42+
}
43+
clis.Verbose(2, "domain='%s'\n", domain)
44+
conv := md.NewConverter(domain, true, opt)
45+
46+
// Plugin handling
47+
conv = handlePlugins(conv, rootArgv)
48+
markdown := conv.Convert(content)
49+
50+
fmt.Println(markdown)
51+
52+
return nil
53+
}
54+
55+
func handleOptions(opt *md.Options, rootArgv *rootT) *md.Options {
3256
if rootArgv.OptHeadingStyle != "" {
3357
opt.HeadingStyle = rootArgv.OptHeadingStyle
3458
}
@@ -56,20 +80,10 @@ func html2md(ctx *cli.Context) error {
5680
if rootArgv.OptLinkReferenceStyle != "" {
5781
opt.LinkReferenceStyle = rootArgv.OptLinkReferenceStyle
5882
}
59-
clis.Verbose(1, "%#v\n", opt)
60-
61-
doc, err := goquery.NewDocumentFromReader(rootArgv.Filei)
62-
clis.AbortOn("Reading file with goquery", err)
63-
content := doc.Find(rootArgv.Sel)
64-
65-
domain, url := rootArgv.Domain, rootArgv.Filei.Name()
66-
if domain == "" && regexp.MustCompile(`(?i)^http`).MatchString(url) {
67-
domain = md.DomainFromURL(url)
68-
}
69-
clis.Verbose(2, "domain='%s'\n", domain)
70-
conv := md.NewConverter(domain, true, opt)
83+
return opt
84+
}
7185

72-
// Plugin handling
86+
func handlePlugins(conv *md.Converter, rootArgv *rootT) *md.Converter {
7387
if rootArgv.PluginConfluenceAttachments {
7488
conv.Use(plugin.ConfluenceAttachments())
7589
}
@@ -97,10 +111,5 @@ func html2md(ctx *cli.Context) error {
97111
// if rootArgv.PluginYoutubeEmbed {
98112
// conv.Use(plugin.YoutubeEmbed())
99113
// }
100-
101-
markdown := conv.Convert(content)
102-
103-
fmt.Println(markdown)
104-
105-
return nil
114+
return conv
106115
}

0 commit comments

Comments
 (0)