vault backup: 2024-04-23 22:38:34
This commit is contained in:
Vendored
+588
-298
File diff suppressed because one or more lines are too long
+2
-1
@@ -1,10 +1,11 @@
|
||||
{
|
||||
"id": "dataview",
|
||||
"name": "Dataview",
|
||||
"version": "0.5.64",
|
||||
"version": "0.5.66",
|
||||
"minAppVersion": "0.13.11",
|
||||
"description": "Complex data views for the data-obsessed.",
|
||||
"author": "Michael Brenan <blacksmithgu@gmail.com>",
|
||||
"authorUrl": "https://github.com/blacksmithgu",
|
||||
"helpUrl": "https://blacksmithgu.github.io/obsidian-dataview/",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
|
||||
+2
-1
@@ -23,13 +23,14 @@
|
||||
"showUnscheduledNestedTasks": true,
|
||||
"showNow": true,
|
||||
"showNext": true,
|
||||
"pluginVersion": "0.20.2",
|
||||
"pluginVersion": "0.20.3",
|
||||
"showCompletedTasks": true,
|
||||
"showSubtasksInTaskBlocks": true,
|
||||
"icals": [],
|
||||
"colorOverrides": [],
|
||||
"editMode": "simple",
|
||||
"copyOnDrag": false,
|
||||
"releaseNotes": true,
|
||||
"showDataviewMigrationWarning": false,
|
||||
"unscheduledTasksHeight": 100
|
||||
}
|
||||
+24
-12
@@ -34564,16 +34564,15 @@ var clockKey = "clocked";
|
||||
var clockFormat = "YYYY-MM-DDTHH:mm:ss";
|
||||
var reQueryAfterMillis = 200;
|
||||
var icalRefreshIntervalMillis = 5 * 60 * 1e3;
|
||||
var supportBanner = `I work on the plugin in my spare time, and I appreciate any kind of support!
|
||||
|
||||
\u2728 [Check out latest updates](https://github.com/ivan-lednev/obsidian-day-planner/releases)<br>
|
||||
\u{1FAB2} [Report bugs and suggest features. Vote with a \u{1F44D} on issues that are important for you](https://github.com/ivan-lednev/obsidian-day-planner/issues)<br>
|
||||
var supportBanner = `\u{1FAB2} [Report bugs and suggest features](https://github.com/ivan-lednev/obsidian-day-planner/issues)<br>
|
||||
\u2753 [Ask questions](https://github.com/ivan-lednev/obsidian-day-planner/discussions/new?category=q-a)<br>
|
||||
\u{1F44D} [Give thumbs up to issues important to you](https://github.com/ivan-lednev/obsidian-day-planner/issues)<br>
|
||||
\u{1FA9B} [Submit pull-requests](./CONTRIBUTING.md)<br>
|
||||
\u{1F4E7} <a href="mailto:bishop1860@gmail.com">Say thank you</a><br>
|
||||
\u2764\uFE0F Support the project directly:
|
||||
|
||||
<a href="https://www.buymeacoffee.com/machineelf" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
|
||||
|
||||
You can disable these release notes in the settings tab.
|
||||
`;
|
||||
var icons = [
|
||||
"any-key",
|
||||
@@ -34672,7 +34671,8 @@ var defaultSettings = {
|
||||
icals: [],
|
||||
colorOverrides: [],
|
||||
editMode: "simple",
|
||||
copyOnDrag: false
|
||||
copyOnDrag: false,
|
||||
releaseNotes: true
|
||||
};
|
||||
var defaultSettingsForTests = {
|
||||
...defaultSettings,
|
||||
@@ -36035,7 +36035,7 @@ var ReleaseNotesModal = class extends import_obsidian3.Modal {
|
||||
this.contentEl.createDiv({ cls: "releases" }, async (el) => {
|
||||
await import_obsidian3.MarkdownRenderer.render(
|
||||
this.plugin.app,
|
||||
"## 0.21.0\n\n- \u{1F41E} Fix different hourglass emoji breaking task movement\n\n## 0.20.0\n\n### New features\n\n- \u2728 Color coding: you can define background color for blocks containing certain text in first line\n- \u2728 Weekly view now displays unscheduled tasks on top\n- \u2728 Advanced drag-and-drop editing does not require modifier keys any more, you pick current edit mode in timeline controls \n\n### Fixed issues\n\n- \u{1F41E} Fixed scheduling tasks for other days than today (by @Lunkle)\n- \u{1F41E} Pointer to current time is now more visible \n- \u{1F41E} Task summary in internet calendars is now displayed next to calendar name, to make it visible in short blocks\n\n## 0.19.1 - 0.19.6\n\n- \u{1F41E} Fix iOS crash\n- \u{1F41E} Fix performance on startup\n- \u{1F41E} Fix colorful timeline both for local & remote calendars\n- \u{1F41E} Fix planner not reacting to daily note creation\n- \u{1F41E} Fix displaying hover preview\n\n## 0.19.0\n\n### \u2728 New Feature: Internet Calendar Sync (Google, Outlook, iCloud)\n\n- This lets you display events from calendars like Google Calendar, iCloud Calendar, Outlook Calendar\n- You only need to add a link in the plugin settings to start displaying events from that calendar\n\nSee [README](https://github.com/ivan-lednev/obsidian-day-planner?tab=readme-ov-file#showing-internet-calendars) for details.\n\n## 0.18.0\n\n### \u2728 New features\n\n- Now hovering over a task with `Control` pressed will trigger a preview pop-up. This works great with the awesome [Hover Editor plugin](https://github.com/nothingislost/obsidian-hover-editor)\n- Now when you click on a task, if there is an open tab for that file, the plugin is going to reuse it\n\n## 0.17.2\n\n### \u{1F41E} Fixed issues\n\n- Fix creating tasks with drag-and-drop\n\n## 0.17.0\n\n### \u{1F4A5} Breaking changes\n\n- Now by default, if your Dataview souce filter is empty, tasks are pulled only from visible daily notes\n - Most people never touch this field, so the plugin is going to be lightning-fast by default\n - If you want to add other folders or tags as task sources, you can still do so by adding them explicitly\n\n### \u2728 New features\n\n- When dragging tasks from daily notes across days in the weekly view, they now get moved across files\n- There is now an option to hide completed tasks from timeline\n- There is now an option to hide subtasks from task blocks in the timeline\n\n### \u{1F41E} Fixed issues\n\n- New drag-and-drop operations can now be started immediately after previous ones\n- The plugin is much faster in the default use case (daily notes only)\n- You can use plain list items in daily notes again\n- Notifications work again\n- Unscheduled tasks now fit their contents\n\n### Acknowledgements\n\n- Big thanks to @weph for helping me figure out a good performance solution\n",
|
||||
"## 0.20.1 - 0.20.3\n\n- \u{1F41E} add toggle to disable release notes (#399)\n- \u{1F41E} do not reset timeline position when it's already open (#289)\n- \u{1F41E} do not replace tab content when opening weekly view (#313)\n- \u{1F41E} fix status bar error breaking plugin\n- \u{1F41E} Move task on copy, instead of changing its size\n- \u{1F41E} Fix different hourglass emoji breaking task movement\n\n## 0.20.0\n\n### New features\n\n- \u2728 Color coding: you can define background color for blocks containing certain text in first line\n- \u2728 Weekly view now displays unscheduled tasks on top\n- \u2728 Advanced drag-and-drop editing does not require modifier keys any more, you pick current edit mode in timeline controls \n\n### Fixed issues\n\n- \u{1F41E} Fixed scheduling tasks for other days than today (by @Lunkle)\n- \u{1F41E} Pointer to current time is now more visible \n- \u{1F41E} Task summary in internet calendars is now displayed next to calendar name, to make it visible in short blocks\n\n## 0.19.1 - 0.19.6\n\n- \u{1F41E} Fix iOS crash\n- \u{1F41E} Fix performance on startup\n- \u{1F41E} Fix colorful timeline both for local & remote calendars\n- \u{1F41E} Fix planner not reacting to daily note creation\n- \u{1F41E} Fix displaying hover preview\n\n## 0.19.0\n\n### \u2728 New Feature: Internet Calendar Sync (Google, Outlook, iCloud)\n\n- This lets you display events from calendars like Google Calendar, iCloud Calendar, Outlook Calendar\n- You only need to add a link in the plugin settings to start displaying events from that calendar\n\nSee [README](https://github.com/ivan-lednev/obsidian-day-planner?tab=readme-ov-file#showing-internet-calendars) for details.\n\n## 0.18.0\n\n### \u2728 New features\n\n- Now hovering over a task with `Control` pressed will trigger a preview pop-up. This works great with the awesome [Hover Editor plugin](https://github.com/nothingislost/obsidian-hover-editor)\n- Now when you click on a task, if there is an open tab for that file, the plugin is going to reuse it\n\n## 0.17.2\n\n### \u{1F41E} Fixed issues\n\n- Fix creating tasks with drag-and-drop\n\n## 0.17.0\n\n### \u{1F4A5} Breaking changes\n\n- Now by default, if your Dataview souce filter is empty, tasks are pulled only from visible daily notes\n - Most people never touch this field, so the plugin is going to be lightning-fast by default\n - If you want to add other folders or tags as task sources, you can still do so by adding them explicitly\n\n### \u2728 New features\n\n- When dragging tasks from daily notes across days in the weekly view, they now get moved across files\n- There is now an option to hide completed tasks from timeline\n- There is now an option to hide subtasks from task blocks in the timeline\n\n### \u{1F41E} Fixed issues\n\n- New drag-and-drop operations can now be started immediately after previous ones\n- The plugin is much faster in the default use case (daily notes only)\n- You can use plain list items in daily notes again\n- Notifications work again\n- Unscheduled tasks now fit their contents\n\n### Acknowledgements\n\n- Big thanks to @weph for helping me figure out a good performance solution\n",
|
||||
el,
|
||||
"/",
|
||||
this.plugin
|
||||
@@ -36055,6 +36055,11 @@ var DayPlannerSettingsTab = class extends import_obsidian4.PluginSettingTab {
|
||||
display() {
|
||||
const { containerEl } = this;
|
||||
containerEl.empty();
|
||||
new import_obsidian4.Setting(containerEl).setName("Show release notes after update").addToggle(
|
||||
(toggle) => toggle.setValue(this.plugin.settings().releaseNotes).onChange((value) => {
|
||||
this.update({ releaseNotes: value });
|
||||
})
|
||||
);
|
||||
new import_obsidian4.Setting(containerEl).setName("Round time to minutes").setDesc("While editing, tasks are going to get rounded to this number").addSlider(
|
||||
(slider) => slider.setLimits(5, 20, 5).setValue(this.plugin.settings().snapStepMinutes).setDynamicTooltip().onChange((value) => {
|
||||
this.update({ snapStepMinutes: value });
|
||||
@@ -49057,7 +49062,7 @@ function createHooks({
|
||||
const tasksForToday = derived(
|
||||
[visibleTasks, currentTime],
|
||||
([$visibleTasks, $currentTime]) => {
|
||||
return $visibleTasks[getDayKey($currentTime)];
|
||||
return $visibleTasks[getDayKey($currentTime)] || getEmptyRecordsForDay();
|
||||
}
|
||||
);
|
||||
const editContext = useEditContext({
|
||||
@@ -49139,7 +49144,7 @@ var DayPlanner = class extends import_obsidian12.Plugin {
|
||||
super(...arguments);
|
||||
this.initWeeklyLeaf = async () => {
|
||||
await this.detachLeavesOfType(viewTypeWeekly);
|
||||
await this.app.workspace.getLeaf(false).setViewState({
|
||||
await this.app.workspace.getLeaf("tab").setViewState({
|
||||
type: viewTypeWeekly,
|
||||
active: true
|
||||
});
|
||||
@@ -49151,6 +49156,11 @@ var DayPlanner = class extends import_obsidian12.Plugin {
|
||||
});
|
||||
};
|
||||
this.initTimelineLeaf = async () => {
|
||||
const [firstExistingTimeline] = this.app.workspace.getLeavesOfType(viewTypeTimeline);
|
||||
if (firstExistingTimeline) {
|
||||
this.app.workspace.revealLeaf(firstExistingTimeline);
|
||||
return;
|
||||
}
|
||||
await this.detachLeavesOfType(viewTypeTimeline);
|
||||
await this.app.workspace.getRightLeaf(false).setViewState({
|
||||
type: viewTypeTimeline,
|
||||
@@ -49189,14 +49199,16 @@ var DayPlanner = class extends import_obsidian12.Plugin {
|
||||
]);
|
||||
}
|
||||
handleNewPluginVersion() {
|
||||
if (this.settings().pluginVersion === "0.20.2") {
|
||||
if (this.settings().pluginVersion === "0.20.3") {
|
||||
return;
|
||||
}
|
||||
this.settingsStore.update((previous) => ({
|
||||
...previous,
|
||||
pluginVersion: "0.20.2"
|
||||
pluginVersion: "0.20.3"
|
||||
}));
|
||||
this.showReleaseNotes();
|
||||
if (this.settings().releaseNotes) {
|
||||
this.showReleaseNotes();
|
||||
}
|
||||
}
|
||||
registerCommands() {
|
||||
this.addCommand({
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "obsidian-day-planner",
|
||||
"name": "Day Planner",
|
||||
"version": "0.20.2",
|
||||
"version": "0.20.3",
|
||||
"minAppVersion": "0.16.0",
|
||||
"description": "A day planner with clean UI and readable syntax",
|
||||
"author": "James Lynch, continued by Ivan Lednev",
|
||||
|
||||
+13
-3
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"folder": "5.Excalidraw",
|
||||
"cropFolder": "",
|
||||
"annotateFolder": "",
|
||||
"embedUseExcalidrawFolder": false,
|
||||
"templateFilePath": "Excalidraw/Template.excalidraw",
|
||||
"scriptFolderPath": "Excalidraw/Scripts",
|
||||
@@ -15,6 +16,8 @@
|
||||
"drawingFilenameDateTime": "YYYY-MM-DD HH.mm.ss",
|
||||
"useExcalidrawExtension": true,
|
||||
"cropPrefix": "cropped_",
|
||||
"annotatePrefix": "annotated_",
|
||||
"annotatePreserveSize": false,
|
||||
"previewImageType": "SVGIMG",
|
||||
"allowImageCache": true,
|
||||
"displayExportedImageIfAvailable": false,
|
||||
@@ -29,6 +32,9 @@
|
||||
"matchThemeTrigger": false,
|
||||
"defaultMode": "normal",
|
||||
"defaultPenMode": "never",
|
||||
"penModeCrosshairVisible": false,
|
||||
"renderImageInMarkdownReadingMode": false,
|
||||
"renderImageInMarkdownToPDF": false,
|
||||
"allowPinchZoom": false,
|
||||
"allowWheelZoom": false,
|
||||
"zoomToFitOnOpen": true,
|
||||
@@ -56,6 +62,7 @@
|
||||
"exportWithTheme": true,
|
||||
"exportWithBackground": true,
|
||||
"exportPaddingSVG": 10,
|
||||
"exportEmbedScene": false,
|
||||
"keepInSync": false,
|
||||
"autoexportSVG": false,
|
||||
"autoexportPNG": false,
|
||||
@@ -68,6 +75,7 @@
|
||||
"experimentalFileType": false,
|
||||
"experimentalFileTag": "✏️",
|
||||
"experimentalLivePreview": true,
|
||||
"fadeOutExcalidrawMarkup": false,
|
||||
"experimentalEnableFourthFont": false,
|
||||
"experimantalFourthFont": "Virgil",
|
||||
"fieldSuggester": true,
|
||||
@@ -77,7 +85,7 @@
|
||||
"library2": {
|
||||
"type": "excalidrawlib",
|
||||
"version": 2,
|
||||
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.0.25",
|
||||
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.0.23",
|
||||
"libraryItems": [
|
||||
{
|
||||
"status": "published",
|
||||
@@ -34660,7 +34668,7 @@
|
||||
"mdCSS": "",
|
||||
"scriptEngineSettings": {},
|
||||
"defaultTrayMode": false,
|
||||
"previousRelease": "2.0.25",
|
||||
"previousRelease": "2.1.5",
|
||||
"showReleaseNotes": true,
|
||||
"showNewVersionNotification": true,
|
||||
"latexBoilerplate": "\\color{blue}",
|
||||
@@ -35300,5 +35308,7 @@
|
||||
}
|
||||
},
|
||||
"slidingPanesSupport": false,
|
||||
"areaZoomLimit": 1
|
||||
"areaZoomLimit": 1,
|
||||
"longPressDesktop": 500,
|
||||
"longPressMobile": 500
|
||||
}
|
||||
+10
-8
File diff suppressed because one or more lines are too long
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "obsidian-excalidraw-plugin",
|
||||
"name": "Excalidraw",
|
||||
"version": "2.0.25",
|
||||
"version": "2.1.5",
|
||||
"minAppVersion": "1.1.6",
|
||||
"description": "An Obsidian plugin to edit and view Excalidraw drawings",
|
||||
"author": "Zsolt Viczian",
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+5
-5
@@ -1,20 +1,20 @@
|
||||
{
|
||||
"commitMessage": "vault backup: {{date}}",
|
||||
"commitMessage": "vault backup: {{date}} from {{hostname}}",
|
||||
"commitDateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"autoSaveInterval": 0,
|
||||
"autoSaveInterval": 10,
|
||||
"autoPushInterval": 0,
|
||||
"autoPullInterval": 0,
|
||||
"autoPullInterval": 10,
|
||||
"autoPullOnBoot": true,
|
||||
"disablePush": false,
|
||||
"pullBeforePush": true,
|
||||
"disablePopups": false,
|
||||
"disablePopupsForNoChanges": false,
|
||||
"disablePopupsForNoChanges": true,
|
||||
"listChangedFilesInMessageBody": false,
|
||||
"showStatusBar": true,
|
||||
"updateSubmodules": false,
|
||||
"syncMethod": "merge",
|
||||
"customMessageOnAutoBackup": false,
|
||||
"autoBackupAfterFileChange": false,
|
||||
"autoBackupAfterFileChange": true,
|
||||
"treeStructure": false,
|
||||
"refreshSourceControl": true,
|
||||
"basePath": "",
|
||||
|
||||
+3
-1
@@ -21,6 +21,8 @@
|
||||
"iconInFrontmatterEnabled": true,
|
||||
"iconsBackgroundCheckEnabled": true,
|
||||
"iconsInNotesEnabled": true,
|
||||
"iconIdentifier": ":"
|
||||
"iconIdentifier": ":",
|
||||
"iconsInLinksEnabled": true,
|
||||
"debugMode": false
|
||||
}
|
||||
}
|
||||
+723
-178
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "obsidian-icon-folder",
|
||||
"name": "Iconize",
|
||||
"version": "2.10.1",
|
||||
"version": "2.11.13",
|
||||
"minAppVersion": "0.9.12",
|
||||
"description": "Add icons to anything you desire in Obsidian, including files, folders, and text.",
|
||||
"author": "Florian Woelki",
|
||||
|
||||
+115
-110
@@ -1,110 +1,115 @@
|
||||
.iconize-title-icon {
|
||||
max-width: var(--max-width);
|
||||
width: var(--line-width);
|
||||
margin-inline: var(--content-margin) !important;
|
||||
}
|
||||
|
||||
.iconize-icon {
|
||||
border: 1px solid transparent;
|
||||
margin: 0px 4px 0px 0px;
|
||||
display: flex;
|
||||
align-self: center;
|
||||
margin: auto 0;
|
||||
}
|
||||
|
||||
.nav-folder-title,
|
||||
.nav-file-title {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.iconize-setting input[type='color'] {
|
||||
margin: 0 6px;
|
||||
}
|
||||
|
||||
.iconize-modal.prompt-results {
|
||||
margin: 0;
|
||||
overflow-y: auto;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(5, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.prompt .iconize-subheadline {
|
||||
margin-top: 12px;
|
||||
font-size: 12px;
|
||||
color: gray;
|
||||
grid-column-start: 1;
|
||||
grid-column-end: 6;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.iconize-modal.prompt-results {
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
}
|
||||
.prompt .iconize-subheadline {
|
||||
grid-column-end: 4;
|
||||
}
|
||||
}
|
||||
|
||||
.iconize-modal.prompt-results .suggestion-item {
|
||||
cursor: pointer;
|
||||
white-space: pre-wrap;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
flex-direction: column-reverse;
|
||||
text-align: center;
|
||||
font-size: 13px;
|
||||
color: var(--text-muted);
|
||||
padding: 16px 8px;
|
||||
line-break: auto;
|
||||
word-break: break-word;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.iconize-modal.prompt-results
|
||||
.suggestion-item.suggestion-item__center {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.iconize-icon-preview {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
.iconize-icon-preview img {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.iconize-icon-preview svg {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
color: currentColor;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.iconize-dragover {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.iconize-dragover-el {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
color: var(--text-normal);
|
||||
background-color: var(--background-secondary-alt);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* Custom rule modal. */
|
||||
.iconize-custom-modal .modal-content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.iconize-custom-modal .modal-content input {
|
||||
width: 100%;
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
.iconize-title-icon {
|
||||
max-width: var(--max-width);
|
||||
width: var(--line-width);
|
||||
margin-inline: var(--content-margin) !important;
|
||||
}
|
||||
|
||||
.iconize-icon-in-link {
|
||||
margin-right: var(--size-2-2);
|
||||
display: inline-flex;
|
||||
transform: translateY(13%);
|
||||
}
|
||||
|
||||
.iconize-icon {
|
||||
border: 1px solid transparent;
|
||||
margin: 0px 4px 0px 0px;
|
||||
display: flex;
|
||||
align-self: center;
|
||||
margin: auto 0;
|
||||
}
|
||||
|
||||
.nav-folder-title,
|
||||
.nav-file-title {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.iconize-setting input[type='color'] {
|
||||
margin: 0 6px;
|
||||
}
|
||||
|
||||
.iconize-modal.prompt-results {
|
||||
margin: 0;
|
||||
overflow-y: auto;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(5, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.prompt .iconize-subheadline {
|
||||
margin-top: 12px;
|
||||
font-size: 12px;
|
||||
color: gray;
|
||||
grid-column-start: 1;
|
||||
grid-column-end: 6;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.iconize-modal.prompt-results {
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
}
|
||||
.prompt .iconize-subheadline {
|
||||
grid-column-end: 4;
|
||||
}
|
||||
}
|
||||
|
||||
.iconize-modal.prompt-results .suggestion-item {
|
||||
cursor: pointer;
|
||||
white-space: pre-wrap;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
flex-direction: column-reverse;
|
||||
text-align: center;
|
||||
font-size: 13px;
|
||||
color: var(--text-muted);
|
||||
padding: 16px 8px;
|
||||
line-break: auto;
|
||||
word-break: break-word;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.iconize-modal.prompt-results .suggestion-item.suggestion-item__center {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.iconize-icon-preview {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
.iconize-icon-preview img {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.iconize-icon-preview svg {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
color: currentColor;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.iconize-dragover {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.iconize-dragover-el {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
color: var(--text-normal);
|
||||
background-color: var(--background-secondary-alt);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* Custom rule modal. */
|
||||
.iconize-custom-modal .modal-content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.iconize-custom-modal .modal-content input {
|
||||
width: 100%;
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
|
||||
+2
-1
@@ -4,5 +4,6 @@
|
||||
"date-picker-week-start": 1,
|
||||
"archive-with-date": true,
|
||||
"link-date-to-daily-note": true,
|
||||
"date-colors": []
|
||||
"date-colors": [],
|
||||
"show-relative-date": true
|
||||
}
|
||||
+2
-2
@@ -2,7 +2,6 @@
|
||||
"devMode": false,
|
||||
"ignoreCodeBlockRestrictions": false,
|
||||
"preferredDateFormat": "YYYY-MM-DD",
|
||||
"useUsDateInputOrder": false,
|
||||
"firstWeekday": {
|
||||
"index": 1,
|
||||
"name": "Monday",
|
||||
@@ -19,5 +18,6 @@
|
||||
"buttonTemplates": [],
|
||||
"excludedFolders": [
|
||||
"templates"
|
||||
]
|
||||
],
|
||||
"useUsDateInputOrder": false
|
||||
}
|
||||
+107
-81
File diff suppressed because one or more lines are too long
@@ -1,11 +1,12 @@
|
||||
{
|
||||
"id": "obsidian-meta-bind-plugin",
|
||||
"name": "Meta Bind",
|
||||
"version": "0.12.5",
|
||||
"version": "1.1.0",
|
||||
"minAppVersion": "1.4.0",
|
||||
"description": "Make your notes interactive with inline input fields, metadata displays, and buttons.",
|
||||
"author": "Moritz Jung",
|
||||
"authorUrl": "https://mprojectscode.github.io/",
|
||||
"authorUrl": "https://www.moritzjung.dev/",
|
||||
"fundingUrl": "https://github.com/sponsors/mProjectsCode",
|
||||
"helpUrl": "https://www.moritzjung.dev/obsidian-meta-bind-plugin-docs/",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
|
||||
+230
-69
@@ -4,6 +4,14 @@ body {
|
||||
--mb-slider-spacing: 5px;
|
||||
--mb-select-element-border-width: 5px;
|
||||
--mb-date-input-year-input-width: 80px;
|
||||
|
||||
--mb-background-modifier-active: hsla(var(--interactive-accent-hsl), 0.15);
|
||||
--mb-background-modifier-active-hover: hsla(var(--interactive-accent-hsl), 0.3);
|
||||
|
||||
--mb-input-type-select-text: var(--text-muted);
|
||||
--mb-input-type-select-text-hover: var(--text-normal);
|
||||
--mb-input-type-select-text-active: var(--text-normal);
|
||||
--mb-input-type-select-text-active-hover: var(--text-normal);
|
||||
}
|
||||
|
||||
/* Input Wrappers */
|
||||
@@ -125,74 +133,56 @@ div.mb-view-wrapper {
|
||||
/* Select Input */
|
||||
.mb-select-input-element {
|
||||
cursor: pointer;
|
||||
padding: 5px;
|
||||
margin: 5px 0 5px 0;
|
||||
display: flex;
|
||||
gap: var(--size-4-2);
|
||||
align-items: center;
|
||||
padding: var(--size-4-1) var(--size-4-2);
|
||||
margin: var(--size-4-1) 0;
|
||||
border-radius: var(--mb-border-radius);
|
||||
border-left: var(--mb-select-element-border-width) solid transparent;
|
||||
white-space: pre-wrap;
|
||||
font-size: 16px;
|
||||
min-width: 200px;
|
||||
}
|
||||
color: var(--mb-input-type-select-text);
|
||||
|
||||
.mb-select-input-element.is-selected {
|
||||
border-left: var(--mb-select-element-border-width) solid var(--interactive-accent);
|
||||
background: var(--background-secondary);
|
||||
}
|
||||
&.is-selected {
|
||||
color: var(--mb-input-type-select-text-active);
|
||||
background: var(--mb-background-modifier-active);
|
||||
|
||||
.mb-select-input-element:hover {
|
||||
background: var(--background-secondary);
|
||||
}
|
||||
&:hover {
|
||||
color: var(--mb-input-type-select-text-active-hover);
|
||||
background: var(--mb-background-modifier-active-hover);
|
||||
}
|
||||
}
|
||||
|
||||
/* Date Input */
|
||||
.mb-date-input-year-input[type='number'] {
|
||||
width: var(--mb-date-input-year-input-width);
|
||||
height: unset;
|
||||
align-self: stretch;
|
||||
}
|
||||
&:hover {
|
||||
color: var(--mb-input-type-select-text-hover);
|
||||
background: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
/* Input Element Group */
|
||||
.mb-input-element-group {
|
||||
display: inline-flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
&:not(.mb-mod-multi) > input[type='checkbox'] {
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.mb-input-element-group .mb-input-element-group-element:focus {
|
||||
z-index: 10;
|
||||
& > input[type='checkbox'] {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.mb-input-element-group .mb-input-element-group-element:first-child {
|
||||
border-radius: var(--mb-border-radius) 0 0 var(--mb-border-radius);
|
||||
}
|
||||
|
||||
.mb-input-element-group .mb-input-element-group-element:not(:first-child):not(:last-child) {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.mb-input-element-group .mb-input-element-group-element:last-child {
|
||||
border-radius: 0 var(--mb-border-radius) var(--mb-border-radius) 0;
|
||||
}
|
||||
|
||||
/* SailKite small input fields so that line height is consistent */
|
||||
/* https://discord.com/channels/1171444840257572935/1171444840257572939/1171562547212726403 */
|
||||
/*.mb-input-element-group {*/
|
||||
/* & > .mb-date-input-year-input[type='number'] {*/
|
||||
/* padding-block: 0;*/
|
||||
/* }*/
|
||||
/* & > .mb-input-element-group-element {*/
|
||||
/* height: 100%;*/
|
||||
/* }*/
|
||||
/*}*/
|
||||
|
||||
/* List Input */
|
||||
.mb-list-input {
|
||||
display: flex;
|
||||
gap: var(--size-4-2);
|
||||
}
|
||||
|
||||
.mb-list-input > div:has(> input) {
|
||||
.mb-list-input > input {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.mb-list-input > textarea {
|
||||
flex-grow: 1;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
.mb-list-empty {
|
||||
color: var(--text-faint);
|
||||
}
|
||||
@@ -201,15 +191,22 @@ div.mb-view-wrapper {
|
||||
margin-bottom: var(--size-4-4);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--size-4-2);
|
||||
gap: var(--size-4-1);
|
||||
}
|
||||
|
||||
.mb-list-item {
|
||||
display: flex;
|
||||
}
|
||||
padding: var(--size-4-1) var(--size-4-2);
|
||||
border-radius: var(--mb-border-radius);
|
||||
user-select: text;
|
||||
|
||||
.mb-list-item > span {
|
||||
flex-grow: 1;
|
||||
& > span {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: var(--background-modifier-hover);
|
||||
}
|
||||
}
|
||||
|
||||
/* Inline List */
|
||||
@@ -226,21 +223,19 @@ div.mb-view-wrapper {
|
||||
padding-inline: var(--size-4-2);
|
||||
padding-block: var(--size-4-1);
|
||||
font-size: var(--font-ui-small);
|
||||
vertical-align: bottom;
|
||||
user-select: text;
|
||||
|
||||
&:not(:last-child) {
|
||||
margin-right: var(--size-4-2);
|
||||
}
|
||||
|
||||
& > .mb-inline-list-item-button {
|
||||
border: none;
|
||||
background: none;
|
||||
padding: initial;
|
||||
height: unset;
|
||||
box-shadow: none;
|
||||
|
||||
&:hover {
|
||||
color: var(--text-error);
|
||||
}
|
||||
&:hover {
|
||||
border-color: var(--background-modifier-border-hover);
|
||||
background-color: var(--background-modifier-hover);
|
||||
transition:
|
||||
box-shadow 0.15s ease-in-out,
|
||||
border 0.15s ease-in-out;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -254,7 +249,17 @@ div.mb-view-wrapper {
|
||||
font-size: var(--font-ui-small);
|
||||
|
||||
&:hover {
|
||||
color: var(--text-accent);
|
||||
border-color: var(--background-modifier-border-hover);
|
||||
background-color: var(--background-modifier-hover);
|
||||
transition:
|
||||
box-shadow 0.15s ease-in-out,
|
||||
border 0.15s ease-in-out;
|
||||
}
|
||||
|
||||
&:focus,
|
||||
&:focus-visible {
|
||||
box-shadow: 0 0 0 2px var(--background-modifier-border-focus);
|
||||
color: var(--text-normal);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -264,13 +269,25 @@ div.mb-view-wrapper {
|
||||
background: var(--background-modifier-form-field);
|
||||
border-radius: var(--mb-border-radius);
|
||||
border: var(--mb-border-width) solid var(--background-modifier-border);
|
||||
padding: 5px 5px 5px 7px;
|
||||
cursor: pointer;
|
||||
padding: var(--size-4-1) var(--size-4-2);
|
||||
position: relative;
|
||||
color: var(--text-normal);
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
gap: var(--size-4-1);
|
||||
user-select: text;
|
||||
|
||||
&:hover {
|
||||
border-color: var(--background-modifier-border-hover);
|
||||
transition:
|
||||
box-shadow 0.15s ease-in-out,
|
||||
border 0.15s ease-in-out;
|
||||
}
|
||||
}
|
||||
|
||||
.mb-suggest-input > button {
|
||||
padding: 0;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.mb-suggest-text {
|
||||
@@ -280,7 +297,7 @@ div.mb-view-wrapper {
|
||||
/* Progress Bar Input */
|
||||
|
||||
.mb-progress-bar-input {
|
||||
height: 32px;
|
||||
height: var(--input-height);
|
||||
width: 100%;
|
||||
border-radius: var(--mb-border-radius);
|
||||
border: var(--mb-border-width) solid var(--background-modifier-border);
|
||||
@@ -293,7 +310,7 @@ div.mb-view-wrapper {
|
||||
}
|
||||
|
||||
.mb-progress-bar-progress {
|
||||
height: 32px;
|
||||
height: 100%;
|
||||
background: var(--color-accent);
|
||||
border-radius: var(--mb-border-radius);
|
||||
}
|
||||
@@ -319,6 +336,14 @@ div.mb-view-wrapper {
|
||||
right: var(--size-4-2);
|
||||
}
|
||||
|
||||
/* Text Area Input */
|
||||
|
||||
.mb-input-textarea {
|
||||
width: 100%;
|
||||
height: 100px;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
/* Card */
|
||||
.mb-card {
|
||||
padding: var(--size-4-2);
|
||||
@@ -370,6 +395,107 @@ div.mb-view-wrapper {
|
||||
gap: var(--size-4-4);
|
||||
}
|
||||
|
||||
.mb-image-suggester-modal {
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.mb-image-card-image {
|
||||
width: 100%;
|
||||
height: fit-content;
|
||||
max-height: 500px;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
.mb-image-card-text {
|
||||
display: block;
|
||||
margin: var(--size-4-2);
|
||||
margin-bottom: var(--size-4-4);
|
||||
}
|
||||
|
||||
.mb-image-card-footer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
& > span {
|
||||
padding-left: var(--size-4-2);
|
||||
font-size: var(--font-ui-small);
|
||||
color: var(--text-muted);
|
||||
min-width: 0;
|
||||
text-overflow-ellipsis: true;
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.mb-image-suggest-input {
|
||||
background: var(--background-secondary);
|
||||
border-radius: var(--mb-border-radius);
|
||||
border: var(--mb-border-width) solid var(--background-modifier-border);
|
||||
padding: var(--size-4-2);
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Time Input */
|
||||
|
||||
.mb-input-type-time {
|
||||
input[type='time'] {
|
||||
-webkit-app-region: no-drag;
|
||||
background: var(--background-modifier-form-field);
|
||||
border: var(--input-border-width) solid var(--background-modifier-border);
|
||||
color: var(--text-normal);
|
||||
font-family: inherit;
|
||||
padding: var(--size-4-1) var(--size-4-2);
|
||||
font-size: var(--font-ui-small);
|
||||
border-radius: var(--input-radius);
|
||||
outline: none;
|
||||
|
||||
&:hover {
|
||||
border-color: var(--background-modifier-border-hover);
|
||||
transition:
|
||||
box-shadow 0.15s ease-in-out,
|
||||
border 0.15s ease-in-out;
|
||||
}
|
||||
|
||||
&:focus,
|
||||
&:focus-visible {
|
||||
box-shadow: 0 0 0 2px var(--background-modifier-border-focus);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Date Picker Input */
|
||||
|
||||
.date-picker-input {
|
||||
background: var(--background-modifier-form-field);
|
||||
border: var(--mb-border-width) solid var(--background-modifier-border);
|
||||
color: var(--text-normal);
|
||||
font-family: inherit;
|
||||
padding: var(--size-4-1) var(--size-4-2);
|
||||
font-size: var(--font-ui-small);
|
||||
border-radius: var(--input-radius);
|
||||
outline: none;
|
||||
|
||||
position: relative;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
|
||||
&:hover {
|
||||
border-color: var(--background-modifier-border-hover);
|
||||
transition:
|
||||
box-shadow 0.15s ease-in-out,
|
||||
border 0.15s ease-in-out;
|
||||
}
|
||||
|
||||
&:focus,
|
||||
&:focus-visible {
|
||||
box-shadow: 0 0 0 2px var(--background-modifier-border-focus);
|
||||
}
|
||||
}
|
||||
|
||||
.date-picker-text {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/* Error */
|
||||
.mb-error {
|
||||
color: var(--text-error) !important;
|
||||
@@ -507,10 +633,36 @@ th.mb-html-table-button-cell {
|
||||
gap: var(--size-4-2);
|
||||
}
|
||||
|
||||
.mb-flex-row > :first-child {
|
||||
.mb-flex-row.mb-flex-row-stretch > :first-child {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.mb-flex-row-reverse {
|
||||
display: flex;
|
||||
flex-direction: row-reverse;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
gap: var(--size-4-2);
|
||||
}
|
||||
|
||||
.mb-flex-row-reverse.mb-flex-row-stretch > :last-child {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.mb-full-width-text-input {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mb-full-width-text-input > input {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mb-full-width-text-input > textarea {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
/* --- HIGHLIGHTING CLASSES --- */
|
||||
.mb-highlight-test {
|
||||
color: #00bfbc;
|
||||
@@ -554,3 +706,12 @@ th.mb-html-table-button-cell {
|
||||
.meta-bind-small-width > * {
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
/* --- PUBLISH STUFF --- */
|
||||
|
||||
.published-container {
|
||||
.mb-input-type-toggle > div {
|
||||
display: inline-block;
|
||||
vertical-align: sub;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@
|
||||
"setCancelledDate": true,
|
||||
"autoSuggestInEditor": true,
|
||||
"autoSuggestMinMatch": 0,
|
||||
"autoSuggestMaxItems": 6,
|
||||
"autoSuggestMaxItems": 12,
|
||||
"provideAccessKeys": true,
|
||||
"useFilenameAsScheduledDate": true,
|
||||
"filenameAsDateFolders": [],
|
||||
|
||||
+74
-51
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "obsidian-tasks-plugin",
|
||||
"name": "Tasks",
|
||||
"version": "6.2.0",
|
||||
"version": "7.0.0",
|
||||
"minAppVersion": "1.1.1",
|
||||
"description": "Task management for Obsidian",
|
||||
"helpUrl": "https://publish.obsidian.md/tasks/",
|
||||
|
||||
+1
-464
File diff suppressed because one or more lines are too long
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"pomodoro": 25,
|
||||
"shortBreak": 5,
|
||||
"longBreak": 15,
|
||||
"group": 4,
|
||||
"includeStats": true,
|
||||
"includeShortBreak": true,
|
||||
"includeLongBreak": true
|
||||
}
|
||||
+284
@@ -0,0 +1,284 @@
|
||||
/*
|
||||
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
||||
if you want to view the source, please visit the github repository of this plugin
|
||||
*/
|
||||
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __export = (target, all) => {
|
||||
for (var name in all)
|
||||
__defProp(target, name, { get: all[name], enumerable: true });
|
||||
};
|
||||
var __copyProps = (to, from, except, desc) => {
|
||||
if (from && typeof from === "object" || typeof from === "function") {
|
||||
for (let key of __getOwnPropNames(from))
|
||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
||||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||||
}
|
||||
return to;
|
||||
};
|
||||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
||||
|
||||
// main.ts
|
||||
var main_exports = {};
|
||||
__export(main_exports, {
|
||||
default: () => PomodoroPlanner
|
||||
});
|
||||
module.exports = __toCommonJS(main_exports);
|
||||
var import_obsidian = require("obsidian");
|
||||
var DEFAULT_SETTINGS = {
|
||||
pomodoro: 25,
|
||||
shortBreak: 5,
|
||||
longBreak: 15,
|
||||
group: 4,
|
||||
includeStats: true,
|
||||
includeShortBreak: false,
|
||||
includeLongBreak: true
|
||||
};
|
||||
var PomodoroPlanner = class extends import_obsidian.Plugin {
|
||||
async onload() {
|
||||
await this.loadSettings();
|
||||
this.addCommand({
|
||||
id: "generate-pomodoro-plan",
|
||||
name: "Generate",
|
||||
editorCallback: async (editor) => {
|
||||
await this.loadSettings();
|
||||
new GeneratePomodoroPlan(this.app, this.settings, (result) => {
|
||||
editor.replaceSelection(result);
|
||||
}, () => {
|
||||
this.saveSettings(this.settings);
|
||||
}).open();
|
||||
}
|
||||
});
|
||||
}
|
||||
onunload() {
|
||||
}
|
||||
async loadSettings() {
|
||||
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
|
||||
}
|
||||
async saveSettings(settings) {
|
||||
await this.saveData(settings);
|
||||
}
|
||||
};
|
||||
var GeneratePomodoroPlan = class extends import_obsidian.Modal {
|
||||
constructor(app, settings, onSubmit, saveSettings) {
|
||||
super(app);
|
||||
this.settings = settings;
|
||||
const now = new Date();
|
||||
this.start = `${now.getHours().toString().padStart(2, "0")}:${now.getMinutes().toString().padStart(2, "0")}`;
|
||||
this.onSubmit = onSubmit;
|
||||
this.saveSettings = saveSettings;
|
||||
}
|
||||
generatePomodoroPlan() {
|
||||
this.resultMarkdown = "";
|
||||
const startTime = parseTime(this.start);
|
||||
const endTimeOrCount = parseTimeOrCount(this.end);
|
||||
const pomodoro = this.settings.pomodoro;
|
||||
const shortBreak = this.settings.shortBreak;
|
||||
const longBreak = this.settings.longBreak;
|
||||
const group = this.settings.group;
|
||||
const includeStats = this.settings.includeStats;
|
||||
const includeShortBreak = this.settings.includeShortBreak;
|
||||
const includeLongBreak = this.settings.includeLongBreak;
|
||||
let currentTime = startTime;
|
||||
let groupCount = 0;
|
||||
let totalRestTime = 0;
|
||||
let pomodoroCount = 1;
|
||||
while (willContinue(addMinutes(currentTime, pomodoro), pomodoroCount, endTimeOrCount)) {
|
||||
this.resultMarkdown += `- [ ] ${formatTime(currentTime)} - ${formatTime(addMinutes(currentTime, this.settings.pomodoro))} Pomodoro #${pomodoroCount}
|
||||
`;
|
||||
currentTime = addMinutes(currentTime, pomodoro);
|
||||
pomodoroCount++;
|
||||
groupCount++;
|
||||
if (groupCount === group) {
|
||||
if (!willContinue(addMinutes(currentTime, longBreak + pomodoro), pomodoroCount, endTimeOrCount))
|
||||
break;
|
||||
if (includeLongBreak)
|
||||
this.resultMarkdown += `- [ ] ${formatTime(currentTime)} - ${formatTime(addMinutes(currentTime, this.settings.longBreak))} Long Break
|
||||
`;
|
||||
currentTime = addMinutes(currentTime, longBreak);
|
||||
totalRestTime += longBreak;
|
||||
groupCount = 0;
|
||||
} else {
|
||||
if (!willContinue(addMinutes(currentTime, pomodoro + shortBreak), pomodoroCount, endTimeOrCount))
|
||||
break;
|
||||
if (includeShortBreak)
|
||||
this.resultMarkdown += `- [ ] ${formatTime(currentTime)} - ${formatTime(addMinutes(currentTime, this.settings.shortBreak))} Short Break
|
||||
`;
|
||||
currentTime = addMinutes(currentTime, shortBreak);
|
||||
totalRestTime += shortBreak;
|
||||
}
|
||||
}
|
||||
if (pomodoroCount - 1 === 0) {
|
||||
this.resultEl.setText("");
|
||||
return;
|
||||
}
|
||||
if (includeStats) {
|
||||
const totalWorkTimeHours = Math.floor(pomodoro * (pomodoroCount - 1) / 60);
|
||||
const totalWorkTimeMinutes = pomodoro * (pomodoroCount - 1) % 60;
|
||||
const totalRestTimeHours = Math.floor(totalRestTime / 60);
|
||||
const totalRestTimeMinutes = totalRestTime % 60;
|
||||
let info = "\n\n";
|
||||
info += ` Total pomodoros: ${pomodoroCount - 1}
|
||||
`;
|
||||
info += ` Total work time: `;
|
||||
if (totalWorkTimeHours > 0) {
|
||||
info += `${totalWorkTimeHours} hours`;
|
||||
if (totalWorkTimeMinutes > 0) {
|
||||
info += `, ${totalWorkTimeMinutes} minutes`;
|
||||
}
|
||||
} else {
|
||||
info += `${totalWorkTimeMinutes} minutes`;
|
||||
}
|
||||
info += `
|
||||
`;
|
||||
info += ` Total rest time: `;
|
||||
if (totalRestTimeHours > 0) {
|
||||
info += `${totalRestTimeHours} hours`;
|
||||
if (totalRestTimeMinutes > 0) {
|
||||
info += `, ${totalRestTimeMinutes} minutes`;
|
||||
}
|
||||
} else {
|
||||
info += `${totalRestTimeMinutes} minutes`;
|
||||
}
|
||||
info += `
|
||||
`;
|
||||
this.resultMarkdown += info;
|
||||
}
|
||||
if (this.resultEl) {
|
||||
this.resultEl.setText(this.resultMarkdown);
|
||||
this.saveSettings(this.settings);
|
||||
}
|
||||
function willContinue(currentTime2, totalPomodoros, endTimeOrCount2) {
|
||||
if (typeof endTimeOrCount2 == "number") {
|
||||
return totalPomodoros <= endTimeOrCount2;
|
||||
}
|
||||
return currentTime2 <= endTimeOrCount2;
|
||||
}
|
||||
function parseTimeOrCount(timeOrCount) {
|
||||
if (!timeOrCount) {
|
||||
return 0;
|
||||
}
|
||||
const time = parseTime(timeOrCount);
|
||||
if (!isNaN(time.getTime())) {
|
||||
return time;
|
||||
}
|
||||
const count = parseInt(timeOrCount);
|
||||
if (!isNaN(count)) {
|
||||
return count;
|
||||
}
|
||||
new import_obsidian.Notice("Invalid time or count format");
|
||||
return 0;
|
||||
}
|
||||
function parseTime(time) {
|
||||
const [hours, minutes] = time.split(":").map(Number);
|
||||
const now = new Date();
|
||||
now.setHours(hours);
|
||||
now.setMinutes(minutes);
|
||||
return now;
|
||||
}
|
||||
function addMinutes(time, minutes) {
|
||||
const newTime = new Date(time);
|
||||
newTime.setMinutes(newTime.getMinutes() + minutes);
|
||||
return newTime;
|
||||
}
|
||||
function formatTime(time) {
|
||||
const hours = time.getHours().toString().padStart(2, "0");
|
||||
const minutes = time.getMinutes().toString().padStart(2, "0");
|
||||
return `${hours}:${minutes}`;
|
||||
}
|
||||
}
|
||||
onOpen() {
|
||||
const { contentEl } = this;
|
||||
contentEl.createEl("h1", { text: "Generate Pomodoro Plan" });
|
||||
new import_obsidian.Setting(contentEl).setName("End time or pomodoros count").setDesc("Set end time in HH:MM format or total pomodoros").addText(
|
||||
(text) => text.setValue(this.end).onChange((value) => {
|
||||
this.end = value;
|
||||
this.generatePomodoroPlan();
|
||||
})
|
||||
);
|
||||
new import_obsidian.Setting(contentEl).setName("Starting time").setDesc("The time to start the plan").addText(
|
||||
(text) => text.setValue(this.start).onChange((value) => {
|
||||
this.start = value;
|
||||
this.generatePomodoroPlan();
|
||||
})
|
||||
);
|
||||
new import_obsidian.Setting(contentEl).setName("Pomodoro length (minutes)").setDesc("The length of a pomodoro").addText(
|
||||
(text) => text.setValue(this.settings.pomodoro.toString()).onChange((value) => {
|
||||
if (!isNaN(parseInt(value))) {
|
||||
this.settings.pomodoro = parseInt(value);
|
||||
this.generatePomodoroPlan();
|
||||
}
|
||||
})
|
||||
);
|
||||
new import_obsidian.Setting(contentEl).setName("Short break (minutes)").setDesc("After each pomodoro finished, a short break will be taken.").addText(
|
||||
(text) => text.setValue(this.settings.shortBreak.toString()).onChange((value) => {
|
||||
if (!isNaN(parseInt(value))) {
|
||||
this.settings.shortBreak = parseInt(value);
|
||||
this.generatePomodoroPlan();
|
||||
}
|
||||
})
|
||||
);
|
||||
new import_obsidian.Setting(contentEl).setName("Long break (minutes)").setDesc("After each group finished, a long break will be taken.").addText(
|
||||
(text) => text.setValue(this.settings.longBreak.toString()).onChange((value) => {
|
||||
if (!isNaN(parseInt(value))) {
|
||||
this.settings.longBreak = parseInt(value);
|
||||
this.generatePomodoroPlan();
|
||||
}
|
||||
})
|
||||
);
|
||||
new import_obsidian.Setting(contentEl).setName("Group size (pomodoros)").setDesc("Long break will be taken after each group").addText(
|
||||
(text) => text.setValue(this.settings.group.toString()).onChange((value) => {
|
||||
if (!isNaN(parseInt(value))) {
|
||||
this.settings.group = parseInt(value);
|
||||
this.generatePomodoroPlan();
|
||||
}
|
||||
})
|
||||
);
|
||||
new import_obsidian.Setting(contentEl).setName("Include short break in plan").addToggle(
|
||||
(toggle) => toggle.setValue(this.settings.includeShortBreak).onChange((value) => {
|
||||
this.settings.includeShortBreak = value;
|
||||
this.generatePomodoroPlan();
|
||||
})
|
||||
);
|
||||
new import_obsidian.Setting(contentEl).setName("Include long break in plan").addToggle(
|
||||
(toggle) => toggle.setValue(this.settings.includeLongBreak).onChange((value) => {
|
||||
this.settings.includeLongBreak = value;
|
||||
this.generatePomodoroPlan();
|
||||
})
|
||||
);
|
||||
new import_obsidian.Setting(contentEl).setName("Include stats in plan").addToggle(
|
||||
(toggle) => toggle.setValue(this.settings.includeStats).onChange((value) => {
|
||||
this.settings.includeStats = value;
|
||||
this.generatePomodoroPlan();
|
||||
})
|
||||
);
|
||||
this.resultEl = contentEl.createEl("pre");
|
||||
new import_obsidian.Setting(contentEl).addButton(
|
||||
(btn) => btn.setButtonText("Insert into editor").setCta().onClick(() => {
|
||||
if (this.resultMarkdown == "") {
|
||||
new import_obsidian.Notice("Please generate the plan first");
|
||||
return;
|
||||
}
|
||||
this.close();
|
||||
this.onSubmit(this.resultMarkdown);
|
||||
})
|
||||
).addButton(
|
||||
(btn) => btn.setButtonText("Copy to clipboard").onClick(() => {
|
||||
if (this.resultMarkdown == "") {
|
||||
new import_obsidian.Notice("Please generate the plan first");
|
||||
return;
|
||||
}
|
||||
navigator.clipboard.writeText(this.resultMarkdown);
|
||||
new import_obsidian.Notice("Copied to clipboard");
|
||||
})
|
||||
);
|
||||
this.generatePomodoroPlan();
|
||||
}
|
||||
onClose() {
|
||||
const { contentEl } = this;
|
||||
contentEl.empty();
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"id": "pomodoro-planner",
|
||||
"name": "Pomodoro Planner",
|
||||
"version": "1.0.7",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "Generates a pomodoro schedule plan",
|
||||
"author": "Onur Nesvat",
|
||||
"authorUrl": "https://onurnesvat.com",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"workLen": 25,
|
||||
"breakLen": 5,
|
||||
"autostart": true,
|
||||
"useStatusBarTimer": true,
|
||||
"notificationSound": true,
|
||||
"customSound": "",
|
||||
"showTaskProgress": true,
|
||||
"enableTaskTracking": true,
|
||||
"logFile": "FILE",
|
||||
"logFocused": true,
|
||||
"logPath": "Pomodoro_Log",
|
||||
"logLevel": "ALL",
|
||||
"logTemplate": "<%*\nif (log.mode == \"WORK\") {\n if (!log.finished) {\n tR = `🟡 Focused ${log.task.name} ${log.duration} / ${log.session} minutes`;\n } else {\n tR = `🍅 Focused ${log.task.name} ${log.duration} minutes`;\n }\n} else {\n tR = `☕️ Took a break from ${log.begin.format(\"HH:mm\")} to ${log.end.format(\n \"HH:mm\"\n )}`;\n}\n%>",
|
||||
"logFormat": "CUSTOM",
|
||||
"useSystemNotification": false,
|
||||
"taskFormat": "TASKS"
|
||||
}
|
||||
+5322
File diff suppressed because one or more lines are too long
+11
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"id": "pomodoro-timer",
|
||||
"name": "Pomodoro Timer",
|
||||
"version": "1.2.0",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "A pomodoro timer that helps manage your daily focus",
|
||||
"author": "eatgrass",
|
||||
"fundingUrl": "https://www.buymeacoffee.com/eatgrass",
|
||||
"authorUrl": "https://github.com/eatgrass",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
|
||||
This CSS file will be included with your plugin, and
|
||||
available in the app when your plugin is enabled.
|
||||
|
||||
If your plugin does not need CSS, delete this file.
|
||||
|
||||
*/
|
||||
|
||||
.theme-light,
|
||||
.theme-dark {
|
||||
--pomodoro-timer-elapsed-color: var(--color-green);
|
||||
--pomodoro-timer-color: var(--text-faint);
|
||||
--pomodoro-timer-text-color: var(--text-normal);
|
||||
--pomodoro-timer-dot-color: var(--color-red);
|
||||
}
|
||||
|
||||
.status-bar-item.plugin-pomodoro-timer {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.pomodoro-focus {
|
||||
margin-left: 0.5rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.pomodoro-tasks-item-desc * {
|
||||
font-size: 0.8rem !important;
|
||||
}
|
||||
|
||||
.pomodoro-tasks-item-desc p {
|
||||
width: 100%;
|
||||
line-height: 1.1;
|
||||
height: 2.2em;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
line-break: anywhere;
|
||||
}
|
||||
Vendored
+59
-1
@@ -5,7 +5,7 @@
|
||||
"name": "Participantes",
|
||||
"type": "Template",
|
||||
"command": false,
|
||||
"templatePath": "6.Templates/Participantes.md",
|
||||
"templatePath": "6.Templates/Participants.md",
|
||||
"fileNameFormat": {
|
||||
"enabled": false,
|
||||
"format": ""
|
||||
@@ -29,6 +29,64 @@
|
||||
"openFileInMode": "default",
|
||||
"fileExistsMode": "Increment the file name",
|
||||
"setFileExistsBehavior": false
|
||||
},
|
||||
{
|
||||
"id": "2bee6624-a692-441d-ac43-a46c6a4bdb10",
|
||||
"name": "Request",
|
||||
"type": "Template",
|
||||
"command": false,
|
||||
"templatePath": "6.Templates/RequestResponse_Doc.md",
|
||||
"fileNameFormat": {
|
||||
"enabled": false,
|
||||
"format": ""
|
||||
},
|
||||
"folder": {
|
||||
"enabled": true,
|
||||
"folders": [
|
||||
"3.Projects/0.Work/0.Chakray/1.Clientes/1.IOX/6.Request"
|
||||
],
|
||||
"chooseWhenCreatingNote": false,
|
||||
"createInSameFolderAsActiveFile": false,
|
||||
"chooseFromSubfolders": false
|
||||
},
|
||||
"appendLink": false,
|
||||
"openFileInNewTab": {
|
||||
"enabled": false,
|
||||
"direction": "vertical",
|
||||
"focus": true
|
||||
},
|
||||
"openFile": true,
|
||||
"openFileInMode": "default",
|
||||
"fileExistsMode": "Increment the file name",
|
||||
"setFileExistsBehavior": false
|
||||
},
|
||||
{
|
||||
"id": "cc66c390-49df-4289-99c1-3a2b26122d4f",
|
||||
"name": "Análisis",
|
||||
"type": "Template",
|
||||
"command": false,
|
||||
"templatePath": "6.Templates/Análisis.md",
|
||||
"fileNameFormat": {
|
||||
"enabled": true,
|
||||
"format": "{{DATE}}_{{name}}"
|
||||
},
|
||||
"folder": {
|
||||
"enabled": true,
|
||||
"folders": [],
|
||||
"chooseWhenCreatingNote": false,
|
||||
"createInSameFolderAsActiveFile": false,
|
||||
"chooseFromSubfolders": false
|
||||
},
|
||||
"appendLink": true,
|
||||
"openFileInNewTab": {
|
||||
"enabled": false,
|
||||
"direction": "vertical",
|
||||
"focus": true
|
||||
},
|
||||
"openFile": false,
|
||||
"openFileInMode": "default",
|
||||
"fileExistsMode": "Append to the bottom of the file",
|
||||
"setFileExistsBehavior": true
|
||||
}
|
||||
],
|
||||
"macros": [
|
||||
|
||||
+1
-5
@@ -20,15 +20,11 @@
|
||||
},
|
||||
{
|
||||
"folder": "7.Participantes",
|
||||
"template": "6.Templates/Participantes.md"
|
||||
"template": "6.Templates/Participants.md"
|
||||
},
|
||||
{
|
||||
"folder": "2.Notas_Reunión",
|
||||
"template": "6.Templates/Meetings.md"
|
||||
},
|
||||
{
|
||||
"folder": "1.Daily_Notes/2024/{{date:MM-MMMM}}",
|
||||
"template": "6.Templates/Notas.md"
|
||||
}
|
||||
],
|
||||
"syntax_highlighting": true,
|
||||
|
||||
+4
-4
@@ -2,12 +2,12 @@
|
||||
"fadeToggle": true,
|
||||
"autoRefreshToggle": true,
|
||||
"autoRefreshInterval": 900,
|
||||
"renderDescription": true,
|
||||
"renderDate": true,
|
||||
"renderDescription": false,
|
||||
"renderDate": false,
|
||||
"renderDateIcon": true,
|
||||
"renderProject": true,
|
||||
"renderProject": false,
|
||||
"renderProjectIcon": true,
|
||||
"renderLabels": true,
|
||||
"renderLabels": false,
|
||||
"renderLabelsIcon": true,
|
||||
"shouldWrapLinksInParens": false,
|
||||
"debugLogging": false
|
||||
|
||||
+183
-23904
File diff suppressed because one or more lines are too long
+3
-2
@@ -1,10 +1,11 @@
|
||||
{
|
||||
"id": "todoist-sync-plugin",
|
||||
"name": "Todoist Sync",
|
||||
"version": "1.12.0",
|
||||
"version": "1.13.0",
|
||||
"minAppVersion": "1.0.0",
|
||||
"description": "Materialize Todoist tasks within Obsidian notes.",
|
||||
"author": "Jamie Brynes",
|
||||
"authorUrl": "https://github.com/jamiebrynes7/obsidian-todoist-plugin",
|
||||
"isDesktopOnly": false
|
||||
"isDesktopOnly": false,
|
||||
"fundingUrl": "https://www.buymeacoffee.com/jamiebrynes"
|
||||
}
|
||||
+1
-161
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user