# yonas39/portfolio-yogas architecture

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

- Interactive diagram: https://gitdiagram.com/yonas39/portfolio-yogas
- Repository: https://github.com/yonas39/portfolio-yogas
- Video tour (about a minute): https://gitdiagram.com/yonas39/portfolio-yogas/video

## Overview

This repository is a VitePress static-site template, populated with portfolio-style pages and course assignments and blogs. The documented workflow is for an author to customize the Markdown and site configuration, preview the site, then push changes for publication through GitHub Pages. The tree and README support these capabilities, but the sampled source does not show the page-data wiring or deployment workflow internals, so those links are limited to documented relationships.

Main entry points: [`.github/workflows/deploy.yml`](https://github.com/yonas39/portfolio-yogas/blob/main/.github/workflows/deploy.yml) (Pages deployment), [`docs/.vitepress/theme/index.ts`](https://github.com/yonas39/portfolio-yogas/blob/main/docs/.vitepress/theme/index.ts) (Site theme), [`docs/index.md`](https://github.com/yonas39/portfolio-yogas/blob/main/docs/index.md) (Home page), [`docs/aboutme.md`](https://github.com/yonas39/portfolio-yogas/blob/main/docs/aboutme.md) (About page)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_content["Site content"]
  node_home["Home page<br/>[index.md]"]
  node_about["About page<br/>[aboutme.md]"]
  node_assignments["Assignments"]
  node_assignment_index["Assignment index<br/>[assignments.md]"]
  node_assignment_data["Assignment data<br/>[assignment.data.ts]"]
  node_blogs["Blog posts"]
  node_blog_index["Blog index<br/>[blogs.md]"]
  node_blog_data["Blog data<br/>[blog.data.ts]"]
  node_media["Site media"]
end

subgraph group_site["Site rendering"]
  node_config["VitePress config<br/>[config.mts]"]
  node_theme["Site theme<br/>[index.ts]"]
  node_theme_style["Theme styles<br/>[style.css]"]
  node_vitepress["VitePress"]
  node_site_output["Static site"]
end

subgraph group_hosting["Publication"]
  node_workflow["Pages deployment<br/>[deploy.yml]"]
  node_github_pages["GitHub Pages"]
end

node_author(("Site author"))

node_author -->|"customizes"| node_home
node_author -->|"customizes"| node_about
node_author -->|"customizes"| node_assignments
node_author -->|"customizes"| node_blogs
node_author -->|"configures"| node_config
node_vitepress -->|"renders"| node_home
node_vitepress -->|"renders"| node_about
node_vitepress -->|"renders"| node_assignment_index
node_vitepress -->|"renders"| node_blogs
node_vitepress -->|"renders"| node_blog_index
node_vitepress -->|"reads"| node_config
node_vitepress -->|"uses"| node_theme
node_theme -->|"loads"| node_theme_style
node_vitepress -->|"includes"| node_media
node_vitepress -->|"generates"| node_site_output
node_workflow -->|"publishes"| node_site_output
node_workflow -->|"deploys to"| node_github_pages

click node_home "https://github.com/yonas39/portfolio-yogas/blob/main/docs/index.md"
click node_about "https://github.com/yonas39/portfolio-yogas/blob/main/docs/aboutme.md"
click node_assignments "https://github.com/yonas39/portfolio-yogas/tree/main/docs/assignments"
click node_assignment_index "https://github.com/yonas39/portfolio-yogas/blob/main/docs/assignments.md"
click node_assignment_data "https://github.com/yonas39/portfolio-yogas/blob/main/docs/assignments/assignment.data.ts"
click node_blogs "https://github.com/yonas39/portfolio-yogas/tree/main/docs/blogs"
click node_blog_index "https://github.com/yonas39/portfolio-yogas/blob/main/docs/blogs.md"
click node_blog_data "https://github.com/yonas39/portfolio-yogas/blob/main/docs/blogs/blog.data.ts"
click node_media "https://github.com/yonas39/portfolio-yogas/tree/main/docs/assets"
click node_config "https://github.com/yonas39/portfolio-yogas/blob/main/docs/.vitepress/config.mts"
click node_theme "https://github.com/yonas39/portfolio-yogas/blob/main/docs/.vitepress/theme/index.ts"
click node_theme_style "https://github.com/yonas39/portfolio-yogas/blob/main/docs/.vitepress/theme/style.css"
click node_workflow "https://github.com/yonas39/portfolio-yogas/blob/main/.github/workflows/deploy.yml"

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_home,node_about,node_assignments,node_assignment_index,node_assignment_data,node_blogs,node_blog_index,node_blog_data,node_media toneBlue
class node_config,node_theme,node_theme_style,node_vitepress,node_site_output toneAmber
class node_workflow,node_github_pages toneMint
class node_author toneIndigo
```

## Components

### Site content

- [Home page](https://github.com/yonas39/portfolio-yogas/blob/main/docs/index.md): `docs/index.md`
- [About page](https://github.com/yonas39/portfolio-yogas/blob/main/docs/aboutme.md): `docs/aboutme.md`
- [Assignments](https://github.com/yonas39/portfolio-yogas/tree/main/docs/assignments): `docs/assignments`
- [Assignment index](https://github.com/yonas39/portfolio-yogas/blob/main/docs/assignments.md): `docs/assignments.md`
- [Assignment data](https://github.com/yonas39/portfolio-yogas/blob/main/docs/assignments/assignment.data.ts): `docs/assignments/assignment.data.ts`
- [Blog posts](https://github.com/yonas39/portfolio-yogas/tree/main/docs/blogs): `docs/blogs`
- [Blog index](https://github.com/yonas39/portfolio-yogas/blob/main/docs/blogs.md): `docs/blogs.md`
- [Blog data](https://github.com/yonas39/portfolio-yogas/blob/main/docs/blogs/blog.data.ts): `docs/blogs/blog.data.ts`
- [Site media](https://github.com/yonas39/portfolio-yogas/tree/main/docs/assets): `docs/assets`

### Site rendering

- [VitePress config](https://github.com/yonas39/portfolio-yogas/blob/main/docs/.vitepress/config.mts): `docs/.vitepress/config.mts`
- [Site theme](https://github.com/yonas39/portfolio-yogas/blob/main/docs/.vitepress/theme/index.ts): `docs/.vitepress/theme/index.ts`
- [Theme styles](https://github.com/yonas39/portfolio-yogas/blob/main/docs/.vitepress/theme/style.css): `docs/.vitepress/theme/style.css`
- **VitePress**
- **Static site**

### Publication

- [Pages deployment](https://github.com/yonas39/portfolio-yogas/blob/main/.github/workflows/deploy.yml): `.github/workflows/deploy.yml`
- **GitHub Pages**

### Other components

- **Site author**

## Connections

- Site author → Home page: customizes
- Site author → About page: customizes
- Site author → Assignments: customizes
- Site author → Blog posts: customizes
- Site author → VitePress config: configures
- VitePress → Home page: renders
- VitePress → About page: renders
- VitePress → Assignment index: renders
- VitePress → Blog posts: renders
- VitePress → Blog index: renders
- VitePress → VitePress config: reads
- VitePress → Site theme: uses
- Site theme → Theme styles: loads
- VitePress → Site media: includes
- VitePress → Static site: generates
- Pages deployment → Static site: publishes
- Pages deployment → GitHub Pages: deploys to
