MarkNext のアイコン

MARKDOWN EDITOR

MarkNext

文章・表・図を手元で整え、技術文書として仕上げる。

システム解析で生まれる文章・表・図を、検査可能な仕様書・運用資料・調査報告書へまとめるため、 当社が実務に合わせて開発し、日々の調査業務で使用しています。

これは製品の販売ページでも、配布ページでもありません。 MarkNext は当社が自社の業務のために開発して使っているアプリです。ダウンロード配布や一般向けサポートは行っていません。 このページは「どういう成果物を、どういう手段で仕上げているか」をお見せするためのものです。

MarkNext で日本語の仕様書をソースとライブプレビューに分割表示している画面
左が目次、中央が Markdown のソース、右がライブプレビュー。三つとも同じ場所を表示しています。 画面はすべて架空の調査報告書です。

Excel や DB から得た表を整え、コード生成図と自由配置図を一つの長大文書へまとめ、 章の構成を崩さずに組み替え、検査して PDF・HTML・SVG へ仕上げる。

WORKFLOW調査結果を、納品できる文書へ変える流れ

仕様書のないシステムを調べると、形式の違う情報が大量に集まります。 プログラム、データベース、画面、帳票、運用手順、聞き取りメモ、構成図。 これを一本の文書にまとめるまで、道具を持ち替えずに進められます。

書きながら、出力を見る

ソースと実際の出力表示を左右に並べ、書きながら仕上がりを確認します。

表を整える

Excel やデータベースの結果を貼り付けて並べ替え、項番を振り直し、Markdown の表に戻します。

図を清書する

コードで描いた図や手描きの構成図を、同梱の draw.io で読みやすい配置に直します。

体裁を決める

見出しの番号、字下げ、改ページ、フォント、ページ番号を「スタイル」としてまとめ、文書ごとに切り替えます。

章構成を組み替える

目次を専用画面で開き、節を子節ごと動かします。確定するまで本文は変わりません。

検査する

図が本当に描けるか。見出しやリンクや番号が揃っているか。図が紙の幅に収まるか。納品前にまとめて確かめます。

出力する

同じ文書から PDF・自己完結 HTML・複数ページの HTML サイト・図の一括 SVG を書き出します。

TABLESMarkdown の表を、GUI で編集する

Markdown の表は、書き始めるのは簡単です。けれど列を増やす、行を入れ替える、番号を振り直すとなると、 とたんに手間になります。調査で出てくる表は、画面項目定義もテーブル定義も帳票項目も、どれも数十行。 ソースでは縦棒が並ぶばかりで、桁も揃いません。本文はテキストのままでよいので、直すときだけ表計算のように扱えれば十分です。

その表の上で右クリックすると、表計算のような編集画面が開きます。 Excel やデータベースの結果を範囲ごと貼り付け、CSV・TSV を読み込み (現場から出てくる Shift_JIS のファイルもそのまま読めます)、最大3キーで並べ替え、 項番を振って Markdown へ戻せます。「書き込む」を押すまで、文書は変わりません。

Shift_JIS の CSV も、そのまま Markdown の表にする

現場から出てくる CSV は、いまも Shift_JIS のことがあります。文字化けを直してから読み込む手間が要らないよう、そのまま開いて表に取り込めます。TSV も同じで、表計算ソフトやデータベースの照会結果は範囲ごと貼り付けられます。

MarkNext のソース表示で表を右クリックし、表を編集する項目が出ている画面
ソース表示で表の上を右クリックしたところ。「表を編集…」のほかに 「draw.io で図を作成…」「番号を振り直す」も同じ場所から呼べます。右はライブプレビュー。
MarkNext の表編集画面で仕様表の一部を矩形選択している様子
直したい範囲を矩形で選ぶ。
MarkNext の表編集画面で、表計算ソフトから貼り付けた範囲が強調表示されている様子
同じ範囲へ、表計算ソフトや照会結果から貼り付けた直後。

CODES & SIGNALS符号と信号も、文中に書いて図にする

図にできるのは、流れや構造だけではありません。商品コードの現物と、信号の前後関係。 どちらも仕様書に載せたいのに、これまでは別の道具で作った画像を貼り込んでいました。 文中に値を書けば、その場で図になります。値を直せば図も直ります。

バーコードと QR コード

JAN(EAN-13)・ITF-14・GS1-128・NW-7・郵便カスタマバーコード・QR コードなど100種類以上を、 値を書くだけで描きます。JAN は12桁を書けば検査数字を計算し、書かれた検査数字が誤っていれば納品前の検査で示します。 販売管理や物流の仕様書で使います。

