簡易なおれおれマークダウン 2019秋の使用例

2021/JUL/21

更新履歴
日付 変更内容
2020/AUG/22 新規作成
2020/AUG/23 文字列の装飾系のタグ 追加
バッファへのコピーと貼り付け 追加
コメント 追加
その他、修正
2020/AUG/27 折り畳み 追加
2020/AUG/29 定義リスト 追加
2020/SEP/16 include処理 追加
2020/SEP/24 DETAIL 追加
2020/SEP/26 DETAIL に追記
単純なテキスト t1.txtのh1関連を修正
2020/OCT/03 リンクのラベルの省略 追加
2020/OCT/10 DETAIL_M 追加
2020/OCT/22 更新履歴と目次の生成 にINDEXを追加
2020/OCT/24 日付 追加
コマンドの実行結果 追加
2020/NOV/18 リンクのbasenameラベル
INC_LINK_BN
2021/FEB/23 preタグbare指定 追加
2021/JUL/21 HTMLサンプルのリンクの説明を追加

目次


簡易なおれおれマークダウン 2019秋

早くも1年くらい経ちましたが、自分の中では結構ずっと使い続けているツールです。

思い腰を上げて、使用例を中心に使い方を記録しておきます。


インストール

kon_pageのpythonモジュールのインストール の手順になります。

上記ページのエイリアス設定 kon_page.rc の中にもありますが、

$ alias to_html='python -m to_html'

を設定しておくようにします。


日本語の文字コード

head.yaml の記述次第ではありますが、、、

自身はJISコード(iso-2022-jp)ばかり使っているので、 JISコードを前提としておきます。;-p)


単純なテキスト

t1.txt

$ cat t1.txt
hello world

こんにちは
世界

こん
    にち
  は
世界

空行が現れると、<p> ... </p> タグで分離されます。

逆に空行が無いと、HTMLにして表示すると改行は無視されるので、 連結されたように表示されます。

行頭から連続する空白は、無視されます。

HTMLへの変換

$ to_html -o t1.html t1.txt

で t1.html が生成されます。

index.txt から index.html を生成したい時は、省略できて

$ to_html

の実行でOKです。

変換結果

t1.html

$ cat t1.html
<html><head><title>title</title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-2022-jp">
<style>pre{ background: lightgray; }</style>
<style>img{ max-width: 100%; height: auto; }</style>
<style>video{ max-width: 100%; height: auto; }</style>
<style>h3{ border-left: solid gray; padding: 1em 0.5em; }</style></head>
<body><p>hello world</p>
<p>こんにちは
世界</p>
<p>こん
にち
は
世界</p></body></html>

本文だけ表示させてみると、こんな感じです。

hello world

こんにちは 世界

こん にち は 世界


見出し

いわゆる

<h1> ... </h1>
<h2> ... </h2>
<h3> ... </h3>
  :

タグの見出しです。

行頭からhに続き数字だけの行があると、そこから次に空行が現れるまが見出しになります。

(確かそんな感じに作ってたはず...)

t2.txt
h1
サンプルt2

h2
一般的な挨拶

h3
朝の場合

おはよう

h3
昼の場合

こんにちは

h3
夜の場合

こんばんは

$ to_html -o t2.html t2.txt

t2.html
<html><head><title>サンプルt2</title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-2022-jp">
<style>pre{ background: lightgray; }</style>
<style>img{ max-width: 100%; height: auto; }</style>
<style>video{ max-width: 100%; height: auto; }</style>
<style>h3{ border-left: solid gray; padding: 1em 0.5em; }</style></head>
<body><h1><a name="c_1_0">サンプルt2</a></h1>
<h2><a name="c_2_1">一般的な挨拶</a></h2>
<h3><a name="c_3_2">朝の場合</a></h3>
<p>おはよう</p>
<h3><a name="c_3_3">昼の場合</a></h3>
<p>こんにちは</p>
<h3><a name="c_3_4">夜の場合</a></h3>
<p>こんばんは</p></body></html>
(三角のクリックでHTMLファイルのソースを表示し、リンクのクリックでHTMLファイルを開きます)


preタグ

<pre> ... </pre>

による、整形済みテキストの貼り付け的なやつです。

自分では、もっぱら端末でのコマンド実行例を、これで貼り付けてます。

行頭から'pre'だけの行から、行頭から'/'だけの行までの間の内容が、 そのまま貼り付けられます。

t3.txt
h1
サンプルt3

h2
実行例

端末でdateと入力します。

pre
$ date
2020年 8月22日 土曜日 15時01分47秒 JST
/

h3
16進数ダンプ

pre
$ date | hd
0000000 32 30 32 30 e5 b9 b4 20 38 e6 9c 88 32 32 e6 97
0000010 a5 20 e5 9c 9f e6 9b 9c e6 97 a5 20 31 35 e6 99
0000020 82 30 35 e5 88 86 30 36 e7 a7 92 20 4a 53 54 0a
0000030
/

