How kwasos/tolkienfanclub works
Tolkienfanclub is a learning-oriented static site generator. Its main workflow takes Markdown pages from content/, converts them into HTML using a shared template, and writes the pages into docs/; it also copies static assets into that output. Internally, Markdown conversion proceeds through block parsing, inline parsing, text-node conversion, and HTML-node serialization. The diagram reflects the sampled Python source; README documentation is brief, so no additional product capabilities are indicated.
Main entry points: create_public_files.py Page assembly · main.py Generator entry · markdown_blocks.py Block parser · textnode.py Text-node conversion
Components 12
Site generation
- Generator entry
src/main.py - Recursive page generation
src/create_public_files.py - Page assembly
src/create_public_files.py
Markdown rendering
- Block parser
src/markdown_blocks.py - Inline parser
src/inline_markdown.py - Text-node conversion
src/textnode.py - HTML-node serialization
src/htmlnode.py
Inputs and output
- Markdown content
content - HTML template
template.html - Static assets
static - Generated site
docs
Other components
- Site author
Connections 17
- Site author → Generator entry: runs generator
- Generator entry → Recursive page generation: dispatches pages
- Generator entry → Static assets: copies assets
- Generator entry → Generated site: creates output
- Recursive page generation → Markdown content: reads pages
- Recursive page generation → Page assembly: generates page
- Recursive page generation → Generated site: writes pages
- Page assembly → Markdown content: reads Markdown
- Page assembly → HTML template: reads template
- Page assembly → Block parser: parses Markdown
- Page assembly → HTML-node serialization: serializes HTML
- Page assembly → Generated site: writes HTML
- Block parser → Inline parser: parses inline text
- Block parser → Text-node conversion: converts text nodes
- Block parser → HTML-node serialization: builds HTML nodes
- Inline parser → Text-node conversion: creates text nodes
- Text-node conversion → HTML-node serialization: creates leaf nodes