Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jqhoogland/obsidian-smart-tags
More powerful tags with synonyms, enumerations, and typings.
https://github.com/jqhoogland/obsidian-smart-tags
Last synced: 10 days ago
JSON representation
More powerful tags with synonyms, enumerations, and typings.
- Host: GitHub
- URL: https://github.com/jqhoogland/obsidian-smart-tags
- Owner: jqhoogland
- Created: 2022-01-15T13:50:32.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2022-01-15T15:18:22.000Z (about 3 years ago)
- Last Synced: 2024-11-19T18:55:18.473Z (2 months ago)
- Language: TypeScript
- Size: 6.84 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Obsidian Smart Tags
This plugin introduces:
1. **Tag Enumerations**: Command-click tags to cycle through them (e.g., `#now`, `#later`, `#done` if you like Logseq).
2. **Tag Aliases**: Use shorthands like `#📕` for `#book`, or `#AI` for `#Science/Formal/InformationScience/ArtificialIntelligence` (Useful if you're using your tags as [informal facets to classify your cards](https://en.wikipedia.org/wiki/Faceted_classification)).
3. **Tag Types** (in combination with [Obsidian Dataview](https://github.com/blacksmithgu/obsidian-dataview)): use `#book` as a synonym for an inline attribute like `(type:: book)`.It works well in combination with [TagFolder](https://github.com/vrtmrz/obsidian-tagfolder) and [Dataview](https://github.com/blacksmithgu/obsidian-dataview).
### Tags enumerations
**Example**. I mark my tasks with `#m`, `#s`, `#c` (as in [MoSCoW prioritization](https://www.productplan.com/glossary/moscow-prioritization/)) combined with a number for extra specificity: `#m1`, `#m2`, `#m3`....
In a `tagsConfig.json`, I write the following:
```json
{
...
"enumerations": {
"primary": [
[
"m1",
"m2",
"m3"
],
[
"s1",
"s2",
"s3"
],
[
"c1",
"c2",
"c3"
]
],
"secondary": [
[
"m1",
"s1",
"c1"
],
[
"m2",
"s2",
"c2"
],
[
"m3",
"s3",
"c3"
]
]
},
...
}
```My primary key-click combination (default: `cmd + click`) will cycle through the granular priority levels (`#m1`, `#m2`...). My secondary key-click combination (default: `ctrl + click`) will cycle through the priority categories (`#m1`, `s1`...). By default, pressing `shift` while using either of these combinations will cycle in the reverse order.
### Tag aliases
If you're a fan of the emoji hype, you might want to be able to use the shorthand `#📕` for `#book` , `#🎬` for `#movie`. Obsidian should know these refer to the same underlying idea.
In your `tagsConfig.json`:
```json
{
...
"aliases": {
"book": [
"📕"
],
"movie": [
"🎬"
],
"science": [
"ðŸ’",
"Sciences",
"Science",
"sciences"
]
},
...
}
```This uses a dictionary structure because we have to specify a "primary" key (`book`, `movie`...) for each set of aliases. Just like note aliases, tag aliases are saved with the pipe operator (`|`) as `#tag|some-alias`.
### Semantic tags
If you're familiar with [Obsidian dataview](https://github.com/blacksmithgu/obsidian-dataview), you might prefer using more structured inline attributes like `(type:: movie)` and `(priority:: m1)` over tags. This is a really powerful feature. The only downside is that it's a bit lengthy to write out every time.
An easier alternative would be to treat `#tag` as a shorthand for `(:: tag)`, where `` is inferred from a predetermined list of tags. E.g.: `#movie` for `(type:: movie)`, and `#m1` for `(priority:: m1)`. You would specify ahead of time that `type` can be one of `movie`, `book`, `article`, `essay`... and `priority` one of `m1`, `m2`, `m3`, `s1`,....
Just pull up your `tagsConfig.json`:
```json
{
...
"types": {
"type": [
"book",
"movie",
...
],
"subjects": [
"science",
"social-sciences",
...
]
},
...
}
```---
# Status
- [ ] Tag Enumerations
- [ ] Tag Aliases
- [ ] Tag Typings
- [ ] TagFolder integration