全記事一覧

Luxeritas 2.5.3

改善項目1個と不具合修正1個。

詳しくは後述。

改訂詳細

グローバルナビの動作改善

PC で見た時に CSS との兼ね合い(Javascript が OFF の環境でもアニメするようにしてある)で、画面遷移後にマウスがメニュー上に乗っかってると、たまーに子メニューが開いたままの状態になっちゃう状況を改善した。

プラグインを使ってもクレジットが消えないカスタマイズパターン

ver2.4.0 からのレベルダウン。
問い合わせがあったので修正(全然気づいてなかった)。

有料プラグインが動作しないカスタマイズの組み合わせ図

↑ 上記画像の組み合わせだと、ver2.4.0 以降で「Luxeritas 提供元表示消去プラグイン」を使っても、フッターのクレジットが消えない事象があったので修正。

ていうか、普通は jQuery Migrate なんてイラネーっす。

改訂履歴

  1. PC で見た時のグローバルナビの動作を改善
  2. 有料プラグインを使ってもクレジットが消えないカスタマイズの組み合わせがあったので修正(ver2.4.0 からのレベルダウン)

Luxeritas 2.5.2.4

ver2.5.2 以降の目次機能で更に別の不具合報告があったので修正して再リリース。

ほとんどローリングリリースのような状態なので、不具合が出てる人だけアップデートすりゃええんちゃいますかね?

不具合の事象としては
「目次で見出しタグの中に更に別のタグを入れると、最初の1文字目がおかしくなる。」

例:

<h2>今年も<ruby>夜露死苦<rt>よろしく</rt></ruby></h2>

正規表現が [^<]+? なので、H2 の閉じタグである </h2> よりも先に <ruby> の方がマッチしちゃうのが原因。

とりあえず、直し申した。

改訂履歴

  1. 目次で見出しタグの中に更に別のタグを入れると、最初の1文字目がおかしくなる不具合の修正

Luxeritas 2.5.2.3

ver2.5.2 で

「目次機能を使って、見出しの1文字目が半角数字だと、その1文字目が文字化けする」

という報告があったので修正。

これ、正確に事象を解説すると「文字化け」ではないんだよね。

ver2.5.2 で目次機能に関する要望事項を反映するため、id 挿入位置を判別できるように Luxeritas が挿入してる文字列がそのまま置換されずに表示されちゃってる状態。

最初の 1文字目が半角数字だった時に正規表現に引っかからず置換されてなかった模様。

他は改訂履歴のとおり。

改訂履歴

不具合修正

  1. 目次を挿入した状態で、見出し(H1~h6)の 1文字目に半角数字があると、見出しの位置判別用文字列が残ったまま表示されちゃう不具合の修正

その他

  1. HTML 文書ではなく、HTML タグ本体に 0xC2 0xA0 を埋め込んでしまうという、すげぇレアな書式ミスをしてる人がいた(← これやるとインクトミ系検索エンジンでは「文法ミス」という判定になり、古いブラウザだとタグとして認識されない。AMP でも許可されてない。)ので、AMP ページのみ 0x20 に置換してあげるようにしてみた(通常ページの方は重くしたくないから無視、投稿者の書式ミスへの対応はこれ以上ムリポ)

Luxeritas 2.5.2.2

再度ごめん。
ver2.5.2.1 で、以下の条件で AMP エラーが出ることが判明したので修正。

詳しくは後述。

AMP エラーになっちゃう条件と例

発生条件

外部リンクに external 付ける設定画面

↑ こいつにチェックがついてる状態で、外部リンクの a タグ に class が付いてるか、もしくは外部リンクの a タグ内に class 付きのタグがある

  • <a href="外部サイトの URL" class="ahoaho">(・∀・)</a>
  • <a href="外部サイトの URL"><span class="ahoaho">(・∀・)</span></a>

改訂履歴

不具合修正

  1. 外部リンクに external を付ける設定にして、外部リンクの a タグに class があるか、または class のついたタグを外部リンクの a タグで囲むと AMP エラーになるバグの修正(ver2.5.2.1 でのレベルダウン)
  2. コメントウィジェットの URL に付与してある external が class じゃなくて rel に付いちゃってたので修正

Luxeritas 2.5.2.1

ごめん、ついさっきリリースした Luxeritas 2.5.2 で、目次関連の改修でマルチバイトに対応してない部分があった。

直し申した。

Luxeritas 2.5.2

細かい解説とかメンドーくさい程度のアップデートw

主に AMP に対する仕様変更対応とか、ちょっとした要望反映など。従来ユーザーさんは、改訂履歴を読んで必要だなと思ったらアップデートする程度でよかです。

改訂履歴

仕様変更

  1. 外部リンクに external を付ける設定にしてる時、a タグ内に元から class があったら1つの class にまとめるようにした(AMP で「重要ではない問題」になるようになったので、それに対応するため)
  2. 目次を挿入した際、見出しに元から id が付いてた場合は、その id を再利用して目次を作るようにした(要望反映)
  3. サムネイル画像が存在しない場合に、サムネイルを再構築する動作を ajax 経由でバックグラウンド処理するようにした(jQuery が有効な場合のみ。jQuery が無効化されてる場合は従来通り)

