ホーム > フォーラム > 質問箱 > ルビをふるbbcodeを追加するには?

ルビをふるbbcodeを追加するには?
投稿者: if_tlw | 投稿日時: 2005/12/7 22:37 | 閲覧: 12315回
if_tlw
氷炎 雷光風です。

ふと思いつき、ルビを実現するbbcodeを追加できないか、
試してみたのですが、どうにもうまくいきません。
#自分で試したコードについては、末尾につけてます。
検索も、 るび ルビ かな カナ といったような語句を
試してみましたが、該当なしでした。

<テスト環境>
win98SE
PHP4.2.2
MySQL4.0.14
Apache1.3系
XOOPS2.0.13a
Mozilla1.7.12
テストモジュール:weblog1.42
module.textsanitizer.phpについては、下記のものをベースに。

XOOPS module.temodule.textsanitizer.phpxtsanitizer.php ハック版(by ohwada)
http://linux.ohwada.jp/modules/mydownloads/singlefile.php?cid=1&lid=58
</テスト環境>
#ルビまわりのHTMLタグなんてないぞ! とか
#言われそうですが・・・
#手元にあった、HTMLタグ関係の資料の発行が3年前では
#役立たずかなぁ?

もしルビ関係のHTMLタグがないなら、スタイルシートに
ルビを実現するような記述を施して、
<span class=”rt”></span>
を吐き出すbbcodeを追加することになるのでしょうか?

どなたか、ヒントもしくはどういう方向で行くべきか
教えていただけないでしょうか?


以下、自分で試してみたコード。

引用:

$patterns[] = "/\[ruby](.*)\[\/ruby\]/sU";
$replacements[] = '\\1';
$patterns[] = "/\[rp](.*)\[\/rp\]/sU";
$replacements[] = '\\1';
$patterns[] = "/\[rb](.*)\[\/rb\]/sU";
$replacements[] = '\\1';
$patterns[] = "/\[rt](.*)\[\/rt\]/sU";
$replacements[] = '\\1';

コメント(16)

新しいものから | 古いものから | ネスト表示 | RSS feed
Re: ルビをふるbbcodeを追加するには? 
投稿者: fanrun7 | 投稿日時: 2005/12/7 23:03
fanrun7
ブラウザは何で試しましたか。

サニタイザーは試してませんが、タグそのものを確認してみました。

firefoxはサポートしてないみたいですね。
IEでは動いてます。と言っても、以下URLによると
rbは未サポートかもしれないですね。

http://www.tohoho-web.com/html/ruby.htm
Re: ルビをふるbbcodeを追加するには? 
投稿者: if_tlw | 投稿日時: 2005/12/7 23:31
if_tlw
氷炎 雷光風です。
引用:

ブラウザは何で試しましたか。

Mozilla1.7.12です。

なので、
引用:

firefoxはサポートしてないみたいですね。

firefoxと同様の結果であっても不思議ではなさそうです。

引用:

IEでは動いてます。

了解しました。

スタイルシート+<span class=””></span>
の方法をとろうと思います。
Re: ルビをふるbbcodeを追加するには? 
投稿者: if_tlw | 投稿日時: 2005/12/12 1:53
if_tlw
氷炎 雷光風です。

一応、途中経過の報告です。
#テスト環境については、大元の記事と同一につき略。
#ブラウザについては、Mozilla1.7.12


まず、module.textsanitizer.phpについて。

結局、大元で書いた追加コードはそのままです。
というのも、一度
<span class=””></span>
を吐き出すようにしてみたのですが、イマイチよろしくなかった
のです。

次にスタイルシートについて。
これは、知り合いが使っているスタイルシートの

・ルビ部分をまるまる教えてもらえたこと(2つのファイル
だったのですが、どちらも短いと思われるので、
そのまま末尾につけてます。)
・知り合いが参考にしたというURIも教えてもらえたこと
http://www.akatsukinishisu.net/itazuragaki/2001_10.html#ruby_for_Mozilla_3

で、何とかなりそうな雰囲気ではあるのですが・・・

次に、
文書宣言を吐き出しているファイルは?
http://xoopscube.jp/modules/xhnewbb/viewtopic.php?topic_id=1412&forum=4

で確認した、文書宣言について。
これは、使っているテーマで固定(直書き)されていたのを
確認でき、変更もできたのですが・・・


ここからは、何が問題だったのか?を書きます。

<span class=””></span>
を吐き出す状態の場合、
<rb>タグと<rt>タグの順序を逆にしなければ、
意図した表示になってくれませんでした。通常、

<ruby>
<rb>ルビをふりたいもの<rb><rp>(</rp>
<rt>ルビとして記述するもの<rt><rp>)</rp>
</ruby>

と書くのですが、

<ruby>
<rt>ルビとして記述するもの<rt><rp>(</rp>
<rb>ルビをふりたいもの<rb><rp>)</rp>
</ruby>

としなければ、意図した表示になってくれませんでした。

例えば、

<ruby>
<rb>氷炎 雷光風<rb><rp>(</rp>
<rt>ひえん らいこふ<rt><rp>)</rp>
</ruby>

と書くと、
ルビ部分のひらがなが(本来は漢字の上に来て欲しいのに)
漢字の下に表示されるようなことが起こったということです。
さらにルビ自体の大きさがスタイルシートで指定されたサイズ
になっていない状況でした。

また、ルビ関連の4つのタグについて書籍等を参考にしたところ、
XHTML1.1で有効であることがわかりました。これが、

文書宣言を吐き出しているファイルは?
http://xoopscube.jp/modules/xhnewbb/viewtopic.php?topic_id=1412&forum=4

を起こした理由です。

では、文書宣言をXHTML1.1にしてどうなったのか?

今のところ、文書宣言はさほど関係ないのでは?という感じを
受けています。



でも



でも、

・スタイルシートでの指定
・bbcodeからHTMLタグへの変換

が適切なら大丈夫なようにも見うけられました。


それよりも、文書宣言のいじくり方によってはテーマが
正常に読みこまれなくなるようなことが起こり、3つほど
テーマを破壊(笑)しました。
どういう弄くり方がまずかったのかは判別できていません。
#というのも、使っているエディタ側の問題くさく感じるところ
#あるので、何ともなぁ・・・という感じなのです。

<ひとり言>
あと、今回の件を調べていて思ったのですが、
文書宣言の前にXML宣言ってなくて大丈夫なのでしょうか?
XOOPS Cubeなら
<?xml version="1.0" encoding="euc-jp"?>
ってところですかね?
</ひとり言>

というわけで、もう少し試してみます。


以下、知り合いから教えてもらったルビのスタイルシートです。

その1
引用:

ruby{
display:inline-table;
text-align:center;
// text-align:justify;
white-space:nowrap;
text-indent:0;
margin:0 -0.2em;
vertical-align:-20%;
}

ruby>rb,ruby>rbc{
display:table-row-group;
line-height:90%;
}

ruby>rt,ruby>rbc+rtc{
display:table-header-group;
font-size:20%;
line-height:20%;
letter-spacing:0;
}

ruby>rbc+rtc+rtc{
display:table-footer-group;
font-size:20%;
line-height:20%;
letter-spacing:0;
}

rbc>rb,rtc>rt{
display:table-cell;
letter-spacing:0;
}

rtc>rt[rbspan]{
display:table-caption;
}

rp{
display:none;
}


その2
引用:

span.rp {
display: none;
}
span.rt {
font-size: 60%;
font-style: italic;
virtical-align: baseline;
}
Re: ルビをふるbbcodeを追加するには? 
投稿者: shirouto | 投稿日時: 2005/12/12 2:32
shirouto
取り敢えず、手短に。
間違ってたら、誰か訂正して(笑)
後、補足とか。

