package main import ( "bufio" "log" "net/http" "os" "strings" ) var data_articles_index string = "" var top string = "Haufenet
Haufenet
" var bottom string = "" var tag_collection string = "" func main() { entries, err := os.ReadDir("./articles") if err != nil { log.Fatal(err) } for _, e := range entries { AnalayzeFiles(e.Name()) } log.Println(tag_collection) 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 AnalayzeFiles(filename string) { file, err := os.Open("./articles/" + filename) if err != nil { log.Fatalf("not opening") } filename_new := strings.Split(filename, ".md") defer file.Close() scanner := bufio.NewScanner(file) var end_text_page_article string = "" var tags_page_article string = "" var title_overview_articles string = "" var description_overview_articles string = "" var image_overview_articles string = "" for scanner.Scan() { content := scanner.Text() if strings.Contains(content, "###") { part := strings.Split(content, `###`) end_text_page_article += "

" + part[1] + "

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

" + part[1] + "

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

" + part[1] + "

" title_overview_articles = "

" + part[1] + "

" } else if strings.Contains(content, "HEADIMAGE:") { part := strings.Split(content, `HEADIMAGE:`) end_text_page_article += "" image_overview_articles = "" } else if strings.Contains(content, "DESCRIPTION:") { part := strings.Split(content, `DESCRIPTION:`) description_overview_articles = "

" + part[1] + "

" } else if strings.Contains(content, "[img]:") { part := strings.Split(content, `[img]:`) end_text_page_article += "" } else if strings.Contains(content, "DESCRIPTION:") { end_text_page_article = "" } 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] + "" tag_collection += "#" + part_2[i] + ":" + filename_new[0] + ":" + title_overview_articles + ":" + description_overview_articles + ":" + image_overview_articles } part_tags += "" tags_page_article = part_tags } else if content == "" { end_text_page_article += "
" } else { end_text_page_article += "

" + content + "

" } } Page_Article(filename_new[0], end_text_page_article, tags_page_article) Page_Collection_Overview_Articles(filename_new[0], title_overview_articles, image_overview_articles, description_overview_articles, tags_page_article) } func Page_Collection_Overview_Articles(filename string, title string, image string, description string, tags string) { data_articles_index += "" + title + image + description + "" + tags + "" } func Page_Article(filename string, text string, tags string) { err := os.WriteFile("./website/articles/"+filename+".html", []byte(top+""+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) } }