---
parent: OutlineText
title: 文法一覧
date: 2018-9-19
tags: 軽量マークアップ言語, 文法
---

ここでは, OutlineText の文法を示していきます.
基本的に Markdown と似せていますが, インデントに対する挙動が異なります.
//見やすい文章//を書くことを注意すれば, OutlineText は自然に解釈し構造化します.

===

# 段落
_____________________
    # 基本的な書き方
        ```xml
        
            段落は, 多くのマークアップ言語と同様に, 特別なマークアップは不要です.
            行を連続して書くことで, その行ブロックが段落になります.
            
            段落を分けるときは, このように空行を挟みます.
            
        ```
        
        [実行結果]
        ==========
            段落は, 多くのマークアップ言語と同様に, 特別なマークアップは不要です.
            行を連続して書くことで, その行ブロックが段落になります.
            
            段落を分けるときは, このように空行を挟みます.
        ==========
    
    # 改行
        ```xml
            バックスラッシュ`\`を2つ行末に書くと, 改行になります. \\
            \\
            サザエさんの家系図を見ると, \\
            サザエはフネの娘で, \\
            タラオはサザエの息子である \\
            ことが分かった.
        ```
        
        [実行結果]
        ==========
            バックスラッシュ`\`を2つ行末に書くと, 改行になります. \\
            \\
            サザエさんの家系図を見ると, \\
            サザエはフネの娘で, \\
            タラオはサザエの息子である \\
            ことが分かった.
        ==========

# 見出し
____________________
    
    # 通常の見出し
        
        ```xml
            # Section
                # SubSection
        ```
        
        [実行結果]
        ==========
            # Section
                # SubSection
        ==========
    
        セクションの見出しは`#`で始めます.
        
        セクションのレベルはインデントの数で決まります.
    
    # そのほかの見出し
        ```xml
            # `#`のみの見出し
                `#`を先頭にタイトルを書くと,見出しになります.
            
            
            `_`による見出し
            _______________
                `_`をタイトルの下に書くことで,見出しになります.
            
            
            # `#`と`_`による見出し
            ___________________
                `#`と`_`を同時につけても見出しになります.
            
        ```
        
        [実行結果]
        ==========
            # `#`のみの見出し
                `#`を先頭にタイトルを書くと,見出しになります.
            
            
            `_`による見出し
            _______________
                `_`をタイトルの下に書くことで,見出しになります.
            
            
            # `#`と`_`による見出し
            ___________________
                `#`と`_`を同時につけても見出しになります.
            
        ==========
    
    
# セクション
_____________________
    
    ```xml
        このフォーマットにはセクションというものがあります.
        
        このように同じインデント数で始まる要素は同じセクションになります.
        
            インデントのレベルが一つ上がると, セクションの階層が一つ上がります.
        
        インデントをもとに戻すと, また同じセクションに戻ります.
        
        # 見出し
            セクションが一つ上がる前に, 見出しを付けるのが通例です.
    ```
    
    [実行結果]
    ==========
        このフォーマットにはセクションというものがあります.
        
        このように同じインデント数で始まる要素は同じセクションになります.
        
            インデントのレベルが一つ上がると, セクションの階層が一つ上がります.
        
        インデントをもとに戻すと, また同じセクションに戻ります.
        
        # 見出し
            セクションが一つ上がる前に, 見出しを付けるのが通例です.
    ==========
    
# リスト
_________________
    
    # 順序なしリスト
        
        ```xml
            * レベル1
                * レベル2
                    * レベル3
                * レベル2
        ```

        [実行結果]
        ==========
            * レベル1
                * レベル2
                    * レベル3
                * レベル2
        ==========
        
    # 順序ありリスト
        ```xml
            1. レベル1
                1.1. レベル2
            2. レベル1
        ```
        
        [実行結果]
        ==========
            1. レベル1
                1.1. レベル2
            2. レベル1
        ==========

        `(番号).`で番号付きリストになります.
        
        最後の`.`を忘れないでください.
        
    # ツリーリスト
        ```xml
            + root
                + file
                + folder
                    + file
        ```
        
        [実行結果]
        ==========
            + root
                + file
                + folder
                    + file
        ==========
        
    # アルファベット順序リスト
        ```xml
            A. 条件
                a. 処理1
                b. 処理2
            B. 条件
                a. 処理3
        ```
        
        [実行結果]
        ==========
            A. 条件
                a. 処理1
                b. 処理2
            B. 条件
                a. 処理3
        ==========
        
    # ローマ数字順序リスト
        ```xml
            I. 第一章
                i. 第一節
                ii. 第二節
            II. 第二章
                i. 第一節
        ```
        
        [実行結果]
        ==========
            I. 第一章
                i. 第一節
                ii. 第二節
            II. 第二章
                i. 第一節
        ==========

    # 組み合わせ
        ```xml
            * リスト
                1. 順序
                2. 順序
            * リスト
                + ツリー
                    + ツリー
        ```
        
        [実行結果]
        ==========
            * リスト
                1. 順序
                2. 順序
            * リスト
                + ツリー
                    + ツリー
        ==========

