If the iputils folks don't want to package this anymore, I guess I can.
[submodule "gitmodules/rrace"]
path = gitmodules/rrace
url = https://git.draconx.ca/rrace.git
+[submodule "gitmodules/rarpd-dx"]
+ path = gitmodules/rarpd-dx
+ url = https://git.draconx.ca/rarpd-dx.git
license: cc-by-nd-4.0
---
+*[RARP]: Reverse Address Resolution Protocol
+*[ARP]: Address Resolution Protocol
+
Most of the operations here in the workshop are tracked on our local [git
server](//git.draconx.ca) which can be browsed online. All the work here is
[free as in freedom](//www.gnu.org/philosophy/free-sw) which means you are
--- /dev/null
+---
+title: RARP Daemon
+copyright: 2023 Nick Bowler
+license: gpl-2 or (at your option) any later version
+module: rarpd-dx
+---
+
+*[RARP]: Reverse Address Resolution Protocol
+*[ARP]: Address Resolution Protocol
+
+<%= project_readme %>
+
h2 { @include header_size(60em, 1.5em); }
h5 { @include header_size(60em, 1em); }
+h1, h2 { abbr { text-decoration: none; } }
+
@supports (display: grid) {
.gallery {
display: grid;
}
}
-// CSS rules for stortable clicky table headers: Update the display of
-// the /table based on the current state. Each column has its own set
+// CSS rules for sortable clicky table headers: Update the display of
+// the table based on the current state. Each column has its own set
// nearly-identical rules, only the class names differ.
//
// The clickytables.xsl stylesheet generates two inputs for each column.
--- /dev/null
+Subproject commit 97a182920cd28f822aa3fcdd74ace01cf7b0a495
</xsl:copy>
</xsl:template>
+<!--
+ Allow abbr to apply to document titles too, since these are generated
+ and kramdown's abbr support won't influence them. We do this by just
+ checking each word of the heading to see if is identical to an existing
+ abbr tag, and just substituting that in its place.
+ -->
+<xsl:key name='abbr' match='xhtml:abbr' use='string(.)' />
+<xsl:template name='insert-abbr' match='xhtml:h1/text()'>
+ <xsl:param name='string' select='normalize-space(.)' />
+
+ <xsl:variable name='head'
+ select='substring-before(concat($string, " "), " ")' />
+ <xsl:variable name='tail' select='substring-after($string, " ")' />
+ <xsl:variable name='match' select='key("abbr", $head)[1]' />
+
+ <xsl:choose>
+ <xsl:when test='$match'><xsl:apply-templates select='$match' /></xsl:when>
+ <xsl:otherwise><xsl:value-of select='$head' /></xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test='$tail'>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name='insert-abbr'>
+ <xsl:with-param name='string' select='$tail' />
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
<!--
Convert caption attribute on tables into proper caption elements, to allow
a simple way to add captions to kramdown tables.