2005年05月26日

レンタルブログで小説連載 その2

レンタルブログで小説掲載の続きです。

カテゴリ一覧を使って、「まとめ読みする」というページを作ってみました。

今回、日時をいじっているのは目次ページだけで、小説は一般的な執筆順に投稿しています。とうぜん、ブログの常識から言えば新しい記事(最終章)ほど上に来るはずです。

が、ものすごいチカラワザを行使して、章の頭から一気に読める形に並べなおしてみました。(笑)
こんな感じ▼
http://blog.livedoor.jp/htmldwarf/archives/cat_1247149.html

チカラワザの正体はJavascriptです。
カテゴリ別アーカイブのHTMLテンプレートの中身はこんなんなってます。(変更したところだけ抜粋)
<script><!--
Titles = new Array();
IDs = new Array();
i = 0;
<CategorizedArticlesLoop>
Titles[i] = '<$ArticleTitle ESCAPE$>';
IDs[i] = '<$ArticleId$>';
i++;
</CategorizedArticlesLoop>
-->
</script>
<CategorizedArticlesLoop>
<div id="<$ArticleId$>" style="display:none"><$ArticleBody$></div>
</CategorizedArticlesLoop>
<div class="blog">
<script><!--
Titles = Titles.reverse();
IDs = IDs.reverse();
t = 0;
while ( t < Titles.length) {
document.write('<div class="blogbody">');
document.write('<h2 class="date">' + Titles[t] + '</h2>');
document.write('<div class="main"><div class="document">' + document.getElementById(IDs[t]).innerHTML + '<br clear="all"></div></div>');
document.write('</div>');
t++;
}
--></script>

要するにですね、タイトルと記事IDを配列に突っ込んで、記事内容は一度非表示の形でidつけて保存して、全部終わったところでおもむろにタイトルとIDの配列をひっくり返し、実際とは逆の順になるように書き出しているわけです。
データ量が2倍になるのであんまりオススメできませんが。まあこういうやりかたもあるということで。
このままだとjavascriptオフのとき何にも表示されないのですが、<noscript>をちゃんと使えば逆順だけど読める状態にはなります。


(このエントリ書きながら気がついてしまったんですが、記事内容($ArticleBody$)をざっくりテンプレートから削除して、タイトルだけこの方法で昇順表示させれば、カテゴリ別ページを目次にすることが可能なのでは。はうっ。まあjavascriptはブラウザ依存になって怖いのでやめときましょうってことで!)


posted by 文月夕 at 19:45| Comment(0) | TrackBack(0) | ネット小説コミュニティ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

PR