Skip to content

Repository files navigation

Deep Calls

Long-form faith writeups — scripture, doubt, culture, and the God who draws in curves.

This is a plain static site (HTML/CSS/vanilla JS, no build tools required to run it) with a small Python generator that turns Markdown essays into the styled pages. It's built to be hosted for free on GitHub Pages.

Tech stack: Python 3 static-site generator (markdown package) → static HTML/CSS/vanilla JS output. 28 long-form essays, client-side search/filter on library.html, no server, no database, no npm.


1. Deployment

Live at: https://babatundeawo.github.io/deep-calls/

Deployed via GitHub Pages, Settings → Pages → Source: "Deploy from a branch", branch main, folder / (root). No build step runs on GitHub — the HTML in this repo is already the final generated output, committed directly.

scripts/generate_site.py has SITE_URL set to the live URL above, so social-share links and the sitemap already point to the right place. If you ever fork this to a different URL, update SITE_URL at the top of that file and re-run the generator (see step 3 below).


2. Folder structure

index.html            ← homepage (generated)
404.html              ← not-found page (generated)
sitemap.xml           ← generated
robots.txt            ← generated
writeups/*.html       ← one page per essay (generated)
assets/css/style.css  ← all styling — hand-written, safe to edit directly
assets/js/*.js        ← search/filter + interactivity — hand-written, safe to edit
assets/img/           ← favicon etc.
content/*.md          ← the SOURCE of every essay — edit these, not the HTML
data/writeups.json    ← generated metadata (title, excerpt, category, reading time…)
scripts/               ← the two-step generator described below

Rule of thumb: anything inside writeups/, index.html, 404.html, sitemap.xml, robots.txt, and data/writeups.json is generated. Don't hand-edit it — your changes will be overwritten the next time you run the generator. Edit the Markdown in content/, or the CSS/JS in assets/, instead.


3. Adding a new writeup later

  1. Drop a new .md file into content/. Format it like the existing ones:

    # Your Title Here
    
    ---
    
    > *"A scripture quote."*
    > — Book Chapter:Verse (Translation)
    
    ---
    
    ## Your First Subheading
    
    Body text starts here...
  2. Open scripts/build_data.py and add one line to the CATEGORY dictionary near the top, mapping your new file's name (without .md) to one of the existing categories ("Grace & Identity", "Hard Questions", "Sovereignty", "Church & Culture", "Spiritual Warfare", "Wisdom") — or invent a new category name and it'll show up automatically as a new filter chip.

  3. Regenerate the site:

    cd scripts
    python3 build_data.py      # re-parses everything in content/ into data/writeups.json
    python3 generate_site.py   # rebuilds index.html, writeups/*.html, sitemap.xml, etc.

    (Needs Python 3 with the markdown package: pip install markdown.)

  4. Commit and push. GitHub Pages updates automatically within a minute or two.

That's the whole workflow — no npm, no framework, no build server.


4. Design notes

  • Palette: a reading room by daylight — warm paper background (#f7f2e6), deep ink text (#211c2b), candlelight gold accents (#8a6a1a / #dba934), with a faint wine red for warmth. Custom properties live at the top of assets/css/style.css.
  • Type: Fraunces (display headlines) + Literata (long-form reading body) + Inter (UI chrome), loaded from Google Fonts.
  • Signature motif: every section divider is a gently curved hand-drawn line rather than a straight hairline rule — a nod to the essay "The God Who Draws in Curves," about providence rarely taking the straight path.
  • Mobile-first throughout; the grid scales from 1 → 2 → 3 columns as the viewport grows.
  • Respects prefers-reduced-motion; all interactive elements have visible keyboard focus states.

5. Local preview

No server is strictly required — you can open index.html directly in a browser. For paths to behave exactly like production (and to avoid any browser file:// quirks), you can also run a tiny local server from the repo root:

python3 -m http.server 8000
# then visit http://localhost:8000

About

ong-form Christian apologetics essays — scripture, doubt and culture — served as a static site built by a custom Python Markdown-to-HTML generator.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages