view wdown.go @ 5:534fa4c6668e

Add command line argument parsing
author Jonatan Werpers <jonatan@werpers.com>
date Tue, 16 Jun 2020 21:23:38 +0200
parents 0b747e2d51c9
children a5f397e25cb7
line wrap: on
line source

package main

import (
	"flag"
	"fmt"
	"io/ioutil"
	"log"
	"os"

	"github.com/yuin/goldmark"
	highlighting "github.com/yuin/goldmark-highlighting"
	"github.com/yuin/goldmark/extension"
	"github.com/yuin/goldmark/parser"
)

func main() {
	flag.Parse()

	if flag.NArg() < 1 {
		fmt.Println("Please provide a markdown file for parsing.")
		os.Exit(1)
	}

	source, err := ioutil.ReadFile(flag.Arg(0))

	if err != nil {
		log.Fatal(err)
	}

	md := goldmark.New(
		goldmark.WithExtensions(
			extension.GFM,
			highlighting.Highlighting,
		),
		goldmark.WithParserOptions(
			parser.WithAutoHeadingID(),
		),
	)

	err = md.Convert(source, os.Stdout)

	if err != nil {
		log.Fatal(err)
	}
}