package main import ( "bufio" "log" "net/http" "os" "strings" ) var data_articles_index string = "" var top string = "Haufenet
Haufenet
" var bottom string = "" func main() { entries, err := os.ReadDir("./articles") if err != nil { log.Fatal(err) } for _, e := range entries { ReadFileArticles(e.Name()) SetupDataIndexArticles(e.Name()) } log.Print("Server running on port 8090") EditArticlesPage() ReadFileOthers("imprint_privacy.md") fileserver := http.FileServer(http.Dir("./website")) http.Handle("/", fileserver) if err := http.ListenAndServe(":8090", nil); err != nil { log.Fatal(err) } } func EditArticlesPage() { err := os.WriteFile("./website/articles/index.html", []byte(top+"

Articles

"+data_articles_index+"
"+bottom), 0755) if err != nil { panic(err) } } func SetupDataIndexArticles(filename string) { file, err := os.Open("./articles/" + filename) if err != nil { log.Fatalf("not opening") } defer file.Close() scanner := bufio.NewScanner(file) var title string = "" var description string = "" var tags string = "" var image string = "" for scanner.Scan() { content := scanner.Text() if strings.Contains(content, "###") { continue } else if strings.Contains(content, "##") { continue } else if strings.Contains(content, "#") { part := strings.Split(content, `#`) title = "

" + part[1] + "

" } else if strings.Contains(content, "DESCRIPTION:") { part := strings.Split(content, `DESCRIPTION:`) description = "

" + part[1] + "

" } else if strings.Contains(content, "HEADIMAGE:") { part := strings.Split(content, `HEADIMAGE:`) image = "" } else if strings.Contains(content, "TAGS:") { part := strings.Split(content, `TAGS:`) part_2 := strings.Split(part[1], ",") part_tags := "" for i := 0; i < len(part_2); i++ { part_tags += "" + part_2[i] + "" } part_tags += "" tags = part_tags } else { continue } } filename_new := strings.Split(filename, ".md") data_articles_index += "" + title + image + description + "" + tags + "" } func ReadFileArticles(filename string) { file, err := os.Open("./articles/" + filename) if err != nil { log.Fatalf("not opening") } defer file.Close() scanner := bufio.NewScanner(file) var new_text string = "" var tags string = "" for scanner.Scan() { content := scanner.Text() var end_type string = "" if strings.Contains(content, "###") { part := strings.Split(content, `###`) end_type = "

" + part[1] + "

" } else if strings.Contains(content, "##") { part := strings.Split(content, `##`) end_type = "

" + part[1] + "

" } else if strings.Contains(content, "#") { part := strings.Split(content, `#`) end_type = "

" + part[1] + "

" } else if strings.Contains(content, "HEADIMAGE:") { part := strings.Split(content, `HEADIMAGE:`) end_type = "" } else if strings.Contains(content, "[img]:") { part := strings.Split(content, `[img]:`) end_type = "" } else if strings.Contains(content, "DESCRIPTION:") { end_type = "" } else if strings.Contains(content, "TAGS:") { part := strings.Split(content, `TAGS:`) part_2 := strings.Split(part[1], ",") part_tags := "" for i := 0; i < len(part_2); i++ { part_tags += "" + part_2[i] + "" } part_tags += "" tags = part_tags } else if content == "" { end_type = "
" } else { end_type = "

" + content + "

" } new_text += end_type } filename_new := strings.Split(filename, ".md") err = os.WriteFile("./website/articles/"+filename_new[0]+".html", []byte(top+""+new_text+"

Tags

"+tags+"
"+bottom), 0755) if err != nil { panic(err) } } func ReadFileOthers(filename string) { file, err := os.Open("./other/" + filename) if err != nil { log.Fatalf("not opening") } defer file.Close() scanner := bufio.NewScanner(file) var new_text string = "" for scanner.Scan() { content := scanner.Text() var end_type string = "" if strings.Contains(content, "###") { part := strings.Split(content, `###`) end_type = "

" + part[1] + "

" } else if strings.Contains(content, "##") { part := strings.Split(content, `##`) end_type = "

" + part[1] + "

" } else if strings.Contains(content, "#") { part := strings.Split(content, `#`) end_type = "

" + part[1] + "

" } else if content == "" { end_type = "
" } else { end_type = "

" + content + "

" } new_text += end_type } filename_new := strings.Split(filename, ".md") err = os.Mkdir("./website/"+filename_new[0], 0755) err = os.WriteFile("./website/"+filename_new[0]+"/index.html", []byte(top+"
"+new_text+"
"+bottom), 0755) if err != nil { panic(err) } }