ホーム > タグ > wordpress

wordpress

いつか使いたかったコードハイライト表示プラグインはpukiwikiプラグインと相性が悪かったので、またいつかにしよう

コードのハイライト表示をしてくれるプラグインを突っ込んだら、pukiwikiプラグインと相性がよくありませんでした。

pukiwikiプラグインとハイライトプラグインは適用箇所をくくることが必要になります。

しかし、以下のような混ぜ混ぜするやりかたは[as]の部分がこのまま出力されるだけでNGでした。
[pukiwiki]
pukiwiki記法
[as]
 public function get unko(food:Food):Feed {
    return _unko;
}
[/as]
[/pukiwiki]
こっちなら動くけど…
[pukiwiki]
pukiwiki記法
[/pukiwiki]
[as]
 public function get unko(food:Food):Feed {
    return _unko;
}
[/as]

これはめんどくさい。pukiwikiやりもって、asに切り替えて…というループ処理は人間には向いてません。

さらに悪いことに、[/pukiwiki]と[as]の区切りの間に空の<p>が紛れるという事態に。もういいや。やーめた!

コードハイライトプラグインの文書は以下がよくまとまっている上にAS3まで対応してはりました。

iG:Syntax HiliterでActionScript 3.0をハイライト

  • Comments (Close): 0
  • Trackbacks (Close): 0

WordPressでPukiWIKI記法を使いたい!そんな貴女の希望をかなえるのが、このplugin!

pukiwiki記法でblogが書けたら、ずいぶんはやく書けるし、自分用メモからの転載もはかどるのでplugin入れてみました。

おおまかな流れ

  1. Xoopsのpluginを拝借
  2. WordPress用PukiWIKI pluginを設定
  3. 全部utf-8(BOMなし)で保存しなおす
  4. 細かい設定

1~2のおおまかなところはこちらが参考になるので割愛します。 http://blog.absolute-zero.info/?p=88

全部utf-8(BOMなし)で保存しなおす

  1. アップロードしたファイルすべてをUTF-8(BOMなし)に保存しなおします。
  2. modPukiWiki/PukiWiki.phpの8行目を以下に変更
    if (!defined('MOD_PUKI_SOURCE_ENCODING')) define('MOD_PUKI_SOURCE_ENCODING','UTF-8');

こまかいところ

ulなどに勝手につくstyle属性をなくす設定

ulの入れ子をしたりすると、かなりstyle属性を入れられるので、消す。かなり物量が多いので、簡単なところだけ消しときます。(ホンマはmarginの計算処理部分も消したいけど、多くて断念)

config/default.php

  • 80行目
  • style="~~と書かれているとこを消す
    • これを
      $_settings['_list_pad_str'] = ' class="'.$_settings['style_prefix'].'list%d" style="padding-left:%dpx;margin-left:%dpx"';
    • これに変更
      $_settings['_list_pad_str'] = "";

一応、勝手に付与されるmargin、paddinの値も0にしとく

class/PukiWikiElement.php

  • 263行目付近のclass PukiWikiListContainerのfunction PukiWikiListContainerを変更
    • これを
      $this->margin = PukiWikiConfig::getParam($var_margin);
      $this->left_margin = PukiWikiConfig::getParam($var_left_margin);
    • 以下のようにmarginとpaddingの値を0に変更する
      $this->margin = "";
      $this->left_margin = "";

h1は使わないので、一つずつ見出しレベルを下げる

  • 「*」はh1じゃなくて、h2になってほしいので変更する

class/PukiWikiElement.php

  • headingまわりの修正
  • 207行目付近、PukiWikiHeadingのfunction PukiWikiHeadingの中
    • これを
      $this->level  = min(6, strspn($text, '*'));
    • これに変更
      $this->level  = min(6, strspn($text, '*') + 1 );
      

あわせて「#contents」の挙動も変更する

  • ulが2つしか入れ子になってくれないので、変更する
  • さっきheadingでlevelを変更したのでそれを直すのと、ulの入れ子を増やします。

class/PukiWikiElement.php

  • 1188行目付近のfunction Contents_UListに一行追加
    • $level -= 1;
  • 278行目付近のfunction PukiWikiListContainerを変更する
    • これを
      $this->level = min(3, strspn($text, $head));
    • これに変更
      $this->level = min(5, strspn($text, $head));
      

あとアンカーがおかしいことになってるので変更

class/PukiWikiElement.php

  • 1142行目付近のfunction getAnchorを変更
    • これを
      $id = "content_{$this->id}_{$this->count}";
    • これに変更
      $id = "content_{$level}_{$this->count}";

実際に使った感想。

  • h6まで見出しを作れる
  • 入れ子<ul>・<ol>は通常通り3個まで
    • 入れ子<li>の挙動がおかしい。入れ子<li>の中にブロック要素を入れると、そのブロック要素の直前に「</p>」を無理やり生成される
  • #contentsの目次生成は便利だけど、topやrssには不要なので、その辺をどうにかしたい。
    • topに置くと、id名が重複する可能性が高い?どうなんかな。
      • →ひとまずis_single()で個別記事だけ表示するように変更した。
      • 個別記事ID発行のthe_ID()を使ってid名に含ませようとしたが、ぜんぜんうまく動かなかった

しかしながら、これでめっちゃくちゃ楽になるぜ!まあ、wordpress止めてpukiwikiに移行しろとかは言わないでください。

Home > Tags > wordpress


Search
Feeds
Meta

Return to page top