Commit 50439e09ca

50439e09ca6741a2c55ba5a3089e76990b8ced68

parent: 373eff928d

Unsigned

cmc <hello@cleberg.net> · 2025-06-03 22:13 UTC

fix(README): update entire README

Layout: unified · split

README.org +85 −41
@@ -1,79 +1,123 @@
11* cleberg.net
22
3[[https://cleberg.net][cleberg.net]] is my personal web page and blog. This website and blog utilize the
4powerful Org-Mode publishing system, courtesy of the [[https://github.com/emacs-love/weblorg][weblorg]] Emacs package.
3This document describes the structure and usage of the =cleberg.net= project.
4The site is built and maintained using the Org-Mode publishing system within
5Emacs, supported by the weblorg package. This setup allows for generation of
6static HTML content from Org files using a declarative configuration.
7
8** Site Structure
9
10The project source files are written in Org-Mode format and reside in the
11repository. These files are processed by the publishing engine to produce HTML
12output, which can then be deployed to a web server.
13
14The main site components are:
15
16- Org source files containing content, including blog posts and pages.
17- A configuration file (=publish.el=) that specifies publishing parameters like
18 base URL, output directories, and export options.
19- Assets such as images and stylesheets, located in designated subdirectories.
20- Utility scripts (e.g., =build.sh=) to facilitate building and deployment.
21
22** Dependencies
23
24The publishing system depends on:
25
26- Emacs text editor with Org-Mode.
27- The weblorg package, available at https://github.com/emacs-love/weblorg, which
28 provides advanced Org publishing functionality and theming support.
29
30** Viewing the Site Examples
31
32Screenshots illustrating the site in both light and dark display modes are
33included in the =./screenshots/= directory.
534
635| Light Mode | Dark Mode |
736|-------------------------+------------------------|
837| [[./screenshots/light.png]] | [[./screenshots/dark.png]] |
938
10** Features & Configuration
39** Configuration
40
41Custom site settings are centralized in the =publish.el= file. This file
42establishes key variables such as:
43
44- The base URL for links.
45- Output directories.
46- Publishing rules defining which files are converted and how.
47- Theme settings managed by weblorg.
1148
12This site leverages the flexibility of Org-Mode to allow for easy customization
13through a simple =publish.el= file. For those who are interested in tweaking the
14underlying configuration, the weblorg documentation provides all necessary
15details on possible settings and options.
49Users intending to modify site parameters should review and edit this file
50accordingly. The weblorg documentation contains extensive details on
51configuration options and expected formats.
1652
17** Getting Started
53** Setup Instructions
1854
19To begin exploring or contributing to this project, you'll first need to set up
20a local copy of the repository. This can be accomplished by running the
21following commands within Emacs:
55To obtain a working copy of this repository, execute the following commands
56within a shell environment or Emacs’ shell interface:
2257
2358#+begin_src shell
24git clone https://github.com/ccleberg/cleberg.net && \
25cd cleberg.net && \
59git clone https://github.com/ccleberg/cleberg.net
60cd cleberg.net
2661emacs -nw
2762#+end_src
2863
29Alternatively, if you prefer working with Doom, simply open any of the
30repository files using =Spc f f= and selecting =README.org=. From there, feel
31free to make any necessary changes or customizations.
64For users employing Doom Emacs, open any repository Org file using =SPC f f= to
65access the content.
3266
33** Building & Publishing the Site
67** Building and Publishing the Site
3468
35To test the site locally within Emacs, run the following command sequence:
69The publishing process involves invoking Emacs with the =publish.el= script,
70which performs the export of Org documents to HTML output.
3671
37Use the =ENV= environment variable to determine which base URL weblorg will use.
38If ENV is omitted, it will default to =localhost:8000=. If =ENV=prod=, weblorg
39will look in the =publish.el= file for the production base URL.
72Configure the environment variable =ENV= as follows:
73
74- If =ENV= is set to =prod=, the script uses production base URL settings as
75 defined in =publish.el=.
76- If =ENV= is unset or set differently, the script defaults to development
77 settings, typically using =localhost:8000= as the base URL.
78
79Example commands to build the site:
4080
4181#+begin_src shell
42# production:
82# Production build:
4383ENV=prod emacs --script publish.el
4484
45# development:
85# Development build:
4686emacs --script publish.el
4787#+end_src
4888
49The resulting files can then be deployed to your desired target using any method
50of your choice, such as =scp= or SFTP.
89Generated site files reside in the designated output directory, ready for
90deployment. Deployment can be performed by standard file transfer protocols such
91as =scp= or SFTP.
5192
52Alternatively, you may prefer to utilize the provided =build.sh= script to
53automate this process. To do so, simply customize and run the script as needed.
93The =./build.sh= script automates the build process. It can be executed with or
94without the =ENV= variable to perform production or development builds
95respectively.
5496
5597#+begin_src shell
56# production:
98# Production build script:
5799ENV=prod ./build.sh
58100
59# development:
101# Development build script:
60102./build.sh
61103#+end_src
62104
63*** Creating New Blog Posts
105** Creating New Blog Posts
106
107To add new blog content, follow this procedure within Emacs:
64108
65To quickly create a new blog post within Emacs, follow these steps:
1091. Open a new Org file (via =C-x C-f= or Doom's =SPC f f=).
1102. Insert the contents of the post template with =C-x i=, sourcing from
111 =utils/template.org=.
1123. Modify the new file as needed to add post content and metadata.
66113
671. Run =C-x C-f= (=SPC f f= in Doom) to open a new Org-Mode file.
682. Utilize the =insert-file-contents= command by pressing =C-x i=.
693. Direct the contents of =template.org= (located at =utils/template.org=) into
70 the newly opened file.
114This method streamlines content creation by reusing a preformatted template.
71115
72This streamlined process allows you to rapidly generate fresh content for
73cleberg.net, taking advantage of the existing template structure and formatting.
116** Contributing and Issue Tracking
74117
75** Contributing & Tasks
118Contributions and bug reports are tracked through the repository’s issue tab on
119GitHub. Users are encouraged to submit reports, feature requests, or pull
120requests following standard repository guidelines.
76121
77For those interested in contributing to this project or addressing any
78outstanding issues, please refer to the issues tab. This is where you can find a
79comprehensive list of open tickets or submit a new ticket for consideration.
122For further details on the usage of Org-Mode, weblorg configuration, or
123publishing workflows, consult the respective documentation sources.