Cette page décrit Calíope 1.8, la version que je construis en ce moment. La 1.7 est sur l'App Store pour Mac, iPad, iPhone, Apple Watch, Apple TV et Apple Vision Pro. Le changelog indique dans quelle version chaque fonction est arrivée.

Ajoute un bouton « Ouvrir dans Calíope » à chaque sujet. Ne fonctionne qu'avec l'app installée.

Aperçu de fichiers

Aperçu de fichiers

Lisez des fichiers .md, .sql, .json, .csv, .rtf et texte sans ouvrir d'éditeur.

Où le trouver : Espace de travail › Outils › Aperçu de fichiers

L'Aperçu de fichiers affiche le contenu d'un fichier local interprété selon son extension : le Markdown (.md) s'affiche comme un document, le SQL (.sql) avec coloration syntaxique et numéros de ligne, le JSON (.json) réindenté et coloré, le CSV (.csv, .tsv) en tableau, le texte enrichi (.rtf) comme un document, et le texte brut (.txt, .log) tel quel.

C'est un outil en lecture seule : il ne modifie rien, n'enregistre rien et n'exécute rien. Pour écrire et exécuter des requêtes, il y a l'Éditeur SQL ; pour les bases SQLite locales, l'Éditeur SQLite.

Il fonctionne sans connexion à un serveur et affiche un fichier à la fois, avec une liste de fichiers récents.

Mots-clés : aperçu, fichier, markdown, md, sql, json, csv, journal, lire, visionneuse, lecture seule

Ouvrir un fichier et revenir aux récents

Choisissez un fichier sur le disque ou rouvrez-le depuis les récents.

Appuyez sur Ouvrir… et choisissez n'importe quel fichier pris en charge : .md, .sql, .json, .csv, .tsv, .rtf, .txt ou .log. Le fichier est ajouté aux Récents, affichés sur l'écran d'accueil de l'outil, qui conserve les huit derniers.

Calíope conserve une autorisation persistante pour chaque récent : vous pouvez donc le rouvrir après avoir quitté l'app sans le rechercher. Si le fichier est déplacé ou supprimé, le récent ne l'ouvre plus et il suffit de le choisir à nouveau avec Ouvrir….

Fermer libère le fichier et arrête la surveillance des modifications.

Sur le Mac, Coup d'œil — le bouton en forme d'œil, ou la barre d'espace — affiche le fichier dans le visualiseur du système, qui ouvre aussi ce que l'aperçu n'interprète pas : PDF, images, documents bureautiques.

Vous pouvez aussi l'ouvrir depuis l'extérieur de Calíope. Sur le Mac, depuis le Finder avec Ouvrir avec › Calíope, ou d'un double clic si Calíope est l'app par défaut pour ce type de fichier. Sur l'iPad et l'iPhone, en le partageant depuis l'app Fichiers et en choisissant Calíope. Un .sql ouvert ainsi va dans l'Éditeur SQL, pas ici, et un fichier SQLite, DuckDB ou Parquet dans l'Éditeur SQLite ou l'Éditeur DuckDB. Si la session affichée ne propose pas cet outil, le fichier s'ouvre dans Ouvrir hors ligne.

Mots-clés : ouvrir, récents, fichier, fermer, autorisations, bac à sable

Ce qu'il affiche du Markdown

Titres, listes, tableaux, citations et blocs de code.

Le rendu couvre les titres de # à ###### ; les paragraphes en gras, italique, code en ligne, barré et liens ; les listes numérotées ou non, avec imbrication ; les cases à cocher - [ ] et - [x] ; les citations > ; les filets horizontaux ; les tableaux à barres verticales ; et les blocs de code délimités. Quand un bloc porte l'étiquette sql, il est coloré comme un fichier .sql.

Volontairement exclus : les images ne sont jamais téléchargées — leur texte alternatif est affiché à la place —, le HTML intégré n'est pas interprété et l'en-tête front matter est ignoré.

Les titres sont annoncés comme des titres à VoiceOver et tout le texte suit la taille de texte dynamique.

Mots-clés : markdown, md, titres, listes, tableaux, images, code

Consulter un document RTF

Les fichiers de texte enrichi sont lus comme un document, structure comprise.

Un fichier .rtf — celui qu'écrivent TextEdit, Word ou Pages à l'exportation — s'affiche comme un document et non comme du balisage. Sont conservés les titres, les listes avec leur imbrication et leur numérotation, le gras, l'italique, le souligné, le barré, les liens, l'alignement des paragraphes et les passages en police à chasse fixe.

Ce qui n'est pas appliqué, c'est la typographie du document : ni la police, ni les tailles en points, ni les couleurs. C'est Calíope qui les fournit, comme pour le Markdown, afin que le texte suive la taille de texte dynamique et se lise aussi bien en thème clair qu'en thème sombre. Un rappel figure en bas tant que le fichier est ouvert.

