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

CM受信上限とTB受信上限

ブログを記事単位でコメント受信数とトラックバック受信数の上限が設定でき、
初期値でコメント=20、トラックバック=0となりますが、
作成済みの記事編集の際にコメントとトラックバックが逆に表示されており、そのまま再投稿すると逆になってしまっていました。

修正しました。

<table>関連の追加修正

先日ブログエディターで<table>の「セルの上下分割」「下のセルと統合」機能を利用する際に、
カーソル位置のセルの手前に2連続以上でrowspanの影響を受ける場合に2個目以降のrowspan分列位置が右にズレてしまっており修正しましたが、
同様の問題が「列削除」にもあり、修正しました。

「列追加」の際はrowspanが考慮されていなかったので、こちらも修正しました。

「行削除」は、削除する行より手前の行がrowspanにより削除する行をまたがる場合rowspanを減らしますが、手前ではなく後ろの行でもこの処理が行われていました。
こちらも修正しました。

ブログエディターの<table>関連を修正しました

ブログエディターで<table>上を右クリック時に、
  • セルの上下分割(カーソル位置のセルにrowspanが設定されている場合に利用可)
  • 下のセルと統合(カーソル位置のセルと下のセルのcolspanが同じ場合に利用可)
機能が利用できますが、
カーソル位置のセルの手前に2連続以上でrowspanの影響を受ける場合に2個目以降のrowspan分列位置が右にズレてしまっていました。
この件を修正しました。

修正して、現時点では<table>関連に問題が生じる状態は把握していませんが、
<table>にrowspanやcolspanが絡んでくる場合はタグの省略が発生するので処理対象の行位置と列位置の把握が複雑で難しいので、他にも問題が存在する可能性があります。
エディターでの<table>操作時におかしな挙動をしたら報告おねがいします。

トラックバック受信上限の初期値関連を修正しました

以前スパムトラックバック対策でブログのトラックバック受信上限の初期値を20から0に変更しましたが、
初期状態でブログ基本設定のページを開いた際20と表示されるようになっており、そのまま設定変更をすると20になる状況でした。

初期状態でブログ基本設定のページを開いた際に正しく0と表示されるように修正しました。

また、ブログ初期状態では更新通知とTwitter投稿がチェックされた状態でしたが、
この2つは通知先設定とTwitter連携が設定されていないと無効なため、初期状態では未チェックに変更しました。

"過去ログ"プラグインを更新しました

ブログの"過去ログ"プラグインがツリー表示の場合、年のリストをクリックするとその年の月一覧を展開しますが、
今までは開いたら閉じることができませんでしたが、開いている状態でクリックした場合閉じるようにして開閉式にしました。

また、今までは付き一覧の<ul>にidが設定されていましたが、idを使わずに処理するように変更したのでidは削除しました。

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

先月「検索:ハイライト」プラグインを更新しましたが、
元々記事ブロックの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もコンテキストメニュー難しいです。
以前はコンテキストメニューは出る感じだった気がするのですが、テキスト選択との関係でやっぱメニュー出にくい・・・