Recently Written · git

recentlywritten

my writings (done recently)

git clone https://github.com/equwal/recentlywritten

Log | Files | Refs


git/cl-yag/commit/e01b405e3258de8b4331abf84ec791d40bda805d.html (8692 bytes)

1 <!DOCTYPE html>
2 <html lang="en"><head><meta charset="UTF-8" />
3 <meta name="viewport" content="width=device-width, initial-scale=1" />
4 <title>cl-yag e01b405e - Recently Written</title>
5 <link rel="stylesheet" href="../../stagit.css" />
6 </head><body>
7 <div id="top"><a href="../../../index.html">Recently Written</a> &middot; <a href="../../index.html">git</a></div>
8 <h1>cl-yag</h1><span class="desc">Mirror and rewrite of Solène Rapenne&#x27;s cl-yag SSG of renown</span><p class="url">git clone https://github.com/equwal/cl-yag</p><p><a href="../../cl-yag/index.html">Log</a> | <a href="../../cl-yag/files.html">Files</a> | <a href="../../cl-yag/refs.html">Refs</a></p><hr/>
9 <div id="content">
10 <pre>commit e01b405e3258de8b4331abf84ec791d40bda805d
11 Spenser Truex &lt;truex@equwal.com&gt;
12 2025-09-01 16:06:08 -0400
13 
14 Update README for refactor
15 
16 </pre><pre> README.md | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++------------
17  1 file changed, 60 insertions(+), 14 deletions(-)
18 </pre><pre>diff --git a/README.md b/README.md
19 index a7b7b43..b4a8147 100644
20 --- a/README.md
21 +++ b/README.md
22 <span class="h">@@ -3,10 +3,11 @@</span>
23  
24  ## Introduction
25  
26 <span class="d">-cl-yag is a lightweight, static site generator that produces</span>
27 <span class="d">-**gopher** sites as well as **html** websites.  The name &#x27;cl-yag&#x27;</span>
28 <span class="d">-stands for &#x27;Common Lisp - Yet Another website Generator&#x27;.  It runs</span>
29 <span class="d">-without needing Quicklisp (Common LISP library manager).</span>
30 <span class="a">+cl-yag is a lightweight, static site generator that produces **gopher**</span>
31 <span class="a">+and **gemini** sites (and is easily extensible to more formats) as</span>
32 <span class="a">+well as **html** websites.  The name &#x27;cl-yag&#x27; stands for &#x27;Common Lisp</span>
33 <span class="a">+- Yet Another website Generator&#x27;.  It runs without needing Quicklisp</span>
34 <span class="a">+(Common LISP library manager).</span>
35  
36  
37  ## Showcase
38 <span class="h">@@ -17,23 +18,49 @@ world-wide-web (visit: *[Solene&#x27;s percent]</span>
39  (gopher://dataswamp.org/1/~solene/).
40  
41  
42 <span class="a">+    MASSIVE CHANGE CRAZINESS TOO MUCH (see desc)</span>
43 <span class="a">+    </span>
44 <span class="a">+    For your testing pleasure. I&#x27;m planning to send this up as multiple</span>
45 <span class="a">+    atomic commits. There are probably some bugs.</span>
46 <span class="a">+    </span>
47 <span class="a">+    - Add an asdf system</span>
48 <span class="a">+    - Plug and play/backward compatible (generator.lisp and</span>
49 <span class="a">+      data/artcles.lisp don&#x27;t need to be moved or anything)</span>
50 <span class="a">+    This makes the generators/ directory where new generators can be added.</span>
51 <span class="a">+    - Generators are now completely separate from the rest of the project</span>
52 <span class="a">+      (see the generators directory). Adding new ones is as simple as addin</span>
53 <span class="a">+      the file, registering a new generator in data/articles, and adding the</span>
54 <span class="a">+      file to the asdf definition so it gets loaded.</span>
55 <span class="a">+    - Bugfix: :if-does-not-exist :create it</span>
56 <span class="a">+    - Makefile: changes: split it up in there so it is possible to build</span>
57 <span class="a">+      smaller bits ad needed.</span>
58 <span class="a">+    - Makefile: Added all the lisps in order of good-ness to search for.</span>
59 <span class="a">+    - quit command/portability fix: used Clocc&#x27;s quit commnd to make the</span>
60 <span class="a">+      program portable.</span>
61 <span class="a">+</span>
62  ## Requirements
63  
64  To use cl-yag you&#x27;ll need:
65  
66 <span class="d">-1. A Common Lisp Interpreter</span>
67 <span class="d">-    - cl-yag&#x27;s current default is [Steel Bank Common Lisp (SBCL)](http://www.sbcl.org/).</span>
68 <span class="d">-    - [Embeddable Common Lisp (ECL)](https://common-lisp.net/project/ecl/) will do fine as well.</span>
69 <span class="d">-2. A Markdown-to-HTML Converter</span>
70 <span class="d">-    - cl-yag&#x27;s current default is [multimarkdown](http://fletcherpenney.net/multimarkdown/).</span>
71 <span class="a">+1. Any Common Lisp Interpreter and the ASDF package system</span>
72 <span class="a">+    - cl-yag&#x27;s current default is [Embeddable Common Lisp (ECL)](https://common-lisp.net/project/ecl/).</span>
73 <span class="a">+    - [Steel Bank Common Lisp (SBCL)](http://www.sbcl.org/) will do fine as well.</span>
74  
75 <span class="a">+2. A Converter for arbitrary formats</span>
76 <span class="a">+    - cl-yag&#x27;s current default is [multimarkdown](http://fletcherpenney.net/multimarkdown/).</span>
77 <span class="a">+    - pandoc could work fine too</span>
78 <span class="a">+    - each post can have its own converter as needed (great if importing your site from elsewhere)</span>
79  
80  ## Usage
81  
82 <span class="d">-Go into your project&#x27;s directory and type ``make``. You&#x27;ll find your new website/gopher page in **output/**.  </span>
83 <span class="d">-If you want to get rid of everything in your **output/** sub directories, type ``make clean``.  </span>
84 <span class="d">-For further commands: read the Makefile.</span>
85 <span class="d">-Read in the following section where to find it.</span>
86 <span class="a">+Go into your project&#x27;s directory and type ``make``. You&#x27;ll find your</span>
87 <span class="a">+new website/gopher/gemini page in **output/**.  If you want to get rid</span>
88 <span class="a">+of everything in your **output/** sub directories, type ``make clean``.</span>
89 <span class="a">+For further commands: read the Makefile. Read in the following section</span>
90 <span class="a">+where to find it.</span>
91 <span class="a">+</span>
92 <span class="a">+It is necessary to edit the ``data/articles.lisp`` file which is the</span>
93 <span class="a">+user configuration for the site.</span>
94  
95  
96  ## Overview: cl-yag&#x27;s File Hierarchy
97 <span class="h">@@ -67,7 +94,13 @@ least the following files and folders:</span>
98  - **Makefile**
99      - This file exists to simplify the recurring execution of frequently used commands.
100  - **generator.lisp**
101 <span class="d">-    - This is cl-yag&#x27;s core library.</span>
102 <span class="a">+    - This is cl-yag&#x27;s deploying script.</span>
103 <span class="a">+- **generators-util,generator-aux-pre.lisp,generator-aux.lisp**</span>
104 <span class="a">+    - This is the core library, split into multiple files so things are loaded in the right order.</span>
105 <span class="a">+- **cl-yag.asd**</span>
106 <span class="a">+    - This is the definition of the system. Useful for adding new generators and seeing the order files are loaded.</span>
107 <span class="a">+- **generators/(...).lisp**</span>
108 <span class="a">+    - The output generators. Contribute new ones!</span>
109  - **static/**
110      - This directory holds content, that needs to be published without being changed (e.g. style sheets, js-scripts).
111  	- If you come from &#x27;non-static CMS&#x27;-Country: **static/** holds, what you would put in your **assets/** directory.
112 <span class="h">@@ -165,6 +198,11 @@ Of the following keywords, only ``:author`` and ``:short`` can be omitted.</span>
113  - **:title**
114  	- The ``:title`` field&#x27;s value sets your post&#x27;s title, its first headline, as well as its entry on the index.html.
115  
116 <span class="a">+### Generator registering</span>
117 <span class="a">+</span>
118 <span class="a">+Each generator is registered in the user config. To not generate something, just comment out the registry for that</span>
119 <span class="a">+generator.</span>
120 <span class="a">+</span>
121  
122  ## How-to Create A New Post
123   
124 <span class="h">@@ -269,6 +307,13 @@ webscale style sheets, you need to create them yourself.  However,</span>
125  cl-yag will work nicely with them and if you want to make your
126  style sheets a part of cl-yag you&#x27;re very welcome to contact me.
127  
128 <span class="a">+### New Generators</span>
129 <span class="a">+</span>
130 <span class="a">+1. Add a lisp file to generators/ which does the necessary work. See the other ones for comparison.</span>
131 <span class="a">+2. Add it to the **cl-yag.asd** file with the other generators (order is important).</span>
132 <span class="a">+3. `register` it in **data/articles.lisp**</span>
133 <span class="a">+4. Contribute it.</span>
134 <span class="a">+</span>
135  
136  # Hacking cl-yag
137  
138 <span class="h">@@ -279,3 +324,4 @@ If you want to contribute, feel free to contact me and/or to send in a patch.</span>
139      - You could find a way to &quot;sanitize&quot; cl-yag&#x27;s behaviour regarding the tilde (see: above);
140      - Also see: &#x27;Note&#x27; in &#x27;Posting Without Tagging&#x27;;
141  	- Also see: &#x27;A Note On Themes&#x27;.
142 <span class="a">+</span></pre>
143 </div></body></html>