2022-W08
File name must be in kkkk-'W'WW format, for example 2022-W08
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:
let pages = dv . pages ( '-"dailynotes"' )
Sources:
Worked This Week
const format = 'HH:mm:ss';
const week = "kkkk-'W'WW"
let pages = dv.pages('-"dailynotes"')
.where(p => p.file.mtime.toFormat(week) == dv.current().file.name)
.sort(k => k.file.mtime);
let md = "\n"
let mdv = "````ad-summary\ntitle: Worked This Week\ncollapse: close\n";
let ModTable = "";
const ModTableTopRow = [ "Time", "Link"];
let last_row = "";
for (let group of pages.groupBy(p => p.file.mday)) {
// add header 'cccc dd MMM. yyyy
// dv.header(2, group.key.toFormat('DDDD'));
// construct table dataview
let ModTableRows = group.rows
.map(p => [p.file.mtime.toFormat(format), p.file.name]);
// show data view table
//dv.table(ModTableTopRow, ModTableRows);
// add header 'cccc dd MMM. yyyy
md += "### [[" + group.key.toISODate() + "|" + group.key.toFormat('DDDD') + "]] \n";
// Add table heads
ModTable += `| ${ModTableTopRow.map(cell => cell + " |").join("")}\n`;
// Add ---
ModTable += "|" + " --- |".repeat(ModTableTopRow.length) + "\n";
// Add body
for (let Row of ModTableRows) {
if (Row[0] != last_row) {
ModTable += "|" + Row[0]+"| [[" + Row[1] + "]]| \n";
}
last_row = Row[0];
};
//dv.paragraph(ModTable);
md += ModTable + "\n";
// clean mod table
ModTable = "";
};
md += "\n"
mdv += md + "````"
// 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;
}
dv.paragraph(copyButtonMaker());
dv.paragraph(md)
//dv.paragraph(mdv)