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
Obsidian Vault
Author notes locally in Markdown with YAML frontmatter, wikilinks, and callouts.
Git & GitHub
Push commits to main branch. Version control tracks every lesson revision.
GitHub Actions
.github/workflows/deploy.yml checks out repo, installs Node, and runs build script.
SSG (build.js)
Parses vault, converts Obsidian syntax, validates links, builds HTML in dist/.
GitHub Pages
Deploys static site to global CDN with zero server maintenance and instant load times.
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:
.obsidian/workspace configuration & plugins- Local machine paths, credentials, and tokens
- Large raw binaries not meant for Git tracking
- Temporary editor swap and lock files
02_Notes/β 38 structured curriculum lessons03_Concepts/β 25 atomic mental models04_Formulas/β 65+ formula encyclopedia notes05_Practice/,06_Projects/,07_Reference/,08_Revision/
π How to Publish a New Lesson or Concept
- Open your local Obsidian vault in
COURSE-EXCEL-ZERO-TO-HERO. - Create a new Markdown note inside the relevant folder (e.g.
02_Notes/03_Formulas_and_Functions/). - Add the YAML frontmatter block with
title,module, anddifficulty. - Write your lesson content using standard Markdown headings, callouts, and wikilinks.
- Commit your changes and push to GitHub:
git add . git commit -m "Add Lesson: Advanced Dynamic Arrays" git push origin main - The GitHub Actions workflow triggers automatically and deploys the update to GitHub Pages within ~60 seconds!