・IEでは、XML宣言があると不都合が一杯。
・IEでは、他ブラウザに先駆けてruby要素を実装。してはみたものの、実装段階でXHTML 1.1は草案だった為、勧告の仕様とは違う(笑)
・ruby要素が実装されているブラウザは非常に少ない(と思われる)。
・ruby関係のCSSプロパティは、CSS3で定義される(予定)。
・IEは、>とか+とかのセレクタは、すっ飛ばす。
・ruby要素は、XHTML 1.1で定義されたので、XHTML 1.0では、効果が現れなくっても、まあ、当然。
・ブラウザによって、文書宣言での処理の振り分けが色々。で、IE6はその辺りに致命的なバグあり(笑) 娘娘飯店-各ブラウザの「DOCTYPE スイッチ」状況なんか参考になるかな? データは古いけど。

んじゃあ、おやすみぃー
Re: ルビをふるbbcodeを追加するには? 
投稿者: pittpi | 投稿日時: 2005/12/12 3:19
pittpi
こんばんわ
XML宣言に関して、こんなのも有るよって事で

引用:

・IEでは、XML宣言があると不都合が一杯。 

IE6だけXML宣言を外すってのは、どう?

ネットを渡り歩いて見つけたコードなんですけど
<{php}>
$ua = $_SERVER['HTTP_USER_AGENT'];
if ((ereg("Windows",$ua) > 0) && (ereg("MSIE",$ua) > 0)) {
if (ereg("MSIE 6.",$ua) > 0) {
echo '';
}
} else {
echo '<?xml version="1.0" encoding="EUC-JP"?>'."\n";
}
<{/php}>

これをtheme.htmlのソースコードの一番先頭に記載すると
IE6の時だけXML宣言が表示されなくて、
他のブラウザでは、例えばFirefoxでは、XML宣言が表示されます。

Re: ルビをふるbbcodeを追加するには? 
投稿者: shirouto | 投稿日時: 2005/12/12 11:58
shirouto
引用:
これをtheme.htmlのソースコードの一番先頭に記載すると
IE6の時だけXML宣言が表示されなくて、
他のブラウザでは、例えばFirefoxでは、XML宣言が表示されます。

あっ、これ、面白いっ。
こういう発想、したことなかったな...
theme.htmlも、最終的にはphpの一部として処理されてるんだもんね...

あと、文字コードは$xoops_charsetから引っ張ってきたほうが、ステキかも
Re: ルビをふるbbcodeを追加するには? 
投稿者: if_tlw | 投稿日時: 2005/12/13 0:33
if_tlw
氷炎 雷光風です。

まとめレスで失礼します。>shiroutoさん、pittpiさん

まず、XML宣言の話を総合してみます。

pittpiさんは書きました。
引用:

引用:

・IEでは、XML宣言があると不都合が一杯。 


IE6だけXML宣言を外すってのは、どう?

ネットを渡り歩いて見つけたコードなんですけど


$ua = $_SERVER['HTTP_USER_AGENT'];
if ((ereg("Windows",$ua) > 0) && (ereg("MSIE",$ua) > 0)) {
if (ereg("MSIE 6.",$ua) > 0) {
echo '';
}
} else {
echo ''."\n";
}



これをtheme.htmlのソースコードの一番先頭に記載すると
IE6の時だけXML宣言が表示されなくて、
他のブラウザでは、例えばFirefoxでは、XML宣言が表示されます。


shiroutoさんは書きました。
引用:

文字コードは$xoops_charsetから引っ張ってきたほうが、ステキかも


で、お2人の話とコードをまとめてみると・・・

引用:


$ua = $_SERVER['HTTP_USER_AGENT'];
if ((ereg("Windows",$ua) > 0) && (ereg("MSIE",$ua) > 0)) {
if (ereg("MSIE 6.",$ua) > 0) {
echo '';
}
} else {
echo '"?>'."\n";
}



という感じでどうでしょう?

>shiroutoさん
引用:

・IEでは、XML宣言があると不都合が一杯。
・IEでは、他ブラウザに先駆けてruby要素を実装。してはみたものの、実装段階でXHTML 1.1は草案だった為、勧告の仕様とは違う(笑)
・ruby要素が実装されているブラウザは非常に少ない(と思われる)。
・ruby関係のCSSプロパティは、CSS3で定義される(予定)。
・IEは、>とか+とかのセレクタは、すっ飛ばす。
・ruby要素は、XHTML 1.1で定義されたので、XHTML 1.0では、効果が現れなくっても、まあ、当然。
・ブラウザによって、文書宣言での処理の振り分けが色々。で、IE6はその辺りに致命的なバグあり(笑) 娘娘飯店-各ブラウザの「DOCTYPE スイッチ」状況なんか参考になるかな? データは古いけど。


