カテゴリ「回答/返信」に属する投稿[648件]
ジャーマンポテトを食べました。🥔🥔🥔
🥔Re:5192◆ご要望をありがとうございます。たしかに、記法ではラベルを省略可能でも、「折畳」ボタンから入力する方法だと省略できませんでしたね。これは仕様を改善しまして、下図のように(ラベルが不要なら)空欄のままでOKボタンを押せば、ラベルを省略した記法が挿入されるようにしました。次のVer 4.6.2βからお使い頂けますのでもうしばらくお待ち下さい。既にここ(いま閲覧している動作試験場)では Ver 4.6.2βが稼働していますので、投稿欄からお試し頂けます。

Ver 4.6.2βは、近日中には配布できる予定でいます。(たぶん)
🥔Re:5192◆ご要望をありがとうございます。たしかに、記法ではラベルを省略可能でも、「折畳」ボタンから入力する方法だと省略できませんでしたね。これは仕様を改善しまして、下図のように(ラベルが不要なら)空欄のままでOKボタンを押せば、ラベルを省略した記法が挿入されるようにしました。次のVer 4.6.2βからお使い頂けますのでもうしばらくお待ち下さい。既にここ(いま閲覧している動作試験場)では Ver 4.6.2βが稼働していますので、投稿欄からお試し頂けます。

Ver 4.6.2βは、近日中には配布できる予定でいます。(たぶん)
目が乾くので眼科で目薬と飲み薬をもらってきました。
しっかり、まばたきしましょう。(>_<) (O_O) (>_<) (O_O) (>_<) (O_O) (>_<) (O_O)
🥞Re:5187◆おっと、さくらインターネットでも500エラーが出てしまいますか。
以下の2点を教えて頂けますでしょうか。 (追記)➡ No.5189に書いた点が問題だろうと思いますのでそちらをお試し下さい。
➊Perlのバージョンは何でしょうか?
➋同一サーバ内に新しいディレクトリを作成して、てがろぐVer 4.6.xをそこに新規セットアップした場合でも、500エラーになりますか?
しっかり、まばたきしましょう。(>_<) (O_O) (>_<) (O_O) (>_<) (O_O) (>_<) (O_O)
🥞Re:5187◆おっと、さくらインターネットでも500エラーが出てしまいますか。
➊Perlのバージョンは何でしょうか?
てがろぐ管理画面HOMEで、Perlのバージョンを知る方法
➋同一サーバ内に新しいディレクトリを作成して、てがろぐVer 4.6.xをそこに新規セットアップした場合でも、500エラーになりますか?
なる場合:
サーバのエラーログを見せて頂けるとありがたいです。
500エラーが出た直後に、サーバのエラーログ画面を表示すると、下端付近にtegalog.cgi関連のエラーが記録されていると思います。その内容を教えて下さい。(ここに書いて下さっても良いですし、メールで送って下さっても良いです。)
※サーバのエラーログは、以下の手順で閲覧できます。
さくらインターネットのコントロールパネルにログインして、左端のメニューから[サーバーステータス]→[アクセスログ]とたどり、「エラーログ」という区画にある「本日のエラーログ」ボタンを押すと、下図のような画面になります。

ここには、直近に発生したエラーが1000件まで表示されています。(最新のデータは下端)
ここで、もし右端にスクロールバーが見えている場合は下端までスクロールして下さい。
おそらくその最下行あたりに、tegalog.cgiかfumycts.pl関連で何らかのエラーが出ていると思います。(※複数行ある可能性があります。)
それをコピーして教えて下さい。
※どれなのか判別できない場合は、丸ごとメール等で送って下さっても良いです。
※先にエラーを発生させないとログに出てこない点にご注意下さい。コントロールパネルを表示させた後にエラーを出した場合は、この画面に見える「更新」ボタンを押して下さい。
500エラーが出た直後に、サーバのエラーログ画面を表示すると、下端付近にtegalog.cgi関連のエラーが記録されていると思います。その内容を教えて下さい。(ここに書いて下さっても良いですし、メールで送って下さっても良いです。)
※サーバのエラーログは、以下の手順で閲覧できます。
さくらインターネットのコントロールパネルにログインして、左端のメニューから[サーバーステータス]→[アクセスログ]とたどり、「エラーログ」という区画にある「本日のエラーログ」ボタンを押すと、下図のような画面になります。

