Files
fn_registry/python/functions/obsidian/extract_obsidian_embeds.md
T
egutierrez eb8dbf66a1 feat(infra): auto-commit con 88 cambios
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-11 00:16:46 +02:00

2.7 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path
extract_obsidian_embeds function py obsidian 1.0.0 pure def extract_obsidian_embeds(body: str) -> list Extrae SOLO los embeds !... (attachments incrustados: imagenes, pdf, otras notas) del cuerpo de una nota de Obsidian, ignorando los wikilinks normales .... Para cada embed devuelve el target tal cual (nombre de archivo), quitando alias (|...) y anclas (#...). Deduplica preservando orden de aparicion. Pura, sin I/O. Util para detectar que attachments arrastra una nota al migrar un subgrafo.
obsidian
embed
attachment
image
markdown
extract
migrate
false
re
name desc
body Cuerpo Markdown de una nota de Obsidian (idealmente sin frontmatter). Puede mezclar wikilinks ... y embeds !... con alias (|) o ancla (#).
Lista de strings con los nombres de los attachments embebidos (el target de cada !...), unicos y en orden de aparicion. Solo embeds: los wikilinks normales ... se ignoran. Lista vacia si no hay embeds. true
solo embeds ignora wikilinks
varios embeds orden y dedup
quita alias y ancla
nombre con espacios y parentesis
sin embeds solo wikilinks
body vacio
python/functions/obsidian/extract_obsidian_embeds_test.py python/functions/obsidian/extract_obsidian_embeds.py

Ejemplo

body = (
    "Texto con [[Nota normal]] y un embed ![[imagen.jpg]]. "
    "Luego ![[doc.pdf]] y otra vez ![[imagen.jpg]]."
)
extract_obsidian_embeds(body)
# ["imagen.jpg", "doc.pdf"]

extract_obsidian_embeds("![[dni enmanuel (2).jpg]]")
# ["dni enmanuel (2).jpg"]

Cuando usarla

Usala cuando migres o extraigas un subgrafo de notas y necesites saber QUE attachments hay que copiar junto a cada nota. A diferencia de extract_obsidian_wikilinks (que devuelve todos los enlaces, incluidos los embeds), esta funcion aisla solo los ![[...]], que son los archivos fisicos incrustados. Combinala con resolve_obsidian_embed para localizar el path real de cada attachment dentro del vault.

Gotchas

  • Devuelve el nombre del attachment tal cual aparece en el embed (p.ej. dni enmanuel (2).jpg), NO un path. Obsidian resuelve embeds por nombre de archivo unico; para obtener la ruta real usa resolve_obsidian_embed.
  • Quita deliberadamente el alias (|300, util para dimensionar imagenes) y el ancla (#Seccion, util para embeber un trozo de otra nota). Si necesitas esos modificadores, parsea el body tu mismo.
  • Solo reconoce embeds con doble corchete ![[...]]. Los embeds Markdown estandar de imagen ![alt](ruta) NO se detectan.