jorgex-stack 1.1.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -3
- package/dist/cli.js +119 -85
- package/package.json +1 -1
- package/stack/skills/deploy-to-vercel/SKILL.md +14 -8
- package/stack/skills/find-skills/SKILL.md +37 -113
- package/stack/skills/mcp-builder/SKILL.md +5 -2
- package/stack/skills/mcp-builder/reference/evaluation.md +9 -16
- package/stack/skills/mcp-builder/reference/node_mcp_server.md +9 -6
- package/stack/skills/mcp-builder/scripts/requirements.txt +2 -2
- package/stack/skills/playwright-cli/references/test-generation.md +4 -5
- package/stack/skills/react-doctor/SKILL.md +12 -1
- package/upstreams.json +22 -21
- package/stack/skills/obsidian-cli/SKILL.md +0 -106
- package/stack/skills/obsidian-markdown/SKILL.md +0 -196
- package/stack/skills/obsidian-markdown/references/CALLOUTS.md +0 -58
- package/stack/skills/obsidian-markdown/references/EMBEDS.md +0 -63
- package/stack/skills/obsidian-markdown/references/PROPERTIES.md +0 -61
|
@@ -381,16 +381,13 @@ After creating your evaluation file, you can use the provided evaluation harness
|
|
|
381
381
|
|
|
382
382
|
## Setup
|
|
383
383
|
|
|
384
|
-
1. **
|
|
384
|
+
1. **Prepare a locked Python environment**
|
|
385
385
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
```bash
|
|
392
|
-
pip install anthropic mcp
|
|
393
|
-
```
|
|
386
|
+
Use a project-managed virtual environment whose complete transitive lock and
|
|
387
|
+
hashes have already been reviewed. The requirements file records the direct
|
|
388
|
+
versions expected by the harness, but it is not a complete lock and this
|
|
389
|
+
skill must not install from it. If the environment is unavailable, stop and
|
|
390
|
+
return control to the user.
|
|
394
391
|
|
|
395
392
|
2. **Set API Key**
|
|
396
393
|
|
|
@@ -550,12 +547,8 @@ Here's a complete example of creating and running an evaluation:
|
|
|
550
547
|
</evaluation>
|
|
551
548
|
```
|
|
552
549
|
|
|
553
|
-
2. **
|
|
554
|
-
|
|
555
|
-
```bash
|
|
556
|
-
pip install -r scripts/requirements.txt
|
|
557
|
-
export ANTHROPIC_API_KEY=your_api_key
|
|
558
|
-
```
|
|
550
|
+
2. **Activate the pre-provisioned locked environment**, then provide the API key
|
|
551
|
+
through the project's normal secret-management workflow.
|
|
559
552
|
|
|
560
553
|
3. **Run evaluation**:
|
|
561
554
|
|
|
@@ -599,4 +592,4 @@ If tasks are timing out:
|
|
|
599
592
|
- Use a more capable model (e.g., `claude-3-7-sonnet-20250219`)
|
|
600
593
|
- Check if tools are returning too much data
|
|
601
594
|
- Verify pagination is working correctly
|
|
602
|
-
- Consider simplifying complex questions
|
|
595
|
+
- Consider simplifying complex questions
|
|
@@ -901,16 +901,19 @@ Always build your TypeScript code before running:
|
|
|
901
901
|
|
|
902
902
|
```bash
|
|
903
903
|
# Build the project
|
|
904
|
-
|
|
904
|
+
pnpm run build
|
|
905
905
|
|
|
906
906
|
# Run the server
|
|
907
|
-
|
|
907
|
+
pnpm start
|
|
908
908
|
|
|
909
909
|
# Development with auto-reload
|
|
910
|
-
|
|
910
|
+
pnpm run dev
|
|
911
911
|
```
|
|
912
912
|
|
|
913
|
-
Always ensure `
|
|
913
|
+
Always ensure `pnpm run build` completes successfully before considering the
|
|
914
|
+
implementation complete. These commands must resolve the project's declared
|
|
915
|
+
dependencies through its lockfile; do not fetch an unpinned tool while
|
|
916
|
+
working on the server.
|
|
914
917
|
|
|
915
918
|
## Quality Checklist
|
|
916
919
|
|
|
@@ -963,8 +966,8 @@ Before finalizing your Node/TypeScript MCP server implementation, ensure:
|
|
|
963
966
|
- [ ] Return types are consistent across similar operations
|
|
964
967
|
|
|
965
968
|
### Testing and Build
|
|
966
|
-
- [ ] `
|
|
969
|
+
- [ ] `pnpm run build` completes successfully without errors
|
|
967
970
|
- [ ] dist/index.js created and executable
|
|
968
971
|
- [ ] Server runs: `node dist/index.js --help`
|
|
969
972
|
- [ ] All imports resolve correctly
|
|
970
|
-
- [ ] Sample tool calls work as expected
|
|
973
|
+
- [ ] Sample tool calls work as expected
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
anthropic
|
|
2
|
-
mcp
|
|
1
|
+
anthropic==0.39.0
|
|
2
|
+
mcp==1.1.0
|
|
@@ -153,11 +153,10 @@ test -f playwright.config.ts || test -f playwright.config.js
|
|
|
153
153
|
pnpm exec playwright --version
|
|
154
154
|
```
|
|
155
155
|
|
|
156
|
-
If there is no Playwright install,
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
```
|
|
156
|
+
If there is no project-local Playwright install, stop and return control to the
|
|
157
|
+
user. This skill does not bootstrap packages or change the dependency graph;
|
|
158
|
+
the project must provision a reviewed exact version through its normal locked
|
|
159
|
+
dependency workflow before planning or generating tests.
|
|
161
160
|
|
|
162
161
|
### 1.2 Prerequisite: seed test
|
|
163
162
|
|
|
@@ -10,10 +10,21 @@ Scans your React codebase for security, performance, correctness, and architectu
|
|
|
10
10
|
|
|
11
11
|
## Usage
|
|
12
12
|
|
|
13
|
+
Run the project-pinned binary through the project's package manager:
|
|
14
|
+
|
|
13
15
|
```bash
|
|
14
|
-
|
|
16
|
+
pnpm exec react-doctor . --verbose --diff
|
|
15
17
|
```
|
|
16
18
|
|
|
19
|
+
`pnpm exec` resolves the binary from the current project's declared
|
|
20
|
+
dependencies or workspace. It does not fetch an ad-hoc release and this skill
|
|
21
|
+
does not modify `package.json`, the lockfile, or any global tool directory.
|
|
22
|
+
|
|
23
|
+
If the command is unavailable, stop and return control to the user with a
|
|
24
|
+
clear message that the project dependency is missing. The user can review and
|
|
25
|
+
provision an exact project version through the normal dependency workflow,
|
|
26
|
+
then rerun this skill.
|
|
27
|
+
|
|
17
28
|
## Workflow
|
|
18
29
|
|
|
19
30
|
Run after making changes to catch issues early. Fix errors first, then re-run to verify the score improved.
|
package/upstreams.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$comment": "Terceros gestionados por `jorgex-stack update`: fuente, versión conocida y política. `commit` = pin del upstream en la última revisión aceptada (2026-06-11, auditoría de seguridad): update --check compara el HEAD del repo contra el pin y avisa si se movió; cualquier actualización de la copia vendorizada se hace con diff manual y re-pin deliberado, nunca a ciegas. El pin es del repo completo (no por path): en monorepos activos un pin movido no implica que la skill cambiara — el diff lo confirma. Las skills 'modified: true' tienen cambios locales respecto al upstream — update debe hacer diff/aviso, NUNCA reemplazo ciego (PRD §7.3). Skills propias sin upstream (no se actualizan desde fuera): agent-delegation, work-lifecycle. `path` = ruta dentro del repo upstream donde vive la skill (para diff/descarga quirúrgica). `kind: \"release\"` = la actualización se compara contra tags de release en vez de HEAD (e.g. paquetes Python sin SKILL.md en repo).",
|
|
2
|
+
"$comment": "Terceros gestionados por `jorgex-stack update`: fuente, versión conocida y política. `commit` = pin del upstream en la última revisión aceptada (2026-06-11, auditoría de seguridad): update --check compara el HEAD del repo contra el pin y avisa si se movió; cualquier actualización de la copia vendorizada se hace con diff manual y re-pin deliberado, nunca a ciegas. El pin es del repo completo (no por path): en monorepos activos un pin movido no implica que la skill cambiara — el diff lo confirma. Las skills 'modified: true' tienen cambios locales respecto al upstream — update debe hacer diff/aviso, NUNCA reemplazo ciego (PRD §7.3). Skills propias sin upstream (no se actualizan desde fuera): agent-delegation, lean-code, orchestrator, work-lifecycle y xreview. `path` = ruta dentro del repo upstream donde vive la skill (para diff/descarga quirúrgica). `kind: \"release\"` = la actualización se compara contra tags de release en vez de HEAD (e.g. paquetes Python sin SKILL.md en repo).",
|
|
3
3
|
"tools": {
|
|
4
4
|
"engram": {
|
|
5
5
|
"kind": "binary",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"path": "skills/deploy-to-vercel",
|
|
25
25
|
"version": "3.0.0",
|
|
26
26
|
"commit": "f8a72b9603728bb92a217a879b7e62e43ad76c81",
|
|
27
|
+
"modified": true,
|
|
27
28
|
"note": "por diseño empaqueta el proyecto entero (tarball) y lo sube a un endpoint de Vercel para desplegarlo; excluye .env/.env.*/.git/node_modules"
|
|
28
29
|
},
|
|
29
30
|
"diagnose": {
|
|
@@ -35,46 +36,43 @@
|
|
|
35
36
|
"find-skills": {
|
|
36
37
|
"source": "github:vercel-labs/skills",
|
|
37
38
|
"path": "skills/find-skills",
|
|
38
|
-
"commit": "be0dd25b4a8665894a56f45ef582cc02ca802c39"
|
|
39
|
+
"commit": "be0dd25b4a8665894a56f45ef582cc02ca802c39",
|
|
40
|
+
"modified": true,
|
|
41
|
+
"note": "la copia vendorizada se limita a descubrir skills; no acepta ni ejecuta instalación, actualización o inicialización de contenido upstream"
|
|
39
42
|
},
|
|
40
43
|
"mcp-builder": {
|
|
41
44
|
"source": "github:anthropics/skills",
|
|
42
45
|
"path": "skills/mcp-builder",
|
|
43
46
|
"commit": "57546260929473d4e0d1c1bb75297be2fdfa1949",
|
|
44
|
-
"license": "Apache-2.0"
|
|
45
|
-
|
|
46
|
-
"obsidian-cli": {
|
|
47
|
-
"source": "github:kepano/obsidian-skills",
|
|
48
|
-
"path": "skills/obsidian-cli",
|
|
49
|
-
"commit": "a1dc48e68138490d522c04cbf5822214c6eb1202"
|
|
50
|
-
},
|
|
51
|
-
"obsidian-markdown": {
|
|
52
|
-
"source": "github:kepano/obsidian-skills",
|
|
53
|
-
"path": "skills/obsidian-markdown",
|
|
54
|
-
"commit": "a1dc48e68138490d522c04cbf5822214c6eb1202"
|
|
47
|
+
"license": "Apache-2.0",
|
|
48
|
+
"modified": true
|
|
55
49
|
},
|
|
56
50
|
"react-doctor": {
|
|
57
51
|
"source": "github:millionco/react-doctor",
|
|
58
52
|
"path": "skills/react-doctor",
|
|
59
|
-
"commit": "a48fb06ffbe7221655e18529fcc954ecae17a22f"
|
|
53
|
+
"commit": "a48fb06ffbe7221655e18529fcc954ecae17a22f",
|
|
54
|
+
"modified": true
|
|
60
55
|
},
|
|
61
56
|
"skill-creator": {
|
|
62
57
|
"source": "github:anthropics/skills",
|
|
63
58
|
"path": "skills/skill-creator",
|
|
64
59
|
"commit": "57546260929473d4e0d1c1bb75297be2fdfa1949",
|
|
65
|
-
"license": "Apache-2.0"
|
|
60
|
+
"license": "Apache-2.0",
|
|
61
|
+
"modified": true
|
|
66
62
|
},
|
|
67
63
|
"supabase": {
|
|
68
64
|
"source": "github:supabase/agent-skills",
|
|
69
65
|
"path": "skills/supabase",
|
|
70
66
|
"version": "0.1.2",
|
|
71
|
-
"commit": "1356046015476711a769601079262b5635929427"
|
|
67
|
+
"commit": "1356046015476711a769601079262b5635929427",
|
|
68
|
+
"modified": true
|
|
72
69
|
},
|
|
73
70
|
"supabase-postgres-best-practices": {
|
|
74
71
|
"source": "github:supabase/agent-skills",
|
|
75
72
|
"path": "skills/supabase-postgres-best-practices",
|
|
76
73
|
"commit": "1356046015476711a769601079262b5635929427",
|
|
77
|
-
"license": "MIT"
|
|
74
|
+
"license": "MIT",
|
|
75
|
+
"modified": true
|
|
78
76
|
},
|
|
79
77
|
"tdd": {
|
|
80
78
|
"source": "github:mattpocock/skills",
|
|
@@ -84,14 +82,17 @@
|
|
|
84
82
|
},
|
|
85
83
|
"to-issues": {
|
|
86
84
|
"source": "github:mattpocock/skills",
|
|
87
|
-
"path": "skills/engineering/to-
|
|
88
|
-
"commit": "694fa30311e02c2639942308513555e61ee84a6f"
|
|
85
|
+
"path": "skills/engineering/to-tickets",
|
|
86
|
+
"commit": "694fa30311e02c2639942308513555e61ee84a6f",
|
|
87
|
+
"modified": true,
|
|
88
|
+
"note": "upstream renombró to-issues → to-tickets; conservamos el nombre local to-issues y el pin de la última revisión aceptada hasta comparar y aceptar contenido nuevo deliberadamente"
|
|
89
89
|
},
|
|
90
90
|
"to-prd": {
|
|
91
91
|
"source": "github:mattpocock/skills",
|
|
92
|
-
"path": "skills/engineering/to-
|
|
92
|
+
"path": "skills/engineering/to-spec",
|
|
93
93
|
"commit": "694fa30311e02c2639942308513555e61ee84a6f",
|
|
94
|
-
"modified": true
|
|
94
|
+
"modified": true,
|
|
95
|
+
"note": "upstream renombró to-prd → to-spec; conservamos el nombre local to-prd y el pin de la última revisión aceptada hasta comparar y aceptar contenido nuevo deliberadamente"
|
|
95
96
|
}
|
|
96
97
|
}
|
|
97
98
|
}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: obsidian-cli
|
|
3
|
-
description: Interact with Obsidian vaults using the Obsidian CLI to read, create, search, and manage notes, tasks, properties, and more. Also supports plugin and theme development with commands to reload plugins, run JavaScript, capture errors, take screenshots, and inspect the DOM. Use when the user asks to interact with their Obsidian vault, manage notes, search vault content, perform vault operations from the command line, or develop and debug Obsidian plugins and themes.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Obsidian CLI
|
|
7
|
-
|
|
8
|
-
Use the `obsidian` CLI to interact with a running Obsidian instance. Requires Obsidian to be open.
|
|
9
|
-
|
|
10
|
-
## Command reference
|
|
11
|
-
|
|
12
|
-
Run `obsidian help` to see all available commands. This is always up to date. Full docs: https://help.obsidian.md/cli
|
|
13
|
-
|
|
14
|
-
## Syntax
|
|
15
|
-
|
|
16
|
-
**Parameters** take a value with `=`. Quote values with spaces:
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
obsidian create name="My Note" content="Hello world"
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
**Flags** are boolean switches with no value:
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
obsidian create name="My Note" silent overwrite
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
For multiline content use `\n` for newline and `\t` for tab.
|
|
29
|
-
|
|
30
|
-
## File targeting
|
|
31
|
-
|
|
32
|
-
Many commands accept `file` or `path` to target a file. Without either, the active file is used.
|
|
33
|
-
|
|
34
|
-
- `file=<name>` — resolves like a wikilink (name only, no path or extension needed)
|
|
35
|
-
- `path=<path>` — exact path from vault root, e.g. `folder/note.md`
|
|
36
|
-
|
|
37
|
-
## Vault targeting
|
|
38
|
-
|
|
39
|
-
Commands target the most recently focused vault by default. Use `vault=<name>` as the first parameter to target a specific vault:
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
obsidian vault="My Vault" search query="test"
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## Common patterns
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
obsidian read file="My Note"
|
|
49
|
-
obsidian create name="New Note" content="# Hello" template="Template" silent
|
|
50
|
-
obsidian append file="My Note" content="New line"
|
|
51
|
-
obsidian search query="search term" limit=10
|
|
52
|
-
obsidian daily:read
|
|
53
|
-
obsidian daily:append content="- [ ] New task"
|
|
54
|
-
obsidian property:set name="status" value="done" file="My Note"
|
|
55
|
-
obsidian tasks daily todo
|
|
56
|
-
obsidian tags sort=count counts
|
|
57
|
-
obsidian backlinks file="My Note"
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
Use `--copy` on any command to copy output to clipboard. Use `silent` to prevent files from opening. Use `total` on list commands to get a count.
|
|
61
|
-
|
|
62
|
-
## Plugin development
|
|
63
|
-
|
|
64
|
-
### Develop/test cycle
|
|
65
|
-
|
|
66
|
-
After making code changes to a plugin or theme, follow this workflow:
|
|
67
|
-
|
|
68
|
-
1. **Reload** the plugin to pick up changes:
|
|
69
|
-
```bash
|
|
70
|
-
obsidian plugin:reload id=my-plugin
|
|
71
|
-
```
|
|
72
|
-
2. **Check for errors** — if errors appear, fix and repeat from step 1:
|
|
73
|
-
```bash
|
|
74
|
-
obsidian dev:errors
|
|
75
|
-
```
|
|
76
|
-
3. **Verify visually** with a screenshot or DOM inspection:
|
|
77
|
-
```bash
|
|
78
|
-
obsidian dev:screenshot path=screenshot.png
|
|
79
|
-
obsidian dev:dom selector=".workspace-leaf" text
|
|
80
|
-
```
|
|
81
|
-
4. **Check console output** for warnings or unexpected logs:
|
|
82
|
-
```bash
|
|
83
|
-
obsidian dev:console level=error
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### Additional developer commands
|
|
87
|
-
|
|
88
|
-
Run JavaScript in the app context:
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
obsidian eval code="app.vault.getFiles().length"
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
Inspect CSS values:
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
obsidian dev:css selector=".workspace-leaf" prop=background-color
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
Toggle mobile emulation:
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
obsidian dev:mobile on
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
Run `obsidian help` to see additional developer commands including CDP and debugger controls.
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: obsidian-markdown
|
|
3
|
-
description: Create and edit Obsidian Flavored Markdown with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax. Use when working with .md files in Obsidian, or when the user mentions wikilinks, callouts, frontmatter, tags, embeds, or Obsidian notes.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Obsidian Flavored Markdown Skill
|
|
7
|
-
|
|
8
|
-
Create and edit valid Obsidian Flavored Markdown. Obsidian extends CommonMark and GFM with wikilinks, embeds, callouts, properties, comments, and other syntax. This skill covers only Obsidian-specific extensions -- standard Markdown (headings, bold, italic, lists, quotes, code blocks, tables) is assumed knowledge.
|
|
9
|
-
|
|
10
|
-
## Workflow: Creating an Obsidian Note
|
|
11
|
-
|
|
12
|
-
1. **Add frontmatter** with properties (title, tags, aliases) at the top of the file. See [PROPERTIES.md](references/PROPERTIES.md) for all property types.
|
|
13
|
-
2. **Write content** using standard Markdown for structure, plus Obsidian-specific syntax below.
|
|
14
|
-
3. **Link related notes** using wikilinks (`[[Note]]`) for internal vault connections, or standard Markdown links for external URLs.
|
|
15
|
-
4. **Embed content** from other notes, images, or PDFs using the `![[embed]]` syntax. See [EMBEDS.md](references/EMBEDS.md) for all embed types.
|
|
16
|
-
5. **Add callouts** for highlighted information using `> [!type]` syntax. See [CALLOUTS.md](references/CALLOUTS.md) for all callout types.
|
|
17
|
-
6. **Verify** the note renders correctly in Obsidian's reading view.
|
|
18
|
-
|
|
19
|
-
> When choosing between wikilinks and Markdown links: use `[[wikilinks]]` for notes within the vault (Obsidian tracks renames automatically) and `[text](url)` for external URLs only.
|
|
20
|
-
|
|
21
|
-
## Internal Links (Wikilinks)
|
|
22
|
-
|
|
23
|
-
```markdown
|
|
24
|
-
[[Note Name]] Link to note
|
|
25
|
-
[[Note Name|Display Text]] Custom display text
|
|
26
|
-
[[Note Name#Heading]] Link to heading
|
|
27
|
-
[[Note Name#^block-id]] Link to block
|
|
28
|
-
[[#Heading in same note]] Same-note heading link
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
Define a block ID by appending `^block-id` to any paragraph:
|
|
32
|
-
|
|
33
|
-
```markdown
|
|
34
|
-
This paragraph can be linked to. ^my-block-id
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
For lists and quotes, place the block ID on a separate line after the block:
|
|
38
|
-
|
|
39
|
-
```markdown
|
|
40
|
-
> A quote block
|
|
41
|
-
|
|
42
|
-
^quote-id
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## Embeds
|
|
46
|
-
|
|
47
|
-
Prefix any wikilink with `!` to embed its content inline:
|
|
48
|
-
|
|
49
|
-
```markdown
|
|
50
|
-
![[Note Name]] Embed full note
|
|
51
|
-
![[Note Name#Heading]] Embed section
|
|
52
|
-
![[image.png]] Embed image
|
|
53
|
-
![[image.png|300]] Embed image with width
|
|
54
|
-
![[document.pdf#page=3]] Embed PDF page
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
See [EMBEDS.md](references/EMBEDS.md) for audio, video, search embeds, and external images.
|
|
58
|
-
|
|
59
|
-
## Callouts
|
|
60
|
-
|
|
61
|
-
```markdown
|
|
62
|
-
> [!note]
|
|
63
|
-
> Basic callout.
|
|
64
|
-
|
|
65
|
-
> [!warning] Custom Title
|
|
66
|
-
> Callout with a custom title.
|
|
67
|
-
|
|
68
|
-
> [!faq]- Collapsed by default
|
|
69
|
-
> Foldable callout (- collapsed, + expanded).
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
Common types: `note`, `tip`, `warning`, `info`, `example`, `quote`, `bug`, `danger`, `success`, `failure`, `question`, `abstract`, `todo`.
|
|
73
|
-
|
|
74
|
-
See [CALLOUTS.md](references/CALLOUTS.md) for the full list with aliases, nesting, and custom CSS callouts.
|
|
75
|
-
|
|
76
|
-
## Properties (Frontmatter)
|
|
77
|
-
|
|
78
|
-
```yaml
|
|
79
|
-
---
|
|
80
|
-
title: My Note
|
|
81
|
-
date: 2024-01-15
|
|
82
|
-
tags:
|
|
83
|
-
- project
|
|
84
|
-
- active
|
|
85
|
-
aliases:
|
|
86
|
-
- Alternative Name
|
|
87
|
-
cssclasses:
|
|
88
|
-
- custom-class
|
|
89
|
-
---
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
Default properties: `tags` (searchable labels), `aliases` (alternative note names for link suggestions), `cssclasses` (CSS classes for styling).
|
|
93
|
-
|
|
94
|
-
See [PROPERTIES.md](references/PROPERTIES.md) for all property types, tag syntax rules, and advanced usage.
|
|
95
|
-
|
|
96
|
-
## Tags
|
|
97
|
-
|
|
98
|
-
```markdown
|
|
99
|
-
#tag Inline tag
|
|
100
|
-
#nested/tag Nested tag with hierarchy
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
Tags can contain letters, numbers (not first character), underscores, hyphens, and forward slashes. Tags can also be defined in frontmatter under the `tags` property.
|
|
104
|
-
|
|
105
|
-
## Comments
|
|
106
|
-
|
|
107
|
-
```markdown
|
|
108
|
-
This is visible %%but this is hidden%% text.
|
|
109
|
-
|
|
110
|
-
%%
|
|
111
|
-
This entire block is hidden in reading view.
|
|
112
|
-
%%
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
## Obsidian-Specific Formatting
|
|
116
|
-
|
|
117
|
-
```markdown
|
|
118
|
-
==Highlighted text== Highlight syntax
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
## Math (LaTeX)
|
|
122
|
-
|
|
123
|
-
```markdown
|
|
124
|
-
Inline: $e^{i\pi} + 1 = 0$
|
|
125
|
-
|
|
126
|
-
Block:
|
|
127
|
-
$$
|
|
128
|
-
\frac{a}{b} = c
|
|
129
|
-
$$
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
## Diagrams (Mermaid)
|
|
133
|
-
|
|
134
|
-
````markdown
|
|
135
|
-
```mermaid
|
|
136
|
-
graph TD
|
|
137
|
-
A[Start] --> B{Decision}
|
|
138
|
-
B -->|Yes| C[Do this]
|
|
139
|
-
B -->|No| D[Do that]
|
|
140
|
-
```
|
|
141
|
-
````
|
|
142
|
-
|
|
143
|
-
To link Mermaid nodes to Obsidian notes, add `class NodeName internal-link;`.
|
|
144
|
-
|
|
145
|
-
## Footnotes
|
|
146
|
-
|
|
147
|
-
```markdown
|
|
148
|
-
Text with a footnote[^1].
|
|
149
|
-
|
|
150
|
-
[^1]: Footnote content.
|
|
151
|
-
|
|
152
|
-
Inline footnote.^[This is inline.]
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
## Complete Example
|
|
156
|
-
|
|
157
|
-
````markdown
|
|
158
|
-
---
|
|
159
|
-
title: Project Alpha
|
|
160
|
-
date: 2024-01-15
|
|
161
|
-
tags:
|
|
162
|
-
- project
|
|
163
|
-
- active
|
|
164
|
-
status: in-progress
|
|
165
|
-
---
|
|
166
|
-
|
|
167
|
-
# Project Alpha
|
|
168
|
-
|
|
169
|
-
This project aims to [[improve workflow]] using modern techniques.
|
|
170
|
-
|
|
171
|
-
> [!important] Key Deadline
|
|
172
|
-
> The first milestone is due on ==January 30th==.
|
|
173
|
-
|
|
174
|
-
## Tasks
|
|
175
|
-
|
|
176
|
-
- [x] Initial planning
|
|
177
|
-
- [ ] Development phase
|
|
178
|
-
- [ ] Backend implementation
|
|
179
|
-
- [ ] Frontend design
|
|
180
|
-
|
|
181
|
-
## Notes
|
|
182
|
-
|
|
183
|
-
The algorithm uses $O(n \log n)$ sorting. See [[Algorithm Notes#Sorting]] for details.
|
|
184
|
-
|
|
185
|
-
![[Architecture Diagram.png|600]]
|
|
186
|
-
|
|
187
|
-
Reviewed in [[Meeting Notes 2024-01-10#Decisions]].
|
|
188
|
-
````
|
|
189
|
-
|
|
190
|
-
## References
|
|
191
|
-
|
|
192
|
-
- [Obsidian Flavored Markdown](https://help.obsidian.md/obsidian-flavored-markdown)
|
|
193
|
-
- [Internal links](https://help.obsidian.md/links)
|
|
194
|
-
- [Embed files](https://help.obsidian.md/embeds)
|
|
195
|
-
- [Callouts](https://help.obsidian.md/callouts)
|
|
196
|
-
- [Properties](https://help.obsidian.md/properties)
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
# Callouts Reference
|
|
2
|
-
|
|
3
|
-
## Basic Callout
|
|
4
|
-
|
|
5
|
-
```markdown
|
|
6
|
-
> [!note]
|
|
7
|
-
> This is a note callout.
|
|
8
|
-
|
|
9
|
-
> [!info] Custom Title
|
|
10
|
-
> This callout has a custom title.
|
|
11
|
-
|
|
12
|
-
> [!tip] Title Only
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Foldable Callouts
|
|
16
|
-
|
|
17
|
-
```markdown
|
|
18
|
-
> [!faq]- Collapsed by default
|
|
19
|
-
> This content is hidden until expanded.
|
|
20
|
-
|
|
21
|
-
> [!faq]+ Expanded by default
|
|
22
|
-
> This content is visible but can be collapsed.
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## Nested Callouts
|
|
26
|
-
|
|
27
|
-
```markdown
|
|
28
|
-
> [!question] Outer callout
|
|
29
|
-
> > [!note] Inner callout
|
|
30
|
-
> > Nested content
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Supported Callout Types
|
|
34
|
-
|
|
35
|
-
| Type | Aliases | Color / Icon |
|
|
36
|
-
|------|---------|-------------|
|
|
37
|
-
| `note` | - | Blue, pencil |
|
|
38
|
-
| `abstract` | `summary`, `tldr` | Teal, clipboard |
|
|
39
|
-
| `info` | - | Blue, info |
|
|
40
|
-
| `todo` | - | Blue, checkbox |
|
|
41
|
-
| `tip` | `hint`, `important` | Cyan, flame |
|
|
42
|
-
| `success` | `check`, `done` | Green, checkmark |
|
|
43
|
-
| `question` | `help`, `faq` | Yellow, question mark |
|
|
44
|
-
| `warning` | `caution`, `attention` | Orange, warning |
|
|
45
|
-
| `failure` | `fail`, `missing` | Red, X |
|
|
46
|
-
| `danger` | `error` | Red, zap |
|
|
47
|
-
| `bug` | - | Red, bug |
|
|
48
|
-
| `example` | - | Purple, list |
|
|
49
|
-
| `quote` | `cite` | Gray, quote |
|
|
50
|
-
|
|
51
|
-
## Custom Callouts (CSS)
|
|
52
|
-
|
|
53
|
-
```css
|
|
54
|
-
.callout[data-callout="custom-type"] {
|
|
55
|
-
--callout-color: 255, 0, 0;
|
|
56
|
-
--callout-icon: lucide-alert-circle;
|
|
57
|
-
}
|
|
58
|
-
```
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
# Embeds Reference
|
|
2
|
-
|
|
3
|
-
## Embed Notes
|
|
4
|
-
|
|
5
|
-
```markdown
|
|
6
|
-
![[Note Name]]
|
|
7
|
-
![[Note Name#Heading]]
|
|
8
|
-
![[Note Name#^block-id]]
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Embed Images
|
|
12
|
-
|
|
13
|
-
```markdown
|
|
14
|
-
![[image.png]]
|
|
15
|
-
![[image.png|640x480]] Width x Height
|
|
16
|
-
![[image.png|300]] Width only (maintains aspect ratio)
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## External Images
|
|
20
|
-
|
|
21
|
-
```markdown
|
|
22
|
-

|
|
23
|
-

|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Embed Audio
|
|
27
|
-
|
|
28
|
-
```markdown
|
|
29
|
-
![[audio.mp3]]
|
|
30
|
-
![[audio.ogg]]
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Embed PDF
|
|
34
|
-
|
|
35
|
-
```markdown
|
|
36
|
-
![[document.pdf]]
|
|
37
|
-
![[document.pdf#page=3]]
|
|
38
|
-
![[document.pdf#height=400]]
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Embed Lists
|
|
42
|
-
|
|
43
|
-
```markdown
|
|
44
|
-
![[Note#^list-id]]
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
Where the list has a block ID:
|
|
48
|
-
|
|
49
|
-
```markdown
|
|
50
|
-
- Item 1
|
|
51
|
-
- Item 2
|
|
52
|
-
- Item 3
|
|
53
|
-
|
|
54
|
-
^list-id
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Embed Search Results
|
|
58
|
-
|
|
59
|
-
````markdown
|
|
60
|
-
```query
|
|
61
|
-
tag:#project status:done
|
|
62
|
-
```
|
|
63
|
-
````
|