無料ブログ「rentafree.net」の管理人ブログ

「検索:ハイライト」プラグインを更新しました

先月「検索:ハイライト」プラグインを更新しましたが、
元々記事ブロックのinnerHTMLを確認して一致部分を<mark>していた仕様をテキストノードだけを<mark>に置換したかったのですが、
その際は難しいと判断して断念したのですが、
再検討して何とかなりそうだったので作りなおして、コード量もそれほど増えずにできましたので変更しました。

元の仕様では、HTMLタグの破損を防ぐために、<と>の間に含まれる文字列が検索された場合はハイライトできませんでしたが、
新しい仕様では検索単語の含まれるテキストノードは全て置換されます。

新しい仕様では、テキストノードが連続しており、連続したテキストノードにまたがって検索単語が出現する場合はハイライトできませんが、
動的にテキストノードを生成しない限りはそのような事にはならないと思われますので、一致するテキストは全てハイライトされるはずです。

また、元の仕様では記事ブロック内のみがハイライト対象でしたが、
公式テンプレートでない場合は記事ブロックのclassが違う可能性がありハイライトできない可能性がありえ、また<body>全体を対象にしたほうが処理が簡単なので、
記事ブロック以外の部分はハイライトしないほうがいいかもしれませんが、<body>内全てを対象にしました。

前回の変更からですが、IE8は<mark>に対応していないためハイライトされません。

特定条件下を除き、ブログにPOSTリクエストがきた場合405を返すようにしました

ブログへのスパムトラックバック投稿目的と思われるPOSTリクエストが多いので、
特定条件下を除き、ブログにPOSTリクエストがきた場合、"405 Method Not Allowed"を返すようにしました。

ユーザードメインでのPOSTリクエストの受信は本来WIKIの編集ページ以外はありませんので、
WIKIの編集ページをユーザードメインから隔離してユーザードメイン全体でPOSTリクエストを拒否するように変更することも検討しています。

セッション認証の仕様を変更しました

ログイン時のユーザー認証関連の処理簡略化のため、先日SSLページのセッション認証の仕様を変更しクッキーの追加をしましたが、
SSLページ以外の部分も変更しました。

認証関連の仕様変更は完了です。

セッション認証の仕様変更により、セッション認証も含めここ1週間ほどログインされていない方はセッションが無効になっています。
その場合はメールアドレスとパスワードにより再ログインをおねがいします。

ブログエディターを更新しました

近いうちに更新すると告知を出していましたが、昨日に続いてブログエディターを再度更新しました。

mouseenterとmouseleaveを利用する予定で、Chromeのmouseenterとmouseleave実装がバージョン30(今29)からだったのでChromeにmouseenterとmouseleaveが実装されてから更新しようと考えていましたが、
mouseoverとmouseoutで代用しても問題無さそうなので更新しました。

今回の変更で、IE8以下を除くほとんどのブラウザが旧エディターから新エディターに移行しました。
ブラウザ対応表の方も更新しましたが、WEBの新しい機能を多数利用しているため、対応表に記載していない問題が生じるブラウザもあると思います。
主要ブラウザの最新版では問題はないと思いますが、なにか問題が生じるようになっていましたらご報告おねがいします。


あと、Androidブラウザは相変わらずテキスト選択とコンテキストメニューの両立が難しいようで全滅状態なのですが、
Android版Firefoxで<menu>を使わずに独自UIのコンテキストメニューを使うと割といい感じでした。
できれば<menu>でコンテキストメニューを拡張したいですが、PCのFirefoxとAndroidのFirefoxを判別できそうならクロスブラウザも検討します。
ただ、Android版Firefoxには上部メニューからの操作にも問題があります。

今までAndroidで編集するならChromeがベストと考えていましたが、やっぱChromeもコンテキストメニュー難しいです。
以前はコンテキストメニューは出る感じだった気がするのですが、テキスト選択との関係でやっぱメニュー出にくい・・・

ブログエディターにコンテキストメニュー周りの修正を行いました

当サービスのブログエディターで利用している<menu>に対応したブラウザがFirefoxしかないため、Firefoxのみが新エディターを利用するようにしていましたが、
<menu>がHTML5から外れてHTML5.1の機能になってしまったので、他ブラウザには当分実装されないと思われるのでブログエディターにコンテキストメニュー周りの修正を行いました。

