Diff of /2024/06/02/readying-a-blog-for-revision-histories-and-sprouts-under-unstatic/index.html

Revision f9b8a24e6219588d1f7f570dd9d448d02a5c6529 => current


Linef9b8a24e6219588d1f7f570dd9d448d02a5c6529current
1<!DOCTYPE html><!DOCTYPE html>
2<html><html>
3 <head> <head>
4 <meta charset="utf-8"> <meta charset="utf-8">
5 <meta name="description" content="tech notebook @ interfluidity"> <meta name="description" content="tech notebook @ interfluidity">
6 <meta name="keywords" content="Scala, tech, interfluidity"> <meta name="keywords" content="Scala, tech, interfluidity">
7 <meta name="author" content="Steve Randy Waldman"> <meta name="author" content="Steve Randy Waldman">
8 <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
9
10 <!-- icons / favicons -->
11
12 <!-- we just want the squared-corner image with no overlays for traditional favicon uses at tiny sizes -->
13 <!-- swaldman added, ick, firefox scales down the biggest size for its tab icon, so we use the graphic we want for small sizes as the largest... -->
14 <link rel="icon" type="image/png" sizes="500x500" href="../../../../icon/interfluidity-wave-blank-square-500x500.png">
15 <link rel="icon" type="image/png" sizes="32x32" href="../../../../icon/interfluidity-wave-blank-square-32x32.png"> <!-- swaldman added, for standard favicon size -->
16 <link rel="icon" type="image/png" sizes="16x16" href="../../../../icon/interfluidity-wave-blank-square-16x16.png"> <!-- swaldman added, for standard favicon size -->
17 <link rel="icon" type="image/png" href="../../../../icon/interfluidity-wave-blank-square-57x57.png"> <!-- swaldman added, for small icons by default -->
18
19 <!-- at bigger sizes, we overlay a bit of text -->
20 <!-- icons as recommened by https://mathiasbynens.be/notes/touch-icons -->
21 <!-- For Chrome for Android: -->
22 <link rel="icon" sizes="192x192" href="../../../../icon/interfluidity-wave-tech-192x192.png">
23 <!-- For iPhone 6 Plus with @3× display: -->
24 <link rel="apple-touch-icon-precomposed" sizes="180x180" href="../../../../icon/interfluidity-wave-tech-180x180.png">
25 <!-- For iPad with @2× display running iOS ≥ 7: -->
26 <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../../../../icon/interfluidity-wave-tech-152x152.png">
27 <!-- For iPad with @2× display running iOS ≤ 6: -->
28 <link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../../../icon/interfluidity-wave-tech-144x144.png">
29 <!-- For iPhone with @2× display running iOS ≥ 7: -->
30 <link rel="apple-touch-icon-precomposed" sizes="120x120" href="../../../../icon/interfluidity-wave-tech-120x120.png">
31 <!-- For iPhone with @2× display running iOS ≤ 6: -->
32 <link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../../../icon/interfluidity-wave-tech-114x114.png">
33 <!-- For the iPad mini and the first- and second-generation iPad (@1× display) on iOS ≥ 7: -->
34 <link rel="apple-touch-icon-precomposed" sizes="76x76" href="../../../../icon/interfluidity-wave-tech-76x76.png">
35 <!-- For the iPad mini and the first- and second-generation iPad (@1× display) on iOS ≤ 6: -->
36 <link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../../../icon/interfluidity-wave-tech-72x72.png">
37 <!-- For non-Retina iPhone, iPod Touch, and Android 2.1+ devices: -->
38 <link rel="apple-touch-icon-precomposed" href="../../../../icon/interfluidity-wave-blank-square-57x57.png">
39
40 <!-- end icons / favicons -->
41
42 <link rel="alternate" type="application/rss+xml" title="tech.interfluidity.com updates" href="../../../../feed/index.rss"> <link rel="alternate" type="application/rss+xml" title="tech.interfluidity.com updates" href="../../../../feed/index.rss">
43 <link rel="alternate" type="application/rss+xml" title="interfluidity - all blogs" href="https://www.interfluidity.com/unify-rss/all-blogs.rss"> <link rel="alternate" type="application/rss+xml" title="interfluidity - all blogs" href="https://www.interfluidity.com/unify-rss/all-blogs.rss">
44 <link rel="alternate" type="application/rss+xml" title="interfluidity - all blogs and microblogs" href="https://www.interfluidity.com/unify-rss/all-blogs-and-microblogs.rss"> <link rel="alternate" type="application/rss+xml" title="interfluidity - all blogs and microblogs" href="https://www.interfluidity.com/unify-rss/all-blogs-and-microblogs.rss">
75 </div> </div>
76 <div id="content"> <div id="content">
77 <div class="day-stamp"> <div class="day-stamp">
78 2024-06-02 <span class="arrow">⇒</span> 2024-06-05 <span class="arrow">⇒</span>
79</div></div>
80<article class="presentation-single uid-readying-a-blog-for-sprouts"><article class="presentation-single uid-readying-a-blog-for-sprouts">
81 <div class="entry-header"> <div class="entry-header">
82 <h1><a href="index.html">Readying a blog for revision histories and sprouts under unstatic</a></h1> <h1><a href="index.html">Readying a blog for revision histories and sprouts under unstatic</a></h1>
83 <hr class="below-title"> <hr class="below-title">
84 </div> </div>
85 <div class="update-prepend rss-description-exclude">
86 <em> ➣  This post was meaningfully revised at 2024-06-06 @ 01:30 PM EDT. The previous revision is <a href="index-oldcommit-f9b8a24e6219588d1f7f570dd9d448d02a5c6529.html">here</a>, diff <a href="index-diff-f9b8a24e6219588d1f7f570dd9d448d02a5c6529-to-current.html">here</a>. (See <a href="index.html#update-history">update history</a>.) </em>
87 <hr>
88 </div>
89 <div class="entry-body"> <div class="entry-body">
90 <div class="flexmark markdown"> <div class="flexmark markdown">
91 <p>I've been developing support for my take on <a href="https://v5.chriskrycho.com/essays/feeds-are-not-fit-for-gardening/">Chris Krycho' "sprouts"</a> against this blog. Much of that support is now built into <a href="https://github.com/swaldman/unstatic"><code>unstatic</code></a>, my library for building static-site generators. But it does also require some support from within applicatons of that library, from the scala code and the <a href="https://github.com/swaldman/untemplate-doc">untemplates</a> of the individual site generators.</p> <p>I've been developing support for my take on <a href="https://v5.chriskrycho.com/essays/feeds-are-not-fit-for-gardening/">Chris Krycho' "sprouts"</a> against this blog. Much of that support is now built into <a href="https://github.com/swaldman/unstatic"><code>unstatic</code></a>, my library for building static-site generators. But it does also require some support from within applications of that library, from the scala code and the <a href="https://github.com/swaldman/untemplate-doc">untemplates</a> of the individual site generators.</p>
92 <p>I'm going to upgrade my <a href="https://drafts.interfluidity.com/archive.html">"drafts"</a> blog to support revisions, diffs, and sprouts. I'll document what it takes to do that here.</p> <p>I'm going to upgrade my <a href="https://drafts.interfluidity.com/archive.html">"drafts"</a> blog to support revisions, diffs, and sprouts. I'll document what it takes to do that here.</p>
93 <h3><a href="#enable-revision--and-diff-generation-in-scala-code" id="enable-revision--and-diff-generation-in-scala-code" name="enable-revision--and-diff-generation-in-scala-code" class="anchorlink"></a>Enable revision- and diff-generation in Scala code</h3> <h3><a href="#enable-revision--and-diff-generation-in-scala-code" id="enable-revision--and-diff-generation-in-scala-code" name="enable-revision--and-diff-generation-in-scala-code" class="anchorlink"></a>Enable revision- and diff-generation in Scala code</h3>
94 <p>In the object <a href="https://github.com/swaldman/drafts.interfluidity.com/blob/main/src/com/interfluidity/drafts/DraftsSite.scala"><code>DraftsSite</code></a>, the <a href="https://github.com/swaldman/unstatic/blob/main/ztapir/src/unstatic/ztapir/ZTSite.scala"><code>unstatic.ztapir.ZTSite</code></a> that defines the site to be generated, inside the <a href="https://github.com/swaldman/unstatic/blob/main/ztapir/src/unstatic/ztapir/simple/SimpleBlog.scala"><code>unstatic.ztapir.simple.SimpleBlog</code></a> that defines the blog, add a <a href="https://github.com/swaldman/unstatic/blob/main/ztapir/src/unstatic/ztapir/simple/RevisionBinder.scala"><code>RevisionBinder</code></a> that can pull old revisions of pages and generate them into the website, and a <a href="https://github.com/swaldman/unstatic/blob/main/ztapir/src/unstatic/ztapir/simple/DiffBinder.scala"><code>DiffBinder</code></a> that can generate diffs between current and new revisions:</p> <p>In the object <a href="https://github.com/swaldman/drafts.interfluidity.com/blob/main/src/com/interfluidity/drafts/DraftsSite.scala"><code>DraftsSite</code></a>, the <a href="https://github.com/swaldman/unstatic/blob/main/ztapir/src/unstatic/ztapir/ZTSite.scala"><code>unstatic.ztapir.ZTSite</code></a> that defines the site to be generated, inside the <a href="https://github.com/swaldman/unstatic/blob/main/ztapir/src/unstatic/ztapir/simple/SimpleBlog.scala"><code>unstatic.ztapir.simple.SimpleBlog</code></a> that defines the blog, add a <a href="https://github.com/swaldman/unstatic/blob/main/ztapir/src/unstatic/ztapir/simple/RevisionBinder.scala"><code>RevisionBinder</code></a> that can pull old revisions of pages and generate them into the website, and a <a href="https://github.com/swaldman/unstatic/blob/main/ztapir/src/unstatic/ztapir/simple/DiffBinder.scala"><code>DiffBinder</code></a> that can generate diffs between current and new revisions:</p>
188 </div> </div>
189 <div class="entry-footer"> <div class="entry-footer">
190 <div class="post-metainfo"> <div class="post-metainfo">
191 <a href="index.html">03:15 AM EDT</a> <div class="updated-note">
192 <a href="index.html#major-updates">Last major update at 2024-06-06 @ 01:30 PM EDT</a>
193 </div>
194 <div>
195 <a href="index.html" class="pubtime">11:00 PM EDT</a>
196 </div>
197 </div> </div>
198 </div> </div>
199</article></article>
206 <a href="../../../../index.html">↑↑↑</a> <a href="../../../../index.html">↑↑↑</a>
207 </div> </div>
208 <div class="next"> <div class="next">
209 <a href="../../06/neonix/index.html">Neonix →</a>
210 </div> </div>
211 </div> </div>
212 <div id="update-history" class="update-history">
213 <h3 class="update-history-title"><a id="major-updates" href=""></a>Major revisions:</h3>
214 <ul>
215 <li><span class="update-timestamp"><i>2024-06-06 @ 01:30 PM EDT</i></span> — Correct bad publication date and time. (<a href="index-diff-f9b8a24e6219588d1f7f570dd9d448d02a5c6529-to-current.html">diff</a>)</li>
216 <li><span class="update-timestamp"><i> <a href="index-oldcommit-f9b8a24e6219588d1f7f570dd9d448d02a5c6529.html">2024-06-05 @ 11:00 PM EDT</a></i></span> — Initial publication.</li>
217 </ul>
218 <div class="update-history-note">
219 Timestamps represent "major", substantative revisions. There may have been subsequent typo fixes and language reworkings within a major revision, after the time displayed. For a more complete and fine-grained update history, you can view the <a href="https://github.com/swaldman/tech.interfluidity.com/commits/main/">git repository commit history</a>. The most recent minor modification of this entry occurred 2024-06-06 @ 02:26 PM EDT.
220 </div>
221 </div>
222</div><!-- after-article --></div><!-- after-article -->
223 </div> </div>
224 <div id="right-sidebar"> <div id="right-sidebar">
225 </div> </div>
226 </div> </div>
227 </body> </body>
228</html></html>