Workflow

tech
https://garden.seedytilde.eu/workflow/

End-to-end publishing flow

flowchart TD
  A["Obsidian Notes<br/>notes/**/*.md"];
  B["Codeberg Git Repo"];
  C["Coolify"];
  D["Docker Build"];
  E["python3 build.py"];
  F["Static Site Artifacts<br/>HTML/CSS/JS/RSS/Sitemap"];
  G["nginx container serves /site"];
  H["Web view"];
  I["/graph/graph.json"];
  J["/graph/ page + desktop sidebar graph"];

  subgraph Authoring
    A --> B;
  end

  subgraph Deploy
    B -->|Push webhook| C;
    C --> D;
    D --> E;
  end

  subgraph Output
    E --> F;
    F --> G;
    G --> H;
  end

  subgraph Graph
    E --> I;
    I --> J;
    J --> H;
  end

Build pipeline detail

flowchart TD
  A["build.py"];

  subgraph Parse_And_Link
    B["indexing.py<br/>frontmatter + note index"];
    C["wiki.py<br/>wikilink resolution + backlinks"];
  end

  subgraph Render_Notes
    D["note_pages.py<br/>render note pages via Pandoc"];
    K["templates/page.html"];
    L["static/style.css + static/graph.js"];
  end

  subgraph Post_Render
    E["pipeline.py"];
    F["rendering.py<br/>redirects + stubs + sitemap"];
    G["synthetic_pages.py<br/>topics/stages/now/slashpages/missing/graph"];
    H["feeds_updates.py + updates.py<br/>updates pages + RSS"];
  end

  subgraph Graph_Outputs
    I["/graph/index.html"];
    J["/graph/graph.json"];
  end

  A --> B --> C --> D --> E;
  K --> D;
  L --> D;
  E --> F;
  E --> G;
  E --> H;
  G --> I;
  G --> J;