$ to_html -o t3.html t3.txt

t3.html
<html><head><title>サンプルt3</title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-2022-jp">
<style>pre{ background: lightgray; }</style>
<style>img{ max-width: 100%; height: auto; }</style>
<style>video{ max-width: 100%; height: auto; }</style>
<style>h3{ border-left: solid gray; padding: 1em 0.5em; }</style></head>
<body><h1><a name="c_1_0">サンプルt3</a></h1>
<h2><a name="c_2_1">実行例</a></h2>
<p>端末でdateと入力します。</p>
<pre>$ date
2020年 8月22日 土曜日 15時01分47秒 JST
</pre>
<h3><a name="c_3_2">16進数ダンプ</a></h3>
<pre>$ date | hd
0000000 32 30 32 30 e5 b9 b4 20 38 e6 9c 88 32 32 e6 97
0000010 a5 20 e5 9c 9f e6 9b 9c e6 97 a5 20 31 35 e6 99
0000020 82 30 35 e5 88 86 30 36 e7 a7 92 20 4a 53 54 0a
0000030
</pre></body></html>
(三角のクリックでHTMLファイルのソースを表示し、リンクのクリックでHTMLファイルを開きます)

bare指定

"pre"の中でHTMLの仕様の下線<u>...</u>などをそのまま使用したい場合などに使います。

"pre"直後の行が"bare"だけの行になっていると、以降、その"pre"の中では、 <u>...</u>などがそのまま記述できます。

ezmd.pyとしては、出力するHTMLデータのpreタグに、独自プロパティのbare="True"を追加するだけの動作をします。

下流のezhtml.py側で、プロパティにbare="True"がついてると、 &, <, > の3つの文字について、"&amp;", "&lt;", "&gt;" のエンコード処理をせずに素通ししてHTMLを生成します。


水平線

<p><hr></p>

による水平線です。

行頭から4つ以上の連続する'-'で、水平線になります。

t4.txt
h1
サンプルt4

hello world

----

こんにちは
世界

----

こん
    にち
  は
世界

----

$ to_html -o t4.html t4.txt

t4.html
<html><head><title>サンプルt4</title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-2022-jp">
<style>pre{ background: lightgray; }</style>
<style>img{ max-width: 100%; height: auto; }</style>
<style>video{ max-width: 100%; height: auto; }</style>
<style>h3{ border-left: solid gray; padding: 1em 0.5em; }</style></head>
<body><h1><a name="c_1_0">サンプルt4</a></h1>
<p>hello world</p>
<p><hr></p>
<p>こんにちは
世界</p>
<p><hr></p>
<p>こん
にち
は
世界</p>
<p><hr></p></body></html>
(三角のクリックでHTMLファイルのソースを表示し、リンクのクリックでHTMLファイルを開きます)


目次

見出しのh1, h2, h3, ... を、目次としてまとめてリンク(アンカータグ)にできます。

index

行頭からindexだけの行があると、見出しによる目次が挿入されます。

t5.txt
h1
サンプルt5

----

目次

index

----

h2
一般的な挨拶

h3
朝の場合

h4
おはよう

h4
おはようさん

h3
昼の場合

h4
こんにちは

h4
ごきげんさん

h3
夜の場合

h4
こんばんは

h4
おばんです

h2
スポーツ

h3
野球

h4
ピッチャー

h4
バッター

h3
サッカー

h4
キーパー

h3
水泳

h4
クロール

h4
平泳ぎ

----

$ to_html -o t5.html t5.txt

