2024年1月 この範囲を時系列順で読む この範囲をファイルに出力する
🆕 Ver 4.2.1βの更新点(概要):
🌺既存ハッシュタグ簡単挿入機能で、ハッシュタグの後ではなく前に半角スペースを挿入できる(または一切挿入しない)設定機能を追加。
🌺「任意URLリンク」ボタンで、リンク先が丸括弧で囲まれる場合には、直後に半角スペースを自動挿入しない仕様に改善。
🌸カスタム絵文字のCSS装飾支援機能。ファイル名にハイフン・ドット・アンダーバーが含まれているとき、それらで分割した文字列を使ったclass名をさらに加える機能。
🌺データファイルを読むよりも前にパラメータの不正をチェックすることで、無駄なデータ読み込みを発生させないよう改善。
🌸攻撃目的のアクセスを簡易的に検出して拒否する(400 Bad Requestを返す)機能を追加。
詳しい使い方などは、上記の開発進捗状況報告ページの記事をご覧下さい。
🍘SNSでのアナウンス:
Mastodon(Pawoo)
Bluesky
Twitter:
(ツイート埋め込み処理中...)Twitterで見る
何もページ全部を丸ごと埋め込まなくても、ページの一部分(本当に目次として機能する部分)だけを抜き出して埋め込めば良いのです。
例えば、サイトマップページ用スキンに <div id="kokodake">~</div> という空間を用意して、その内部に全記事リストが出力されるように作っておきます。(ヘッダとかフッタとか著作権表示とかはその外側に配置しておけば問題ありません。)
あとは、JavaScriptでその id="kokodake" の範囲だけを抜き出して埋め込めば済みます。
以下は、ChatGPTから返ってきたままのソースで動作確認はしていないのですが、以下のコードをお使いのスキンに貼り付ければ、その位置(正確には <div id="targetDiv"></div> の位置)に、サイトマップページモード内の <div id="kokodake">~</div> の範囲だけが埋め込まれます。
<div id="targetDiv"></div>
<script>
// 対象のURL
var targetUrl = 'https://お使いのドメイン/てがろぐ設置場所/tegalog.cgi?mode=sitemap';
var xhr = new XMLHttpRequest();
xhr.open('GET', targetUrl, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
var parser = new DOMParser();
var doc = parser.parseFromString(xhr.responseText, 'text/html');
var targetElement = doc.getElementById('kokodake');
var targetDiv = document.getElementById('targetDiv');
targetDiv.innerHTML = targetElement.innerHTML;
}
};
xhr.send();
</script>
既にJavaScriptでの埋め込みをお試しになったとのことですから、別に上記のソースを使わなくても、そのときのソースを流用なさるのでも良いと思います。要は「ページ全体を丸ごと取得する」のではなく、「ページ内の指定要素だけを取得する」という方法に変えれば良いだけですから。
畳む
お返事ありがとうございます。
勉強不足で恐縮ですが、コンテンツをtopで表示させたいので出来ないです。
にししさんの提案されるとおりサイトマップページモードを活用したら、一度topからサイトマップページモードへ飛ばないと各コンテンツを表示できないと思います。
JSでサイトマップページモードを埋め込んだのですが、埋め込んだ場所にPowered by てがろぐ Ver XXXの文字が表示され、その下にメールフォーム等のコンテンツが続いていたので、ちょっとそれはなぁとなりました。
手打ちでもどうにかできるので、難しいようでしたら本当に大丈夫です。
🧇Re:4226◆目次専用のスキンを作る方法をお使い頂けば、お望みのことは今でも実現できそうに思いますが、例えばサイトマップページモードを活用してそこを目次にする……という方法ではダメなのですか? 確かに、別のスキンにする場合、先頭固定やフリースペースのように同一ページ内に配置することはできませんが、その代わり、
- どんな表示形式でも好きに作れますし、
- 全タイトル一覧にもできますし(=管理画面の設定→補助出力からサイトマップページモード用の「1ページあたりに表示される投稿数」を別に設定できますし、スキン側に個数を強制指定する方法もありますから、10000とか充分大きな値にすれば全部を一括出力できます)、
- 「タイトルと2行目の部分等任意の部分」だけを抜き出すこともできます。
お返事ありがとうございます。
カスタマイズ方法とフリースペースについてもありがとうございます
フリースペースのの認識がなかったのでなるほど!となりました。
視野が広がりました。ありがとうございます!
新着投稿リストの表示は現在一つの形式しか出来ませんよね…?(将来対応予定とありましたのでのんびりお待ちします)
てがろぐひとつで個人サイトを管理する形でして、特定のカテゴリを更新したらindexのページにある『更新履歴にある新着投稿リスト(数個だけの表示)』と『作品掲載している新着投稿リスト(すべて表示)』ができればなぁと思っておりまして。
とりあえず暫くは更新履歴のところを新着投稿リストを使い、固定ページにリンクを手打ちで対応していきます。
欲を言えばタイトルと2行目の部分等任意の部分を新着投稿リストで表示することが出来れば、自分のしたいことが出来るので対応されるときにはよろしくお願いします…!
畳む
先頭固定機能だと掲載位置は先頭しかあり得ませんが、フリースペースなら上端でも下端でもサイドバーの形でもどこにでも表示できますので、掲載位置の自由度は(先頭固定よりも)高いです。その上、(スキンを直接編集しなくても)てがろぐ上から中身を更新できます。また、フリースペースの内部にはHTMLタグを何でも使えますから、掲載内容の自由度も高いです。
最近はサードパーティー製スキンをベースにしてお使いの方々も多そうですので、もしかすると(フリースペースが使われていないスキンをお使いだと)フリースペース機能の存在に気付きにくいかもしれませんが。
「何かをずっと表示しておきたい」という場合には、先頭固定機能以外にもフリースペース機能もありますので、それを使えないか検討してみて下さい。
例えば、「ある特定のカテゴリに限定されている状況でのみ、フリースペースを表示させたい」という場合には、IF文での出力条件分け記法を使ってフリースペースの表示場面を限定すると良いでしょう。フリースペースの入力欄は1つしかありませんが、専用の区切り文字を使うことで、複数のフリースペースを用意することもできます。詳しくは『フリースペースの書き方(複数のフリースペースを設ける方法)』で解説しています。
この「IF文」と「フリースペース」を併用すれば、
- カテゴリ info でのみ表示されるフリースペースⒶ
- カテゴリ diary でのみ表示されるフリースペースⒷ
- HOMEでのみ表示されるフリースペースⒸ
※IF文を使わなくても、単純にCSSで表示分けすることもできます。掲載分量が少ない場合には、(IF文を列挙してどうにかするよりも)CSSで表示分けする方がシンプルで楽かもしれません。
🍩Re:4223◆まさしくその新着投稿リストのオプション記法を使うと、指定したカテゴリIDに該当する投稿に限定して新着投稿リストを表示できます。詳しくは、カスタマイズ方法ページ内の『新着投稿リストの掲載対象をスキン側で限定する方法(掲載する対象を選択)』項目をご覧下さい。先頭固定した記事に加えることはできませんが、外側スキンファイルを使って先頭付近に表示させれば、同じことができると思います。
※なお、新着投稿リストの表示記法(オプション記法も含めて)は、フリースペースの中に記述することもできます。なので、スキンを直接編集せずに中身を(てがろぐ上から)編集できるようにしたい場合は、フリースペースを使うのでも良いと思います。(※新着投稿リストをフリースペース内に含められるのは、外側スキンの中で最低1回でも何らかの新着投稿リストが掲載されている場合のみです。外側スキンで新着投稿リストの挿入記法が1度も使われていないスキンでは、フリースペース内に新着投稿リストの記法を書いても展開されず、記法がそのまま文字として表示されるだけになりますのでご注意下さい。)
難しい要望かもしれないのですが、現在てがろぐでサイト構築しております。先頭固定した記事に作品へのリンクを記載しているのですが、新着投稿リストのようなもので特定のカテゴリのタイトルを全て表示させるようなタグが欲しいです。
🍩Re:4221◆PHP5.5でも動きましたか~。動作報告をどうもありがとうございます!
以下の二つのサーバーで問題なく動いております。
・ロリポップ(PHP7.4(CGI版))
・fya(PHP5.5だと思います)
さて、長らくここのドメイン(nishishi.org)は、さくらインターネットのサーバで運営してきましたが、先月の半ばからリトルサーバーに移転して動作を試していました。特に動作に問題はなさそうですので(というかむしろ速いので)、正式に契約しました。ここは、リトルサーバーのワードプランのサーバで運営しています。(※本家サイトnishishi.comの方は、さくらインターネットのままです。)

ご返信ありがとうございます!
ただ単に、記事内で装飾emを使うので、検索した際にemが被って紛らわしくなるのではないかと思いまして。
strongをまだ記事内で装飾するようなのが見当たらなかったのもあり、検索結果画面の対象ワードがemではなくstrongで表示できれば見分けが付きやすくなるので、それができたらなという考えに至った次第でございます。
※検索結果画面では記事の装飾をそのまま反映される設定にしておきたいです。(文字サイズの小や極小をよく使うのもあり……)
2023年12月 この範囲を時系列順で読む この範囲をファイルに出力する
🍜Re:4211◆ご要望をありがとうございます。むしろ、何の要素を使うのかの要素名を手動で入力可能なようにしましょうかね(デフォルト値がstrongで)。参考までにお尋ねしたいのですが、なぜ(どんな理由で)strongではなくemで出力したいのでしょうか?
検索結果を表示されるさいに引っ掛かった単語を<強調>するか否かの設定がありますが、emかstrongかも選択できるようにしていただけたら助かります。
お忙しいところ恐縮ですが、ご検討願えますでしょうか?
よろしくお願いいたします!
🍘Re:4209◆やはり、かなり早い段階でエラーになっているようですね。ご確認をありがとうございました。
たぶん、何かの読み込みに失敗しているのだとは思うのですが。500エラーになってしまって、かつ、エラーログが「End of script output before headers」だと現状ではどうしようもない感じです。(^_^;) TegUpは一応ステップごとに作業ログを記録してはいるものの、あくまでもメモリ上の話であってファイルに出力はしていないのが敗因でした。次にTegUpを改修する際には、作業ログを(一時的に)ファイルに出力できる仕様にして、たとえ500エラーが出てもそのファイルを読めば「どこまで作業が進んだのか」(=どの処理でエラーが起きたのか)が確認できるようにしようと思います。
とりあえず、今回に関しては手動でバージョンアップして頂ければ幸いです。
4204です、レスが遅くなってしまい申し訳ありません
データの方確認してみましたがzipファイルやサブディレクトリなどの自動生成はされていませんでした
プリン食べたい。🍮🍮🍮
🍰Re:4204◆なるほど、詳しい情報をどうもありがとうございます。tegaup.phpの存在するディレクトリ(=てがろぐの設置ディレクトリ)には、自動生成された何らかのZIPファイルやサブディレクトリは存在するでしょうか?
※自動生成されるファイル名やディレクトリ名の一部には、ランダムな( 5GPQglrs8L のような)文字列が使われていますので、あればすぐ分かると思います。もしあれば、少なくとも途中までは作業が進んだ(もしくはほぼ終わりまで進んだ)ということですね。バージョンアップできていないのであれば「ほぼ終わりまで進んだ」とは考えられませんから、なければ、本当に最初の段階でコケていることになります。なので、どの辺まで処理が進んでいたのかを(できれば)知りたいのです。
4201です
はいその通りです
tegup.phpへアクセス→4.10から4.20へのアップデート案内が表示されているのでアプデ実行ボタンをクリック→ tegup.php?work=verupに跳ぶ→500エラー
といった感じでした
🍍Re:4201◆うーん、なるほど……。最初に tegup.php にアクセスしたときにはバージョンアップ用のボタンが見えていて、それを押すと 500エラーになる、という動作ですかね?
🍍Re:4202◆解決したようで良かったです。tegalog.cgi の後に / を加えてもCGIそのものは動作するんですねえ。いま初めて気付きました。(^_^;) たしかに / を付けるとそのような動作になりますね。CSSの相対パスが正しくなくなるからでしょうけども、なぜその状態でもCGIは稼働するのかがちょっと謎です……。何にしても、ご愛用頂ければ幸いです。(╹◡╹)
4196です
サーバーのエラーログを確認してみたところ
[実行日時][fcgid:warn][プロセスid] (104)Connection reset by peer: [client 【自分のipアドレス】] mod_fcgid: error reading data from FastCGI server, referer: 【tegup.phpの絶対パス】
[実行日時][core:error] [プロセスid] [client 【自分のipアドレス】] End of script output before headers: tegup.php, referer: 【tegup.phpの絶対パス】
といった感じのログが残ってました






