奥(15)9こんにちは奥です。BacklogプロジェクトでWikiの編集などにBacklog記法を使うことが多々ありますよね。私はMarkdown記法の方が好きなんです。プロジェクト設定で、Backlog記法しか使えなくても使いたいんです。禁断の何かに落ちたので変換するものを作りました。目次ツールについてソースコードはここにあります。このようなファイルがあったとします。HelloWorldこのファイルに対してツールを使います。することで標準出力に、Backlog記法に変換したものが吐きこ出させます。引数として受け取ったMarkdown形式のファイルをASTにパースします。ASTを元に、Backlog記法に変換して、それを最後に標準出力に吐き出します。Tree、日本語で、抽象構文木と言います。血液検査で出てくるASTはアスパラギン酸アミノ基転移酵素だそうです。誠に残念なことに、肝機能の話は出てきません。Tree(構文木)です。抽象化されているため、ASTから元のコードに戻すことはできません。ASTunified.jsのプラグインである、remarkjsのパッケージである、remark-parseを使用してASTにパースします。ASTのフォーマットについては、ここで公開されているのでここを見てました。下記のコードでMarkdownファイルをASTに変換します。processor.parse(content)}たとえば、このようなファイルをASTに変換するとこうなります。}}ASTへのパースはパッケージが公開されているので簡単にできました。JavaScriptの場合はパースされたASTはただのオブジェクトです。これを元に、Backlog記法に変換していきいます。SyntaxASTの各ノードにtypeがあり、これを元に要素がヘッダーなのか、リストなのかなどを判断できます。emphasisといった具合です。ヘッダーの要素を追うためにはさらにノードを辿っていく必要があります。ように辿っていきます。プログラムを書くに当たって再帰的な処理が必要になります。プログラムについての説明は特にないですが、Markdownのフォーマットと、Backlog記法のフォーマットで合致しない部分が幾らか出たのでそれに関しては諦めて処理をせずに空文字を返しています。実際のコードはこのようにしています(一部のみ掲載)。}再帰を経て、再帰を経て、再起を経続けることでBacklog記法に変換できますね。さいごになければ作ればいいじゃないという気持ちとか、ASTへの理解を深めたいという気持ちとかが混ざり合って、1つのツールが出来上がりました。155,370手前じゃない方です。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。使いたいときの注意点を書きました。本が出ていたので読んでみたところよかったので紹介させていただきます。