# 定義リスト
______________
    ```xml
        中条琢磨:
            スポーツ少年. サッカーボールがあれば生きていけると確信している.
        
        中条里美:
            琢磨の姉. 料理が得意.
            自由奔放な弟の世話に手を焼いてる.
        
        水上さつき:
            里美の友達で, 琢磨の元カノ.
            非常におとなしいが, 昔は喧嘩番長であったといううわさがある.
    ```
    
    [実行結果]
    ==========
        中条琢磨:
            スポーツ少年. サッカーボールがあれば生きていけると確信している.
        
        中条里美:
            琢磨の姉. 料理が得意.
            自由奔放な弟の世話に手を焼いてる.
        
        水上さつき:
            里美の友達で, 琢磨の元カノ.
            非常におとなしいが, 昔は喧嘩番長であったといううわさがある.
    ==========
    
# テーブル
______________

    # 横ラベル


        ```xml
            | ラベル0 | ラベル1 | ラベル2 |
            |---------|---------|---------|
            | A       | B       | C       |
            | D       | E       | F       |
        ```

        [実行結果]
        ==========
            | ラベル0 | ラベル1 | ラベル2 |
            |---------|---------|---------|
            | A       | B       | C       |
            | D       | E       | F       |
        ==========


    # 縦ラベル
        
        ```xml
            |---------||---|---|
            | ラベル0 || A | B |
            | ラベル1 || C | D |
            | ラベル2 || E | F |
        ```
        
        [実行結果]
        ==========
            |---------||---|---|
            | ラベル0 || A | B |
            | ラベル1 || C | D |
            | ラベル2 || E | F |
        ==========

    # 縦横ラベル

        ```xml
            | ラベル名 || 種類A | 種類B |
            |----------||-------|-------|
            | ラベル0  || A     | B     |
            | ラベル1  || C     | D     |
            | ラベル2  || E     | F     |
        ```

        [実行結果]
        ==========
            | ラベル名 || 種類A | 種類B |
            |----------||-------|-------|
            | ラベル0  || A     | B     |
            | ラベル1  || C     | D     |
            | ラベル2  || E     | F     |
        ==========
        

    # キャプション付き

        ```xml
            |[キャプション付き]
            |---------||---|---|
            | ラベル0 || A | B |
            | ラベル1 || C | D |
            | ラベル2 || E | F |
        ```
        
        [実行結果]
        ==========
            |[キャプション付き]
            |---------||---|---|
            | ラベル0 || A | B |
            | ラベル1 || C | D |
            | ラベル2 || E | F |
        ==========

