New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

設定 parenthesis と parenthesisClosing を統合 #3

Closed
ssahara opened this Issue May 27, 2018 · 8 comments

Comments

Projects
None yet
2 participants
@ssahara
Copy link
Contributor

ssahara commented May 27, 2018

Rubyタグ非対応ブラウザ用に、rpタグの内容として、青空文庫で使用されている全角二重山括弧「《》」を指定しています。この際に、parenthesis 設定パラメータに「開く括弧」と「閉じる括弧」をペアで一度に指定できると便利と思います。
また、parenthesis に空白を指定した場合には、<rp>タグ自体を出力しないのが良いです。

@hokkaidoperson

This comment has been minimized.

Copy link
Owner

hokkaidoperson commented May 27, 2018

ご要望ありがとうございます。後で調整します。

@hokkaidoperson

This comment has been minimized.

Copy link
Owner

hokkaidoperson commented May 29, 2018

要望として挙がっていた事項を実装し、関連箇所を更新しました。

@ssahara

This comment has been minimized.

Copy link
Contributor Author

ssahara commented May 29, 2018

@hokkaidoperson 様、
要望をご検討いただきありがとうございます。また、日本人のDokuWikiプラグイン開発者が増えてうれしく思います(当方も幾つかプラグインを作っています)。
追加コメントで恐縮ですが、ルビ非対応デバイス用の表示について、ルビテキストを囲む文字は必ずしも括弧ペアである必要はなく、例えば「※ルビ※」にしたいケースも考えられます。$conf['parentheses'] の最初と最後の文字を開く括弧と閉じる括弧と解釈して、上述のケースに対応できるようにするのはいかがでしょう。

handle()の処理結果は インストラクション・キャッシュされますので、$conf['parentheses']の処理は render() 側で行う方がキャッシュが小さくなるので効率的となりますよ。

    function render($format, Doku_Renderer $renderer, $data) {
        static $rt;
        if (!isset($rt)) {
            $rp[0] = utf8_substr($this->getConf('parentheses'), 0, 1);
            $rp[1] = utf8_substr($this->getConf('parentheses'), -1);
            $rt[0] = $rp[0] ? '<rp>'.hsc($rp[0]).'</rp><rt>'  : '<rt>';
            $rt[1] = $rp[1] ? '</rt><rp>'.hsc($rp[1]).'</rp>' : '</rt>';
        }
        $renderer->doc .= '<ruby>'.hsc($data[0]).$rt[0].hsc($data[1]).$rt[1].'</ruby>';
    }

render() は複数ページの処理に使い回されます。変数$rt をstatic 宣言しておけば、異なるページ内にルビが複数を振っていても、一回処理するだけで済みます。

@hokkaidoperson

This comment has been minimized.

Copy link
Owner

hokkaidoperson commented May 29, 2018

コメントありがとうございます。

ルビテキストを囲う表示については、「括弧ペア」とかの認識はしておらず、単純に、設定項目のテキストボックス内の文字の1文字目を左括弧、2文字目を右括弧として設定するので、テキストボックスに「※※」と入力しておけば今回の目的は満たせると思われます(コメントの意図を汲み違えていたらすみません)。

conf設定のrender内処理について、アドバイスありがとうございます。後で修正を加えます。

あと、完全なる余談ですが、自分は「開発者」と言えるほどPHPに詳しい訳ではないので、その辺はあまり期待しないでおいて下さい(汗)
今後もよろしくお願いします。

@ssahara

This comment has been minimized.

Copy link
Contributor Author

ssahara commented May 30, 2018

@hokkaidoperson
rpタグの内容は、確かに「※※」と設定すれば良いですね。現状ままで差し支えありません。
render内処理の修正は、当方からPush Requestを送るようにしても構いませんか?

@hokkaidoperson

This comment has been minimized.

Copy link
Owner

hokkaidoperson commented May 30, 2018

render内処理のPush Requestについて、了解しました。お願いします。

@ssahara

This comment has been minimized.

Copy link
Contributor Author

ssahara commented Jun 2, 2018

#4 を送りました。お時間のあるときにご確認おねがいします。

@hokkaidoperson

This comment has been minimized.

Copy link
Owner

hokkaidoperson commented Jun 2, 2018

確認・適用しました。ありがとうございます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment