36 Pods V2
Goals
- Making pods easier to use
- Making pods more flexible to use
- Making pods easier to extend
Context
The proposal here covers a lot of ground. We should break it down into phases.
Proposal
- Instead of having both a "Export Pod" and a "Publish Pod", only have an Export Pod
- refactor existing commands
Export Pod
->Export
Publish Pod
->Export One
- refactor existing commands
- Introduce the equivalent of a
Export One
toImport
- refactor existing command:
Import Pod
->Import
- introduce new command:
Import One
- refactor existing command:
From Clipboard
Export From Clipboard
Import From Clipboard
- options to support:
- splitLine: should we consider each line as its own record? default, false
- example use case:
- export a selection of task notes to airtable
- import a part of google doc
Introduce a new pod command: - Support pod destination
- Import:
- New Note
- Clipboard
- Export:
- New Entry
- Clipboard
- Import:
- Extend pod capabilities
- all pods should have the ability to handle merge conflicts
- on import, merge would update local note
- on export, merge would update remote source
- all pods should have the ability to specify field mappings
- on import, map fields from the source to fields in the note
- on export, map fields from note to export destination
- fields from the note includes anything in the note frontmatter as well as sections within notes
- in the future, we can also include backlinks
- all pods should have the ability to handle merge conflicts
- Support interactive mode
- should be a toggle on the quickpick
- if interactive, instead of reading
src/dest
from config, prompt user for this - eg. orbit import pod, when importing interactively, user enters a username
- Introduce a webview to configure pods
- users can use a form widget with live validation instead of YAML
- users have different targets for the same pods (eg. publish a task note to airtable task table but publish a user note to airtable user table)
- pod configuration should support custom profiles
- should be supported in webview
Support pod profiles
- support custom pod plugins
- a user should be able to contribute their own pods
Alternatives
- instead of having a unique Export/Import command for different use cases, just have a single command wiith different flags and modifiers