rubyタグ関連を調べる中で、「IEが(先走りの)独自実装した」
というのは出てきましたが、

・fanrun7さんから IEでは動いてる と動作報告していただけた
・個人的な考えとして、IEはwindows UPDATE専用ツール、
つまり(webを見る)ブラウザに非ず

ということで、IEに関してはもういいやと思ってました。
リリースが見えてきたIE7はどうなのか?というのはありますが、
(リリースされたとしても)ウチの環境じゃIE7は使えないでしょうし・・・

rubyタグ関連の実装済みブラウザの数については、全く知らないです。
ただMozillaに関しては、件の知り合いから、
引用:

Mozillaはrubyそのものは認識しますが,
標準でスタイルが適用されていないので
なにも整形されない, というのが正しいみたい

ということも教わりましたので、IEだけが実装しているわけ
でもないようです。

ですが、基本的に需要が多いと判断されない限り、
実装されないor実装優先度低ランク でしょうね。
#今回は、
#・達成できた場合は自分のところで使う
#・達成できなくても、こういう話を表立ってしておくと、
#より話のわかるヒトからの反応を期待できるかも
#というのを狙ってこのスレッド自体を起こしました。


XHTML1.1でなきゃ、効果が出なくても不思議はないですよね(笑)
タグの実装とCSSの対応は、ある程度関連しあっているでしょうから、
今後の動向次第でしょうか。

今回の件をもう少しやってみて、また報告します。

>pittpiさん
貴重なコードの提示、感謝します。
コードを見ていて思ったのですが、

今時IE4系とかIE5系とかは残ってないよな?

というのが頭をよぎりました。

で、
引用:


$ua = $_SERVER['HTTP_USER_AGENT'];
if ((ereg("Windows",$ua) > 0) && (ereg("MSIE",$ua) > 0)) {
echo '';
} else {
echo '"?>'."\n";
}



の方がいいのかなぁ? とも思ったのですが、どうなんでしょう?
Re: ルビをふるbbcodeを追加するには? 
投稿者: zephyr | 投稿日時: 2005/12/13 1:03
zephyr
引用:

if_tlwさんは書きました:

ただMozillaに関しては、件の知り合いから、
引用:

Mozillaはrubyそのものは認識しますが,
標準でスタイルが適用されていないので
なにも整形されない, というのが正しいみたい

ということも教わりましたので、IEだけが実装しているわけ
でもないようです。


一言だけ、Mozilla、Firefox でもプラグインで、IE なみのルビ表示ができます。ただ、Mac OS X では、ルビが多いと少し表示まで時間が掛かるのと、Firefox では、それ以上にルビタグが多すぎると、スクリプトを最後まで実行できないとワーニングが出ます。

ルビ表示プラグイン(XHTML Ruby Support)

あと、Mac OS X で使えるブラウザで、Safari、Opera では寡聞にしてこの種のプラグインは知りません。
Re: ルビをふるbbcodeを追加するには? 
投稿者: shirouto | 投稿日時: 2005/12/13 1:32
shirouto
ごめん、(xml宣言の)スクリプトのテストはしてないよ(笑)

で、そもそもDOCTYPEスイッチっていうのは、IE5のスカタンCSS実装となんとか互換性をとる方法を模索した上で施された回避策だから、IE5.x以前のことは考えなくっておっけーなのよ。

で、mozillaがruby要素を云々っていうのは、(恐らく)動作としてはrubyタグを読み飛ばしている(=何もしない)んだけど、CSSでrubyに指定があったら、適用しちゃおう、っていうモノだと思うのね。

