2024年7月 この範囲を時系列順で読む この範囲をファイルに出力する
&のところを「%26」にしたらどうでしょうか?
https://hoge.jp/?skin=(スキン)%26postid=(数字)
のようにしてください
ツイッター(自称X)でシェアボタンを作ったのですが、うまくいきません。
個別表示のものにスキンを適用させようとしたのですが、
https://hoge.jp/?skin=(スキン)&postid=(数字)
のURLをシェアボタンを押したらツイートの所に吐き出させようとすると&以降から消えてしまいました。
対処方法ってありますか?
🍑Re:4566◆おっと。ご指摘をどうもありがとうございます。確かに、内側スキン(skin-onelog.html)の中でINCLUDE記法を使って挿入するファイルの中にIF文を書いてもIF文だとは認識されないですね。これは不具合でした。内側スキンでは、INCLUDE文を処理するよりも前の段階でIF文の解釈を済ませてしまっていたので、INCLUDEで合成されるファイルの中に書いたIF文が処理されないまま(文字としてそのまま)出力されてしまっていたのでした。
こちらのローカルにあるソースでは修正しましたので、次のバージョンでは解決しています。公開までしばらくお待ち下さい。
🍑Re:4567◆なるほど! 事情の解説をどうもありがとうございます。とても参考になりました。なんとなく「CGIを自力で設置しようと考える人なら、HTML+CSSくらいは読めるし書ける」というような前提で居た感じがあったんですけども(笑)、たしかに最近は(ありがたいことに)HTML+CSSがそんなに分からない状態でも、てがろぐを使おう、と考えて下さる方々も多々いらっしゃるようですね。もし、そういう方々の個人サイト開設の入口になれているならとても嬉しいです。(╹◡╹) (いや、入口になっているかどうかは分かりませんけども。WordPress等のCMSで既にサイト自体はあった可能性もありますしね。^^;)
さて、カテゴリ別の先頭固定機能は、あれば使い処はありそうですから、将来的には実装したいと思います。ただ、実装に掛かる分量が結構多そうなので、直近での実装ができるとは限りませんので、気長にお待ち頂ければ幸いです。
>>4565 カテゴリ管理の概要文の入力欄がtextareaになったら
HTMLを入力する際に改行が維持される(=<br>に変換されて保存されるということですよね?)と困るほうが多い気がするので「B」希望です。
フリースペースのようにどちらか選べるともっといいのでしょうか…?(個人的にはそこまでは不要ですが)
もう一つ質問ですがサイトマップモード用のskin-onelog.htmlではインクルードするファイルに[[IF():~:IF]]って使えないのでしょうか?
バージョン4.4.0で試してみましたがそのまま文字列として出力されてしまいました。
🍕Re:4561◆ご要望をどうもありがとうございます。ちなみにですが、カテゴリ向けの注意書き用途なら、フリースペースを複数個用意しておいて、状況に応じて表示/非表示を切り替える方法を使って、『特定のカテゴリ(またはハッシュタグ)限定で表示される場合にだけ、n番のフリースペースを表示する』みたいな方法でも実現できると思いますが(しかもその方がHTMLを自由に書けるメリットもありますが)、それでもなお「カテゴリ別の先頭固定機能」の方が望ましいですか? もしそうなら、参考までに理由も教えて頂けると、今後の開発の参考になって助かりますのでよろしければ教えて下さい。
🍕Re:4562◆カテゴリ管理の概要文の入力欄がtextareaになったら……という点ですが、お望みの仕様は以下Ⓐ・Ⓑのどちらでしょうか?
- Ⓐ 入力欄が左右だけでなく上下にも広げられれば充分。
- Ⓑ 入力した改行も維持した状態で保存して欲しい。
No.4554
あああああああああああああああああああ
[[INFO:NOWCAT:DESCRIPTION]]
で代用出来そうなきもしますがどうですか?html使える設定にも出来るそうですし。
ついでの要望ですが、上記の設定時だけでも概要文入力欄がtextareaになったらいいなと思います🙏
以前チラっと仰っていた、先頭固定記事をカテゴリやタグごとにも反映させる機能、個人的に心待ちにしております。
成人向けカテゴリがあるので、注意書きを先頭固定できるととても助かります。
復旧しました。TegUpも今はちゃんと使えます。(╹◡╹)

今日の14時01分頃から、サーバに接続できなくなる障害が発生しているようで、障害の解消を待っているところです。(できることがないので、待つしかありません。)
しばらくの間、TegUpのご使用はお控え下さい。同様に、てがろぐ公式ページにもアクセスできませんので、要するに今の時点では、てがろぐを新規にダウンロードする方法もバージョンアップさせる方法もありません。^^;
なお、ここ( www.nishishi.org )は別サーバなので問題ありません。
鍵機能で2行目も表示できる機能ありがとうございました。とても嬉しいです。
ある条件を満たすと『簡易適用スキンの設定が勝手に切り替わってしまう』バグ(表示上の問題)を修正しました。また、文字装飾で実際に出力されるHTML要素の変更機能、検索語のハイライトに使われるHTML要素を strong 以外に変更できる機能などの追加が主な更新点です。その他、細々した仕様改善や機能追加を含んでいます。今回のリリースはバグの修正が主で、追加機能は少なめです。やや大きめのバグを解消していますので、早めのバージョンアップをお願い致します。
➡ https://www.nishishi.com/cgi/tegalog/
バージョンアップするには、
- 1クリックでバージョンアップできる専用PHP「TegUp」のご使用をお勧め致します。
- もしくは、最新版のZIPの中から tegalog.cgi と fumycts.pl の2ファイルだけを抜き出して上書きアップロードして下さい。
🆕 Ver 4.4.0の更新点(概要):
《▼大きな不具合の修正》
●ある条件を満たすと『簡易適用スキンの設定が勝手に切り替わってしまう』バグ(表示上の問題)を修正。
《▼大きな機能追加》
●文字装飾で実際に出力されるHTML要素の変更機能。
●検索語のハイライトに使われるHTML要素を strong 以外に変更できる機能。
《▼細かな機能追加》
●鍵付き投稿で、本文の1行目だけでなくさらに2行目も常時見せるようにできる設定機能。
●ログイン者限定動作時にTOPに表示されるメッセージを自由に書き換える機能。
●ハッシュタグ未集計時の文言の変更機能。
《▼仕様改善》
●任意のディレクトリにあるスキンを手動指定できる設定項目を、条件によっては非表示にするよう改善。
●文字装飾記法の「隠す」を使って隠される範囲全体を指定要素で囲むよう改善。
●高負荷Botへの軽い対策を追加。
●別タブで開くリンクにrel属性も出力する仕様改善。
《▼スキン更新》
(なし)
《▼不具合修正》
●IF文の条件にパーセントエンコーディングされた文字列を含めると、IF文として解釈されなくなる不具合を修正。
●カテゴリ概要文にHTMLを使用可能にしているとき、カテゴリツリーではソースがそのまま見えてしまっていた不具合を修正。
更新点について詳しい解説は、リリースノート(No.43)をご参照下さい。
アナウンス:
✔Twitter:
(ツイート埋め込み処理中...)Twitterで見る
✔Bluesky
✔Pawoo(Mastodon)
🍨Re:4548◆はい。可能ですよ。画像の掲載記法を単に横に続けて書けば良いだけです。


ただ、キャプション付きで表示する場合は figure要素を使って出力されますので、何のCSSも適用されていない状態だと横には並びません。標準添付の各スキンなら横並びになるよう .embeddedpictbox に装飾を適用してありますが、1から自作するスキンの場合には自力で対処して頂く必要があります。(figure要素をinlineにするよう装飾すれば良いです。)


ありがとうございます。javascriptはあまりよくわかっていないので詳しく教えていただけて良かったです🙇
解決したなら良かったです。(╹◡╹)ノ >>4545
🥟Re:4543◆今のところ、実装上の都合で「SITUATION:CLASS」にログイン有無のキーワードを加えられないのですが、何か良さげな実装方法を思いついた場合には考えます。ただ、おっしゃる通り、ログインしていなければ特に何も操作はできませんので、CSSが適用されなかった場合まで考慮する必要はないのではないかとは思います。
さて、スキンディレクトリ名の話ですが。なるほど、その場合は、
[[INCLUDE:head1.html]]
<link type="text/css" rel="stylesheet" href="スキン固有ファイル名.css">
[[INCLUDE:head2.html]]
……のように、ヘッダ用の共通ファイルを2つに分けて頂いて、CSSを読み込む行だけは各スキンに直接書いて頂くのが最も簡単な気がします。
なお、共通ファイルを2つに分けるのが嫌な場合は、先のJavaScriptでスキンディレクトリ名を変数 skinDirName に得ておいて、
document.write('<link type="text/css" rel="stylesheet" href="[[PATH:SKINDIR]]' + skinDirName + '.css">');
……のようなJavaScriptを使ってCSSファイルを読み込むという方法もあります。
もし、「今時 document.write はないのでは……」と思われる場合には、以下のようなモダンな書き方もできます。
let skincss = document.createElement('link');
skincss.rel = 'stylesheet';
skincss.type = 'text/css';
skincss.href = '[[PATH:SKINDIR]]' + skinDirName + '.css';
document.head.appendChild(skincss);
これで、スキンディレクトリ名のCSSファイルを読み込めます。
※JavaScriptでCSSを動的に読み込む場合は、てがろぐ側でのリンク自動調整機能が働きませんので、読み込むCSSファイルパスにはスキンディレクトリ([[PATH:SKINDIR]])も自力で加える必要があります。
畳む
教えていただいたjavascriptをもとに
function getLastPart(path) {
if(path.endsWith('/')) {
path = path.slice(0, -1);
}
const parts = path.split('/');
return parts[parts.length - 1];
}
let path = "[[PATH:SKINDIR]]";
let skinDirName = getLastPart(path);
var skinDircss = document.createElement('link');
skinDircss.href = skinDirName+'.css';
skinDircss.rel = 'stylesheet';
document.head.appendChild(skinDircss);
として考えていたような出力が出来ましたのでご報告いたします。ありがとうございました!
言葉足らずですみません、
ログイン状況を示すキーワードについてですが、
現状では [[QUICKPOST]] 記述あり+管理画面で『ログインしている際にのみ表示する』に設定でCSSで表示非表示を切り替えています
が、これだとソースには出力されているのでCSSが何らかの原因で適用されないような場合には表示されてしまうなぁというのが少し気になってしまい…
見えてしまっても非ログイン時には操作できないので気にしすぎかもしれません。
「ログインしています/していません」等のメッセージを表示したい場合はご教示いただいたjavascriptを試してみます。
スキンディレクトリ名だけが欲しいのは、
複数のスキンを共通部分(<head>~</head>間や<footer>~</footer>など)を一つにしていて各スキンで[[INCLUDE:ファイル名]]で合成して使っているのですがその時のcss名を「スキンディレクトリ名.css」としたかったためです。
CSSファイルの名前を同じ(tegalog.css)にすれば
<link type="text/css" rel="stylesheet" href="tegalog.css">
で行けるのはわかっているんですがその場合どのスキンのCSSを編集しているのかわからなくなる時があるので適用するCSSファイル名を「スキンディレクトリ名.css」として
<link type="text/css" rel="stylesheet" href="[[スキンディレクトリ名]].css">←共通ファイルに書いて各スキンでINCLUDE
みたいなことが出来たらちょっと助かるかなぁと思ったのでした。ニッチな要望ですみません。
🧇Re:4541◆残念ながら、ログイン状況を示すキーワードはありません。ただ、この2条件が成立している状況なら、JavaScriptを使うことで判別は可能です。要は、CSSの中に .Login-Required という定義が存在するかどうかを調べれば良いので、以下のようなJavaScriptで調べられます。
for(let sheet of document.styleSheets) {
for(let rule of sheet.cssRules) {
if(rule.selectorText === '.Login-Required') {
// 非ログイン状態だと分かる
}
}
}
このJavaScriptを、QUICKPOSTの記述位置よりも後に書くか、もしくはページ読み込み完了後に実行されるように書けば、ログインされているかどうかを判別できます。
また、[[PATH:SKINDIR]]で得られる文字列から、スキンディレクトリ名だけを抜き出すには、以下のJavaScriptでできます。
function getLastPart(path) {
if(path.endsWith('/')) {
path = path.slice(0, -1);
}
const parts = path.split('/');
return parts[parts.length - 1];
}
let path = "[[PATH:SKINDIR]]";
let skinDirName = getLastPart(path));
このJavaScriptを使うと、変数 skinDirName には、スキンディレクトリ名だけが入ります。(もうちょっとスマートな方法があるかもしれませんが。^^;)
例えば、[[PATH:SKINDIR]]が/path/to/directory/なら、変数skinDirName にはdirectoryだけが入ります。