Obsidian

Obsidian

Notes

Obsidian

Obsidian est à la fois un éditeur Markdown et une application de base de connaissances.

Dans son utilisation la plus basique, vous pouvez éditer et prévisualiser des fichiers Markdown. Mais sa véritable puissance réside dans la gestion d’une base de connaissances densément interconnectée.

Comment commencer à créer un réseau, demandez-vous ? Commençons d’abord par créer quelques Liens internes !

Vous possédez et contrôlez vos données

Nous croyons au texte brut pour quelque chose d’aussi important que votre base de connaissances. Vous ne voudriez pas confier votre propre cerveau à quelqu’un d’autre, n’est-ce pas ? Traitez votre second cerveau de la même manière.

Sync n’est qu’un utilitaire pour faciliter le travail sur plusieurs appareils, les données résideront toujours principalement sur votre disque dur.

Lorsque le système de fichiers remplace le cloud, vous disposez d’options flexibles pour travailler avec vos fichiers : vous pouvez les sauvegarder avec Dropbox, utiliser Git pour le versionnement, ou chiffrer votre disque pour la sécurité. Tout ce qui fonctionne sur votre système de fichiers fonctionnera avec votre base de connaissances Obsidian.

Les liens sont des éléments de premier ordre

Les liens et les connexions sont essentiels pour découvrir les relations entre ce que nous savons.

Obsidian accorde une grande importance à cela et l’encourage avec les Liens internes et la Vue graphique, entre autres choses.

Comme le dit John Locke…

Les actes de l’esprit, par lesquels il exerce son pouvoir sur les idées simples, sont principalement ces trois :

  1. Combiner plusieurs idées simples en une seule idée composée, et c’est ainsi que toutes les idées complexes sont formées.
  2. Le second consiste à rapprocher deux idées, qu’elles soient simples ou complexes, et à les placer l’une à côté de l’autre de manière à les voir d’un seul coup d’œil, sans les unir en une seule, ce qui lui donne toutes ses idées de relations.
  3. Le troisième consiste à les séparer de toutes les autres idées qui les accompagnent dans leur existence réelle : c’est ce qu’on appelle l’abstraction, et c’est ainsi que toutes ses idées générales sont formées.
  • John Locke, Essai sur l’entendement humain (1690)

La hiérarchie nous donne le n°1, et les liens nous donnent le n°2. Nous ne savons pas encore exactement ce que le n°3 implique dans le contexte de la prise de notes, mais cela pourrait avoir un rapport avec la programmation ou les macros.

Votre propre boîte à outils

La prise de notes est une activité hautement personnelle. Il n’existe naturellement pas de solution unique et universelle pour tout le monde.

Au lieu de vous fournir un produit figé et préassemblé, À propos d’Obsidian vous offre une base et de nombreux blocs de construction fonctionnels pour découvrir et construire votre propre solution.

La base consiste à pouvoir afficher des fichiers, les éditer et les rechercher. Pour le minimaliste, c’est suffisant.

En plus de cela, vous pouvez ajouter des blocs de construction isolés et indépendants pour enrichir votre prise de notes :

Nous ne nous attendons pas à ce que les modules soient la solution miracle à tous les problèmes, mais cela nous rapproche davantage qu’une solution monolithique, sans toutes les fonctionnalités dont vous n’avez pas besoin qui encombrent l’interface.

Nous prenons en charge les Extraits CSS, les Thèmes et les Modules complémentaires, qui permettent encore plus de personnalisation de l’interface et prennent en charge des cas d’utilisation moins courants.

Suivez notre développement

Curieux de savoir comment nous continuons à faire d’Obsidian le meilleur outil et le plus abouti pour le traitement de la pensée ? Consultez notre feuille de route pour voir sur quoi nous travaillons.

Notre compte Twitter est @obsdmd, n’hésitez pas à nous suivre. Nous tweetons principalement sur les mises à jour du produit.

