**[[質問箱4/402]] [#te9f2cd4] #author("2018-03-11T20:32:45+09:00;2010-03-08T13:13:53+09:00","","") **[[質問箱/4402]] [#te9f2cd4] |RIGHT:70|LEFT:410|c |~カテゴリ|| |~サマリ|BGCOLOR()やCOLOR()の色を追加したい| |~バージョン|1.4.7| |~投稿者|[[HsT]]| |~状態|質問| |~投稿日|&new{2008-12-21 (日) 17:40:41};| ***質問 [#f202f4b2] COLOR(red)やBGCOLOR(blue)などで色がつけられますよね?&br; これの色を追加したいのですがどうすればよいでしょうか?&br; BGCOLOR(test)の様な感じで追加したいです&br; #000000などの指定だと多用すると編集画面が見難くなったりするので解決したいです&br; さらにbgcolorというのも長いのでBCO(test)のように少し省略できるようにもできませんでしょうか?&br; できれば文章以外の配色系の色で長い文字列を表示したくなくスッキリさせたいのでご存じの方教えてくださいませ ***回答 [#g3c00871] - そのtestという名前と実際の色はどういう対応関係なのでしょうか? -- [[山羊]] &new{2008-12-21 (日) 23:15:43}; - redやblueなどの色の名前はPukiWikiで定義しているのではなくて、ブラウザ側で解釈されています。そのような色の名前は基本色以外にも100種類以上ありますので、大体名前付きの色から欲しい色が見つかるはずです。まずは「HTML 色見本」でネットを検索してみてはいかがでしょうか。 -- &new{2008-12-21 (日) 23:22:42}; -- 簡易の一覧なら、[[色キーワード]] のページとか -- &new{2009-08-18 (火) 16:25:51}; - testは自分で名前を変更できたらと思い適当につけてみました&br;実際には3文字程度ぐらいの短い文字列を自分で指定したいと思っています&br;色は背景に合わせたりしたいのでできれば自分が指定した色で選びたいです&br;一応自分の目当ての色に近いのもありますがmediumslateblueとかかなりの長文で悪化してしまいそうで&br;理想では#000000 = (abc)のような感じで設定し、&br;BCL(abc) やCL(abc)で文字や背景の色をコンパクトに変更できるといった感じが理想なのですが -- [[HsT]] &new{2008-12-22 (月) 03:55:36}; - ではこんな感じでdefault.ini.phpの$line_rulesに以下を追加してみてください。(それにしてもまだ1.3互換の書式を使用されているのでしょうか?) -- &new{2008-12-23 (火) 15:15:53}; 'CL\(abc\){([^}]*)}' => '<span style="color:#000000">$1</span>', 'BCL\(abc\){([^}]*)}' => '<span style="background-color:#000000">$1</span>', - 殆ど解決してるようだけど、わざわざ24ビットで指定しようと思うから長いんでないの?12ビットで指定すれば#RGBで4文字な訳だし。(意味不明ならCSSを調べる事)よほど目の良い人間でも24ビットで指定して隣り合った色でも無い限りFFがF0程度でもになっても見分けるのは困難だしね。 -- &new{2008-12-25 (木) 21:16:15}; - 返事が遅れてすみません&br;フォントカラーは無事できましたが、テーブル内のbgcolorを変更しようとしたら上記のやり方では変更できませんでした&br;フォントの背景の色を変えるやり方だと思うのですが、テーブル内の背景色も上記のようなやり方で簡潔に変更できませんでしょうか?&br;12bitで指定してもよいのですが、さらにコンパクト(1文字)で指定や、配色を変える時にwiki内の色をいじるよりcssみたいに一箇所を変更するだけで全部変更できる上記の方法がいいと思いました。 -- [[HsT]] &new{2008-12-29 (月) 17:05:22}; -テーブル用改造例。ただし、各セル単位での変更機能に置き換えルールを追加しただけなので、表全体の背景色を変えるには手間がかかりますが・・・。&br;lib/convert_html.php のTableCell クラス function TableCell($text, $is_template = FALSE) { parent::Element(); $this->style = $matches = array(); while (preg_match('/^(?:(LEFT|CENTER|RIGHT)|(BG)?COLOR\(([#\w]+)\)|SIZE\((\d+)\)):(.*)$/', $text, $matches)) { if ($matches[1]) { $this->style['align'] = 'text-align:' . strtolower($matches[1]) . ';'; $text = $matches[5]; } else if ($matches[3]) { $name = $matches[2] ? 'background-color' : 'color'; + switch (strtolower($matches[3])) { + case 'test': + $matches[3] = '#000000'; + break; + } + $this->style[$name] = $name . ':' . htmlspecialchars($matches[3]) . ';'; $text = $matches[5]; } else if ($matches[4]) { $this->style['size'] = 'font-size:' . htmlspecialchars($matches[4]) . 'px;'; $text = $matches[5]; } } 一応、color プラグインの改造例も。エラーチェックの手前に入れたのは、'黒'→'#000000' と置き換えたりもできる様にです。(後ろに入れると、実質アルファベットしかルール名に使えなくなりますし) // Invalid color foreach(array($color, $bgcolor) as $col){ + switch (strtolower($matches[3])) { + case 'test': + $matches[3] = '#000000'; + break; + } + if ($col != '' && ! preg_match(PLUGIN_COLOR_REGEX, $col)) return '&color():Invalid color: ' . htmlspecialchars($col) . ';'; } if (PLUGIN_COLOR_ALLOW_CSS === TRUE || ! isset($pkwk_dtd) || $pkwk_dtd == PKWK_DTD_XHTML_1_1) { ところで、表組みに対してだけこの機能を追加しようと考えていたのですか? -- &new{2009-07-30 (木) 16:07:28}; #comment