Compare commits

...

10 commits
1.0.7 ... main

Author SHA1 Message Date
Henry Gustafson
5c54131ab5
Merge pull request #13 from hissohathair/collected-fixes
Collected fixes for some open issues
2024-08-14 21:23:41 -07:00
Daniel Austin
66b83fb68f fix: Remove console log
Also avoid `app` directly, prefer `this.app`.
Guidelines: https://docs.obsidian.md/Plugins/Releasing/Plugin+guidelines
2024-07-21 15:45:08 +10:00
Daniel Austin
7d8784f6c4 docs: Updating doc files 2024-07-13 18:48:50 +10:00
Daniel Austin
d549bdc32e feat: Allow due date to be set (#11)
Fix for issue #11, you can set a due date in YYYY-MM-DD format using "//" (similar to Confluence Markdown)
2024-07-13 17:04:50 +10:00
Daniel Austin
3842d40077 build: Add release workflow and CHANGES 2024-07-13 16:44:11 +10:00
Daniel Austin
d7759d8552 fix: Allow dash and asterisk marked tasks (#6)
Fix for issue #6 -- allows both "- [ ]" and "* [ ]" as task indicators.
2024-07-13 16:33:58 +10:00
Daniel Austin
69bd5fb946 chore: Address TS warnings 2024-07-13 16:22:23 +10:00
Sam Morrison
fe0ec58056 fix typing of boolean arg 2024-04-02 11:25:38 -04:00
Sam Morrison
177af7f8be replace spaces in titles with %20F 2024-04-02 11:23:36 -04:00
Henry Gustafson
f50f7650c1
Create FUNDING.yml 2023-09-01 21:31:38 -07:00
6 changed files with 89 additions and 26 deletions

34
.github/workflows/release.yml vendored Normal file
View file

@ -0,0 +1,34 @@
name: Release Obsidian plugin
on:
push:
tags:
- "*"
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: "18.x"
- name: Build plugin
run: |
npm install
npm run build
- name: Create release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
tag="${GITHUB_REF#refs/tags/}"
gh release create "$tag" \
--title="$tag" \
--draft \
main.js manifest.json

17
CHANGES.md Normal file
View file

@ -0,0 +1,17 @@
## 1.1.0 (July 2024)
- Fixes issue with vault names containing spaces (#4). Thanks to shabegom.
- Accepts "* [ ]" in addition to "- [ ]" as task indicators (#6)
- Set a due date by adding "// YYYY-MM-DD" to end of task (#11)
## 1.0.7 (June 2023)
- Fixed issue with duplicate tasks.
## 1.0.6 (March 2023)
- Adds a command to export selection to Omnifocus. Thanks to mattsmallman.
## 1.0.4 - 1.0.5 (Feb-Mar 2023)
- Initial releases.

1
FUNDING.yml Normal file
View file

@ -0,0 +1 @@
github: lizard-heart

View file

@ -17,6 +17,15 @@ This plugin will extract tasks from the current note open in Obsidian and create
4. Asign any projects and tasks in the Omnifocus modal that appears
5. The tasks should be marked as complete in Obsidian if that setting is enabled
## Examples
```markdown
- [ ] This task will be sent to OmniFocus
- [x] This task will not (already checked)
* [ ] This task will be sent to OmniFocus
- [ ] This task is due 1 Feb // 2025-02-01
```
## Support
In case you want to support development:
<br>

View file

@ -1,11 +1,11 @@
{
"id": "tasks-to-omnifocus",
"name": "Send Tasks to OmniFocus",
"version": "1.0.7",
"minAppVersion": "0.12.0",
"description": "An Obsidian plugin will extract tasks from the current note and create them in OmniFocus.",
"author": "Henry Gustafson",
"authorUrl": "https://lizard-heart.github.io",
"fundingUrl": "https://buymeacoffee.com/lizardheart",
"isDesktopOnly": false
"id": "tasks-to-omnifocus",
"name": "Send Tasks to OmniFocus",
"version": "1.1.0",
"minAppVersion": "0.12.0",
"description": "An Obsidian plugin will extract tasks from the current note and create them in OmniFocus.",
"author": "Henry Gustafson",
"authorUrl": "https://lizard-heart.github.io",
"fundingUrl": "https://buymeacoffee.com/lizardheart",
"isDesktopOnly": false
}

View file

@ -1,11 +1,6 @@
import { serialize } from "monkey-around";
import {
MarkdownView,
CachedMetadata,
Notice,
Plugin,
TFile,
Vault,
Editor,
} from "obsidian";
@ -41,30 +36,37 @@ export default class TasksToOmnifocus extends Plugin {
this.addSettingTab(new TasksToOmnifocusSettingTab(this.app, this));
}
async addToOmnifocus(isSelection: bool, editor: Editor, view: MarkdownView) {
var editorText;
async addToOmnifocus(isSelection: boolean, editor: Editor, view: MarkdownView) {
let editorText;
if (isSelection) {
editorText = editor.getSelection();
} else {
editorText = editor.getValue();
}
try {
let tasks = editorText.match(/- \[ \] .*/g);
const tasks = editorText.match(/[-*] \[ \] .*/g);
for (let task of tasks) {
let taskName = task.replace("- [ ] ", "");
let taskNameEncoded = encodeURIComponent(taskName);
let noteURL = view.file.path.replace(/ /g, "%20").replace(/\//g, "%2F");
let vaultName = app.vault.getName();
let taskNoteEncoded = encodeURIComponent("obsidian://open?=" + vaultName + "&file=" + noteURL);
for (const task of tasks) {
let taskName = task.replace(/[-*] \[ \] /, "");
// check if taskName has "//" followed by a date, and if so extract the date for later use and remove it from taskName
const dateMatch = taskName.match(/(\/\/\s*)(\d{4}-\d{2}-\d{2})/);
let taskDate = "";
if (dateMatch) {
taskDate = dateMatch[2];
taskName = taskName.replace(dateMatch[0], "");
}
const taskNameEncoded = encodeURIComponent(taskName);
const noteURL = view.file.path.replace(/ /g, "%20").replace(/\//g, "%2F");
const vaultName = this.app.vault.getName().replace(/\s/g, "%20");
const taskNoteEncoded = encodeURIComponent("obsidian://open?=" + vaultName + "&file=" + noteURL);
window.open(
`omnifocus:///add?name=${taskNameEncoded}&note=${taskNoteEncoded}`
`omnifocus:///add?name=${taskNameEncoded}&note=${taskNoteEncoded}&due=${taskDate}`
);
}
if (this.settings.markComplete) {
let completedText = editorText.replace(/- \[ \]/g, "- [x]");
const completedText = editorText.replace(/([-*]) \[ \]/g, "$1 [x]");
if (isSelection) {
editor.replaceSelection(completedText);
} else {
@ -73,7 +75,7 @@ export default class TasksToOmnifocus extends Plugin {
}
} catch (err) {
console.error('Error extracting tasks', err);
}
}