new -n flag on to activate numbering on links

This commit is contained in:
Luke Emmet 2020-08-26 20:37:04 +01:00
parent 4fe9d4a03e
commit 26449b8498
2 changed files with 30 additions and 23 deletions

View File

@ -8,21 +8,26 @@ A simple wrapper around the Go library https://github.com/LukeEmmet/html2gemini
```
html2gmi <flags>
Usage of C:\Users\lukee\Desktop\programming\projects\go\src\github.com\LukeEmmet\html2gmi\html2gmi.exe:
-m, --citationMarkers Use footnote style citation markers
-c, --citationStart int Start citations from this index (default 1)
-i, --input string Input path. Otherwise uses stdin
-l, --linkEmitFrequency int Emit gathered links through the document after this number of paragraphs (default 2)
-m --citationMarkers Output citation style markers
-n, --numberedLinks Number the links
-o, --output string Output path. Otherwise uses stdout
-v, --version Find out what version of html2gmi you're running
```
## Remarks
linkEmitFrequency - this flag determines the frequency of the output of link lists. For example 1 means any links from the previous paragraph are emitted after each paragraph. 2, would mean they are emitted every two paragraphs and so on. Any gathered links are always emitted before a new heading.
* linkEmitFrequency - this flag determines the frequency of the output of link lists. For example 1 means any links from the previous paragraph are emitted after each paragraph. 2, would mean they are emitted every two paragraphs and so on. Any gathered links are always emitted before a new heading.
* citationStart - this flag determines the start index of the links. By default this is 1, so the first link is labelled "[1]", but you can set this as required.
* citationMarkers - use a numbered marker in the text to indicate the location of the citation, [1], [2] etc
* numberedLinks - number the links with a reference number [1], [2] etc
citationStart - this flag determines the start index of the links. By default this is 1, so the first link is labelled "[1]", but you can set this as required.
You can pipe content in from other applications, for example utilities that download HTML from the web.

View File

@ -11,13 +11,14 @@ import (
"os"
)
var version = "0.2.2"
var version = "0.2.3"
var (
output = flag.StringP("output", "o", "", "Output path. Otherwise uses stdout")
input = flag.StringP("input", "i", "", "Input path. Otherwise uses stdin")
citationStart = flag.IntP("citationStart", "c", 1, "Start citations from this index")
citationMarkers = flag.BoolP("citationMarkers", "m", false, "Use footnote style citation markers")
citationMarkers = flag.BoolP("citationMarkers", "m", false, "Use footnote style citation markers")
numberedLinks = flag.BoolP("numberedLinks", "n", false, "Number the links")
linkEmitFrequency = flag.IntP("linkEmitFrequency", "l", 2, "Emit gathered links through the document after this number of paragraphs")
verFlag = flag.BoolP("version", "v", false, "Find out what version of html2gmi you're running")
)
@ -56,12 +57,12 @@ func getInput() (string, error) {
info, err := os.Stdin.Stat()
check(err)
if *input != "" {
//get the input file from the command line
dat, err := ioutil.ReadFile(*input)
check(err)
inputHtml = string(dat)
} else if info.Mode()&os.ModeNamedPipe != 0 {
if *input != "" {
//get the input file from the command line
dat, err := ioutil.ReadFile(*input)
check(err)
inputHtml = string(dat)
} else if info.Mode()&os.ModeNamedPipe != 0 {
// we have a pipe input
inputHtml = readStdin()
@ -93,24 +94,25 @@ func main() {
options.CitationStart = *citationStart
options.LinkEmitFrequency = *linkEmitFrequency
options.CitationMarkers = *citationMarkers
//use slightly nicer Unicode borders, otherwise can use +,|,-
options.PrettyTablesOptions.CenterSeparator = "┼"
options.PrettyTablesOptions.ColumnSeparator = "│"
options.PrettyTablesOptions.RowSeparator = "─"
//dont use an extra line to separate header from body, but
//do separate each row visually
options.PrettyTablesOptions.HeaderLine = false
options.PrettyTablesOptions.RowLine = true
options.NumberedLinks = *numberedLinks
//use slightly nicer Unicode borders, otherwise can use +,|,-
options.PrettyTablesOptions.CenterSeparator = "┼"
options.PrettyTablesOptions.ColumnSeparator = "│"
options.PrettyTablesOptions.RowSeparator = "─"
//dont use an extra line to separate header from body, but
//do separate each row visually
options.PrettyTablesOptions.HeaderLine = false
options.PrettyTablesOptions.RowLine = true
text, err := html2gemini.FromString(inputHtml, *options)
check(err)
//process the output
if *output == "" {
fmt.Print(text + "\n") //terminate with a new line
fmt.Print(text + "\n") //terminate with a new line
} else {
//save to the specified output
gmiBytes := []byte(text)