aboutsummaryrefslogtreecommitdiff
path: root/README.org
diff options
context:
space:
mode:
Diffstat (limited to 'README.org')
-rw-r--r--README.org114
1 files changed, 114 insertions, 0 deletions
diff --git a/README.org b/README.org
new file mode 100644
index 0000000..53a06c1
--- /dev/null
+++ b/README.org
@@ -0,0 +1,114 @@
+* cleberg.net
+
+This repository holds the files for [[https://cleberg.net][cleberg.net]], a static-site with blog posts,
+personal links, and more.
+
+This site uses [[https://github.com/emacs-love/weblorg][weblorg]] to build the static site, which relies on [[https://www.gnu.org/software/emacs/][emacs]].
+
+** Site Structure
+
+I write content pages (e.g., blog posts) in org-mode and templates in HTML. I
+use Weblorg to build these files into a static site, and then deploy them to a
+web server.
+
+The main site components are:
+
+- Org source files containing content, including blog posts and pages.
+- A configuration file (~publish.el~) that specifies publishing parameters like
+ base URL, output directories, and export options.
+- Assets such as images and style sheets, located in designated subdirectories.
+- Utility scripts (e.g., ~build.py~) to facilitate building and deployment.
+
+** Dependencies
+
+The publishing system depends on:
+
+- Emacs text editor with Org-Mode.
+- The weblorg package, available at [[https://github.com/emacs-love/weblorg]], which
+ provides advanced Org publishing functionality and theming support.
+
+** Screenshots
+
+Screenshots illustrating the site in both light and dark display modes are
+included in the ~screenshots~ directory.
+
+| Light Mode | Dark Mode |
+|-------------------------+------------------------|
+| [[./screenshots/light.png]] | [[./screenshots/dark.png]] |
+
+** Configuration
+
+You can customize site settings can within the ~publish.el~ file. This file
+establishes key variables such as:
+
+- The base URL for links.
+- Output directories.
+- Publishing rules to define which files to convert and how.
+- Theme settings managed by weblorg.
+
+Users intending to modify site parameters should review and edit this file
+accordingly. The weblorg documentation contains extensive details on
+configuration options and expected formats.
+
+** Setup Instructions
+
+To obtain a working copy of this repository, execute the following commands
+within a shell environment or Emacs shell interface:
+
+#+begin_src shell
+git clone https://github.com/ccleberg/cleberg.net
+cd cleberg.net
+emacs -nw
+#+end_src
+
+For users employing Doom Emacs, open any repository Org file using ~SPC f f~ to
+access the content.
+
+** Building and Publishing the Site
+
+The publishing process involves invoking Emacs with the ~publish.el~ script, which
+performs the export of Org documents to HTML output.
+
+Configure the environment variable ~ENV~ as follows:
+
+- If you set ~ENV~ to ~prod~, the script uses production base URL settings as
+ defined in ~publish.el~.
+- If you do not set ~ENV~ or set it differently, the script defaults to
+ development settings, typically using ~localhost:8000~ as the base URL.
+
+Example commands to build the site:
+
+#+begin_src shell
+# Production build:
+ENV~prod emacs --script publish.el
+
+# Development build:
+emacs --script publish.el
+#+end_src
+
+Generated site files reside in the designated output directory, ready for
+deployment. You can deploy the resulting static site files via standard file
+transfer protocols such as ~scp~ or SFTP.
+
+The ~build.py~ script automates the build process. You can execute this script
+with or without the ~ENV~ variable to perform production or development builds
+respectively.
+
+#+begin_src shell
+# Production build script:
+ENV~prod uv run build.py
+
+# Development build script:
+uv run build.py
+#+end_src
+
+** Creating New Blog Posts
+
+To add new blog content, follow this procedure within Emacs:
+
+1. Open a new Org file (via ~C-x C-f~ or Doom's ~SPC f f~).
+2. Insert the contents of the post template with ~C-x i~, sourcing from
+ ~utils/template.org~.
+3. Modify the new file as needed to add post content and metadata.
+
+This method streamlines content creation by reusing a preformatted template.