Unified
Split
Showing
with
54 additions
and 47 deletions.
- +19 −8 docs/routing.md
- +35 −39 docs/rules.md
| @@ -1,19 +1,30 @@ | ||
| # LukiWikiルーティング仕様 | ||
|
|
||
| PukiWikiと同じように/を用いた階層構造をもたせたページを作ることができます。 | ||
| PukiWikiと同じように/を用いた階層構造をもたせたページを作ることができます。原則的にパス部分がページ名になります。 | ||
| 重要なのは、SSR(サーバーで描画する)部分はリーダーで、SPA(クライアントサイドで描画する)部分はエディタであるという考え方です。 | ||
|
|
||
| ただし、`:`と`.`を含めるページ名は特殊な用途で使用するためページ名に含めることはできません。 | ||
| ただし、`:`と`.`を含めるページ名は特殊な用途で使用するためページ名に含めることはできません。これらの文字が含まれた場合以下のように処理します。 | ||
|
|
||
| ## `:`はSPA部分で使用します。 | ||
| ## SPA部分ではハッシュを用いたルーティングは使用しません | ||
|
|
||
| ページ内のアンカーリンクで使用するため、`#`を用いたルーティングは行いません。 | ||
|
|
||
| 編集する場合、`https://.../MainPage:edit`のようなルーティングになります。このアドレスの内、phpで作用するのはMainPageまでで、残りの:から始まる部分はクライアントサイド側のルーティングとなります。 | ||
| `location.path.split(':')[1]`はSPA側でパラメータとして使用すると言っても差し支えありません。 | ||
| ## `:`はSPA部分で使用します。 | ||
|
|
||
| `https://.../MainPage:history/1`で1世代目のバックアップを表示するみたいなルーティング処理もありえます。 | ||
| 編集する場合、`https://.../MainPage:edit`のようなルーティングになります。 | ||
| このアドレスの内、phpで作用するのはMainPageまでで、残りの`:`から始まる部分はクライアントサイド側で処理するルーティングとなります。 | ||
| `location.path.split(':')[1]`はSPA側でパラメータとして使用します。 | ||
| パラメータの考えからして、`https://.../MainPage:history/1`の場合、MainPageの1世代目のバックアップを表示するという意味になります。 | ||
|
|
||
| ## `.`は添付ファイルとページ名かの判定で使用します。 | ||
|
|
||
| 例えば、`https://.../MainPage/image.png`の場合、`MainPage`に貼り付けられた`image.png`という意味になります。もちろん、`https://.../MainPage/image.ja.png`の場合も`MainPage`に貼り付けられた`image.ja.png`という意味になります。 | ||
| 例えば、`https://.../MainPage/image.png`の場合、`MainPage`に貼り付けられた`image.png`という意味になります。 | ||
| もちろん、`https://.../MainPage/image.ja.png`の場合も`MainPage`に貼り付けられた`image.ja.png`という意味になります。 | ||
| (PukiWikiにおける新形式のrefプラグインの添付ファイルの貼り付け方の仕様準拠) | ||
|
|
||
| ただし、内部的にはSHA1ハッシュでファイルを管理しているため、ファイルのハッシュ値が同じであった場合、複数のページから同一のファイルを参照しているということもあり得ます。 | ||
| このため、拡張子を含まないファイルをアップすることはできません。mimeをチェックし、判別できない場合は.binが付加されます。 | ||
|
|
||
| ただし、添付ファイルは内部的にSHA1ハッシュで実体名を管理しているため、ファイルのハッシュ値が同じであった場合、複数のページから同一のファイルを参照しているということもあり得ます。 | ||
| 言い換えると、外部からは個別のページにファイルがあるように見えますが、ハッシュが同じだった場合同一の実体を参照するということになります。 | ||
|
|
||
| この処理はサーバー側で行います。 |
| @@ -32,6 +32,34 @@ Markdownでは、リスト項目内にブロック型要素(テーブルやコ | ||
| |baz |quz | | ||
| ``` | ||
|
|
||
| この場合以下のように出力されます: | ||
|
|
||
| ```html | ||
| <ul> | ||
| <li>項目1 | ||
| <pre>定義文</pre> | ||
| <ul> | ||
| <li>項目2 | ||
| <table> | ||
| <thead> | ||
| <tr> | ||
| <th>foo</th> | ||
| <th>bar</th> | ||
| </tr> | ||
| </head> | ||
| <tbody> | ||
| <tr> | ||
| <td>baz</td> | ||
| <td>quz</td> | ||
| </tr> | ||
| </tbody> | ||
| </table> | ||
| </li> | ||
| </ul> | ||
| </li> | ||
| </ul> | ||
| ``` | ||
|
|
||
| ### 番号なし | ||
|
|
||
| ``` | ||
| @@ -60,13 +88,19 @@ Markdownでは、リスト項目内にブロック型要素(テーブルやコ | ||
|
|
||
| ### ラジオボタン | ||
|
|
||
| 必要あるのか? | ||
| 必要ある? | ||
|
|
||
| ``` | ||
| ( ) チェックなしレベル1 | ||
| (x) チェックありレベル2 | ||
| ``` | ||
|
|
||
| ### トグルボタン | ||
|
|
||
| ``` | ||
| < > トグルオフ | ||
| <x> トグルオン | ||
| ### 定義文 | ||
| ここはPukiWikiと同じです。Markdownには仕様がありません。 | ||
| @@ -228,41 +262,3 @@ PukiWikiではrefプラグインによる実装でしたがMarkdown準拠とな | ||
| ``` | ||
| [](リンク先)] | ||
| ``` | ||
|
|
||
| ## プラグイン | ||
|
|
||
| 最初のリリースのバージョンでサポートする予定はありません。 | ||
| あくまでも仕様として記載しておきます。 | ||
|
|
||
| オプションは、カンマ区切りで指定します。 | ||
|
|
||
| ### ブロック型 | ||
|
|
||
| 識別子の#が見出しで使われるため、\#から@に変更になっています。 | ||
| 入力は複数行対応のブロック型プラグインと同じです。 | ||
|
|
||
| ``` | ||
| @プラグイン名(オプション,オプション2...){{ | ||
| 変換対象 | ||
| }} | ||
| ``` | ||
|
|
||
| 例えばumlというプラグインがあり、{{ }}でくくられた部分をplantumlでUML画像に変換するという機能のプラグインがあった場合以下のようになります。 | ||
|
|
||
| ``` | ||
| @plantuml{{ | ||
| Bob -> Alice: Hello! | ||
| }} | ||
| ``` | ||
|
|
||
| ### インライン型 | ||
|
|
||
| PukiWikiと全く同じです。 | ||
|
|
||
| ``` | ||
| &プラグイン名(オプション){変換対象} | ||
| ``` | ||
|
|
||
| ### API型 | ||
|
|
||
| PukiWikiにおけるアクション型は現段階では脆弱性の原因になるためサポートしていません。ただし、ajax埋め込み用にアドレスの末尾に`:プラグイン名`を加えることでjsonを出力することはできます。 | ||