📖 Skill: Obsidian Dev Rules
Resumen de la Skill
Reglas y estándares oficiales de la API de Obsidian (
docs.obsidian.md) para crear plugins seguros, eficientes y libres de memory leaks.
🏛️ Principios Fundamentales
- Usar
this.app, nunca elappglobal: El objeto global solo existe para pruebas en consola y puede eliminarse. - Edición atómica con
vault.process():- ❌ No uses
vault.read()seguido devault.modify(); si ocurre un error entre ambos, puedes perder datos. - ✅ Usa
await this.app.vault.process(tfile, (data) => data.replace(...)).
- ❌ No uses
- Cero
innerHTML: Crear siempre elementos del DOM usando las funciones nativas:createEl(),createDiv(),createSpan(). - Editor API para notas activas:
- Si vas a modificar el texto de la nota que el usuario está viendo, usa
MarkdownView.editor.replaceSelection()para preservar el cursor y la selección.
- Si vas a modificar el texto de la nota que el usuario está viendo, usa
📦 Estructura de Distribución de un Plugin
Un plugin listo para la comunidad solo contiene 3 archivos en <vault>/.obsidian/plugins/<id>/:
manifest.json: Metadatos, id, nombre, versión yminAppVersion.main.js: Código ejecutable compilado con esbuild.styles.css: Estilos visuales opcionales.