Show document lifecycle next to metadata

This commit is contained in:
Jonas Schäfer 2019-04-05 17:40:04 +02:00
parent 8a151a7d54
commit 51ad9a4295
2 changed files with 154 additions and 8 deletions

46
xep.xsl
View File

@ -131,6 +131,40 @@ OR OTHER DEALINGS IN THE SOFTWARE.
</div>
</xsl:template>
<xsl:template name='make-timeline'>
<xsl:param name='thestatus'/>
<xsl:param name='thetype'/>
<xsl:choose>
<xsl:when test='$thetype = "Standards Track"'>
<li><xsl:if test='$thestatus = "Experimental"'><xsl:attribute name='class'>current</xsl:attribute></xsl:if>Experimental</li>
<xsl:if test='$thestatus = "Deferred"'><li class='current inserted'>Deferred</li></xsl:if>
<xsl:if test='$thestatus = "Retracted"'><li class='current inserted'>Retracted</li></xsl:if>
<li><xsl:if test='$thestatus = "Proposed"'><xsl:attribute name='class'>current</xsl:attribute></xsl:if>Proposed</li>
<xsl:if test='$thestatus = "Rejected"'><li class='current inserted'>Rejected</li></xsl:if>
<li><xsl:if test='$thestatus = "Draft"'><xsl:attribute name='class'>current</xsl:attribute></xsl:if>Draft</li>
<li><xsl:if test='$thestatus = "Final"'><xsl:attribute name='class'>current</xsl:attribute></xsl:if>Final</li>
<xsl:if test='$thestatus = "Deprecated"'><li class='current inserted'>Deprecated</li></xsl:if>
<xsl:if test='$thestatus = "Obsolete"'><li class='current inserted'>Obsolete</li></xsl:if>
</xsl:when>
<xsl:when test='$thetype = "Procedural" or $thetype = "Informational" or $thetype = "Historical"'>
<li><xsl:if test='$thestatus = "Experimental"'><xsl:attribute name='class'>current</xsl:attribute></xsl:if>Experimental</li>
<xsl:if test='$thestatus = "Deferred"'><li class='current inserted'>Deferred</li></xsl:if>
<xsl:if test='$thestatus = "Retracted"'><li class='current inserted'>Retracted</li></xsl:if>
<li><xsl:if test='$thestatus = "Proposed"'><xsl:attribute name='class'>current</xsl:attribute></xsl:if>Proposed</li>
<xsl:if test='$thestatus = "Rejected"'><li class='current inserted'>Rejected</li></xsl:if>
<li><xsl:if test='$thestatus = "Active"'><xsl:attribute name='class'>current</xsl:attribute></xsl:if>Active</li>
<xsl:if test='$thestatus = "Deprecated"'><li class='current inserted'>Deprecated</li></xsl:if>
<xsl:if test='$thestatus = "Obsolete"'><li class='current inserted'>Obsolete</li></xsl:if>
</xsl:when>
<xsl:when test='$thetype = "Humorous"'>
<li><xsl:if test='$thestatus = "Active"'><xsl:attribute name='class'>current</xsl:attribute></xsl:if>Active</li>
</xsl:when>
<xsl:otherwise>
<li class='current inserted'><xsl:value-of select='$thestatus'/></li>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match='/'>
<html>
<head>
@ -202,7 +236,8 @@ content: "XEP-<xsl:value-of select='/xep/header/number'/>";
<h1>XEP-<xsl:value-of select='/xep/header/number' />:<xsl:text> </xsl:text><xsl:value-of select='/xep/header/title' /></h1>
<!-- TOP TABLE -->
<xsl:variable name='authors.count' select='count(/xep/header/author)'/>
<dl id="docmeta">
<div class="docmeta-wrap">
<dl id="docmeta" class='compact'>
<dt>Abstract</dt>
<dd><xsl:value-of select='/xep/header/abstract'/></dd>
<xsl:if test='$authors.count=1'>
@ -232,6 +267,15 @@ content: "XEP-<xsl:value-of select='/xep/header/number'/>";
<dt>Version</dt>
<dd><xsl:value-of select='/xep/header/revision[position()=1]/version'/> (<xsl:value-of select='/xep/header/revision[position()=1]/date'/>)</dd>
</dl>
<div class="timeline-wrap">
<div class="timeline-head">Document Lifecycle</div>
<ol class="timeline">
<xsl:call-template name='make-timeline'>
<xsl:with-param name='thestatus' select='/xep/header/status'/>
<xsl:with-param name='thetype' select='/xep/header/type'/>
</xsl:call-template>
</ol></div>
</div>
<!-- COUNCIL NOTE -->
<xsl:apply-templates select='/xep/header/councilnote'/>
<!-- TABLE OF CONTENTS -->

View File

@ -1376,13 +1376,6 @@
counter-increment: item;
}
dl#docmeta {
margin-left: 1.5em;
margin-right: 1.5em;
padding: 1.5em;
border-left: 1px solid rgba(19, 181, 234, 1.0);
}
ol.revision-history {
list-style-type: none;
padding-left: 0;
@ -1410,6 +1403,73 @@
div.revision-author:before {
content: "— ";
}
div.docmeta-wrap {
margin-left: 1.5em;
margin-right: 1.5em;
padding: 1.5em;
border-left: 1px solid rgba(19, 181, 234, 1.0);
display: flex;
}
div.docmeta-wrap > dl#docmeta {
flex: 1 1 auto;
}
div.docmeta-wrap > div.timeline-wrap {
flex: 1 0 auto;
}
div.timeline-head {
margin-right: 0.5em;
font-size: 100%;
font-weight: bold;
line-height: 1.5;
margin: 0 0 1.5em 0;
}
ol.timeline {
text-align: right;
list-style-type: none;
margin: 0;
padding: 0;
border-right: 0.1em solid black;
}
ol.timeline > li {
margin: 0;
padding: 0;
position: relative;
padding: 0.5em;
padding-right: 0;
}
ol.timeline > li::after,
ol.timeline > li::before {
display: none;
position: relative;
top: -0.1em;
width: 0.4em;
height: 0.4em;
background: black;
border-radius: 50%;
content: "";
}
ol.timeline > li::after {
display: inline-block;
margin-right: -0.25em;
margin-left: 0.5em;
}
ol.timeline > li::before {
margin-left: -0.25em;
margin-right: 0.5em;
}
ol.timeline > li.current {
font-weight: bold;
}
}
@media screen and ( min-width: 75em ) {
@ -1556,4 +1616,46 @@
text-indent: -1em;
margin-left: 1em;
}
div.docmeta-wrap {
display: block;
}
ol.timeline {
border-left: 0.1em solid black;
border-right: none;
text-align: left;
margin-left: 1.5em;
}
ol.timeline > li {
padding-left: 0;
padding-right: 0.5em;
}
ol.timeline > li::after {
display: none;
}
ol.timeline > li::before {
display: inline-block;
}
img {
max-width: calc(100vw - 1em);
}
div.docmeta-wrap {
border-left: none;
padding-left: 0;
padding-right: 0;
}
dl#docmeta {
display: block;
}
dl#docmeta > dd {
margin-left: 1.5em;
}
}