とりあえずASTの内部表現が完成しましたー

Published

いやー。まあ面白い感じになってきたなーっていう感じです。

---
lang: ja
perl: aaa.pl
title: 特に意味は無いのですが
kyoko: on
css:
- normalize.css
---
#=Momota.pw^+^
#:Something [new](#) about [web](#) and [others](#).
#{
+[top](#)
+[tech](#)
++[Perl](#)
++[JS](#)
+[Illust](#)
}

##この記法の意義について
まあ、このサイトを始めるにあたって、色々話したいことはあります。まあそういうことです。

段落を分けることによってきちんと学術的にテキストを書いていくことが出来るだけでなく、改行もしてくれるので日本語的なサポートが可能になります。
HTMLには、様々な側面があり、それらを一つの記法で記述できたら、どんなにか面白いだろうなあと思ったのです。
+特殊行であり特殊段落でもあるようなリストは至極処理が大変です。
+-数字リストなどをこういうふうにすることもやはり可能ではありますが段落も考えてそういうことをし始めると大変になります。
段落を分けてしまえばリストはそこで区切られ、明示的な区別がされます。
>引用をすることも可能です。
段落で分けることも、
/*
aaaa
*/
~~~down
main{
}
~~~
>行でどうにかすることも、
>いくらでも\{可能です。
!もちろん、悪いことを考えているわけではありません。
面白いことを考えてこれらを作成したわけです。
###!注意
注意的文書としていくつかの記法を制定するということになるわけです。面倒くさいなあ。
##


main -> arti[::aa]cle{
#>[::title]::articles
}

##>[::title]::article
##[:time:time:yyyy.mm.dd]
[::content]なにもないだろうなあ##


*©2015 Momota Henka.
こいつが、
---
inner:
- break: 1
head:
- regexp: (?^:#+[>=?!~]?)
text: '#='
inner:
- text: Momota.pw^+^
type: text
type: line
- break: 1
head:
- regexp: (?^:#+[>=?!~]?)
text: '#'
- regexp: (?^:[^:]*:)
text: ':'
inner:
- text: Something [new](#) about [web](#) and [others](#).
type: text
type: line
- head:
- regexp: (?^:#+[>=?!~]?)
text: '#'
inner:
- break: 1
head:
- regexp: (?^:[+-]+)
text: +
inner:
- text: '[top](#)'
type: text
type: line
- break: 1
head:
- regexp: (?^:[+-]+)
text: +
inner:
- text: '[tech](#)'
type: text
type: line
- break: 1
head:
- regexp: (?^:[+-]+)
text: ++
inner:
- text: '[Perl](#)'
type: text
type: line
- break: 1
head:
- regexp: (?^:[+-]+)
text: ++
inner:
- text: '[JS](#)'
type: text
type: line
- break: 1
head:
- regexp: (?^:[+-]+)
text: +
inner:
- text: '[Illust](#)'
type: text
type: line
type: block
- break: 1
head:
- regexp: (?^:#+[>=?!~]?)
text: '##'
inner:
- text: この記法の意義について
type: text
type: line
- break: 2
inner:
- text: まあ、このサイトを始めるにあたって、色々話したいことはあります。まあそういうことです。
type: text
type: paragraph
- break: 1
inner:
- text: 段落を分けることによってきちんと学術的にテキストを書いていくことが出来るだけでなく、改行もしてくれるので日本語的なサポートが可能になります。
type: text
type: paragraph
- break: 1
inner:
- text: HTMLには、様々な側面があり、それらを一つの記法で記述できたら、どんなにか面白いだろうなあと思ったのです。
type: text
type: paragraph
- break: 1
head:
- regexp: (?^:[+-]+)
text: +
inner:
- text: 特殊行であり特殊段落でもあるようなリストは至極処理が大変です。
type: text
type: line
- break: 1
head:
- regexp: (?^:[+-]+)
text: +-
inner:
- text: 数字リストなどをこういうふうにすることもやはり可能ではありますが段落も考えてそういうことをし始めると大変になります。
type: text
type: line
- break: 1
inner:
- text: 段落を分けてしまえばリストはそこで区切られ、明示的な区別がされます。
type: text
type: paragraph
- break: 1
inner:
- text: '>引用をすることも可能です。'
type: text
type: paragraph
- break: 1
inner:
- text: 段落で分けることも、
type: text
type: paragraph
- break: 1
inner:
- text: "\naaaa\n"
type: comment
type: paragraph
- lang: down
text: " main{\n }"
type: code
- break: 1
inner:
- text: '>行でどうにかすることも、'
type: text
type: paragraph
- break: 1
inner:
- text: '>いくらでも\{可能です。'
type: text
type: paragraph
- break: 1
head:
- regexp: (?^:!)
text: '!'
inner:
- text: もちろん、悪いことを考えているわけではありません。
type: text
type: line
- break: 1
inner:
- text: 面白いことを考えてこれらを作成したわけです。
type: text
type: paragraph
- break: 1
head:
- regexp: (?^:#+[>=?!~]?)
text: '###!'
inner:
- text: 注意
type: text
type: line
- break: 1
inner:
- text: 注意的文書としていくつかの記法を制定するということになるわけです。面倒くさいなあ。
type: text
type: paragraph
- break: 3
foot:
- regexp: (?^:#+)
text: '##'
inner: []
type: paragraph
- blockhead:
- text: main
type: text
inner:
- blockhead:
- text: arti
type: text
- command: ''
text: aa
type: command
- text: cle
type: text
inner:
- break: 1
head:
- regexp: (?^:#+[>=?!~]?)
text: '#>'
inner:
- command: ''
text: title
type: command
label: articles
type: line
type: block
type: block
- break: 1
head:
- regexp: (?^:#+[>=?!~]?)
text: '##>'
inner:
- command: ''
text: title
type: command
label: article
type: line
- break: 1
head:
- regexp: (?^:#+[>=?!~]?)
text: '##'
inner:
- command: time
text: time:yyyy.mm.dd
type: command
type: line
- break: 3
foot:
- regexp: (?^:#+)
text: '##'
inner:
- command: ''
text: content
type: command
- text: なにもないだろうなあ
type: text
type: paragraph
- break: 0
head:
- regexp: (?^:\*)
text: '*'
inner:
- text: ©2015 Momota Henka.
type: text
type: line
type: block

こうなります。

ここまでくるみちのりはながかったのです……。

あと、無理にpreで表示するよりもこういうコーディングしたほうがHTML5的にも優しいと思うの

行番号は必ずしも必要ないとの観点から、preのコーディングに戻しました