引用:
一言だけ、Mozilla、Firefox でもプラグインで、IE なみのルビ表示ができます。ただ、Mac OS X では、ルビが多いと少し表示まで時間が掛かるのと、Firefox では、それ以上にルビタグが多すぎると、スクリプトを最後まで実行できないとワーニングが出ます。
【ルビ表示プラグイン(XHTML Ruby Support)】

も、見る限り、唯単にルビ絡みの要素にCSSを適用しているだけのようだし。

でも、そうなると、そもそもXHTML1.1に厳格に対応したブラウザって、あるのか? って話になっちゃうんだよな...

あっ、moz系が、全然定義されていない要素、例えばがあるhtmlがあって、それに対応したCSSを用意したとして、どう動作するかはチェックしてません(めんどくさいし(笑))。
Re: ルビをふるbbcodeを追加するには? 
投稿者: pittpi | 投稿日時: 2005/12/13 2:48
pittpi
こんばんわ

引用:

if_tlwさんは書きました:

$ua = $_SERVER['HTTP_USER_AGENT'];
if ((ereg("Windows",$ua) > 0) && (ereg("MSIE",$ua) > 0)) {
echo '';
} else {
echo '"?>'."\n";
}
 


こちらでも動くと思うけど・・・
ただ私が提示したコードは、IE6に関した事を回避するため

XHTML(XML宣言なし) IE6(標準モード) Gecko系(標準モード)
XHTML(XML宣言あり) IE6(後方互換モード) Gecko系(標準モード)

IE6とIE5.xの違いでは確か、表示レイアウトでも結構違いが有ったような・・・
私のPCの中には、IE6とFirefox1.5しか入ってないから、
時間が有れば、IEの下位バージョンを追加で入れてテストしてみます。

文字コードは、で、PHPコード内で、動きますか?
'._CHARSET.' ←こちらの方が良いと思いますよ


<{php}>
$ua = $_SERVER['HTTP_USER_AGENT'];
if ((ereg("Windows",$ua) > 0) && (ereg("MSIE",$ua) > 0)) {
if (ereg("MSIE 6.",$ua) > 0) {
echo '';
}
} else {
echo '<?xml version="1.0" encoding="'._CHARSET.'"?>'."\n";
}
<{/php}>


Re: ルビをふるbbcodeを追加するには? 
投稿者: if_tlw | 投稿日時: 2005/12/14 23:33
if_tlw
氷炎 雷光風です。

zephyrさんは書きました。
引用:

引用:

ただMozillaに関しては、件の知り合いから、
引用:

Mozillaはrubyそのものは認識しますが,
標準でスタイルが適用されていないので
なにも整形されない, というのが正しいみたい

ということも教わりましたので、IEだけが実装しているわけ
でもないようです。


一言だけ、Mozilla、Firefox でもプラグインで、IE なみのルビ表示ができます。ただ、Mac OS X では、ルビが多いと少し表示まで時間が掛かるのと、Firefox では、それ以上にルビタグが多すぎると、スクリプトを最後まで実行できないとワーニングが出ます。

ルビ表示プラグイン(XHTML Ruby Support)

あと、Mac OS X で使えるブラウザで、Safari、Opera では寡聞にしてこの種のプラグインは知りません。

ありがとうございます。m(_)m
このプラグインの存在は全く知りませんでした。
後で試してみたいと思います。
Re: ルビをふるbbcodeを追加するには? 
投稿者: if_tlw | 投稿日時: 2005/12/14 23:45
if_tlw
氷炎 雷光風です。
引用:

ごめん、(xml宣言の)スクリプトのテストはしてないよ(笑)

今やってま〜す(笑)
どんな結果なのかは、pittpiさんが新しく提示されたコードへの
レスするので、そちらを。

それが終わってから、bbcodeのテストに戻るつもりです。

引用:

で、そもそもDOCTYPEスイッチっていうのは、IE5のスカタンCSS実装となんとか互換性をとる方法を模索した上で施された回避策だから、IE5.x以前のことは考えなくっておっけーなのよ。

言っていることはわかりますが、念の為確認させてください。
互換性を取るのは、「IE5とIE6の間で」ですよね?
#話の流れから、それしか思いつかなかったけど、
#ちょっと不安になったので。

引用:

で、mozillaがruby要素を云々っていうのは、(恐らく)動作としてはrubyタグを読み飛ばしている(=何もしない)んだけど、CSSでrubyに指定があったら、適用しちゃおう、っていうモノだと思うのね。

引用:
一言だけ、Mozilla、Firefox でもプラグインで、IE なみのルビ表示ができます。ただ、Mac OS X では、ルビが多いと少し表示まで時間が掛かるのと、Firefox では、それ以上にルビタグが多すぎると、スクリプトを最後まで実行できないとワーニングが出ます。
【ルビ表示プラグイン(XHTML Ruby Support)】

も、見る限り、唯単にルビ絡みの要素にCSSを適用しているだけのようだし。

でも、そうなると、そもそもXHTML1.1に厳格に対応したブラウザって、あるのか? って話になっちゃうんだよな...

どうなんでしょうね・・・
可能性があるとしたら、最有力なのは、Firefox1.5
じゃないでしょうか?
何せ、ごく最近のリリースですし。

引用:

あっ、moz系が、全然定義されていない要素、例えばがあるhtmlがあって、それに対応したCSSを用意したとして、どう動作するかはチェックしてません(めんどくさいし(笑))。

これは、ブラウザのテスターの方々にお任せしませう(笑)
ここに突っ込むと、明らかにXOOPSの範疇外になりますので、
止めておきます。
Re: ルビをふるbbcodeを追加するには? 
投稿者: if_tlw | 投稿日時: 2005/12/14 23:57
if_tlw
氷炎 雷光風です。

まず、私が以前出してみたコードですが、
引用:


$ua = $_SERVER['HTTP_USER_AGENT'];
if ((ereg("Windows",$ua) > 0) && (ereg("MSIE",$ua) > 0)) {
echo '';
} else {
echo '"?>'."\n";
}


これだと、テーマ自体は表示されたのですが、
左上に「"?」というのが表示されてしまいました。

引用:

文字コードは、で、PHPコード内で、動きますか?

上記の通りです。

引用:

'._CHARSET.' ←こちらの方が良いと思いますよ


<{php}>
$ua = $_SERVER['HTTP_USER_AGENT'];
if ((ereg("Windows",$ua) > 0) && (ereg("MSIE",$ua) > 0)) {
if (ereg("MSIE 6.",$ua) > 0) {
echo '';
}
} else {
echo '<?xml version="1.0" encoding="'._CHARSET.'"?>'."\n";
}
<{/php}>


このコードと

を合わせて、


<{php}>
$ua = $_SERVER['HTTP_USER_AGENT'];
if ((ereg("Windows",$ua) > 0) && (ereg("MSIE",$ua) > 0)) {
echo '';
} else {
echo '<?xml version="1.0" encoding="'._CHARSET.'"?>'."\n";
}
<{/php}>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

という風にしてみました。Mozilla1.7.12で確認
したのみですが、これでも特に問題はないようでした。


bbcodeの方のテストに戻らなくちゃ(笑)
#XML宣言の話で、盛り上がるのは、ちょっと予想外でした。
#嬉しい誤算になってくれました。
Re: ルビをふるbbcodeを追加するには? 
投稿者: shirouto | 投稿日時: 2005/12/15 1:40
shirouto
引用:
言っていることはわかりますが、念の為確認させてください。
互換性を取るのは、「IE5とIE6の間で」ですよね?
#話の流れから、それしか思いつかなかったけど、
#ちょっと不安になったので。

違う。
IE5が、ウェブ・スタンダードにそぐわない形でXHTMLやらCSSやらを実装して、んで、それがデファクト・スタンダードとして広まりすぎて、でも、w3cの定義した、本来のウェブ・スタンダードを曲げる訳には行かない、という観点から、苦肉の策としてDOCTYPEスイッチが導入されたのさ。
だから、Quirksモードは、DOCTYPEスイッチを備えたウェブ・ブラウザ(IE6だけじゃなくって)が、IE5の挙動をエミュレーションするモードだと思って、ほぼ間違いない。はず(笑)

引用:
左上に「"?」というのが表示されてしまいました。

