朝顔日記

ローカルで書いた rNote 用の xml をどうやって閲覧しよう?

2005-01-06

rNote 用に書いた xml もサーバにアップする前になんとなく見ておきたいので、ローカルで手軽に見てみれるといいなというのが、今回の指令(何)。

xml をそのままブラウザで見てもちっとも面白くないので、XSLT を使って html に変換したものを閲覧することにしました。ただ、rNote の仕様上、画像ファイルなどのパスが変わるのでそこらをどうしたものかと困っていたんですが、哀さんに相談したら、画像のパスを変換する技(?)を伝授していただきました。ありがとうございます。>哀さん

うまくいったと思ったら、実は勘違いだったことが判明。とりあえずいったん XSLT は削除して出直します。

書き直しました。今度は大丈夫。多分。:p)

というわけで、以下がその XSLT です。


<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:x="http://www.w3.org/1999/xhtml"
  xmlns:rn="http://rinn.e-site.jp/rnote/"
  xmlns="http://www.w3.org/1999/xhtml"
  exclude-result-prefixes="rn">
  <xsl:output method="xml"
    encoding="UTF-8"
    omit-xml-declaration="no"
    doctype-public="-//W3C//DTD XHTML 1.1//EN"
    doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
    indent="yes"
    media-type="application/xml"/>
  <xsl:variable  name="localroot" select="'file:///d:/web/noasobi/diary/'"/>
    <xsl:template match="/">
      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
        <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          <link rel="stylesheet" href="{$localroot}style/base.css" type="text/css" />
          <link rel="stylesheet" href="{$localroot}style/firefox.css" type="text/css" media="screen,projection" title="Firefox" />
          <link rel="alternate stylesheet" href="{$localroot}style/pink.css" type="text/css" title="ピンク" />
          <title>朝顔日記 - <xsl:value-of select="child::rn:rNote/child::rn:Title"/></title>
        </head>
        <body>
          <div class="content">
            <h1>朝顔日記</h1>
            <div class="section">
              <h2><xsl:value-of select="child::rn:rNote/child::rn:Title" /></h2>
              <p class="date"><xsl:value-of select="child::rn:rNote/child::rn:Date" /></p>
              <div class="section">
                <xsl:apply-templates select="child::rn:rNote/child::x:Text/child::node()" />
              </div>
            </div>
          </div>
        </body>
      </html>
    </xsl:template>
    <xsl:template match="child::rn:rNote/child::x:Text/child::node()[boolean(child::x:img)!=true()]">
      <xsl:copy-of select="self::node()"/>
    </xsl:template>
    <xsl:template match="child::rn:rNote/child::x:Text/child::x:div/child::x:img">
      <div class="photo">
        <img>
          <xsl:attribute name="src">
            <xsl:if test="not(contains(attribute::src, ':'))">
              <xsl:value-of select="$localroot"/>
            </xsl:if>
            <xsl:value-of select="attribute::src"/>
          </xsl:attribute>
        </img>
      </div>
    </xsl:template>
</xsl:stylesheet>

これを、rNote の 記事ファイルの xml 宣言の次の行あたりに入れておくと、対応したブラウザを使うことでそれなりの表示すすることが出来ました。

ちなみに、私は バッファから送る を使って、xyzzy 上から手軽にブラウザに渡しています。

「ローカルで書いた rNote 用の xml をどうやって閲覧しよう?」へコメントをつける

書き込み時の挙動について
URI らしき文字列には自動的にリンクが張られます。また "<" や、">" は実体参照化されます。
スパム対策のため、リファラを切っていると投稿できません。

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2005/01/diary_050106b.html