Use cmark-gfm by default, adapt CLI args, use escapes via find and replace if discount must be used.
This commit is contained in:
parent
845e87b521
commit
22aa7cf966
36
main.go
36
main.go
|
@ -74,21 +74,21 @@ func highlight(w io.Writer, source, lexer, style string) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
/* HACK: If background color is white, set to a reasonable, light grey
|
/* HACK: If background color is white, set to a reasonable, light grey
|
||||||
* default. */
|
* default. */
|
||||||
if s.Get(chroma.Background).Background.String() == "#ffffff" {
|
if s.Get(chroma.Background).Background.String() == "#ffffff" {
|
||||||
senr := s.Get(chroma.Background)
|
senr := s.Get(chroma.Background)
|
||||||
senr.Background = chroma.ParseColour("#f6f8fa");
|
senr.Background = chroma.ParseColour("#f6f8fa");
|
||||||
s, err = s.Builder().AddEntry(chroma.Background, senr).Build();
|
s, err = s.Builder().AddEntry(chroma.Background, senr).Build();
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return f.Format(w, s, it)
|
return f.Format(w, s, it)
|
||||||
}
|
}
|
||||||
|
|
||||||
const Version = "0.1.2"
|
const Version = "0.1.3"
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
css := flag.String("css", "", "Path to a CSS import to include at the beginning of the output")
|
css := flag.String("css", "", "Path to a CSS import to include at the beginning of the output")
|
||||||
|
@ -119,6 +119,7 @@ func main() {
|
||||||
bs := bufio.NewScanner(r)
|
bs := bufio.NewScanner(r)
|
||||||
lang := ""
|
lang := ""
|
||||||
needCSS := false
|
needCSS := false
|
||||||
|
cmark, lookErr := exec.LookPath("cmark-gfm")
|
||||||
for bs.Scan() {
|
for bs.Scan() {
|
||||||
text := bs.Text()
|
text := bs.Text()
|
||||||
trimmed := strings.TrimSpace(text)
|
trimmed := strings.TrimSpace(text)
|
||||||
|
@ -141,6 +142,12 @@ func main() {
|
||||||
currentCodeBlock.WriteString(text)
|
currentCodeBlock.WriteString(text)
|
||||||
currentCodeBlock.WriteByte('\n')
|
currentCodeBlock.WriteByte('\n')
|
||||||
} else {
|
} else {
|
||||||
|
/* If cmark is not installed then discount will be used, and we have to
|
||||||
|
* do some encoding ourselves. */
|
||||||
|
if lookErr != nil {
|
||||||
|
text = strings.Replace(text, "\\<", "<", -1)
|
||||||
|
text = strings.Replace(text, "\\>", ">", -1)
|
||||||
|
}
|
||||||
out.WriteString(text)
|
out.WriteString(text)
|
||||||
out.WriteByte('\n')
|
out.WriteByte('\n')
|
||||||
}
|
}
|
||||||
|
@ -157,12 +164,13 @@ func main() {
|
||||||
checkError(writeErr, "writing data to temporary file")
|
checkError(writeErr, "writing data to temporary file")
|
||||||
// shell out to markdown because of
|
// shell out to markdown because of
|
||||||
// https://github.com/russross/blackfriday/issues/403
|
// https://github.com/russross/blackfriday/issues/403
|
||||||
cmark, lookErr := exec.LookPath("cmark")
|
var args []string
|
||||||
args := []string{cmark, "--unsafe", f.Name()}
|
|
||||||
if lookErr != nil {
|
if lookErr != nil {
|
||||||
cmark, lookErr = exec.LookPath("markdown")
|
cmark, lookErr = exec.LookPath("markdown")
|
||||||
checkError(lookErr, "finding markdown binary")
|
checkError(lookErr, "finding markdown binary")
|
||||||
args = []string{cmark, f.Name()}
|
args = []string{cmark, "-f", "smarty,pants", f.Name()}
|
||||||
|
} else {
|
||||||
|
args = []string{cmark, "--smart", "--unsafe", "--extension", "table", f.Name()}
|
||||||
}
|
}
|
||||||
execErr := localExec(cmark, args, []string{})
|
execErr := localExec(cmark, args, []string{})
|
||||||
checkError(execErr, "executing markdown binary")
|
checkError(execErr, "executing markdown binary")
|
||||||
|
|
Loading…
Reference in New Issue