t5.html
<html><head><title>サンプルt5</title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-2022-jp">
<style>pre{ background: lightgray; }</style>
<style>img{ max-width: 100%; height: auto; }</style>
<style>video{ max-width: 100%; height: auto; }</style>
<style>h3{ border-left: solid gray; padding: 1em 0.5em; }</style></head>
<body><h1><a name="c_1_0">サンプルt5</a></h1>
<p><hr></p>
<p>目次</p>
<ul><li><a href="#c_1_0">サンプルt5</a>
<ul><li><a href="#c_2_1">一般的な挨拶</a>
<ul><li><a href="#c_3_2">朝の場合</a>
<ul><li><a href="#c_4_3">おはよう</a>
<li><a href="#c_4_4">おはようさん</a></ul>
<li><a href="#c_3_5">昼の場合</a>
<ul><li><a href="#c_4_6">こんにちは</a>
<li><a href="#c_4_7">ごきげんさん</a></ul>
<li><a href="#c_3_8">夜の場合</a>
<ul><li><a href="#c_4_9">こんばんは</a>
<li><a href="#c_4_10">おばんです</a></ul></ul>
<li><a href="#c_2_11">スポーツ</a>
<ul><li><a href="#c_3_12">野球</a>
<ul><li><a href="#c_4_13">ピッチャー</a>
<li><a href="#c_4_14">バッター</a></ul>
<li><a href="#c_3_15">サッカー</a>
<ul><li><a href="#c_4_16">キーパー</a></ul>
<li><a href="#c_3_17">水泳</a>
<ul><li><a href="#c_4_18">クロール</a>
<li><a href="#c_4_19">平泳ぎ</a></ul></ul></ul></ul>
<p><hr></p>
<h2><a name="c_2_1">一般的な挨拶</a></h2>
<h3><a name="c_3_2">朝の場合</a></h3>
<h4><a name="c_4_3">おはよう</a></h4>
<h4><a name="c_4_4">おはようさん</a></h4>
<h3><a name="c_3_5">昼の場合</a></h3>
<h4><a name="c_4_6">こんにちは</a></h4>
<h4><a name="c_4_7">ごきげんさん</a></h4>
<h3><a name="c_3_8">夜の場合</a></h3>
<h4><a name="c_4_9">こんばんは</a></h4>
<h4><a name="c_4_10">おばんです</a></h4>
<h2><a name="c_2_11">スポーツ</a></h2>
<h3><a name="c_3_12">野球</a></h3>
<h4><a name="c_4_13">ピッチャー</a></h4>
<h4><a name="c_4_14">バッター</a></h4>
<h3><a name="c_3_15">サッカー</a></h3>
<h4><a name="c_4_16">キーパー</a></h4>
<h3><a name="c_3_17">水泳</a></h3>
<h4><a name="c_4_18">クロール</a></h4>
<h4><a name="c_4_19">平泳ぎ</a></h4>
<p><hr></p></body></html>
(三角のクリックでHTMLファイルのソースを表示し、リンクのクリックでHTMLファイルを開きます)

目次にする見出しのレベル指定

indexだけの行の直後の行で目次にする見出しのレベルを指定できます。

h1ならレベル1

h2ならレベル2

h3ならレベル3

として、pythonの[...]によるスライスのようにレベルの数値を指定します。

例えば、h1 は目次に含めず、h2以降を目次にしたい場合

index
  2:

例えば、h2とh3だけを目次にしたい場合

index
  2:4

例えば、h2だけを目次にしたい場合

index
  2:3

t6.txt
h1
サンプルt6

----

目次

index
  2:

----

目次2

index
  2:4

----

目次3

index
  2:3

----

h2
一般的な挨拶

h3
朝の場合

h4
おはよう

h4
おはようさん

h3
昼の場合

h4
こんにちは

h4
ごきげんさん

h3
夜の場合

h4
こんばんは

h4
おばんです

h2
スポーツ

h3
野球

h4
ピッチャー

h4
バッター

h3
サッカー

h4
キーパー

h3
水泳

h4
クロール

h4
平泳ぎ

----

$ to_html -o t6.html t6.txt

t6.html
<html><head><title>サンプルt6</title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-2022-jp">
<style>pre{ background: lightgray; }</style>
<style>img{ max-width: 100%; height: auto; }</style>
<style>video{ max-width: 100%; height: auto; }</style>
<style>h3{ border-left: solid gray; padding: 1em 0.5em; }</style></head>
<body><h1><a name="c_1_0">サンプルt6</a></h1>
<p><hr></p>
<p>目次</p>
<ul><li><a href="#c_2_1">一般的な挨拶</a>
<ul><li><a href="#c_3_2">朝の場合</a>
<ul><li><a href="#c_4_3">おはよう</a>
<li><a href="#c_4_4">おはようさん</a></ul>
<li><a href="#c_3_5">昼の場合</a>
<ul><li><a href="#c_4_6">こんにちは</a>
<li><a href="#c_4_7">ごきげんさん</a></ul>
<li><a href="#c_3_8">夜の場合</a>
<ul><li><a href="#c_4_9">こんばんは</a>
<li><a href="#c_4_10">おばんです</a></ul></ul>
<li><a href="#c_2_11">スポーツ</a>
<ul><li><a href="#c_3_12">野球</a>
<ul><li><a href="#c_4_13">ピッチャー</a>
<li><a href="#c_4_14">バッター</a></ul>
<li><a href="#c_3_15">サッカー</a>
<ul><li><a href="#c_4_16">キーパー</a></ul>
<li><a href="#c_3_17">水泳</a>
<ul><li><a href="#c_4_18">クロール</a>
<li><a href="#c_4_19">平泳ぎ</a></ul></ul></ul>
<p><hr></p>
<p>目次2</p>
<ul><li><a href="#c_2_1">一般的な挨拶</a>
<ul><li><a href="#c_3_2">朝の場合</a>
<li><a href="#c_3_5">昼の場合</a>
<li><a href="#c_3_8">夜の場合</a></ul>
<li><a href="#c_2_11">スポーツ</a>
<ul><li><a href="#c_3_12">野球</a>
<li><a href="#c_3_15">サッカー</a>
<li><a href="#c_3_17">水泳</a></ul></ul>
<p><hr></p>
<p>目次3</p>
<ul><li><a href="#c_2_1">一般的な挨拶</a>
<li><a href="#c_2_11">スポーツ</a></ul>
<p><hr></p>
<h2><a name="c_2_1">一般的な挨拶</a></h2>
<h3><a name="c_3_2">朝の場合</a></h3>
<h4><a name="c_4_3">おはよう</a></h4>
<h4><a name="c_4_4">おはようさん</a></h4>
<h3><a name="c_3_5">昼の場合</a></h3>
<h4><a name="c_4_6">こんにちは</a></h4>
<h4><a name="c_4_7">ごきげんさん</a></h4>
<h3><a name="c_3_8">夜の場合</a></h3>
<h4><a name="c_4_9">こんばんは</a></h4>
<h4><a name="c_4_10">おばんです</a></h4>
<h2><a name="c_2_11">スポーツ</a></h2>
<h3><a name="c_3_12">野球</a></h3>
<h4><a name="c_4_13">ピッチャー</a></h4>
<h4><a name="c_4_14">バッター</a></h4>
<h3><a name="c_3_15">サッカー</a></h3>
<h4><a name="c_4_16">キーパー</a></h4>
<h3><a name="c_3_17">水泳</a></h3>
<h4><a name="c_4_18">クロール</a></h4>
<h4><a name="c_4_19">平泳ぎ</a></h4>
<p><hr></p></body></html>
(三角のクリックでHTMLファイルのソースを表示し、リンクのクリックでHTMLファイルを開きます)


