Skip to content

AOG - Act of genius is an emacs based static site generator forked from org-page.

Notifications You must be signed in to change notification settings

metacritical/AOG

Repository files navigation

AOG - Act of Genius

Overview

AOG (Act of Genius) is an Emacs Org-mode static site generator. It is based on the org-page lineage and is used here as an editor-first publishing engine for technical blogs.

Core behavior:

  1. Read Org source files from a repository.
  2. Render content with Mustache templates and a selected theme.
  3. Generate category pages, tag pages, and RSS/search artifacts.
  4. Publish HTML output to a target directory or a configured branch workflow.

Features

  1. Org-native writing and export flow.
  2. Theme system with template/CSS/JS resources.
  3. Category and tag index generation.
  4. RSS generation.
  5. Incremental publication via git-aware workflows.
  6. Search index generation support in downstream pipelines.
  7. Highly scriptable Elisp integration.

Dependencies

Required:

  1. Emacs (batch mode).
  2. Org-mode.
  3. Git.
  4. Elisp libraries used by AOG internals: mustache.el, htmlize.el, dash.el, ht.el, git.el.

Optional:

  1. simple-httpd for Emacs-side preview flows.

Installation

Option 1: Load from local checkout

(add-to-list 'load-path "/path/to/AOG")
(require 'aog)

Option 2: Package-based installation

Install via your preferred Emacs package manager and then:

(require 'aog)

Minimal Configuration

(setq aog/repository-directory "/path/to/blog-repo")
(setq aog/site-domain "https://example.com")
(setq aog/site-main-title "My Blog")
(setq aog/site-sub-title "Notes on systems and software")
(setq aog/theme 'selfdotsend) ; or any available theme

Optional identity and integrations:

(setq aog/personal-github-link "https://github.com/your-user")
(setq aog/personal-disqus-shortname "your-disqus-id")
(setq aog/personal-google-analytics-id "G-XXXXXXX")

Usage From Emacs

Full publication

(aog/do-publication)

Publication to a target output directory

(aog/do-publication t nil "/tmp/aog-public" nil nil)

Interactive

Run:

M-x aog/do-publication

CLI Wrapper Workflow

In this environment, a companion shell wrapper named aog is used to drive AOG + blog automation from the terminal.

Default locations used by the wrapper:

  1. AOG_DIR -> /Users/pankajdoharey/Development/Projects/AOG
  2. AOG_REPO_DIR -> /Users/pankajdoharey/Development/metacritical.github.io

Current commands:

aog build [repo_dir]
aog dev [repo_dir]
aog new [--publish] "Title"
aog new [repo_dir] [--publish] "Title"
aog ls [repo_dir]
aog publish [repo_dir] [output_dir]
aog draft-publish [repo_dir] [output_dir]
aog preview [repo_dir] [output_dir] [port]

Command intent:

  1. build: run repository publish.sh pipeline (full production-style build).
  2. dev: run doorman process set (watch + local web + local editor stack).
  3. new: create draft by default, or publish-ready post with --publish.
  4. ls: list draft Org files.
  5. publish: run AOG publication only.
  6. draft-publish: run AOG publication including drafts.
  7. preview: publish then serve via Python HTTP on selected port.

Theme Development

Themes live under themes/ and typically include:

  1. templates/ (Mustache templates)
  2. resources/css
  3. resources/js
  4. optional images/fonts

For downstream blog repos, theme resources are copied into generated output directories by repository publish scripts.

Notes

  1. AOG publishes content; repository-level scripts usually handle extra steps like link normalization, syntax post-processing, static asset copy, and deployment-specific aliasing.
  2. If you rely on incremental git-aware publishing, keep repository history clean and commit source changes before publication.

About

AOG - Act of genius is an emacs based static site generator forked from org-page.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 24