Obsidian  
Créateur Erica Xu (d) et Shida Li (d)
Développé par Dynalist (d)
Première version 30 mars 2020
Dernière version 1.12.7 (23 mars 2026)[[1)(https://fr.wikipedia.org/wiki/Obsidian_(logiciel)#cite_note-wikidata-09278d26de1dd40c0abf0079d5c3e3e443e3e5bb-1)
Version avancée 1.12.5 (5 mars 2026)[[2)(https://fr.wikipedia.org/wiki/Obsidian_(logiciel)#cite_note-wikidata-8db841de22b41cf1366e7936dac49866edd064a0-2)
Écrit en Electron, JavaScript et feuille de style en cascade
Système d’exploitation Linux, macOS, Microsoft Windows, iOS, Android et iPadOS
Environnement Android, Microsoft Windows, Linux, iOS et macOS
Formats lus Markdown
Formats écrits Markdown
Type Programme informatique
Application mobile
Personal knowledge base (en)
Licence Licence propriétaire
Documentation docs.obsidian.md et help.obsidian.md
Site web obsidian.md

Linux Obsidian AppImage

Obsidian Help

Installer Obsidian à l’aide d’AppImage

  1. Ouvrez votre navigateur et allez sur Télécharger Obsidian.
  2. Sous Linux, cliquez AppImagesur AppImage pour télécharger le fichier d’installation.
  3. Ouvrez un terminal et accédez au dossier dans lequel vous avez téléchargé le fichier d’installation.
  4. Dans le terminal, exécutez la commande suivante pour ouvrir Obsidian:
    1
    2
    3
    
    # Prérequis fuse2 installé
    chmod u+x Obsidian-<version>.AppImage
    ./Obsidian-<version>.AppImage --no-sandbox
    

Configuration globale

  • Linux: $XDG_CONFIG_HOME/obsidian/ or ~/.config/obsidian/

Déplacer APPImage:sudo mv Obsidian-<version>.AppImage /usr/local/bin/
Créer un lanceur avec ‘Editeur du menu KDE’

Interroger la fenêtre active en cliquant dessus via KWin

1
qdbus6 org.kde.KWin /KWin org.kde.KWin.queryWindowInfo

Le curseur change, vous cliquez sur la fenêtre Obsidian, et toutes ses propriétés sont renvoyées (resourceClass, caption, desktopFile…). La classe pour Obsidian

1
resourceClass: md.obsidian.Obsidian

Modifier le fichier ~/.local/share/applications/Obsidian.desktop pout y ajouter la ligne StartupWMClass=md.obsidian.Obsidian

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Desktop Entry]
Comment=Notes
Exec=/usr/local/bin/Obsidian-1.14.4.appimage
Icon=text-markdown
Name=Obsidian
NoDisplay=false
Path=
PrefersNonDefaultGPU=false
StartupNotify=true
StartupWMClass=md.obsidian.Obsidian
Terminal=false
TerminalOptions=
Type=Application
X-KDE-SubstituteUID=false
X-KDE-Username=

Coffre Notes

Lancer l’application

Ouverture dossier ~/media/Notes

Paramètrage, clic sur la roue dentée en bas à gauche

Activer les “Modules complémentaires”
Les modules installés

![ 527](/images/obsidian-modules.png)

Modules complémentaires

Webpage HTML Export

Exporter du code HTML à partir de fichiers uniques, de pages de zone de dessin ou de coffres entiers. L’accès direct aux fichiers HTML exportés vous permet de publier votre jardin numérique n’importe où. Met l’accent sur la flexibilité, les fonctionnalités et la parité de style. Démo https://docs.obsidianweb.net/

HTML Export Settings

General Settings
–> Favicon image yannick.ico
Page Features
–> Désactiver Graph View
–> Désactiver RSS
Export settings
–> Désactiver Use Relative Header Links
–> Désactiver Make Offline Compatible

Exportation

Dossier exportation : ~/sharenfs/rnmkcy/racine/notes/

Avant toute exportation, s’assurer que le dossier est vide

1
rm -r ~/sharenfs/rnmkcy/racine/notes/*

Lancer l’exportation en cliquant sur le 3 points superposés en haut à droite de la fenêtre obsidian puis sur Export as HTML

Dans la fenêtre SELECT ALL FILES IN EXPORTED VAULT, sélectionner les dossiers et fichiers à exporter (il faut au moins un fichier ouvert dans obsidian, même un fichier qui ne sera pas obligatoirement exporté)


Patienter quelques instants…

Effacer la destination avant de relancer une exportation

1
rm -r sharenfs/rnmkcy/racine/notes/*

Obsidian - Déplacer les images

On peut lui passer le dossier en paramètre:

mv_image.sh dossier
Les images sont dans dossier/

Script mv_image.sh

Voici le script adapté : les images sont dans dossier/ (la racine passée en paramètre), et /images est le lien vers Jekyll.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/env bash
set -euo pipefail

root="$1"
images_dir="/images"

if [ ! -d "$root" ]; then
  echo "Erreur: le dossier '$root' n'existe pas"
  exit 1
fi

if [ ! -d "$images_dir" ]; then
  echo "Erreur: /images n'existe pas ou n'est pas un dossier valide"
  exit 1
fi

# 1. Remplacer ![](/images/fichier_image) par ![](/images/fichier_image) dans tous les .md (récursif)
find "$root" -type f -name '*.md' -print0 |
while IFS= read -r -d '' md; do
  perl -0pi -e "s/!\[\[([^\]]+)\]\]/![]\(\/images\/\$1\)/g" "$md"
done

# 2. Déplacer les images à la racine de dossier/ vers /images/
find "$root" -maxdepth 1 -type f \( \
  -iname '*.png' -o -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.gif' -o -iname '*.webp' -o -iname '*.svg' \
\) -print0 |
while IFS= read -r -d '' img; do
  mv -f "$img" "$images_dir/"
done

Utilisation

1
2
chmod +x mv_image.sh
./mv_image.sh dossier

Ce script :

  • parcourt recursivement tous les .md dans dossier/,
  • remplace les balises images,
  • déplace les images présentes à la racine de dossier/ vers /images/ (lien vers /home/yann/media/statique/images) [][].

Augmenter taille de la zone de saisie

Le problème vient probablement du thème, qui impose une largeur maximale d’environ 750 px. Pour que cela s’applique aussi à l’aperçu et à l’impression/PDF, remplacez votre extrait par celui-ci :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/* Largeur des notes dans Obsidian */
.markdown-source-view.mod-cm6 .cm-content,
.markdown-preview-view .markdown-preview-sizer {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Variables utilisées par Obsidian et certains thèmes */
.markdown-source-view,
.markdown-preview-view {
  --file-line-width: 100% !important;
  --line-width-wide: 100% !important;
}

/* Largeur lors de l'impression ou de l'export PDF */
@media print {
  .markdown-preview-view .markdown-preview-sizer {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .markdown-preview-view {
    --file-line-width: 100% !important;
    --line-width-wide: 100% !important;
  }
}

Pour l’activer : Paramètres → Apparence → Extraits CSS → Ouvrir le dossier des extraits, créez un fichier .css, puis activez-le dans Obsidian.

le fichier est dans le dossier snippets

1
2
3
4
5
6
7
8
9
10
11
12
13
14
.obsidian
├── appearance.json
├── app.json
├── community-plugins.json
├── core-plugins.json
├── hotkeys.json
├── plugins
│   ├── document-exporter
│   ├── editing-toolbar
│   ├── insta-toc
│   └── webpage-html-export
├── snippets
│   └── largeur.css
└── workspace.json

Rechargez ensuite l’extrait CSS, puis fermez et rouvrez la note.

À retenir : le fichier Markdown ne possède pas de largeur intrinsèque. La limite de 750 px est imposée par l’affichage ou par le format d’export. Si vous exportez en PDF, la largeur sera aussi limitée par les marges et le format de page — A4, Letter, etc. Dans ce cas, choisissez des marges étroites dans la fenêtre d’impression/exportation.

Si vous utilisez un plugin d’export HTML ou Word, cet extrait peut ne pas être repris : ces plugins utilisent parfois leur propre modèle CSS.

Icônes Polices et CSS

Embarquer les polices en base64

Obsidian charge les snippets comme des balises <style> internes. Un @import "../assets/..." ou un url(../webfonts/...) en chemin relatif ne fonctionne donc pas : les polices ne se chargent pas.

Les fichiers CSS et polices fontawesome-free

1
2
3
4
5
6
7
8
/sharenfs/vm105/fontawesome-free
├── css
│   └── all.min.css
└── webfonts
    ├── fa-brands-400.woff2
    ├── fa-regular-400.woff2
    ├── fa-solid-900.woff2
    └── fa-v4compatibility.woff2

Ce script Python génère un snippet unique qui contient le CSS et les polices :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import re, base64, pathlib

root = pathlib.Path.home() / "/sharenfs/vm105/fontawesome-free"   # dossier local contenant css/ et webfonts/
out  = pathlib.Path.home() / "media/Notes/.obsidian/snippets/fontawesome.css"

print("Lecture du CSS...")
css = (root / "css/all.min.css").read_text()

def embed(m):
    f = root / "webfonts" / m.group(1)
    if not f.exists():
        print("Absent :", f)
        return m.group(0)
    print("Intégration :", f.name)
    data = base64.b64encode(f.read_bytes()).decode()
    return f"url(data:font/woff2;base64,{data})"

css = re.sub(r"url\(\.\./webfonts/([^)]+\.woff2)\)", embed, css)

out.parent.mkdir(parents=True, exist_ok=True)
out.write_text(css)
print("Écrit :", out, f"({out.stat().st_size // 1024} Ko)")

Exécution du script

1
2
3
4
5
6
7
8
9
10
11
12
Lecture du CSS...
Intégration : fa-brands-400.woff2
Intégration : fa-regular-400.woff2
Intégration : fa-solid-900.woff2
Intégration : fa-brands-400.woff2
Intégration : fa-solid-900.woff2
Intégration : fa-regular-400.woff2
Intégration : fa-solid-900.woff2
Intégration : fa-brands-400.woff2
Intégration : fa-regular-400.woff2
Intégration : fa-v4compatibility.woff2
Écrit : /home/yann/media/Notes/.obsidian/snippets/fontawesome.css (1031 Ko)

Ensuite, dans Obsidian : Paramètres → Apparence → Extraits CSS → recharger la liste → activer fontawesome.

Le fichier fera environ 400 Ko, ce qui reste raisonnable pour un snippet.

Script générique

Le principe s’applique à toute bibliothèque d’icônes qui fonctionne en police (CSS + fichiers de polices) : Bootstrap Icons, Remix Icon, Material Design Icons (@mdi/font), Tabler Icons (webfont), Phosphor, etc.

Il gère les chemins avec guillemets, les suffixes ?v=1.2 ou #iefix, et plusieurs formats. Il garde uniquement le woff2 quand c’est possible, pour limiter la taille.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/env python3
import re, base64, sys, pathlib

MIME = {".woff2": "font/woff2", ".woff": "font/woff",
        ".ttf": "font/ttf", ".otf": "font/otf"}

def build(css_path, out_path):
    css_path = pathlib.Path(css_path).expanduser().resolve()
    out_path = pathlib.Path(out_path).expanduser()
    css = css_path.read_text()
    base = css_path.parent

    # Résout les url(...) relatifs depuis le dossier du CSS
    def embed(m):
        raw = m.group(2).strip()
        if raw.startswith(("data:", "http:", "https:", "//")):
            return m.group(0)
        clean = re.split(r"[?#]", raw)[0]
        f = (base / clean).resolve()
        ext = f.suffix.lower()
        if ext not in MIME or not f.exists():
            print("Ignoré :", raw)
            return m.group(0)
        print("Intégré :", f.name)
        data = base64.b64encode(f.read_bytes()).decode()
        return f"url(data:{MIME[ext]};base64,{data})"

    css = re.sub(r"url\((['\"]?)([^)'\"]+)\1\)", embed, css)

    # Supprime les sources non embarquées restantes (ttf, eot, svg, etc.) pour alléger
    css = re.sub(r",\s*url\((?!data:)[^)]*\)\s*format\([^)]*\)", "", css)

    out_path.parent.mkdir(parents=True, exist_ok=True)
    out_path.write_text(css)
    print(f"Écrit : {out_path} ({out_path.stat().st_size // 1024} Ko)")

if __name__ == "__main__":
    if len(sys.argv) != 3:
        sys.exit("Usage : css2snippet.py <fichier.css> <sortie.css>")
    build(sys.argv[1], sys.argv[2])

Usage :

1
2
python3 css2snippet.py ~/bootstrap-icons/font/bootstrap-icons.min.css \
  ~/media/Notes/.obsidian/snippets/bootstrap-icons.css

Points d’attention

  • Poids : le base64 ajoute environ 33 %. Si le CSS référence plusieurs formats (woff2, woff, ttf), garde seulement le woff2 : Obsidian est basé sur Chromium et le gère très bien. Pour éviter d’embarquer les formats inutiles, supprime-les du CSS source avant de lancer le script, ou utilise la ligne de nettoyage ci-dessus à condition de tester le résultat.
  • Polices lourdes : @mdi/font ou Material Symbols dépassent facilement 1 Mo. Ça fonctionne, mais le snippet devient lourd. Pour ces cas, le CDN ou un @import local peut être préférable.
  • Bibliothèques en SVG (Lucide en SVG, Heroicons) : pas de police, donc ce principe ne s’applique pas. Lucide est déjà intégré à Obsidian pour son interface.
  • Plusieurs bibliothèques : un snippet par bibliothèque, pour pouvoir les activer et désactiver séparément. Les préfixes de classes (fa-, bi-, ri-, mdi-) évitent les conflits.
  • Export du site : comme pour Font Awesome, le snippet sert à la vault. Pour le site exporté, il faut référencer le CSS dans le <head> personnalisé.

Utilisation dans une note

1
2
3
4
5
6
7
8
9
10
11
<i class="fa-solid fa-house"></i>
<i class="fa-brands fa-github"></i>
<i class="fa-regular fa-heart"></i>
<i class="fa-solid fa-triangle-exclamation"></i>

<i class="fa-solid fa-triangle-exclamation" style="color: rgb(223, 14, 71);"></i>
<i class="fa-solid fa-triangle-exclamation fa-lg" style="color: rgb(223, 14, 71);"></i>
<i class="fa-solid fa-triangle-exclamation fa-xl" style="color: rgb(223, 14, 71);"></i>
<i class="fa-solid fa-triangle-exclamation fa-2xl" style="color: rgb(223, 14, 71);"></i>
<i class="fa-solid fa-triangle-exclamation fa-2xl" style="color: rgb(255, 212, 59);"></i>
<i class="fa-solid fa-triangle-exclamation fa-2xl" style="color: rgb(99, 230, 190);"></i>

fa-lg

fa-xl

fa-2xl

1
<i class="fa-solid fa-house fa-2xl" style="color: rgb(99, 230, 190);"></i>  <i class="fa-solid fa-arrow-right" style="color: rgb(99, 230, 190);"></i>

Le lien pour les icônes fontawesome-free

Tags tendance