aboutsummaryrefslogtreecommitdiff
path: root/prop_html2md.go
diff options
context:
space:
mode:
authorTong Sun <[email protected]>2020-07-26 23:19:08 -0400
committerTong Sun <[email protected]>2020-07-26 23:19:08 -0400
commitc3106da398757e5accc70103410e4a903f6bde8c (patch)
tree23d7694629b56aba165daa969d4b09445c32a525 /prop_html2md.go
parent- [+] update README (diff)
downloadhtml2md-c3106da398757e5accc70103410e4a903f6bde8c.tar.xz
html2md-c3106da398757e5accc70103410e4a903f6bde8c.zip
- [*] refactor out handleOptions() & handlePlugins() to reduce cyclomatic complexity of html2md()
Diffstat (limited to 'prop_html2md.go')
-rw-r--r--prop_html2md.go47
1 files changed, 28 insertions, 19 deletions
diff --git a/prop_html2md.go b/prop_html2md.go
index 6cba586..a65cc6b 100644
--- a/prop_html2md.go
+++ b/prop_html2md.go
@@ -29,6 +29,30 @@ func html2md(ctx *cli.Context) error {
// Options handling
opt := &md.Options{}
+ opt = handleOptions(opt, rootArgv)
+ clis.Verbose(1, "%#v\n", opt)
+
+ doc, err := goquery.NewDocumentFromReader(rootArgv.Filei)
+ clis.AbortOn("Reading file with goquery", err)
+ content := doc.Find(rootArgv.Sel)
+
+ domain, url := rootArgv.Domain, rootArgv.Filei.Name()
+ if domain == "" && regexp.MustCompile(`(?i)^http`).MatchString(url) {
+ domain = md.DomainFromURL(url)
+ }
+ clis.Verbose(2, "domain='%s'\n", domain)
+ conv := md.NewConverter(domain, true, opt)
+
+ // Plugin handling
+ conv = handlePlugins(conv, rootArgv)
+ markdown := conv.Convert(content)
+
+ fmt.Println(markdown)
+
+ return nil
+}
+
+func handleOptions(opt *md.Options, rootArgv *rootT) *md.Options {
if rootArgv.OptHeadingStyle != "" {
opt.HeadingStyle = rootArgv.OptHeadingStyle
}
@@ -56,20 +80,10 @@ func html2md(ctx *cli.Context) error {
if rootArgv.OptLinkReferenceStyle != "" {
opt.LinkReferenceStyle = rootArgv.OptLinkReferenceStyle
}
- clis.Verbose(1, "%#v\n", opt)
-
- doc, err := goquery.NewDocumentFromReader(rootArgv.Filei)
- clis.AbortOn("Reading file with goquery", err)
- content := doc.Find(rootArgv.Sel)
-
- domain, url := rootArgv.Domain, rootArgv.Filei.Name()
- if domain == "" && regexp.MustCompile(`(?i)^http`).MatchString(url) {
- domain = md.DomainFromURL(url)
- }
- clis.Verbose(2, "domain='%s'\n", domain)
- conv := md.NewConverter(domain, true, opt)
+ return opt
+}
- // Plugin handling
+func handlePlugins(conv *md.Converter, rootArgv *rootT) *md.Converter {
if rootArgv.PluginConfluenceAttachments {
conv.Use(plugin.ConfluenceAttachments())
}
@@ -97,10 +111,5 @@ func html2md(ctx *cli.Context) error {
// if rootArgv.PluginYoutubeEmbed {
// conv.Use(plugin.YoutubeEmbed())
// }
-
- markdown := conv.Convert(content)
-
- fmt.Println(markdown)
-
- return nil
+ return conv
}