Les niveaux de titre se déduisent de la taille de police relative au document lui-même : la plus grande donne le niveau 1, la suivante le niveau 2, et ainsi de suite. Un RTF ne déclare aucune hiérarchie, c'est donc tout ce dont on dispose.

Hors périmètre : les paquets .rtfd ne s'ouvrent pas — c'est un dossier, pas un fichier — et les images et objets incorporés ne sont pas affichés ; si le document en contient, leur nombre est indiqué en bas.

Mots-clés : rtf, texte enrichi, richtext, document, textedit, word, pages, mise en forme, gras, italique

Lire un fichier SQL sans l'exécuter

Coloration syntaxique et numéros de ligne, sans exécution.

Les fichiers .sql s'affichent en police à chasse fixe, avec numéros de ligne et coloration syntaxique : requête, définition de schéma, contrôle, fonctions, types, fenêtrage et procédural, plus les littéraux de texte, les nombres, les commentaires --, # et /* … */, et les identifiants entre accents graves.

Il n'y a pas de bouton d'exécution, et c'est voulu : l'aperçu n'ouvre jamais de connexion. Pour exécuter le contenu, ouvrez-le dans l'Éditeur SQL.

Au-delà de 500 Ko, la coloration est désactivée et le fichier s'affiche en texte brut ; une note en bas le signale.

Mots-clés : sql, coloration, syntaxe, lignes, exécuter, éditeur

JSON, CSV et texte brut

JSON réindenté, CSV en tableau, journaux tels quels.

Le JSON (.json) est réindenté à deux espaces par niveau et coloré : clés, texte, nombres et true/false/null. L'ordre des clés est celui du fichier — rien n'est réordonné — et si le contenu n'est pas du JSON valide, l'aperçu le signale en bas et affiche quand même ce qu'il a pu lire. Au-delà de 2 Mo, le formatage est désactivé et le fichier s'affiche tel qu'il est sur le disque.

Le CSV (.csv, .tsv) s'affiche en tableau, avec numéros de ligne et en-tête fixe. Le séparateur est détecté — virgule, point-virgule, tabulation ou barre verticale — et nommé en bas ; les champs entre guillemets, les guillemets doublés et les sauts de ligne à l'intérieur d'un champ sont respectés. Jusqu'à 10 000 lignes et 64 colonnes sont affichées, et toute coupe est signalée. Il ne trie ni ne filtre : c'est une visionneuse, pas une grille de données.

Le texte brut (.txt, .log et toute extension non reconnue) s'affiche tel quel, à chasse fixe et avec numéros de ligne. Les lignes de plus de 2 000 caractères sont coupées pour pouvoir être affichées, et la marque ↳ indique la suite de la ligne précédente.

Les objets et les tableaux se replient : le triangle dans la marge masque le conteneur et laisse un résumé —[…] ou {…}— avec le nombre de membres ; les deux boutons de l’en-tête replient et déplient tout le fichier. Les conteneurs vides tiennent déjà sur une seule ligne.

Mots-clés : json, csv, tsv, journal, texte, txt, tableau, separateur, indentation

Actualisation automatique et limites de taille

La vue se met à jour toute seule quand le fichier change sur le disque.

Tant que le fichier est ouvert, Calíope surveille son chemin. Si vous l'enregistrez depuis un autre programme, la vue se met à jour toute seule — avec un indicateur Actualisé pendant quelques secondes — et conserve votre position de lecture. Vous pouvez aussi forcer la mise à jour avec Recharger.

La surveillance résiste à l'enregistrement atomique, celui que font TextEdit, Xcode ou vim en remplaçant le fichier au lieu de le réécrire : elle continue de rafraîchir après le deuxième et le troisième enregistrement.

Si le fichier disparaît, l'outil le signale sans en faire une erreur : supprimer un fichier n'est pas une panne.

Limites : d'un gros fichier, seuls les 5 premiers Mo sont lus — l'en-tête indique ce qui est affiché —, la coloration SQL est désactivée au-delà de 500 Ko, le formatage JSON au-delà de 2 Mo, et d'un CSV sont affichées jusqu'à 10 000 lignes et 64 colonnes. Toute coupe est signalée en bas de la vue.

Mots-clés : mettre à jour, rafraîchir, recharger, modifications, taille, limite, 5 mo

Quels encodages lit l’Aperçu de fichiers

Comment il détecte l’encodage d’un fichier texte, où il l’affiche et ce qu’il dit quand il ne peut pas le lire.

Où le trouver : Espace de travail › Outils › Aperçu de fichiers