そういう時は、「?」を取ってみる!(笑)
Re: ルビをふるbbcodeを追加するには? 
投稿者: if_tlw | 投稿日時: 2005/12/15 21:14
if_tlw
氷炎 雷光風です。

引用:

shiroutoさんは書きました:
引用:
言っていることはわかりますが、念の為確認させてください。
互換性を取るのは、「IE5とIE6の間で」ですよね?
#話の流れから、それしか思いつかなかったけど、
#ちょっと不安になったので。

違う。
IE5が、ウェブ・スタンダードにそぐわない形でXHTMLやらCSSやらを実装して、んで、それがデファクト・スタンダードとして広まりすぎて、でも、w3cの定義した、本来のウェブ・スタンダードを曲げる訳には行かない、という観点から、苦肉の策としてDOCTYPEスイッチが導入されたのさ。

なるほど、そういうことでしたか。
XML宣言のコードは、IE6を主眼にした
(というか、IE6のみXML宣言を吐かない)
ものになっていたので、主語を取り違えたようです。

失礼しました。

そういうことで、
引用:
IE5のスカタンCSS実装

という表現をされたわけですね。

これから、bbcodeのテストに戻りま〜す(・・/
Re: ルビをふるbbcodeを追加するには? 
投稿者: if_tlw | 投稿日時: 2005/12/16 0:17
if_tlw
氷炎 雷光風です。

ルビのbbcodeのテストが終了したので、結果を書きます。
#確認ブラウザは、Mozilla1.7.12
#テストモジュールはweblog1.42
#それ以外の環境については、大元の記事を参照。

やはり、

・スタイルシートが正しく記述されている
・bbcode−>HTML変換が正しく記述されている

のであれば、現状では、

・XML宣言有り無し、無関係
・XHTML1.0でも1.1でも

どっちでも動作してくれるようです。


デフォルトのテーマで、
XML宣言+XHTML1.1

それ以外のテーマで、
XML宣言無しXHTML1.0

という形にして試しましたが、

どちらでも、ルビの表示をしてくれました。

というわけで、コードのまとめ。

module.textsanitizer.phpに追加のコード

        $patterns[] = "/\[ruby](.*)\[\/ruby\]/sU";
        $replacements[] = '<ruby>\\1</ruby>';
        $patterns[] = "/\[rp](.*)\[\/rp\]/sU";
        $replacements[] = '<rp>\\1</rp>';
        $patterns[] = "/\[rb](.*)\[\/rb\]/sU";
        $replacements[] = '<rb>\\1</rb>';
        $patterns[] = "/\[rt](.*)\[\/rt\]/sU";
        $replacements[] = '<rt>\\1</rt>';


スタイルシート

ruby{
display:inline-table;
text-align:center;
// text-align:justify;
white-space:nowrap;
text-indent:0;
margin:0 -0.2em;
vertical-align:-20%;
}

ruby>rb,ruby>rbc{
display:table-row-group;
line-height:90%;
}

ruby>rt,ruby>rbc+rtc{
display:table-header-group;
font-size:20%;
line-height:20%;
letter-spacing:0;
}

ruby>rbc+rtc+rtc{
display:table-footer-group;
font-size:20%;
line-height:20%;
letter-spacing:0;
}

rbc>rb,rtc>rt{
display:table-cell;
letter-spacing:0;
}

rtc>rt[rbspan]{
display:table-caption;
}

rp{
display:none;
}


XML宣言+XHTML1.1宣言をIE以外で入れるなら
下記をお使いのテーマの先頭に追加。

<{php}>
$ua = $_SERVER['HTTP_USER_AGENT'];
if ((ereg("Windows",$ua) > 0) && (ereg("MSIE",$ua) > 0)) {
if (ereg("MSIE 6.",$ua) > 0) {
echo '';
}
} else {
echo '<?xml version="1.0" encoding="'._CHARSET.'"?>'."\n";
}
<{/php}>


当スレッドに反応してくださった皆様ありがとうございました。
m(_)m

    投票(0)

    新しいものから | 古いものから | RSS feed
     
    To Top