markdown-hopper

A utility package for Markdown files.

takagi-s

576

2

0.1.9

MIT

GitHub

markdown-hopper package

Japanese description

機能の概要

主に以下の機能を提供します。

見出しの一覧機能

開いているMarkdownファイルの目次(TOC: Table of Contents)を表示します。

コマンドは markdown-hopper:toggle-markdown-toc-view です。

toc-view.gif

基本的な操作方法は以下の通りです。

ヘッダーのレベルによる絞り込み

入力欄に # を複数続けて入力して見出しのレベルを指定することで、 レベル1から指定したレベルまでの見出しのみを絞り込んで表示します。

文書の大枠の構造を理解したいときに便利です。

単語による絞り込み

入力欄に単語を入力することで、指定した単語を含む見出しを絞り込んで表示します。

各検索結果の中央には、ヒットした見出しが表示されます。

各検索結果の右上部には、ヒットした見出しの上位の見出しが順番に表示されます。 (より上位のものから順番に、左から表示されます。)

各検索結果の右下部には、ヒットした見出しの行数が表示されます。

Emacsキーバインドに慣れている方へのおまけ

専用のパッケージを入れている方もいるかもしれませんが、 一応以下のキーバインドが有効になっています。 (他のパッケージとのキーバインドの衝突などが発生するため)

キーバインド コマンド
ctrl-n core:move-down
ctrl-p core:move-up
ctrl-m core:confirm
ctrl-g core:cancel

リンク生成機能

ファイルへのMarkdownリンク生成機能

アクティブになっているペインで開いているファイルへのMarkdownリンクを生成することができます。

この場合には、以下の2つのコマンドを利用します。

create-link-to-fileを実行すると、アクティブになっているペインで開いているファイルの絶対パスがメモリ上に保存されます。

ファイルの絶対パスがメモリ上に保存された状態で、 別のMarkdownファイル上でpaste-linkを実行すると、 create-link-to-fileを実行したファイルへのMarkdownリンクが生成されます。

リンクのパス

生成されるリンクのパスは、以下の2つの情報をもとに計算した相対パス指定となります。

リンクのタイトル

以下の2つから設定することができます。

なお、ファイルに見出しが存在しない場合は、自動的にファイル名がリンクのタイトルとして用いられます。

貼り付け直後には、リンクのタイトル部分が選択されている状態になっているため、 タイトルの変更も最低限のキーストロークで行えます。

画像ファイルへのリンク貼り付け

create-link-to-fileを実行したファイルが画像ファイルである場合は、 貼り付けられるリンク形式も画像ファイルになります。

見出しへのリンク生成機能

Markdownを開いているとき、カーソルがあるセクションの見出しの上に、 ランダム生成された10文字の文字列をnameとした<a>タグを自動生成することができます。 (実際には、nameの値はheader-{ランダム文字列}の形式になります)

コマンドはmarkdown-hopper:create-link-to-headerです。

自動生成した<a>タグの情報は、ファイルへのMarkdownリンク生成機能と同様にメモリ上に保持されます。

この状態で、前述したpaste-linkを実行すると、メモリ上に保持した<a>タグのnameの値の先頭に#記号を付加した文字列をリンク先として、 Markdownリンクが生成されます。 (リンクのタイトルは見出しと同一の文字列になります。)

この見出しへのMarkdownリンクは、異なるMarkdownファイルであっても、貼り付けることができます。 その際の振る舞いはファイルへのMarkdownリンク生成機能とほぼ同様ですが、 リンクのタイトルはファイルへのリンクのタイトル | ヘッダーへのリンクのタイトル という文字列になります。

この生成されたリンクは、MarkdownをHTMLに変換しても期待通りにリンクとして動作します。

リンクを利用した目次生成機能

前のセクションで述べた見出しへのリンク生成機能を利用すると、 Markdownファイルの目次を作成することができます。

1つ1つのセクション毎にcreate-link-to-headerpaste-linkを実行するのは大変なので、 markdown-hopper:create-table-of-contentsというコマンドを用意しています。 このコマンドを実行することで、create-table-of-contentsを実行したファイルのすべての見出しに対して、 create-link-to-headerが実行され、それらの見出しがまとめてメモリ上に保持されます。

メモリ上に保持された目次の情報は、markdown-hopper:paste-table-of-contentsで、貼り付けることができます。 貼り付けられる目次は、各見出しのレベルに応じてインデントされたMarkdownリストの形式になっています。