ここには、直近に発生したエラーが1000件まで表示されています。(最新のデータは下端)
ここで、もし右端にスクロールバーが見えている場合は下端までスクロールして下さい。
おそらくその最下行あたりに、tegalog.cgiかfumycts.pl関連で何らかのエラーが出ていると思います。(※複数行ある可能性があります。)
それをコピーして教えて下さい。
※どれなのか判別できない場合は、丸ごとメール等で送って下さっても良いです。
※先にエラーを発生させないとログに出てこない点にご注意下さい。コントロールパネルを表示させた後にエラーを出した場合は、この画面に見える「更新」ボタンを押して下さい。
ならない場合:
(今メインでお使いになっている方の)てがろぐ設置ディレクトリにある tegalog.ini ファイルをメールで送って頂けると何らかの調査ができます。
昼食はそうめん。🧊🧊🧊
🧊Re:5181◆なるほど、新たな視点をどうもありがとうございます! 投稿からの経過時間に応じて表示を変えるという発想はありませんでした。今のところ経過時間に応じて表示/非表示が切り替わるような機能はないのですが、[[DATE:~]]記法に『投稿からの経過秒数』を得られるようなオプションを加えてみましょうかね? そうすると、JavaScriptを使って簡単に経過時間が判別できるので、JavaScriptで表示/非表示を切り替えられるでしょうし。
(追記) ➡もっと良い方法を No.5185 さんが提示して下さいましたので、それを実現するソースを No.5186 に書きましたからそちらをご覧下さい。
🧊Re:5182◆そうですね。Skebサイトに久しぶりにアクセスしたとき、ほんの数秒間くらいだけ『繰り返し表示される場合はCookieを有効にしてください』のような表示が出ますよね。なので、Skebのページをまともに閲覧するには、Cookieを使ったセッション確認的なものが必須なんだと思います。(つまり、Cookieを受け入れる仕組みを持ったユーザエージェント以外でアクセスすると中身が見えない。)
Skebは、利用規約でプログラムによる自動アクセスを禁止していますが、単に禁止と言うだけではなくて、技術的にもアクセスを拒否する仕組みを用意しているということでしょうね。
そもそも、人間がブラウザでアクセスしても、Skebのページって「JavaScript前提」になっているんですよね。HTMLソースを表示させても、Skebページ内に見えている日本語文字が出てきません。^^;
なので、Skebは「Cookieを受け入れた上で、JavaScriptが実行できる環境」(要するに一般的なブラウザ)からのアクセスしか受け付けない実装になっているのではないかと思います。
……とはいえ、Twitter Cardっぽい情報の欠片みたいなのはHTMLソースに含まれていますから、Skeb側が認めたSNS等からOGPを参照された場合には正しく情報を返すような仕組みが(Skeb側に)用意されているのかもしれません。
任意のWebサイトからSkebのOGPを読んでリンクカードを作るのは、たぶん諦めるほかないのではないかな……と思います。(もしかしたらSkeb側が何かAPIを用意しているかもしれないのですが、軽く探してみた限りでは見つけられませんでした。もし何か公式情報があるようでしたら教えて下さい。)
🧊Re:5181◆なるほど、新たな視点をどうもありがとうございます! 投稿からの経過時間に応じて表示を変えるという発想はありませんでした。今のところ経過時間に応じて表示/非表示が切り替わるような機能はないのですが、[[DATE:~]]記法に『投稿からの経過秒数』を得られるようなオプションを加えてみましょうかね? そうすると、JavaScriptを使って簡単に経過時間が判別できるので、JavaScriptで表示/非表示を切り替えられるでしょうし。
《補足》現状でもJavaScriptで実現できなくはない話
なお、現状でも、JavaScriptで const $pastTimeStr = "[[DATE:A]]"; のように書くと、変数 $pastTimeStr には「5秒前」や「10分前」や「3時間前」や「2日前」のような文字列が入ります。
事前に、てがろぐ管理画面の[設定]→[ページの表示]→【経過時間(相対時間)の表記】で、『1時間以上 24 時間未満なら「時間」で表示』のように、24時間を超えると「日」単位で表示されるように設定を変更しておけば、24時間が経過した時点で「2日前」という表示になります。
とすると、この変数$pastTimeStrの中に「秒」か「分」か「時間」という漢字が含まれていなければ、投稿から24時間以上が経過していると判断できます。
これを使って、(例えば相対時間表記の部分に <span id="pastTime[[POSTID]]">[[DATE:(A)]]</span> のような感じで、その要素を特定できる何らかのid名を割り振っておけば)JavaScriptで表示/非表示を切り替えることはできそうに思います。
事前に、てがろぐ管理画面の[設定]→[ページの表示]→【経過時間(相対時間)の表記】で、『1時間以上 24 時間未満なら「時間」で表示』のように、24時間を超えると「日」単位で表示されるように設定を変更しておけば、24時間が経過した時点で「2日前」という表示になります。
とすると、この変数$pastTimeStrの中に「秒」か「分」か「時間」という漢字が含まれていなければ、投稿から24時間以上が経過していると判断できます。
これを使って、(例えば相対時間表記の部分に <span id="pastTime[[POSTID]]">[[DATE:(A)]]</span> のような感じで、その要素を特定できる何らかのid名を割り振っておけば)JavaScriptで表示/非表示を切り替えることはできそうに思います。
(追記) ➡もっと良い方法を No.5185 さんが提示して下さいましたので、それを実現するソースを No.5186 に書きましたからそちらをご覧下さい。
🧊Re:5182◆そうですね。Skebサイトに久しぶりにアクセスしたとき、ほんの数秒間くらいだけ『繰り返し表示される場合はCookieを有効にしてください』のような表示が出ますよね。なので、Skebのページをまともに閲覧するには、Cookieを使ったセッション確認的なものが必須なんだと思います。(つまり、Cookieを受け入れる仕組みを持ったユーザエージェント以外でアクセスすると中身が見えない。)
Skebは、利用規約でプログラムによる自動アクセスを禁止していますが、単に禁止と言うだけではなくて、技術的にもアクセスを拒否する仕組みを用意しているということでしょうね。
そもそも、人間がブラウザでアクセスしても、Skebのページって「JavaScript前提」になっているんですよね。HTMLソースを表示させても、Skebページ内に見えている日本語文字が出てきません。^^;
なので、Skebは「Cookieを受け入れた上で、JavaScriptが実行できる環境」(要するに一般的なブラウザ)からのアクセスしか受け付けない実装になっているのではないかと思います。
……とはいえ、Twitter Cardっぽい情報の欠片みたいなのはHTMLソースに含まれていますから、Skeb側が認めたSNS等からOGPを参照された場合には正しく情報を返すような仕組みが(Skeb側に)用意されているのかもしれません。
任意のWebサイトからSkebのOGPを読んでリンクカードを作るのは、たぶん諦めるほかないのではないかな……と思います。(もしかしたらSkeb側が何かAPIを用意しているかもしれないのですが、軽く探してみた限りでは見つけられませんでした。もし何か公式情報があるようでしたら教えて下さい。)
朝食はサンドイッチ。🥪🥪🥪
🥪Re:5178◆おっしゃるとおり、30MBというのは「サーバへのアップロード時の連続通信を切る閾値」でしかなく「扱えるサイズの上限」というわけではありません。なので、FTP等の別手段でUPした場合は、30MBを超えていても(てがろぐ側が扱う上では)問題はありません。その画像を [PICT:~]で表示させても問題ありませんし、画像管理画面に出しても問題はありません。
仕様上の上限があるのは、●CGI側の処理がサーバに負荷を掛けすぎていると解釈されないようにするため、●誤って巨大なファイルをUPしてしまわないため、●未知の不具合で莫大なファイルがUPされてしまうようなケースがあった場合の被害を軽減するため、などが理由ですが、その閾値を30MBに設定しているのは「まあ、それくらいを超えるファイルをUPする需要はないだろう」という予想からでしかありません。(^_^;) よほどそれでは不足するようなら見直しも考えます。(プログラムの起動時点で上限を固定しておく必要があるので、設定画面等でユーザが自由に変更できるようには作れないので。)
🥪Re:5178◆おっしゃるとおり、30MBというのは「サーバへのアップロード時の連続通信を切る閾値」でしかなく「扱えるサイズの上限」というわけではありません。なので、FTP等の別手段でUPした場合は、30MBを超えていても(てがろぐ側が扱う上では)問題はありません。その画像を [PICT:~]で表示させても問題ありませんし、画像管理画面に出しても問題はありません。
仕様上の上限があるのは、●CGI側の処理がサーバに負荷を掛けすぎていると解釈されないようにするため、●誤って巨大なファイルをUPしてしまわないため、●未知の不具合で莫大なファイルがUPされてしまうようなケースがあった場合の被害を軽減するため、などが理由ですが、その閾値を30MBに設定しているのは「まあ、それくらいを超えるファイルをUPする需要はないだろう」という予想からでしかありません。(^_^;) よほどそれでは不足するようなら見直しも考えます。(プログラムの起動時点で上限を固定しておく必要があるので、設定画面等でユーザが自由に変更できるようには作れないので。)
昼食のパスタでおなかいっぱい。ぐっふぅ。_(┐「ε:)_
🍝Re:5176◆詳細な背景情報をありがとうございます。よく分かりました。日付欄の常時表示ができるような設定も、ToDoリストには含めておきます。
300件もの移行作業を手動でとは頑張りましたね。^^;
以下は、今後や同様のことをしようとされている方々に向けた余談のようなものです。参考までに記します。
エクスポート機能がなかったとのことですが、エクスポート機能がなくても表示ページのHTMLをローカルにファイルとして保存することは可能ですから、私なら以下のような「データ変換のための使い捨てプログラム」をChatAIに作ってもらって実行します。
上記のプロンプトを使ってChatGPTに生成してもらった結果が https://chatgpt.com/share/6828044f-0eec-800b-bdcc-9269... です。
元ページの構造に応じて指示は変える必要がありますから、このまま使えるわけではありませんけども。(元データとして書いた内容がテキトーなので動作確認はしていませんが(しようがありませんから)。生成されたcleanHtmlBody関数の中で若干無駄なことをしている気もしますが、まあ概ね問題なさそうな気がします。^^; 元データがHTMLの文法に正確には従っていない場合は「DOMDocumentを使わずに、正規表現で抽出して下さい」的な指示を加える必要はあるかもしれませんけども。)
こういう感じで、『元HTMLソースから情報を抽出して、てがろぐのデータ形式に変換する』プログラムを用意すれば、自力で1つ1つ移行するよりも楽に済みます。(生成されたデータを、既存の tegalog.xml にペーストするだけで済みます。※もちろん、うまくいかなかった場合に備えて元の tegalog.xml ファイルはバックアップ保存しておいて下さい。)
ここでは、元データがローカルにHTMLファイルとして存在していることを前提にしています。
この手のプログラムに「ネット上から情報を取ってくる処理」自体を含めてはいけません。試行錯誤する過程で毎回ネットから情報を取ってきてしまうと、サーバに無駄な負荷がかかるからです(時間もかかりますし)。
データさえローカルに保存してあればいくらでも試行錯誤できますから、「ネットからデータを取ってくる処理」と「取ってきたデータを加工する処理」は分ける方が望ましいでしょう。
「ネットからデータを取ってくる処理」は、数が少なければ自力で(ブラウザで当該ページを表示させて [Ctrl]+[S] を押すとかで)保存しても良いでしょうし、それ用の使い捨てプログラムを別途用意しても良いでしょう。
(※ただし、そのようなプログラムを他人のサイトに対して実行すると、凄まじく迷惑なスクレイピングプログラムになりますので、自分に100%の使用権があるサーバに対してだけ実行して下さい。共用サーバの場合は「1件のURLにアクセスするたびに、数秒間の待機時間を設ける」的な緩和措置を含める方が望ましいです。)
プログラミング言語にはここではPHPを使いましたが、もちろん(ローカルで実行できる言語なら)何でも都合の良いものを指定すれば良いです。
自身が読んで理解できない言語だと実行するのは安全とは限りませんし細かな調整が利きませんから、理解できる言語が望ましいですね。
「プログラミング言語は何もわからん……」という場合にはまあ使えませんが。^^;(なので、これは何かしらプログラミング言語が分かる人向けの話です。)
「AIにプログラムを生成してもらうのではなく、AIに直接データを整形してもらえば……?」という意見もあるかもしれませんが、作業量が多いとAIは割と手を抜くので、数百件ものデータを処理させると(本当に正確に移行したのかどうか)確認するのが面倒なので、「整形のためのプログラム」を生成するに留める方が確実だと思っています。少なくとも今のところは。^^;
AIそのものをローカルで実行できるようになれば、何もかもをAIに任せる選択も採りやすくなるかもしれませんけどもね。(いくらでも試行錯誤できる点で。)
畳む
🍝Re:5176◆詳細な背景情報をありがとうございます。よく分かりました。日付欄の常時表示ができるような設定も、ToDoリストには含めておきます。
300件もの移行作業を手動でとは頑張りましたね。^^;
以下は、今後や同様のことをしようとされている方々に向けた余談のようなものです。参考までに記します。
エクスポート機能がなかったとのことですが、エクスポート機能がなくても表示ページのHTMLをローカルにファイルとして保存することは可能ですから、私なら以下のような「データ変換のための使い捨てプログラム」をChatAIに作ってもらって実行します。
ローカルにある複数のHTMLファイルから情報を抽出して、別のブログツールに結合するためのデータを作るプログラムをPHPで書こうとしています。どのようなソースコードを書けば良いか教えて下さい。
以下の手順での処理が必要です。
1. サブディレクトリ OldBlog にあるすべてのHTMLファイルから以下の情報を抽出する。
(a) ページタイトル : title要素の中身を取得。
(b) 投稿日時 : <span class="postdate">~</span>の中身を取得。
(c) 本文 : <div class="post">~</div>の中身を取得。
2. 投稿日時を整形する。
元データの投稿日時は「 2025年5月17日(土) 12時18分 」のような日本語形式で書かれています。これを YYYY/MM/DD hh:mm:ss 形式に整形します。西暦は必ず4桁で、それ以外はすべて必ず2桁にする必要があります。
3. 本文を整形する。
本文として取得した内容にHTMLタグが含まれている場合は、改行以外のHTMLタグをすべて削除します。
また、改行タグはすべて <br /> に統一します。
改行コードもすべて削除して、データが1行になるようにします。
4. 移行先ブログツール用のデータを生成する
手順1~3で用意したデータを1件ずつ、以下のような1行のデータに変換します。
<log><date>日付</date><id>連番</id><user>admin</user><cat></cat><flag></flag><comment>本文</comment></log>
「日付」部分には、2で作成した YYYY/MM/DD hh:mm:ss 形式の日付を入れます。
「連番」部分には、半角数値で 10001 から始まる番号を入れます。
「本文」部分には、3で整形した文字列を入れます。
それ以外の文字列は上記のまま使います。畳む
上記のプロンプトを使ってChatGPTに生成してもらった結果が https://chatgpt.com/share/6828044f-0eec-800b-bdcc-9269... です。
元ページの構造に応じて指示は変える必要がありますから、このまま使えるわけではありませんけども。(元データとして書いた内容がテキトーなので動作確認はしていませんが(しようがありませんから)。生成されたcleanHtmlBody関数の中で若干無駄なことをしている気もしますが、まあ概ね問題なさそうな気がします。^^; 元データがHTMLの文法に正確には従っていない場合は「DOMDocumentを使わずに、正規表現で抽出して下さい」的な指示を加える必要はあるかもしれませんけども。)
こういう感じで、『元HTMLソースから情報を抽出して、てがろぐのデータ形式に変換する』プログラムを用意すれば、自力で1つ1つ移行するよりも楽に済みます。(生成されたデータを、既存の tegalog.xml にペーストするだけで済みます。※もちろん、うまくいかなかった場合に備えて元の tegalog.xml ファイルはバックアップ保存しておいて下さい。)
ここでは、元データがローカルにHTMLファイルとして存在していることを前提にしています。
この手のプログラムに「ネット上から情報を取ってくる処理」自体を含めてはいけません。試行錯誤する過程で毎回ネットから情報を取ってきてしまうと、サーバに無駄な負荷がかかるからです(時間もかかりますし)。
データさえローカルに保存してあればいくらでも試行錯誤できますから、「ネットからデータを取ってくる処理」と「取ってきたデータを加工する処理」は分ける方が望ましいでしょう。
「ネットからデータを取ってくる処理」は、数が少なければ自力で(ブラウザで当該ページを表示させて [Ctrl]+[S] を押すとかで)保存しても良いでしょうし、それ用の使い捨てプログラムを別途用意しても良いでしょう。
(※ただし、そのようなプログラムを他人のサイトに対して実行すると、凄まじく迷惑なスクレイピングプログラムになりますので、自分に100%の使用権があるサーバに対してだけ実行して下さい。共用サーバの場合は「1件のURLにアクセスするたびに、数秒間の待機時間を設ける」的な緩和措置を含める方が望ましいです。)
プログラミング言語にはここではPHPを使いましたが、もちろん(ローカルで実行できる言語なら)何でも都合の良いものを指定すれば良いです。
自身が読んで理解できない言語だと実行するのは安全とは限りませんし細かな調整が利きませんから、理解できる言語が望ましいですね。
「プログラミング言語は何もわからん……」という場合にはまあ使えませんが。^^;(なので、これは何かしらプログラミング言語が分かる人向けの話です。)
「AIにプログラムを生成してもらうのではなく、AIに直接データを整形してもらえば……?」という意見もあるかもしれませんが、作業量が多いとAIは割と手を抜くので、数百件ものデータを処理させると(本当に正確に移行したのかどうか)確認するのが面倒なので、「整形のためのプログラム」を生成するに留める方が確実だと思っています。少なくとも今のところは。^^;
AIそのものをローカルで実行できるようになれば、何もかもをAIに任せる選択も採りやすくなるかもしれませんけどもね。(いくらでも試行錯誤できる点で。)
畳む
そういえば最近、クロワッサンを食べていないな……。🥐🥐🥐
🥐Re:5161◆ご要望の背景説明をありがとうございます。ご要望としては記録しておきますが、「最初の画面に任意の案内文を表示する機能」と「ログインフォームの下部に任意の案内文を表示する機能」の2つが既にある状況で、さらに上にも表示できるようにする機能を用意するのは、よほど需要がない限りはToDoリストの前方には来ないと思いますので、案内文面をどうにか工夫してご対処頂くのが現実的だろうと思います。
🥐Re:5162◆英数字1文字の検索でカード型リンクが表示されなくなる問題は(こちらのローカルにある版では)修正しましたので、次のバージョンでは解決します。公開までもうしばらくお待ち下さい。◆No.5150の詳細説明もありがとうございます。もしかして、下記のような「1行単位のフリースペース」的なものが別途存在したら便利でしょうかね?
sakura:さくら
tomoyo:ともよ
……のように登録しておくと、[[FREELINE:sakura]]の記述で「さくら」が出力されるような。既存のフリースペースを名前付きに改修するのはちょっと困難なのですが、短いリンクリストの掲載にフリースペースを使われているケースがちらほらありますので、そういうのに活用できる(1行単位で完結する)自由入力欄もあると便利なのかな……とちょっと考えてはいました(まだ何も予定はしていないのですけども)。そうすると、
link1name:ほげほげ
link1url:https://www.example.com/
link2name:ひげひげ
link2url:https://www.example.org/
のように書くだけで、リンクリストとして掲載できるようにスキンを作っておくこともできるかな……とか。まあ、この方法だと総数が可変長にはなりませんけども。^^;
🥐Re:5163◆いろいろ方法を試して下さってありがとうございました。そういった試行錯誤の過程が見られたからこそ、専用機能の実装を考えられた面もありますので、とてもありがたいです。Amazonギフト券もどうもありがとうございました!(╹◡╹)ノ
🥐Re:5164◆お役に立っているようで嬉しいです~。^^
🥐Re:5165◆お役立ちサイトなので、不届きなBotによるスクレイピングも多いのではないかと想像します。もしサーバ負荷が高まっていることが522エラーの要因になっているようなら、既にお使いなら良いのですけども、高頻度アクセス制限機能(迷惑Bot対策機能)がありますので、シビアな設定でお使いになるとサーバ負荷を多少は軽減できると思います。(※Durationの値が大きい方がペナルティ時間を長くできます。私の「今日のひとこと」では、今はDuration=600・LimitFreq=10を設定してあります。) 【追記】ああ、そうか。Cloudflareということは、CDNをお使いですかね? もしそうだとしたら、この機能は併用できませんね。(^_^:) CDNから配信される場合は、アクセス元のIPアドレスが常に同じになりますので、IPベースではブロックできませんから。
🥐Re:5165◆情報をどうもありがとうございます! たしかに、「全文検索時でも隠す機能を有効にする」がONのとき、半角英数字1文字だけを検索すると、続きを読む関連のJavaScriptの実行も妨げられてしまいますね。こちらのローカルにあるプログラムは修正しましたので、次のバージョンでは解消します。お知らせ下さってありがとうございました!
🥐Re:5166◆自己解決ありがとうございます。[Ctrl]+[U]等で閲覧できるソースの方をご覧頂くと分かりますが、「続きを読む」ボタンのa要素にはURLは含まれていません。通常のページ内リンクと同様に、単に <a href="#readmore" ~ > のようになっているだけです。リンクの上にマウスポインタを載せてリンク先を確認するとURLが見えますが、それはブラウザ側が自動的に補完しているだけです。ただ、てがろぐ側の設定もいろいろありますので、もしかしたらURLが出力されるような状況もあるのかもしれませんが(^_^;)。もし本当にURLが出力されているようでしたら教えて下さい。そうでないなら、原因は別のところにありそうな気がします。(とはいえ、まさしく正攻法で自己解決なさっていますから、問題ないわけですけども。)
指定範囲を隠す機能を、現状の「a要素+JavaScript」ではなく、「details+summary要素」で出力できるオプションも用意した方が良いのかな、という気もします。(details要素はspan要素の内側には書けないので、文字装飾の入れ子構造によっては文法的に正しくなくなる懸念があるので実装は見送っていたのですけども、まあ「分かっている人だけが使ってくれれば良い」と考えることもできますしね……。)
🥐Re:5161◆ご要望の背景説明をありがとうございます。ご要望としては記録しておきますが、「最初の画面に任意の案内文を表示する機能」と「ログインフォームの下部に任意の案内文を表示する機能」の2つが既にある状況で、さらに上にも表示できるようにする機能を用意するのは、よほど需要がない限りはToDoリストの前方には来ないと思いますので、案内文面をどうにか工夫してご対処頂くのが現実的だろうと思います。
🥐Re:5162◆英数字1文字の検索でカード型リンクが表示されなくなる問題は(こちらのローカルにある版では)修正しましたので、次のバージョンでは解決します。公開までもうしばらくお待ち下さい。◆No.5150の詳細説明もありがとうございます。もしかして、下記のような「1行単位のフリースペース」的なものが別途存在したら便利でしょうかね?
sakura:さくら
tomoyo:ともよ
……のように登録しておくと、[[FREELINE:sakura]]の記述で「さくら」が出力されるような。既存のフリースペースを名前付きに改修するのはちょっと困難なのですが、短いリンクリストの掲載にフリースペースを使われているケースがちらほらありますので、そういうのに活用できる(1行単位で完結する)自由入力欄もあると便利なのかな……とちょっと考えてはいました(まだ何も予定はしていないのですけども)。そうすると、
link1name:ほげほげ
link1url:https://www.example.com/
link2name:ひげひげ
link2url:https://www.example.org/
のように書くだけで、リンクリストとして掲載できるようにスキンを作っておくこともできるかな……とか。まあ、この方法だと総数が可変長にはなりませんけども。^^;
🥐Re:5163◆いろいろ方法を試して下さってありがとうございました。そういった試行錯誤の過程が見られたからこそ、専用機能の実装を考えられた面もありますので、とてもありがたいです。Amazonギフト券もどうもありがとうございました!(╹◡╹)ノ
🥐Re:5164◆お役に立っているようで嬉しいです~。^^
🥐Re:5165◆お役立ちサイトなので、不届きなBotによるスクレイピングも多いのではないかと想像します。もしサーバ負荷が高まっていることが522エラーの要因になっているようなら、
🥐Re:5165◆情報をどうもありがとうございます! たしかに、「全文検索時でも隠す機能を有効にする」がONのとき、半角英数字1文字だけを検索すると、続きを読む関連のJavaScriptの実行も妨げられてしまいますね。こちらのローカルにあるプログラムは修正しましたので、次のバージョンでは解消します。お知らせ下さってありがとうございました!
🥐Re:5166◆自己解決ありがとうございます。[Ctrl]+[U]等で閲覧できるソースの方をご覧頂くと分かりますが、「続きを読む」ボタンのa要素にはURLは含まれていません。通常のページ内リンクと同様に、単に <a href="#readmore" ~ > のようになっているだけです。リンクの上にマウスポインタを載せてリンク先を確認するとURLが見えますが、それはブラウザ側が自動的に補完しているだけです。ただ、てがろぐ側の設定もいろいろありますので、もしかしたらURLが出力されるような状況もあるのかもしれませんが(^_^;)。もし本当にURLが出力されているようでしたら教えて下さい。そうでないなら、原因は別のところにありそうな気がします。(とはいえ、まさしく正攻法で自己解決なさっていますから、問題ないわけですけども。)
指定範囲を隠す機能を、現状の「a要素+JavaScript」ではなく、「details+summary要素」で出力できるオプションも用意した方が良いのかな、という気もします。(details要素はspan要素の内側には書けないので、文字装飾の入れ子構造によっては文法的に正しくなくなる懸念があるので実装は見送っていたのですけども、まあ「分かっている人だけが使ってくれれば良い」と考えることもできますしね……。)
最近、たこ焼きを食べていないな……。
🧀Re:5153,5159◆自己解決ありがとうございます。なるほど、確かに上書きCSSを強制出力する場合は、</head>タグの存在が「INCLUDE記法で読み込まれる側」にあると挿入できませんね。これは、上書きCSSの挿入処理が以下のような順序になっているためです。
たとえhead要素部分をINCLUDE記法で合成していても、上書きCSSを[[FREE:EXTRACSS]]の位置に出力する設定にしている場合には問題なく出力されると思います。(そのスキンに[[FREE:EXTRACSS]]を書いていれば、の話ですが。)
なぜ上記のように処理を①・③のように2分割しているのかは思い出せないのですが(^_^;)、あえて処理を1箇所で済ませずに2箇所に分割しているということは、何かそうしないとマズい理由があったんだろうと思いますので、今のところは「仕様」ということでご解釈下さい。
フリースペースの設定で「▼上書きスタイルシートを出力する対象」項目の設定値を『外側スキンに [[FREE:EXTRACSS]] の記述がある箇所にのみ出力する』にすれば、どのように合成していても強制出力できると思います。(事前に[[FREE:EXTRACSS]]を書いておく必要がありますが。)
あと、ご提示頂いたサンプルですが、アクセスしたタイミングが悪かったのか、Cloudflareの522エラー(Connection Timed Out)で閲覧できませんでした。^^; 参考までにキャプチャを置いておきます。

🧀Re:5154,5156◆No.5155さんがご提示下さったヘルプドキュメントにあるこの設定箇所が今のところの正攻法ですね。ログインフォームの上ではなく下に出ますが。下だとそんなに問題あります?
🧀Re:5155◆サポートありがとうございます!(╹◡╹)ノ
🧀Re:5157◆てがろぐの表示は、お使いのスキンによって如何様にも変化させられますので、表示上の問題がある場合は、少なくとも「どのスキンを使っているのか」の情報が必要です。もしスキンをカスタマイズして使っている場合は、実際のページのURLを教えて頂く必要があります。(実際に見てみなければ、何が問題なのかが分かりませんし、その対処法も探りようがないからです。)
🧀Re:5158◆ご報告と、分かりやすいスクリーンショットをありがとうございます。カード型リンクを構築するためのJavaScriptソースも全文検索対象になってしまっているために、「s」とか「i」みたいな半角の英数記号1文字を検索すると、(検索語を強調するためのタグが挿入されることで)JavaScriptソースが崩れてしまうためにカード型リンクの処理が失敗しますね。そこまでは考慮していませんでした。^^; 検索語が全角文字なら(または半角文字でも数文字以上ならばあまり)問題ないだろうとは思いますが。ちょっと対処を何か考えます(※現行バージョンでは対処方法はありません)。まさかそんな問題があったとは。^^; ご報告をありがとうございました!
🧀Re:5153,5159◆自己解決ありがとうございます。なるほど、確かに上書きCSSを強制出力する場合は、</head>タグの存在が「INCLUDE記法で読み込まれる側」にあると挿入できませんね。これは、上書きCSSの挿入処理が以下のような順序になっているためです。
- まず、表示に使うスキンファイルを読み込む。もし上書きCSSを</head>直前に強制出力する設定(状況)の場合は、この時点で</head>を見つけて追記する。
- スキン内にINCLUDE記法があれば、その合成処理をする。
- 上書きCSSを[[FREE:EXTRACSS]]の位置に出力する設定(状況)の場合は、それを見つけて置き換える。
たとえhead要素部分をINCLUDE記法で合成していても、上書きCSSを[[FREE:EXTRACSS]]の位置に出力する設定にしている場合には問題なく出力されると思います。(そのスキンに[[FREE:EXTRACSS]]を書いていれば、の話ですが。)
なぜ上記のように処理を①・③のように2分割しているのかは思い出せないのですが(^_^;)、あえて処理を1箇所で済ませずに2箇所に分割しているということは、何かそうしないとマズい理由があったんだろうと思いますので、今のところは「仕様」ということでご解釈下さい。
フリースペースの設定で「▼上書きスタイルシートを出力する対象」項目の設定値を『外側スキンに [[FREE:EXTRACSS]] の記述がある箇所にのみ出力する』にすれば、どのように合成していても強制出力できると思います。(事前に[[FREE:EXTRACSS]]を書いておく必要がありますが。)
あと、ご提示頂いたサンプルですが、アクセスしたタイミングが悪かったのか、Cloudflareの522エラー(Connection Timed Out)で閲覧できませんでした。^^; 参考までにキャプチャを置いておきます。

🧀Re:5154,5156◆No.5155さんがご提示下さったヘルプドキュメントにあるこの設定箇所が今のところの正攻法ですね。ログインフォームの上ではなく下に出ますが。下だとそんなに問題あります?
🧀Re:5155◆サポートありがとうございます!(╹◡╹)ノ
🧀Re:5157◆てがろぐの表示は、お使いのスキンによって如何様にも変化させられますので、表示上の問題がある場合は、少なくとも「どのスキンを使っているのか」の情報が必要です。もしスキンをカスタマイズして使っている場合は、実際のページのURLを教えて頂く必要があります。(実際に見てみなければ、何が問題なのかが分かりませんし、その対処法も探りようがないからです。)
🧀Re:5158◆ご報告と、分かりやすいスクリーンショットをありがとうございます。カード型リンクを構築するためのJavaScriptソースも全文検索対象になってしまっているために、「s」とか「i」みたいな半角の英数記号1文字を検索すると、(検索語を強調するためのタグが挿入されることで)JavaScriptソースが崩れてしまうためにカード型リンクの処理が失敗しますね。そこまでは考慮していませんでした。^^; 検索語が全角文字なら(または半角文字でも数文字以上ならばあまり)問題ないだろうとは思いますが。ちょっと対処を何か考えます(※現行バージョンでは対処方法はありません)。まさかそんな問題があったとは。^^; ご報告をありがとうございました!
アイスを買おうかな、とうしようかな……と迷ったものの、まだ冷凍庫に多少の備蓄があるので今日は買いませんでした。🍨🍨🍨
🍨Re:5137◆フォーム部分のHTMLも含めて全体的なソースを教えて頂ければもうちょっと具体的にご案内できる可能性もありますが、現時点でもIF文で実現はできているのなら、汎用いいねボタンツールのリリースをお待ち頂くのも良いと思います。まだ何も作り始めていない段階ですが(^_^;)、作る計画ではいますので。^^;
🍨Re:5138◆昔は様々なWebサイトに掲示板がたくさんありましたよね。^^;
🍨Re:5139◆おそらく、何らかの要因でライセンスコードの登録機能部分に余計な文字列が入ったのでしょうね。Ver 4.6.0では解消するように改善してみましたのでお試し下さい。(おそらくバージョンアップするだけで解消すると思いますが、もしかしたら設定の保存操作(設定は何も変更しなくて良いです)が必要かもしれません。)
🍨Re:5140◆ご要望をありがとうございます! 参考にさせて頂きます!
🍨Re:5141◆ディスプレイは少なくとも2台あると便利ですよ! そもそもデスクトップは広ければ広いほど良いです。(笑) 単純に広いディスプレイよりも、ディスプレイが物理的に複数あると、ウインドウを最大化したときにディスプレイ単位で最大化できる点も便利です。ゲーミングPCなら5インチベイがたぶん複数あるでしょうからBlu-rayドライブを内蔵させることもできると思いますが、まあ最近は光メディアの使用頻度も高くないでしょうから、USB接続で外付けの小型Blu-rayドライブの方が便利かもしれませんね。どちらにしても数千円で買えるでしょうし。なお、再生ソフトが付属しているかどうかを確認して買う方が良いと思います。
🍨Re:5142◆その不具合は >>5124,5125 の問題だと思います。リンクラベルを省略せずに書くと問題は発生しないのですが、どちらにしても Ver 4.6.0 で解消しましたのでバージョンアップしてみて下さい~。
🍨Re:5137◆フォーム部分のHTMLも含めて全体的なソースを教えて頂ければもうちょっと具体的にご案内できる可能性もありますが、現時点でもIF文で実現はできているのなら、汎用いいねボタンツールのリリースをお待ち頂くのも良いと思います。まだ何も作り始めていない段階ですが(^_^;)、作る計画ではいますので。^^;
🍨Re:5138◆昔は様々なWebサイトに掲示板がたくさんありましたよね。^^;
🍨Re:5139◆おそらく、何らかの要因でライセンスコードの登録機能部分に余計な文字列が入ったのでしょうね。Ver 4.6.0では解消するように改善してみましたのでお試し下さい。(おそらくバージョンアップするだけで解消すると思いますが、もしかしたら設定の保存操作(設定は何も変更しなくて良いです)が必要かもしれません。)
🍨Re:5140◆ご要望をありがとうございます! 参考にさせて頂きます!
🍨Re:5141◆ディスプレイは少なくとも2台あると便利ですよ! そもそもデスクトップは広ければ広いほど良いです。(笑) 単純に広いディスプレイよりも、ディスプレイが物理的に複数あると、ウインドウを最大化したときにディスプレイ単位で最大化できる点も便利です。ゲーミングPCなら5インチベイがたぶん複数あるでしょうからBlu-rayドライブを内蔵させることもできると思いますが、まあ最近は光メディアの使用頻度も高くないでしょうから、USB接続で外付けの小型Blu-rayドライブの方が便利かもしれませんね。どちらにしても数千円で買えるでしょうし。なお、再生ソフトが付属しているかどうかを確認して買う方が良いと思います。
🍨Re:5142◆その不具合は >>5124,5125 の問題だと思います。リンクラベルを省略せずに書くと問題は発生しないのですが、どちらにしても Ver 4.6.0 で解消しましたのでバージョンアップしてみて下さい~。
にししさん、ありがとうございます。
不勉強なもので、恥ずかしながらご提案いただいたJavaScriptを利用する方法がまったく理解できず、申しわけありません😥🙇♀️
カテゴリIDを使うか、今のままIF文を使うかして、対応しようと思います。
汎用いいねボタンツールにメッセージ送信機能がついて公開される日を、楽しみに待っていますね!
お忙しい中、本当にありがとうございました。
不勉強なもので、恥ずかしながらご提案いただいたJavaScriptを利用する方法がまったく理解できず、申しわけありません😥🙇♀️
カテゴリIDを使うか、今のままIF文を使うかして、対応しようと思います。
汎用いいねボタンツールにメッセージ送信機能がついて公開される日を、楽しみに待っていますね!
お忙しい中、本当にありがとうございました。
🍔Re:5132◆一番簡単なのは、[[CATEGORYIDS]] でカテゴリIDを使うことでしょうね。これなら完全なプレーンテキストですから。ただし、カテゴリ名ではなくカテゴリIDが入りますけども。しかし、感想の対象を特定する用途にはなるでしょう。
カテゴリ名が欲しい場合は、HTMLを含む内容を一旦JavaScriptで受け取って、HTMLタグだけを除外して使えば良いのではないかと思います。例えば、
<script>
let htmlstr = '[[CATEGORYLINKS:T]]';
let plainText = htmlstr.replace(/<[^>]*>/g, "");
</script>
……とすれば、変数plainTextにカテゴリ名がプレーンテキストで入ります。
後は、この変数の中身を指定の要素に送るなり、フォーム自体をJavaScriptで生成するなりすれば良さそうに思います。(たぶん後者の方が簡単でしょう。同一ページ内に複数のフォームが現れる可能性があるのなら特に。)
この方法なら、カテゴリ名の間に挿入されるカンマ記号を取り除いたり他の文字に変換したりもできますから、より望みの文字列に加工できるでしょう。
なお、[[INFO:NOWCAT:NAME]] ※ は外側スキン用の記法なので、これを使いたい場合は、一旦外側スキン側でJavaScriptを使ってプレーンテキストにした上で、その変数を内側スキンで使う……というような感じにする必要がありますから、内側スキンで[[CATEGORYLINKS:T]] ※ を使う方が良いと思います。JavaScriptを使えば、親カテゴリ名を取り除く加工もできますから、お好きなように加工なされば良いと思います。
カテゴリ名が欲しい場合は、HTMLを含む内容を一旦JavaScriptで受け取って、HTMLタグだけを除外して使えば良いのではないかと思います。例えば、
<script>
let htmlstr = '[[CATEGORYLINKS:T]]';
let plainText = htmlstr.replace(/<[^>]*>/g, "");
</script>
……とすれば、変数plainTextにカテゴリ名がプレーンテキストで入ります。
後は、この変数の中身を指定の要素に送るなり、フォーム自体をJavaScriptで生成するなりすれば良さそうに思います。(たぶん後者の方が簡単でしょう。同一ページ内に複数のフォームが現れる可能性があるのなら特に。)
この方法なら、カテゴリ名の間に挿入されるカンマ記号を取り除いたり他の文字に変換したりもできますから、より望みの文字列に加工できるでしょう。
なお、[[INFO:NOWCAT:NAME]] ※ は外側スキン用の記法なので、これを使いたい場合は、一旦外側スキン側でJavaScriptを使ってプレーンテキストにした上で、その変数を内側スキンで使う……というような感じにする必要がありますから、内側スキンで[[CATEGORYLINKS:T]] ※ を使う方が良いと思います。JavaScriptを使えば、親カテゴリ名を取り除く加工もできますから、お好きなように加工なされば良いと思います。
にししさん、お返事ありがとうございます。
にししさんが整理してくださった三点ですが、概ね合っています。
現状、IF文では
<input type="hidden" name="entry.固有番号" value="作品名">
のタグをカテゴリごとに作っているのですが、それでは何話目に対する感想なのかが分からないのです。
また、作品数が多いので、HTMLに書き込むIF文も増えてあまり見栄えがよろしくありません。
そのため、value=""部分に作品名(カテゴリ名)と第何話([[COMMENT:TITLE]])なのか、自動で挿入されるとありがたいと思った次第です。
今日もいろいろと試していたのですが、昨日の書き込みに誤りがあったことに気づきました。
[[INFO:NOWCAT:NAME]]ではなく、[[CATEGORYNAMES]] でした。失礼いたしました。
skin-onelog.htmlにフォームタグを置いているのですが、value=""部分に[[CATEGORYNAMES]][[COMMENT:TITLE]]と入力すると、class名が付与されるため添付した画像のようになってしまいます。しかも、カテゴリ名は親と子(モザイク部分)が併記されています。
この状態でも送信はできるものの、届いたメールのタイトルは「<span class=」となっています。
これは、skin-cover.htmlにフォームタグを置いて、value=""部分に[[INFO:NOWCAT:NAME]]を入力した場合も、同様です。ただし、[[COMMENT:TITLE]]は無効になっているものの、カテゴリ名の表示(モザイク部分)は希望のものです。
以上のことから、[[INFO:NOWCAT:NAME]]で取れるカテゴリ名と、[[COMMENT:TITLE]]で取れる情報が、プレーンテキストの形で出力された上で併用できれば、望む形になるのではないかと思います。
とはいえ、IF文で「value="作品名[[COMMENT:TITLE]]"」にしておけば、望む情報は送られてくるので、単純にHTMLの見栄えを良くしたいというわがままです。
もし、IF文を使わずに済む方法や工夫があれば、教えていただけると幸いです。
にししさんが整理してくださった三点ですが、概ね合っています。
現状、IF文では
<input type="hidden" name="entry.固有番号" value="作品名">
のタグをカテゴリごとに作っているのですが、それでは何話目に対する感想なのかが分からないのです。
また、作品数が多いので、HTMLに書き込むIF文も増えてあまり見栄えがよろしくありません。
そのため、value=""部分に作品名(カテゴリ名)と第何話([[COMMENT:TITLE]])なのか、自動で挿入されるとありがたいと思った次第です。
今日もいろいろと試していたのですが、昨日の書き込みに誤りがあったことに気づきました。
[[INFO:NOWCAT:NAME]]ではなく、[[CATEGORYNAMES]] でした。失礼いたしました。
skin-onelog.htmlにフォームタグを置いているのですが、value=""部分に[[CATEGORYNAMES]][[COMMENT:TITLE]]と入力すると、class名が付与されるため添付した画像のようになってしまいます。しかも、カテゴリ名は親と子(モザイク部分)が併記されています。
この状態でも送信はできるものの、届いたメールのタイトルは「<span class=」となっています。
これは、skin-cover.htmlにフォームタグを置いて、value=""部分に[[INFO:NOWCAT:NAME]]を入力した場合も、同様です。ただし、[[COMMENT:TITLE]]は無効になっているものの、カテゴリ名の表示(モザイク部分)は希望のものです。
以上のことから、[[INFO:NOWCAT:NAME]]で取れるカテゴリ名と、[[COMMENT:TITLE]]で取れる情報が、プレーンテキストの形で出力された上で併用できれば、望む形になるのではないかと思います。
とはいえ、IF文で「value="作品名[[COMMENT:TITLE]]"」にしておけば、望む情報は送られてくるので、単純にHTMLの見栄えを良くしたいというわがままです。
もし、IF文を使わずに済む方法や工夫があれば、教えていただけると幸いです。


