# Introduction

This repository contains code for the website https://zainezq.com, which serves as a central familial hub for me.

The site is written using Emacs and Org-mode, and exported using the `org-publish` functionality. See the `build-site.el` script for details on how the site is built and published.

## Local authoring UI

Run `make author` to install and start the user systemd service, then open `http://127.0.0.1:8765` to create or edit blog and post Org files from a browser. When deployed behind the reverse proxy, use `https://author.zainezq.com`.

The service unit is checked in at `systemd/user/org-web-authoring.service` and is installed to `~/.config/systemd/user/` by the Makefile. Useful service commands:

- `make author-restart` restarts the service and waits for the page API to respond
- `make author-stop` stops the service
- `make author-status` shows systemd status and the editable page count
- `make author-logs` shows recent journal logs

The editor writes normal `.org` pages with the metadata used by the publishing pipeline:

- blogs default to `blogs/YYYY/MM-month/slug.org`
- posts default to `posts/slug.org`, or `posts/section/slug.org` when a section is provided
- new pages can use an explicit path under `blogs/` or `posts/`
- saving a page starts `emacs -Q --script build-site.el` and then regenerates the search index

Lima pages are Markdown files under `lima/`. Selecting the Lima page type shows a Markdown toolbar for common formatting and an attachment button. Uploaded images and videos are stored under `assets/images/hzone/YYYY/MM/` and inserted into the Markdown page.

Saves enqueue builds. The editor remains usable while publishing runs, and the queue section shows the current build, pending builds, and recent build results.
