parent
31c6f7a587
commit
fc1006f024
File diff suppressed because one or more lines are too long
@ -1,9 +0,0 @@
|
||||
{
|
||||
"id": "better-word-count",
|
||||
"name": "Better Word Count",
|
||||
"version": "0.9.4",
|
||||
"description": "Counts the words of selected text in the editor.",
|
||||
"author": "Luke Leppan",
|
||||
"authorUrl": "https://lukeleppan.com",
|
||||
"isDesktopOnly": false
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
details.bwc-sb-item-setting {
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: 10px;
|
||||
padding: 10px 5px 20px 10px;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.bwc-sb-item-setting summary::marker {
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
/* .bwc-sb-item-setting summary { */
|
||||
/* margin-bottom: 5px; */
|
||||
/* } */
|
||||
.bwc-sb-item-setting summary span.bwc-sb-buttons {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.bwc-status-bar-settings-title {
|
||||
margin-bottom: 0px;
|
||||
}
|
File diff suppressed because one or more lines are too long
@ -1,10 +1,10 @@
|
||||
{
|
||||
"id": "find-unlinked-files",
|
||||
"name": "Find orphaned files and broken links",
|
||||
"version": "1.8.1",
|
||||
"version": "1.9.0",
|
||||
"description": "Find files that are not linked anywhere and would otherwise be lost in your vault. In other words: files with no backlinks.",
|
||||
"author": "Vinzent",
|
||||
"fundingUrl": "https://ko-fi.com/vinzent",
|
||||
"authorUrl": "https://github.com/Vinzent03",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,10 +1,10 @@
|
||||
{
|
||||
"id": "meld-encrypt",
|
||||
"name": "Meld Encrypt",
|
||||
"version": "2.0.4",
|
||||
"minAppVersion": "0.12.15",
|
||||
"description": "Hide secrets in your valut",
|
||||
"author": "meld-cp",
|
||||
"authorUrl": "https://github.com/meld-cp/obsidian-encrypt",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
{
|
||||
"id": "meld-encrypt",
|
||||
"name": "Meld Encrypt",
|
||||
"version": "2.0.5",
|
||||
"minAppVersion": "1.0.3",
|
||||
"description": "Hide secrets in your vault",
|
||||
"author": "meld-cp",
|
||||
"authorUrl": "https://github.com/meld-cp/obsidian-encrypt",
|
||||
"isDesktopOnly": false
|
||||
}
|
File diff suppressed because one or more lines are too long
@ -1,23 +0,0 @@
|
||||
{
|
||||
"snippetList": [
|
||||
{
|
||||
"repo": "https://github.com/efemkay/obsidian-modular-css-layout",
|
||||
"snippetsContents": [
|
||||
{
|
||||
"name": "MCL Gallery Cards.css",
|
||||
"lastUpdate": "2022-11-28T02:12:53Z"
|
||||
},
|
||||
{
|
||||
"name": "MCL Multi Column.css",
|
||||
"lastUpdate": "2022-11-28T02:12:53Z"
|
||||
},
|
||||
{
|
||||
"name": "MCL Wide Views.css",
|
||||
"lastUpdate": "2022-11-18T15:21:49Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"excludedSnippet": "",
|
||||
"errorSnippet": ""
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -1,10 +0,0 @@
|
||||
{
|
||||
"id": "obsidian-snippet-downloader",
|
||||
"name": "Snippet Downloader",
|
||||
"version": "2.0.1",
|
||||
"minAppVersion": "0.12.0",
|
||||
"description": "A obsidian's plugin to help to manage css snippets (download / update) from repository ",
|
||||
"author": "Mara-Li",
|
||||
"authorUrl": "www.mara-li.fr",
|
||||
"isDesktopOnly": false
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
.setting-item.snippets-downloader-settings {
|
||||
border: none;
|
||||
padding: 0.5em 1em;
|
||||
}
|
||||
summary.snippets-downloader-summary {
|
||||
height: 2em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.setting-item.snippets-downloader-options {
|
||||
top:-2em;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
button.snippets-downloader-button {
|
||||
background: transparent !important;
|
||||
border: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
File diff suppressed because one or more lines are too long
@ -1,10 +0,0 @@
|
||||
{
|
||||
"id": "obsidian-stopwatch-plugin",
|
||||
"name": "Stopwatch Plugin",
|
||||
"version": "0.0.8",
|
||||
"minAppVersion": "0.9.12",
|
||||
"description": "Display stopwatch on Obsidian!",
|
||||
"author": "Tokuhiro Matsuno",
|
||||
"authorUrl": "https://64p.org",
|
||||
"isDesktopOnly": false
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
.stopwatch-time {
|
||||
font-size: 180%;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.settings-interval-alert {
|
||||
color: red;
|
||||
}
|
File diff suppressed because one or more lines are too long
@ -1,10 +1,11 @@
|
||||
{
|
||||
"id": "obsidian-tasks-plugin",
|
||||
"name": "Tasks",
|
||||
"version": "2.0.0",
|
||||
"version": "2.0.1",
|
||||
"minAppVersion": "0.14.6",
|
||||
"description": "Task management for Obsidian",
|
||||
"author": "Martin Schenck and Clare Macrae",
|
||||
"authorUrl": "https://github.com/obsidian-tasks-group",
|
||||
"fundingUrl": "https://github.com/sponsors/claremacrae",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
|
@ -1,7 +0,0 @@
|
||||
{
|
||||
"template": "{{text}}\n> [Wikipedia]({{url}})",
|
||||
"shouldUseParagraphTemplate": true,
|
||||
"shouldBoldSearchTerm": true,
|
||||
"paragraphTemplate": "> {{paragraphText}}\n>\n",
|
||||
"language": "en"
|
||||
}
|
File diff suppressed because one or more lines are too long
@ -1,10 +0,0 @@
|
||||
{
|
||||
"id": "obsidian-wikipedia",
|
||||
"name": "Wikipedia",
|
||||
"version": "1.0.3",
|
||||
"minAppVersion": "0.9.12",
|
||||
"description": "Grabs information from Wikipedia for a topic and brings it into Obsidian notes",
|
||||
"author": "Jonathan Miller",
|
||||
"authorUrl": "https://jmill.dev",
|
||||
"isDesktopOnly": false
|
||||
}
|
@ -1 +0,0 @@
|
||||
Not Found
|
File diff suppressed because one or more lines are too long
@ -1,10 +0,0 @@
|
||||
{
|
||||
"id": "recent-files-obsidian",
|
||||
"name": "Recent Files",
|
||||
"version": "1.3.5",
|
||||
"minAppVersion": "0.16.3",
|
||||
"description": "List files by most recently opened",
|
||||
"author": "Tony Grosinger",
|
||||
"authorUrl": "https://grosinger.net",
|
||||
"isDesktopOnly": false
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
.recent-files-title {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.recent-files-title-content {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.recent-files-file-delete {
|
||||
display: none;
|
||||
color: var(--nav-item-color);
|
||||
height: 17px;
|
||||
}
|
||||
|
||||
.recent-files-title:hover .recent-files-file-delete {
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.recent-files-file-delete:hover {
|
||||
color: var(--nav-item-color-hover);
|
||||
}
|
||||
|
||||
.recent-files-donation {
|
||||
width: 70%;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.recent-files-donate-button {
|
||||
margin: 10px;
|
||||
}
|
@ -1,387 +0,0 @@
|
||||
/*
|
||||
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
||||
if you want to view the source, please visit the github repository of this plugin
|
||||
*/
|
||||
var __create = Object.create;
|
||||
var __defProp = Object.defineProperty;
|
||||
var __defProps = Object.defineProperties;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
||||
var __getProtoOf = Object.getPrototypeOf;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
||||
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
||||
var __spreadValues = (a, b) => {
|
||||
for (var prop in b || (b = {}))
|
||||
if (__hasOwnProp.call(b, prop))
|
||||
__defNormalProp(a, prop, b[prop]);
|
||||
if (__getOwnPropSymbols)
|
||||
for (var prop of __getOwnPropSymbols(b)) {
|
||||
if (__propIsEnum.call(b, prop))
|
||||
__defNormalProp(a, prop, b[prop]);
|
||||
}
|
||||
return a;
|
||||
};
|
||||
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
||||
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
||||
var __export = (target, all) => {
|
||||
__markAsModule(target);
|
||||
for (var name in all)
|
||||
__defProp(target, name, { get: all[name], enumerable: true });
|
||||
};
|
||||
var __reExport = (target, module2, desc) => {
|
||||
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
||||
for (let key of __getOwnPropNames(module2))
|
||||
if (!__hasOwnProp.call(target, key) && key !== "default")
|
||||
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
||||
}
|
||||
return target;
|
||||
};
|
||||
var __toModule = (module2) => {
|
||||
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
||||
};
|
||||
var __async = (__this, __arguments, generator) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
var fulfilled = (value) => {
|
||||
try {
|
||||
step(generator.next(value));
|
||||
} catch (e) {
|
||||
reject(e);
|
||||
}
|
||||
};
|
||||
var rejected = (value) => {
|
||||
try {
|
||||
step(generator.throw(value));
|
||||
} catch (e) {
|
||||
reject(e);
|
||||
}
|
||||
};
|
||||
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
||||
step((generator = generator.apply(__this, __arguments)).next());
|
||||
});
|
||||
};
|
||||
|
||||
// src/main.ts
|
||||
__export(exports, {
|
||||
default: () => SimpleTimeTrackerPlugin
|
||||
});
|
||||
var import_obsidian3 = __toModule(require("obsidian"));
|
||||
|
||||
// src/settings.ts
|
||||
var defaultSettings = {
|
||||
timestampFormat: "YY-MM-DD hh:mm:ss",
|
||||
csvDelimiter: ","
|
||||
};
|
||||
|
||||
// src/settings-tab.ts
|
||||
var import_obsidian = __toModule(require("obsidian"));
|
||||
var SimpleTimeTrackerSettingsTab = class extends import_obsidian.PluginSettingTab {
|
||||
constructor(app, plugin) {
|
||||
super(app, plugin);
|
||||
this.plugin = plugin;
|
||||
}
|
||||
display() {
|
||||
this.containerEl.empty();
|
||||
this.containerEl.createEl("h2", { text: "Super Simple Time Tracker Settings" });
|
||||
new import_obsidian.Setting(this.containerEl).setName("Timestamp Display Format").setDesc(createFragment((f) => {
|
||||
f.createSpan({ text: "The way that timestamps in time tracker tables should be displayed. Uses " });
|
||||
f.createEl("a", { text: "moment.js", href: "https://momentjs.com/docs/#/parsing/string-format/" });
|
||||
f.createSpan({ text: " syntax." });
|
||||
})).addText((t) => {
|
||||
t.setValue(String(this.plugin.settings.timestampFormat));
|
||||
t.onChange((v) => __async(this, null, function* () {
|
||||
this.plugin.settings.timestampFormat = v.length ? v : defaultSettings.timestampFormat;
|
||||
yield this.plugin.saveSettings();
|
||||
}));
|
||||
});
|
||||
new import_obsidian.Setting(this.containerEl).setName("CSV Delimiter").setDesc("The delimiter character that should be used when copying a tracker table as CSV. For example, some languages use a semicolon instead of a comma.").addText((t) => {
|
||||
t.setValue(String(this.plugin.settings.csvDelimiter));
|
||||
t.onChange((v) => __async(this, null, function* () {
|
||||
this.plugin.settings.csvDelimiter = v.length ? v : defaultSettings.csvDelimiter;
|
||||
yield this.plugin.saveSettings();
|
||||
}));
|
||||
});
|
||||
this.containerEl.createEl("hr");
|
||||
this.containerEl.createEl("p", { text: "If you like this plugin and want to support its development, you can do so through my website by clicking this fancy image!" });
|
||||
this.containerEl.createEl("a", { href: "https://ellpeck.de/support" }).createEl("img", { attr: { src: "https://ellpeck.de/res/generalsupport.png" }, cls: "simple-time-tracker-support" });
|
||||
}
|
||||
};
|
||||
|
||||
// src/tracker.ts
|
||||
var import_obsidian2 = __toModule(require("obsidian"));
|
||||
function saveTracker(tracker, app, section) {
|
||||
return __async(this, null, function* () {
|
||||
let file = app.workspace.getActiveFile();
|
||||
if (!file)
|
||||
return;
|
||||
let content = yield app.vault.read(file);
|
||||
let lines = content.split("\n");
|
||||
let prev = lines.filter((_, i) => i <= section.lineStart).join("\n");
|
||||
let next = lines.filter((_, i) => i >= section.lineEnd).join("\n");
|
||||
content = `${prev}
|
||||
${JSON.stringify(tracker)}
|
||||
${next}`;
|
||||
yield app.vault.modify(file, content);
|
||||
});
|
||||
}
|
||||
function loadTracker(json) {
|
||||
if (json) {
|
||||
try {
|
||||
return JSON.parse(json);
|
||||
} catch (e) {
|
||||
console.log(`Failed to parse Tracker from ${json}`);
|
||||
}
|
||||
}
|
||||
return { entries: [] };
|
||||
}
|
||||
function displayTracker(tracker, element, getSectionInfo, settings) {
|
||||
let running = isRunning(tracker);
|
||||
let btn = new import_obsidian2.ButtonComponent(element).setClass("clickable-icon").setIcon(`lucide-${running ? "stop" : "play"}-circle`).setTooltip(running ? "End" : "Start").onClick(() => __async(this, null, function* () {
|
||||
if (running) {
|
||||
endRunningEntry(tracker);
|
||||
} else {
|
||||
startNewEntry(tracker, newSegmentNameBox.getValue());
|
||||
}
|
||||
yield saveTracker(tracker, this.app, getSectionInfo());
|
||||
}));
|
||||
btn.buttonEl.addClass("simple-time-tracker-btn");
|
||||
let newSegmentNameBox = new import_obsidian2.TextComponent(element).setPlaceholder("Segment name").setDisabled(running);
|
||||
newSegmentNameBox.inputEl.addClass("simple-time-tracker-txt");
|
||||
let timer = element.createDiv({ cls: "simple-time-tracker-timers" });
|
||||
let currentDiv = timer.createEl("div", { cls: "simple-time-tracker-timer" });
|
||||
let current = currentDiv.createEl("span", { cls: "simple-time-tracker-timer-time" });
|
||||
currentDiv.createEl("span", { text: "Current" });
|
||||
let totalDiv = timer.createEl("div", { cls: "simple-time-tracker-timer" });
|
||||
let total = totalDiv.createEl("span", { cls: "simple-time-tracker-timer-time", text: "0s" });
|
||||
totalDiv.createEl("span", { text: "Total" });
|
||||
if (tracker.entries.length > 0) {
|
||||
let table = element.createEl("table", { cls: "simple-time-tracker-table" });
|
||||
table.createEl("tr").append(createEl("th", { text: "Segment" }), createEl("th", { text: "Start time" }), createEl("th", { text: "End time" }), createEl("th", { text: "Duration" }), createEl("th"));
|
||||
for (let entry of tracker.entries)
|
||||
addEditableTableRow(tracker, entry, table, newSegmentNameBox, running, getSectionInfo, settings, 0);
|
||||
let buttons = element.createEl("div", { cls: "simple-time-tracker-bottom" });
|
||||
new import_obsidian2.ButtonComponent(buttons).setButtonText("Copy as table").onClick(() => navigator.clipboard.writeText(createMarkdownTable(tracker, settings)));
|
||||
new import_obsidian2.ButtonComponent(buttons).setButtonText("Copy as CSV").onClick(() => navigator.clipboard.writeText(createCsv(tracker, settings)));
|
||||
}
|
||||
setCountdownValues(tracker, current, total, currentDiv);
|
||||
let intervalId = window.setInterval(() => {
|
||||
if (!element.isConnected) {
|
||||
window.clearInterval(intervalId);
|
||||
return;
|
||||
}
|
||||
setCountdownValues(tracker, current, total, currentDiv);
|
||||
}, 1e3);
|
||||
}
|
||||
function startSubEntry(entry, name) {
|
||||
if (!entry.subEntries) {
|
||||
entry.subEntries = [__spreadProps(__spreadValues({}, entry), { name: `Part 1` })];
|
||||
entry.startTime = null;
|
||||
entry.endTime = null;
|
||||
}
|
||||
if (!name)
|
||||
name = `Part ${entry.subEntries.length + 1}`;
|
||||
entry.subEntries.push({ name, startTime: (0, import_obsidian2.moment)().unix(), endTime: null, subEntries: null });
|
||||
}
|
||||
function startNewEntry(tracker, name) {
|
||||
if (!name)
|
||||
name = `Segment ${tracker.entries.length + 1}`;
|
||||
let entry = { name, startTime: (0, import_obsidian2.moment)().unix(), endTime: null, subEntries: null };
|
||||
tracker.entries.push(entry);
|
||||
}
|
||||
function endRunningEntry(tracker) {
|
||||
let entry = getRunningEntry(tracker.entries);
|
||||
entry.endTime = (0, import_obsidian2.moment)().unix();
|
||||
}
|
||||
function removeEntry(entries, toRemove) {
|
||||
if (entries.contains(toRemove)) {
|
||||
entries.remove(toRemove);
|
||||
return true;
|
||||
} else {
|
||||
for (let entry of entries) {
|
||||
if (entry.subEntries && removeEntry(entry.subEntries, toRemove)) {
|
||||
if (entry.subEntries.length == 1) {
|
||||
let single = entry.subEntries[0];
|
||||
entry.startTime = single.startTime;
|
||||
entry.endTime = single.endTime;
|
||||
entry.subEntries = null;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function isRunning(tracker) {
|
||||
return !!getRunningEntry(tracker.entries);
|
||||
}
|
||||
function getRunningEntry(entries) {
|
||||
for (let entry of entries) {
|
||||
if (entry.subEntries) {
|
||||
let running = getRunningEntry(entry.subEntries);
|
||||
if (running)
|
||||
return running;
|
||||
} else {
|
||||
if (!entry.endTime)
|
||||
return entry;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
function getDuration(entry) {
|
||||
if (entry.subEntries) {
|
||||
return getTotalDuration(entry.subEntries);
|
||||
} else {
|
||||
let endTime = entry.endTime ? import_obsidian2.moment.unix(entry.endTime) : (0, import_obsidian2.moment)();
|
||||
return endTime.diff(import_obsidian2.moment.unix(entry.startTime));
|
||||
}
|
||||
}
|
||||
function getTotalDuration(entries) {
|
||||
let ret = 0;
|
||||
for (let entry of entries)
|
||||
ret += getDuration(entry);
|
||||
return ret;
|
||||
}
|
||||
function setCountdownValues(tracker, current, total, currentDiv) {
|
||||
let running = getRunningEntry(tracker.entries);
|
||||
if (running && !running.endTime) {
|
||||
current.setText(formatDuration(getDuration(running)));
|
||||
currentDiv.hidden = false;
|
||||
} else {
|
||||
currentDiv.hidden = true;
|
||||
}
|
||||
total.setText(formatDuration(getTotalDuration(tracker.entries)));
|
||||
}
|
||||
function formatTimestamp(timestamp, settings) {
|
||||
return import_obsidian2.moment.unix(timestamp).format(settings.timestampFormat);
|
||||
}
|
||||
function formatDuration(totalTime) {
|
||||
let duration = import_obsidian2.moment.duration(totalTime);
|
||||
let ret = "";
|
||||
if (duration.years() > 0)
|
||||
ret += duration.years() + "y ";
|
||||
if (duration.months() > 0)
|
||||
ret += duration.months() + "m ";
|
||||
if (duration.days() > 0)
|
||||
ret += duration.days() + "d ";
|
||||
if (duration.hours() > 0)
|
||||
ret += duration.hours() + "h ";
|
||||
if (duration.minutes() > 0)
|
||||
ret += duration.minutes() + "m ";
|
||||
ret += duration.seconds() + "s";
|
||||
return ret;
|
||||
}
|
||||
function createMarkdownTable(tracker, settings) {
|
||||
let table = [["Segment", "Start time", "End time", "Duration"]];
|
||||
for (let entry of tracker.entries)
|
||||
table.push(...createTableSection(entry, settings));
|
||||
table.push(["**Total**", "", "", `**${formatDuration(getTotalDuration(tracker.entries))}**`]);
|
||||
let ret = "";
|
||||
let widths = Array.from(Array(4).keys()).map((i) => Math.max(...table.map((a) => a[i].length)));
|
||||
for (let r = 0; r < table.length; r++) {
|
||||
if (r == 1)
|
||||
ret += Array.from(Array(4).keys()).map((i) => "-".repeat(widths[i])).join(" | ") + "\n";
|
||||
let row = [];
|
||||
for (let i = 0; i < 4; i++)
|
||||
row.push(table[r][i].padEnd(widths[i], " "));
|
||||
ret += row.join(" | ") + "\n";
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
function createCsv(tracker, settings) {
|
||||
let ret = "";
|
||||
for (let entry of tracker.entries) {
|
||||
for (let row of createTableSection(entry, settings))
|
||||
ret += row.join(settings.csvDelimiter) + "\n";
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
function createTableSection(entry, settings) {
|
||||
let ret = [[
|
||||
entry.name,
|
||||
entry.startTime ? formatTimestamp(entry.startTime, settings) : "",
|
||||
entry.endTime ? formatTimestamp(entry.endTime, settings) : "",
|
||||
entry.endTime || entry.subEntries ? formatDuration(getDuration(entry)) : ""
|
||||
]];
|
||||
if (entry.subEntries) {
|
||||
for (let sub of entry.subEntries)
|
||||
ret.push(...createTableSection(sub, settings));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
function addEditableTableRow(tracker, entry, table, newSegmentNameBox, running, getSectionInfo, settings, indent) {
|
||||
let row = table.createEl("tr");
|
||||
let name = row.createEl("td");
|
||||
let namePar = name.createEl("span", { text: entry.name });
|
||||
namePar.style.marginLeft = `${indent}em`;
|
||||
let nameBox = new import_obsidian2.TextComponent(name).setValue(entry.name);
|
||||
nameBox.inputEl.hidden = true;
|
||||
row.createEl("td", { text: entry.startTime ? formatTimestamp(entry.startTime, settings) : "" });
|
||||
row.createEl("td", { text: entry.endTime ? formatTimestamp(entry.endTime, settings) : "" });
|
||||
row.createEl("td", { text: entry.endTime || entry.subEntries ? formatDuration(getDuration(entry)) : "" });
|
||||
let entryButtons = row.createEl("td");
|
||||
if (!running) {
|
||||
new import_obsidian2.ButtonComponent(entryButtons).setClass("clickable-icon").setIcon(`lucide-play`).setTooltip("Continue").onClick(() => __async(this, null, function* () {
|
||||
startSubEntry(entry, newSegmentNameBox.getValue());
|
||||
yield saveTracker(tracker, this.app, getSectionInfo());
|
||||
}));
|
||||
}
|
||||
let editButton = new import_obsidian2.ButtonComponent(entryButtons).setClass("clickable-icon").setTooltip("Edit").setIcon("lucide-pencil").onClick(() => __async(this, null, function* () {
|
||||
if (namePar.hidden) {
|
||||
namePar.hidden = false;
|
||||
nameBox.inputEl.hidden = true;
|
||||
editButton.setIcon("lucide-pencil");
|
||||
if (nameBox.getValue()) {
|
||||
entry.name = nameBox.getValue();
|
||||
namePar.setText(entry.name);
|
||||
yield saveTracker(tracker, this.app, getSectionInfo());
|
||||
}
|
||||
} else {
|
||||
namePar.hidden = true;
|
||||
nameBox.inputEl.hidden = false;
|
||||
nameBox.setValue(entry.name);
|
||||
editButton.setIcon("lucide-check");
|
||||
}
|
||||
}));
|
||||
new import_obsidian2.ButtonComponent(entryButtons).setClass("clickable-icon").setTooltip("Remove").setIcon("lucide-trash").onClick(() => __async(this, null, function* () {
|
||||
removeEntry(tracker.entries, entry);
|
||||
yield saveTracker(tracker, this.app, getSectionInfo());
|
||||
}));
|
||||
if (entry.subEntries) {
|
||||
for (let sub of entry.subEntries)
|
||||
addEditableTableRow(tracker, sub, table, newSegmentNameBox, running, getSectionInfo, settings, indent + 1);
|
||||
}
|
||||
}
|
||||
|
||||
// src/main.ts
|
||||
var SimpleTimeTrackerPlugin = class extends import_obsidian3.Plugin {
|
||||
onload() {
|
||||
return __async(this, null, function* () {
|
||||
yield this.loadSettings();
|
||||
this.addSettingTab(new SimpleTimeTrackerSettingsTab(this.app, this));
|
||||
this.registerMarkdownCodeBlockProcessor("simple-time-tracker", (s, e, i) => {
|
||||
let tracker = loadTracker(s);
|
||||
e.empty();
|
||||
displayTracker(tracker, e, () => i.getSectionInfo(e), this.settings);
|
||||
});
|
||||
this.addCommand({
|
||||
id: `insert`,
|
||||
name: `Insert Time Tracker`,
|
||||
editorCallback: (e, _) => {
|
||||
e.replaceSelection("```simple-time-tracker\n```\n");
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
loadSettings() {
|
||||
return __async(this, null, function* () {
|
||||
this.settings = Object.assign({}, defaultSettings, yield this.loadData());
|
||||
});
|
||||
}
|
||||
saveSettings() {
|
||||
return __async(this, null, function* () {
|
||||
yield this.saveData(this.settings);
|
||||
});
|
||||
}
|
||||
};
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"id": "simple-time-tracker",
|
||||
"name": "Super Simple Time Tracker",
|
||||
"version": "0.1.6",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "Multi-purpose time trackers for your notes!",
|
||||
"author": "Ellpeck",
|
||||
"authorUrl": "https://ellpeck.de",
|
||||
"isDesktopOnly": false
|
||||
}
|
@ -1,64 +0,0 @@
|
||||
.simple-time-tracker-support {
|
||||
max-width: 50%;
|
||||
width: 400px;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.simple-time-tracker-btn,
|
||||
.simple-time-tracker-txt {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.simple-time-tracker-txt {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.simple-time-tracker-btn {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.simple-time-tracker-btn svg {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
.simple-time-tracker-bottom button {
|
||||
margin: 10px 5px 10px 5px;
|
||||
}
|
||||
|
||||
.simple-time-tracker-timers,
|
||||
.simple-time-tracker-bottom {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.simple-time-tracker-timers span {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.simple-time-tracker-timer {
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
.simple-time-tracker-timer-time {
|
||||
font-size: xx-large;
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
.simple-time-tracker-table {
|
||||
width: 100%;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.simple-time-tracker-table td,
|
||||
.simple-time-tracker-table th {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.simple-time-tracker-table .clickable-icon {
|
||||
display: inline;
|
||||
}
|
@ -0,0 +1,134 @@
|
||||
---
|
||||
|
||||
title: "🗒 Daily Note"
|
||||
allDay: true
|
||||
date: 2023-03-27
|
||||
Date: 2023-03-27
|
||||
DocType: Note
|
||||
Hierarchy:
|
||||
TimeStamp:
|
||||
location:
|
||||
CollapseMetaTable: true
|
||||
Sleep: 8.5
|
||||
Happiness: 80
|
||||
Gratefulness: 80
|
||||
Stress: 27.5
|
||||
FrontHeadBar: 5
|
||||
EarHeadBar: 35
|
||||
BackHeadBar: 20
|
||||
Water: 3.54
|
||||
Coffee: 2
|
||||
Steps: 10331
|
||||
Weight:
|
||||
Ski:
|
||||
IceSkating:
|
||||
Riding:
|
||||
Racket:
|
||||
Football:
|
||||
Swim:
|
||||
|
||||
---
|
||||
|
||||
%% Parent:: [[@Life Admin]] %%
|
||||
|
||||
---
|
||||
|
||||
[[2023-03-26|<< 🗓 Previous ]]       [[@Main Dashboard|Back]]       [[2023-03-28|🗓 Next >>]]
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
```button
|
||||
name Record today's health
|
||||
type command
|
||||
action MetaEdit: Run MetaEdit
|
||||
id EditMetaData
|
||||
```
|
||||
^button-2023-03-27Edit
|
||||
|
||||
```button
|
||||
name Save
|
||||
type command
|
||||
action Save current file
|
||||
id Save
|
||||
```
|
||||
^button-2023-03-27NSave
|
||||
|
||||
 
|
||||
|
||||
# 2023-03-27
|
||||
|
||||
 
|
||||
|
||||
> [!summary]+
|
||||
> Daily note for 2023-03-27
|
||||
|
||||
 
|
||||
|
||||
```toc
|
||||
style: number
|
||||
```
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### ✅ Tasks of the day
|
||||
|
||||
 
|
||||
|
||||
```tasks
|
||||
not done
|
||||
due on 2023-03-27
|
||||
path does not include Templates
|
||||
hide backlinks
|
||||
hide task count
|
||||
```
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### 📝 Memos
|
||||
|
||||
 
|
||||
|
||||
This section does serve for quick memos.
|
||||
|
||||
 
|
||||
|
||||
|
||||
%% --- %%
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### 🗒 Notes
|
||||
|
||||
 
|
||||
|
||||
📖: [[Au Revoir Là-Haut]]
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### :link: Linked activity
|
||||
|
||||
 
|
||||
|
||||
```dataview
|
||||
Table from [[2023-03-27]]
|
||||
```
|
||||
|
||||
 
|
||||
 
|
@ -0,0 +1,135 @@
|
||||
---
|
||||
|
||||
title: "🗒 Daily Note"
|
||||
allDay: true
|
||||
date: 2023-03-28
|
||||
Date: 2023-03-28
|
||||
DocType: Note
|
||||
Hierarchy:
|
||||
TimeStamp:
|
||||
location:
|
||||
CollapseMetaTable: true
|
||||
Sleep: 8
|
||||
Happiness: 80
|
||||
Gratefulness: 80
|
||||
Stress: 27.5
|
||||
FrontHeadBar: 5
|
||||
EarHeadBar: 35
|
||||
BackHeadBar: 20
|
||||
Water: 5.45
|
||||
Coffee: 0
|
||||
Steps: 4493
|
||||
Weight:
|
||||
Ski:
|
||||
IceSkating:
|
||||
Riding: 2
|
||||
Racket:
|
||||
Football:
|
||||
Swim:
|
||||
|
||||
---
|
||||
|
||||
%% Parent:: [[@Life Admin]] %%
|
||||
|
||||
---
|
||||
|
||||
[[2023-03-27|<< 🗓 Previous ]]       [[@Main Dashboard|Back]]       [[2023-03-29|🗓 Next >>]]
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
```button
|
||||
name Record today's health
|
||||
type command
|
||||
action MetaEdit: Run MetaEdit
|
||||
id EditMetaData
|
||||
```
|
||||
^button-2023-03-28Edit
|
||||
|
||||
```button
|
||||
name Save
|
||||
type command
|
||||
action Save current file
|
||||
id Save
|
||||
```
|
||||
^button-2023-03-28NSave
|
||||
|
||||
 
|
||||
|
||||
# 2023-03-28
|
||||
|
||||
 
|
||||
|
||||
> [!summary]+
|
||||
> Daily note for 2023-03-28
|
||||
|
||||
 
|
||||
|
||||
```toc
|
||||
style: number
|
||||
```
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### ✅ Tasks of the day
|
||||
|
||||
 
|
||||
|
||||
```tasks
|
||||
not done
|
||||
due on 2023-03-28
|
||||
path does not include Templates
|
||||
hide backlinks
|
||||
hide task count
|
||||
```
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### 📝 Memos
|
||||
|
||||
 
|
||||
|
||||
This section does serve for quick memos.
|
||||
|
||||
 
|
||||
|
||||
|
||||
%% --- %%
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### 🗒 Notes
|
||||
|
||||
 
|
||||
|
||||
📖: [[Au Revoir Là-Haut]]
|
||||
🐎: [[Son Ginard Polo Club]]
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### :link: Linked activity
|
||||
|
||||
 
|
||||
|
||||
```dataview
|
||||
Table from [[2023-03-28]]
|
||||
```
|
||||
|
||||
 
|
||||
 
|
@ -0,0 +1,136 @@
|
||||
---
|
||||
|
||||
title: "🗒 Daily Note"
|
||||
allDay: true
|
||||
date: 2023-03-29
|
||||
Date: 2023-03-29
|
||||
DocType: Note
|
||||
Hierarchy:
|
||||
TimeStamp:
|
||||
location:
|
||||
CollapseMetaTable: true
|
||||
Sleep: 9
|
||||
Happiness: 80
|
||||
Gratefulness: 80
|
||||
Stress: 27.5
|
||||
FrontHeadBar: 5
|
||||
EarHeadBar: 35
|
||||
BackHeadBar: 20
|
||||
Water: 4.5
|
||||
Coffee: 0
|
||||
Steps: 6236
|
||||
Weight:
|
||||
Ski:
|
||||
IceSkating:
|
||||
Riding: 2
|
||||
Racket:
|
||||
Football:
|
||||
Swim:
|
||||
|
||||
---
|
||||
|
||||
%% Parent:: [[@Life Admin]] %%
|
||||
|
||||
---
|
||||
|
||||
[[2023-03-28|<< 🗓 Previous ]]       [[@Main Dashboard|Back]]       [[2023-03-30|🗓 Next >>]]
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
```button
|
||||
name Record today's health
|
||||
type command
|
||||
action MetaEdit: Run MetaEdit
|
||||
id EditMetaData
|
||||
```
|
||||
^button-2023-03-29Edit
|
||||
|
||||
```button
|
||||
name Save
|
||||
type command
|
||||
action Save current file
|
||||
id Save
|
||||
```
|
||||
^button-2023-03-29NSave
|
||||
|
||||
 
|
||||
|
||||
# 2023-03-29
|
||||
|
||||
 
|
||||
|
||||
> [!summary]+
|
||||
> Daily note for 2023-03-29
|
||||
|
||||
 
|
||||
|
||||
```toc
|
||||
style: number
|
||||
```
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### ✅ Tasks of the day
|
||||
|
||||
 
|
||||
|
||||
```tasks
|
||||
not done
|
||||
due on 2023-03-29
|
||||
path does not include Templates
|
||||
hide backlinks
|
||||
hide task count
|
||||
```
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### 📝 Memos
|
||||
|
||||
 
|
||||
|
||||
This section does serve for quick memos.
|
||||
|
||||
 
|
||||
|
||||
|
||||
%% --- %%
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### 🗒 Notes
|
||||
|
||||
 
|
||||
|
||||
📖: [[Au Revoir Là-Haut]]
|
||||
|
||||
🐎: [[Son Ginard Polo Club]]
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### :link: Linked activity
|
||||
|
||||
 
|
||||
|
||||
```dataview
|
||||
Table from [[2023-03-29]]
|
||||
```
|
||||
|
||||
 
|
||||
 
|
@ -0,0 +1,134 @@
|
||||
---
|
||||
|
||||
title: "🗒 Daily Note"
|
||||
allDay: true
|
||||
date: 2023-03-30
|
||||
Date: 2023-03-30
|
||||
DocType: Note
|
||||
Hierarchy:
|
||||
TimeStamp:
|
||||
location:
|
||||
CollapseMetaTable: true
|
||||
Sleep: 9
|
||||
Happiness: 80
|
||||
Gratefulness: 80
|
||||
Stress: 27.5
|
||||
FrontHeadBar: 5
|
||||
EarHeadBar: 35
|
||||
BackHeadBar: 20
|
||||
Water: 3.3
|
||||
Coffee: 2
|
||||
Steps: 12091
|
||||
Weight:
|
||||
Ski:
|
||||
IceSkating:
|
||||
Riding: 1
|
||||
Racket:
|
||||
Football:
|
||||
Swim:
|
||||
|
||||
---
|
||||
|
||||
%% Parent:: [[@Life Admin]] %%
|
||||
|
||||
---
|
||||
|
||||
[[2023-03-29|<< 🗓 Previous ]]       [[@Main Dashboard|Back]]       [[2023-03-31|🗓 Next >>]]
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
```button
|
||||
name Record today's health
|
||||
type command
|
||||
action MetaEdit: Run MetaEdit
|
||||
id EditMetaData
|
||||
```
|
||||
^button-2023-03-30Edit
|
||||
|
||||
```button
|
||||
name Save
|
||||
type command
|
||||
action Save current file
|
||||
id Save
|
||||
```
|
||||
^button-2023-03-30NSave
|
||||
|
||||
 
|
||||
|
||||
# 2023-03-30
|
||||
|
||||
 
|
||||
|
||||
> [!summary]+
|
||||
> Daily note for 2023-03-30
|
||||
|
||||
 
|
||||
|
||||
```toc
|
||||
style: number
|
||||
```
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### ✅ Tasks of the day
|
||||
|
||||
 
|
||||
|
||||
```tasks
|
||||
not done
|
||||
due on 2023-03-30
|
||||
path does not include Templates
|
||||
hide backlinks
|
||||
hide task count
|
||||
```
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### 📝 Memos
|
||||
|
||||
 
|
||||
|
||||
This section does serve for quick memos.
|
||||
|
||||
 
|
||||
|
||||
|
||||
%% --- %%
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### 🗒 Notes
|
||||
|
||||
 
|
||||
|
||||
Loret ipsum
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### :link: Linked activity
|
||||
|
||||
 
|
||||
|
||||
```dataview
|
||||
Table from [[2023-03-30]]
|
||||
```
|
||||
|
||||
 
|
||||
 
|
@ -0,0 +1,134 @@
|
||||
---
|
||||
|
||||
title: "🗒 Daily Note"
|
||||
allDay: true
|
||||
date: 2023-03-31
|
||||
Date: 2023-03-31
|
||||
DocType: Note
|
||||
Hierarchy:
|
||||
TimeStamp:
|
||||
location:
|
||||
CollapseMetaTable: true
|
||||
Sleep: 7.5
|
||||
Happiness: 80
|
||||
Gratefulness: 80
|
||||
Stress: 27.5
|
||||
FrontHeadBar: 5
|
||||
EarHeadBar: 35
|
||||
BackHeadBar: 20
|
||||
Water: 4.237
|
||||
Coffee: 0
|
||||
Steps: 7088
|
||||
Weight:
|
||||
Ski:
|
||||
IceSkating:
|
||||
Riding: 1
|
||||
Racket:
|
||||
Football:
|
||||
Swim:
|
||||
|
||||
---
|
||||
|
||||
%% Parent:: [[@Life Admin]] %%
|
||||
|
||||
---
|
||||
|
||||
[[2023-03-30|<< 🗓 Previous ]]       [[@Main Dashboard|Back]]       [[2023-04-01|🗓 Next >>]]
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
```button
|
||||
name Record today's health
|
||||
type command
|
||||
action MetaEdit: Run MetaEdit
|
||||
id EditMetaData
|
||||
```
|
||||
^button-2023-03-31Edit
|
||||
|
||||
```button
|
||||
name Save
|
||||
type command
|
||||
action Save current file
|
||||
id Save
|
||||
```
|
||||
^button-2023-03-31NSave
|
||||
|
||||
 
|
||||
|
||||
# 2023-03-31
|
||||
|
||||
 
|
||||
|
||||
> [!summary]+
|
||||
> Daily note for 2023-03-31
|
||||
|
||||
 
|
||||
|
||||
```toc
|
||||
style: number
|
||||
```
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### ✅ Tasks of the day
|
||||
|
||||
 
|
||||
|
||||
```tasks
|
||||
not done
|
||||
due on 2023-03-31
|
||||
path does not include Templates
|
||||
hide backlinks
|
||||
hide task count
|
||||
```
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### 📝 Memos
|
||||
|
||||
 
|
||||
|
||||
This section does serve for quick memos.
|
||||
|
||||
 
|
||||
|
||||
|
||||
%% --- %%
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### 🗒 Notes
|
||||
|
||||
 
|
||||
|
||||
Loret ipsum
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### :link: Linked activity
|
||||
|
||||
 
|
||||
|
||||
```dataview
|
||||
Table from [[2023-03-31]]
|
||||
```
|
||||
|
||||
 
|
||||
 
|
@ -0,0 +1,134 @@
|
||||
---
|
||||
|
||||
title: "🗒 Daily Note"
|
||||
allDay: true
|
||||
date: 2023-04-01
|
||||
Date: 2023-04-01
|
||||
DocType: Note
|
||||
Hierarchy:
|
||||
TimeStamp:
|
||||
location:
|
||||
CollapseMetaTable: true
|
||||
Sleep: 9
|
||||
Happiness: 80
|
||||
Gratefulness: 80
|
||||
Stress: 27.5
|
||||
FrontHeadBar: 5
|
||||
EarHeadBar: 35
|
||||
BackHeadBar: 20
|
||||
Water: 3
|
||||
Coffee: 0
|
||||
Steps: 4543
|
||||
Weight:
|
||||
Ski:
|
||||
IceSkating:
|
||||
Riding: 1
|
||||
Racket:
|
||||
Football:
|
||||
Swim:
|
||||
|
||||
---
|
||||
|
||||
%% Parent:: [[@Life Admin]] %%
|
||||
|
||||
---
|
||||
|
||||
[[2023-03-31|<< 🗓 Previous ]]       [[@Main Dashboard|Back]]       [[2023-04-02|🗓 Next >>]]
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
```button
|
||||
name Record today's health
|
||||
type command
|
||||
action MetaEdit: Run MetaEdit
|
||||
id EditMetaData
|
||||
```
|
||||
^button-2023-04-01Edit
|
||||
|
||||
```button
|
||||
name Save
|
||||
type command
|
||||
action Save current file
|
||||
id Save
|
||||
```
|
||||
^button-2023-04-01NSave
|
||||
|
||||
 
|
||||
|
||||
# 2023-04-01
|
||||
|
||||
 
|
||||
|
||||
> [!summary]+
|
||||
> Daily note for 2023-04-01
|
||||
|
||||
 
|
||||
|
||||
```toc
|
||||
style: number
|
||||
```
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### ✅ Tasks of the day
|
||||
|
||||
 
|
||||
|
||||
```tasks
|
||||
not done
|
||||
due on 2023-04-01
|
||||
path does not include Templates
|
||||
hide backlinks
|
||||
hide task count
|
||||
```
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### 📝 Memos
|
||||
|
||||
 
|
||||
|
||||
This section does serve for quick memos.
|
||||
|
||||
 
|
||||
|
||||
|
||||
%% --- %%
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### 🗒 Notes
|
||||
|
||||
 
|
||||
|
||||
Loret ipsum
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### :link: Linked activity
|
||||
|
||||
 
|
||||
|
||||
```dataview
|
||||
Table from [[2023-04-01]]
|
||||
```
|
||||
|
||||
 
|
||||
 
|
@ -0,0 +1,134 @@
|
||||
---
|
||||
|
||||
title: "🗒 Daily Note"
|
||||
allDay: true
|
||||
date: 2023-04-02
|
||||
Date: 2023-04-02
|
||||
DocType: Note
|
||||
Hierarchy:
|
||||
TimeStamp:
|
||||
location:
|
||||
CollapseMetaTable: true
|
||||
Sleep: 7.5
|
||||
Happiness: 80
|
||||
Gratefulness: 80
|
||||
Stress: 27.5
|
||||
FrontHeadBar: 5
|
||||
EarHeadBar: 35
|
||||
BackHeadBar: 20
|
||||
Water: 3.33
|
||||
Coffee: 0
|
||||
Steps: 7696
|
||||
Weight:
|
||||
Ski:
|
||||
IceSkating:
|
||||
Riding: 1
|
||||
Racket:
|
||||
Football:
|
||||
Swim:
|
||||
|
||||
---
|
||||
|
||||
%% Parent:: [[@Life Admin]] %%
|
||||
|
||||
---
|
||||
|
||||
[[2023-04-01|<< 🗓 Previous ]]       [[@Main Dashboard|Back]]       [[2023-04-03|🗓 Next >>]]
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
```button
|
||||
name Record today's health
|
||||
type command
|
||||
action MetaEdit: Run MetaEdit
|
||||
id EditMetaData
|
||||
```
|
||||
^button-2023-04-02Edit
|
||||
|
||||
```button
|
||||
name Save
|
||||
type command
|
||||
action Save current file
|
||||
id Save
|
||||
```
|
||||
^button-2023-04-02NSave
|
||||
|
||||
 
|
||||
|
||||
# 2023-04-02
|
||||
|
||||
 
|
||||
|
||||
> [!summary]+
|
||||
> Daily note for 2023-04-02
|
||||
|
||||
 
|
||||
|
||||
```toc
|
||||
style: number
|
||||
```
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### ✅ Tasks of the day
|
||||
|
||||
 
|
||||
|
||||
```tasks
|
||||
not done
|
||||
due on 2023-04-02
|
||||
path does not include Templates
|
||||
hide backlinks
|
||||
hide task count
|
||||
```
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### 📝 Memos
|
||||
|
||||
 
|
||||
|
||||
This section does serve for quick memos.
|
||||
|
||||
 
|
||||
|
||||
|
||||
%% --- %%
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### 🗒 Notes
|
||||
|
||||
 
|
||||
|
||||
Loret ipsum
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### :link: Linked activity
|
||||
|
||||
 
|
||||
|
||||
```dataview
|
||||
Table from [[2023-04-02]]
|
||||
```
|
||||
|
||||
 
|
||||
 
|
@ -0,0 +1,134 @@
|
||||
---
|
||||
|
||||
title: "🗒 Daily Note"
|
||||
allDay: true
|
||||
date: 2023-04-03
|
||||
Date: 2023-04-03
|
||||
DocType: Note
|
||||
Hierarchy:
|
||||
TimeStamp:
|
||||
location:
|
||||
CollapseMetaTable: true
|
||||
Sleep: 8
|
||||
Happiness: 80
|
||||
Gratefulness: 80
|
||||
Stress: 27.5
|
||||
FrontHeadBar: 5
|
||||
EarHeadBar: 35
|
||||
BackHeadBar: 20
|
||||
Water: 0.5
|
||||
Coffee: 0
|
||||
Steps:
|
||||
Weight:
|
||||
Ski:
|
||||
IceSkating:
|
||||
Riding:
|
||||
Racket:
|
||||
Football:
|
||||
Swim:
|
||||
|
||||
---
|
||||
|
||||
%% Parent:: [[@Life Admin]] %%
|
||||
|
||||
---
|
||||
|
||||
[[2023-04-02|<< 🗓 Previous ]]       [[@Main Dashboard|Back]]       [[2023-04-04|🗓 Next >>]]
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
```button
|
||||
name Record today's health
|
||||
type command
|
||||
action MetaEdit: Run MetaEdit
|
||||
id EditMetaData
|
||||
```
|
||||
^button-2023-04-03Edit
|
||||
|
||||
```button
|
||||
name Save
|
||||
type command
|
||||
action Save current file
|
||||
id Save
|
||||
```
|
||||
^button-2023-04-03NSave
|
||||
|
||||
 
|
||||
|
||||
# 2023-04-03
|
||||
|
||||
 
|
||||
|
||||
> [!summary]+
|
||||
> Daily note for 2023-04-03
|
||||
|
||||
 
|
||||
|
||||
```toc
|
||||
style: number
|
||||
```
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### ✅ Tasks of the day
|
||||
|
||||
 
|
||||
|
||||
```tasks
|
||||
not done
|
||||
due on 2023-04-03
|
||||
path does not include Templates
|
||||
hide backlinks
|
||||
hide task count
|
||||
```
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### 📝 Memos
|
||||
|
||||
 
|
||||
|
||||
This section does serve for quick memos.
|
||||
|
||||
 
|
||||
|
||||
|
||||
%% --- %%
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### 🗒 Notes
|
||||
|
||||
 
|
||||
|
||||
Loret ipsum
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
 
|
||||
|
||||
### :link: Linked activity
|
||||
|
||||
 
|
||||
|
||||
```dataview
|
||||
Table from [[2023-04-03]]
|
||||
```
|
||||
|
||||
 
|
||||
 
|
Loading…
Reference in new issue