-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrss.xml
363 lines (362 loc) · 18 KB
/
rss.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Good Generator.py</title>
<link>https://oliz.io/ggpy</link>
<description></description>
<generator>Good Generator.py -- ggpy -- https://oliz.io/ggpy</generator>
<lastBuildDate>Sun, 04 Feb 2024 23:11:35 -0000</lastBuildDate>
<atom:link href="https://oliz.io/ggpy/rss.xml" rel="self" type="application/rss+xml" />
<item>
<title>Some Post</title>
<link>https://oliz.io/ggpy/test/some-post.html</link>
<pubDate>Sat, 17 Mar 2018 13:37:42 +0000</pubDate>
<guid>https://oliz.io/ggpy/test/some-post.html</guid>
<description><p>Yep! Intro text!</p>
<h2 id="headline">Headline</h2>
<p>More text!</p></description>
</item>
<item>
<title>Little inline content, no description</title>
<link>https://oliz.io/ggpy/test/features/index-inline-posts/little-inline-content-no-description.html</link>
<pubDate>Sat, 17 Jul 2021 18:59:06 +0000</pubDate>
<guid>https://oliz.io/ggpy/test/features/index-inline-posts/little-inline-content-no-description.html</guid>
<description><p>This shows directly on the card, without details+summary blocks.</p></description>
</item>
<item>
<title>Lots of content, no description</title>
<link>https://oliz.io/ggpy/test/features/index-inline-posts/lots-of-content-no-description.html</link>
<pubDate>Sat, 17 Jul 2021 18:59:03 +0000</pubDate>
<guid>https://oliz.io/ggpy/test/features/index-inline-posts/lots-of-content-no-description.html</guid>
<description><ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
<li>Six</li>
<li>Seven</li>
<li>Eight</li>
<li>Nine</li>
<li>Ten</li>
</ul>
<p>... and some more lines.</p></description>
</item>
<item>
<title>Lots of content, with description</title>
<link>https://oliz.io/ggpy/test/features/index-inline-posts/lots-of-content-with-description.html</link>
<pubDate>Sat, 17 Jul 2021 18:59:04 +0000</pubDate>
<guid>https://oliz.io/ggpy/test/features/index-inline-posts/lots-of-content-with-description.html</guid>
<description><ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
<li>Six</li>
<li>Seven</li>
<li>Eight</li>
<li>Nine</li>
<li>Ten</li>
</ul>
<p>... and some more lines.</p></description>
</item>
<item>
<title>No content, but with description</title>
<link>https://oliz.io/ggpy/test/features/index-inline-posts/no-content-with-description.html</link>
<pubDate>Sat, 17 Jul 2021 18:59:05 +0000</pubDate>
<guid>https://oliz.io/ggpy/test/features/index-inline-posts/no-content-with-description.html</guid>
<description></description>
</item>
<item>
<title>Markdown Feature Test without &quot;quotes bug&quot;</title>
<link>https://oliz.io/ggpy/test/features/</link>
<pubDate>Thu, 06 Jun 1996 13:37:42 +0000</pubDate>
<guid>https://oliz.io/ggpy/test/features/</guid>
<description><h2 id="headline-2">Headline 2</h2>
<p>Paragraph
with
non-empty
lines.</p>
<h2 id="lists">Lists</h2>
<ol>
<li><strong>Ordered list item, bold</strong></li>
<li><em>Ordered list item, italic</em></li>
</ol>
<hr />
<ul>
<li>Normal unordered list item</li>
<li><del>Unordered list item, DELETED!</del></li>
<li><code>Unordered list item, inline coded</code></li>
</ul>
<hr />
<ul class="task-list">
<li class="task-list-item"><input type="checkbox" disabled/> unchecked</li>
<li class="task-list-item"><input type="checkbox" disabled checked/> checked</li>
</ul>
<h2 id="code">Code</h2>
<pre class="highlight"><code># Code blocks work</code></pre>
<pre class="highlight"><code class="language-python">def python_code_blocks():
return "work, too!"</code></pre>
<p>Let there be...</p>
<pre><code>another
code
block
</code></pre>
<h2 id="tables">Tables</h2>
<table>
<thead>
<tr>
<th>Tables</th>
<th>work</th>
<th style="text-align: right;">just</th>
<th>fine</th>
</tr>
</thead>
<tbody>
<tr>
<td>for</td>
<td>real</td>
<td style="text-align: right;">yep</td>
<td>yeah.</td>
</tr>
</tbody>
</table>
<h2 id="quotes">Quotes</h2>
<blockquote>
<p>"So smart"</p>
<p>"So smart" - me, sometimes</p>
</blockquote>
<h2 id="image">Image</h2>
<p><img alt="Good Generator Logo" src="https://oliz.io/ggpy/static/gg.png" /></p>
<p>Horizontal rule...</p>
<hr />
<h2 id="other-markdown-extensions">Other Markdown Extensions</h2>
<h3 id="definition-lists-and-footnotes">Definition Lists and Footnotes</h3>
<dl>
<dt>Definition List</dt>
<dd>is defined here<sup id="fnref:1"><a class="footnote-ref" href="#fn:1">1</a></sup>.</dd>
<dt>Other List</dt>
<dd>is defined here<sup id="fnref:here"><a class="footnote-ref" href="#fn:here">2</a></sup>.</dd>
</dl>
<h3 id="abbreviations">Abbreviations</h3>
<p><abbr title="Hyper Text Markup Language">HTML</abbr></p>
<h2 id="leftovers">Leftovers</h2>
<p>Yep, now the footnotes are arriving!</p>
<div class="footnote">
<hr />
<ol>
<li id="fn:1">
<p>Numbered footnote&#160;<a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text">&#8617;</a></p>
</li>
<li id="fn:here">
<p>Labeled footnote&#160;<a class="footnote-backref" href="#fnref:here" title="Jump back to footnote 2 in the text">&#8617;</a></p>
</li>
</ol>
</div></description>
</item>
<item>
<title>Markdown Meta Data</title>
<link>https://oliz.io/ggpy/test/features/meta.html</link>
<pubDate>Sun, 04 Apr 2021 18:59:03 +0000</pubDate>
<guid>https://oliz.io/ggpy/test/features/meta.html</guid>
<description><p><code>ggpy</code> supports Markdown meta headers at the beginning of each file, e.g. for this document:</p>
<pre class="highlight"><code>---
title: Markdown Meta Data
description: Meta data format and supported options
date: 2021-04-04T18:59:03Z
tags: documentation
---
`ggpy` supports Markdown meta headers [...]</code></pre>
<p>Tags may be separated by commas or with a separate key, spaces are ignored, e.g.:</p>
<pre class="highlight"><code>---
tags: topic, other
tags: __draft__
---</code></pre>
<p>...produces three tags <code>topic</code>, <code>other</code> and <code>__draft__</code></p>
<h2 id="meta-keys">Meta Keys</h2>
<p>All keys are optional:</p>
<table>
<thead>
<tr>
<th>Key</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>title</code></td>
<td>Document title</td>
</tr>
<tr>
<td><code>description</code></td>
<td>Short description or summary of the document</td>
</tr>
<tr>
<td><code>date</code></td>
<td>Creation date of the document</td>
</tr>
<tr>
<td><code>tags</code></td>
<td>List of tags. Some tags may have special effects (see below). This key may be used multiple times (see example above).</td>
</tr>
</tbody>
</table>
<h2 id="special-tags">Special Tags</h2>
<p>Special tags may be used to configure <code>ggpy</code>'s behavior. Such tags always start and end with double underscore (<code>__</code>, also called "dunder" in the Python world):</p>
<table>
<thead>
<tr>
<th>Tag</th>
<th>Description/Effect</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>__draft__</code></td>
<td>Marks a document as "draft". Drafts are not included in the generated sitemap or index</td>
</tr>
<tr>
<td><code>__index__</code></td>
<td>Document should be an index of all documents. Other markdown content of the file is then ignored, not rendered</td>
</tr>
<tr>
<td><code>__inline__</code></td>
<td>Inline document in the index generated with <code>__index__</code>. Absolute links for images are advised, to not break rendering in the index and as a separate document.</td>
</tr>
<tr>
<td><code>__no_meta__</code></td>
<td>Don't render machine-readable meta data for social media etc.</td>
</tr>
<tr>
<td><code>__no_header__</code></td>
<td>Omit the page header with site icon, title headline, author and date</td>
</tr>
<tr>
<td><code>__no_footer__</code></td>
<td><a href="no-footer/">Omit the page footer with navigation, theme control and social links</a></td>
</tr>
</tbody>
</table></description>
</item>
<item>
<title>Changelog</title>
<link>https://oliz.io/ggpy/CHANGELOG.html</link>
<pubDate>Tue, 05 Apr 2022 15:54:38 +0000</pubDate>
<guid>https://oliz.io/ggpy/CHANGELOG.html</guid>
<description><h2 id="2022-04-05-version-311">2022-04-05: Version 3.1.1</h2>
<ul>
<li>Fix error if used without a git repo</li>
<li>Omit empty or not set logo/avatar instead of rendering broken img tag</li>
</ul>
<h2 id="2022-03-27-version-31">2022-03-27: Version 3.1</h2>
<ul>
<li>Change default style: no shadows, greater max. logo size</li>
<li>Drop IE ("X-UA-Compatible" meta tag) support</li>
<li>Render post tags next to author and date</li>
</ul>
<h2 id="2022-01-16-version-301">2022-01-16: Version 3.0.1</h2>
<ul>
<li>Improve determinism of RSS feed sort order (higher last_modified precision)</li>
</ul>
<h2 id="2022-01-02-version-30">2022-01-02: Version 3.0</h2>
<ul>
<li>Remove twitter meta tag support (opengraph is sufficient)</li>
<li>Change ggconfig social link to arbitrary key-value-map (link label to link)</li>
<li>Remove the 'back' navigation link from posts in the footer.
If you want to link to your post index, use the new ggconfig social link mechanism.</li>
<li>Support RSS feed generation. It's limited to the 10 latest posts (by last_modified date)</li>
<li>Cut-off sitemap after 50000 entries, see <a href="https://www.sitemaps.org/faq.html">https://www.sitemaps.org/faq.html</a></li>
</ul>
<h2 id="2021-08-22-version-201">2021-08-22: Version 2.0.1</h2>
<ul>
<li>Fix filtering single special tag</li>
<li>Make regular links to blog posts bold</li>
</ul>
<h2 id="2021-08-22-version-20">2021-08-22: Version 2.0</h2>
<ul>
<li>Remove <code>__index_inline_posts__</code> tag support.
To inline posts in the index, use <code>__inline__</code> tag on the respective post.</li>
<li>Filter special tags controlling ggpy behavior from the meta <code>keywords</code> list</li>
</ul>
<h2 id="2021-07-17-version-13">2021-07-17: Version 1.3</h2>
<ul>
<li>Add micro-blog support via new <code>__index_inline_posts__</code> tag</li>
<li>For this, update included CSS</li>
<li>Improve layout of the regular blog-style post index</li>
</ul>
<h2 id="2021-06-10-version-12">2021-06-10: Version 1.2</h2>
<ul>
<li>Update included style:<ul>
<li>smaller default font-size and line-spacing</li>
<li>increase inline code font-size</li>
<li>use relative unit for body max-width</li>
<li>add footer control for bigger font-size</li>
</ul>
</li>
</ul>
<h2 id="2021-06-06-version-11">2021-06-06: Version 1.1</h2>
<ul>
<li>Make <code>gitpython</code> dependency optional, degrading last-modified functionality e.g. for sitemap</li>
</ul>
<h2 id="2021-06-06-version-10">2021-06-06: Version 1.0</h2></description>
</item>
<item>
<title>https://oliz.io/ggpy/</title>
<link>https://oliz.io/ggpy/</link>
<pubDate>Sun, 09 Jul 2023 18:41:31 +0000</pubDate>
<guid>https://oliz.io/ggpy/</guid>
<description><h1 id="good-generatorpy">Good Generator<code>.py</code></h1>
<p><a href="https://circleci.com/gh/ooz/ggpy"><img alt="CircleCI" src="https://circleci.com/gh/ooz/ggpy.svg?style=shield" /></a>
<a href="LICENSE.txt"><img alt="GNU AGPLv3 Badge" src="https://img.shields.io/badge/license-AGPLv3-blue.svg" /></a>
<a href="LICENSE.txt"><img alt="MIT License Badge" src="https://img.shields.io/badge/license-MIT-blue.svg" /></a>
<a href="CHANGELOG.html"><img alt="Changelog" src="https://img.shields.io/badge/-CHANGELOG-blueviolet.svg" /></a></p>
<hr />
<p>Yet another static site generator. Written in Python.
<a href="https://oliz.io/blog/2018/why-i-wrote-yet-another-static-site-gen.html">Why?</a></p>
<p>It powers <a href="https://oliz.io/ggpy">its website</a>, which is its <a href="https://github.com/ooz/ggpy">README.md</a> rendered via <a href="https://circleci.com/gh/ooz/ggpy">CircleCI</a>.
An infinite incepted loop!
It also powers <a href="https://oliz.io">my website</a> and <a href="https://oliz.io/blog/">blog</a>.</p>
<h2 id="features">Features</h2>
<ul>
<li>Static site generator supporting <a href="https://oliz.io/ggpy/test/features/">Markdown with various extensions</a>
and <a href="https://oliz.io/ggpy/test/features/meta.html">Markdown meta header format</a></li>
<li>Renders all <code>*.md</code> to <code>*.html</code> files in the passed directories and recursively in their sub-directories</li>
<li>Files named <code>README.md</code> are converted to <code>index.html</code>. Thus, it is fully compatible with GitHub Pages</li>
<li>It may render a time-stamped index of all generated HTML files, suitable for blogs. Documents may also be inlined into the index, suitable for micro-blogs</li>
<li>Built-in responsive style with light mode and dark mode</li>
<li>Open Graph and schema.org support</li>
<li>Generates <code>sitemap.xml</code> with <code>lastmod</code> timestamps taken from git history</li>
<li>Generates <code>rss.xml</code> RSS feed</li>
<li>Requires <code>python3</code>, <code>pip</code>, and optionally <code>git</code> (for more accurate, CI-friendly timestamps) and <code>make</code> if you want to use the provided Makefile. Thus, it <a href="https://oliz.io/blog/2018/code-and-deploy-using-termux.html">runs in Termux on Android</a></li>
<li>The provided <a href="https://github.com/ooz/ggpy/blob/master/.circleci/config.yml">CircleCI configuration</a> may serve as a blueprint to let CircleCI build your page on every commit</li>
</ul>
<h2 id="usage">Usage</h2>
<ul>
<li>Copy <code>gg.py</code>, <code>ggconfig.py</code>, <code>Pipfile</code> and <code>Makefile</code> to the root of your website/blog</li>
<li>Adjust <code>ggconfig.py</code> to your preferences. Since it is an imported Python file, you can use it for preprocessing hooks, too!</li>
<li>Place markdown files everywhere</li>
<li>Install dependencies
<pre class="highlight"><code>make install_pipenv
make init</code></pre></li>
<li>Generate your site
<pre class="highlight"><code>make</code></pre></li>
<li>To update your <code>gg.py</code> "installation", run (your configuration will not be touched)
<pre class="highlight"><code>make update</code></pre></li>
<li>See all make targets with short documentation
<pre class="highlight"><code>make help</code></pre></li>
</ul>
<h2 id="tests">Tests</h2>
<ul>
<li>Install dependencies (if you have not yet)
<pre class="highlight"><code>make install_pipenv
make init</code></pre></li>
<li>Run tests with coverage
<pre class="highlight"><code>make test</code></pre></li>
</ul>
<h2 id="license">License</h2>
<p>This software is dual-licensed under GNU AGPLv3 or MIT License,
see <a href="https://oliz.io/ggpy/LICENSE.txt">LICENSE.txt</a> file for details.</p></description>
</item>
</channel>
</rss>