Cosense(旧Scrapbox)でタイムスタンプのフォーマットをカスタムする

はじめに

Cosense(旧Scrapbox)では、Ctrl+tでタイムスタンプを入力できるショートカットが存在する。Ctrl+tを連続で打つことで、タイムスタンプのフォーマットを変更することができるが、デフォルトのフォーマットは以下。

2024/8/20
[2024/8]/20
2024/8/20 09:11

個人的な用途として、これらには以下の難点があった。

というわけでタイムスタンプのフォーマットをカスタムしたくなった。

方法

公式のヘルプにある通り、UserScriptでscrapbox.TimeStamp.addFormat()を使用することで好きなフォーマットを追加することができる。

日付と時刻を入力する - Cosense ヘルプ
Macではctrl-tキーで日付と時刻を入力できます Windows/Linuxではalt-t ctrl-t連打でフォーマットを変更できます 日付と時刻フォーマットを追加する 好きなフォーマットをUserScriptで追加できます code:script.js scrapbox.TimeStamp.addFormat('YYYY年M月D日') 結果: 2017年9月6日 タグ付き日付フォーマット
日付と時刻を入力する - Cosense ヘルプ favicon scrapbox.io
日付と時刻を入力する - Cosense ヘルプ

しかし、UserScriptにscrapbox.TimeStamp.addFormat('HH:mm')を追加すると、Ctrl+tを押したときのフォーマットは以下のようになってしまった。

09:11
2024/8/20
[2024/8]/20
2024/8/20 09:11

addFormat()は既存のフォーマットの先頭に新しいフォーマットを追加してしまうようだ。個人的な好みの話だが、フォーマットの順番は以下のようにしたい。

2024/8/20
2024/8/20 09:11
09:11

これを目指すために試行錯誤した結果、UserScriptは以下のようになった。

scrapbox.TimeStamp.removeAllFormats()
scrapbox.TimeStamp.addFormat('YYYY/M/D')
scrapbox.TimeStamp.addFormat('YYYY/M/D HH:mm')
scrapbox.TimeStamp.addFormat('HH:mm')

removeAllFormats()でデフォルトのフォーマットを全て削除し、自前で好きなフォーマットを追加した。この場合はaddFormat()が呼び出された順にフォーマットが追加されるようで、上に書いた自分好みのタイムスタンプの順番にすることができた。

おわり

自分は日報をCosense(旧Scrapbox)で書いており、時間だけのタイムスタンプは作業内容を時間と一緒にメモするのにとても役立っている。

ぜひ自分の使い方に合ったタイムスタンプのフォーマットをカスタムしてみて欲しい。