Aller au contenu

Obsidian Publisher & Sync

Le Content Pipeline capture les idees dans un vault Obsidian. Mais ensuite ? Deux workflows completent la chaine : l’un publie les notes de blog vers le site Astro Starlight, l’autre synchronise le vault avec Odoo Knowledge pour un acces multi-canal.

WorkflowNodesDeclenchementRole
Obsidian Blog Publisher~12Callback TelegramNote Obsidian → PR blog Astro
Obsidian-Odoo Sync~40GitHub webhook + Odoo + scheduleSync bidirectionnelle vault ↔ Odoo Knowledge

Obsidian-Odoo Sync · ~40 nodes

Blog Publisher · ~12 nodes

Obsidian vault · GitHub repo guigpap/obsidian-vault

Callback content_publish_

Parse frontmatter YAML

Route by tags · workflows / infrastructure / reference

Convert wikilinks + callouts → MDX

Create branch + commit + open PR

GitHub webhook · push notes/*

Schedule horaire · Odoo articles modifiés

Mapping tags → categories Knowledge

Embedding · text-embedding-3-small

Upsert Qdrant

Upsert knowledge.article

Blog Astro · GuiGPaP/blog

Odoo Knowledge


ProblemeSans ces workflowsAvec ces workflows
Publication manuelleCopier-coller, convertir le formatUn bouton dans Telegram
Connaissances en siloNotes dans Obsidian, articles dans OdooSync bidirectionnelle
Recherche fragmenteeChercher dans 3 endroits differentsRecherche unifiee via Qdrant

Quand une note dans le vault a le frontmatter type: blog et status: ready, l’utilisateur peut declencher la publication depuis Telegram via un callback content_publish_{shortId}.

Le workflow :

  1. Parse le frontmatter YAML de la note Obsidian (titre, tags, description)
  2. Route vers le bon repertoire selon les tags :
TagsRepertoire blog
workflow, automationworkflows/
infrastructure, docker, stackinfrastructure/
reference, glossaryreference/
(defaut)workflows/
  1. Convertit la syntaxe Obsidian en MDX Starlight :

    • Wikilinks [[page|label]] → liens Markdown [label](/docs/fr/path/)
    • Callouts > [!note] → composants <Aside type="note">
  2. Cree une branche Git, commit le fichier MDX, et ouvre une Pull Request avec un titre auto-genere

  3. Notifie sur Telegram avec le lien vers la PR

La synchronisation bidirectionnelle fonctionne en trois phases :

Phase 1 — GitHub → Odoo (webhook push)

Quand un fichier est modifie dans le vault (notes/* ou knowledge/*), le webhook GitHub declenche la sync :

  • Parse du frontmatter YAML
  • Mapping des tags Obsidian vers les categories Odoo Knowledge
  • Upsert de l’article dans knowledge.article
  • Generation d’un embedding (OpenAI text-embedding-3-small)
  • Upsert du vecteur dans Qdrant

Phase 2 — Odoo → GitHub (schedule horaire)

Les articles Odoo modifies (hors source “obsidian”) sont convertis en Markdown avec frontmatter YAML et commites dans le vault. La strategie de conflit est “le plus recent gagne”, et les suppressions declenchent un archivage (pas de destruction).

Phase 3 — Recherche unifiee (commande Telegram)

La commande /search dans Telegram interroge Qdrant avec un embedding de la requete et retourne les 5 resultats les plus pertinents, groupes par source (Obsidian, Odoo, YouTube).


LimiteImpactMitigation
Pas de traduction autoBlog en francais uniquementFlag translate: true prepare (v1 differe)
Conflit syncEdits simultanes Obsidian + Odoo”Le plus recent gagne”
Qdrant en memoirePerte des vecteurs si restartRe-sync depuis les sources

Si blog multilingue :

  • Activer la traduction automatique via Claude
  • Generer les fichiers MDX dans en/ en parallele du fr/

Si base de connaissances grandit :

  • Ajouter une recherche full-text en complement du vectoriel
  • Interface web dediee pour parcourir le vault
  • Suggestions automatiques de notes liees (wikilinks IA)