不具合修正

  1. 全く同じ階層 & 全く同じ文字列の見出しがあった場合に、目次で先に現れた見出しの方にリンクされちゃう不具合の修正

Luxeritas 2.5.1

2018年
明けましておめでとうございます。

Luxeritas 2.5.1 をリリースし申した。

ちょろちょろした、機能的な拡張と仕様の変更とか。
webkit(バージョンによるけど主に Safari とか Midori)で Javascript が動かないことがある不具合修正とか。

3.x 系が手元にある状態なので、今後 2.x 系で大きな変更とかは基本的にはないと思う(たぶん)。

主な変更点

内部の仕様変更とか不具合修正とかは後述の改訂履歴を見てもらうとして、明らかに目で見て分かる部分だけ解説。

ウィジェット用 CSS の設定画面

  1. ウィジェット用の CSS 設定を通常ページ用と AMP ページ用に分けた。
  2. WordPress 標準のタグクラウドウィジェット用の CSS を追加した。

そんだけ。

改訂履歴

機能拡張

  1. ウィジェット用の CSS 読み込み有無の設定を通常用と AMP 用で別々に設定できるようにした

仕様変更

  1. WordPress の jpeg_quality のデフォルト値が何故か 90% になってて、画像アップロード時に jpeg 画像が勝手に劣化されちゃうので、テーマ側で jpeg_quality 100% になるようにした

不具合修正

  1. use strict がネストして webkit で Javascript のエラーが出ちゃうバグの修正(ver2.4.6 でのレベルダウン)
  2. webkit だとカルーセルスライダーが潰れて表示されちゃうことのあるバグの修正

その他

  1. PECL 拡張モジュールが使えない環境用の http_build_url() 代替関数を ivantcholakov/http_build_url に変更

SATA / USB3.0 変換アダプタ

以前、「Amazon からマウスが届いたんだけど」という記事を書いたけど、

今回は、ひなきさんという方から「Inateck SATA – USB3.0 変換アダプタ」をいただき申した。
ありがとうございます。

↓ 中に入ってたメッセージ

ひなきさんからのメッセージ

最初に結論から言うと、

ひなきさんって誰だ?

連絡ぷりーずw

SATA / USB 変換アダプタって何ですか?

単純に言えば、むき出しのハードディスクを USB 接続できる外付けハードディスクにできるアダプタのこと。

SATA / USB3.0 変換アダプタ接続時

当方、SATA 対応のリムーバルケースを PC 一台につき1個搭載してるけど、

↓ (3.5 インチ SATA リムーバルケースの図)

3.5インチ SATA リムーバルケース

別のハードディスクにファイルコピーや移動する際に、内蔵ハードディスクを経由するか、他の PC でネット越ししないとコピーできない。

小さいファイル等のやり取りなら問題ないけど、大きいファイルや大量のファイルをコピーする際は時間がかかっちゃう。

そーいう場合は PC の蓋を開けて直接 SATA に接続したりしてた。

↓ (蓋を開けて直接 SATA に接続してる図)

PC の蓋を開けて直接 SATA に接続してるところ

ファイルコピーのためだけに一々 PC の蓋を開けるとか、、、