MarkNext が文書の中に描いた JAN コード(EAN-13)のバーコード

記法と見本を見る →

タイミング図とビット配置(WaveDrom)

信号がいつ変わるか、電文のどのビットに何が入っているか。 流れ図では書けないものを、短いテキストから描きます。 シリアル通信、PLC の入出力、割り込みの前後、固定長レコードの桁割りなど、 古いシステムの調査で必要になるものです。

MarkNext が文書の中に描いた、キー入力から応答までのタイミングチャート

記法と見本を見る →

どちらもこの端末の中で描かれ、外部へ内容を送りません。

DIAGRAMS図は、コードで書くものと、draw.io で描くものがある

流れや状態のように、規則で描ける図は文中にコードで書けば足ります。 一方、機器の並びや画面遷移の全体像のようにどこに何があるかが意味を持つ図は、 自動では思うように並びません。MarkNext はどちらも扱えます。

同じ状態遷移図を、mermaid の自動配置と draw.io で描いたもので並べて表示した画面
同じ状態遷移を、二通りで描いたもの。 上が mermaid(文中にコードで書き、配置は自動)、下が同じ内容を draw.io で描いたもの。 分岐が増えるほど自動配置は読みにくくなり、人が並べ直した図との差が開きます。 どちらも同じ文書の中に並んでいて、いつでも描き直せます。

コードで書く図

  • Mermaid(フローチャート、シーケンス、状態遷移、ガント ほか)
  • Graphviz(DOT。描画器を同梱しているので端末内で完結)
  • PlantUML
  • Vega-Lite(データからのグラフ)
  • WaveDromタイミング図とビット配置。端末内で描画)
  • flowchart.js / js-sequence-diagrams(旧来の記法)
  • 数式(KaTeX)

draw.io で描く図

Markdown の文書に draw.io の図を入れられます。帳票の様式や機器の並びのように、どこに何があるかが意味を持つ図に使います。

  • draw.io をアプリに同梱。サーバーを立てる必要はありません。
  • 文書の中から新規作成も編集もできます(右クリック →「draw.io で図を作成…」/図の上で「図を編集…」)。
  • 図は表示用の画像と編集用データを一枚にまとめた .drawio.svg で保存。後から何度でも描き直せます。
  • 通常は draw.io の窓の外部通信を遮断しています。図形の検索などが要るときだけ、その窓を開いている間に限って許可します。
  • 配布用には、編集データを外した SVG を書き出せます。
PlantUML だけは性質が違います。ほかの図はこの端末の中で描かれますが、 PlantUML はサーバーが描画するため、ブロックを書いた時点で内容がそこへ送られます。 そのため 社内に立てた PlantUML サーバーを指定できるようにしてあり、 閉域で使うときは描画自体を切ることもできます。既定と現在の状態は設定画面で確認できます。
MarkNext に同梱した draw.io で日本語の構成図を編集している画面
文書に載っている構成図を、そのままアプリ内の draw.io で編集しているところ。 右下の「一時的に外に出す(この窓だけ)」が、通信を開けるための唯一の入口です。

描ける図の見本を見る(Mermaid・PlantUML・draw.io)→

LARGE DOCUMENTS巨大な Markdown 文書でも、編集を続けられる

調査の成果物は、画面数と項目数がそのまま行数になります。数 MB・数万行になることも珍しくありません。 私たち自身、調査の途中で文書が重くなり、書き足せなくなったことが何度もありました。

MarkNext なら、この大きさでも編集を続けられます。ソース・編集画面・プレビューは、 表示を切り替えても同じ場所が出ます。実際に同じ規模の文書で、開く・編集する・保存する・読み直す、 という一連の動きを自動で確かめています。

SAFE EDITING章構成を、確定する前に組み替える

調査報告書では、仕上げ段階で章の順序を組み替えることが多く、長い範囲の切り貼りが事故につながります。 ソース上で切り取って遠くへ貼り付ける操作は、範囲を一行間違えれば文書全体に響きます。

MarkNext では目次を専用画面で開き、節を上下に動かし、深さを変えます。子節は一緒に動きます。 変更後の構成を確認してから一括で反映するので、確定するまで本文は変更されません。

MarkNext のアウトライン組み替え画面で、子節を持つ節を選択している様子
節を選ぶと、一緒に動く子節と、それぞれが抱えている行数が見えます。

