Day One是OSX上非常精美的一款日记软件, 我已使用很久了. 它同时还有iOS的客户端, 包括iPhone和iPad.
- Day One Website http://dayoneapp.com
今天发现One Day还有Command Line工具,翻了一下文档,发现这个CLI功能非常全面.既然有功能全面的CLI工具,那么必须就可以在Emacs里使用了!
- Day One Command Line Examples
$ ./dayone new
Waits for input from stdin then creates a new entry in the default journal
$ echo "an entry from yesterday" | ./dayone -d="yesterday" new
Creates a new entry using yesterday’s date with the specified text
$ ./dayone -d="25/03/2011 5:30PM" -s=true new < ~/Desktop/note.txt
Creates a starred entry using the contents of note.txt
$ echo "an entry in my other journal" | ./dayone -j=~/Documents/WorkJournal.dayone new
Creates an entry in a journal other than the default
- One Day CLI MAN http://dayoneapp.com/tools/cli-man/
- Day One Command Line http://dayoneapp.com/downloads/dayone-cli.pkg
下面是在Emacs里通过One Day CLI来操作One Day.
;; dayone.el
;; venmos .emacs.d/elisp/
;; http://blog.venmos.com
;; me[at]venmos.com
;; 基于 One Day 命令行工具创建的 Elisp 包, 可以在 Emacs 里创建 One Day 日记.
;; dayone-cli https://dayone.zendesk.com/hc/en-us/articles/200258954-Day-One-Tools
(defvar path-to-dayone "/usr/local/bin/dayone"
"Executable path to DayOne CLI")
(defun dayone-save-new-entry ()
"Save buffer as a new DayOne entry"
(interactive)
(if (executable-find path-to-dayone)
(call-process-region
1 (point-max) path-to-dayone nil nil nil "new")))
(defvar dayone-buffer "*dayone*"
"The name of the dayone buffer.")
(defvar dayone-mode-map
(let ((map (make-sparse-keymap)))
(define-key map "\C-c\C-c" 'dayone-save-and-kill-buffer)
(define-key map "\C-c\C-k" 'dayone-destroy-buffer)
map)
"Keymap used in DayOne mode.")
(defun dayone-create-new-entry ()
"Create *DayOne* buffer in new window."
(interactive)
(switch-to-buffer (get-buffer-create dayone-buffer))
(use-local-map dayone-mode-map)
(setq major-mode 'dayone-mode mode-name "DayOne"))
(defun dayone-save-and-kill-buffer ()
(interactive)
(dayone-save-new-entry)
(dayone-destroy-buffer))
(defun dayone-destroy-buffer ()
"Destroy the current *DayOne* buffer."
(interactive)
(if (equal dayone-buffer (buffer-name))
(kill-buffer (current-buffer))))
;;; init-dayone.el ends here
- dayone-create-new-entry
新建一条日志 - dayone-save-and-kill-buffer
保存日志并关闭Buffer - dayone-destroy-buffer
删除已输入的日志并关闭Buffer
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。