├── Zettelkasten.sublime-settings ├── Default.sublime-commands ├── README.md └── zettelkasten.py /Zettelkasten.sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | "save_path": "~/Documents/notes", 3 | "extension" : ".md" 4 | } -------------------------------------------------------------------------------- /Default.sublime-commands: -------------------------------------------------------------------------------- 1 | [ 2 | { "caption": "Zettel: Create a New Note", "command": "zettelkasten" }, 3 | ] -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # zettelkasten-sublime 2 | 3 | Simple Sublime Text 3 plugin that creates timestamped notes in the given folder. 4 | 5 | ![image](https://user-images.githubusercontent.com/1410106/92323685-f9689d00-f064-11ea-98d2-73531d3853fe.png) 6 | -------------------------------------------------------------------------------- /zettelkasten.py: -------------------------------------------------------------------------------- 1 | import sublime 2 | import sublime_plugin 3 | import os 4 | import datetime 5 | 6 | def getPath(): 7 | s = sublime.load_settings("Zettelkasten.sublime-settings") 8 | save_path = s.get("save_path", "~/Documents/notes") 9 | save_path = os.path.expanduser(save_path) 10 | return save_path 11 | 12 | def getExtension(): 13 | s = sublime.load_settings("Zettelkasten.sublime-settings") 14 | save_extension = s.get("extension", ".md") 15 | return save_extension 16 | 17 | class TitleHandler(sublime_plugin.TextInputHandler): 18 | @staticmethod 19 | def placeholder(): 20 | return "Title" 21 | 22 | @staticmethod 23 | def confirm(text): 24 | return text 25 | 26 | class ZettelkastenCommand(sublime_plugin.WindowCommand): 27 | def run(self, title_handler): 28 | save_path = getPath() 29 | save_extension = getExtension() 30 | try: 31 | os.mkdir(getPath()) 32 | except OSError: 33 | pass 34 | 35 | now = datetime.datetime.now() 36 | date = now.strftime("%Y-%m-%d-%H%M") 37 | title = title_handler.lower().replace(' ', '-') 38 | filename = save_path + "/" + date + '-' + title + save_extension 39 | 40 | self.window.open_file(filename) 41 | 42 | @staticmethod 43 | def input(args): 44 | return TitleHandler() 45 | --------------------------------------------------------------------------------