Bonjour!

« javascriptでスタイル規則を追加したい | トップページ | 折り畳みで小見出し一覧 »

2004-06-19

折り畳み前にキーワード→タグ変換

折り畳みで「続きを読む...」スクリプトのオプション機能のひとつ「特定キーワードで始まる段落を対応するタグに変換する機能」についての記事です。

『テキストフォーマットの初期設定』を『改行を反映させる』にして記事を作成している場合、本文記事内で水平線(hrタグ)を使っても、自動的にpタグで囲まれてしまうため、「折り畳み線」として使うことができません。

そこで、ある特定のキーワードで始まる段落を、折り畳みスクリプトが機能する前に、水平線や見出しに変換してしうことにしました。

このオプション機能をオンにすると、ある特定のキーワードで開始されている段落を、対応する特定のタグに変換します。

この機能をオンにする方法は、次の通りです。

- ここのスクリプト本体(foldContent01a.js)をそのまま使っている場合:
「呼び出しスクリプト」の foldContent(); という行より前に下記のコードを挿入する。
- 自分の所にスクリプト本体(foldContent01a.js)をアップロードした場合:
スクリプト本体の上方にある同様の部分を下記のように修正して再度アップロードする。

doConvertTags = true;

また、特定キーワードで始まる段落と変換後の要素(タグとその要素内容)との対応関係は、以下の通りです。

- 半角マイナス4つ以上(----)で始まる段落
→ hrタグ
(キーワード以外の文字が同じ段落にあっても消去されます)
- 半角アスタリスク1つ(*)で始まる段落
→ h4タグ
(キーワード部分は除去され、残りが要素内容になります)
- 半角アスタリスク2つ(**)で始まる段落
→ h5タグ
(同上)
- 半角アスタリスク3つ(***)で始まる段落
→ h6タグ
(同上)


# 昔、記事本文中でhrやh4-h6などのタグを使おうとしたらXHTML文法違反になってしまったので、こういう機能を付加することにしました。

# この機能を使う時、前段落との間が2行以上空いてしまっていると、段落(p要素)の最初にbrタグが自動的に挿入されてしまい、特定キーワードで段落を始めたつもりなのにうまく変換してくれない場合があったりします。段落前の空行の数なんかいちいち気にしないで変換できるようにスクリプトを調整したいなあと思ってます。

# とりあえずPukiwikiの記法にキーワードを設定してみたんですが、折り畳みスクリプトが動作しない環境では当然キーワードのままで表示されてしまうので、そういう環境下で読む場合でも本文が読みやすいような記号(■など?)をキーワードにする方がいいかなあと思案中。

« javascriptでスタイル規則を追加したい | トップページ | 折り畳みで小見出し一覧 »

ウェブログ・ココログ関連」カテゴリの記事

コメント

こ、これは・・もしかして、やりようによっては wiki like に記事が書けるツールになりませんか。

http://facet.cocolog-nifty.com/divers/2004/06/post_1.html#c361503

Tigerさん、どうも(^^)。

仰る通り、「改行を反映させる」だけではなくwiki likeに書けたらもっと楽だろうなあと思っていたので、最初はその機能だけを別スクリプトで作っていたんですよ。

でも、記事中で書いたように、対応ブラウザ以外でも読みやすい記法にした方がいいかなと迷い、最終的に、wiki likeな記法を採用しつつ最低限の変換だけに抑え、オプション機能として取り込むことにしました。

ただ、まだ迷っているという証拠に、「折り畳みで続きを読む」関連の記事では、-記号や+記号なんかのリストに変換できるキーワードも使ったままにしていてたりします(^^;。

javascriptが無効な環境でも支障なく読める程度だと思えれば、wiki likeな記法を採用したキーワード→タグ変換スクリプトを改めて作ろうかなとも思っています。

どう思われます?

この記事へのコメントは終了しました。

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/1941/801247

この記事へのトラックバック一覧です: 折り畳み前にキーワード→タグ変換:

« javascriptでスタイル規則を追加したい | トップページ | 折り畳みで小見出し一覧 »

contact

検索

無料ブログはココログ
2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

BANNERS