!!! [Markdown plugin|https://fswiki.osdn.jp/cgi-bin/wiki.cgi?page=BugTrack%2Dplugin%2F417]
!! 設定の確認
* この [[Help/Markdown]] は'''2022年9月27日版'''です。
** 最新版は(FSWki本体に取り込まれるまでは)[こちら|https://github.com/KazKobara/kati_dark/blob/main/docs/markdown/Help%252FMarkdown.wiki]からご入手ください。
* [Markdown plugin|https://fswiki.osdn.jp/cgi-bin/wiki.cgi?page=BugTrack%2Dplugin%2F417]のインストールと設定方法は[こちら|https://github.com/KazKobara/kati_dark/tree/main/docs/markdown/markdown_plugin_for_fswiki.md]もご参照下さい。
{{markdown
- 以下に該当する場合、設定の見直しが必要です。
- 本ページを表示した場合、CSP (Content-Security-Policy) の警告が出る。
- [要確認!!] ここがピンク色で表示されている。
- [要確認!!] 本リンクをクリックすると、「スクリプトへのリンクが有効になっています。」との警告が表示される。
- 設定見直し方法の例
- WebサーバなどにおいてCSPなどの設定が有効になっていない場合は有効にします。
- CSPが既に有効になっているが 'unsafe-inline' が使用されている場合、'unsafe-inline' を使用しないようにします。代わりに、
- スクリプトを有効にするには、CSP Hash などを使います。
- テキストを装飾する方法につきましては、以下の[テキスト装飾 スタイルの利用](wiki.cgi?page=Help%2FMarkdown#p6)の節をご参照下さい。
- Raw html を使用しない場合は、Discount.pm 中のランタイムフラグに MKD_NOHTML と MKD_SAFELINK を追加するという方法も可能です。
- なお、MKD_SAFELINK はMarkdownのリンク構文で使用可能なプロトコルを (v.2.2.7時点で [generate.c](https://github.com/Orc/discount/blob/v2maint/generate.c) において) https, http, news, ftp に限定しますが、href でのリンクには適用されません。
}}
!! Markdown構文の対応状況
以下の表の最左列の注釈記号がついている Markdown 構文は、その行の構成では未対応です。
, 注釈記号, CPAN, Markdown to HTML converter ,Makefile.PL 中の ./configure.sh オプション, Discount.pm 中のランタイムフラグ, 備考
, *1, [Text::Markdown|https://metacpan.org/pod/Text::Markdown] 1.000031, Markdown.pl,-,-, 27 Dec 2015以降更新無
, *1, [Text::Markdown|https://metacpan.org/pod/Text::Markdown] 1.000031-3, Markdown.pl,-,-, "apt-get -y install libtext-markdown-perl (Ubuntu 20.04, as of Feb. 2022)"
, *2, [Text::Markdown::Discount|https://metacpan.org/pod/Text::Markdown::Discount] 0.12-1, Discount 2.2.6-1, --github-checkbox ,MKD_NOHEADER MKD_NOPANTS, "apt-get -y install libtext-markdown-discount-perl (Ubuntu 20.04, as of Feb. 2022)"
, *3, [Text::Markdown::Discount|https://metacpan.org/pod/Text::Markdown::Discount] 0.13 (357a2ef), Discount 2.1.7 + patches, --with-fenced-code --with-dl=both, MKD_NOHEADER MKD_NOPANTS, [脆弱性|https://github.com/Orc/discount/issues/189] 修正コミット [b002a5a|https://github.com/Orc/discount/commit/b002a5a4db31e42dfb45451c059bc56941c17974]などを取り込む必要があるため、*4 以降を使う方がよいです。
, *4, [Text::Markdown::Discount|https://metacpan.org/pod/Text::Markdown::Discount] ([pull request 中|https://github.com/sekimura/text-markdown-discount/pull/25] の [f395b80|https://github.com/KazKobara/text-markdown-discount/tree/discount-2.2.7]), Discount v2maint branchの最新版 (2.2.7 (v2maint 34a8ebb) と 2.2.7bでテスト), --github-checkbox=input, MKD_NOHEADER MKD_NOPANTS MKD_FENCEDCODE MKD_DLEXTRA MKD_SAFELINK MKD_LATEX, Discountのversionとオプション/フラグ設定の関係は、[こちら|https://github.com/KazKobara/kati_dark/tree/main/docs/markdown/markdown_plugin_for_fswiki.md]の「Markdownの拡張構文を有効にする方法の違い」をご参照下さい。
// apt list libtext-markdown-perl libtext-markdown-discount-perl discount
// [こちら|https://github.com/KazKobara/kati_dark/tree/main/docs/markdown/markdown_plugin_for_fswiki.md]の「Discount Markdown のversionと機能選択方法の違い」に移動。
//
//* 以下の表において、「停止」は ./configure.sh やコマンドが停止することを意味します。「無効」はそれらは停止しないが、指定した機能は有効にならないことを意味します。
//
//, Discount ver.2 保守ブランチ, Makefile.PL 中の ./configure.sh オプション,<<,<<, Discount.pm 中のランタイムフラグ,<<
//, 'v2maint', --with-fenced-code, --with-dl=both (による行頭コロンスペース定義リスト), --github-checkbox[=input], MKD_FENCEDCODE, MKD_DLEXTRA (による行頭コロンスペース定義リスト)
//,2.2.4<= ver. <=2.2.7, 無効 (Invalid option), 無効 (Setting theme default --with-dl), 有効, 有効,<<
//,2.2.0 <= ver. <=2.2.3, 無効 (Invalid option), 無効 (Setting theme default --with-dl), 停止 (Bad option) , 有効,<<
//,2.1.9(3eb3a68)<= ver. < 2.2.0, 無効 (Invalid option),<<, 停止 (Bad option), 有効,<<
//,2.1.9 (088b5ab)<= ver. <=2.1.9 (bde87f6), 停止 (Invalid option),<<, 停止 (Bad option) , 有効, <<
//,2.1.9<= ver. <=2.1.9 (06f029e) ,有効, 停止 (Invalid option) , 停止 (Bad option) , 無効 (unknown option), 有効
//,2.1.8< ver. <2.1.9,有効, 停止 (Invalid option), 停止 (Bad option) , 無効 (unknown option),<<
//,2.1.6<= ver. <=2.1.8,有効,<<, 停止 (Bad option) , 無効 (unknown option),<<
//
// 3eb3a68 Have configure.sh just state that an option is not supported instead of dying.
// (Invalid option: --with-fenced-code. Please use a runtime flag to configure this feature.)
//なお、以下の3構文については [こちらの pull request|https://github.com/Orc/discount/pull/238] で検討と対応が進んでいるようです。
//
// A^サーカムフレックス挟み上付き^、 A~チルダ挟み下付き~、 ==二重等号挟みハイライト==
!! Markdown での入力
{{markdown
ここに Markdown を記述。
}}
二重の閉じ波括弧「}}」の直後は改行でなければなりません。
スペースが入っているなど、改行でない場合はMarkdownブロックが続いていると解釈されます。
!!! 見出し
等号下線題目
========
ハイフン下線大見出し
-----------------------
# シャープ行頭題目
## 大見出し
### 中見出し
#### 小見出し
----
{{markdown
等号下線題目
========
ハイフン下線大見出し
-----------------------
# シャープ行頭題目
## 大見出し
### 中見出し
#### 小見出し
}}
----
なお、FSWikiでは
{{outline}}
により、見出しの一覧を作成できますが、Markdown で作成された見出しは一覧に含まれません。
!!! テキスト装飾
*イタリック*、_イタリック_
**ボールド**、__ボールド__
***ボールドイタリック***、___ボールドイタリック___
*イタリック中の__ボールド__*、_イタリック中の**ボールド**_
**ボールド中の_イタリック_**、__ボールド中の*イタリック*__
{{markdown
*イタリック*、_イタリック_
**ボールド**、__ボールド__
***ボールドイタリック***、___ボールドイタリック___
*イタリック中の__ボールド__*、_イタリック中の**ボールド**_
**ボールド中の_イタリック_**、__ボールド中の*イタリック*__
}}
gタグによる上付き、gタグによる下付き
g^サーカムフレックス挟み上付き^、 g~チルダ挟み下付き~ \*1,\*2,\*3,\*4 ([こちらの pull request](https://github.com/Orc/discount/pull/238) で検討と対応が進んでいるようです。)
g^x、g^x1Y2、g^(サーカムフレックス上付き/半角英数字以外が含まれる場合には丸括弧で挟む) (Discount独自拡張 (Smartypants substitutions))
{{markdown
gタグによる上付き、gタグによる下付き
g^サーカムフレックス挟み上付き^、 g~チルダ挟み下付き~ \*1,\*2,\*3,\*4 ([こちらの pull request](https://github.com/Orc/discount/pull/238) で検討と対応が進んでいるようです。)
g^x、g^x1Y2、g^(サーカムフレックス上付き/半角英数字以外が含まれる場合には丸括弧で挟む) (Discount独自拡張 (Smartypants substitutions))
}}
タグによる下線
~~二重チルダ挟み打消し~~ \*1
これはタグによる打消しです。
タグによる行頭の文字列の打消し
(\*1 の環境では、pタグなどで挟まないと(HTML4.01でのdelタグの仕様により)ブロック要素と解釈されインデントが行われません。)
タグによる行頭の文字列の打消し(pタグ挟み)
{{markdown
タグによる下線
~~二重チルダ挟み打消し~~ \*1
これはタグによる打消しです。
タグによる行頭の文字列の打消し
(\*1 の環境では、pタグなどで挟まないと(HTML4.01でのdelタグの仕様により)ブロック要素と解釈されインデントが行われません。)
タグによる行頭の文字列の打消し(pタグ挟み)
}}
==二重等号挟みハイライト== \*1,\*2,\*3,\*4 ([こちらの pull request](https://github.com/Orc/discount/pull/238) で検討と対応が進んでいるようです。)
{{markdown
==二重等号挟みハイライト== \*1,\*2,\*3,\*4 ([こちらの pull request](https://github.com/Orc/discount/pull/238) で検討と対応が進んでいるようです。)
}}
!! テキスト装飾 スタイルの利用
! 推奨
1. 利用する定義(例えば以下など)をスタイルシートに入れます。
/* Cascading Style Sheets used in Markdown block of FSWiki */
orange {color:orange;} /* type selector */
.orange {color:orange;} /* class selector */
2. 定義したスタイルをMarkdownブロックで利用します。
* その際、利用しているテーマのスタイルシート ./theme/<利用しているテーマ名>/<利用しているテーマ名>.css 以外に上記を追加した場合には、そのスタイルシートを参照する必要があります。
* [kati_dark.css|https://raw.githubusercontent.com/KazKobara/kati_dark/main/kati_dark.css] の"Common Settings Among Themes"の部分にいくつか例を入れてあります。
3. スタイルシート中で定義されたセレクタを用いた修飾の例:
- typeセレクタによる着色
- classセレクタによる着色
- classセレクタおよびtypeセレクタの入れ子による着色
- classセレクタによるハイライト
{{markdown
- typeセレクタによる着色
- classセレクタによる着色
- classセレクタおよびtypeセレクタの入れ子による着色
- classセレクタによるハイライト
}}
! 非推奨
HTML5ではサポートされておりません。
Red,
Orange,
Yellow,
Green,
Cyan,
Blue,
Indigo,
Violet
{{markdown
Red,
Orange,
Yellow,
Green,
Cyan,
Blue,
Indigo,
Violet
}}
! 非推奨
* 以下のようなインラインスタイルやインラインで定義されたスタイルは、(WebサーバのCSPを無効にするか、CSPの style-src に 'unsafe-inline' を設定することにより有効にはなるのですが)セキュリティ上'''非推奨'''です!!
** そのような設定を行っている場合には、CSPなどを有効にし、その設定から 'unsafe-inline' を削除してください。
** MKD_NOSTYLE ランタイムフラグでは は無効になるのですが、少なくとも v2.2.7 では style= は無効になりません。
{{markdown
- インラインスタイルによる着色(**[注意!!]**着色されている場合にはWebサーバのCSP等の設定によりインラインスタイル(及びインラインスクリプト)を禁止してください。)
- インラインで定義されたclassセレクタによる着色(**[注意!!]**着色されている場合にはWebサーバのCSP等の設定によりインラインスタイル(及びインラインスクリプト)を禁止してください。)
}}
{{markdown
- インラインスタイルによる着色(**[注意!!]**着色されている場合にはWebサーバのCSP等の設定によりインラインスタイル(及びインラインスクリプト)を禁止してください。)
- インラインで定義されたclassセレクタによる着色(**[注意!!]**着色されている場合にはWebサーバのCSP等の設定によりインラインスタイル(及びインラインスクリプト)を禁止してください。)
}}
!!! 実体参照符号
実体参照符号の一覧は、例えば、
[こちら|https://www.scollabo.com/banban/apply/ap8.html]
や
[こちら|https://www.w3schools.com/charsets/ref_html_symbols.asp]
などにあります。
© ® ™ Δ π € ⇒ ♠ ♣ ♥ ♦ ∑ √ ∞
{{markdown
© ® ™ Δ π € ⇒ ♠ ♣ ♥ ♦ ∑ √
}}
!! 実体参照符号への自動変換
「&」と(後ろに>が無い)「<」は、それぞれ「&」と「<」に変換されます。
>行頭の「>」はMarkdownの引用構文のため``に変換されます。
行頭以外でも「>」は「>」には変換されません。
「"」は「"」や「\"」には変換されません。
「'」は「'」や「\'」には変換されません。
「\」は「\\」には変換されません。
{{markdown
「&」と(後ろに>が無い)「<」は、それぞれ「&」と「<」に変換されます。
>行頭の「>」はMarkdownの引用構文のため``に変換されます。
行頭以外でも「>」は「>」には変換されません。
「"」は「"」や「\"」には変換されません。
「'」は「'」や「\'」には変換されません。
「\」は「\\」には変換されません。
}}
!!! エスケープ記号"\"
***ボールドイタリック***
\*\*\*アスタリスクで挟まれた通常の文字\*\*\*
エスケープされる記号 \` \* \_ \{ \} \# \+ \- \. \! \\ \) \( \] \[
ただし `\( \) \[ \]` は「\( \LaTeX \)、\[ \LaTeX \]」のように `MKD_LATEX`ランタイムフラグを指定した Discount 2.2.7 (v2maint 34a8ebb) ではエスケープされ、
2.2.7b (v2maint 68db3cd) ではエスケープされずLaTeX埋込になります。
{{markdown
***ボールドイタリック***
\*\*\*アスタリスクで挟まれた通常の文字\*\*\*
エスケープされる記号 \` \* \_ \{ \} \# \+ \- \. \! \\ \) \( \] \[
ただし `\( \) \[ \]` は「\( \LaTeX \)、\[ \LaTeX \]」のように `MKD_LATEX`ランタイムフラグを指定した Discount 2.2.7 (v2maint 34a8ebb) ではエスケープされ、2.2.7b (v2maint 68db3cd) ではエスケープされずLaTeX埋込になります。
}}
!!! 改行
行末に2以上のスペースを入れると、
改行されます。
行末に2以上のスペースが入っていないと、
改行されません。
{{markdown
行末に2以上のスペースを入れると、
改行されます。
行末に2以上のスペースが入っていないと、
改行されません。
}}
!!! 引用
> 引用
{{markdown
> 引用
}}
!! 引用の詳細
> コードブロックとは異なり、
前行末の2スペース改行を含め、__構文__ や タグ は有効です。
>> 入れ子も可能です。
> ただし、連続する引用行は入れ子が深くなる場合を除き、前行の入れ子と同じ深さになります。そのため、ここはまだ入れ子の中です。
>>> ここは、
>> 入れ子の入れ子。
> 入れ子から抜けるには、空行を入れます。
{{markdown
> コードブロックとは異なり、
前行末の2スペース改行を含め、__構文__ や タグ は有効です。
>> 入れ子も可能です。
> ただし、連続する引用行は入れ子が深くなる場合を除き、前行の入れ子と同じ深さになります。そのため、ここはまだ入れ子の中です。
>>> ここは、
>> 入れ子の入れ子。
> 入れ子から抜けるには、空行を入れます。
}}
!!! リスト
!! 順序無しリスト
- 項目1
* 項目2
+ 項目3
{{markdown
- 項目1
* 項目2
+ 項目3
}}
!! 順序有りリスト
1. 項目1
1. 項目2
1. 項目3
{{markdown
1. 項目1
1. 項目2
1. 項目3
}}
! 順序有りリストの詳細
555. 項目1。値が何であれ「整数.」で始まると「1.」から始まる順序有りリストになります。(標準的なMarkdown構文とは異なり、先頭の値からの順序にはなりません。)
-3. 項目2。(標準的なMarkdown構文とは異なり、負の整数も受け付けます。)
- 項目3。項目間の改行やスペースは無視され連続したリストになります。
- 項目4。(標準的なMarkdown構文とは異なり、リストの型が異なっても連続したリストになります。)
{{markdown
555. 項目1。値が何であれ「整数.」で始まると「1.」から始まる順序有りリストになります。(標準的なMarkdown構文とは異なり、先頭の値からの順序にはなりません。)
3. 項目2。(標準的なMarkdown構文とは異なり、負の整数も受け付けます。)
- 項目3。項目間の改行やスペースは無視され連続したリストになります。
- 項目4。(標準的なMarkdown構文とは異なり、リストの型が異なっても連続したリストになります。)
}}
!! アルファベットリスト Discount 拡張構文
// --enable-alpha-list during configuration
// VS Code 1.64.1 未対応
a. 項目1
a. 項目2
a. 項目3
{{markdown
a. 項目1
a. 項目2
a. 項目3
}}
! アルファベットリストの詳細
y. 項目1。文字が何であれ「アルファベット.」で始まると「a.」から始まるアルファベットリストになります。
z. 項目2
- 項目3。リストの型が何であれ項目間の改行やスペースは無視され連続したリストになります。
3. 項目4。(標準的なMarkdown構文とは異なり、リストの型が異なっても連続したリストになります。)
{{markdown
y. 項目1。文字が何であれ「アルファベット.」で始まると「a.」から始まるアルファベットリストになります。
z. 項目2
- 項目3。リストの型が何であれ項目間の改行やスペースは無視され連続したリストになります。
3. 項目4。(標準的なMarkdown構文とは異なり、リストの型が異なっても連続したリストになります。)
}}
!! リスト間に空行が入る場合の不具合
// echo -e "- I\n- II\n\n- III\n- IV\n" | ./markdown
// ./markdown -V
// markdown: discount 3 GHC=INPUT
// (c2617280)でも未解決
[[*3|#p2]][[*4|#p2]]の環境([[*1|#p2]][[*2|#p2]]の環境では未確認)では、以下のように項目と項目との間に空行が入ると
{{markdown
10. I
20. II
30. III
40. IV
}}
以下のように、空行の前後の項目の内容にpタグが挿入されます。
I
II
III
IV
そのためスタイルシートで div.section p などの設定を行っていた場合、それが空行の前後の項目にも反映されるため、その項目が他と異なって表示されます。
この問題は、div.section li p を設定することで div.section p の設定を元に戻すことにより解消できます。
{{markdown
10. I
20. II
30. III
40. IV
}}
また、
{{markdown
10. I
20. II
空行以外がインデント無しで入る場合には項目の内容には p タグは挿入されません。
30. III
40. IV
}}
{{markdown
10. I
20. II
空行以外がインデント無しで入る場合には項目の内容には p タグは挿入されません。
30. III
40. IV
}}
ちなみに、FSWiki構文では、空行が入ると連続したリストにはならず、pタグも挿入されません。
+ I
+ II
+ III
+ IV
+ I
+ II
+ III
+ IV
!!! 階層リスト 拡張構文
4スペースずつインデントさせることで、階層的なリストを表現できます。
なお、Discount markdown のタブ幅は configure オプションの --with-tabstop や MKD_TABSTOP ランタイムフラグで調整できます。
!! 階層とインデント幅の関係
必要なスペース幅は環境依存のようです。
* [[*1|#p2]][[*2|#p2]]の環境では2階層目は1〜4スペース、3層目は5〜8スペース、i層目は4(i-1)-3〜4(i-1)スペースインデント。
* [[*3|#p2]][[*4|#p2]]の環境では1階層目は0〜3スペース、2層目は4〜7スペース、i層目は4i-4〜4i-1スペースインデント。
- 0スペースインデント
- 1スペースインデント
- 2スペースインデント
- 3スペースインデント
- 4スペースインデント
- 5スペースインデント
- 6スペースインデント
- 7スペースインデント
- 8スペースインデント
- 9スペースインデント
- 10スペースインデント
- 11スペースインデント
- 12スペースインデント
- 13スペースインデント
{{markdown
- 0スペースインデント
- 1スペースインデント
- 2スペースインデント
- 3スペースインデント
- 4スペースインデント
- 5スペースインデント
- 6スペースインデント
- 7スペースインデント
- 8スペースインデント
- 9スペースインデント
- 10スペースインデント
- 11スペースインデント
- 12スペースインデント
- 13スペースインデント
}}
!! 順序無し階層リスト
- 項目1
- 項目1-1
- 項目1-2
- 項目1-2-1
- 項目1-2-2
- 項目1-2-2-1
- 項目1-2-2-1-1
- 項目2
- 項目2-1
{{markdown
- 項目1
- 項目1-1
- 項目1-2
- 項目1-4-1
- 項目1-4-2
- 項目1-4-2-1
- 項目1-4-2-1-1
- 項目2
- 項目2-1
}}
!! 順序有り階層リスト
1. 番号付き項目1
1. 番号付き項目1-1
1. 番号付き項目1-2
1. 番号付き項目1-2-1
1. 番号付き項目1-2-2
1. 番号付き項目1-2-2-1
1. 番号付き項目1-2-2-2
1. 番号付き項目2
1. 番号付き項目2-1
1. 番号付き項目2-2
1. 番号付き項目3
{{markdown
1. 番号付き項目1
1. 番号付き項目1-1
1. 番号付き項目1-2
1. 番号付き項目1-2-1
1. 番号付き項目1-2-2
1. 番号付き項目1-2-2-1
1. 番号付き項目1-2-2-2
1. 番号付き項目2
1. 番号付き項目2-1
1. 番号付き項目2-2
1. 番号付き項目3
}}
!!! 混合リスト
// echo -e "- I\n1. II\n" | ./markdown
// echo -e "1. I\n- II\n" | ./markdown
// ./markdown -V
// markdown: discount 3 GHC=INPUT
// (c2617280)でも未解決
[[*3|#p2]][[*4|#p2]]の環境では、2番目以降の項目の型は1番目の項目の型と同じになります。
([[*1|#p2]][[*2|#p2]]の環境では未確認)
{{markdown
- 順序無し項目
1. 順序有り項目
}}
{{markdown
- 順序無し項目
1. 順序有り項目
}}
FSWiki構文では型どおり表示されます。
* FSWiki順序無し項目
+ FSWiki順序有り項目
{{markdown
1. 順序有り項目
- 順序無し項目
}}
{{markdown
1. 順序有り項目
- 順序無し項目
}}
FSWiki構文では型どおり表示されます。
+ FSWiki順序有り項目
* FSWiki順序無し項目
! 階層混合リストの場合
// echo -e "- I\n 1. II\n" | ./markdown
FSWiki と Discount Markdown とでは階層混合リストを実現する際の HTML の記述が異なります。
例えば、FSWiki では以下のように階層毎に独立したリストとして実現されます。
* FSWiki順序無し項目
++ FSWiki順序有り項目
- FSWiki順序有り項目
これに対して、Discount Markdown では入れ子として実現されます。
{{markdown
- Discount順序無し項目
1. Discount順序有り項目
}}
- Discount順序無し項目
- Discount順序有り項目
そのため、前者のみを前提とした theme を利用した場合、後者との表示が意図したものにならない場合があります。
例えば、theme として kati.css を選択すると、順序無し項目後の階層化された順序有り項目は、順序無しとして表示されます。
この問題は、スタイルシートのリストの設定を変更することで修正できます。
{{markdown
- 順序無し項目
1. 順序有り項目
- 順序無し項目
1. 順序有り項目
}}
{{markdown
- 順序無し項目
1. 順序有り項目
- 順序無し項目
1. 順序有り項目
}}
{{markdown
1. 順序有り項目
- 順序無し項目
1. 順序有り項目
- 順序無し項目
}}
{{markdown
1. 順序有り項目
- 順序無し項目
1. 順序有り項目
- 順序無し項目
}}
なお、FSWiki構文では階層化は3段までという制約があります。
* FSWiki順序無し項目
++ FSWiki順序有り項目
*** FSWiki順序無し項目
++++ FSWiki順序有り項目
//FSWiki構文では正しく表示されます(ただし、仕様上3段まで)。
//
//+ FSWiki順序有り項目
//** FSWiki順序無し項目
//*** FSWiki順序有り項目
//++++ FSWiki順序無し項目
!!! タスクリスト github 拡張構文 [[*1|#p2]]
タスク未完了の場合の角括弧 '[ ]' の中にはスペースが必要です。
- [ ] タスク未完了
- [x] タスク完了
{{markdown
- [ ] タスク未完了
- [x] タスク完了
}}
Discount markdown で configure.sh --github-checkbox とした場合([[*2|#p2]]の環境のデフォルト)には、以下のような見た目になります。
{{markdown
}}
Discount markdown で configure.sh --github-checkbox=input とした場合には、以下のような見た目になります。
{{markdown
}}
!!! 説明 (定義リスト)
// Definition List
!! 行頭コロンスペース定義リスト Discount 2.0.4/PHP 拡張構文 [[*1|#p2]][[*2|#p2]]
// VS Code 1.63.2 では未対応
項目
: 説明文。コロンの後ろにはスペースが必要です。
{{markdown
項目
: 説明文。コロンの後ろにはスペースが必要です。
}}
! 行頭コロンスペース定義リストの詳細
項目
: 説明文を複数行で記述する場合は、
: 行頭をコロンスペースで開始するか、
前行の最後にスペースを2つ付け改行します(ただし、次の行が「: 」で始まるとこの行は「項目」になります)。
別名有り項目
別名1
別名2
: 項目に別名を付けることもできます。
{{markdown
項目
: 説明文を複数行で記述する場合は、
: 行頭をコロンスペースで開始するか、
前行の最後にスペースを2つ付け改行します(ただし、次の行が「: 」で始まるとこの行は「項目」になります)。
別名有り項目
別名1
別名2
: 項目に別名を付けることもできます。
}}
!! 等号挟み定義リスト Discount 1.2.3 拡張構文 [[*1|#p2]]
// VS Code 1.63.2 では未対応
=項目=
説明文。説明文の前にはスペースが4つ以上必要です。
{{markdown
=項目=
説明文。説明文の前にはスペースが4つ以上必要です。
}}
! 等号挟み定義リストの詳細
=項目=
説明文を複数行で記述する場合は、
前行の最後にスペースを2つ付け改行します。
=別名有り項目=
=別名1=
=別名2=
項目に別名を付けることもできます。
{{markdown
=項目=
説明文を複数行で記述する場合は、
前行の最後にスペースを2つ付け改行します。
=別名有り項目=
=別名1=
=別名2=
項目に別名を付けることもできます。
}}
!!! リンク
// *3,*4の環境でのオートリンクにはオプション指定が必要 markdown($text, Text::Markdown::Discount::MKD_AUTOLINK)。コマンドラインでは -f autolink 。
- address@example.com https://fswiki.osdn.jp/cgi-bin/wiki.cgi (オートリンク \*1,\*2,(\*3,\*4は MKD_AUTOLINK ランタイムフラグの指定で対応可能です。))
-
- [FSWiki(吹き出し無)](https://fswiki.osdn.jp/cgi-bin/wiki.cgi)
- [FSWiki(""で挟んだ吹き出し有)](https://fswiki.osdn.jp/cgi-bin/wiki.cgi "吹 き 出 し")
- [FSWiki(''で挟んだ吹き出し有)](https://fswiki.osdn.jp/cgi-bin/wiki.cgi '吹 き 出 し')
- [FSWiki(()で挟んだ吹き出し有)](https://fswiki.osdn.jp/cgi-bin/wiki.cgi (吹き出し)) (最初の閉じ括弧までがリンクとなります。)
- [FSWiki(「" "」,「' '」のいずれにも挟まれていない文字列が()内にある場合)](https://fswiki.osdn.jp/cgi-bin/wiki.cgi 文字列) (最初の閉じ括弧までがリンクとなります。)
- [「)」が含まれるURLは<>で挟みます]( '(吹 き 出 し)') ([参考](https://github.com/Orc/discount/issues/260))
{{markdown
- address@example.com https://fswiki.osdn.jp/cgi-bin/wiki.cgi (オートリンク \*1,\*2,(\*3,\*4は MKD_AUTOLINK ランタイムフラグの指定で対応可能です。))
-
- [FSWiki(吹き出し無)](https://fswiki.osdn.jp/cgi-bin/wiki.cgi)
- [FSWiki(""で挟んだ吹き出し有)](https://fswiki.osdn.jp/cgi-bin/wiki.cgi "吹 き 出 し")
- [FSWiki(''で挟んだ吹き出し有)](https://fswiki.osdn.jp/cgi-bin/wiki.cgi '吹 き 出 し')
- [FSWiki(()で挟んだ吹き出し有)](https://fswiki.osdn.jp/cgi-bin/wiki.cgi (吹き出し)) (最初の閉じ括弧までがリンクとなります。)
- [FSWiki(「" "」,「' '」のいずれにも挟まれていない文字列が()内にある場合)](https://fswiki.osdn.jp/cgi-bin/wiki.cgi 文字列) (最初の閉じ括弧までがリンクとなります。)
- [「)」が含まれるURLは<>で挟みます]( '(吹 き 出 し)') ([参考](https://github.com/Orc/discount/issues/260))
}}
//VS Code 1.63.2 では「()で挟んだ吹き出し」は 有効、"",'',()のいずれにも挟まれていない文字列が()内に入っている場合はその構文はリンクとはみなされず、通常の文字列となり、オートリンクが有効な場合にはURLのみリンクとなります。
ちなみに、Wikiでは存在するページ(例えば Help、FrontPage、Menuなど)へのリンクが自動的に生成されます。
{{markdown
しかしながら、Markdownブロック内では、Wikiページ(例えば Help、FrontPage、Menuなど)へのリンクは自動生成されません。
}}
{{markdown
しかしながら、Markdownブロック内では、Wikiページ(例えば Help、FrontPage、Menuなど)へのリンクは自動生成されません。
}}
!!! 内部リンク
!! (#見出し)形式での内部リンク [[*1|#p2]][[*2|#p2]][[*3|#p2]][[*4|#p2]]
以下の(#見出し)形式での内部リンクでは、『本ページのURLの後ろに「URLエンコードされた"#見出し"」が付けられた URL』へリンクが張られます。
""なお、プレビュー時には引数(?より右側)が取り除かれたURLに「URLエンコードされた"#見出し"」が付けられた URLへリンクが張られます。また、[[*1|#p2]]の環境では「URLエンコード」は行われません。
- [見出しへの内部リンク(吹き出し無)](#見出し)
- [見出しへの内部リンク(吹き出し有)](#見出し "吹き出し")
{{markdown
- [見出しへの内部リンク(吹き出し無)](#見出し)
- [見出しへの内部リンク(吹き出し有)](#見出し "吹き出し")
}}
しかしながら、[[*1|#p2]][[*2|#p2]][[*3|#p2]][[*4|#p2]]の環境では、リンクに対応するアンカータグが付けられていないため、リンクをクリックしても「見出し」へは移動しません。この問題は以下の節の対応を行うことで解決できます。
!! FSWikiの見出しへのリンク (ページ名と見出し番号の指定)
FSWikiの1番目の見出には 、2番目の見出には 、n番目の見出には のアンカータグが付けられているため、それを内部リンク構文 [任意のメッセージ](#anchor name) の # の後ろに指定します。また、ページ名を指定する場合は、# の前に「wiki.cgi?page=ページ名」を付けます。
- [3番目のFSWikiの見出しへのリンク(ページ名無)](#p2 "ページ名無")
- [Help/Markdownページの4番目のFSWikiの見出しへのリンク(URLコーディング無)](wiki.cgi?page=Help/Markdown#p3 "URLコーディング無")
- [Help/Markdownページの5番目FSWikiのの見出しへのリンク(URLコーディングで記述)](wiki.cgi?page=Help%2FMarkdown#p4 'URLコーディングで記述')
{{markdown
- [3番目のFSWikiの見出しへのリンク(ページ名無)](#p2 "ページ名無")
- [Help/Markdownページの4番目のFSWikiの見出しへのリンク(URLコーディング無)](wiki.cgi?page=Help/Markdown#p3 "URLコーディング無")
- [Help/Markdownページの5番目のFSWikiの見出しへのリンク(URLコーディングで記述)](wiki.cgi?page=Help%2FMarkdown#p4 'URLコーディングで記述')
}}
!! Markdownブロック内の見出しへのリンク (アンカータグの付与)
「Markdownブロック内の見出し」にアンカータグ を付け、そこで指定した "anchor name" を内部リンク構文 [任意のメッセージ](#anchor name) の # の後ろに指定します。
{{markdown
#### Markdownブロック内の見出し
- [「Markdownブロック内の見出し」へのリンク](#Markdownブロック内の見出し)
- [Help/Markdownページの「Markdownブロック内の見出し」へのリンク](wiki.cgi?page=Help/Markdown#Markdownブロック内の見出し)
#### Anchored Markdown Header
- [Link to "Anchored Markdown Header" (with bubble)](#anchored-markdown-header "speech bubble")
}}
{{markdown
#### Markdownブロック内の見出し
- [「Markdownブロック内の見出し」へのリンク](#Markdownブロック内の見出し)
- [Help/Markdownページの「Markdownブロック内の見出し」へのリンク](wiki.cgi?page=Help/Markdown#Markdownブロック内の見出し)
#### Anchored Markdown Header
- [Link to "Anchored Markdown Header" (with bubble)](#anchored-markdown-header "speech bubble")
}}
なお、
* "anchor name" を見出しと同じ文字列(ただし、見出しに半角スペースが含まれる場合にはそれらをハイフン「-」に変換し、大文字は小文字に変換した)文字列にしておけば他の Markdown 実装との互換性を保てます。
* "anchor name"が Non-ASCII の場合には、いくつかのブラウザ(Chrome 105, Edge 105など)ではアンカータグに移動しないようです(Firefox 105 では移動しました)。
!!! 集約リンク
同じリンク先を繰り返し利用する場合は、リンク先を [ラベル]: の後ろに記述し、[ラベル]または[表示名][ラベル]でリンクを張ります。
{{markdown
- [FSWiki URL]による[FSWiki URL]のための[FSWikiのURL][FSWiki URL]。
- [fswiki git repo], [git repository][fswiki git repo], [git clone][fswiki git repo].
- 「表示名」には[[1]][FSWiki URL]のように角括弧「[]」を含めることが可能です。
- 吹き出しは()で囲むことも可能です。[FSWiki URL ()で挟んだ吹き出し]
[fswiki git repo]: https://osdn.net/projects/fswiki/scm/git/fswiki/ '吹き出し'
[FSWiki URL]: https://fswiki.osdn.jp/cgi-bin/wiki.cgi "吹き出し"
[FSWiki URL ()で挟んだ吹き出し]: https://fswiki.osdn.jp/cgi-bin/wiki.cgi (吹き出し)
}}
{{markdown
- [FSWiki URL]による[FSWiki URL]のための[FSWikiのURL][FSWiki URL]。
- [fswiki git repo], [git repository][fswiki git repo], [git clone][fswiki git repo].
- 「表示名」には[[1]][FSWiki URL]のように角括弧「[]」を含めることが可能です。
- 吹き出しは()で囲むことも可能です。[FSWiki URL ()で挟んだ吹き出し]
[fswiki git repo]: https://osdn.net/projects/fswiki/scm/git/fswiki/ '吹き出し'
[FSWiki URL]: https://fswiki.osdn.jp/cgi-bin/wiki.cgi "吹き出し"
[FSWiki URL ()で挟んだ吹き出し]: https://fswiki.osdn.jp/cgi-bin/wiki.cgi (吹き出し)
}}
{{markdown
- しかしながら、参照先の「ラベル」に「[[角括弧挟みラベル]]」のように角括弧「[]」を含めるとラベルでなく通常の文字列と見なされます。
- 参照する側の「通常のラベル」を「[[通常のラベル]]」のように角括弧「[]」で挟むことは可能です。
[[角括弧挟みラベル]]: https://fswiki.osdn.jp/cgi-bin/wiki.cgi "この行はリンク先の定義ではなく通常の文字列と見なされます。"
[通常のラベル]: https://fswiki.osdn.jp/cgi-bin/wiki.cgi "この行はリンク先の定義と見なされます。"
}}
{{markdown
- しかしながら、参照先の「ラベル」に「[[角括弧挟みラベル]]」のように角括弧「[]」を含めるとラベルでなく通常の文字列と見なされます。
- 参照する側の「通常のラベル」を「[[通常のラベル]]」のように角括弧「[]」で挟むことは可能です。
[[角括弧挟みラベル]]: https://fswiki.osdn.jp/cgi-bin/wiki.cgi "この行はリンク先の定義ではなく通常の文字列と見なされます。"
[通常のラベル]: https://fswiki.osdn.jp/cgi-bin/wiki.cgi "この行はリンク先の定義と見なされます。"
}}
!!! 注釈 拡張構文 [[*1|#p2]][[*2|#p2]][[*3|#p2]][[*4|#p2]]
//Visual Studio Code でも未対応
注釈される文書。[^1]
[^1]: 注釈文。
{{markdown
注釈される文書。[^1]
[^1]: 注釈文。
}}
!!! 画像
外部のWebサーバの画像を表示させる場合は、Webサーバの設定で Content-Security-Policy (CSP) の img-src にそのサーバのURLを追加する必要があります。
- 
- 
// - 
// - 
{{markdown
- 
- 
}}
!! サイズ指定画像
! HTML tag
-
{{markdown
-
}}
! Discount 拡張構文
URL の後ろに '=widthxheight' を付けることで画像サイズを変更できます。
- 
- 
{{markdown
- 
- 
}}
!!! コメント
{{markdown
}}
!!! 水平線
スペースとタブを無視して「-」、「_」、「*」のいずれかの記号が3個以上連続する行は水平線になります。
(ただし、行頭が4スペース以上開くとコードブロックと解釈されます。)
---
-----
- - -
- - -
{{markdown
---
----
- - -
- - -
}}
(以下は三重下線)
___
(以下は四重下線)
____
_ _ _
_ _ _
{{markdown
(以下は三重下線)
___
(以下は四重下線)
____
_ _ _
_ _ _
}}
***
****
* * *
* * *
{{markdown
***
****
* * *
* * *
}}
!!! テーブル 拡張構文 [[*1|#p2]]
| 左寄せ列 | 中央寄せ列 | 右寄せ列 |
|:---------|:----------:|---------:|
| 1-1 | 1-2 | 1-3 |
| 2-1 | 2-2 | 2-3 |
中央寄せ、右寄せが有効になっていない場合は、以下の節の注意点をご参照下さい。
{{markdown
| 左寄せ列 | 中央寄せ列 | 右寄せ列 |
|:---------|:----------:|---------:|
| 1-1 | 1-2 | 1-3 |
| 2-1 | 2-2 | 2-3 |
}}
!! Discount/PHP 拡張構文
左寄せ列 | 中央寄せ列 | 右寄せ列
:--------|:----------:|---------:
1-1 | 1-2 | 1-3
2-1 | 2-2 | 2-3
中央寄せ、右寄せが有効になっていない場合は、以下の節の注意点をご参照下さい。
{{markdown
左寄せ列 | 中央寄せ列 | 右寄せ列
:--------|:----------:|---------:
1-1 | 1-2 | 1-3
2-1 | 2-2 | 2-3
}}
!! 中央寄せ Discount 拡張構文
中央寄せが有効になっていない場合は、以下の節の注意点をご参照下さい。
->中央寄せ<-
{{markdown
->中央寄せ<-
}}
!! 左寄せ、中央寄せ、右寄せを有効にする際の注意点
[[*2|#p2]][[*3|#p2]][[*4|#p2]]の環境はテーブル表示に対応しているのですが、中央寄せ、右寄せのスタイルが以下のようにインラインで出力されます。
左寄せ列 |
中央寄せ列 |
右寄せ列 |
CSPを無効にしたり、CSPの style-src に "unsafe-inline" を指定することで中央寄せ、右寄せで表示されるようになるのですが、この方法は任意のインラインスタイルも有効にするためセキュリティ上'''非推奨'''となります。
セキュリティ的に理想的な対応は、インラインスタイルを用いず、スタイルシートで実現できるように Markdown to HTML Converter (Discountなど)を修正し、それに対応するスタイルシートを参照することになります。
例えば、スタイルシートで以下のような text-align: を定義しておき、
.text-left {
text-align: left !important;
}
.text-right {
text-align: right !important;
}
/* https://raw.githubusercontent.com/twbs/bootstrap/main/dist/css/bootstrap.css */
.text-center {
text-align: center !important;
}
HTMLのthタグとtdタグがそれぞれ以下のように出力されるように Markdown to HTML Converter (Discountなど)を修正します。
左寄せ列 |
中央寄せ列 |
右寄せ列 |
1-1 |
1-2 |
1-3 |
しかしながら、この修正は Markdown to HTML Converter とスタイルシートの両方を修正する必要があります。
汎用的かつ暫定的な妥協策としては CSPの style-src に 'unsafe-hashes' と、上記のインラインスタイルのハッシュ値を追加するという方法があります。具体的には、[httpd-security-fswiki-local.conf|https://raw.githubusercontent.com/KazKobara/dockerfile_fswiki_local/main/data/httpd-security-fswiki-local.conf] の Next-recommended CSP のような設定を有効にします。
!!! 整形済テキスト 拡張構文
// Fenced Code Block / Code Snippet
// インデント無しでの整形済テキストは、FSWikiLite だと[preプラグイン|https://fswiki.osdn.jp/cgi-bin/wiki.cgi/docs?page=FSWikiLite%2Freadme#p3]で実現できます。LiteでないFSWikiには入っていないようです。
!! 文書中のコード
同じ長さのバッククオートで挟まれた箇所は、そのまま表示されます。
{{markdown
Markdownブロック内の文章:
挟まれていない場合「© < _イタリック_」は変換されます。
挟まれている場合「`© < _イタリック_`」は変換されません。
}}
{{markdown
Markdownブロック内の文章:
挟まれていない場合「© < _イタリック_」は変換されます。
挟まれている場合「`© < _イタリック_`」は変換されません。
}}
! 連続するバッククオートをコードブロック内に含める場合
それより長いバッククオートで挟みます。
{{markdown
Markdownブロック内の文章:
挟まれていない場合「```鍵括弧内のバッククオートは表示されません。```」、
挟まれている場合````「```鍵括弧内のバッククオートは表示されます。```」````。
}}
{{markdown
Markdownブロック内の文章:
挟まれていない場合「```鍵括弧内のバッククオートは表示されません。```」、
挟まれている場合````「```鍵括弧内のバッククオートは表示されます。```」````。
}}
!! コードブロック(三重バッククオート上下挟み) [[*1|#p2]][[*2|#p2]]
// Github-flavored
[[*1|#p2]][[*2|#p2]]の環境では、文書中(インライン)のコードとして解釈され、
改行は半角スペースに変換されます。
{{markdown
コードブロック外では「© < _イタリック_」は変換されます。
```shell
echo "1行目。コードブロック内では「© < _イタリック_」は変換されません。"
echo "2行目。コードブロック内では「© < _イタリック_」は変換されません。"
```
}}
{{markdown
コードブロック外では「© < _イタリック_」は変換されます。
```shell
echo "1行目。コードブロック内では「© < _イタリック_」は変換されません。"
echo "2行目。コードブロック内では「© < _イタリック_」は変換されません。"
```
}}
[[*1|#p2]][[*2|#p2]]の環境では、コードブロック内に空行を入れるとコードブロック内とは解釈されず通常の文字と判断されます。
{{markdown
コードブロック外では「© < _イタリック_」は変換されます。
``` shell
echo "1行目。コードブロック内に空行を含む場合でも「© < _イタリック_」は変換されてはなりません。"
echo "2行目。コードブロック内に空行を含む場合でも「© < _イタリック_」は変換されてはなりません。"
```
}}
{{markdown
コードブロック外では「© < _イタリック_」は変換されます。
``` shell
echo "1行目。コードブロック内に空行を含む場合でも「© < _イタリック_」は変換されてはなりません。"
echo "2行目。コードブロック内に空行を含む場合でも「© < _イタリック_」は変換されてはなりません。"
```
}}
!! コードブロック(三重チルダ上下挟み) [[*1|#p2]][[*2|#p2]]
// Pandoc-style fenced code blocks
開始の三重チルダの前に空行が入っていないと、文書中(インライン)と解釈され二重チルダ挟み打消しになります。
{{markdown
コードブロック外では「© < _イタリック_」は変換されます。
~~~shell
echo "1行目。コードブロック内に空行を含む場合でも「© < _イタリック_」は変換されてはなりません。"
echo "2行目。コードブロック内に空行を含む場合でも「© < _イタリック_」は変換されてはなりません。"
~~~
}}
{{markdown
コードブロック外では「© < _イタリック_」は変換されます。
~~~shell
echo "1行目。コードブロック内に空行を含む場合でも「© < _イタリック_」は変換されてはなりません。"
echo "2行目。コードブロック内に空行を含む場合でも「© < _イタリック_」は変換されてはなりません。"
~~~
}}
!! タグによるコードブロック
preタグとcodeタグを使います。
ただし、タグ後の改行と後の改行は、それぞれ内の最初と最後の改行と解釈されます。
また、実体参照符号へは自動変換されないため、手動で変換しなければなりません。
{{markdown
echo "1行目。<code>タグ後に改行がある場合。"
echo "2行目。</code>タグ後に改行がある場合。"
}}
{{markdown
echo "1行目。<code>タグ後に改行がある場合。"
echo "2行目。</code>タグ後に改行がある場合。"
}}
以下のように記述すると囲み内の最初と最後の改行は行われなくなります。
{{markdown
echo "1行目。<code>タグ後に改行がある場合。"
echo "2行目。</code>タグ後に改行がある場合。"
}}
{{markdown
echo "1行目。<code>タグ後に改行がある場合。"
echo "2行目。</code>タグ後に改行がある場合。"
}}
!! コードブロック(4スペース以上のインデント)
空行に続く4スペース以上のインデントはコードブロックになります。
{{markdown
コードブロック外では「© < _イタリック_」は変換されます。
echo "コードブロック内(4スペース以上インデントされた行)では「© < _イタリック_」は変換されません。"
}}
{{markdown
コードブロック外では「© < _イタリック_」は変換されます。
echo "コードブロック内(4スペース以上インデントされた行)では「© < _イタリック_」は変換されません。"
}}
! インデント幅とコードブロック範囲の関係
スペース又はタブのみからなる行と空行を無視して、
4スペース以上のインデントの行が連続する範囲がコードブロックと見なされます。
{{markdown
echo "1スペースインデント。--------------- ここは本文 ---------------"
echo "2スペースインデント"
echo "3スペースインデント。--------------- ここまでは本文 ---------------"
echo "4スペースインデント。--------------- ここからコードブロック ---------------"
echo "5スペースインデント"
echo "6スペースインデント"
echo "1タブインデント"
echo "2タブインデント"
echo "4スペースインデント。前行は1タブスペース"
echo "4スペースインデント。前行は1スペース。------ ここまでコードブロック ------"
}}
{{markdown
echo "1スペースインデント。--------------- ここは本文 ---------------"
echo "2スペースインデント"
echo "3スペースインデント。--------------- ここまでは本文 ---------------"
echo "4スペースインデント。--------------- ここからコードブロック ---------------"
echo "5スペースインデント"
echo "6スペースインデント"
echo "1タブインデント"
echo "2タブインデント"
echo "4スペースインデント。前行は1タブスペース"
echo "4スペースインデント。前行は1スペース。------ ここまでコードブロック ------"
}}
!! コードブロックの入れ子 [[*1|#p2]][[*2|#p2]]
3個以降連続する`及び3個以降連続する~の内、コードブロック内で使用されていないもので上下を挟むか、インデントでのコードブロックを使用します。
{{markdown
````` text
入れ子1段目
```` text
入れ子2段目
~~~ fswiki
入れ子3段目
{{markdown
``` shell
echo "入れ子4段目"
```
}}
~~~
````
`````
}}
{{markdown
````` text
入れ子1段目
```` text
入れ子2段目
~~~ fswiki
入れ子3段目
{{markdown
``` shell
echo "入れ子4段目"
```
}}
~~~
````
`````
}}
!!! LaTeX埋込 拡張構文 [[*1|#p2]][[*2|#p2]][[*3|#p2]]
本構文を利用するには、まず Discount 2.2.3以降を使用している Discount.pm 中のランタイムフラグに MKD_LATEX() を追加します。
これにより、$$…$$、\[…\]、\(…\) のいずれかで挟まれている中身は
(前述の実体参照符号化を除いて)そのまま出力されるようになります。
ただし、以下の注意が必要です。
・間に空行を入れられません。
・Discount 2.2.7 (v2maint 34a8ebb)では、Markdownブロック中の「\」は「\\」にエスケープする必要があります。具体的には、
・\[…\]、\(…\) は \\[…\\] または \\(…\\))とし、
・LaTeXで改行を意味する「\\」は「\\\\」に変更する必要があります。
さらに、LaTeX として出力するためには、 [MathJax|https://github.com/mathjax/MathJax/] などの設定を行う必要があります。
詳しくは 、[こちら|https://github.com/KazKobara/kati_dark/tree/main/docs/markdown/markdown_plugin_for_fswiki.md]の MathJax の設定に関する記述をご参照下さい。
! Markdownブロック内での記述
{{markdown
}}
{{markdown
}}
行内に LaTeX を表示させる場合
`\\(` と `\\)` で(空行を入れず)挟みます。
{{markdown
例えば、 \\( \sin^{2} \theta + \cos^{2} \theta = 1 \\) のように。
}}
{{markdown
例えば、 \\( \sin^{2} \theta + \cos^{2} \theta = 1 \\) のように。
}}
`\\[` と `\\]`、または、`$$` と `$$` で(空行を入れず)挟む場合、
{{markdown
以下のように
\\[ \tan \theta = \frac{\sin \theta}{\cos \theta} \\] および
$$ \lim_{h \to 0} \frac{f(x+h) - f(x)}{h} $$ の数式は、
1行で記述したとしても独立した行に表示されます。
}}
{{markdown
以下のように
\\[ \tan \theta = \frac{\sin \theta}{\cos \theta} \\] および
$$ \lim_{h \to 0} \frac{f(x+h) - f(x)}{h} $$ の数式は、
1行で記述したとしても独立した行に表示されます。
}}
`\begin` `\end` で挟まれていれば、`$$…$$, \\[…\\], \\(…\\) ` は不要です。
また、LaTeX で改行を意味する「\\」は「\\\\」に変更する必要があります。
{{markdown
\begin{eqnarray}
x & = & \sum_{i=1}^n i \\\\
& = & \frac{n (n+1)}{2} \\\\
& \leq & \alpha
\end{eqnarray}
}}
{{markdown
\begin{eqnarray}
x & = & \sum_{i=1}^n i \\\\
& = & \frac{n (n+1)}{2} \\\\
& \leq & \alpha
\end{eqnarray}
}}
MathMLの記述はそのまま Markdownブロック内に張り付けます。
{{markdown
}}
{{markdown
}}
MathJaxで表示された数式から、それに対応する MathML や LaTeX での記述を得る方法につきましては、
[こちら|https://github.com/KazKobara/kati_dark/tree/main/docs/markdown/markdown_plugin_for_fswiki.md]などをご参照下さい。
! Markdownブロック外での記述
上記の script タグが追加されたページは、Markdownブロック外においても(整形済テキストの範囲を除いて)\( \LaTeX \)(まはたMathML)が埋め込まれるようになります。
Markdownブロック内との違いは以下のとおりです。
行内に表示させる場合
- `\\(` と `\\)` の代わりに `\(` と `\)` を使います。ただし、行頭では使えません。
例えば、\( a_2 x^2 + a_1 x + a_0 = \frac{1}{2} \) のように使います。
例えば、\( a_2 x^2 + a_1 x + a_0 = \frac{1}{2} \) のように使います。
独立した行に表示させる場合
- `\\[` と `\\]` の代わりに `\[` と `\]` を使います。ただし、行頭では使えません。
- `$$` と `$$` は行頭でも使えます。
例えば、
$$ \frac{4}{3} \pi r^3 $$のように。
行頭以外では \[ \frac{\sqrt{(x^{2}+1)}}{c_4} \] などの記述も可能です。
例えば、
$$ \frac{4}{3} \pi r^3 $$のように。
行頭以外では \[ \frac{\sqrt{(x^{2}+1)}}{c_4} \] などの記述も可能です。
- `\begin`、`\end` の書式は `$$` と `$$` で挟み、行頭がスペースや `\` にならないようにします。
- LaTeX で改行を意味する「\\」を「\\\\」に変更する必要はありません。
$$ \begin{pmatrix}
a & b \\
c & d \end{pmatrix} $$
$$ \begin{pmatrix}
a & b \\
c & d \end{pmatrix} $$
なお、Markdownブロック外でのみ LaTeX を表示させるのであれば [tex2jax の後継|http://fswiki.osdn.jp/cgi-bin/wiki.cgi?page=BugTrack%2Dwiki%2F352] を検討するという方法もあります。
//!!! その他の Discount 拡張構文
//
{{markdown
}}
!!! 既知の不具合
! FSWikiのPDFプラグインでは、Markdownブロック内の記述は表示されません。
* [解決策] PDFへはWebブラウザなどを用いてご変換下さい。
* [設定例] 印刷で「PDFとして保存」、「レイアウト:縦」を選択し、「その他の設定」で「拡大/縮小(%)」を Chrome や Edge では 120 辺り、「余白: なし」に設定し、「 背景グラフィクス」にチェックを入れます。
//** なお、Firefox 97 で作成した PDF を Acrobat Reader DC 2021.011 64ビットで開くと、リンクのページ辺りで「文書を読み取り中に問題が発生しました(14)。」が表示されます(Firefox 98, Chrome, Edge では正常に表示されます)。