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
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    /* HACK: If background color is white, set to a reasonable, light grey
 | 
			
		||||
     * default. */
 | 
			
		||||
    if s.Get(chroma.Background).Background.String() == "#ffffff" {
 | 
			
		||||
        senr := s.Get(chroma.Background)
 | 
			
		||||
        senr.Background = chroma.ParseColour("#f6f8fa");
 | 
			
		||||
        s, err = s.Builder().AddEntry(chroma.Background, senr).Build();
 | 
			
		||||
        if err != nil {
 | 
			
		||||
            return err
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
	/* HACK: If background color is white, set to a reasonable, light grey
 | 
			
		||||
	 * default. */
 | 
			
		||||
	if s.Get(chroma.Background).Background.String() == "#ffffff" {
 | 
			
		||||
		senr := s.Get(chroma.Background)
 | 
			
		||||
		senr.Background = chroma.ParseColour("#f6f8fa");
 | 
			
		||||
		s, err = s.Builder().AddEntry(chroma.Background, senr).Build();
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return f.Format(w, s, it)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const Version = "0.1.2"
 | 
			
		||||
const Version = "0.1.3"
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	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)
 | 
			
		||||
	lang := ""
 | 
			
		||||
	needCSS := false
 | 
			
		||||
	cmark, lookErr := exec.LookPath("cmark-gfm")
 | 
			
		||||
	for bs.Scan() {
 | 
			
		||||
		text := bs.Text()
 | 
			
		||||
		trimmed := strings.TrimSpace(text)
 | 
			
		||||
| 
						 | 
				
			
			@ -141,6 +142,12 @@ func main() {
 | 
			
		|||
			currentCodeBlock.WriteString(text)
 | 
			
		||||
			currentCodeBlock.WriteByte('\n')
 | 
			
		||||
		} 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.WriteByte('\n')
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -157,12 +164,13 @@ func main() {
 | 
			
		|||
	checkError(writeErr, "writing data to temporary file")
 | 
			
		||||
	// shell out to markdown because of
 | 
			
		||||
	// https://github.com/russross/blackfriday/issues/403
 | 
			
		||||
	cmark, lookErr := exec.LookPath("cmark")
 | 
			
		||||
	args := []string{cmark, "--unsafe", f.Name()}
 | 
			
		||||
	var args []string
 | 
			
		||||
	if lookErr != nil {
 | 
			
		||||
		cmark, lookErr = exec.LookPath("markdown")
 | 
			
		||||
		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{})
 | 
			
		||||
	checkError(execErr, "executing markdown binary")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue