# manikumarkundurthi/learnwithkmk architecture

> Architecture diagram of the GitHub repository manikumarkundurthi/learnwithkmk, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/manikumarkundurthi/learnwithkmk
- Repository: https://github.com/manikumarkundurthi/learnwithkmk

## Overview

LearnWithKMK is a static educational blog about machine learning, coding, and mathematics. Authors add Markdown articles; Eleventy turns article content and site metadata into article pages and index pages, using shared layouts and partials. Readers browse the published site. The README documents KaTeX math rendering and syntax highlighting, but the sampled source does not show their detailed implementation or wiring, so those links are kept at the documented configuration level.

Main entry points: [`.eleventy.js`](https://github.com/manikumarkundurthi/learnwithkmk/blob/main/.eleventy.js) (Eleventy configuration), [`src/articles`](https://github.com/manikumarkundurthi/learnwithkmk/tree/main/src/articles) (Article Markdown), [`src/_includes/partials`](https://github.com/manikumarkundurthi/learnwithkmk/tree/main/src/_includes/partials) (Shared partials), [`src/index.njk`](https://github.com/manikumarkundurthi/learnwithkmk/blob/main/src/index.njk) (Home page)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_content["Content"]
  node_articles["Article Markdown"]
  node_articlemeta["Article metadata<br/>[articles.json]"]
  node_sitedata["Site data<br/>[site.json]"]
end

subgraph group_site["Site presentation"]
  node_home["Home page<br/>[index.njk]"]
  node_articlesindex["Articles index<br/>[articles-index.njk]"]
  node_about["About page<br/>[about.njk]"]
  node_articlelayout["Article layout<br/>[article.njk]"]
  node_baselayout["Base layout<br/>[base.njk]"]
  node_partials["Shared partials"]
  node_css["Theme and math styles"]
  node_js["Browser behavior<br/>[main.js]"]
end

subgraph group_publishing["Published blog"]
  node_eleventy["Eleventy configuration<br/>[.eleventy.js]"]
  node_siteoutput["Generated blog<br/>[.eleventy.js]"]
end

node_author(("Author"))
node_cloudflare["Cloudflare Pages"]
node_reader(("Reader"))

node_author -->|"writes"| node_articles
node_articles -->|"provides content"| node_eleventy
node_articlemeta -->|"provides metadata"| node_eleventy
node_sitedata -->|"provides site data"| node_eleventy
node_eleventy -->|"renders articles"| node_articlelayout
node_eleventy -->|"renders home"| node_home
node_eleventy -->|"renders index"| node_articlesindex
node_eleventy -->|"renders about"| node_about
node_articlelayout -->|"uses layout"| node_baselayout
node_home -->|"uses partials"| node_partials
node_articlesindex -->|"uses partials"| node_partials
node_baselayout -->|"uses partials"| node_partials
node_eleventy -->|"generates pages"| node_siteoutput
node_siteoutput -->|"deployed to"| node_cloudflare
node_cloudflare -->|"serves blog"| node_reader
node_siteoutput -->|"includes styles"| node_css
node_siteoutput -->|"includes script"| node_js
node_articles -->|"renders with KaTeX"| node_siteoutput
node_articles -->|"highlights code"| node_siteoutput

click node_articles "https://github.com/manikumarkundurthi/learnwithkmk/tree/main/src/articles"
click node_articlemeta "https://github.com/manikumarkundurthi/learnwithkmk/blob/main/src/articles/articles.json"
click node_sitedata "https://github.com/manikumarkundurthi/learnwithkmk/blob/main/src/_data/site.json"
click node_home "https://github.com/manikumarkundurthi/learnwithkmk/blob/main/src/index.njk"
click node_articlesindex "https://github.com/manikumarkundurthi/learnwithkmk/blob/main/src/articles-index.njk"
click node_about "https://github.com/manikumarkundurthi/learnwithkmk/blob/main/src/about.njk"
click node_articlelayout "https://github.com/manikumarkundurthi/learnwithkmk/blob/main/src/_includes/article.njk"
click node_baselayout "https://github.com/manikumarkundurthi/learnwithkmk/blob/main/src/_includes/base.njk"
click node_partials "https://github.com/manikumarkundurthi/learnwithkmk/tree/main/src/_includes/partials"
click node_eleventy "https://github.com/manikumarkundurthi/learnwithkmk/blob/main/.eleventy.js"
click node_css "https://github.com/manikumarkundurthi/learnwithkmk/tree/main/src/assets/css"
click node_js "https://github.com/manikumarkundurthi/learnwithkmk/blob/main/src/assets/js/main.js"
click node_siteoutput "https://github.com/manikumarkundurthi/learnwithkmk/blob/main/.eleventy.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_articles,node_articlemeta,node_sitedata toneBlue
class node_home,node_articlesindex,node_about,node_articlelayout,node_baselayout,node_partials,node_css,node_js toneAmber
class node_eleventy,node_siteoutput toneMint
class node_author,node_cloudflare,node_reader toneIndigo
```

## Components

### Content

- [Article Markdown](https://github.com/manikumarkundurthi/learnwithkmk/tree/main/src/articles): `src/articles`
- [Article metadata](https://github.com/manikumarkundurthi/learnwithkmk/blob/main/src/articles/articles.json): `src/articles/articles.json`
- [Site data](https://github.com/manikumarkundurthi/learnwithkmk/blob/main/src/_data/site.json): `src/_data/site.json`

### Site presentation

- [Home page](https://github.com/manikumarkundurthi/learnwithkmk/blob/main/src/index.njk): `src/index.njk`
- [Articles index](https://github.com/manikumarkundurthi/learnwithkmk/blob/main/src/articles-index.njk): `src/articles-index.njk`
- [About page](https://github.com/manikumarkundurthi/learnwithkmk/blob/main/src/about.njk): `src/about.njk`
- [Article layout](https://github.com/manikumarkundurthi/learnwithkmk/blob/main/src/_includes/article.njk): `src/_includes/article.njk`
- [Base layout](https://github.com/manikumarkundurthi/learnwithkmk/blob/main/src/_includes/base.njk): `src/_includes/base.njk`
- [Shared partials](https://github.com/manikumarkundurthi/learnwithkmk/tree/main/src/_includes/partials): `src/_includes/partials`
- [Theme and math styles](https://github.com/manikumarkundurthi/learnwithkmk/tree/main/src/assets/css): `src/assets/css`
- [Browser behavior](https://github.com/manikumarkundurthi/learnwithkmk/blob/main/src/assets/js/main.js): `src/assets/js/main.js`

### Published blog

- [Eleventy configuration](https://github.com/manikumarkundurthi/learnwithkmk/blob/main/.eleventy.js): `.eleventy.js`
- [Generated blog](https://github.com/manikumarkundurthi/learnwithkmk/blob/main/.eleventy.js): `.eleventy.js`

### Other components

- **Author**
- **Cloudflare Pages**
- **Reader**

## Connections

- Author → Article Markdown: writes
- Article Markdown → Eleventy configuration: provides content
- Article metadata → Eleventy configuration: provides metadata
- Site data → Eleventy configuration: provides site data
- Eleventy configuration → Article layout: renders articles
- Eleventy configuration → Home page: renders home
- Eleventy configuration → Articles index: renders index
- Eleventy configuration → About page: renders about
- Article layout → Base layout: uses layout
- Home page → Shared partials: uses partials
- Articles index → Shared partials: uses partials
- Base layout → Shared partials: uses partials
- Eleventy configuration → Generated blog: generates pages
- Generated blog → Cloudflare Pages: deployed to
- Cloudflare Pages → Reader: serves blog
- Generated blog → Theme and math styles: includes styles
- Generated blog → Browser behavior: includes script
- Article Markdown → Generated blog: renders with KaTeX
- Article Markdown → Generated blog: highlights code
