Diff of /xml/iffy/index.html

Revision 394986cb8d9c57f567d324e691a44d50102101ce => 13de0232319ceab2f830591c318089d18cbec78d


Line394986cb8d9c57f567d324e691a44d50102101ce13de0232319ceab2f830591c318089d18cbec78d
1<!DOCTYPE html><!DOCTYPE html>
2<html><html>
3 <head> <head>
13 <link rel="stylesheet" href="../../css/highlightjs/steve-night-owl.css"><!-- theme for highlight.js --> <link rel="stylesheet" href="../../css/highlightjs/steve-night-owl.css"><!-- theme for highlight.js -->
14 <script src="../../js/highlight/highlight.min.js"></script> <script src="../../js/highlight/highlight.min.js"></script>
15 <script>hljs.highlightAll();</script> <script>hljs.highlightAll();</script>
16 <script>
17 document.addEventListener("DOMContentLoaded", function() {
18 const regex = /(^.*)\-oldcommit\-[0-9A-Fa-f]+\.html/;
19 const match = window.location.pathname.match(regex);
20 if (match) {
21 const b = document.querySelector("body");
22 const tb = document.getElementById("top-banner");
23 b.classList.add("old-draft");
24 tb.innerHTML = "You are looking at an old, superceded version of this page. For the current version, please <a href=\"" + match[1] + ".html\">click here</a>.";
25 }
26 });
27 </script>
28 <title>The 'iffy' XML namespace</title> <title>The 'iffy' XML namespace</title>
29 </head> </head>
30 <body> <body>
31 <div id="top-banner"></div>
32 <div id="header"> <div id="header">
33 <div id="rss-link-container"> <div id="rss-link-container">
34 <a id="rss-link" href="../../feed/index.rss"><span class="outer">(</span><span class="middle">(</span><span class="inner">(</span><span class="bullet">•</span><span class="inner">)</span><span class="middle">)</span><span class="outer">)</span></a> <a id="rss-link" href="../../feed/index.rss"><span class="outer">(</span><span class="middle">(</span><span class="inner">(</span><span class="bullet">•</span><span class="inner">)</span><span class="middle">)</span><span class="outer">)</span></a>
49 <h1><a href="index.html">The 'iffy' XML namespace</a></h1> <h1><a href="index.html">The 'iffy' XML namespace</a></h1>
50 <hr class="below-title"> <hr class="below-title">
51 </div> </div>
52 <div class="update-prepend">
53 ➣ <em> This post was meaningfully revised at 2024-05-24 @ 12:25 AM EDT. The previous revision is <a href="index-oldcommit-394986cb8d9c57f567d324e691a44d50102101ce.html">here</a>. </em>
54 <hr>
55 </div>
56 <div class="entry-body"> <div class="entry-body">
57 <div class="flexmark markdown"> <div class="flexmark markdown">
58 <p>I want to do a lot of things with RSS that require extensions of RSS (as the RSS spec <a href="https://www.rssboard.org/rss-specification#extendingRss">foresees</a>).</p> <p>I want to do a lot of things with RSS that require extensions of RSS (as the RSS spec <a href="https://www.rssboard.org/rss-specification#extendingRss">foresees</a>).</p>
64 <p><strong>Table of Contents</strong></p> <p><strong>Table of Contents</strong></p>
65 <ul> <ul>
66 <li><a href="#iffy-completeness"><code>iffy:completeness</code></a></li> <li><a href="#iffy-completeness"><code>iffy:completeness</code></a></li>
67 <li><a href="#iffy-original-guid"><code>iffy:original-guid</code></a></li>
68 <li><a href="#iffy-provenance"><code>iffy:provenance</code></a></li> <li><a href="#iffy-provenance"><code>iffy:provenance</code></a></li>
69 <li><a href="#iffy-when-updated"><code>iffy:when-updated</code></a></li>
70 </ul> </ul>
71 <hr> <hr>
72 <p><a id="iffy-completeness" href=""></a><strong>Element — <code>iffy:completeness</code></strong></p> <p><a id="iffy-completeness" href=""></a><strong>Element — <code>iffy:completeness</code></strong></p>
111</code></pre></code></pre>
112 </div> </div>
113 <hr> <hr>
114 <p><a id="iffy-original-guid" href=""></a><strong>Element — <code>iffy:original-guid</code></strong></p>
115 <div class="iffy-element-desc">
116 <p><strong>Solely an item level element</strong></p>
117 <p>IF AND ONLY IF an item contains an <code>atom:updated</code> element AND the <code>guid</code> of this item has been modified from the original, pre-update item in order to encourage feed consumers to surface the update, THEN the <a href="https://www.rssboard.org/rss-specification#ltguidgtSubelementOfLtitemgt"><code>guid</code></a> of the original post MUST be included in an <code>iffy:original-guid</code> element so that aware consumers can tie the update back to the original.</p>
118 <p><strong>Example:</strong></p>
119 <pre><code class="language-xml"><?xml version='1.0' encoding='UTF-8'?>
120
121<rss version="2.0" xmlns:iffy="http://tech.interfluidity.com/xml/iffy/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
122 <channel>
123 <title>tech — interfluidity</title>
124 <iffy:when-updated>Resurface</iffy:when-updated>
125 <!-- other channel-level elements -->
126 <item>
127 <title>Names too on the nose</title>
128 <guid isPermalink="false">
129 https://tech.interfluidity.com/2024/04/09/names-too-on-the-nose/index.html#updated-2024-04-14T05:55:00Z
130 </guid>
131 <link>https://tech.interfluidity.com/2024/04/09/names-too-on-the-nose/index.html</link>
132 <iffy:original-guid>https://tech.interfluidity.com/2024/04/09/names-too-on-the-nose/index.html</iffy:original-guid>
133 <atom:updated>2024-04-14T05:55:00Z</atom:updated>
134 <!-- other item-level elements -->
135 </item>
136 </channel>
137</rss>
138</code></pre>
139 </div>
140 <hr>
141 <p><a id="iffy-provenance" href=""></a><strong>Element — <code>iffy:provenance</code></strong></p> <p><a id="iffy-provenance" href=""></a><strong>Element — <code>iffy:provenance</code></strong></p>
142 <div class="iffy-element-desc"> <div class="iffy-element-desc">
143 <p><strong>When an item level element</strong></p> <p><strong>When an item level element</strong></p>
174</code></pre></code></pre>
175 </div> </div>
176 <hr> <hr>
177 <p><a id="iffy-when-updated" href=""></a><strong>Element — <code>iffy:when-updated</code></strong></p>
178 <div class="iffy-element-desc">
179 <p><strong>May be both a channel and item level element. Item-level specification overrides channel-level specification.</strong></p>
180 <p>Contains one of the following three values:</p>
181 <ol>
182 <li><code>Ignore</code></li>
183 <li><code>Resurface</code></li>
184 <li><code>Reannounce</code></li>
185 </ol>
186 <p><code>iffy:when-updated</code> suggests how feed consumers should handle items containing <code>atom:updated</code> elements.</p>
187 <ul>
188 <li><code>Ignore</code> suggests that feed consumers simply ignore the notification. Feed consumers should update any cache of the item contents (as they should do in the absence of an <code>atom:updated</code> tag.</li>
189 <li><code>Resurface</code> suggests that consumers that present multiple items in reverse-chronological order should present the new item, sorted at its update time rather than its initial publication date. Consumers that "announce" items one at a time (such a e-mail newsletter gateways, Mastodon / Twitter / SMS notifiers) should not re-notify the item.</li>
190 <li><code>Reannounce</code>, like <code>Resurface</code>, suggests that consumers that present multiple items in reverse-chronological order should present the new item, sorted at its update time rather than its initial publication date. However, <code>Reannounce</code> suggests consumers that "announce" items one at a time (such as e-mail newsletter gateways, Mastodon / Twitter / SMS) notifiers SHOULD re-notify the item.</li>
191 </ul>
192 <p><strong>Implementation Notes:</strong></p>
193 <ul>
194 <li>Currently, very few feed consumers handle <code>iffy:when-updated</code>.</li>
195 <li>To give effect to these values, it is recommended that, at levels <code>Resurface</code> and <code>Reannounce</code>, items be given updated <a href="https://www.rssboard.org/rss-specification#ltguidgtSubelementOfLtitemgt"><code>guid</code></a> values, so that existing consumers perceive them as distinct items.</li>
196 <li>Naive announcement consumers, however, will then treat all <code>atom:updated</code> events as <code>Reannounce</code>, until they are explicitly modified to support this tag.</li>
197 <li>Announcing consumers are much rarer and fewer than multiple-item-presenting consumers, so hopefully this will not be too great a burden. Ideally, eventually, feed consumers will widely support this tag and there will be no need for the "hack" of switching <code>guid</code> values.</li>
198 <li><em>Implementations that modify <code>guid</code> values when updated MUST also provide the <code>iffy:original-guid</code> element!</em>
199 <ul>
200 <li><em>See <a href="#iffy-original-guid"><code>iffy:original-guid</code></a></em></li>
201 </ul></li>
202 </ul>
203 <p><strong>Example:</strong></p>
204 <pre><code class="language-xml"><?xml version='1.0' encoding='UTF-8'?>
205
206<rss version="2.0" xmlns:iffy="http://tech.interfluidity.com/xml/iffy/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
207 <channel>
208 <title>tech — interfluidity</title>
209 <iffy:completeness>Content</iffy:completeness>
210 <iffy:when-updated>Resurface</iffy:when-updated>
211 <!-- other channel-level elements -->
212 <item>
213 <title>Ceci n'est pas un post</title>
214 <guid isPermalink="true">https://tech.interfluidity.com/2024/04/09/ceci/index.html</guid>
215 <link>https://tech.interfluidity.com/2024/04/09/ceci/index.html</link>
216 <atom:updated>2024-04-14T05:55:00Z</atom:updated>
217 <iffy:when-updated>Ignore</iffy:when-updated>
218 </item>
219 </channel>
220</rss>
221</code></pre>
222 </div>
223 <hr>
224 </div> </div>
225 </div> </div>
226 <div class="entry-footer"> <div class="entry-footer">
227 <div class="post-metainfo"> <div class="post-metainfo">
228 <a href="index.html">04:10 AM EDT</a> <a href="index.html">04:10 AM EDT</a>
229 <div class="updated-note"> <div class="updated-note">
230 Last major update at 2024-05-21 @ 12:25 AM EDT <a href="index.html#major-updates">Last major update at 2024-05-24 @ 12:25 AM EDT</a>
231 </div> </div>
232 </div> </div>
233 </div> </div>
234</article></article>
235<div class="after-article"><div class="after-article">
236 <div class="update-history">
237 <h3 class="update-history-title"><a id="major-updates" href=""></a>Major revisions:</h3>
238 <ul>
239 <li><span class="update-timestamp"><i>2024-05-24 @ 12:25 AM EDT</i></span> — Drop tags <code>iffy:when-updated</code> and <code>iffy:original-guid</code>, bad appraoch to updates. (See revision <a href="index-oldcommit-394986cb8d9c57f567d324e691a44d50102101ce.html">previous</a>.)</li>
240 </ul>
241 <div class="update-history-note">
242 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>.
243 </div>
244 </div>
245 <div class="prev-top-next"> <div class="prev-top-next">
246 <div class="prev"> <div class="prev">
247 <a href="../../2024/04/09/names-too-on-the-nose/index.html">← Names too on the nose</a> <a href="../../2024/04/09/names-too-on-the-nose/index.html">← Names too on the nose</a>
259 </div> </div>
260 </body> </body>
261</html></html>