Pour lire un fichier texte, l’Aperçu de fichiers cherche d’abord une marque d’ordre des octets (UTF-8, ou UTF-16 dans les deux ordres). Sans elle, il considère le fichier comme binaire s’il trouve un octet NUL près du début ; sinon il essaie UTF-8, puis la détection du système, puis Windows-1252 et ISO-8859-1, dans cet ordre. L’encodage trouvé s’affiche dans l’en-tête à côté du type de fichier.

Un fichier binaire, ou un fichier qu’il ne peut pas décoder, affiche « Fichier binaire ou encodage de texte non pris en charge. ». Quand un gros fichier est tronqué, la coupure tombe sur une limite de caractère propre.

Mots-clés : encodage, UTF-8, UTF-16, Windows-1252, ISO-8859-1, binaire

Coup d'œil sur les bases de données et les fichiers de données

Voyez les tables et les premières lignes d'un fichier SQLite, DuckDB ou Parquet sans ouvrir Calíope.

Avec Calíope installé, le Coup d'œil du système affiche une base SQLite, une base DuckDB ou un fichier Parquet sous forme de tables, sans ouvrir l'app. Sur le Mac, sélectionnez le fichier dans le Finder et appuyez sur la barre d'espace. Sur l'iPad et l'iPhone, touchez-le dans l'app Fichiers, ou ouvrez son aperçu depuis n'importe quelle app qui affiche des fichiers.

En haut viennent le nom du fichier, son type, sa taille et le moteur qui l'a lu, puis la liste des tables, chacune avec son nombre de lignes et ses colonnes avec leur type. En dessous, les 20 premières lignes de chaque table, l'une après l'autre ; dans une base de plus de dix tables, seules les dix premières affichent des lignes et les autres restent dans la liste. Un fichier Parquet est une seule table, avec les types que DuckDB déduit. Dans une base DuckDB, les vues, les séquences et les macros figurent sous Autres objets, sans lignes.

L'aperçu n'écrit jamais : il ne crée aucun fichier à côté de l'original et ne change pas sa date de modification. C'est pourquoi une base SQLite en mode WAL affiche ce qui est enregistré dans le fichier principal, et le signale : les modifications encore dans son fichier -wal n'apparaissent pas.

Sur le Mac, un fichier TSV s'ouvre aussi sous forme de table. Un CSV est affiché par macOS lui-même, en table sans types ; sur l'iPad et l'iPhone, le système affiche le CSV en table et le TSV en texte. Pour les voir en table avec leurs types, ouvrez-les dans Calíope.

On ne modifie ni n'interroge rien ici : pour exécuter du SQL, ouvrez le fichier dans Calíope avec le bouton que le système affiche au-dessus de l'aperçu. Apple Vision Pro ne charge pas les aperçus des autres apps : le système y affiche sa propre fiche avec le nom et la taille du fichier.

Mots-clés : coup d'œil, quick look, barre d'espace, finder, fichiers, aperçu, sqlite, duckdb, parquet, tsv, csv

Coup d'œil : limites et fichiers illisibles

Environ trois secondes par aperçu, gros fichiers, bases chiffrées et écritures en attente.

Un aperçu dispose d'environ trois secondes pour lire le fichier. Il lit d'abord ce qui en dit le plus — la liste des tables, puis les lignes des premières, enfin le nombre de lignes — et si le temps s'écoule, il s'arrête là et le signale : ouvrez le fichier dans Calíope pour voir le reste. Une base de plusieurs centaines de tables affiche sa liste entière en moins d'une seconde ; avec des milliers, l'aperçu s'arrête au bout de ces trois secondes avec la liste complète et les lignes des dix premières.

La taille seule n'est pas un problème, car seules les premières lignes sont lues : un fichier SQLite de 2 Go s'ouvre en quelques secondes. Ce qui n'est pas compté, c'est un fichier TSV de plus de 50 Mo sur le Mac : il affiche Lignes non comptées et ses 20 premières lignes.

Quand un fichier ne peut pas être lu, l'aperçu dit pourquoi au lieu de rester vide :

- une base SQLite chiffrée, ou un fichier qui n'est pas une base de données ;
- sur le Mac, une base DuckDB dont le fichier .wal contient encore des écritures : ouvrez-la dans Calíope pour finir de l'écrire ;
- un fichier endommagé : l'aperçu affiche la raison donnée par le moteur ;
- une base sans tables le signale.

Calíope ouvre normalement une base DuckDB avec des écritures en attente : sur le Mac, seul l'aperçu ne peut pas les appliquer, car le système ne le laisse lire que le fichier qu'il lui donne. Sur l'iPad et l'iPhone, depuis l'app Fichiers, l'aperçu lit bien le fichier .wal et montre la base avec ces écritures.

Mots-clés : coup d'œil, limite, temps, gros, chiffrée, wal, endommagé, lignes non comptées