📖 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

  1. Usar this.app, nunca el app global: El objeto global solo existe para pruebas en consola y puede eliminarse.
  2. Edición atómica con vault.process():
    • ❌ No uses vault.read() seguido de vault.modify(); si ocurre un error entre ambos, puedes perder datos.
    • ✅ Usa await this.app.vault.process(tfile, (data) => data.replace(...)).
  3. Cero innerHTML: Crear siempre elementos del DOM usando las funciones nativas: createEl(), createDiv(), createSpan().
  4. 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.

📦 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 y minAppVersion.
  • main.js: Código ejecutable compilado con esbuild.
  • styles.css: Estilos visuales opcionales.