X
Excel Zero to Hero Interactive Learning Platform
0%
Vault to Web Architecture

Obsidian to Website Publishing Guide

Learn how this platform connects an author-friendly Obsidian Markdown vault with automated GitHub Actions CI/CD to generate a lightning-fast, accessible static educational website on GitHub Pages.

πŸ”„ Automated Git-Backed Publishing Pipeline

Stage 1

Obsidian Vault

Author notes locally in Markdown with YAML frontmatter, wikilinks, and callouts.

Stage 2

Git & GitHub

Push commits to main branch. Version control tracks every lesson revision.

Stage 3

GitHub Actions

.github/workflows/deploy.yml checks out repo, installs Node, and runs build script.

Stage 4

SSG (build.js)

Parses vault, converts Obsidian syntax, validates links, builds HTML in dist/.

Stage 5

GitHub Pages

Deploys static site to global CDN with zero server maintenance and instant load times.

Zero Duplication Principle: You never have to manually update HTML or JSON when editing curriculum notes. The Obsidian Markdown files in 02_Notes/, 03_Concepts/, and 04_Formulas/ are the single source of truth.

πŸ“ Supported Obsidian Syntax & Conventions

1. YAML Frontmatter

Every educational note begins with YAML frontmatter to populate metadata badges, difficulty indicators, and search tags:

---
title: "Modern XLOOKUP Mastery"
module: "Module 3: Formulas & Functions"
difficulty: "intermediate"
tags: [xlookup, lookup, dynamic-arrays]
video_chapter: "Module 3: Formulas & Functions"
video_timestamp: "01:38:56"
---

2. Obsidian Callouts

Use blockquotes with > [!type] Title. These automatically render as colored alert boxes with icons:

> [!tip] Best Practice
> Always use XLOOKUP instead of VLOOKUP.

> [!warning] Common Mistake
> Forgetting absolute $ references in copied formulas.

3. Wikilinks Resolution

Internal vault links using [[Note Name]] or [[Note Name|Custom Text]] are indexed and translated into clean static web URLs:

Refer to [[Relative vs Absolute Referencing]]
or practice with [[Ex03 - Formulas and Functions|Lab 3]].

4. Code Blocks with Copy

Fenced code blocks with language identifiers (excel, dax, powerquery) are automatically wrapped with language headers and one-click copy buttons.

πŸ”’ Safe Publishing Rules & Privacy Hygiene

To ensure sensitive files, local environment configurations, or unpublished drafts are never exposed on GitHub Pages, the publishing workflow enforces strict exclusion rules:

β›” Excluded by Default (.gitignore)
  • .obsidian/ workspace configuration & plugins
  • Local machine paths, credentials, and tokens
  • Large raw binaries not meant for Git tracking
  • Temporary editor swap and lock files
βœ“ Published Content Allowlist
  • 02_Notes/ β€” 38 structured curriculum lessons
  • 03_Concepts/ β€” 25 atomic mental models
  • 04_Formulas/ β€” 65+ formula encyclopedia notes
  • 05_Practice/, 06_Projects/, 07_Reference/, 08_Revision/

πŸš€ How to Publish a New Lesson or Concept

  1. Open your local Obsidian vault in COURSE-EXCEL-ZERO-TO-HERO.
  2. Create a new Markdown note inside the relevant folder (e.g. 02_Notes/03_Formulas_and_Functions/).
  3. Add the YAML frontmatter block with title, module, and difficulty.
  4. Write your lesson content using standard Markdown headings, callouts, and wikilinks.
  5. Commit your changes and push to GitHub:
    git add .
    git commit -m "Add Lesson: Advanced Dynamic Arrays"
    git push origin main
  6. The GitHub Actions workflow triggers automatically and deploys the update to GitHub Pages within ~60 seconds!