mark 库格式化 md

This commit is contained in:
m2shad0w
2017-04-17 11:04:50 +08:00
parent 9e5236001f
commit 1e72a58a07
3 changed files with 47 additions and 8 deletions

View File

@@ -7,8 +7,11 @@ import (
"path/filepath" "path/filepath"
"regexp" "regexp"
"strings" "strings"
"bufio"
// "net/http"
// "github.com/fairlyblank/md2min"
"github.com/a8m/mark"
"github.com/fairlyblank/md2min"
) )
// 定义一个访问者结构体 // 定义一个访问者结构体
@@ -17,6 +20,8 @@ type Visitor struct{}
func (self *Visitor) md2html(arg map[string]string) error { func (self *Visitor) md2html(arg map[string]string) error {
from := arg["from"] from := arg["from"]
to := arg["to"] to := arg["to"]
s := `<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
`
err := filepath.Walk(from+"/", func(path string, f os.FileInfo, err error) error { err := filepath.Walk(from+"/", func(path string, f os.FileInfo, err error) error {
if f == nil { if f == nil {
return err return err
@@ -62,8 +67,39 @@ func (self *Visitor) md2html(arg map[string]string) error {
os.Exit(-1) os.Exit(-1)
} }
defer out.Close() defer out.Close()
md := md2min.New("none") opts := mark.DefaultOptions()
err = md.Parse([]byte(input), out) opts.Smartypants = true
opts.Fractions = true
// r1 := []rune(s1)
m := mark.New(input, opts)
// md := md2min.New("none")
// err = md.Parse([]byte(input), out)
// client := &http.Client{}
// req, err := http.NewRequest("POST", "https://api.github.com/markdown/raw", strings.NewReader(input))
// if err != nil {
// handle error
// }
// req.Header.Set("Content-Type", "text/plain")
// req.Header.Set("charset", "utf-8")
// req.Header.Set("User-Agent", "m2shad0w")
//
// resp, err := client.Do(req)
// defer resp.Body.Close()
// body, err := ioutil.ReadAll(resp.Body)
// if err != nil {
// handle error
// }
w := bufio.NewWriter(out)
n4, err := w.WriteString(s + m.Render())
fmt.Printf("wrote %d bytes\n", n4)
// fmt.Printf("wrote %d bytes\n", n4)
//使用 Flush 来确保所有缓存的操作已写入底层写入器。
w.Flush()
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "Parsing Error", err) fmt.Fprintln(os.Stderr, "Parsing Error", err)
os.Exit(-1) os.Exit(-1)

View File

@@ -15,7 +15,7 @@ WORKDIR="$(cd $(dirname $0); pwd -P)"
# #
MSG_INSTALL_PANDOC_FIRST='请先安装pandoc然后再次运行' MSG_INSTALL_PANDOC_FIRST='请先安装pandoc然后再次运行'
MSG_SUCCESSFULLY_GENERATED='build-web-application-with-golang.epub 已经建立' MSG_SUCCESSFULLY_GENERATED='build-web-application-with-golang.epub 已经建立'
MSG_CREATOR='Astaxie' MSG_CREATOR='M2shad0w'
MSG_DESCRIPTION='一本开源的Go Web编程书籍' MSG_DESCRIPTION='一本开源的Go Web编程书籍'
MSG_LANGUAGE='zh-CN' MSG_LANGUAGE='zh-CN'
MSG_TITLE='Go Web编程' MSG_TITLE='Go Web编程'
@@ -23,14 +23,15 @@ MSG_TITLE='Go Web编程'
TMP=`mktemp -d 2>/dev/null || mktemp -d -t "${bn}"` || exit 1 TMP=`mktemp -d 2>/dev/null || mktemp -d -t "${bn}"` || exit 1
trap 'rm -rf "$TMP"' 0 1 2 3 15 # TMP=./build
# trap 'rm -rf "$TMP"' 0 1 2 3 15
cd "$TMP" cd "$TMP"
( (
[ go list github.com/fairlyblank/md2min >/dev/null 2>&1 ] || export GOPATH="$PWD" [ go list github.com/a8m/mark >/dev/null 2>&1 ] || export GOPATH="$PWD"
go get -u github.com/fairlyblank/md2min go get -u github.com/a8m/mark
WORKDIR="$WORKDIR" TMP="$TMP" go run "$WORKDIR/build.go" WORKDIR="$WORKDIR" TMP="$TMP" go run "$WORKDIR/build.go"
) )
@@ -51,6 +52,8 @@ mkdir -p $TMP/images
cp -r $WORKDIR/images/* $TMP/images/ cp -r $WORKDIR/images/* $TMP/images/
ls [0-9]*.html | xargs $SED -i "s/png?raw=true/png/g" ls [0-9]*.html | xargs $SED -i "s/png?raw=true/png/g"
pandoc --reference-links -S --toc -f html -t epub --epub-metadata=metadata.txt --epub-cover-image="$WORKDIR/images/cover.png" -o "$WORKDIR/../build-web-application-with-golang.epub" `ls [0-9]*.html | sort` echo "工作目录$WORKDIR, 临时目录$TMP"
pandoc --reference-links -S --toc -f html -t epub --epub-metadata=metadata.txt --epub-cover-image="$WORKDIR/images/cover.png" -o "$WORKDIR/build-web-application-with-golang.epub" `ls [0-9]*.html | sort`
echo "$MSG_SUCCESSFULLY_GENERATED" echo "$MSG_SUCCESSFULLY_GENERATED"