SmallStyle


2006-05-26

_ Ajax を使った tDiary のプレビュー表示プラグイン(2)

category_to_tag で表示されるタグ少し見やすくを書いてる途中に,プレビュー表示を見ていたら,どうも本文中にセミコロン (;) が入っていると,そこでとぎれてしまうようです.

んー,テスト不足だったな.とりあえず, livehttpheader で送信されている POST 要求をキャプチャ.プレビュー表示プラグインではセミコロンが encode されずにそのまま送信されているけど,通常のプレビューボタンを用いた場合は,セミコロンも encode されている.

調べてみると,フォームの区切り文字に「&」の代用として「;」をサポートすることが推奨されている (via:Namazu-devel-ja 676] URI属性値のセミコロン記号) ようで,このためセミコロンをそのまま送信すると,そこで本文が区切られてしまっていたのが原因でした.

で,Javascript には URI エンコードを行うメソッドとして,escape(),encodeURI(),encodeURIComponent() の 3 種類があり,それぞれエンコード対象の文字列が異なるようです.(escape() は古いメソッドでおすすめできないらしい)

PHP と JS の URI エンコード比較に,このあたりのことが詳しくかかれていて参考になりました.結局,Javascript でセミコロンを URI エンコードしたい場合は,これまで encodeURI() を使っていたのですが,必要に応じて encodeURIComponent() を使う必要があるみたいです.

というわけで,この部分を修正したのでご利用の方は入れ替えをお願いします.

これでセミコロンが本文中に入っていても大丈夫なはず.


2006-05-25

_ category_to_tag で表示されるタグ少し見やすく

カンマ区切りで表示

category_to_tag で表示されるタグは,スペース区切りで表示されるわけですが,なんとなーく見にくい感じがする.スタイルシートである程度スペースをとったりをとるってのも手ですが,content プロパティと :before 擬似要素を利用して,カンマ区切りになんかしてみた.残念ながら IE はこれに対応していないので表示されないのですが,Firefox や Safari なんかでは表示されます.

/* category_to_tag */
div.tags a+a:before {
  content: ", ";
  color: #000;
}

すべてのブラウザに対応させるのであれば,category_to_tag.rb を直接書き換えてしまえばいいだけなのですが,スタイルシートだけでもなんとかできるよということで.

つづき: 2006-05-26

2006-05-24

_ タグクラウド表示プラグイン (2)

日々の頌歌さんのところで,tag にスペースが含まれているとリンクがうまくいかないということだったので修正.

category.rb の make_anchor を呼び出して,結果文字列を正規表現でごにょごにょしてた部分を,category_to_tagcloud.rb で URL を作成するように変更.とりあえずこれで tag にスペースが含まれていても問題なくなったはず.

あとは不必要なコードをいくつか削除しました.昨日,ダウンロードされた方は入れ替えてください.

本日のツッコミ(全2件) [ツッコミを入れる]

_ chu-ken [修正版リリースありがとうございます。 今度はきちんと表示されるようになりました。]

_ hb [コメントありがとうございます. 無事表示されたようでよかったです.]


about me

いろいろと興味を持ったことを書いてます.ちょっとしたことは hb(@smallstyle) on Twitter で書いてます.

Archive

2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|12|