Commit graph

484 commits

Author SHA1 Message Date
Nicolas Jeannerod aed4b3a744 No certificate for Garage web root domain 2024-11-13 16:00:38 +01:00
Valentin Gagarin 5179283b83 add mobile style 2024-11-13 15:47:12 +01:00
Valentin Gagarin a6e764d2fc list events on the dedicated page more like articles 2024-11-13 15:47:12 +01:00
Valentin Gagarin 3b002a5d2d add a desktop stylesheet
it also features a dark mode
2024-11-13 15:47:12 +01:00
Valentin Gagarin 4f37c5b7b2 style 2024-11-13 15:47:12 +01:00
Valentin Gagarin 457f0adee7 more structured front page
this allows for more customised styling
2024-11-13 15:47:12 +01:00
Valentin Gagarin 91ab0e3cd4 remove legacy stylesheet 2024-11-13 15:47:12 +01:00
Valentin Gagarin 555974a3af fix <hgroup> rendering 2024-11-13 15:47:12 +01:00
Valentin Gagarin 27a7ba84bd add stylesheet with fonts 2024-11-13 15:47:12 +01:00
Valentin Gagarin 419f2b881b implement raw assets
this allows adding files to the output as they are
2024-11-13 15:47:12 +01:00
Valentin Gagarin 6e3bd814f1 move inline recursiveAttrs to lib.types 2024-11-13 15:47:12 +01:00
Valentin Gagarin cb8363ebb5 implement stylesheet links 2024-11-13 15:47:12 +01:00
Valentin Gagarin b1d8ac85e0 build with full trace 2024-11-13 15:47:12 +01:00
Valentin Gagarin ed2e0679c4 add .direnv to gitingore 2024-11-13 15:47:12 +01:00
Valentin Gagarin c60d10b355 add todo concerning palpable content 2024-11-13 15:47:12 +01:00
Valentin Gagarin 9e97ca3f14 list all news articles on a separate page 2024-11-13 15:47:12 +01:00
Valentin Gagarin 23462e3110 add past events and list them on a page 2024-11-13 15:47:12 +01:00
Valentin Gagarin 61b2d07b1d add event content type 2024-11-13 15:47:12 +01:00
Valentin Gagarin d5b329ede9 implement definition lists with dl, dt, dd 2024-11-13 15:47:12 +01:00
Valentin Gagarin d0c7f1cad1 make template overrides take final and prev 2024-11-13 15:47:12 +01:00
Valentin Gagarin 1fe519c838 add note on using direnv 2024-11-13 15:47:12 +01:00
Valentin Gagarin f837b436d7 add devmode for live preview 2024-11-13 15:47:12 +01:00
Valentin Gagarin 897acd2a5c fix semantics: wrap content body into section 2024-11-13 15:47:12 +01:00
Valentin Gagarin 18864f2738 make template overrides chainable 2024-11-13 15:47:12 +01:00
Valentin Gagarin 67d00fea7e remove old template garbage 2024-11-13 15:47:12 +01:00
Valentin Gagarin 9b74458a8c override page template for articles 2024-11-13 15:47:12 +01:00
Valentin Gagarin 00e3cfcb52 make page templates granularly overridable 2024-11-13 15:47:12 +01:00
Valentin Gagarin ef5594d963 add resulting Nix value to default.nix outputs
this is practical for debugging and demonstration purposes
2024-11-13 15:47:12 +01:00
Valentin Gagarin f71bc89921 move things to more appropriate places 2024-11-13 15:47:12 +01:00
Valentin Gagarin 6f90db7193 unify template parameters 2024-11-13 15:47:12 +01:00
Valentin Gagarin cbe10ec304 further prettify output 2024-11-13 15:47:12 +01:00
Valentin Gagarin d4aa88f759 fix indentation in output 2024-11-13 15:47:12 +01:00
Valentin Gagarin 95f7e5e162 reiterate on mandatory headings in sections 2024-11-13 15:47:12 +01:00
Valentin Gagarin 661158223a ensure the section hierarchy is spec-compliant
- automatically assign heading levels
- check that the maximum nesting depth is not exceeded
2024-11-13 15:47:12 +01:00
Valentin Gagarin 4aeb9579d6 separate DOM mapping and generic templating
the templates collection will soon only be there for reusable snippets,
while the HTML representation of document types will be attached to
those types directly.
2024-11-13 15:47:12 +01:00
Valentin Gagarin 5ee1c8b006 implement sectioning semantics
this was quite a beast to tame, but it now allows putting sections anywhere
in the tree without having to redundantly specify heading levels, which
will be computed automatically from the nesting depth.

the whole thing will also blow up if the maximum section nesting depth
is exceeded, just as the spec requires - albeit with an absolutely
impenetrable error message. this could in principle be improved with
lots of additional machinery, but this is by far not low-hanging fruit.

just don't nest your sections too much.
2024-11-13 15:47:12 +01:00
Valentin Gagarin 414aeb45ba fix module for <link> and <base> 2024-11-13 15:47:12 +01:00
Valentin Gagarin 153b761c8f fix attrs printing 2024-11-13 15:47:12 +01:00
Valentin Gagarin 36d1c9c433 add README 2024-11-13 15:47:12 +01:00
Valentin Gagarin 5bef87be1f render content via structured DOM representation 2024-11-13 15:47:12 +01:00
Valentin Gagarin e531e861ce formatting 2024-11-13 15:47:12 +01:00
Valentin Gagarin 2595511a38 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:47:12 +01:00
Valentin Gagarin 779eb8b192 add more string processing helpers 2024-11-13 15:47:12 +01:00
Valentin Gagarin e77b55e8e9 add type for list of unique elements 2024-11-13 15:47:12 +01:00
Valentin Gagarin c7a13f04c9 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:47:12 +01:00
Valentin Gagarin e2691f8469 let navigation have its own template 2024-11-13 15:47:12 +01:00
Valentin Gagarin 84f5d17e3e make a proper link 2024-11-13 15:47:12 +01:00
Valentin Gagarin cb715fb99d move more content 2024-11-13 15:47:12 +01:00
Valentin Gagarin 059ebc2291 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:47:12 +01:00
Valentin Gagarin 7efd5b8317 allow prefixing output paths of collection items 2024-11-13 15:47:12 +01:00