archived
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import { Plugin } from "obsidian";
|
||||
|
||||
export default class PAUL extends Plugin {
|
||||
async onload() {
|
||||
// Command 추가
|
||||
this.addCommand({
|
||||
id: 'modified-time-update',
|
||||
name: 'Modified time update',
|
||||
callback: () => {
|
||||
this.readCurrentNote();
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
// Actual functions
|
||||
readCurrentNote() {
|
||||
const activeFile = this.app.workspace.getActiveFile();
|
||||
// activeFile이 존재하는지 확인 && 확장자가 md인지 확인
|
||||
if (activeFile && activeFile.extension === 'md') {
|
||||
this.app.vault.read(activeFile).then(content => {
|
||||
const pattern = /Modified: \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z/;
|
||||
let digit = (inp)=>{ return String(inp).padStart(2, '0') }
|
||||
const t = new Date()
|
||||
const modified = `Modified: ${t.getFullYear()}-${digit(t.getMonth()+1)}-${digit(t.getDate())}T${digit(t.getHours())}:${digit(t.getMinutes())}:${digit(t.getSeconds())}Z`;
|
||||
|
||||
// Modified 라는 property의 존재여부 확인
|
||||
if (content.search(pattern) != -1) {
|
||||
this.app.vault.modify(activeFile, content.replace(pattern, modified));
|
||||
} else {
|
||||
// console.log(content);
|
||||
// console.log('No modified yet : ', content.match(/---\n(.+:.+\n)+---/gs));
|
||||
const analysis = content.match(/^---\n((?!-{3})(?:(?:.+:.*)|(?:\s{2}-\s.+))\n)+---/);
|
||||
// const analysis = content.match(/---\n(.*:.*\n)*---/s);
|
||||
// console.log(analysis);
|
||||
const pnt = analysis.index + analysis[0].length - 3;
|
||||
this.app.vault.modify(activeFile, content.slice(0, pnt) + modified + '\n' + content.slice(pnt));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user