No.3386
by nishishi. ⌚2023年1月9日(月) 00:44:04〔334日前〕 <1787文字> 編集
お手軽一言掲示板(この辺の文章は「管理画面」の「設定」内にある「フリースペース」タブから編集できます。)
動作サンプルです。 ご自由にお試し下さい。パスワードguest
で管理画面もお試し頂けます。
■いま見ているスキンは「標準スキン」です。他に、
昔のツイッターっぽいスキン(ブルー)、
昔のツイッターっぽいスキン(ピンク)、
付箋型スキン、
シンプル日記スキン、
ジャーナル(日誌)スキン、
ブログタイプスキン(タイトル付きブログっぽくできるスキン)、
黒板スキン、
チャットタイプスキンがあります。
《てがろぐCGIの配布・解説ページに戻る》
動作サンプルです。 ご自由にお試し下さい。パスワードguest
で管理画面もお試し頂けます。
■いま見ているスキンは「標準スキン」です。他に、
昔のツイッターっぽいスキン(ブルー)、
昔のツイッターっぽいスキン(ピンク)、
付箋型スキン、
シンプル日記スキン、
ジャーナル(日誌)スキン、
ブログタイプスキン(タイトル付きブログっぽくできるスキン)、
黒板スキン、
チャットタイプスキンがあります。
《てがろぐCGIの配布・解説ページに戻る》
例えば、下記の➊と➋の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要素 」とかで検索すると出てくると思います。^^;
畳む