Obsidianã¯PKMã ã¤ã¾ããç¥è Knowledgeãã®ãããã¯ã¼ã¯ãæ§ç¯ãããã¼ã«ãªã®ã§ãå®ã¯ãå·ç Writingãã«å¼±ãã 大ãªã¼ã°ãã¼ã«2å·ãæ°´ã«å¼±ããããå¼±ãã
ããã§PWM(Personal Writing Management)ã«ã¯ä¸å·¥å¤«å¿ è¦ã¨ãªãã¾ãã
åå²å·ç
ç« ç«ã¦ããã¡ã¤ã«ã«åãã¦æ¸ãããã¨ããé£çµããæ¹æ³ã ScrivenerãUlyssesã§ã馴æã¿ã§ããããããObsidianã§ããã£ã¦ãã¾ãããã¨ãã使¦ã§ãã
Templaterã¨Dataviewãã©ã°ã¤ã³ã使ã£ã¦ãã¾ãã
Playlist.md
ä¸è¨ã¹ã¯ãªãããTemplaterã®Hotkeyã«ç»é²ãã¦ãã ããã å人çã«ã¯Commanderã§Tab Barã®ãã¿ã³ã«ãã¦ãã¾ãã ãããå¼ã³åºããããã
<%* const PLAY = "playlist" const MERGE = "merge" p = tp.file.folder(true) + "/" q = PLAY const t = tp.file.title if(t == PLAY){ s = tp.file.content if(/^\- /m.test(s)){ if(/\- \[x\]/.test(s)){ q = MERGE const a = s.split("\n") s = "" for(i=0; i<a.length; i++){ if(/- \[x\] /.test(a[i])){ const m = a[i].split("- [x] ") s+= m[0].replace(/\t/g, " ").replace(/\s{4}/g, "#").replace(/\s+/g, "#") + "## " f = m[1].replace(/.*\[\[(.+?)\]\].*/, "$1") s+= f + "\n\n" f = p + f + ".md" b = app.vault.getAbstractFileByPath(f) if(b){ const c = await app.vault.read(b) s+= c.replace(/([^!])\[\[(.+?)\]\]/mg, "$1$2") + "\n" } } } }else{ s = s.replace(/\t/mg, " ") s = s.replace(/^ {4} +- /mg, "#### ") s = s.replace(/^ +- /mg, "### ") s = s.replace(/^- /mg, "## ") } }else{ s = s.replace(/^#{4} /mg, " - ") s = s.replace(/^#{3} /mg, " - ") s = s.replace(/^#{2} /mg, "- ") s = s.replace(/\n+/g, "\n") s = s.replace(/\n/, "\n\n") } }else{ const d = DataviewAPI.pages('') .filter(x => p == (x.file.folder + "/")) .filter(x => !x.file.name.includes(q)) .filter(x => !x.file.name.includes(MERGE)) .sort(x => x.file.name) .map(x => `- [ ] [[${x.file.name}]] `) s = `[${p}](obsidian://new?file=${encodeURI(p)}) \n\n` s+= d.join("\n") } f = p + q + ".md" p = app.vault.getAbstractFileByPath(f) if(p){ if(t != PLAY && q == PLAY){ s = await app.vault.read(p) if(t != MERGE && s.indexOf(`[[${t}]]`) < 0) s+= `\n- [ ] [[${t}]] ` } await app.vault.modify(p, s) }else{ p = await app.vault.create(f, s) } app.workspace.activeLeaf.openFile(p) %>
ä¸å ·åãä¿®æ£ãã¦ããã®ã§ããã®ãã¼ã¸ã§ã³ãã使ããã ããã
ä½¿ãæ¹
é£çµããããã¡ã¤ã«ããã©ã«ãã«ã¾ã¨ãã¾ãã
ãã®ä¸ã®ãã¡ã¤ã«ãéãPlaylistãå®è¡ãã¦ãã ããã
ããã¨playlist.md
ã¨ããåã®ãã©ã«ãå
ãªã¹ãã使ããã¾ãã
ãªã¹ãã®é çªã¯ä¸¦ã¹æ¿ãã¦æ§ãã¾ããã
ãã¡ã¤ã«åãã¿ããããã°å
ã®ãã¡ã¤ã«ãéãã¾ãã
ãã®ãã¡ã¤ã«ã§Playlistãå®è¡ããã°playlist.md
ã«æ»ãã¾ãã
ãã§ãã¯ããã¯ã¹ããã§ãã¯ãå度Playlistãå®è¡ããã¨ããã§ãã¯ããããã¡ã¤ã«ããã¼ã¸ããmerge.md
ã«ãªãã¾ãã
ãã®merge.md
ãPDFã«ããã°ä¸ä¸ä¸ããã
æ°è¦ä½æ
åããã©ã«ãã«ãã¡ã¤ã«ãä½ãã¨ãã¯ã1è¡ç®ã®ãã©ã«ãåãã¿ãããã¦ãã ããã æ°è¦ãã¡ã¤ã«ãéãã¾ãã
ã¿ã¤ãã«ãæ¸ãã¦ããPlaylistãå®è¡ããã¨playlist.md
ã«è¿½å ããã¾ãã
ä¸¦ã¹æ¿ã
ãã§ãã¯ã®ãªãplaylist.md
ã§Playlistãå®è¡ããã¨ãä¸¦ã¹æ¿ãã¢ã¼ãã«ãªãã¾ãã
ãµã¤ãããã«ã®ãã¢ã¦ãã©ã¤ã³ãã§é ç®ããã©ãã°ããé çªãå ¥ãæ¿ãããã¨ãã§ãã¾ãã é層æ§é ãã¤ãã¦ã大ä¸å¤«ã
å度Playlistãå®è¡ããã¨å ã®ç¶æ ã«æ»ãã¾ãã
ã¾ã¨ã
PWMã£ã¦ã³ã³ã»ãããä»åã®çºè¦ã 徿¥ãã³ã³ãã¼ã¶ã¼ãã¨å¼ãã§ããã©ãããããã¯ãã£ã¡ã使ããã