Commit graph

92 commits

Author SHA1 Message Date
Valentin Gagarin 73c3262d74 render content via structured DOM representation 2024-11-13 15:24:41 +01:00
Valentin Gagarin 01be60f9c6 formatting 2024-11-13 15:24:41 +01:00
Valentin Gagarin 62f5e16f38 implement a slice of the DOM spec as modules
this is roughly sufficient to recreate the website as it currently is

- elements:
  - document
  - html
  - head
  - title
  - base
  - link (variants that must be unique nested under `head` directly)
    - canonical
  - meta (same as for link):
    - charset
    - viewport
    - author (can be multiple, but still unique in aggregate for a document)
    - description

- global attributes:
  - class
  - hidden
  - id
  - lang
  - style
  - title

- element-specific attributes:
  - href
  - target

there's still a lot to do for a reasonably complete implementation, most
importantly everything concerning
- navigation
- top-level flow content (`div`, `article`, headings, `p`, ...)
- stylesheets

there's also some infrastructure to be arranged for easy but somewhat
safe switching between literal HTML and structured representations.
2024-11-13 15:24:41 +01:00
Valentin Gagarin 5b99ef52f5 add more string processing helpers 2024-11-13 15:24:41 +01:00
Valentin Gagarin 07ba9d70c4 add type for list of unique elements 2024-11-13 15:24:41 +01:00
Valentin Gagarin 92b2f0ba58 don't use outPath any more
- links are constructed explicitly, relative to the current page's
location
- templates are called explicitly by output type
2024-11-13 15:24:41 +01:00
Valentin Gagarin c5966cd4cb let navigation have its own template 2024-11-13 15:24:41 +01:00
Valentin Gagarin e3578b0440 make a proper link 2024-11-13 15:24:41 +01:00
Valentin Gagarin a340863781 move more content 2024-11-13 15:24:41 +01:00
Valentin Gagarin ad1e193067 set a default location for documents
it turns out that setting a value appends to that.
the default only needs to be overridden when the symbolic name of the
document changes. while there's a chance people will inadvertently break
links that way, it's requires less up-front knowledge to work with.
2024-11-13 15:24:41 +01:00
Valentin Gagarin c2fe5da469 allow prefixing output paths of collection items 2024-11-13 15:24:41 +01:00
Valentin Gagarin c3774eb1f6 delete obsolete page 2024-11-13 15:24:41 +01:00
Valentin Gagarin d2265cb2b7 allow menu entries to be subtypes of page
with an example
2024-11-13 15:24:41 +01:00
Valentin Gagarin 8397a2641d split content types into separate files 2024-11-13 15:24:41 +01:00
Valentin Gagarin c76bc2cbad extract importing Nix files 2024-11-13 15:24:41 +01:00
Valentin Gagarin fbebdbb7a1 implement correct-by-construction relative links 2024-11-13 15:24:41 +01:00
Valentin Gagarin dde36364b4 smarter indent
this allows writing the beginning of the indented string at the desired
indentation
2024-11-13 15:24:41 +01:00
Valentin Gagarin 48bb34ccfe stricter type for articles 2024-11-13 15:24:41 +01:00
Valentin Gagarin c8caf09ebf separate templating from file system outputs 2024-11-13 15:24:41 +01:00
Valentin Gagarin 24bd786896 extract generic document type 2024-11-13 15:24:41 +01:00
Valentin Gagarin 7eb147a5a0 add note 2024-11-13 15:24:41 +01:00
Valentin Gagarin ebec1d8e25 implement navigation 2024-11-13 15:24:41 +01:00
Valentin Gagarin 6a22b197ac split out template library 2024-11-13 15:24:41 +01:00
Valentin Gagarin 8634df5833 add TODO 2024-11-13 15:24:41 +01:00
Valentin Gagarin 0708801f6a extract presentation module 2024-11-13 15:24:41 +01:00
Valentin Gagarin a483b7e5fa add some documentation 2024-11-13 15:24:41 +01:00
Valentin Gagarin 6991bc9c0e split content types into module 2024-11-13 15:24:41 +01:00
Valentin Gagarin ea0319c60e move custom type into custom lib 2024-11-13 15:24:41 +01:00
Valentin Gagarin c9abe13377 more scalable imports
that directory will only grow
2024-11-13 15:24:41 +01:00
Valentin Gagarin 68168db215 add TODOs 2024-11-13 15:24:41 +01:00
Valentin Gagarin 94744a6241 clean up artefacts 2024-11-13 15:24:41 +01:00
Valentin Gagarin 128dceb32c sort news by date 2024-11-13 15:24:41 +01:00
Valentin Gagarin 9c7a3b11c6 migrate news entries 2024-11-13 15:24:41 +01:00
Valentin Gagarin f4b3a08a37 implement collections 2024-11-13 15:24:41 +01:00
Valentin Gagarin e807aec04b put partners in a directory 2024-11-13 15:24:40 +01:00
Valentin Gagarin 193809672e add back partners 2024-11-13 15:24:40 +01:00
Valentin Gagarin d0de76a21a re-add fediversity page 2024-11-13 15:24:40 +01:00
Valentin Gagarin 86b9a0a30e modularize 2024-11-13 15:24:40 +01:00
Valentin Gagarin 74a9077b3d add partners 2024-11-13 15:24:40 +01:00
Valentin Gagarin 41195c821c remove processed pages 2024-11-13 15:24:40 +01:00
Valentin Gagarin 15d9f02101 remove one layer 2024-11-13 15:24:40 +01:00
Valentin Gagarin 9c6425bb2d rename 2024-11-13 15:24:40 +01:00
Valentin Gagarin b2fac26a69 uncle bob 2024-11-13 15:24:40 +01:00
Valentin Gagarin 1a8b04f21a extract file processing 2024-11-13 15:24:40 +01:00
Valentin Gagarin 6b934ceb21 extract main document conversion 2024-11-13 15:24:40 +01:00
Valentin Gagarin d29f1a0fb0 dir is a path 2024-11-13 15:24:40 +01:00
Valentin Gagarin 4292bc495f PoC: build site from nix files 2024-11-13 15:24:40 +01:00
Valentin Gagarin f71888ae21 remove all the junk 2024-11-13 15:24:40 +01:00
Laurens 61d3db7273 img update for nordunet conf 2024-09-17 13:48:00 +02:00
Laurens 53abf58eb2 nordunet conference 2024-09-17 13:34:04 +02:00