Skip to content

Repository files navigation

Blog

Jekyll blog with Org-mode sources, ready for bebekim.github.io.

make install
make build
make serve

Write posts in org/_posts/ with filenames like 2026-07-27-welcome.org. Keep unpublished drafts in org/_drafts/. Commit the exported index.html and _posts/*.html; GitHub Pages runs Jekyll, not Emacs. Gemfile matches GitHub Pages; Gemfile.local keeps local builds working on macOS system Ruby.

Curriculum

Separate from the regular posts, org/curriculum/ holds guided exercise modules by track:

org/curriculum/
  math/
    m01-algebraic-inequalities-induction/
    m02-...
  cs/
    cs01-invariants/
    cs02-...
  physical-mathematics/   (planned, no modules yet)

Each module has its own numbered id (m01, cs01, ...) used both in its URL and as the key for its Bitwarden item. Add a new module by creating a new numbered directory alongside the existing ones and registering it in scripts/encrypt-solutions.mjs.

Each exercise page (index.org) has a matching hints/index.org. Their readable solution sources live outside Jekyll, in the gitignored _solutions/<module-id>/<exercise-slug>.html.

Solution passwords (per module, via Bitwarden)

Every module is locked with its own password, stored as a Bitwarden item named blog-solutions-<module-id> (e.g. blog-solutions-m01, blog-solutions-cs01). Nothing in this repo ever sees the password in plaintext — the encryption script shells out to the Bitwarden CLI (bw) for it at build time.

bw login                        # once
export BW_SESSION="$(bw unlock --raw)"
make solutions

This reads every module's password from Bitwarden and (re)writes the encrypted .../<exercise>/solution/index.html pages under each module's own password. Never commit _solutions/ or any password.

About

Github Page

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages