No.3392, No.3391, No.3390, No.3389, No.3388, No.3387, No.3386[7件]

🍵Re:3387◆お役に立ったようで良かったです。(^_^)◆補完の仕様は安易に変えると方々で困ったことになりそうですので、今後も変更しないつもりで居ます。Ver 3.8.1βで、スキンディレクトリを得られる [[PATH:SKINDIR]] という記法を加えましたので、「自分のスキンが格納されているディレクトリの中に存在する何か」を参照したいときには、この記法をhref属性値なりsrc属性値なりに加えて頂けば良いと思っています。◆複数スキンの併用は、「『最新投稿をSSIで埋め込むため専用のスキン』を作って併用する」みたいなことに関しては初期の段階からやっていましたので、その意味では「複数のスキンを並行して使う活用方法を全然想定していなかった」というと語弊があるんですが、そういう「ごくごくオマケ」的な使い方しか想定していなくて、2種類以上のスキンをどちらも等しいくらいの感じの重要度で併用する、みたいな本格的(?)な併用シーンがあるとは(当初は)思っていなかったというか、なんかそんな感じです。(^_^;)
2年以上前(火 23:47:03) 回答/返信

>>3386
質問した方ではありませんがちょうど同じことで悩んでいたので丁寧な解説ありがとうございます🙇♂️
疑問に思っていた部分がクリアになりました。
複数のスキンを並行して使っているので今の小文字linkでのCSSのhrefには補完あり、
大文字LINKのhref・jsや画像のsrcには補完なしという仕様が今後も変わらないと嬉しいです。
個人的に複数スキンを並行して使えるのがてがろぐの良さの一つだと思ってたのでにししさんがそういう使い方を想定してなかったというのはちょっとビックリでした😁
遅ればせながらあけましておめでとうございます。今年もよろしくお願いいたします。
お忙しい日々かと思いますがお体に気を付けてよい一年になりますように✨ 2年以上前(月 01:31:24)

例えば、下記の➊と➋のURLをご覧下さい。
➊デフォルトスキンが適用されているときのURL:
https://ドメインとか/tegalog/tegalog.cgi
➋付箋型スキンが適用されているときのURL:
https://ドメインとか/tegalog/tegalog.cgi?skin=skin-fusen
上記の➊と➋では、使われているスキンの所在(ディレクトリ)は異なるわけですが、
どちらも、ブラウザとしては、アクセスしているのは tegalog.cgi だという点で同じです。
(ブラウザ自身は、適用スキンとか何も把握しておらず、単に、指定のパラメータを与えた tegalog.cgi から返ってくるHTMLを表示しているだけです。)
なので、スキンのHTML内で相対パスを使って何かのファイルを参照すれば、全部『tegalog.cgi の位置から見た相対パス』だと解釈されます。
(HTML内に記述されたパスを解釈して画像なり何なりのファイルを探しに行く作業をするのは、ブラウザ自身だからです。)
ただ、その仕様のままだと、デフォルトスキン(=tegalog.cgiファイルと同じディレクトリに存在するスキン)以外のスキンHTML内に書かれた <link rel="stylesheet" href="hogehoge.css"> みたいな記述で、正しいCSSファイルが読めない問題が発生します。
それを防ぐために、デフォルトスキン以外のスキンが適用されているときには、てがろぐ側がlink要素のhref属性値にスキンの所在を書き足して <link rel="stylesheet" href="directory/hogehoge.css"> みたいに補完して出力します。
……という仕様になっております。
※画像とかJavaScriptとかの読み込みがスキンHTML内にあっても一切補完しませんが、それは「スキンと一緒に画像やスクリプトを配布する」という形態をさっぱり想定していなかったからです。┌(:3」└)┐ というか、当初の設計では「本格的に使うスキンはtegalog.cgiと同じディレクトリに置いて使う」という想定だったので(画像やスクリプト等もそうすれば問題ないわけですから)、「プレビューではとりあえずCSSさえ読めたらええやろ」というようなざっくり思考だったというのもありますけども。┌(:3」└)┐ 複数のスキンを並行して使う活用方法を全然想定していなかったんですよね。^^;
で、ちょっと凝ったスキンを作る際に、その自動補完が邪魔になる場合があります。
link要素だけが問題なら、(小文字のlinkタグしか対象にしないので) <LINK href="hogehoge.css"~> とか大文字を混ぜて書けば良いですが、他にも自動補完される点が3つあります。
そこで、自動補完を阻止するための記述として、3.8.4βで [[NO-LINKADJUSTMENT]] という記法を用意しました。これをスキンに書くと、自動補完を一括拒否できます。
この辺の話は、今、Ver 3.9.0正式版リリースに向けてせっせとドキュメントを書いている最中ですが_(┐「ε:)_
現時点でもβ版の配布ページに解説がありますので、何を対象に自動補完されるのかについては、下記の2ページをご参照下さい。
➡Ver 3.8.4の配布ページで、『🌸➌「現在のスキンでの表示を維持する」目的で挿入される各種の自動調整をスキップできる記法 [[NO-LINKADJUSTMENT]] を追加』という項目の解説をご覧下さい。
➡Ver 3.8.5の配布ページで、『🌸「現在のスキンでの表示を維持する」目的で自動挿入される各種記述をスキップできる記法 [[NO-LINKADJUSTMENT]] を内側スキンにも書けるように改善』という項目の解説をご覧下さい。
あと、 [[NO-LINKADJUSTMENT]] を実装するに至った経緯とかは、この試験場内で「 NO-LINKADJUSTMENT 」とか「 link要素 」とかで検索すると出てくると思います。^^;
畳む 2年以上前(月 00:44:04)