package main
import (
"bufio"
"log"
"net/http"
"os"
"strings"
)
var data_articles_index string = ""
var top string = "
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)
}
}