NUMBERING番号は、振るのも外すのも一手で

仕様書は番号で読まれます。「3章の2の(1)」と指されて、そこを開けなければ話が進みません。 ところが番号は、章をひとつ入れ替えるだけで全部ずれます。MarkNext は番号を二通りに扱えるようにしました。

本文には書かず、出力に付ける

スタイルで形式を選ぶと、PDF や HTML に番号が付きます。本文は見出しの文字だけのまま。 章を入れ替えれば番号も付け直されるので、振り直しの作業がそもそも起きません。

形式は ISO(1.1.1)、ピリオド付き、日本語慣用(第1章/1-1)、日本の法令、 欧文アウトライン、米国の法令など。文書のタイトルを一段として数えるかも選べます。

本文へ書き込む

Markdown のまま渡す相手には、番号が文字として入っていないと困ります。 「見出しの番号を振り直す」で本文へ書き込み、「番号を外す」で文字だけに戻せます。

どちらも実行前に、変わる行が全部並びます。押すまで文書は書き換えません。 途中から末尾までを対象にすることもでき、それより上の見出しは数えるだけで触りません。

MarkNext の見出し番号を振り直す画面。変更前と変更後の行が並んでいる
本文へ書き込む側の画面。行番号とともに、いまの見出しと書き換え後が一行ずつ並びます。 「18 件の見出しのうち 18 件が変わります」と数えたうえで、実行を押すまでは何も書きません。

同じ考え方で、箇条書きの番号((1)/①/a.)も三段まで形を決められます。 表の項番は、表編集の「連番を貼る」で列ごとに。 見出しの深さに応じて本文を字下げする設定もあり、番号と字下げはどちらも「スタイル」の一部として、 文書ごとに切り替わります。

INSPECTION納品前に、図と構造を確認する

文書健全性チェックでは、文書内の図をすべて実際に描かせたうえで、見出しの構造、アンカー、リンク、表、番号、 そして印刷したときに図がページ幅へ収まるかを確かめます。どれも読み返せば気づくことですが、章が増えるほど見落とします。先に一覧にしておけば、直すかどうかを一つずつ判断できます。

MarkNext の文書健全性チェックが図の縮小率を警告している画面
実際の結果です。この文書では図が1点、印刷するとページ幅を超えると警告が出ています。

文書全体を書き換える操作の前に、指定した文書だけスナップショットを残せます。 戻すときもいったんエディタへ読み込むだけなので、保存しない限り元のファイルはそのままです。

OUTPUT同じ文書から、複数の成果物へ

PDF

表紙、ヘッダーとフッター、ページ番号、見出し番号まで付けて、そのまま渡せる形で出します。

自己完結 HTML

画像も図も一枚に埋め込みます。読むのに外部接続は要りません。

複数ページの HTML サイト

章ごとに分けて、左に目次を置きます。社内ポータルへそのまま置けます。

図の一括 SVG

文書内の図を、節名を付けてまとめて書き出します。配布用に編集データを外すこともできます。

見出しの番号、字下げ、改ページ、書体といった体裁は「スタイル」としてまとめ、文書ごとに切り替えます (詳細)。

実際に出力した PDF を置いてあります。 このページの画面に写っている架空の調査報告書を、そのまま PDF へ書き出したものです。 表紙・見出し番号・表・図(Graphviz/Mermaid/draw.io)が紙面でどう出るかをご確認いただけます。
成果物の見本を見る(PDF・約0.5MB・架空のサンプル)→

なぜ自分たちで作るのか欲しい機能が揃った道具が無かった

仕様書のないシステムを調べると、プログラム、データベース、画面、運用手順、調査メモ、構成図と、 形式の異なる情報が大量に出ます。これを一つの技術文書にまとめるのが、仕事の後半です。 そこで要る機能——数万行を開いたまま書き続ける、表を表計算のように直す、図を draw.io で描き直す、章を組み替える、 納品前に通しで検査する——が全部揃った道具は、見つかりませんでした。 無いなら作る、というだけの話です。

同時に、これは当社の技術のデモでもあります。MarkNext は、公開されている MarkText を土台に、 必要な機能を足しながら版を重ねてきました。

公開されたものへここまで手を入れるには、中身を仕様の水準まで 読み解く必要があります。読めなければ、大きな改造も作り替えもできません。裏を返せば、読み解けたから ここまで手を入れられた、ということです。