今回の変更で、<menu>に対応したFirefox以外に、<details>に対応したブラウザ(WebkitとBlink)も新エディターが利用されるようになりました。
具体的には、Chrome 12以上とSafari 6以上が新エディターになるはずです。
新エディターでは旧エディターと機能に違いがあります。

IEは全バージョンで<menu>と<details>に対応していないため旧エディターのままですが、今後<details>を使わないように再修正して新エディター対応にするかもしれません。

Firefoxでは今回の修正で表面上の違いは発生しませんが、クロスブラウザのために新エディターの処理が変わっています。

主要ブラウザで不具合が生じるようになっていたら報告おねがいします。


既知の問題として、
今回新たに新エディターが利用されるようになったChrome等のブラウザで右クリック時に独自UIのコンテキストメニューが表示されますが、
<details>でサブメニューを開閉し縦方向に拡張する仕様にしたため、メニューの表示位置によってはサブメニューを開いた際に画面からはみ出し一部の項目が選択不能になることを把握しています。
通常のコンテキストメニューではサブメニューは開閉式ではなく、右又は左に並べて表示しますので、そのような仕様に変更するかもしれません。
ただ、左右に並べる仕様だと今度は画面の小さいタッチパネル機で左右にはみ出す問題が生じるかも・・・

SSLページのセッション認証の仕様を変更しました

先ほど告知しましたセッション認証の仕様変更ですが、
SSLページのセッション認証に変更を適用しました。

変更の際に気づいたのですが、秘密の質問設定機能に不具合があり、
ワンタイム認証を使用している際は、ワンタイム認証用のパスワード(クッキー)が一致すればIPアドレスが不一致でも操作可能なはずですが、
常にIPアドレスが不一致の場合は変更ができなくなっていました。
現在は修正されており、ワンタイムパスワード利用中はIPアドレスが不一致でも設定変更可能です。


SSL以外のセッション認証も近いうちに変更しますが、
クッキーにユーザーIDがないと再ログインが必要になるため、
クッキーの送信だけ既に行うように変更していますが、認証の仕様変更は後日にします。

Wikiのユーザー認証の仕様を変更しました

Wikiの公開ページでのユーザー認証の仕様を変更しました。

表面上は違いがわからないと思いますが、
今までは一度ログインすると長期間クッキーで認証されましたが、
セッションの有効期限がブラウザを閉じるまでかログイン後1日のどちらかまでとなりました。

「検索:ハイライト」プラグインを修正しました

ブログの検索結果ページで検索単語をハイライトするための「検索:ハイライト」プラグインを、
今までは<span>でハイライトしていましたが<mark>でハイライトするように変更しました。

<mark>はIE8は対応していません。

これまではハイライト色(標準でyellow)をプラグイン設定から指定できましたが、
設定項目は無くなりブラウザ標準機能でハイライトされます。

初期設定でトラックバック受信上限を0にしました

昨今スパムトラックバックが多発しており、攻撃に利用されるIPアドレスも1000程度はあるので特定端末を遮断することもできないため、
ブログの初期設定でトラックバック受信上限を0にしました。(従来は20)

メール投稿及びXML-RPCにより新規記事を投稿した場合トラックバック受信上限は0となります。

ブログ管理ページからの投稿の場合は、
「ブログ基本設定→新規記事初期値→TB受信上限」
で設定された値が新規記事編集ページの初期値となりますが、これも未設定の場合0としました。(従来は20)

既に設定済みのブログの設定値は変更しておりませんが、変更する可能性があります。
その場合は、「ブログ基本設定→新規記事初期値」の4項目全てを初期化することになると思います。

既に投稿済みの記事に関しては今回は変更していませんので通常20に設定されていますが、
過去に投稿済みの記事についても設定を変更する可能性があります。

ユーザーブログの設定値をこちらで変更することになった場合は再度告知致します。


また、既にスパムトラックバックを受信しているブログが多数ございますが、
トラックバックの削除を一括で削除する機能や、投稿済み記事のトラックバック受信上限設定を一括で変更する機能がないので、
これらの機能の実装を検討致します。