Quantcast
Channel: Jazzと読書の日々
Viewing all articles
Browse latest Browse all 485

Obsidian:スタック操作の集大成はこれかな

$
0
0

Text Transporterプラグインを使わない版。

carbon

Markdownは「ブロック」がオブジェクトの単位だと思います。 空行で挟まれた範囲。 それが「段落」として意味を持っている。 これを手軽に扱いたい。

carbonはもともと、そのブロックをコピペするために開発しました。 でもここのところ「スタック」を扱ってきたじゃないですか。 これと合体した方が「書きやすくなる」と直感したわけです。

carbon.md

ということでTemplaterスクリプトです。

<%*
// 一時退避用のノートを設定してください。const Stack ="@@memo.md"const StackPath = app.vault.getAbstractFileByPath(Stack)
e = app.workspace.activeLeaf.view.editor
p = e.getCursor().line
s = e.getLine(p)if(s){
  s = tp.file.content
  d = s.split("\n\n")for(i=j=k=0; k<=p; i++){
    j = k
    k+= d[i].split("\n").length +1}
  a = d.splice(i-1,1)
  block =`\n\n${a[0]}`if(StackPath){await app.vault.append(StackPath, block)}else{await app.vault.create(Stack, block)}
  content = d.join("\n\n")await e.setValue(content)
  e.setCursor(j-1,0)}else{if(StackPath){
    s =await app.vault.read(StackPath)
    d = s.split("\n\n")
    s = d.pop().replace(/^\n/,"")}else{
    s =""}if(s){
    content = d.join("\n\n")await app.vault.modify(StackPath, content)
    tp.file.cursor_append(`\n${s}\n`)}else{newNotice("No stack.")}}
%>

変数Stackに、スタックに使うノート名を書き込んでください。

使い方

カーソル行を含むブロックがスタックに転送されます。

carbonを実行すると@@memo.mdにブロックが追加されます。

カーソル行が空行のときは、スタックからブロックが取り除かれ、カーソル行に貼り付けます。 つまり、ブロック単位の出し入れが簡単にできる。

唐突にネタを思いついたとき、スタックに上げて頭を空にするがよろし。

ブロックをスタックする

Obsidianは行単位の移動をサポートしています。 「上の行と入れ替える」「下の行と入れ替える」がコマンドとして用意されている。

セクション単位の移動も「アウトライン」を使えば対応できます。 見出しをドラッグ&ドロップで入れ替えればスムーズです。

ブロックは、その間にある単位ですね。 セクションを「見出し+ブロック群」と見なすことで取り出される。 結構この単位でカットしたり移動したりする場面は多い。 でも今ままでそのための操作がありませんでした。 範囲指定でコピペしていた。

今回それがワンボタンになりました。 すると書き方が変わってきます。 空行を多用するようになります。 スタックしたい部分をブロック化する。 それまでは箇条書きしてから空行を入れていたのですが、空行を入れながら箇条書きするように変わりました。

これが悪くない。 なかなか書きやすいのです。

リズムがあるというか、空行のところでそこまでを読み返しますね。 息継ぎが入る。 アウトライナーを使っていたときも、空行を作ることに何か意味を感じていましたが、それは平文の場合でも同じです。 空気の通りがよくなる。

テキストの網目に隙間ができる感じで、そこがクッションとして機能する。 柔軟な印象がします。 たぶん空行に「無用の用」があるのでしょう。 いつでもそこに、新しいブロックを書き込める。 無いけどある。 それが論の飛躍を許容する余白になっています。

まとめ

もちろんText Transporterと併用すると、もっと面白いかもしれない。


Viewing all articles
Browse latest Browse all 485

Trending Articles