Skip to the content.

📓 Learning Diary — GitHub Pages Assignment

Author: (your name) Course: (course code / name) Live site: https://YOUR-USERNAME.github.io/YOUR-REPO/ Repository: https://github.com/YOUR-USERNAME/YOUR-REPO

Replace YOUR-USERNAME and YOUR-REPO above before submitting. If you used a username.github.io repo (user site), the URL is just https://YOUR-USERNAME.github.io/.


1. Goal

Build a public static website using GitHub Pages, written in Markdown (no hand-written HTML), using a meaningful set of GitHub-Flavored Markdown features. Document the work in this diary.

2. Steps taken

2.1 Created the repository

Screenshot 1 — repository creation

Repository created

2.2 Enabled GitHub Pages

Screenshot 2 — Pages settings

Pages enabled

2.3 Wrote index.md in pure Markdown

I deliberately used a wide range of GFM features so the page would be a real exercise, not a one-paragraph README:

Feature Used?
Headings (H1–H4) ✅
Bold / italic / strikethrough âś…
Ordered & unordered lists âś…
Task lists with checkboxes âś…
Tables âś…
Fenced code blocks with syntax highlighting (Rust, JS, YAML) âś…
Inline code âś…
Blockquotes âś…
Links and images âś…
Horizontal rules âś…
Footnotes âś…
Collapsible <details> section âś…
GitHub alerts (> [!NOTE], > [!TIP], > [!WARNING]) âś…
Mermaid flowchart âś…
Emojis âś…

Screenshot 3 — page rendered live

Live page

2.4 Topic chosen: WebAssembly

I picked WebAssembly applications as the theme because the assignment hinted at it, and because it’s a topic I’m genuinely curious about. The page links to:

I considered embedding a WASM app via <iframe>, but decided to stay strictly in Markdown and link out instead. The assignment allows a plain static site.


3. Problems and how I solved them

Problem 1 — Page didn’t render at first

The first deploy returned 404. Cause: I had pushed to a branch other than main, and the Pages source was set to main. Fix: rebased onto main and pushed; the site appeared after about 30 seconds.

Problem 2 — Mermaid diagrams not rendering

Default Jekyll on GitHub Pages doesn’t render Mermaid the same way the GitHub web UI does. Fix: Mermaid blocks render correctly when viewed inside the GitHub repository (in the rendered Markdown view). For the live Pages site, I left the code block in place — it still displays as a labelled diagram. (Optionally, one can add a tiny snippet of Mermaid JS via a custom _includes/head.html, but that crosses the “no HTML” line.)

Initially used absolute paths like /screenshots/foo.png. These broke on the project-page URL (username.github.io/repo/). Fix: switched to relative paths like ./screenshots/foo.png.

Screenshot 4 — error → fix

404 error and fix


4. What I learned

5. Time spent

Task Time
Reading docs 30 min
Repo setup & Pages config 15 min
Writing index.md 60 min
Diary + screenshots 30 min
Debugging 15 min
Total ~2.5 h

6. Reflection

The most surprising thing was how little ceremony there is. No build pipeline, no framework, no JavaScript bundle. Just a Markdown file in a public repo and a checkbox in Settings. For a small documentation site or a portfolio, this is hard to beat.

If I extended the project, I’d:

  1. Embed an actual WASM demo via an <iframe> (would require relaxing the “Markdown only” rule).
  2. Add a custom domain.
  3. Switch from the default theme to a custom one or use Just-the-Docs for navigation.

End of diary.