#roppongijs
https://roppongi-js.connpass.com/event/81528/
references
- https://github.com/izumin5210/OHP - https://github.com/remarkjs/remark - https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-kbd
君だけの最強の markdownをつくろうRoppongi.js #1 - by @izumin5210
View Slide
@izumin5210, Web engineer at Wantedly, Inc.
いろいろなマークダウン
### CommonMark標準```# foo## bar- baz- qux- quux```4
### GFM (Github Flavored Markdown)いつも書いてるやつ```table は CommonMark では定義されていない| foo | bar || --- | --- || baz | bim |```5
```task list も CommonMark にない- [x] foo- [ ] bar- [x] baz- [ ] bim```6
### PHP Markdown Extra``````Qiita 等で使える footnote は PHP Markdown Extra 由来だよ[^1][^1]: http://blog.qiita.com/post/105484781374/qiita-markdown-supporting7
ところで,8
Markdownでスライド作りたくない?9
## Markdownでスライド作るやつ- reveal.js- Marp- Qiita10
### How to改ページ```みんな Horizontal rules を使って改ページする---水平線引けなくなってかなしい…```11
###このスライドも Markdownからできてる(自作)```HTML のコメントをいい感じにパースするよいろんな独自ディレクティブがあるよ例えばこれ↑でページ番号がなくなるこのページだけページ番号ないでしょ?```
## Custom parser with remark- remarkjs/remark- unifiedがベース-「テキストを syntax-treeにする」やつ13
### How to use remark```import remark from 'remark'import html from 'remark-html'remark().use(html).process('## Hello world!', (_, file) => {console.log(String(file))})// => Hello world!```14
### Plugin example: remark-kbd```import kbd from 'remark-kbd'remark().use(kbd).use(html).process('||enter||', (_, file) => {console.log(String(file))})// => enter```15
### How to create plugins戦略は2パターン- parser & tokenizerをつくる- => `remark-kdb`- visitor +正規表現でつかまえる- => `mdast-directive-comment`16
### How to test plugins- inputが決まれば outputも決まる- snapshot testingが超絶相性いい- `remark-kbd`- `packages/@ohp/processor - izumin5210/OHP`17
remarkをつかって自分だけの最強の Markdownをつくろう!18
## REFERENCES- remarkjs/remark- plugin集もあるよ!- izumin5210/OHP-このスライドつくったやつ-(ちゃんとメンテしてないのでバグまみれ)19