AtomでMarkdownのアウトラインを表示する

nav-panelというパッケージを入れるとエディタの右側にアウトラインを表示することができます。

atom.io

デフォルトでMarkdownもサポートされており、こんな感じで表示されます。パネルはエディタのコンテキストメニューやコマンドパレットからNav Panel: Toggleコマンド、もしくはCtrl + Option + Oというキーボードショートカットでトグルできます。

f:id:takezoe:20151227115553p:plain

ソースを見ると、他にも以下の言語をサポートしているようです。

langmap = 
  '.coffee': langdef.CoffeeScript
  '.litcoffee': langdef.CoffeeScript
  '.rb': langdef.Ruby
  'Rakefile': langdef.Ruby
  '.php': langdef.php
  '.css': langdef.Css
  '.less': langdef.Css
  '.scss': langdef.Css
  '.sass': langdef.Sass
  '.yaml': langdef.Yaml
  '.yml': langdef.Yaml
  '.md': langdef.Markdown
  '.markdown': langdef.Markdown
  '.mdown': langdef.Markdown
  '.mkd': langdef.Markdown
  '.mkdown': langdef.Markdown
  '.ron': langdef.Markdown
  '.json': langdef.Json
  '.cson': langdef.Cson
  '.gyp': langdef.Cson
  '.go': langdef.Go
  '.capnp': langdef.Capnp
  '.pod': langdef.perl
  '.js': langdef.JavaScript
  '.hx': langdef.haxe
  '.ex.exs': langdef.Elixir
  '.nim': langdef.Nim
  '.fountain': langdef.Fountain
  '.ftn': langdef.Fountain
  '.jl': langdef.Julia

サポートされていない場合もプロジェクト(Atomで開くディレクトリ)のルートに.nav-marker-rulesというファイルを作成することでアウトラインとして抽出する内容をカスタマイズすることができるようです。

Markdownで長文を書いているとアウトラインは欲しくなるので便利なパッケージですね。ただ、見出しのレベルに関わらずフラットに表示されるので、欲を言えばツリーの要素をネストして表示してくれるとよいのですが…。