Add an XSLT style sheet for WP->iki conversion
parent
52e3f698bc
commit
68770930a7
|
@ -15,3 +15,88 @@ I include a modified version of this script. This version includes the ability t
|
|||
-- [[users/simonraven]]
|
||||
|
||||
[[ikiwiki-wordpress-import]]
|
||||
|
||||
-----
|
||||
|
||||
Perhaps slightly insane, but here's an XSLT style sheet that handles my pages. It's basic, but sufficient to get started.
|
||||
Note that I had to break up the ikiwiki meta strings to post this.
|
||||
|
||||
-- JasonRiedy
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsl:stylesheet version="2.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:content="http://purl.org/rss/1.0/modules/content/"
|
||||
xmlns:wp="http://wordpress.org/export/1.0/">
|
||||
|
||||
<xsl:output method="text"/>
|
||||
<xsl:output method="text" name="txt"/>
|
||||
|
||||
<xsl:variable name='newline'><xsl:text>
|
||||
</xsl:text></xsl:variable>
|
||||
|
||||
<xsl:template match="channel">
|
||||
<xsl:apply-templates select="item[wp:post_type = 'post']"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="item">
|
||||
<xsl:variable name="idnum" select="format-number(wp:post_id,'0000')" />
|
||||
<xsl:variable name="basename"
|
||||
select="concat('wp-posts/post-',$idnum)" />
|
||||
<xsl:variable name="filename"
|
||||
select="concat($basename, '.html')" />
|
||||
<xsl:text>Creating </xsl:text>
|
||||
<xsl:value-of select="concat($filename, $newline)" />
|
||||
<xsl:result-document href="{$filename}" format="txt">
|
||||
<xsl:text>[[</xsl:text><xsl:text>meta title="</xsl:text>
|
||||
<xsl:value-of select="replace(title, '"', '&ldquo;')"/>
|
||||
<xsl:text>"]]</xsl:text><xsl:value-of select="$newline"/>
|
||||
<xsl:text>[[</xsl:text><xsl:text>meta date="</xsl:text>
|
||||
<xsl:value-of select="pubDate"/>
|
||||
<xsl:text>"]]</xsl:text><xsl:value-of select="$newline"/>
|
||||
<xsl:text>[[</xsl:text><xsl:text>meta updated="</xsl:text>
|
||||
<xsl:value-of select="pubDate"/>
|
||||
<xsl:text>"]]</xsl:text> <xsl:value-of select="$newline"/>
|
||||
<xsl:value-of select="$newline"/>
|
||||
<xsl:value-of select="content:encoded"/>
|
||||
<xsl:text>
|
||||
|
||||
</xsl:text>
|
||||
<xsl:apply-templates select="category[@domain='tag' and not(@nicename)]">
|
||||
<xsl:sort select="name()"/>
|
||||
</xsl:apply-templates>
|
||||
</xsl:result-document>
|
||||
<xsl:apply-templates select="wp:comment">
|
||||
<xsl:sort select="date"/>
|
||||
<xsl:with-param name="basename">$basename</xsl:with-param>
|
||||
</xsl:apply-templates>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="wp:comment">
|
||||
<xsl:param name="basename"/>
|
||||
<xsl:variable name="cnum" select="format-number(wp:comment_id, '000')" />
|
||||
<xsl:variable name="filename" select="concat($basename, '/comment_', $cnum, '._comment')"/>
|
||||
<xsl:variable name="nickname" select="concat(' nickname="', wp:comment_author, '"')" />
|
||||
<xsl:variable name="username" select="concat(' username="', wp:comment_author_url, '"')" />
|
||||
<xsl:variable name="ip" select="concat(' ip="', wp:comment_author_IP, '"')" />
|
||||
<xsl:variable name="date" select="concat(' date="', wp:comment_date_gmt, '"')" />
|
||||
<xsl:result-document href="{$filename}" format="txt">
|
||||
<xsl:text>[[</xsl:text><xsl:text>comment format=html</xsl:text><xsl:value-of select="$newline"/>
|
||||
<xsl:value-of select="$nickname"/>
|
||||
<xsl:value-of select="$username"/>
|
||||
<xsl:value-of select="$ip"/>
|
||||
<xsl:value-of select="$date"/>
|
||||
<xsl:text>subject=""</xsl:text><xsl:value-of select="$newline"/>
|
||||
<xsl:text>content="""</xsl:text><xsl:value-of select="$newline"/>
|
||||
<xsl:value-of select="wp:comment_content"/>
|
||||
<xsl:value-of select="$newline"/>
|
||||
<xsl:text>"""]]</xsl:text><xsl:value-of select="$newline"/>
|
||||
</xsl:result-document>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="category">
|
||||
<xsl:text>[</xsl:text><xsl:text>[</xsl:text><xsl:text>!tag "</xsl:text><xsl:value-of select="."/><xsl:text>"]]</xsl:text>
|
||||
<xsl:value-of select="$newline"/>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
|
Loading…
Reference in New Issue