From cd2b166ff54528027d8fafb244d47b7691e7eedd Mon Sep 17 00:00:00 2001 From: surdeus Date: Sun, 3 Mar 2024 06:59:29 +0500 Subject: [PATCH] feat: added dynamic heading generation. --- server/heading.go | 110 +++++++++++++++++++++++++++++++ server/main.go | 129 ++++--------------------------------- web/img/atruim1.webp | Bin 0 -> 56612 bytes web/main.css | 99 +++++++++++++++++++++++++--- wiki/file.pmd | 20 ------ wiki/index.pmd | 48 +++++++++++++- wiki/rpg/chars/index.pmd | 4 ++ wiki/rpg/chars/j.pmd | 8 +++ wiki/rpg/index.pmd | 8 +++ wiki/rpg/worlds/atrium.pmd | 57 ++++++++++++++++ wiki/rpg/worlds/index.pmd | 5 ++ wiki/some-file-name.pmd | 21 ------ wiki/sub-dir/check.pmd | 3 - wiki/sub-dir/index.pmd | 3 - 14 files changed, 341 insertions(+), 174 deletions(-) create mode 100644 server/heading.go create mode 100644 web/img/atruim1.webp delete mode 100644 wiki/file.pmd create mode 100644 wiki/rpg/chars/index.pmd create mode 100644 wiki/rpg/chars/j.pmd create mode 100644 wiki/rpg/index.pmd create mode 100644 wiki/rpg/worlds/atrium.pmd create mode 100644 wiki/rpg/worlds/index.pmd delete mode 100644 wiki/some-file-name.pmd delete mode 100644 wiki/sub-dir/check.pmd delete mode 100644 wiki/sub-dir/index.pmd diff --git a/server/heading.go b/server/heading.go new file mode 100644 index 0000000..b678b13 --- /dev/null +++ b/server/heading.go @@ -0,0 +1,110 @@ +package server + +import ( + "github.com/gomarkdown/markdown/ast" + "strings" + "fmt" +) + +type Heading struct { + Id string + Level int + Text string +} + +func getDocumentHeadings(doc ast.Node) []Heading { + ret := []Heading{} + ast.WalkFunc(doc, func(node ast.Node, entering bool) ast.WalkStatus { + heading, ok := node.(*ast.Heading) + if !ok { + return ast.GoToNext + } + children := node.GetChildren() + if len(children) > 0 && !entering { + leaf := children[0].AsLeaf() + if leaf == nil { + return ast.GoToNext + } + ret = append(ret, Heading{ + Id: heading.HeadingID, + Level: heading.Level, + Text: string(leaf.Literal), + }) + return ast.SkipChildren + } + + return ast.GoToNext + }) + return ret +} + +type HeadingTree struct { + Heading Heading + Children HeadingTrees +} + +type HeadingTrees []*HeadingTree + +func makeHeadingTrees(hs []Heading) HeadingTrees { + if len(hs) == 0 { + return nil + } + + if len(hs) == 1 { + return HeadingTrees{ + &HeadingTree{ + Heading: hs[0], + }, + } + } + + var ( + lasti int + found bool + ) + + first := hs[0] + rest := hs[1:] + for i, h := range rest { + if first.Level >= h.Level { + lasti = i+1 + found = true + break + } + } + + if !found { + return HeadingTrees{ + &HeadingTree{ + Heading: first, + Children: makeHeadingTrees(rest), + }, + } + } + + return append( + makeHeadingTrees(hs[:lasti]), + makeHeadingTrees(hs[lasti:])... , + ) +} + +func RenderHeadingTrees(trees HeadingTrees, first bool) string { + var b strings.Builder + fmt.Fprint(&b, "") + + for _, tree := range trees { + fmt.Fprintf( + &b, "%s", + tree.Heading.Id, tree.Heading.Text, + ) + if len(tree.Children) > 0 { + fmt.Fprint(&b, RenderHeadingTrees(tree.Children, false)) + } + } + fmt.Fprint(&b, "") + return b.String() +} diff --git a/server/main.go b/server/main.go index 13c3dd1..9f605ce 100644 --- a/server/main.go +++ b/server/main.go @@ -3,7 +3,6 @@ package server import ( "github.com/gomarkdown/markdown" "github.com/gomarkdown/markdown/html" - "github.com/gomarkdown/markdown/ast" "github.com/gomarkdown/markdown/parser" "vultras.su/core/bond" "vultras.su/core/bond/contents" @@ -12,7 +11,7 @@ import ( "path" "os" "fmt" - "strings" + //"strings" "bytes" ) @@ -20,6 +19,7 @@ const htmlHead = ` Title + ` @@ -90,113 +90,6 @@ func (srv *Server) pageFooter() string { return htmlFooter } -type Heading struct { - Id string - Level int - Text string -} - -func getDocumentHeadings(doc ast.Node) []Heading { - ret := []Heading{} - ast.WalkFunc(doc, func(node ast.Node, entering bool) ast.WalkStatus { - heading, ok := node.(*ast.Heading) - if !ok { - return ast.GoToNext - } - children := node.GetChildren() - if len(children) > 0 && !entering { - leaf := children[0].AsLeaf() - if leaf == nil { - return ast.GoToNext - } - ret = append(ret, Heading{ - Id: heading.HeadingID, - Level: heading.Level, - Text: string(leaf.Literal), - }) - return ast.SkipChildren - } - - return ast.GoToNext - }) - return ret -} - -type HeadingTree struct { - Heading Heading - Children HeadingTrees -} - -type HeadingTrees []*HeadingTree - -func makeHeadingTrees(hs []Heading) HeadingTrees { - fmt.Println("fooooooooooooooouuuuuuuuund", len(hs), hs) - if len(hs) == 0 { - return nil - } - - if len(hs) == 1 { - return HeadingTrees{ - &HeadingTree{ - Heading: hs[0], - }, - } - } - - var ( - lasti int - found bool - ) - - first := hs[0] - rest := hs[1:] - for i, h := range rest { - if first.Level >= h.Level { - fmt.Println("thefound: ", first, h) - lasti = i+1 - found = true - break - } - } - - if !found { - fmt.Println("in not found") - return HeadingTrees{ - &HeadingTree{ - Heading: first, - Children: makeHeadingTrees(rest), - }, - } - } - - fmt.Println("through", lasti) - return append( - makeHeadingTrees(hs[:lasti]), - makeHeadingTrees(hs[lasti:])... , - ) -} - -func RenderHeadingTrees(trees HeadingTrees, first bool) string { - var b strings.Builder - fmt.Fprint(&b, "") - - for _, tree := range trees { - fmt.Fprintf( - &b, "%s", - tree.Heading.Id, tree.Heading.Text, - ) - if len(tree.Children) > 0 { - fmt.Fprint(&b, RenderHeadingTrees(tree.Children, false)) - } - } - fmt.Fprint(&b, "") - return b.String() -} - func (srv *Server) ProcessToHtml(urlPath, filePath string, bts []byte) ([]byte, error) { var b bytes.Buffer doc := srv.makeMdParser().Parse(bts) @@ -217,7 +110,7 @@ func (srv *Server) ProcessToHtml(urlPath, filePath string, bts []byte) ([]byte, &b, "<<<%s", srv.makeFileName(fileDirPath, "index"+srv.options.WikiExt), ) - fmt.Fprint(&b, "") + + fmt.Fprint(&b, "") - } + fmt.Fprint(&b, "") - fmt.Fprint(&b, "
") - if srv.options.AddDocNavigation { headings := getDocumentHeadings(doc) trees := makeHeadingTrees(headings) docNav := RenderHeadingTrees(trees, true) fmt.Fprint(&b, docNav) + + + fmt.Fprint(&b, "") } + fmt.Fprint(&b, "
") fmt.Fprintf(&b, string(main_section)) fmt.Fprintf(&b, "
") - fmt.Fprintf(&b, "
") fmt.Fprint(&b, srv.pageFooter()) return b.Bytes(), nil } diff --git a/web/img/atruim1.webp b/web/img/atruim1.webp new file mode 100644 index 0000000000000000000000000000000000000000..ea940fe2f858ced56862758603757e47e86ca5e9 GIT binary patch literal 56612 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

k(XvTmlJ6t%1=QJ~`S)rN-^b9DW8ui)5 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

R;1O04Q?w2*C~B| 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 nav { + padding-left: .25rem; + padding-top: 1rem; + padding-bottom: 1rem; + border-bottom: var(--bd-width) var(--bd-style) var(--bd-color); +} + nav { - padding: .5rem; -} -nav a { - padding: 1rem; + padding-left: 1rem; + width: fit-content; + display: flex; + flex-direction: column; } -p { - border-style: solid; - border-width: 0.15rem; - border-color: black; +main { + /*margin-left: calc(var(--header-width) + 1rem);*/ + padding-left: 1rem; + flex-shrink: 1; + overflow-y: auto; } + diff --git a/wiki/file.pmd b/wiki/file.pmd deleted file mode 100644 index 4a5237d..0000000 --- a/wiki/file.pmd +++ /dev/null @@ -1,20 +0,0 @@ -# Header - -*Body* and the **content** - -## Checking links - -A [root link](/) - -## Checking dynamic content - -135731 + 531753 = - -Loop: - - - diff --git a/wiki/index.pmd b/wiki/index.pmd index d76034d..4a534ef 100644 --- a/wiki/index.pmd +++ b/wiki/index.pmd @@ -1,6 +1,48 @@ -# The index file. +# surdeus -* [some other file](/file) +Мой сайт для хранения заметок и документов. -Sed ut perspiciatis, unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt, explicabo. Nemo enim ipsam voluptatem, quia voluptas sit, aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est, qui dolorem ipsum, quia dolor sit, amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt, ut labore et dolore magnam aliquam quaerat voluptatem. +Сайт построен полностью на Golang, для рендера сначала +происходит препроцессинг Markdown с помощью написанного мной [pp](https://vultras.su/util/pp) и встроенного +в него [tengo](https://github.com/d5/tengo), + +Вот пример динмаческого контента: + + + +Да, поверь, мне было бы слишком лень писать 50 цифр. Не веришь? Вот тебе динамическое время: + +А затем, серверно привязанные данные подставляются самим Go и рендерятся в +HTML с помощью [gomarkdown](https://github.com/gomarkdown/markdown). + +Всё это написано в Neovim запущено через терминал, скорее всего Konsole из KDE. + +## О себе + +Андрей Пархоменко из Тюмени (surdeus). Да, я не шифруюсь. + +* [Разработчик](https://vultras.su/surdeus) + * Этот сайт + * [vultras.su](https://vultras.su/) - сервис для моих репозиториев + +* Музыкант/Аудио-инженер +* Дизайнер + +## Контакты + +* [Telegram](https://t.me/surdeus) + +## Разделы + +* [RPG(НРИ)](/rpg) diff --git a/wiki/rpg/chars/index.pmd b/wiki/rpg/chars/index.pmd new file mode 100644 index 0000000..024ccc5 --- /dev/null +++ b/wiki/rpg/chars/index.pmd @@ -0,0 +1,4 @@ +# Персонажи + +Хранилище персонажей для моих миров. + diff --git a/wiki/rpg/chars/j.pmd b/wiki/rpg/chars/j.pmd new file mode 100644 index 0000000..995e88f --- /dev/null +++ b/wiki/rpg/chars/j.pmd @@ -0,0 +1,8 @@ +# Джей(J) Наёмник + +Наёмник из Атриума, прошедший многие войны. + +## Биография + +Родился там-то там-то + diff --git a/wiki/rpg/index.pmd b/wiki/rpg/index.pmd new file mode 100644 index 0000000..a8d2904 --- /dev/null +++ b/wiki/rpg/index.pmd @@ -0,0 +1,8 @@ +# RPG + +Этот раздел отвечает за разрабатываемые мной игровые аспекты для НРИ: + +* Лор +* Персонажи +* Локации +* etc diff --git a/wiki/rpg/worlds/atrium.pmd b/wiki/rpg/worlds/atrium.pmd new file mode 100644 index 0000000..e78bfb7 --- /dev/null +++ b/wiki/rpg/worlds/atrium.pmd @@ -0,0 +1,57 @@ +# Атриум + +## История + +Бесконечный, абсолютный хаос, то, с чего начинается всё, +в том числе и история Атриума, места, где соединилось всё: +боль и удовольствие, дружба и вражда, рабы и повелители, жизнь и смерть, хаос и порядок. + +Могущественная раса Древних, существ, +что познали суть хаоса и открыли многие из его секретов, +способы его применения себе на благо и во вред. + +Одним из этих секретов был способ создания прорывов между +близлежащими измерениями, открытый в спешке в целях решения +проблемы перенаселения, вызванной крайне высоким уровнем жизни +и полным объединением в одно государство, +что избавило их от ещё одного способа контроля популяции. + +В мирах, что они начинали колонизировать, +также присутствовали другие разумные расы, +но на более ранних этапах развития. +Большая часть из них была порабощена либо ассимилирована. +Независимо от их взаимодействия со временем их крови смешались, +порождая гибриды, что также имели способность к манипуляции хаосом. +Во многих случаях такие гибриды имели меньшие способности, чем Древние, +но зачастую позволяли им делать то, чего Древние не могли, +раскрывая свой потенциал связи с Планами. + +## Магия + +Магия в мире Атриума является способом взаимодействия с Планами и +энергией Хаоса в частности, который был изобретён Древними. + +Планы представляют из себя базовые составляющие для любого измерения и +определяют его законы, т. к. измерения являются лишь пересечениями +планов таким образом, что оно может содержать материю. +Из-за того что измерения могут не иметь в себе +некоторых планов в мирах могут отсутствовать некоторые +явления или вещества, например огонь или электричество, вода или железо, например. + +Способности в манипуляции хаосом также исходят из этих планов и связи мага с ними. +Маги могут влиять именно на планы, усиливая, +ослабляя или прорывая их, +что находит своё отражение уже в самом измерении. + +Планы включают в себя Подпланы, отражающие более конкретные аспекты измерений. +Маги ограничены своей связью с планами для воплощения заклинаний. + +### Рефлексы + +Магия не всегда работает осознанно. Зачастую это происходит рефлекторно, +когда связь с некоторым(и) планом(ами) становится достаточно прочной по каким-то причинам: +навык, вера, какое-то знание, и это позволяет преодолевать свои пределы. +Например опытный ассасин, достигший вершин возможностей в скрытности, +может в один момент научиться становиться сначала неполностью прозрачным +и гасить звук передвижения, а потом и становиться полностью невидимым и бесшумным. + diff --git a/wiki/rpg/worlds/index.pmd b/wiki/rpg/worlds/index.pmd new file mode 100644 index 0000000..5415880 --- /dev/null +++ b/wiki/rpg/worlds/index.pmd @@ -0,0 +1,5 @@ +# Миры + +Описания миров + +* [Атриум](atrium) diff --git a/wiki/some-file-name.pmd b/wiki/some-file-name.pmd deleted file mode 100644 index ac3582b..0000000 --- a/wiki/some-file-name.pmd +++ /dev/null @@ -1,21 +0,0 @@ -{#shit .class1 .class2} -# Header - -shit -teahuste| ehtua | shit ---------|-------------|-------------- -cock| dick|die - -* [X] check - -```go -func main() { -} -``` - -## Second header shit - - -## another dick - -### third level header diff --git a/wiki/sub-dir/check.pmd b/wiki/sub-dir/check.pmd deleted file mode 100644 index d574121..0000000 --- a/wiki/sub-dir/check.pmd +++ /dev/null @@ -1,3 +0,0 @@ -# checking shit - -another shit diff --git a/wiki/sub-dir/index.pmd b/wiki/sub-dir/index.pmd deleted file mode 100644 index 7672933..0000000 --- a/wiki/sub-dir/index.pmd +++ /dev/null @@ -1,3 +0,0 @@ -# sub dir index - -hetaushetusahet