show minutes
This commit is contained in:
84
main.ts
84
main.ts
@@ -118,7 +118,8 @@ function formatSpan(from: M, to: M, verbose: boolean): { text: string; isNegativ
|
|||||||
const years = b.diff(a, "years"); a.add(years, "years");
|
const years = b.diff(a, "years"); a.add(years, "years");
|
||||||
const months = b.diff(a, "months"); a.add(months, "months");
|
const months = b.diff(a, "months"); a.add(months, "months");
|
||||||
const days = b.diff(a, "days"); a.add(days, "days");
|
const days = b.diff(a, "days"); a.add(days, "days");
|
||||||
const hours = b.diff(a, "hours");
|
const hours = b.diff(a, "hours"); a.add(hours, "hours");
|
||||||
|
const minutes = b.diff(a, "minutes");
|
||||||
|
|
||||||
if (verbose) {
|
if (verbose) {
|
||||||
const parts: string[] = [];
|
const parts: string[] = [];
|
||||||
@@ -126,14 +127,16 @@ function formatSpan(from: M, to: M, verbose: boolean): { text: string; isNegativ
|
|||||||
if (months) parts.push(`${months} month${months === 1 ? "" : "s"}`);
|
if (months) parts.push(`${months} month${months === 1 ? "" : "s"}`);
|
||||||
if (days) parts.push(`${days} day${days === 1 ? "" : "s"}`);
|
if (days) parts.push(`${days} day${days === 1 ? "" : "s"}`);
|
||||||
if (hours && parts.length < 3) parts.push(`${hours} hour${hours === 1 ? "" : "s"}`);
|
if (hours && parts.length < 3) parts.push(`${hours} hour${hours === 1 ? "" : "s"}`);
|
||||||
return { text: parts.join(", ") || "0 days", isNegative };
|
if (minutes && parts.length < 3) parts.push(`${minutes} minute${minutes === 1 ? "" : "s"}`);
|
||||||
|
return { text: parts.join(", ") || "0 minutes", isNegative };
|
||||||
} else {
|
} else {
|
||||||
const parts: string[] = [];
|
const parts: string[] = [];
|
||||||
if (years) parts.push(`${years}y`);
|
if (years) parts.push(`${years}y`);
|
||||||
if (months) parts.push(`${months}mo`);
|
if (months) parts.push(`${months}mo`);
|
||||||
if (days) parts.push(`${days}d`);
|
if (days) parts.push(`${days}d`);
|
||||||
if (hours && parts.length < 3) parts.push(`${hours}h`);
|
if (hours && parts.length < 3) parts.push(`${hours}h`);
|
||||||
return { text: parts.join(" ") || "0d", isNegative };
|
if (minutes && parts.length < 3) parts.push(`${minutes}m`);
|
||||||
|
return { text: parts.join(" ") || "0m", isNegative };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -668,6 +671,14 @@ class DateCalcSettingTab extends PluginSettingTab {
|
|||||||
|
|
||||||
containerEl.createEl("h2", { text: "Date Calc" });
|
containerEl.createEl("h2", { text: "Date Calc" });
|
||||||
|
|
||||||
|
// Add documentation link
|
||||||
|
const docsDiv = containerEl.createDiv({ cls: "setting-item-description" });
|
||||||
|
docsDiv.createEl("a", {
|
||||||
|
text: "📖 View Full Documentation",
|
||||||
|
href: "https://github.com/thelegend09/date-calculator",
|
||||||
|
});
|
||||||
|
docsDiv.style.marginBottom = "1em";
|
||||||
|
|
||||||
new Setting(containerEl)
|
new Setting(containerEl)
|
||||||
.setName("Debug logging")
|
.setName("Debug logging")
|
||||||
.setDesc("Logs decoration activity to the console.")
|
.setDesc("Logs decoration activity to the console.")
|
||||||
@@ -690,7 +701,7 @@ class DateCalcSettingTab extends PluginSettingTab {
|
|||||||
|
|
||||||
new Setting(containerEl)
|
new Setting(containerEl)
|
||||||
.setName("Verbose output")
|
.setName("Verbose output")
|
||||||
.setDesc("When enabled, show longer/wordier messages.")
|
.setDesc("When enabled, show longer/wordier messages. Can be overridden per-calculation with verbose=true/false.")
|
||||||
.addToggle((t) =>
|
.addToggle((t) =>
|
||||||
t.setValue(this.plugin.settings.verbose).onChange(async (v) => {
|
t.setValue(this.plugin.settings.verbose).onChange(async (v) => {
|
||||||
this.plugin.settings.verbose = v;
|
this.plugin.settings.verbose = v;
|
||||||
@@ -698,8 +709,69 @@ class DateCalcSettingTab extends PluginSettingTab {
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Usage examples section
|
||||||
containerEl.createEl("h3", { text: "Usage Examples" });
|
containerEl.createEl("h3", { text: "Usage Examples" });
|
||||||
containerEl.createEl("p", { text: "Inline: `date-calc: birthday=1992-08-16`" });
|
|
||||||
containerEl.createEl("p", { text: "Block: ```date-calc with YAML inside" });
|
const examplesDiv = containerEl.createDiv({ cls: "date-calc-examples" });
|
||||||
|
examplesDiv.style.fontSize = "0.9em";
|
||||||
|
examplesDiv.style.lineHeight = "1.6";
|
||||||
|
|
||||||
|
// Inline examples
|
||||||
|
examplesDiv.createEl("h4", { text: "Inline Code (single backticks)" });
|
||||||
|
const inlineList = examplesDiv.createEl("ul");
|
||||||
|
inlineList.createEl("li").setText("`date-calc: birthday=2003-02-15`");
|
||||||
|
inlineList.createEl("li").setText("`date-calc: countdown to=2026-12-31 label=\"New Year\"`");
|
||||||
|
inlineList.createEl("li").setText("`date-calc: since=2024-01-01`");
|
||||||
|
inlineList.createEl("li").setText("`date-calc: diff from=2024-01-01 to=2024-12-31`");
|
||||||
|
inlineList.createEl("li").setText("`date-calc: birthday=1992-08-16 verbose=true`");
|
||||||
|
|
||||||
|
// Block examples
|
||||||
|
examplesDiv.createEl("h4", { text: "Fenced Blocks (triple backticks)" });
|
||||||
|
|
||||||
|
const blockExample1 = examplesDiv.createEl("pre");
|
||||||
|
blockExample1.style.background = "var(--background-secondary)";
|
||||||
|
blockExample1.style.padding = "8px";
|
||||||
|
blockExample1.style.borderRadius = "4px";
|
||||||
|
blockExample1.style.marginBottom = "8px";
|
||||||
|
blockExample1.setText(
|
||||||
|
"```date-calc\n" +
|
||||||
|
"type: birthday\n" +
|
||||||
|
"birthday: 1992-08-16\n" +
|
||||||
|
"```"
|
||||||
|
);
|
||||||
|
|
||||||
|
const blockExample2 = examplesDiv.createEl("pre");
|
||||||
|
blockExample2.style.background = "var(--background-secondary)";
|
||||||
|
blockExample2.style.padding = "8px";
|
||||||
|
blockExample2.style.borderRadius = "4px";
|
||||||
|
blockExample2.style.marginBottom = "8px";
|
||||||
|
blockExample2.setText(
|
||||||
|
"```date-calc\n" +
|
||||||
|
"type: countdown\n" +
|
||||||
|
"to: 2026-12-31 23:59\n" +
|
||||||
|
"label: New Year\n" +
|
||||||
|
"verbose: true\n" +
|
||||||
|
"```"
|
||||||
|
);
|
||||||
|
|
||||||
|
const blockExample3 = examplesDiv.createEl("pre");
|
||||||
|
blockExample3.style.background = "var(--background-secondary)";
|
||||||
|
blockExample3.style.padding = "8px";
|
||||||
|
blockExample3.style.borderRadius = "4px";
|
||||||
|
blockExample3.setText(
|
||||||
|
"```date-calc\n" +
|
||||||
|
"type: diff\n" +
|
||||||
|
"from: 2024-01-01\n" +
|
||||||
|
"to: 2024-12-31\n" +
|
||||||
|
"```"
|
||||||
|
);
|
||||||
|
|
||||||
|
// Tips section
|
||||||
|
examplesDiv.createEl("h4", { text: "Tips" });
|
||||||
|
const tipsList = examplesDiv.createEl("ul");
|
||||||
|
tipsList.createEl("li").setText("Use YYYY-MM-DD format for dates");
|
||||||
|
tipsList.createEl("li").setText("Add time with YYYY-MM-DD HH:mm for precise countdowns");
|
||||||
|
tipsList.createEl("li").setText("Supported types: birthday, countdown, since, diff");
|
||||||
|
tipsList.createEl("li").setText("Add verbose=true/false to override global setting");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user