リンク

アンカータグによるリンクです。

他のファイルへのリンク

例えば、同じディレクトリにある、最初のサンプルt1のHTMLファイル t1.html へのリンクを貼りたい場合

[[ t1.html ]]

と記述します。

t1.html

6つめのサンプルt6のHTMLファイル t6.html の中の、見出しh3の「サッカー」にリンクを貼りたい場合

t6.htmlをよくみると、該当箇所にアンカー名"c_3_15"が自動生成されてます。

$ cat t6.html
  :
<h4><a name="c_4_14">バッター</a></h4>
<h3><a name="c_3_15">サッカー</a></h3>
<h4><a name="c_4_16">キーパー</a></h4>
  :
[[ t6.html#c_3_15 ]]

と記述します。

t6.html#c_3_15

リンクに表示用の文字列を指定

t6.html#c_3_15

ではあまりに意味不明なので、表示用の文字列を指定できます。

[[ リンクの位置指定 | 表示用の文字列 ]]

の形式で指定します。

例えば

[[ t1.html | 最初のサンプル ]]

最初のサンプル

[[ t6.html#c_3_15 | 6つめのサンプルの「サッカー」 ]]

6つめのサンプルの「サッカー」

などと指定します。

ファイル内の見出しへのリンク

[[ t6.html#c_3_15 | 6つめのサンプルの「サッカー」 ]]

などの自動生成されたアンカー名も分かりにくいです。

同じファイル内の見出しに限っては、'@'を使った位置指定ができます。

例えば、h2の見出し「インストール」へのリンクは

ここをクリックすると [[ @インストール ]] にジャンプします。

ここをクリックすると インストール にジャンプします。

という具合に。

もちろん、表示用の文字列指定も可能です。

[[ @単純なテキスト | 最初の使用例サンプルt1の説明 ]]

最初の使用例サンプルt1の説明

リンクを貼りたい見出しに半角スペース が含まれる場合

例えば、上記の見出しは

h4
リンクを貼りたい見出しに半角スペース が含まれる場合

のように記述していて、「スペース」と「が」の間に半角スペースが1つ入っています。

このような場合は、半角スペースを'$_'に置き換えて指定します。

(すみません。この仕様は実装の都合です)

[[ @リンクを貼りたい見出しに半角スペース$_が含まれる場合 ]]

リンクを貼りたい見出しに半角スペース が含まれる場合

アンカー名を埋めておいてそこにリンクする場合

むしろ、これが通常のリンクの貼り方ですが...

[[ name | アンカー名 ]]

を埋めておけば、HTMLに変換すると

<a name ="アンカー名"></a>

のタグになります。

例えばここに

[[ name | sample_point ]]

を埋めておいて

他の場所から

[[ #sample_point | sample_pointへのリンク ]]

sample_pointへのリンク

などとリンクを貼ります。

リンクのラベルの省略

[[ path_to_html | ラベル ]]

[[ url_to_html | ラベル ]]

の場合に、ラベルの文字列を調べて書くのが面倒です。

'|' の後のラベルの箇所を省略すると、 できるだけ頑張って、 HTMLデータのheaderからtitleを探します。

[[ path ]]

のように'|' のない場合は、 従来通り

[[ path | path ]]

扱いのままです。

リンクのbasenameラベル

[[ ../../foo/bar/hoge.c ]]

のリンクにすると、格好悪いので

[[ ../../foo/bar/hoge.c | hoge.c ]]

などとラベルを整えたりします。

hoge.c の basename の部分が長いと面倒なので、 ラベルに $ だけを書くと、basename を取り出してくれます。

[[ ../../foo/bar/hoge.c | $ ]]

でOK。

[[ ../../foo/bar/hoge.c | hoge.c ]]

と指定するのと同じ結果になります。


番号なしの箇条書き

<ul>
<li> ...
<li> ...
</ul>

による、中黒っぽい点で項目を羅列する感じの箇条書きになるやつです。

ul
foo
bar
hoge
/

という具合に、行頭から'ul'だけの行から、行頭から'/'だけの行までの間の内容が、 箇条書きになります。

途中に空行があっても無視するので、 見やすいように適当に空行を入れても大丈夫です。

入れ子

各行の行頭から続くスペースの数で、入れ子の階層になります。

例えば

ul
一般的な挨拶
  朝の場合
    おはよう
    おはようさん
  昼の場合
    こんにちは
    ごきげんさん
  夜の場合
    こんばんは
    おばんです
スポーツ
  野球
    ピッチャー
    バッター
  サッカー
    キーパー
  水泳
    クロール
    平泳ぎ
/

ならば

途中で改行したい場合

.txt側に改行を入れたい場合

例えば

ul
一般的な挨拶
  朝の場合
    おはよう
    おはようさん
    寿限無(じゅげむ)寿限無(じゅげむ)五劫(ごこう)のすりきれ海砂利(かいじゃり)水魚(すいぎょ)の水行末(すいぎょうまつ)
/

これは、よくあるCのプリプロセッサのような感じで、行末に

\

(バックスラッシュ)を入れて連結します。

ul
一般的な挨拶
  朝の場合
    おはよう
    おはようさん

    寿限無(じゅげむ)寿限無(じゅげむ) \
    五劫(ごこう)のすりきれ \
    海砂利(かいじゃり)水魚(すいぎょ)の \
    水行末(すいぎょうまつ)
/

このように、HTMLになると連結します。

.html側に改行を入れたい場合

HTMLにしたときに、項目を分けたく無いけど改行したい場合は、 改行したい箇所に

\n

を記述します。

例えば

ul
一般的な挨拶
  朝の場合
    おはよう
    おはようさん
    寿限無(じゅげむ)寿限無(じゅげむ)\n五劫(ごこう)のすりきれ\n海砂利(かいじゃり)水魚(すいぎょ)の\n水行末(すいぎょうまつ)
/

と記述すると

このように。

.txt側も.html側も改行を入れたいけど別項目に分けない場合

先の2つの合わせ技で、行末に

\n\

を入れて連結します。

ul
一般的な挨拶
  朝の場合
    おはよう
    おはようさん

    寿限無(じゅげむ)寿限無(じゅげむ)\n\
    五劫(ごこう)のすりきれ\n\
    海砂利(かいじゃり)水魚(すいぎょ)の\n\
    水行末(すいぎょうまつ)
/


画像や動画

<img>
<video>

のタグですが、自分では極シンプルな使い方しかしないので、単純な指定です。

画像は

[[ img | URL ]]

動画は

[[ video | URL ]]

(決め打ちがひどすぎるかも...)

画像の場合

例えば、ここからディレクトリを2つ上がったところにある

../../beat.jpg

を貼り付ける場合

[[ img | ../../beat.jpg ]]

と指定します。

HTML変換結果

<p><img src="../../beat.jpg"></p>

動画の場合

http://kondoh2.html.xdomain.jp/rt/out_v62/cut.mp4

を貼るなら

[[ video | http://kondoh2.html.xdomain.jp/rt/out_v62/cut.mp4 ]]

と指定します。

HTML変換結果

<p><video src="http://kondoh2.html.xdomain.jp/rt/out_v62/cut.mp4" controls playsinline></video></p>


テーブル

最初に作った記述方式はややこしく、あとで作った箇条書きの字下げ方式ばかりを使ってます。

前者はややこしいので、後者の単純な方式だけ説明します。

番号なしの箇条書き

の中身が、テーブルになります。

(なんか日本語が変ですね)

例えば、箇条書きでは

ul
一般的な挨拶
  朝の場合
    おはよう
    おはようさん
  昼の場合
    こんにちは
    ごきげんさん
  夜の場合
    こんばんは
    おばんです
スポーツ
  野球
    ピッチャー
    バッター
  サッカー
    キーパー
  水泳
    クロール
    平泳ぎ
/

ならば

となりました。

テーブルでは、冒頭の

ul

行の指定が

tbl
tbl_ul

の2行の指定になります。

tbl
tbl_ul
一般的な挨拶
  朝の場合
    おはよう
    おはようさん
  昼の場合
    こんにちは
    ごきげんさん
  夜の場合
    こんばんは
    おばんです
スポーツ
  野球
    ピッチャー
    バッター
  サッカー
    キーパー
  水泳
    クロール
    平泳ぎ
/

と記述すれば

一般的な挨拶 朝の場合 おはよう
おはようさん
昼の場合 こんにちは
ごきげんさん
夜の場合 こんばんは
おばんです
スポーツ 野球 ピッチャー
バッター
サッカー キーパー
水泳 クロール
平泳ぎ

このように。

ヘッダセルのように太字でセンタリングしたい場合は、 文字列の先頭に縦棒2つ「||」をつけておきます。

tbl
tbl_ul
||一般的な挨拶
  ||朝の場合
    おはよう
    おはようさん
  ||昼の場合
    こんにちは
    ごきげんさん
  ||夜の場合
    こんばんは
    おばんです
||スポーツ
  ||野球
    ピッチャー
    バッター
  ||サッカー
    キーパー
  ||水泳
    クロール
    平泳ぎ
/

と記述すれば

一般的な挨拶 朝の場合 おはよう
おはようさん
昼の場合 こんにちは
ごきげんさん
夜の場合 こんばんは
おばんです
スポーツ 野球 ピッチャー
バッター
サッカー キーパー
水泳 クロール
平泳ぎ

このように。

箇条書きがベースなので、例えば「九九の表」なんかだと、ちょっと大変です。

九九の表のテキストデータ
tbl
tbl_ul

||-
 ||2
  ||3
   ||4
    ||5
     ||6
      ||7
       ||8
        ||9
||2
 4
  6
   8
    10
     12
      14
       16
        18
||3
 6
  9
   12
    15
     18
      21
       24
        27
||4
 8
  12
   16
    20
     24
      28
       32
        36
||5
 10
  15
   20
    25
     30
      35
       40
        45
||6
 12
  18
   24
    30
     36
      42
       48
        54
||7
 14
  21
   28
    35
     42
      49
       56
        63
||8
 16
  24
   32
    40
     48
      56
       64
        72
||9
 18
  27
   36
    45
     54
      63
       72
        81
/

- 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81


文字列の装飾系のタグ

[[ 装飾指定 | 対象の文字列 ]]

の形式で指定します。

(何でもかんでもこの形式にした感が強く、かなり使い辛いですが...)

[[ s | 打ち消し ]]
[[ - | 打ち消し ]]
[[ em | 強調 ]]
[[ * | 強調 ]]
[[ strong | 強い強調 ]]
[[ ** | 強い強調 ]]
[[ u | 下線 ]]
[[ _ | 下線 ]]
[[ i | 斜体 ]]
[[ / | 斜体 ]]
[[ b | 太字 ]]

打ち消し 打ち消し 強調 強調 強い強調 強い強調 下線 下線 斜体 斜体 太字

複数の種類の指定

入れ子にできますが...

[[ _ | [[ / | こんにちは ]] 、[[ - | せかい ]] [[ b | 世界 ]] ]]

こんにちはせかい 世界

こうなるので、使い辛いです。


バッファへのコピーと貼り付け

割と初期に実装したので、指定の形式にまとまり感が欠けてる気がしますが、 そのまま使ってます。

swbuf
バッファ名
 :
swbuf
p

行頭からswbufだけの行が現れると、その直後の行がバッファ名の指定となり、 次にswbufだけの行と続くpだけの行が現れるまでが、 バッファへのコピー指定になります。

(実装はもっと複雑ですが、仕様としてはそういう事にしておきます ;-p)

swbuf
buf_jugem
p
寿限無(じゅげむ)寿限無(じゅげむ)五劫(ごこう)のすりきれ
swbuf
p

上記の例では、バッファ名 buf_jugem に、

<p>寿限無(じゅげむ)寿限無(じゅげむ)五劫(ごこう)のすりきれ</p>

がコピーされます。

('p'が難解ですが...)

この段階では、内部のバッファにコピーされるだけなので、HTMLには何も反映されません。

[[ paste | バッファ名 ]]

の指定で、バッファ名のバッファにコピーされている内容が貼り付けます。

寿限無の冒頭とは
[[ paste | buf_jugem ]]

[[ b | [[ paste | buf_jugem ]]  ]]
で始まるのは、寿限無です。

tbl
tbl_ul
||名前
  ||冒頭

寿限無
  [[ paste | buf_jugem ]]
/

寿限無の冒頭とは

寿限無(じゅげむ)寿限無(じゅげむ)五劫(ごこう)のすりきれ

寿限無(じゅげむ)寿限無(じゅげむ)五劫(ごこう)のすりきれ

で始まるのは、寿限無です。

名前 冒頭
寿限無

寿限無(じゅげむ)寿限無(じゅげむ)五劫(ごこう)のすりきれ


コメント

行頭が#で始まる行は、コメント行になります。

HTMLに反映されません。

ここはコメントではありません。

#ここはコメントです。

ここはコメントではありません。


折り畳み

<details>
  <summary> label </summary>
    :
</details>

による折り畳みです。

基本の形式は

[[ detail | label | xxx ]]

xxx には [[ ... ]] な形式を指定

よって

[[ detail | label | [[ ... ]] ]]

例えば

[[ detail | 三角をクリックすると | [[ / | 表示されます ]] ]]

三角をクリックすると 表示されます

[[ detail | 秘密のリンク | [[ t1.html | 最初のサンプル ]] ]]

秘密のリンク 最初のサンプル

長くなるときはバッファに書いてから貼り付けます

swbuf
buf_tbl_sample
tbl
tbl_ul
||一般的な挨拶
  ||朝の場合
    おはよう
    おはようさん
  ||昼の場合
    こんにちは
    ごきげんさん
  ||夜の場合
    こんばんは
    おばんです
||スポーツ
  ||野球
    ピッチャー
    バッター
  ||サッカー
    キーパー
  ||水泳
    クロール
    平泳ぎ
/
swbuf
p
[[ detail | 秘密の表 | [[ paste | buf_tbl_sample ]] ]]

秘密の表
一般的な挨拶 朝の場合 おはよう
おはようさん
昼の場合 こんにちは
ごきげんさん
夜の場合 こんばんは
おばんです
スポーツ 野球 ピッチャー
バッター
サッカー キーパー
水泳 クロール
平泳ぎ

これくらい単純なものは、簡単に説明できるのですが...

入れ子が複雑なものになると、説明がかなり困難です。

目次のパターン

自分でよく使うパターンで、開けば目次が表示されるパターンです

swbuf
buf_index
index
  2:
swbuf
p
[[ detail | 目次 | [[ paste | buf_index ]] ]]

目次

更新履歴のパターン

swbuf
buf_update
tbl
tbl_ul
||日付
  ||変更内容
2020/AUG/22
  新規作成
2020/AUG/23
    :
/
swbuf
p
[[ detail | 更新履歴 | [[ paste | buf_update ]] ]]

更新履歴
日付 変更内容
2020/AUG/22 新規作成
2020/AUG/23 文字列の装飾系のタグ 追加
バッファへのコピーと貼り付け 追加
コメント 追加
その他、修正
2020/AUG/27 折り畳み 追加
2020/AUG/29 定義リスト 追加
2020/SEP/16 include処理 追加
2020/SEP/24 DETAIL 追加
2020/SEP/26 DETAIL に追記
単純なテキスト t1.txtのh1関連を修正
2020/OCT/03 リンクのラベルの省略 追加
2020/OCT/10 DETAIL_M 追加
2020/OCT/22 更新履歴と目次の生成 にINDEXを追加
2020/OCT/24 日付 追加
コマンドの実行結果 追加
2020/NOV/18 リンクのbasenameラベル
INC_LINK_BN
2021/FEB/23 preタグbare指定 追加
2021/JUL/21 HTMLサンプルのリンクの説明を追加

リンクのパターン

トップページ でも使ってますが、

ラベル部分にリンクを指定出来ます。

[[ detail | [[ link ]] | [[ ... ]] ]]

例えば

[[ detail | [[ t1.html | 最初のサンプル ]] | [[ paste | buf_tbl_sample ]] ]]

最初のサンプル
一般的な挨拶 朝の場合 おはよう
おはようさん
昼の場合 こんにちは
ごきげんさん
夜の場合 こんばんは
おばんです
スポーツ 野球 ピッチャー
バッター
サッカー キーパー
水泳 クロール
平泳ぎ

文字の部分をクリックするとリンクにジャンプ。

三角や行末以降の空白部分をクリックすると、開きます。


定義リスト

自分ではあまり使いませんが、dlタグのdefinition list

<dl>
  <dt> 名前 </dt><dd> 説明 </dd>
    :
</dl>

なやつです。

ulと同様に字下げで区別します。

例えば

MBS
  毎日放送

ABC
  朝日放送

KTV
  関西テレビ

YTV
  読売テレビ

TVO
  テレビ大阪

というテキストがあったとしたら、その前後を'dl'行と'/'行で囲めばオッケー。

dl

MBS
  毎日放送

ABC
  朝日放送

KTV
  関西テレビ

YTV
  読売テレビ

TVO
  テレビ大阪

/

MBS
毎日放送
ABC
朝日放送
KTV
関西テレビ
YTV
読売テレビ
TVO
テレビ大阪

このように。

まぁ、テーブルにした方が、映えるのかも知れませんね。

tbl
tbl_ul

MBS
  毎日放送

ABC
  朝日放送

KTV
  関西テレビ

YTV
  読売テレビ

TVO
  テレビ大阪

/
MBS 毎日放送
ABC 朝日放送
KTV 関西テレビ
YTV 読売テレビ
TVO テレビ大阪


日付

個人的によく使う日付の形式なので、あれですが

[[ date ]]

と記述すると、次のような形式の現在の日付になります。

2021/JUL/21


コマンドの実行結果

[[ cmd | コマンド文字列 ]]

と記述すると、 コマンド実行結果の標準出力の内容が取り込まれます。

例えば

[[ cmd | date ]]

と記述すると、

2021年 7月21日 水曜日 23時22分41秒 JST

[[ emd | echo pre; ls *.txt | head; echo / ]]

と記述すると、

$ echo pre; ls *.txt | head; echo /
pre
index.txt
t1.txt
t2.txt
t3.txt
t4.txt
t5.txt
t6.txt
/

なので

index.txt
t1.txt
t2.txt
t3.txt
t4.txt
t5.txt
t6.txt

となります。


include処理

include処理の推敲 からの kon_ut にある inc_ut.py を使った、単純なinclude処理が出来ます。

include指定行は、行頭から@で始まり、続いて「@以外または空白文字以外」が1つ以上続くパターンにします。

「@以外または空白文字以外」が1つ以上続く部分が、ファイルの指定になります。

次のデータテキストを用意しています。

TOPS

TOPE

INDEX

INC_LINK

DETAIL

DETAIL_M

更新履歴と目次の生成

TOPSTOPE は、冒頭でよく使う「更新履歴」と「目次」生成用です。

@TOPS
2019/SEP/01
  新規作成
2020/SEP/01
  追記
@TOPE

などと記述すると

swbuf
buf_update
tbl
tbl_ul
||日付
  ||変更内容

2019/SEP/01
  新規作成
2020/SEP/01
  追記

/
swbuf
p
[[ detail | 更新履歴 | [[ paste | buf_update ]] ]]


swbuf
buf_index
index
  2:
swbuf
p
[[ detail | 目次 | [[ paste | buf_index ]] ]]

に展開され

更新履歴
日付 変更内容
2019/SEP/01 新規作成
2020/SEP/01 追記

目次

となります。

「目次」だけ生成したい場合は

INDEX

を使います。

@INDEX

と記述すると

swbuf
buf_index
index
  2:
swbuf
p
[[ detail | 目次 | [[ paste | buf_index ]] ]]

に展開され

目次

となります。

INC_LINK

INC_LINK は preタグでincludeしてバッファに記録しつつ、 detailタグで折り畳んで、ラベルはリンクにします。

@INC_LINK NAME=t1.txt

などと記述すると

swbuf
buf_t1.txt
pre
@t1.txt -nr -s
/
swbuf
p
[[ detail | [[ t1.txt ]] | [[ paste | buf_t1.txt ]] ]]

に展開されて

t1.txt
hello world

こんにちは
世界

こん
    にち
  は
世界

となります。

INC_LINK_BN

INC_LINKとほぼ同じですが、リンクのラベル指定が '$' になってます。 リンクのbasenameラベル

@INC_LINK_BN NAME=../../foo/bar/hoge.c

などと指定した場合、リンクのラベルは ../../foo/bar/hoge.c ではなく、hoge.c になります。

DETAIL

@>sample-1
tbl
tbl_ul
||名前
  ||値
hoge
  123
/
@<
@DETAIL LABEL=サンプル-1 NAME=sample-1

などと記述すると

swbuf
buf_sample-1
tbl
tbl_ul
||名前
  ||値
hoge
  123
/
swbuf
p
[[ detail | サンプル-1 | [[ paste | buf_sample-1 ]] ]]

に展開され

サンプル-1
名前
hoge 123

このようになります。

バッファ名の自動生成を使用すると

@>
tbl
tbl_ul
||名前
  ||値
hoge
  123
/
@<
@DETAIL LABEL=サンプル-2 NAME=$$

と記述する事ができます。

include指示行の展開やincludeバッファの登録の詳細は、 include処理の推敲 をご参照ください。

DETAIL_M

DETAIL と同様に使えます。

@>
tbl
tbl_ul
||名前
  ||値
hoge
  123
/
@<
@DETAIL_M LABEL=サンプル-3 NAME=$$

[[ detail | LABEL | [[ mode | ^\
tbl \
tbl_ul \
||名前 \
 ||値 \
hoge \
  123 \
/
$ ]] ]]

に展開され

サンプル-3
名前
hoge 123

このようになります。