ファイルからリストを作成して、リピートタスクを呼び出す〜1Writerカスタマイズ④〜

「1Writerカスタマイズ」の①〜③にて書いたアクションを作成した段階で、たすくまを使うのをやめ、1Writer(Obsidian)に完全移行しました。

1Writer – Markdown Text Editor
カテゴリ: 仕事効率化, ユーティリティ

Taskuma —TaskChute for iPhone
カテゴリ: 仕事効率化, ライフスタイル

デイリーのテンプレートと、行ごとの削除と移動があれば、一つ一つの行動を記録しながら過ごすことは、けっこう簡単になります。
あとは、予定になかった、つまり、デイリーページ上に書き込まれていないリピートタスクを呼び出すことができれば、終了予定の算出だけがないタスクシュートと呼べるようになるでしょう。
ということで、「リピートタスクの呼び出しできるようにならないか」と考えました。

1Writerのjavascriptアクションの数々には例が載っています。試しに「ui.list()」の例を実行してみると、項目がリスト表示され、そのリストから好きなものをタップすると、そのリストの内容が文中に挿入されるものでした。
これは、使えそうです。
そのコードを書き換え、

  • リピートタスクの一覧が記述されたファイルを開く
  • それをリスト形式に表示する
  • 選択された項目をクリップボードにコピーする

というものにしました。

リピートタスクの呼び出し

//アクションを実行したあと、元のファイルに戻るため、今編集中ファイルのフォルダとファイル名を取得
var folder = editor.getFolderPath();
var editingfile = editor.getFileName();

//リピートタスクを記述しているファイルのファイル名
var openfilename = 'ここに一覧を取得したいファイル名を記述.md'

//リピートタスクの一覧が記述されているファイルを開く。フォルダは、そのファイルが保存されているものを指定してください。
editor.openFile('Dropbox/'+openfilename,'edit',call);

function call(){
    //開いたファイルに記述されているテキストを取得
    var text = editor.getText();
    //改行ごとに配列に格納
    const listData = text.split('\n');
    ui.hudDismiss();
    //配列をリストに
    ui.list('Repeat', listData, false, selectedValues => {
        if (!selectedValues) {
            return;
        }
        const text = selectedValues.join('\n');
        if (editor.isClosed()) {
            editor.newFile(text);
        }else {
            //選択した項目をクリップボードにコピー
            app.setClipboard('\n' + text);
            //はじめに編集中だったファイルを開く
            editor.openFile(folder + '/' + editingfile);
        }
    });
}

アクションを起動した時の動き

アクションを起動するとリストが表示され、そのうち一つを選択すると選択した項目のがクリップボードにコピーされ、元のファイルに戻ってくるので、好きな場所に貼り付けることができます。
リストは、複数選択を可能にもできるので、その場合は
ui.list('Repeat', listData, false, selectedValues
のfalseの部分をtrueに書き換えてください。

まずは、リスト表示したいファイルを作成して、そのファイル名をコード内の「ここに一覧を取得したいファイル名を記述」の部分に書くことでアクションが使えるようになします。
改行を目じるしに、1行1項目でリストに表示するので、リスト表示したいファイルは、そのことを念頭に置いた上で作成していただければと思います。


これまで4回にわたり1Writerの自作アクションについて書いてきました。これにて、「やったことの記録がすこぶる取りやすいリストアプリ」のように、テキストを扱えるようになり、日々、デイリーリストを作成し、1WriterとObsidianで同一のファイルを扱いながら、やったことの記録をとりつつ過ごしています。
まずまず気に入っているので、しばらくはこのまま使い続けようかな、と思います。

では、お読みいただきありがとうございました。

See Also