何がどう動いているかを、根拠とともに書き出す。そこまで解析して報告するのが当社の仕事です。 扱うのは古い技術だけではありません。MarkNext 自体は Electron・TypeScript・Vue・WebAssembly で 動いています。

守秘について:本ページの画面はすべて架空の調査報告書です。 実在のお客様のシステム名・画面名・テーブル名・数値は一切含みません。 解析で得たお客様固有の情報を外部に持ち出さないという方針は、道具の作り方にも通しています—— 文書も図も、この端末の中だけで扱えるようにしてあります。

Q&Aよくある質問

Markdown の表を GUI で編集できますか
MarkNext では、表の上で右クリックすると表計算のような編集画面が開きます。 列の入れ替え、行の並べ替え、項番の振り直し、範囲の選択とコピーができ、 「書き込む」を押すまで文書は変わりません。本文は Markdown のテキストのままです。
Shift_JIS の CSV を Markdown の表に取り込めますか
取り込めます。CSV と TSV を読み込めて、現場から出てくる Shift_JIS のファイルもそのまま開けます。 表計算ソフトやデータベースの照会結果を、範囲ごと貼り付けることもできます。
Markdown の文書に draw.io の図を入れられますか
入れられます。draw.io をアプリに同梱しているので、サーバーを立てる必要はありません。 文書の中から新規作成も編集もでき、図は表示用の画像と編集用データを一枚にまとめた .drawio.svg として保存されます。通常は draw.io の窓の外部通信を遮断しています。
巨大な Markdown ファイルを扱えるエディタはありますか
MarkNext は、数 MB・数万行の Markdown でも編集を続けられます。 調査の成果物は画面数と項目数がそのまま行数になるため、この大きさを前提に作りました。 ソース・編集画面・プレビューは、切り替えても同じ場所が出ます。
Markdown にバーコードや QR コードを書けますか
書けます。コードブロックに記号の種類と値を書くと、その場で符号になります。 JAN(EAN-13)・ITF-14・GS1-128・NW-7・郵便カスタマバーコード・QR コードなど100種類以上に対応します。 詳しくはバーコードと QR コードの記法をご覧ください。
Markdown に WaveDrom のタイミング図を書けますか
書けます。コードブロックに WaveJSON を書くと、信号の波形やビット配置の図になります。 詳しくはタイミング図とビット配置の記法をご覧ください。
MarkNext を購入できますか
販売も配布もしていません。当社が自社の調査業務のために開発して使っているもので、 このページは、どういう成果物をどういう手段で仕上げているかをお見せするためのものです。

仕様書のないシステムの調査・技術文書整備について相談する

現行仕様の復元、移行前調査、運用資料の整備、閉域環境での文書制作についてご相談いただけます。

相談してみる →

TECHNICAL技術情報・由来

作りと構成

  • Windows 向けデスクトップアプリ(Electron)。編集画面・プレビュー・出力は同じ描画経路を通ります。
  • ソースとライブプレビューの二画面表示を本フォークで追加しました(ソース表示は CodeMirror 6)。
  • 図は Mermaid・Graphviz(WebAssembly 版を同梱)・PlantUML・Vega-Lite、数式は KaTeX。
  • draw.io 本体を同梱し、文書内から図の作成・編集ができます。その窓の外部通信は既定で遮断。
  • End-to-End テストを含む自動試験を、実際に配布する実行ファイルに対しても走らせています。

由来とライセンス

  • MarkNext 本体は MIT License です。MarkText 0.19.1 を起点としており、派生元の著作権表示と MIT License 本文をアプリに同梱しています。
  • MarkText の公式製品ではなく、同プロジェクトの承認・保証を受けたものでもありません。現在は独自のバージョン系列で開発しています。
  • 内蔵する draw.io のソースコードは Apache License 2.0 で提供され、アイコン・ステンシルには追加条件が、テンプレートには CC BY 4.0 が適用されます。
  • その他の同梱物を含む権利表示は、アプリ内の第三者ライセンス一覧にまとめてあります。
  • draw.io は JGraph Ltd. の商標です。当社は同社と提携・承認関係にありません。
  • 「QRコード」は株式会社デンソーウェーブの登録商標です。バーコードの描画には bwip-js(MIT License)を用いています。
  • 一般向けの配布・サポートは行っていません。

外部との通信について:通常の編集、表の操作、Graphviz の作図、同梱した draw.io は、いずれもこの端末の中だけで動きます。 外部へ出るのは PlantUML の描画と、文書に書かれた外部画像の取得だけで、どちらも設定で切り替えられます。