create-link-to-headerと同様、この機能は異なるファイル間でも利用できるため、 目次用のファイルを別ファイルとして作成することも可能です。

見出しのレベルを指定した目次生成

paste-table-of-contentsには、以下のようにほぼ同様の動作をするコマンドがあります。

Webページのリンク貼り付け機能

このセクションの他の機能はローカルファイルへのリンクを扱うための機能でしたが、 OSのクリップボードにURIをコピーした状態でmarkdown-hopper:paste-http-linkを利用すると、 内部でそのURLにリクエストを送り、レスポンスのhead > titleの値を読み込んで、 Markdownリンクを貼り付けることができます。 (httpsプロトコルには対応していますが、認証が必要なURLの場合には対応できていません。 メジャーなサイトであればそのうち対応するかもしれません)

リンクジャンプ機能

前のセクションまではリンクの生成に関する機能の説明でしたが、 このセクションではリンクのジャンプを行うための機能について説明します。

リンク生成の機能ほどは複雑でないため、すぐに理解できると思います。

主に以下の2つのコマンドを使います。

jump-forwardを使うことで、そのカーソル行にMarkdownリンクを含んでいる場合に、そのリンク先をエディタで開くことができます。

また、jump-backwardを使うことで、jump-forwardしてきた履歴を逆に辿ることができます。

jump-forwardの履歴は、markdow-hopper:jump-historiesで見ることができ、ジャンプ元のファイル名・ジャンプ元の行の文字列を対象に、検索を行うこともできます。

なお、リリース直後の時点では、外部のウェブサイトへjump-forwardすることはできません。

その他のユーティリティ

fold機能

人がMarkdownを読む上で可読性を下げがちな、Markdwonリンクのリンク先URIや、 このパッケージによって生成されたアンカータグなどをfoldすることができます。

動作については、細かい設定が可能になっています。

プレフィックスキーとデフォルトキーバインドの体系

Ctrl-c Ctrl-m がデフォルトのプレフィックスキーになっています。

プレフィックスキーに続けて打つキーによって、大まかに機能が分かれます。

なお、大部分の操作は上記の体系に即したキーバインドによって行うことができますが、例外として以下があります。

コマンドとデフォルトキーバインド一覧

Commands Default Keybinds Despcription Demo links
toggle-markdown-toc-view (Ctrl-c Ctrl-m) Ctrl-t Show ToC
create-link-to-file (Ctrl-c Ctrl-m) Ctrl-l Ctrl-f Register Link to the File
create-link-to-header (Ctrl-c Ctrl-m) Ctrl-l Ctrl-h Register L to the Header
paste-link (Ctrl-c Ctrl-m) Ctrl-p Ctrl-l Paste registered Local link
paste-http-link (Ctrl-c Ctrl-m) Ctrl-p Ctrl-p Paste Public link from clipboard
create-table-of-contents (Ctrl-c Ctrl-m) Ctrl-l Ctrl-t Register Links of TOC to memroy Demo
paste-table-of-contents (Ctrl-c Ctrl-m) Ctrl-p Ctrl-t Ctrl-t Paste registered TOC Demo
paste-table-of-contents-level-2 (Ctrl-c Ctrl-m) Ctrl-p Ctrl-t 2
paste-table-of-contents-level-3 (Ctrl-c Ctrl-m) Ctrl-p Ctrl-t 3
paste-table-of-contents-level-4 (Ctrl-c Ctrl-m) Ctrl-p Ctrl-t 4
paste-table-of-contents-level-5 (Ctrl-c Ctrl-m) Ctrl-p Ctrl-t 5
paste-table-of-contents-level-6 (Ctrl-c Ctrl-m) Ctrl-p Ctrl-t 6
jump-forward (Ctrl-c Ctrl-m) Ctrl-o Open link
jump-backward (Ctrl-c Ctrl-m) o Open previous
toggle-fold
toggle-fold-anchors
fold-links
fold-all (Ctrl-c Ctrl-m) Ctrl-f Ctrl-f

設定について

設定項目
通知レベル 通知をどの程度表示するかを設定できます。初めて使う人には、通知が多い方が良いでしょう。

English description

Coming soon

Demo

Milestones

ver.0.2

ver.0.3

ver.0.4