You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.4 KiB

package main
import (
"fmt"
"io/ioutil"
"log"
"strings"
blackfriday "gopkg.in/russross/blackfriday.v2"
)
func main() {
//savelog()
log.Println("kunigu")
scrapDirectory(".")
}
func scrapDirectory(path string) {
filesList, _ := ioutil.ReadDir(path)
for _, f := range filesList {
fileNameSplitted := strings.Split(f.Name(), ".")
if len(fileNameSplitted) > 1 {
if fileNameSplitted[1] == "txt" || fileNameSplitted[1] == "html" {
file := readFile(path + "/" + f.Name())
if strings.Contains(file, "{{kunigu ") {
fmt.Println(path + "/" + f.Name())
r := kuniguFile(file)
writeFile(path+"/"+fileNameSplitted[0]+"OUT."+fileNameSplitted[1], r)
}
}
} else {
//is a directory
//fmt.Println(path + "/" + f.Name())
scrapDirectory(path + "/" + f.Name())
}
}
}
func kuniguFile(file string) string {
lines := getLines(file)
var resultL []string
for _, l := range lines {
if strings.Contains(l, "{{kunigu ") {
var htmlcontent string
includefile := strings.Split(l, " @")[1]
includefile = strings.Replace(includefile, "}}", "", -1)
if strings.Contains(l, "--md-to-html") {
mdcontent := readFile(includefile)
htmlcontent = string(blackfriday.Run([]byte(mdcontent)))
} else {
htmlcontent = readFile(includefile)
}
resultL = append(resultL, htmlcontent)
} else {
resultL = append(resultL, l)
}
}
result := concatStringsWithJumps(resultL)
return result
}