めんどくさーい ヽ(`Д´)ノ

なので、ハードディスクを SATA から USB に変換できるアダプタケーブルは超便利なのでござる。

Luxeritas 2.5.0

Luxeritas 2.5.0 をリリースし申した。

一部、仕様が変更されています。
アップデートの際は「アップデートに関する注意事項」をお読み下さい。

主に ↓ こんな感じの機能拡張と内部の最適化。詳しくは後述。

  • Pinterest のシェアボタンとフォローボタンを追加
  • 画像ホバー時に Pinterest の保存ボタンを表示できるようにした(表示させないこともできる)
  • Instagram のフォローボタンを追加
  • はてブのシェアボタンをデフォルト非表示に変更(海外からのダウンロードが多いので)
  • 平均 0.2 ~ 1.0 ミリ秒程度の速度改善w
  • WP 本体の動作を安定化させようとする実験的なこころみ

機能拡張

Pinterest のシェアボタン

↓ ページ内の画像を選択してシェアできるボタン(デフォルト OFF)。

Pinterest のシェアボタンサンプル画像

また、↓ これを設定すると(デフォルト OFF)

Pinterest の設定画面

↓ 画像ホバー時に保存ボタンを表示できるようになる。

画像ホバー時の Pinterest 保存ボタン

Instagram と Pinterest のフォローボタン

ヘッダー帯メニュー

↓ 白黒・文字入り
ヘッダー帯メニューの SNS ボタン(白黒・文字入り)

↓ カラー・文字入り

ヘッダー帯メニューの SNS ボタン(カラー・文字入り)

↓ 白黒・アイコンのみ

ヘッダー帯メニューの SNS ボタン(白黒・アイコンのみ)

↓ カラー・アイコンのみ

ヘッダー帯メニューの SNS ボタン(カラー・アイコンのみ)

ウィジェット

ウィジェットのフォローボタン

内部的な最適化

widgets_init

Luxeritas 関連で使用してない Widget を register_widget しないようにしてみた。

↓ 平均で 0.0001 ~ 0.001 秒程度改善したw

単位 (msec)

widget_init の処理速度計測

0.001 秒速くなって何が嬉しいの?

ってのは気にしないw

実験的なこころみ

Luxeritas とは関係ない部分だけど、

プラグインをたくさんインストールしたら動作が不安定になっちゃった

とかいう事象を発生しにくくするこころみをしてみた(実験的に)。

WordPress ってのはメモリ上限のデフォルトが、

  • 管理画面: 256M
  • ブログ画面: 40M
  • プレビュー画面: 40M
  • カスタマイズプレビュー画面: 40M

って設定になってるんだけど、ブログ画面やプレビュー画面でメモリが不足する前に wp_raise_memory_limit をコールして管理画面と同等までメモリ制限を引き上げてメモリ不足にならないようにしたってだけ。

ただし、プラグインはテーマより前にロードされるので完全ではないw

また、wp_raise_memory_limit は WordPress 4.6.0 以降の関数なので、4.6.0 未満では何もしない。

そもそも WordPress + Luxeritas だけなら 16M 未満でも動作する ので、よほど強烈なプラグインでも入れてない限りは大した意味はない。

それ以外の修正と改善事項は改訂履歴のとおり。

アップデートに関する注意事項

アップデート後は以下に関して、設定をし直す必要があります。

  • はてブのシェアボタン

    海外からのダウンロードが多いので(特にロシアとヨーロッパ)、日本がメインプラットフォームになっているはてなブックマークのシェアボタンはデフォルトでは非表示になりました。
    はてブボタンを表示したい方は、再度、表示する設定にし直す必要があります。

  • QR コードウィジェット

    内部コードの最適化により、QR コードウィジェットの id・class 名が変更になりました。
    QR コードウィジェットをご利用の方は、再度、設置し直す必要があります。

改訂履歴

機能拡張

  1. Pinterest のシェアボタンとフォローボタンを追加
  2. Pinterest で画像ホバー時に保存ボタンを表示できるようにする機能追加
  3. Instagram のフォローボタンを追加

仕様変更

  1. はてなブックマークボタンをデフォルトで非表示に変更
  2. QR コードの id・class 名変更
  3. ファイルとディレクトリの書き込み権限チェックの方法を少し変更
  4. ヘッダー上の帯メニューが微妙にブラウザごとに違う見た目になってた(特に Firefox)ので CSS 修正

内部的な最適化

  1. WP_MEMORY_LIMIT と WP_MAX_MEMORY_LIMIT のうち常に値の大きい方で動作するようにした(ただしプラグイン読み込み後)
  2. Luxeritas オリジナルウィジェットで、使用してないウィジェットは register_widget しないようにした(0.1 ~ 1msec くらい速くなった)
  3. カスタマイズプレビューではフォントファイルの preload しないようにした(意味ないから)

不具合修正

  1. SNS 一括再構築でトップページのみ Feedly のカウントしか再構築できてなかったバグの修正(ver2.4.5 でのレベルダウン)
  2. ウィジェット管理画面で一部 Notice が出ることがあるので修正(ver2.4.7 でのレベルダウン)

brand new CORESERVER

当方が利用してるホスティングサービス CORESERVER

PHP の設定を phpinfo() で見てみたら、
デフォルトの設定値が ↓ こーなってた(2017/12/06 時点)。

コアサーバーの phpinfo の値(その1)

特に問題があるわけじゃないけど、

post_max_size の値は memory_limit と同じか memory_limit より小さい値になってるのが普通なんだよね。

なぜなら、例えば、この設定の状態で 1000M のファイルを POST しても post_max_size の制限より先に memory_limit の制限に引っかかって結局 500M までのファイルしか POST 出来ないから。

だから、PHP のリファレンスにも

http://php.net/manual/ja/ini.core.php#ini.post-max-size

一般的に memory_limit は、post_max_sizeよりも大きくする必要があります。

って書いてある。

また、upload_max_filesize の値も 1000M になってる。

コアサーバーの phpinfo の値(その2)

ファイルのアップロードサイズは post_max_size と memory_limit の両方に引っかかるので、これも意味がない。

つまり、一般的な設定では

memory_limit >= post_max_size >= upload_max_filesize

↑ こーなってるべきなんだよね。

それに、エンジニアなら普通、500 とか 1000 とかの十進数じゃなくて、二進数の倍数で 512 とか 1024 って値に設定するよなぁ。。。

まぁ、.user.ini で上書きしちゃえばええけどw