feat: add obsidian-clipper-template-creator for creating Obsidian Web Clipper templates
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
# Working with Obsidian Bases
|
||||
|
||||
The user maintains "Bases" in `Templates/Bases/*.base` which define the schema and properties for different types of notes (e.g., Recipes, Clippings, People).
|
||||
|
||||
## Workflow
|
||||
|
||||
1. **Identify the Category:** Determine the type of content the user wants to clip (e.g., a Recipe, a News Article, a YouTube video).
|
||||
2. **Find the Base:** Search `Templates/Bases/` for a matching `.base` file.
|
||||
* Example: For a recipe, look for `Templates/Bases/Recipes.base`.
|
||||
* Example: For a generic article, look for `Templates/Bases/Clippings.base`.
|
||||
3. **Read the Base:** Read the content of the `.base` file to understand the required properties.
|
||||
|
||||
## Interpreting .base Files
|
||||
|
||||
Base files use a YAML-like structure. Look for the `properties` section.
|
||||
|
||||
```yaml
|
||||
properties:
|
||||
file.name:
|
||||
displayName: name
|
||||
note.author:
|
||||
displayName: author
|
||||
note.type:
|
||||
displayName: type
|
||||
note.ingredients:
|
||||
displayName: ingredients
|
||||
```
|
||||
|
||||
* `note.X` corresponds to a property name `X` in the frontmatter.
|
||||
* `displayName` helps understand the intent, but the property key (e.g., `author`, `type`, `ingredients`) is what matters for the template.
|
||||
|
||||
## Mapping to Clipper Properties
|
||||
|
||||
When creating the JSON for the Web Clipper, map the Base properties to the `properties` array in the JSON.
|
||||
|
||||
| Base Property | Clipper JSON Property Name | Value Strategy |
|
||||
| :--- | :--- | :--- |
|
||||
| `note.author` | `author` | `{{author}}` or `{{schema:author.name}}` |
|
||||
| `note.source` | `source` | `{{url}}` |
|
||||
| `note.published` | `published` | `{{published}}` |
|
||||
| `note.ingredients` | `ingredients` | `{{schema:Recipe:recipeIngredient}}` |
|
||||
| `note.type` | `type` | Constant (e.g., `Recipe`) or empty |
|
||||
|
||||
**Crucial Step:** Ask the user which properties should be automatically filled, which should be hardcoded (e.g., `type: Recipe`), and which should be left empty for manual entry.
|
||||
Reference in New Issue
Block a user