# リンク
____________
    # 通常のリンク
        ```xml
            文章中にこのようにしてリンク[ContentsViewer](http://contentsviewer.work)を張ることが可能です.
        ```
        
        [実行結果]
        ==========
            文章中にこのようにしてリンク[ContentsViewer](http://contentsviewer.work)を張ることが可能です.
        ==========
        
    # インラインアンカー
        ```xml
            # [[sugoi-title]] すごいタイトル
                上のようにアンカーを用意して,
                
                このようにページ内で[リンク](#sugoi-title)を張ることが可能です.
        ```
        
        [実行結果]
        ==========
            # [[sugoi-title]] すごいタイトル
                上のようにアンカーを用意して,
                
                このようにページ内で[リンク](#sugoi-title)を張ることが可能です.
        ==========
    
    # URLとEmailアドレス
        ```xml
            URLとEmailアドレスを`<`で囲むことで, リンクになります.
            
            <https://www.google.com/>\\
            <fake@example.com>
        ```
        
        [実行結果]
        ==========
            URLとEmailアドレスを`<`で囲むことで, リンクになります.
            
            <https://www.google.com/>\\
            <fake@example.com>
        =========

# 画像
_____________

    ```xml
        ![OutlineText](CURRENT_DIR/Images/OutlineText.png)
    ```

    [実行結果]
    ==========
        ![OutlineText](CURRENT_DIR/Images/OutlineText.png)
    ==========

# 水平線
__________
    ```xml
        `-`を3つ以上並べると水平線になります.
        
        --------------------------------------
        
        このように区切られます.
    ```
    
    [実行結果]
    ==========
        `-`を3つ以上並べると水平線になります.
        
        --------------------------------------
        
        このように区切られます.
    ==========
    
    
# テキストフォーマット
______________________
    # 重要句
        
        ```xml
            文章内で**重要性, 深刻性, 緊急性**を持つ句があるとき`**`で挟みます.
        ```
        
        [実行結果]
        ==========
            文章内で**重要性, 深刻性, 緊急性**を持つ句があるとき`**`で挟みます.
        ==========
        
    
    # 強調句
        ```xml
            文章内で周囲の文字列と比較して//強調したい句//があるとき`//`で挟みます.
            ふつうは文内の一語または数語に限定され, 文自体の意味に影響します.
        ```
        
        [実行結果]
        ==========
            文章内で周囲の文字列と比較して//強調したい句//があるとき`//`で挟みます.
            ふつうは文内の一語または数語に限定され, 文自体の意味に影響します.
        ==========
    
    
    # マーカー
        
        ```xml
            文章内で読み手, 書き手に__意識を向けたい部分__には`__`で挟みます.
            文章の重要性などには関係はなくただ__目立たせること__に注意してください.
            参考書などに__マーカー__を引く行為に近いです.
        ```
    
        [実行結果]
        ==========
            文章内で読み手, 書き手に__意識を向けたい部分__には`__`で挟みます.
            文章の重要性などには関係はなくただ__目立たせること__に注意してください.
            参考書などに__マーカー__を引く行為に近いです.
        ==========
    
    
    # 打消し線
        ```xml
            文章内で打消し線を使用するときは, ~~打ち消したい部分~~を`~~`で囲みます.
        ```
        
        [実行結果]
        ==========
            文章内で打消し線を使用するときは, ~~打ち消したい部分~~を`~~`で囲みます.
        ==========

# コード
___________________
    # インライン
        
        ```xml
            文章中にこのようにして`Code表記する`ことが可能です.
            
            コード表記内のhtmlタグ`<p>`や, 
            このフォーマットのマークアップ`[ContentsViewer](./)`は無視されます. 
            
            `コード表記内の文字&<>`は自動でエスケープされます.
        ```
    
        [実行結果]
        ==========
            文章中にこのようにして`Code表記する`ことが可能です.
            
            コード表記内のhtmlタグ`<p>`や, 
            このフォーマットのマークアップ`[ContentsViewer](./)`は無視されます. 
            
            `コード表記内の文字&<>`は自動でエスケープされます.
        ==========


    # ブロック
        ```xml
            このようにして`バッククオートx3`でコードブロックを挿入することができます.
            
            `バッククオートx3`の後ろに属性を追加することでコードをハイライトすることが可能です.
            
            ```cpp
                #include <iostream>
            
                using namespace std;
                
                int main(){
                    cout << "Hello World!" << endl;
                
                    return 0;
                }
            ```
        ```
        
        [実行結果]
        ==========
            このようにして`バッククオートx3`でコードブロックを挿入することができます.
            
            `バッククオートx3`の後ろに属性を追加することでコードをハイライトすることが可能です.
            
            ```cpp
                #include <iostream>
            
                using namespace std;
                
                int main(){
                    cout << "Hello World!" << endl;
                
                    return 0;
                }
            ```
        ==========
        

        コードのハイライトに, 外部ライブラリ`SyntaxHighlighter`を使用しています.
        詳細は, [SyntaxHighlighter](https://github.com/syntaxhighlighter/syntaxhighlighter)を参照してください.

        対応しているコードは以下の通りです.
        
        |[対応表]
        | Alias                       | Code        |
        |-----------------------------|-------------|
        | `applescript`               | AppleScript |
        | `actionscript3` `as3`       | AS3         |
        | `bash` `shell`              | Bash        |
        | `coldfusion` `cf`           | ColdFusion  |
        | `cpp` `c`                   | Cpp         |
        | `c#` `c-sharp` `csharp`     | CSharp      |
        | `css`                       | Css         |
        | `delphi` `pascal`           | Delphi      |
        | `diff` `patch` `pas`        | Diff        |
        | `erl` `erlang`              | Erlang      |
        | `groovy`                    | Groovy      |
        | `java`                      | Java        |
        | `jfx` `javafx`              | JavaFX      |
        | `js` `jscript` `javascript` | JScript     |
        | `perl` `pl`                 | Perl        |
        | `php`                       | Php         |
        | `text` `plain`              | Plain       |
        | `ps` `powershell`           | PowerShell  |
        | `py` `python`               | Python      |
        | `ruby` `rails` `ror` `rb`   | Ruby        |
        | `sass` `scss`               | Sass        |
        | `scala`                     | Scala       |
        | `sql`                       | Sql         |
        | `vb` `vbnet`                | Vb          |
        | `xml` `xhtml` `xslt` `html` | Xml         |
        

# ブロック
__________________
    
    ```xml
        [補足事項]
        =======================
            ボックスの中では, __通常通りマークアップが使用可能__です.
            
            [入れ子]
            ============
                ボックスを入れ子にすることが可能です.
            ============
        
        =======================
        
        [ボックスのスタイル :: NOTE]
        ==============
            ボックスのタイトルの横に属性を追加することが可能です.
            
            省略時は, `NOTE`が適用されます.
            
            このほかにも, `CAUTION`, `WARNING`があります.
            
            [:: CAUTION]
            ============
                注意ボックス
            ============
            
            [:: WARNING]
            ============
                警告ボックス
            ============
            
            [:: NOTE]
            =========
                タイトルを省略すると, 属性名がそのままタイトルになります.
            =========
            
        
        ==============
    ```
    
    [実行結果]
    ==========
        [補足事項]
        =======================
            ボックスの中では, __通常通りマークアップが使用可能__です.
            
            [入れ子]
            ============
                ボックスを入れ子にすることが可能です.
            ============
        
        =======================
        
        [ボックスのスタイル :: NOTE]
        ==============
            ボックスのタイトルの横に属性を追加することが可能です.
            
            省略時は, `NOTE`が適用されます.
            
            このほかにも, `CAUTION`, `WARNING`があります.
            
            [:: CAUTION]
            ============
                注意ボックス
            ============
            
            [:: WARNING]
            ============
                警告ボックス
            ============
            
            [:: NOTE]
            =========
                タイトルを省略すると, 属性名がそのままタイトルになります.
            =========
            
        
        ==============
    ==========

# 引用ブロック
_____________
    ```xml
        虐殺の言語の動作原理についてジョンは次のように語った.
        
        >>>
            言語の違いによらない深層の文法だから, 
            そのことばを享受するきみたち自身にはそれが見えない
        >>>
        
    ```
    
    [実行結果]
    ==========
        虐殺の言語の動作原理についてジョンは次のように語った.
        
        >>>
            言語の違いによらない深層の文法だから, 
            そのことばを享受するきみたち自身にはそれが見えない
        >>>
    ==========
    
# 文献参照
_______________________________________________

    ```xml
        このようにして参考にした部分にラベルを振り^[label1]ます.
        
        * 東京都にサザエさん通りがある^[wiki1]のが知られているが, 私は知らなかった.
        * 「諸君 私は戦争が好きだ」^[movie1]
        
        文章最後で文献リストを列挙すると振られたラベルとリンクされます.
        
        文献リストは, 参照された順番に並び替えられます.
        
        参照されなかった文献は表示されません.
        
        ラベルには,グループがあります.`^[group.label]`とすることで,グループを指定できます.
        省略時は,`cite`というグループになります.
        例えば,文章に注釈をつけたい場合は,このようにします^[注.annotation].
        
        
        ----------------------------------------------
        # 注釈
            [注.annotation]: 注釈とは,既述の文章や専門用語についての補足・説明・解説のこと^[wiki-annotation]
            
        # 参考文献
            [label1]: 文献の詳細
            [movie1]: Hellsingアニメ 少佐
            [wiki1]: [wikipedia-サザエさん](https://ja.wikipedia.org/wiki/%E3%82%B5%E3%82%B6%E3%82%A8%E3%81%95%E3%82%93)
            [wiki-annotation]: [wikipedia-注釈](https://ja.wikipedia.org/wiki/%E6%B3%A8%E9%87%88)
    
    ```
    
    [実行結果]
    ==========
        このようにして参考にした部分にラベルを振り^[label1]ます.
        
        * 東京都にサザエさん通りがある^[wiki1]のが知られているが, 私は知らなかった.
        * 「諸君 私は戦争が好きだ」^[movie1]
        
        文章最後で文献リストを列挙すると振られたラベルとリンクされます.
        
        文献リストは, 参照された順番に並び替えられます.
        
        参照されなかった文献は表示されません.
        
        ラベルには,グループがあります.`^[group.label]`とすることで,グループを指定できます.
        省略時は,`cite`というグループになります.
        例えば,文章に注釈をつけたい場合は,このようにします^[注.annotation].
        
        
        ----------------------------------------------
        # 注釈
            [注.annotation]: 注釈とは,既述の文章や専門用語についての補足・説明・解説のこと^[wiki-annotation]
            
        # 参考文献
            [label1]: 文献の詳細
            [movie1]: Hellsingアニメ 少佐
            [wiki1]: [wikipedia-サザエさん](https://ja.wikipedia.org/wiki/%E3%82%B5%E3%82%B6%E3%82%A8%E3%81%95%E3%82%93)
            [wiki-annotation]: [wikipedia-注釈](https://ja.wikipedia.org/wiki/%E6%B3%A8%E9%87%88)
    
    ==========
    
        


# 数式
_________________________________________
    # インライン
        ```xml
        
            有名なオイラーの公式は,$e^{i\theta}=\cos\theta+i\sin\theta$ です.

        ```
        
        [実行結果]
        ==========
            
            有名なオイラーの公式は,$e^{i\theta}=\cos\theta+i\sin\theta$ です.
        
        ==========
    
    # 別行立て
        ```xml
            
            式\eqref{eq:Homogeneous-Transformation}は同次変換の式です. ローカル座標系からワールド座標系への変換です.
            
            ```math
                \begin{align}
                \left[ \begin{matrix} x_w \\ y_w \\ z_w \\ 1 \end{matrix} \right]
                = 
                \left[ \begin{matrix} R_{xx} & R_{xy} & R_{xz} & T_x \\
                                        R_{yx} & R_{yy} & R_{yz} & T_y \\
                                        R_{zx} & R_{zy} & R_{zz} & T_z \\
                                        0    & 0    & 0    & 1 \end{matrix} \right]
                \left[ \begin{matrix} x \\ y \\ z \\ 1 \end{matrix} \right]
                \label{eq:Homogeneous-Transformation}
                \end{align}
                
            ```
        
        ```
        
        [実行結果]
        ==========
            
            式\eqref{eq:Homogeneous-Transformation}は同次変換の式です. ローカル座標系からワールド座標系への変換です.
            
            ```math
                \begin{align}
                \left[ \begin{matrix} x_w \\ y_w \\ z_w \\ 1 \end{matrix} \right]
                = 
                \left[ \begin{matrix} R_{xx} & R_{xy} & R_{xz} & T_x \\
                                        R_{yx} & R_{yy} & R_{yz} & T_y \\
                                        R_{zx} & R_{zy} & R_{zz} & T_z \\
                                        0    & 0    & 0    & 1 \end{matrix} \right]
                \left[ \begin{matrix} x \\ y \\ z \\ 1 \end{matrix} \right]
                \label{eq:Homogeneous-Transformation}
                \end{align}
                
            ```
        
        ==========
    
    
    数式は外部ライブラリ`MathJax`を用いることで実現しています.
    MathJaxは, html内にあるLateX表記された数式を通常の数式に変換するライブラリです.
    MathJaxに関する詳しい説明と導入方法は本家サイト[MathJax](https://www.mathjax.org/)を参照してください.


# コメント
_________________________________________
    ```xml
        ここまで何か本文が書かれて,
        
        <!-- コメントしたい文章 -->
        上のコメント文は表示されません.
        
        <!-- 
            複数行にまたがるような
            コメントにも対応しています.
        -->
        
    
        記事本文<!-- に埋まっているコメント -->はコメントアウトされません.

    ```
    
    [実行結果]
    ==========
        ここまで何か本文が書かれて,
        
        <!-- コメントしたい文章 -->
        上のコメント文は表示されません.
        
        <!-- 
            複数行にまたがるような
            コメントにも対応しています.
        -->
        
    
        記事本文<!-- に埋まっているコメント -->はコメントアウトされません.

    ==========
    

# 自動エスケープ
_________________________________________
    ```xml
        本文中, コード内に含まれる, <, >, &は自動的にエスケープされます.
        
        ただし, 本文中においてhtmlタグとして機能する<br><b>bold</b>
        などは, エスケープされません.
    ```
    
    [実行結果]
    ==========
        本文中, コード内に含まれる, <, >, &は自動的にエスケープされます.
        
        ただし, 本文中においてhtmlタグとして機能する<br><b>bold</b>
        などは, エスケープされません.
    ==========


# Htmlタグ
_________________________________________________________________

    ```xml
        本文でhtmlタグを使用することは可能です.
        
        <p>
            このように, pタグで段落を生成することが可能になったりします.
        </p>
        
        <div>
            <p>
                入れ子になっている要素から<button>ボタン</button>を出したりできます.
            </p>
            
            <p>ただし, __いかなるこのフォーマットのマークアップ__が機能しないことに注意しましょう.</p>
        </div>
        
        |----------|------|
        | 頑張れば | <ul>
                        <li>セル内にリスト</li>
                        <li>を入れることが可能です</li>
                    </ul> |
            
    ```
    
    [実行結果]
    ==========
        本文でhtmlタグを使用することは可能です.
        
        <p>
            このように, pタグで段落を生成することが可能になったりします.
        </p>
        
        <div>
            <p>
                入れ子になっている要素から<button>ボタン</button>を出したりできます.
            </p>
            
            <p>ただし, __いかなるこのフォーマットのマークアップ__が機能しないことに注意しましょう.</p>
        </div>
    
        |----------|------|
        | 頑張れば | <ul>
                        <li>セル内にリスト</li>
                        <li>を入れることが可能です</li>
                    </ul> |
            
    ==========
    
    [::WARNING]
    ===========
        閉じタグが存在するものは必ずそれで閉じてください.
        htmlタグから出たことを認知できません...
    ===========

# リテラル
__________
    # 継続文字
        ```xml
            行末にバックスラッシュ`\`を置くと, そのあとの改行が無視され, 
            行が継続しているとみなされます.
            
            [長いURL](https://ja.wikipedia.org/wiki/%E8%BB%BD%E9%87%8F%E3%83%9E\
            %E3%83%BC%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E8%A8%80%E8%AA%9E)
            
            * このように長い文を含むリストアイテムも, \
              バックスラッシュ`\`を置くことで複数行に分けて書くことができる.
            
        ```
        
        [実行結果]
        ==========
            行末にバックスラッシュ`\`を置くと, そのあとの改行が無視され, 
            行が継続しているとみなされます.
            
            [長いURL](https://ja.wikipedia.org/wiki/%E8%BB%BD%E9%87%8F%E3%83%9E\
            %E3%83%BC%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E8%A8%80%E8%AA%9E)
            
            * このように長い文を含むリストアイテムも, \
              バックスラッシュ`\`を置くことで複数行に分けて書くことができる.
        
        ==========
        

# テキスト置換
________________
    
    |[テキスト置換表]
    | テキスト || 置き換え後 |
    |----------||------------|
    | `(C)`    || (C)        |
    | `(R)`    || (R)        |
    | `(TM)`   || (TM)       |
    | `--`     || --        |
    | `...`    || ...       |
    | `->`     || ->        |
    | `=>`     || =>        |
    | `<-`     || <-        |
    | `<=`     || <=        |
    | `'`      || '         |