- File name must be in
yyyy-MM-dd
format, for example 2022-02-23
- Uncomment last line
dv.paragraph(mdv);
if you like to see the result inside a collapse ad-note
- You could copy the table and delete the dataview to maintain the work today table, and the links inside the table will update, but the table will remain for future review.
- To exclude a folder modifly
dailynotes
in:
const created_dv_rows = dv.pages('-"dailynotes"')
...
...
const created_dv_rows = dv.pages('-"dailynotes"')
const format = dv.current().dateformat || 'yyyy-MM-dd';
const ftime = 'HH:mm:ss';
// define function to create tabe
function create_mdtable(HeadRow_dv, TableFormat, Rows_dv){
let last_row = ""
let table = `| ${HeadRow_dv.map(cell => cell + " |").join("")}`;
table += `\n${TableFormat}`
for (let Row of Rows_dv) {
if (Row[0] != last_row) {
table += `\n| ${Row[0]} | [[${Row[1]}]] |`;
}
last_row = Row[0];
};
return table
}
// Created TABLE
const HeadRow = [ "Time", "Link"];
// Created Today TABLE
// create dataview rows
const created_dv_rows = dv.pages('-"dailynotes"')
.where(p => p.file.ctime.toFormat(format) == dv.current().file.name)
.sort(k => k.file.ctime)
.map(p => [p.file.ctime.toFormat(ftime), p.file.name]);
// dv.table(HeadRow, created_dv_rows)
// Modified Today TABLE
// create dataview rows
const modified_dv_rows = dv.pages('-"dailynotes"')
.where(p => p.file.mtime.toFormat(format) == dv.current().file.name)
.sort(k => k.file.mtime)
.map(p => [p.file.mtime.toFormat(ftime), p.file.name]);
// dv.table(HeadRow, modified_dv_rows)
// create markdown tables
const TableFormat = "|:---:|:---|"
let body = ``;
let md = ``;
let mdv = ``;
if (modified_dv_rows.length>0 || modified_dv_rows.length>0) {
if (created_dv_rows.length>0) {
body += `#### Created Today \n${create_mdtable(HeadRow, TableFormat, created_dv_rows)}\n`;
}
if (modified_dv_rows.length>0) {
body += `#### Modified Today \n${create_mdtable(HeadRow, TableFormat, modified_dv_rows)}\n`;
}
mdv = `\`\`\`\`ad-summary\ntitle: Worked Today\ncollapse: Open\n${body}\n\`\`\`\``;
md = `\n\> [!Summary]+ Worked Today`;
for (let line of body.split(/\r\n|\r|\n/) ){
md += `\n\> ${line}`
}
md += `\n`
}
// copy button
const copyToClipboard = str => {
const el = document.createElement('textarea');
el.value = str;
document.body.appendChild(el);
el.select();
document.execCommand('copy');
document.body.removeChild(el);
};
const copyButtonMaker = () => {
const btn = this.container.createEl('button', { "text": "Copy" });
btn.addEventListener('click', async (evt) => {
evt.preventDefault();
copyToClipboard(md);
});
return btn;
}
// Display preview
dv.paragraph(copyButtonMaker());
dv.paragraph(mdv);