PowerType
PowerType copied to clipboard
Finish git dictionary
There seems to be a xml format of the git documentation see if we can use it to bootstrap part of the dictionary!
make user-manual.xml
documentation:
name: documentation
needs: ci-config
if: needs.ci-config.outputs.enabled == 'yes'
env:
jobname: Documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: ci/install-dependencies.sh
- run: ci/test-documentation.sh
The following xslt should do the trick (some manual fixing after running it will still be required)
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:text> [CommandParameter]@{
Keys = @("</xsl:text>
<xsl:value-of select="substring-after(normalize-space(./refentry/refmeta/refentrytitle), '-')"/>
<xsl:text>");
Name = "</xsl:text>
<xsl:value-of select="substring-after(normalize-space(./refentry/refmeta/refentrytitle), '-')"/>
<xsl:text>";
Description = "</xsl:text>
<xsl:value-of select="normalize-space(./refentry/refnamediv/refpurpose)"/>
<xsl:text>";
Parameters = @{
</xsl:text>
<xsl:for-each select="refentry/*[@id='_options']/variablelist/varlistentry">
<xsl:text> [</xsl:text>
<xsl:choose>
<xsl:when test="contains(., '=')">
<xsl:text>Value</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>Flag</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:text></xsl:text>
<xsl:text>Parameter]@{</xsl:text>
<xsl:text>
Keys = @(</xsl:text>
<xsl:for-each select="term">
<xsl:text>"</xsl:text>
<xsl:choose>
<xsl:when test="contains(., '=')">
<xsl:value-of select="substring-before(normalize-space(.), '=')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="normalize-space(.)"/>
</xsl:otherwise>
</xsl:choose>
<xsl:text>"</xsl:text>
<xsl:if test="position() != last()">
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:text>);
Name = "</xsl:text>
<xsl:value-of select="substring-after(normalize-space(./term[last()]), '--')"/>
<xsl:text>";
Description = "</xsl:text>
<xsl:value-of select="replace(normalize-space(listitem/simpara), '"', '`"')"/>
<xsl:text>";
</xsl:text>
<xsl:if test="contains(., '=')">
<xsl:text> Source = $???;
</xsl:text>
</xsl:if>
<xsl:text> },
</xsl:text>
</xsl:for-each>
<xsl:text> },</xsl:text>
</xsl:template>
</xsl:stylesheet>