diff options
| author | Tong Sun <[email protected]> | 2020-07-26 23:19:08 -0400 |
|---|---|---|
| committer | Tong Sun <[email protected]> | 2020-07-26 23:19:08 -0400 |
| commit | c3106da398757e5accc70103410e4a903f6bde8c (patch) | |
| tree | 23d7694629b56aba165daa969d4b09445c32a525 /prop_html2md.go | |
| parent | - [+] update README (diff) | |
| download | html2md-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.go | 47 |
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 } |