編集が必要だと思われる場合は、このページのディスカッションか、サイトスタッフまでご連絡ください。
クレジット
タイトル: Papers, Pages and Post-it Notes
翻訳責任者: nebula2700
翻訳年: 2024
原題: Papers, Pages and Post-it Notes
著作権者: Croquembouche
作成年: 2020
初訳時参照リビジョン: 16
元記事リンク: ソース
これは何?
テキストを別々のページのように表示するコンポーネント。例えば本のページのように。
Croquemboucheによって作成。
ページ分割を再現するその他のコンポーネント:
- ハーマン・フラーの本 左
- ハーマン・フラーの本 右
- Herman Fuller Book Page Right (Chapter Start)
- Herman Fuller GOI: Chapter Start
- Herman Fuller GOI: Left Page v2
- Herman Fuller GOI: Right Page v2
使い方
どんなウィキでも:
[[include :scp-jp:component:pages
| medium=vintage-book
| contents=
<h1>こんにちは、私の本へようこそ。</h1>
執筆にかかった苦労が報われるよう、<em>心から楽しんで</em>もらえればと思います
]]
このコンポーネントには2つのパラメータがあります。
contentsパラメータはいくらでも改行できます。
contentsに以下の文字は使用できません:
- |(パイプ記号)
- `(バッククォート)ただし、直前にバックスラッシュ1がある場合は問題ありません(\`)
- ]](2つの閉じ角括弧)ただし、行末または空白が続く場合に限ります
テキストフォーマット
contentsパラメータはWikidotではレンダリング2されません。私が自分で書いたカスタムパーサー3に直接渡され、HTMLとして出力されます。
慣れ親しんだ素敵なWikidot構文はすべて窓から吹き飛んでしまいます。その代わりに、インラインHTMLを記述しなければなりません。
例:
- 太字にするには、**テキスト**の代わりに<b>テキスト</b>と記述します。
- エムダッシュを作成するには--の代わりに文字通りのエムダッシュ(—)を記述します。
- 罫線を作るには-----の代わりに<hr>と記述します。
通常のHTMLとは違い、各行を<p>…</p>で囲む必要はありません。
画像
画像の標準的なHTMLを使用して、画像を組み込みます:
<img src="https://scp-jp-storage.wdfiles.com/local--files/ページ名/ファイル名">
position="top"またはposition="bottom"を追加することで画像を上部または下部に固定することができます。これにより、画像は表示されるページの上部または下部に固定されます。ただし、これはテキストの途中ではなく、単独で行にある画像にのみ適用されます:
<img position="top" src="URL">
画像を水平方向に中央寄せするには、このCSSをstyle属性に直接追加してください:
<img style="display: block; margin-left: auto; margin-right: auto;" src="URL">
画像が高すぎて1ページに収まらない場合、その下は切り落とされます。
改ページ
あなたは時々こう言いたくなるでしょう「そこまででいいぞ。次の部分は新しいページから始めるんだ。このページの残りは空白で構わないさ。」
そんな時は、単独の行に改ページを追加しましょう:
<br class="page-break">
改ページの次に来るものは、次のページになります。改ページの直前にposition="bottom"の画像がある場合、その画像は期待通り前のページの下部に表示されます。
高度な使用法
CSSはstyleパラメータを介して組み込むことができ、Javascriptはcontentsパラメータに埋め込むことができます。
CSSを使う
styleパラメータに記述したCSSは全てページに適用されます。これを使用することで、微調整をしたり、内容部分で使えるクラスを追加したり、フォントを変更(例)したりできます。
例:
[[include :scp-jp:component:pages
| medium=vintage-book
| style=
@import url('https://fonts.googleapis.com/css2?family=Hachi+Maru+Pop&display=swap');
.page {
font-family: "Hachi Maru Pop", cursive;
margin: 2rem;
}
.page .red {
color: red;
}
| contents=
このテキストは<span class="red">手書き</span>で表示されます。
]]
記事の他の場所にあるCSSモジュールでこのコンポーネントのスタイルを変更することはできません。 — これが唯一の方法です。
ヒント! パラメータは好きな順番で追加できますが、styleパラメータをcontentsパラメータよりも上に置くのが良いでしょう。おそらくcontentsパラメータは非常に長くなります — そのため、設定やCSSをすべて上部にまとめておく方が扱いやすくなるかもしれません。
Javascriptを使う
contentsパラメータはJavascriptのテンプレートリテラルとして解析されます。これがバッククォートを使用できない理由です。
そのため、contentsパラメータ内で埋め込み式(${expression})を使用して任意のJavaScriptを組み込むことができ、それが実行されたものが文字列に代入されます。例:
[[include :scp-jp:component:pages
| medium=vintage-book
| contents=
今日の曜日は${new Date().toLocaleString("default", { weekday: "long" })}です。
]]
この本は読者に今日が何曜日か教えてくれます。
こんなことをする必要はありますか?いいえ、ありません。ただできるというだけです。
任意のJavaScriptを含めることはできますが、OR演算子(||)はパイプ記号で構成されているため使用できないことに注意してください。しかし、ANDとNOTを使用することでORを再現できます: NOT((NOT x) AND (NOT y))は(x OR y)と等価です。Javascriptでは、これは!((!x) && (!y))となります。
媒体のオプション
'medium'パラメータのオプションは以下のとおりです。
私は新しい媒体のオプションのリクエストを積極的に募集しています。言い換えれば、このコンポーネントのタイトルは『Papers, Pages and Post-it Notes』であり、できる限り多用途に設計されていますが、現時点ではいくつかの機能しか実行できないということです。
ページ分割のフォーマットに関するリクエストがありましたら、私にお知らせください(Croquembouche)。
各媒体はブラウザの幅に影響されない固定アスペクト比を持っています。
ソースコード