🍔Re:5130◆お書き頂いた内容から、だいたい以下のような感じかな、と思ったのですが、
カテゴリ限定表示を使っているとのことですが、それは「ある親カテゴリとある子カテゴリを両方同時に表示する」というような仕組みで実現しているのですか? それとも別の方法ですか? その辺をもう少し具体的に教えて下さい。
デフォルト設定のままだと、カテゴリ限定表示時には『カテゴリ「雑記」に属する投稿[12件]』のような感じでSITUATIONに出てきますから、おそらく何らかのカスタマイズをなさっているのだと思います。
その辺をどうなさっているのかも教えて頂ければ、何らかの回答ができるかもしれません。
要するに、「どこの情報が取れれば『お望みの過不足ない作品名』になるのか?」が分からないので、そこを教えて下さい、ということです。
- カテゴリ名が作品名。
- 投稿内容の1行目には「第〇話 副題」が書かれているだけ(なので [COMMENT:TITLE] を使っても意味がない)
- Googleフォーム用の何らかのHTMLに、作品名だけを入れたい。
カテゴリ限定表示を使っているとのことですが、それは「ある親カテゴリとある子カテゴリを両方同時に表示する」というような仕組みで実現しているのですか? それとも別の方法ですか? その辺をもう少し具体的に教えて下さい。
デフォルト設定のままだと、カテゴリ限定表示時には『カテゴリ「雑記」に属する投稿[12件]』のような感じでSITUATIONに出てきますから、おそらく何らかのカスタマイズをなさっているのだと思います。
その辺をどうなさっているのかも教えて頂ければ、何らかの回答ができるかもしれません。
要するに、「どこの情報が取れれば『お望みの過不足ない作品名』になるのか?」が分からないので、そこを教えて下さい、ということです。
昨日がずいぶん暑かったので、これはアイスを調達しておかねば……! と思って今日シューアイス1袋(8個入り)を調達してきたんですけども、今日はアイスなしでも大丈夫なくらいの気温でした。
🍨Re:5118-5119◆ご確認ありがとうございます。問題が解消していて良かったです~。(╹◡╹)ノ これで次は正式版(4.6.0)リリースで問題なさそうな感じですね。^^
🍨Re:5118-5119◆ご確認ありがとうございます。問題が解消していて良かったです~。(╹◡╹)ノ これで次は正式版(4.6.0)リリースで問題なさそうな感じですね。^^
🧀Re:5112◆HTMLのhead要素内に記述するOGPの各ソースはもちろん自力で書いても構いません。自力で書いたソースがOGPとして機能しないのなら、何らかの記述が間違っているのだと思います。どこが間違っているのかを指摘するためには、具体的に「どこにどう書いたのか」のソース等を教えて頂く必要があります。また、『画像や説明文が表示(反映)されません』というのは、「どうやって確認した結果なのか」もお知らせ頂けると、なお回答の参考になって望ましいです。一番良いのは、問題のページのURLをお知らせ頂くことです。
No.5105です。
>>効かなくなっているのはDirectoryIndexだけでしょうか? 他のiniファイルやxmlファイルへのアクセスを拒否する設定は、ちゃんと403エラーを返すでしょうか?(500エラーではなく)
今まで使用していた.htaccessのままtegalog.ini、tegalog.xmlにアクセスしたところ、共に403エラーを吐きました。
>>どのような操作をしたときに(または、どのようなURLにアクセスしたときに)500エラーが出るのか
tegalog.cgiを抜いたURLへのアクセス(https://~/tegalog/tegalog.cgiではなく、https://~/tegalog/)で500エラーを吐く状態でした。
(htmlのリンクでジャンプした場合、URL直接入力した場合共に)
>>もしDirectoryIndexが効かないのであれば、てがろぐパッケージに含んでいる(またはここからダウンロードできる) (Recommend).htaccess ファイルを使ってアップロードし直してみて下さい。
改めてダウンロードさせていただいた.htaccessをアップロードしたところ無事tegalog.cgiを抜いた状態でアクセスができました。
もともと使っていた.htaccessですが、にしし様が配布されている.htaccessに
ErrorDocument 403(以下独自に設定したエラー画面の場所)
ErrorDocument 404(以下独自に設定したエラー画面の場所)
を追加したものになります。
この二行がサーバーと相性が悪かったのかもしれません。
お騒がせいたしました。
>>効かなくなっているのはDirectoryIndexだけでしょうか? 他のiniファイルやxmlファイルへのアクセスを拒否する設定は、ちゃんと403エラーを返すでしょうか?(500エラーではなく)
今まで使用していた.htaccessのままtegalog.ini、tegalog.xmlにアクセスしたところ、共に403エラーを吐きました。
>>どのような操作をしたときに(または、どのようなURLにアクセスしたときに)500エラーが出るのか
tegalog.cgiを抜いたURLへのアクセス(https://~/tegalog/tegalog.cgiではなく、https://~/tegalog/)で500エラーを吐く状態でした。
(htmlのリンクでジャンプした場合、URL直接入力した場合共に)
>>もしDirectoryIndexが効かないのであれば、てがろぐパッケージに含んでいる(またはここからダウンロードできる) (Recommend).htaccess ファイルを使ってアップロードし直してみて下さい。
改めてダウンロードさせていただいた.htaccessをアップロードしたところ無事tegalog.cgiを抜いた状態でアクセスができました。
もともと使っていた.htaccessですが、にしし様が配布されている.htaccessに
ErrorDocument 403(以下独自に設定したエラー画面の場所)
ErrorDocument 404(以下独自に設定したエラー画面の場所)
を追加したものになります。
この二行がサーバーと相性が悪かったのかもしれません。
お騒がせいたしました。
今年は満開の桜を目撃しないまま葉桜になってしまったような……。
🥐Re:5104◆情報ありがとうございます~。(╹◡╹)ノ
🥐Re:5105◆.htaccessは、てがろぐ側が解釈するわけではなく、Webサーバ側が解釈するので、「DirectoryIndexの指定が、てがろぐのバージョンによって適用されたりされなかったりする」ということはありません。なので、もしそのような動作になるのなら別のところ(サーバの設定や、.htaccessの書き方や、他のディレクトリにある.htaccessファイルなど)が影響しています。
効かなくなっているのはDirectoryIndexだけでしょうか? 他のiniファイルやxmlファイルへのアクセスを拒否する設定は、ちゃんと403エラーを返すでしょうか?(500エラーではなく)
もしDirectoryIndexが効かないのであれば、てがろぐパッケージに含んでいる(またはここからダウンロードできる) (Recommend).htaccess ファイルを使ってアップロードし直してみて下さい。
なお、.htaccessとは関係なく、てがろぐの動作によって500エラーが出る可能性はあります。
なので、「どのような操作をしたときに(または、どのようなURLにアクセスしたときに)500エラーが出るのか」について詳しく教えて頂ければ、何らかの回答ができるかもしれません。
🥐Re:5104◆情報ありがとうございます~。(╹◡╹)ノ
🥐Re:5105◆.htaccessは、てがろぐ側が解釈するわけではなく、Webサーバ側が解釈するので、「DirectoryIndexの指定が、てがろぐのバージョンによって適用されたりされなかったりする」ということはありません。なので、もしそのような動作になるのなら別のところ(サーバの設定や、.htaccessの書き方や、他のディレクトリにある.htaccessファイルなど)が影響しています。
効かなくなっているのはDirectoryIndexだけでしょうか? 他のiniファイルやxmlファイルへのアクセスを拒否する設定は、ちゃんと403エラーを返すでしょうか?(500エラーではなく)
もしDirectoryIndexが効かないのであれば、てがろぐパッケージに含んでいる(またはここからダウンロードできる) (Recommend).htaccess ファイルを使ってアップロードし直してみて下さい。
なお、.htaccessとは関係なく、てがろぐの動作によって500エラーが出る可能性はあります。
なので、「どのような操作をしたときに(または、どのようなURLにアクセスしたときに)500エラーが出るのか」について詳しく教えて頂ければ、何らかの回答ができるかもしれません。
Ver 4.5.6βでもカード型リンクで文字化けするサイトがあればURLを教えて下さい。とりあえず、こちらのローカルのプログラムでは 4.5.6β からさらに若干の対策を加えて、もうちょっと幅広く対処できるようにはしたんですけども、他にも文字化けするサイトがあるならそこのHTMLを確認していろいろ実験してみたいので、それら(あれば)を考慮して 4.5.7βはもう数日後には配布したいと思います。
🥐Re:5099◆ご指摘ありがとうございます。確かにPixivは文字化けしますね。いーろいろ実験して確認したところ、pixivは『ログイン状態で閲覧した場合はHTMLに文字コードの情報が含まれる』のに『ログアウト状態で閲覧するとHTMLに文字コードの情報が含まれていない』ことに気付きました。┌(:3」└)┐ ずっと、ログイン状態で確認していたんですけども、PHPプログラムは当然ログアウト状態のHTMLしか取得できませんからね……。^^; とりあえず、こちらのローカルにあるプログラムでは対処しました。次の 4.5.7β では、少なくともPixivの文字化けは解消します。もうしばらくお待ち下さい~。
🥐Re:5099◆ご指摘ありがとうございます。確かにPixivは文字化けしますね。いーろいろ実験して確認したところ、pixivは『ログイン状態で閲覧した場合はHTMLに文字コードの情報が含まれる』のに『ログアウト状態で閲覧するとHTMLに文字コードの情報が含まれていない』ことに気付きました。┌(:3」└)┐ ずっと、ログイン状態で確認していたんですけども、PHPプログラムは当然ログアウト状態のHTMLしか取得できませんからね……。^^; とりあえず、こちらのローカルにあるプログラムでは対処しました。次の 4.5.7β では、少なくともPixivの文字化けは解消します。もうしばらくお待ち下さい~。
🥐Re:5095◆テキストエディタにデータファイル(tegalog.xml)を読み込んで、正規表現を使った一括置換機能を使うと一気に :CARD を付加できます。

「:CARD」を付加する正規表現
正規表現では、角括弧や丸括弧に特殊な意味があるので、角括弧や丸括弧そのものに一致させたい場合には \[ や \( のようにエスケープしないといけないので、ちょっと見た目がややこしいですが。(^_^;)
テキストエディタによって微妙に書き方が異なる可能性がありますが、例えばEmEditorだと以下のような正規表現でいけます。
検索語: \[(.+?)\](\(?http)
置換後: [\1:CARD]\2
※書き換えてはいけないケース(書き換えたくないケース)を除外するためにも、「すべて置換」ボタンで一括処理するのではなく、「置換」ボタンの方を押して1つずつ確認しながら処理する方が望ましいと思います。
※お試しになる場合には、事前に tegalog.xml ファイルをローカルにバックアップするのを忘れないようご注意下さい。

正規表現では、角括弧や丸括弧に特殊な意味があるので、角括弧や丸括弧そのものに一致させたい場合には \[ や \( のようにエスケープしないといけないので、ちょっと見た目がややこしいですが。(^_^;)
テキストエディタによって微妙に書き方が異なる可能性がありますが、例えばEmEditorだと以下のような正規表現でいけます。
検索語: \[(.+?)\](\(?http)
置換後: [\1:CARD]\2
※書き換えてはいけないケース(書き換えたくないケース)を除外するためにも、「すべて置換」ボタンで一括処理するのではなく、「置換」ボタンの方を押して1つずつ確認しながら処理する方が望ましいと思います。
※お試しになる場合には、事前に tegalog.xml ファイルをローカルにバックアップするのを忘れないようご注意下さい。
β版のご試用をどうもありがとうございます。
また、不具合報告もありがとうございます。助かります。
今のところ Ver 4.5.5βで認識している不具合は以下の3点です。
1. カード型リンクが文字化けするケースがある。
2. リスト記法で何らかのオプションを加えると表示されなくなる(記法によっては先頭項目だけ見える)。
3. 鍵入力窓を自由な位置に配置する機能が無効になる。(指定位置ではなく先頭に鍵入力窓が出て、すべて隠されてしまう。)
カード型リンクが文字化けするケースは、おそらく「HTMLソース内に <meta charset="UTF-8"> のような文字コードを表す記述が出るよりも前の段階で、日本語文字などの非ASCII文字が出現している場合」に発生しているような気がします。
とりあえず、こちらのローカルにあるファイルでは(たぶん)解消しましたので、今日の内には Ver 4.5.6β を出します。もうしばらくお待ち下さい。
あと、上記の3点以外に何らかの不具合を目撃していらっしゃれば、教えて下さい。(今のところ、上記の3点しか認識していませんので。)
また、不具合報告もありがとうございます。助かります。
今のところ Ver 4.5.5βで認識している不具合は以下の3点です。
1. カード型リンクが文字化けするケースがある。
2. リスト記法で何らかのオプションを加えると表示されなくなる(記法によっては先頭項目だけ見える)。
3. 鍵入力窓を自由な位置に配置する機能が無効になる。(指定位置ではなく先頭に鍵入力窓が出て、すべて隠されてしまう。)
カード型リンクが文字化けするケースは、おそらく「HTMLソース内に <meta charset="UTF-8"> のような文字コードを表す記述が出るよりも前の段階で、日本語文字などの非ASCII文字が出現している場合」に発生しているような気がします。
とりあえず、こちらのローカルにあるファイルでは(たぶん)解消しましたので、今日の内には Ver 4.5.6β を出します。もうしばらくお待ち下さい。
あと、上記の3点以外に何らかの不具合を目撃していらっしゃれば、教えて下さい。(今のところ、上記の3点しか認識していませんので。)
🍎Re:5068◆ああ、それなら共有SSLの形態が原因ですね。「ブラウザのアドレス欄に見えているHTTPSのURL」と「システムが認識しているURL」とが異なる場合があって、今回のケースでは後者は「 http:// で始まるURL」になるのでしょう。その結果(てがろぐ側は http:// のURLで画像を出力してしまって)「HTTPSページの中にHTTPでしかアクセスできない画像がある」という解釈になるために、ブラウザが画像の表示をブロックしたのでしょうね。
(たとえ画像URLがHTTPで出力されていても、同じURLでプロトコルをHTTP→HTTPSに変えるだけで閲覧できるのであれば、(最近のChromeなら)ブラウザ側が内部で切り替えて表示してくれるのですけども。HTTPとHTTPSとでURLが異なる場合には(存在を認識しようがないので)ブロックされます。)
で、解決策ですが、てがろぐ管理画面の[設定]→[システム設定]→【フルパス設定】で『固定』の方に切り替えた上で、その入力欄に『 https://ss1.xrea.com/ から始まっているURLで表記した場合の、てがろぐが存在するディレクトリまでのURL』(※)を入力して保存してみて下さい。そうすると、プログラム側が認識する「自分の位置」を強制的に固定できますので、おそらく問題はなくなると思います。
※具体的にどう指定する必要があるかは実際に見ないとわかりませんが、たぶん https://ss1.xrea.com/hogehoge/higehige/tegalog/ のような感じではないかと思います。最後の文字は「/」になります。)
なお、一番良いのは、共有SSLを使わずに、「独自ドメイン」または「サーバ会社提供の、自分だけが権利を持てるサブドメイン( hogehoge.なんたら.com みたいな)」で自分専用のSSLを使う方法です。(ご契約のサーバでそれが可能なのかどうかは分かりませんが。)
(たとえ画像URLがHTTPで出力されていても、同じURLでプロトコルをHTTP→HTTPSに変えるだけで閲覧できるのであれば、(最近のChromeなら)ブラウザ側が内部で切り替えて表示してくれるのですけども。HTTPとHTTPSとでURLが異なる場合には(存在を認識しようがないので)ブロックされます。)
で、解決策ですが、てがろぐ管理画面の[設定]→[システム設定]→【フルパス設定】で『固定』の方に切り替えた上で、その入力欄に『 https://ss1.xrea.com/ から始まっているURLで表記した場合の、てがろぐが存在するディレクトリまでのURL』(※)を入力して保存してみて下さい。そうすると、プログラム側が認識する「自分の位置」を強制的に固定できますので、おそらく問題はなくなると思います。
※具体的にどう指定する必要があるかは実際に見ないとわかりませんが、たぶん https://ss1.xrea.com/hogehoge/higehige/tegalog/ のような感じではないかと思います。最後の文字は「/」になります。)
なお、一番良いのは、共有SSLを使わずに、「独自ドメイン」または「サーバ会社提供の、自分だけが権利を持てるサブドメイン( hogehoge.なんたら.com みたいな)」で自分専用のSSLを使う方法です。(ご契約のサーバでそれが可能なのかどうかは分かりませんが。)
りんごを食べました。おいしい。🍎🍎🍎
🍎Re:5064◆そのソースに出ているsrc属性値のURLを、ブラウザのアドレス欄に貼り付けてアクセスすると、画像は正しく見えますか?
🍎Re:5064◆そのソースに出ているsrc属性値のURLを、ブラウザのアドレス欄に貼り付けてアクセスすると、画像は正しく見えますか?
換気はしたいが、花粉は入れたくない。網戸にマスクを敷き詰めたらいいか……?┌(:3」└)┐
🌳Re:5062◆てがろぐが出力するHTMLソースに、どんなURLが出力されているのかを確認してみて下さい。
例えば、 sample1.jpg という画像なら、てがろぐは、 <img class="embeddedimage" src="images/sample1.jpg" width="~" height="~" loading="lazy" alt="~"> のようなHTMLを出力します。
画像が表示されないということは、このURLの出力結果に問題があるということでしょうから、まずはこの点を確認してみる必要があります。
どんなHTMLが出力されていますか?
🌳Re:5062◆てがろぐが出力するHTMLソースに、どんなURLが出力されているのかを確認してみて下さい。
例えば、 sample1.jpg という画像なら、てがろぐは、 <img class="embeddedimage" src="images/sample1.jpg" width="~" height="~" loading="lazy" alt="~"> のようなHTMLを出力します。
画像が表示されないということは、このURLの出力結果に問題があるということでしょうから、まずはこの点を確認してみる必要があります。
どんなHTMLが出力されていますか?
今日からまたちょっと寒くなるっぽい……?
🍔Re:5055◆その適用順序は半分(前半が)間違っていますのでご注意下さい。robots.txtでクローラーをブロックすると検索避けができなくなる点は、Google自身が公式ヘルプで明言しています。(「インデックスに登録してはいけない」という指示自体が読めなくなるため)
後半の「metaタグ→それでも読まないお行儀悪いものは.htaccess」は正しい順序ですが、最初に「まずはrobots.txtを読んでもらう」とすると、Googleでは検索避けに失敗します。(※robots.txtでGoogle等の紳士的なクローラーをブロックしていないなら問題ありませんが。)
🍔Re:5053◆Googleに関してはその通りです。.htaccessでブロックしてもいけないし、robots.txtでブロックしてもいけません。なぜなら、ブロックされると「登録するな」という指示自体も読めないからです。
※2000年代からある古典的な話ですが、「出口」という検索語でググると、Yahoo! Japanがヒットします。これは「出口」というリンクテキストを使ってYahoo!にリンクしているサイトが多いことによる影響です。つまり、「どんなリンクテキストを使ってリンクされているのか」という情報も検索サイトに反映される(要素の1つになる)のです。なので、robots.txtでページの中身を読むことだけを禁止しても(&.htaccessでページ自体を読めなくしても)、インデックスに登録される可能性はあります。
したがって、インデックス登録を避けるには、ページそのものに書かれた登録禁止の指示を確実に読ませる必要があるため、ブロックしてはいけないのです。
……とはいえ、世の中に存在するクローラーはGoogleやBingのような比較的紳士的に動作するものだけではありません(※検索のシェアはGoogleが1強ですが)。metaタグの存在を無視してインデックスに登録しようとするクローラーも存在するでしょう。なので、metaタグを読まないような無作法なクローラーに対しては、何らかのブロックをするほかありません。(そのような無作法なクローラーはrobots.txtだって読まないでしょうから、.htaccessでサーバ側に応答を拒否させるしかないでしょう。)
したがって、検索避けを厳密にしたいなら、以下のような方策が必要です。
この順序を逆にしてしまうと(=あらゆるクローラーを.htaccessでブロックすると)、そもそもmetaタグを書く意味がなくなってしまいますから注意して下さい。なぜなら『あらゆるクローラーがmetaタグを読めなくなる』からです。
Googleだけを対象にするなら、そもそもmetaタグだけで充分です。他の無作法なBotも対象にしたい場合は、「Googleのような紳士的なクローラーにはアクセスを許可しつつ、無作法なクローラーだけを拒否するような .htaccessを書く」必要があります。
※なお、robots.txt自体に意味がないわけではありません。検索サイト以外のクローラー(最近ではAI学習用のBotも多いですね)をブロックする用途や、「クロールそのものは許可したいがクロール頻度を低く抑えたい(=負荷軽減)」場合などの指示には役立ちます。
とはいえ、Googleはrobots.txtに書かれた「クロール頻度の指示」は無視するんですけども……。┌(:3」└)┐
🍔Re:5054◆その場合は、2つの方法があります。
🍔Re:5055◆その適用順序は半分(前半が)間違っていますのでご注意下さい。robots.txtでクローラーをブロックすると検索避けができなくなる点は、Google自身が公式ヘルプで明言しています。(「インデックスに登録してはいけない」という指示自体が読めなくなるため)
robots.txt ファイルでページのクロールが許可されていない場合、インデックス登録や表示に関するルールについての情報は検出されず、その結果無視されます。
後半の「metaタグ→それでも読まないお行儀悪いものは.htaccess」は正しい順序ですが、最初に「まずはrobots.txtを読んでもらう」とすると、Googleでは検索避けに失敗します。(※robots.txtでGoogle等の紳士的なクローラーをブロックしていないなら問題ありませんが。)
🍔Re:5053◆Googleに関してはその通りです。.htaccessでブロックしてもいけないし、robots.txtでブロックしてもいけません。なぜなら、ブロックされると「登録するな」という指示自体も読めないからです。
- もちろん、robots.txtでブロックされているならクローラーはページの内容を読みませんから、(ページ内に何が書かれているのかの情報は得られないため)インデックスに登録される可能性は減りはします(※なので「この方法で検索避けは成功する」と思えるケースもあるでしょう)。
- しかし、登録禁止だという指示自体も伝わっていないため、よほど評価値の高い外部サイトからリンクされている場合などの外部要因次第では(リンク元ページにあるリンクテキストなどのように「読むことを禁止されていない場所にある情報」を用いて)インデックスに登録される可能性が残ります。
※2000年代からある古典的な話ですが、「出口」という検索語でググると、Yahoo! Japanがヒットします。これは「出口」というリンクテキストを使ってYahoo!にリンクしているサイトが多いことによる影響です。つまり、「どんなリンクテキストを使ってリンクされているのか」という情報も検索サイトに反映される(要素の1つになる)のです。なので、robots.txtでページの中身を読むことだけを禁止しても(&.htaccessでページ自体を読めなくしても)、インデックスに登録される可能性はあります。
したがって、インデックス登録を避けるには、ページそのものに書かれた登録禁止の指示を確実に読ませる必要があるため、ブロックしてはいけないのです。
……とはいえ、世の中に存在するクローラーはGoogleやBingのような比較的紳士的に動作するものだけではありません(※検索のシェアはGoogleが1強ですが)。metaタグの存在を無視してインデックスに登録しようとするクローラーも存在するでしょう。なので、metaタグを読まないような無作法なクローラーに対しては、何らかのブロックをするほかありません。(そのような無作法なクローラーはrobots.txtだって読まないでしょうから、.htaccessでサーバ側に応答を拒否させるしかないでしょう。)
したがって、検索避けを厳密にしたいなら、以下のような方策が必要です。
- まずは、metaタグを読ませる。(←紳士的なクローラーはこの指示に従うので、まずはこれを確実に読ませる必要がある。)
- (次に、metaタグを無視するようなBotだけに限定して、robots.txtでブロックする。)
- 最後に、1も2も無視するようなBotだけに限定して、.htaccessでブロックする。
この順序を逆にしてしまうと(=あらゆるクローラーを.htaccessでブロックすると)、そもそもmetaタグを書く意味がなくなってしまいますから注意して下さい。なぜなら『あらゆるクローラーがmetaタグを読めなくなる』からです。
Googleだけを対象にするなら、そもそもmetaタグだけで充分です。他の無作法なBotも対象にしたい場合は、「Googleのような紳士的なクローラーにはアクセスを許可しつつ、無作法なクローラーだけを拒否するような .htaccessを書く」必要があります。
※なお、robots.txt自体に意味がないわけではありません。検索サイト以外のクローラー(最近ではAI学習用のBotも多いですね)をブロックする用途や、「クロールそのものは許可したいがクロール頻度を低く抑えたい(=負荷軽減)」場合などの指示には役立ちます。
とはいえ、Googleはrobots.txtに書かれた「クロール頻度の指示」は無視するんですけども……。┌(:3」└)┐
🍔Re:5054◆その場合は、2つの方法があります。
- 『サイトマップページモードをカテゴリ限定で表示させたページ』をiframeで読み込んで並べるページを作る。
- 『サイトマップページモードをカテゴリ限定で表示させたページ』の中身をJavaScriptで読み込んで1ページに合成するページを作る。
風が強い。花粉と黄砂も飛んでいるので窓は絶対に開けられない……。
☕Re:5049◆検索避けには、まさしくそのmeta要素を使う必要があります。
.htaccessやrobots.txtを使ってクローラーからのアクセスをブロックしてしまうと、「検索インデックスに登録するな」という指示そのものが読めなくなるので、結果として検索避けに失敗します。(他サイトからのリンクを経由してクローラーが来た場合、そのページに書かれている情報は読めないため取得されませんが、リンク元ページにあるリンクラベル等を使ってインデックスに登録される可能性があります。)
なので、検索避けのためには「『登録するな』という指示(<meta name="robots" content="noindex">)自体はクローラーにも読めるように」しておく必要があります。
※参考:このGoogle検索セントラルHelpページ末尾の「robots.txt ルールとインデックス登録および表示に関するルールとの組み合わせ」項目には、「クロール禁止の情報自体が読めなかったら、指示は無視されるよ」的なことが書いてあります。
なお、IPアドレスは明確に対象国が分割されているわけではありません。「今は日本国内に割り当てられているIPアドレスが、来月は海外で使用されている」というケースもあり得ます(もちろんその逆も)。なので、IPアドレスを使ってアクセス元を判断するには常に最新の情報にアップデートし続ける必要があり、個人ではあまり現実的ではなさそうに思います。
☕Re:5049◆検索避けには、まさしくそのmeta要素を使う必要があります。
.htaccessやrobots.txtを使ってクローラーからのアクセスをブロックしてしまうと、「検索インデックスに登録するな」という指示そのものが読めなくなるので、結果として検索避けに失敗します。(他サイトからのリンクを経由してクローラーが来た場合、そのページに書かれている情報は読めないため取得されませんが、リンク元ページにあるリンクラベル等を使ってインデックスに登録される可能性があります。)
なので、検索避けのためには「『登録するな』という指示(<meta name="robots" content="noindex">)自体はクローラーにも読めるように」しておく必要があります。
※参考:このGoogle検索セントラルHelpページ末尾の「robots.txt ルールとインデックス登録および表示に関するルールとの組み合わせ」項目には、「クロール禁止の情報自体が読めなかったら、指示は無視されるよ」的なことが書いてあります。
なお、IPアドレスは明確に対象国が分割されているわけではありません。「今は日本国内に割り当てられているIPアドレスが、来月は海外で使用されている」というケースもあり得ます(もちろんその逆も)。なので、IPアドレスを使ってアクセス元を判断するには常に最新の情報にアップデートし続ける必要があり、個人ではあまり現実的ではなさそうに思います。
春の陽気。🌸🌸🌸
まだ今週末はまた寒くなるっぽい予報ですけども。
🌸Re:5047◆なるほど。
普通の半角「 # 」記号は、Unicodeで U+0023 で、
キーキャップ化した「 #️⃣ 」は、UnicodeでU+0023 U+FE0F U+20E3 なのでそういう動作になるんですね。
最初の例では、『 #️⃣これってハッシュタグになる…?』の先頭はあくまでも「 # 」で、その続きが「 U+FE0F、 U+20E3、こ、れ、っ、て…… 」になるので、『U+FE0F (Emoji Variation Selector)』から「?」までがハッシュタグだと認識されると。
U+FE0F と U+20E3 は半角文字の範囲に含まれていないので、U+FE0F から ? までを一連のハッシュタグだと認識するんですね。
次の2つの例では、先頭の「 # 」と「 [ 」や「 - 」とにある U+FE0F U+20E3 だけがハッシュタグだと認識されるので、「 #️⃣ 」だけがクリックできるわけですね。^^;
※ハッシュタグを角括弧で囲む場合は、「 # 」と「 [ 」記号が連続している必要がありますが、ここではその間に U+FE0F U+20E3 が含まれていますから、連続していません。
※隠れハッシュタグとして扱う場合は、「 # 」と「 - 」記号が連続している必要がありますが、ここではその間に U+FE0F U+20E3 が含まれていますから、連続していません。
とりあえず、「 # 」の後に U+FE0F が続いている場合はハッシュタグにしないような仕様が必要でしょうね。(^_^;)
まだ今週末はまた寒くなるっぽい予報ですけども。
🌸Re:5047◆なるほど。
普通の半角「 # 」記号は、Unicodeで U+0023 で、
キーキャップ化した「 #️⃣ 」は、UnicodeでU+0023 U+FE0F U+20E3 なのでそういう動作になるんですね。
- U+0023 : #
- U+FE0F : (Emoji Variation Selector)
- U+20E3 : (Combining Enclosing Keycap)
- #️⃣ ← # + U+FE0F + U+20E3
- 1️⃣ ← 1 + U+FE0F + U+20E3
- 9️⃣ ← 9 + U+FE0F + U+20E3
最初の例では、『 #️⃣これってハッシュタグになる…?』の先頭はあくまでも「 # 」で、その続きが「 U+FE0F、 U+20E3、こ、れ、っ、て…… 」になるので、『U+FE0F (Emoji Variation Selector)』から「?」までがハッシュタグだと認識されると。
U+FE0F と U+20E3 は半角文字の範囲に含まれていないので、U+FE0F から ? までを一連のハッシュタグだと認識するんですね。
次の2つの例では、先頭の「 # 」と「 [ 」や「 - 」とにある U+FE0F U+20E3 だけがハッシュタグだと認識されるので、「 #️⃣ 」だけがクリックできるわけですね。^^;
※ハッシュタグを角括弧で囲む場合は、「 # 」と「 [ 」記号が連続している必要がありますが、ここではその間に U+FE0F U+20E3 が含まれていますから、連続していません。
※隠れハッシュタグとして扱う場合は、「 # 」と「 - 」記号が連続している必要がありますが、ここではその間に U+FE0F U+20E3 が含まれていますから、連続していません。
とりあえず、「 # 」の後に U+FE0F が続いている場合はハッシュタグにしないような仕様が必要でしょうね。(^_^;)