MdToGutenberg convertit vos documents Markdown en blocs Gutenberg prêts à coller dans WordPress.
Ce qu’il fait
- Collez du Markdown, récupérez des blocs Gutenberg propres
- Blocs de code soignés via Code Block Pro
- Idéal pour la documentation technique et les articles de blog
En pratique
Windows 10 ou 11, 64 bits. Deux éditions au choix : avec .NET intégré (rien à installer au préalable) ou allégée sans .NET. Mises à jour automatiques intégrées au logiciel.
Télécharger
Disponible sur demande
Logiciel en version bêta, fourni « en l'état », sans garantie d'aucune sorte : je ne saurais être tenu responsable des dommages directs ou indirects liés à son utilisation. En téléchargeant, vous acceptez les conditions d'utilisation.
2.10.02026-07-30
- Ajouté : Licence de gratuiciel (LICENCE.txt, français, embarquée et livrée à côté de l'exécutable) : utilisation et redistribution gratuites, dons volontaires sans contrepartie, composants tiers crédités, aucune garantie.
- Ajouté : Onglet « À propos » dans les paramètres : version, résumé et texte complet de la licence, bouton « Faire un don via PayPal » (identifiant de bouton à renseigner dans FenetreParametres.xaml.cs avant diffusion).
- Ajouté : README de distribution mis à jour : gratuité, dons, licence, prérequis.
- Corrigé : L'entête « Verre (maison) » pouvait être invisible : voile trop léger et libellé vide quand aucun langage n'était affiché. Le bandeau est plus marqué et garde toujours sa hauteur.
2.9.52026-07-30
- Corrigé : Un bloc de code clôturé à l'intérieur d'une citation est désormais rendu comme un vrai bloc de code, par le module choisi, imbriqué dans le bloc core/quote. Il sortait auparavant en paragraphe de texte brut.
2.9.42026-07-30
- Corrigé : Mode HTML autonome : c'est désormais tout le document qui sort sans trace de WordPress, plus seulement les blocs de code. Les commentaires de bloc et les classes wp-* disparaissent de la sortie (titres, listes, citations, tableaux, séparateurs), et la colonne du milieu s'intitule « SORTIE HTML » dans ce mode.
- Corrigé : Les deux pages web stylent maintenant les balises nues plutôt que les classes WordPress : le rendu est identique avec ou sans elles.
2.10.02026-07-30
- Ajouté : Licence de gratuiciel (LICENCE.txt, français, embarquée et livrée à côté de l'exécutable) : utilisation et redistribution gratuites, dons volontaires sans contrepartie, composants tiers crédités, aucune garantie.
- Ajouté : Onglet « À propos » dans les paramètres : version, résumé et texte complet de la licence, bouton « Faire un don via PayPal » (identifiant de bouton à renseigner dans FenetreParametres.xaml.cs avant diffusion).
- Ajouté : README de distribution mis à jour : gratuité, dons, licence, prérequis.
- Corrigé : L'entête « Verre (maison) » pouvait être invisible : voile trop léger et libellé vide quand aucun langage n'était affiché. Le bandeau est plus marqué et garde toujours sa hauteur.
2.9.52026-07-30
- Corrigé : Un bloc de code clôturé à l'intérieur d'une citation est désormais rendu comme un vrai bloc de code, par le module choisi, imbriqué dans le bloc core/quote. Il sortait auparavant en paragraphe de texte brut.
2.9.42026-07-30
- Corrigé : Mode HTML autonome : c'est désormais tout le document qui sort sans trace de WordPress, plus seulement les blocs de code. Les commentaires de bloc et les classes wp-* disparaissent de la sortie (titres, listes, citations, tableaux, séparateurs), et la colonne du milieu s'intitule « SORTIE HTML » dans ce mode.
- Corrigé : Les deux pages web stylent maintenant les balises nues plutôt que les classes WordPress : le rendu est identique avec ou sans elles.
2.9.32026-07-30
- Corrigé : L'alignement lancé depuis une page web cale désormais toutes les colonnes à la hauteur du bloc dans la page cliquée, au lieu de centrer le bloc ailleurs : plus de décalage visuel entre le rendu MD et l'aperçu.
- Corrigé : Les blocs sans commentaire WordPress (rendu neutre du bloc « Rendu MD », HTML autonome) sont à nouveau repérables : le marquage se pose sur leur première balise, le clic et la visée les retrouvent.
2.9.22026-07-30
- Corrigé : Le bloc « Rendu MD » affiche désormais un rendu strict du Markdown : les blocs de code sortent en pre/code neutres, sans Code Block Pro, sans thème ni entête ni bouton, comme le ferait un moteur Markdown nu. Il sert de point de comparaison face au rendu Code Block Pro de l'aperçu web.
2.9.12026-07-30
- Ajouté : Mode HTML autonome : le bouton copier embarque désormais ses interactions dans un script inclus au bloc, sans dépendance. Copie par le presse-papiers moderne avec repli execCommand, survol, bascule vers la coche ou le libellé « Copié ! », clavier pris en charge. Chaque bloc branche son propre bouton via document.currentScript, plusieurs blocs cohabitent sur la même page.
2.9.02026-07-30
- Ajouté : Toutes les entêtes officielles de Code Block Pro : feux discrets, feux discrets sur bandeau, texte discret souligné et gélule, avec les gabarits SVG du plugin. La variante maison « verre » reste disponible.
- Ajouté : Pieds de bloc : texte à gauche ou à droite, texte libre dans les paramètres.
- Ajouté : Surlignage de lignes au format du plugin (« 1, 3, [5, 8] »), surlignage au survol, couleur personnalisable.
- Ajouté : Flou du code avec lignes gardées nettes et levée du flou au survol.
- Ajouté : Bouton copier réellement gravé dans le bloc : trois icônes (presse-papiers, deux carrés, texte), libellés personnalisables, code porté en textarea caché ou en attribut, copie branchée dans l'aperçu.
- Ajouté : Premier numéro de ligne, largeur de tabulation, vraies tabulations, taille de police bornée (clamp), bloc sans marges, échappement des shortcodes et encodage des caractères spéciaux à la copie.
- Ajouté : Classes CSS additionnelles et CSS additionnel injecté dans le style du bloc.
- Ajouté : Nouvel onglet « Code Block Pro » dans les paramètres, combo « Pied » dans la barre d'options.
- Modifié : Le mode « HTML personnalisé » devient « HTML autonome » : code coloré tout en styles en ligne, sans balise WordPress ni classe du plugin, à coller partout.
- Modifié : Les blocs core/code et core/preformatted sont habillés aux couleurs du thème choisi, balises WordPress conservées.
- Modifié : Les attributs du bloc Code Block Pro reflètent désormais toutes les options, pour une réédition fidèle dans Gutenberg.
- Modifié : Les clés d'entête reprennent celles du plugin (« simpleString » remplace la clé maison « simple-string », migration automatique des réglages).
2.8.02026-07-30
- Ajouté : Bloc « Rendu MD » (bleu) : aperçu web du Markdown seul, avec la même mécanique que l'aperçu des blocs (sélection miroir, alignement au clic, sombre/clair, couleurs propres, position de défilement conservée).
- Ajouté : Sélecteur de mise en page au centre de la barre d'actions, à la place du bouton Build : quatre segments numérotés aux couleurs des blocs, pour afficher ou masquer chaque colonne. Le dernier bloc visible ne peut pas être masqué.
- Ajouté : Liseré d'entête recomposé en direct à partir des couleurs des blocs affichés.
- Ajouté : Icône « i » derrière le titre BLOCS GUTENBERG : les statistiques détaillées du build (types de blocs, mots, lignes, caractères, module et thème) sont dans son infobulle. Elle passe à l'ambre quand les blocs ont été retouchés à la main.
- Ajouté : Icône d'enregistrement du profil courant dans la barre de titre, derrière le sélecteur de profil.
- Ajouté : Boutons CSS et HTML affichés sur la colonne des blocs quand l'aperçu web est replié.
- Modifié : Le bouton Build disparaît : la conversion est automatique, Ctrl+B reste disponible.
- Modifié : Interrupteur sombre/clair et bouton de couleurs réunis dans une capsule reliée, sur chaque bloc.
- Modifié : Arrondis des blocs de code alignés sur le liseré de sélection (6 px), en haut comme en bas, gravés dans le HTML du bloc et repris dans le CSS exporté.
- Modifié : Onglet de langage posé sur le bord supérieur du bloc, à la manière de l'onglet « Aligner » : angles ronds en haut seulement, bord inférieur fondu dans le bloc, sans anneau d'ombre. Même rendu en ligne et dans le CSS extrait.
- Modifié : Ascenseurs des colonnes texte resserrés : gouttière de 10 px, pouce de 6 px.
2.7.22026-07-30
- Corrigé : Le pouce de l'ascenseur de l'aperçu grossissait au survol. La règle de survol écrivait background:, la propriété raccourcie, qui remet background-clip à sa valeur initiale border-box. Le pouce récupérait donc sous le pointeur les quatre pixels de bordure transparente qui l'amincissaient au repos. Seul background-color est écrit désormais, et le rognage reste en place : taille identique au repos et au survol.
- Corrigé : Le reflet de sélection ne se voyait pas dans la colonne des blocs. Le remplacement du pinceau système de sélection inactive, tenté en 2.7.0, ne donnait rien. La surbrillance ne dépend plus du rendu interne de WPF : elle est dessinée par un calque posé sur la zone de texte (SurbrillanceMiroir.cs), fond translucide et liseré plein à la couleur de sélection du bloc, redessiné à chaque défilement et à chaque redimensionnement, rogné sur la partie visible de la zone. Il s'efface dès que la zone prend le focus, puisque sa sélection véritable s'affiche alors.
- Modifié : Un seul dessin d'ascenseur dans toute l'application, celui de l'aperçu : gouttière de quatorze pixels, pouce arrondi élargi de six à dix pixels, inséré de deux pixels de chaque côté, quarante-quatre pixels de long au minimum, sans piste visible ni bouton de pagination. Même dessin dans les deux colonnes de texte, dans la page d'aperçu, dans la fenêtre de paramètres et dans les listes.
- Modifié : Les ascenseurs prennent la couleur de bordure de leur bloc : turquoise dans la source, ambre dans les blocs, violet dans l'aperçu, bordure claire ailleurs. Assombrie de trente pour cent au repos, exacte au survol et pendant le glissement, sans aucun changement de taille. La couleur descend jusqu'au gabarit par une propriété attachée héritable (Ascenseur.cs), posée une seule fois sur la zone.
2.7.12026-07-30
- Modifié : Liseré d'entête inversé : vert, orange, violet, dans l'ordre des trois colonnes et dans le sens du dégradé du bouton Build.
- Modifié : Boutons de profil en icônes dans la fenêtre de paramètres : deux rectangles superposés pour dupliquer, un crayon pour renommer, une corbeille pour supprimer, chacun avec son infobulle. « Nouveau » garde son libellé, précédé d'un plus.
2.7.02026-07-30
- Corrigé : La sélection en miroir ne se voyait pas. La cause n'était pas la recherche mais l'affichage : une zone de texte WPF masque sa sélection dès qu'elle perd le focus, et la rend sinon dans le gris système. IsInactiveSelectionHighlightEnabled est activé sur les deux colonnes, et la teinte de sélection inactive prend celle du bloc. Le reflet était donc bien posé, simplement invisible.
- Corrigé : Recherche tolérante au balisage. Les trois colonnes n'écrivent pas la même chose : la source a ses astérisques et ses accents graves, les blocs ont leurs balises, l'aperçu n'a que le texte rendu. Une sélection est maintenant cherchée sous trois formes successives, de la plus fidèle à la plus dépouillée : telle quelle, puis sans balises ni marques de mise en forme, puis réduite à son plus long fragment lisible. <p>Trois scripts de surveillance… retrouve ainsi sa phrase dans la source, et Graph retrouve Graph dans les blocs. Les six cas du jeu d'essai aboutissent, dans les trois sens.
- Corrigé : Un reflet bloquait le suivant. La chaîne déjà reflétée était retenue seule, si bien que sélectionner le même texte depuis une autre colonne ne déclenchait plus rien. L'origine est désormais retenue avec elle.
- Corrigé : Bordure de l'aperçu en partie invisible, portée de un à deux pixels.
- Corrigé : Ascenseurs affinés au gabarit de celui de l'aperçu, six pixels de pouce visible, et écartés de neuf pixels des extrémités pour ne plus mordre sur les angles arrondis des colonnes.
- Modifié : Retour à la ligne coché par défaut.
- Modifié : Clignotement de reprise porté à trois secondes, dans les zones de texte comme dans l'aperçu.
- Modifié : L'interrupteur sombre ou clair passe dans l'entête de chaque colonne, à la place de l'ancienne icône, en version compacte avec sa lune et son soleil. L'icône d'engrenage posée à côté ouvre le menu des couleurs, qui ne porte plus que le fond, le texte et la sélection.
- Modifié : Les exports CSS et HTML passent au-dessus de l'aperçu, là où l'on juge du rendu avant d'exporter. La colonne des blocs ne garde que la copie.
2.6.12026-07-30
- Corrigé : Carré blanc dans l'angle des colonnes en thème sombre. Ce n'était pas un ascenseur mais l'angle du ScrollViewer : son gabarit d'origine y pose un rectangle rempli de SystemColors.ControlBrush, blanc, visible dès que les deux ascenseurs sont affichés. Le gabarit est réécrit, l'angle laissé transparent.
- Corrigé : Ascenseurs refondus. Bouts manquants, alignement approximatif et débordement hors des angles arrondis venaient de trois causes cumulées : une marge posée sur la piste, des boutons de pagination laissés à leur gabarit d'origine, donc dessinés en flèches à chaque extrémité, et un pouce dont les angles ne suivaient pas ceux de la piste. Tout est repris : pas de piste visible, un pouce arrondi de huit pixels flottant dans une gouttière de quatorze, inséré de trois pixels de chaque côté, quarante-quatre pixels de haut au minimum, et des boutons de pagination invisibles qui laissent la gouttière entière cliquable. La zone de texte les tient à l'écart de ses angles arrondis.
- Corrigé : Ascenseur de l'aperçu accordé aux deux autres, et élargi de onze à quatorze pixels : même gouttière, même insertion, même hauteur minimale, mêmes teintes au repos, au survol et pendant le glissement, adaptées au fond clair comme sombre. Son angle est lui aussi rendu transparent.
2.6.02026-07-29
- Corrigé : Angles carrés sous le bloc d'aperçu, la bonne fois. Les cinq tentatives précédentes s'obstinaient à arrondir un Border WPF autour du WebView2. C'était perdu d'avance : la surface d'un WebView2 est un rectangle natif qui recouvre tout ce qui est dessiné dessous, angles arrondis compris. Le Border est supprimé. Le liseré et les angles sont désormais peints par la page, qui remplit son pourtour de la couleur du fond de fenêtre, moyenne des arrêts du dégradé, pour s'y fondre. Plus rien de WPF ne passe sous le navigateur, donc plus rien à rogner.
- Corrigé : Sélection illisible. Le texte disparaissait sous le voile de sélection : SelectionTextBrush n'est pas honoré dans tous les cas, et l'opacité pleine l'avalait alors. L'opacité passe à 0,55, ce qui laisse le texte lisible même quand la couleur de texte de sélection est ignorée. Sa teinte se déduit de la luminance de la couleur de sélection, jamais du mode.
- Corrigé : Sélection à sens unique. Une sélection faite dans l'aperçu ne descendait pas vers les deux colonnes de texte. Elle est maintenant renvoyée à l'application au relâchement du bouton, puis posée dans la source et dans les blocs, chacun se plaçant sur l'endroit trouvé. Les trois sens fonctionnent.
- Ajouté : Sélecteur de couleur maison (SelecteurCouleur.cs), dans le thème de l'application : carré de saturation et de valeur, bande de teinte, saisie hexadécimale, quatorze couleurs courantes et un bouton « Auto » qui rend la main au calcul automatique. Le rendu suit le pointeur, on voit la couleur s'appliquer avant de refermer. La boîte de dialogue de couleur de Windows, inchangée depuis 1992, n'est plus utilisée.
- Ajouté : Trois couleurs réglables par bloc au lieu de deux : fond, texte, et fond de sélection, chacune avec sa liste de préréglages et son sélecteur libre. Un échantillon montre le texte de sélection sur son fond avant de valider.
- Modifié : Interrupteur à bascule au lieu de deux boutons radio pour le mode sombre ou clair, avec glissement de la pastille et libellés qui s'éclairent.
- Modifié : Le numéro de build quitte l'entête, qui ne porte plus que la version. Il reste dans le journal, seul endroit où il sert.
2.5.02026-07-29
- Ajouté : Clignotement de reprise. Après une édition dans la colonne source, les deux autres blocs voient leur fond passer brièvement au vert avant de revenir à sa couleur : on voit d'un coup d'œil que le contenu vient d'être repris, sans surveiller les colonnes. Retoucher les blocs fait clignoter l'aperçu seul. La teinte est mêlée au fond du bloc plutôt que plaquée par-dessus : turquoise discrète sur un fond sombre, vert tendre sur un fond clair, calculée d'après la luminance du fond réel. #15151d donne #1b4647, #ffffff donne #c1f3d3.
- Ajouté : Défilement doux dans les deux colonnes de texte. L'aperçu glissait déjà en douceur jusqu'au bloc visé, les zones de texte y sautaient d'un coup. WPF n'animant pas leur propriété de défilement, l'avancée se fait par petits pas de quinze millisecondes avec un amorti cubique en sortie, sur deux cent quatre-vingts millisecondes, ce qui retrouve le mouvement du navigateur.
- Modifié : L'onglet d'action du survol remonte au-dessus de la bordure, arrondi en haut seulement, bord inférieur collé au liseré sans interstice. Il était posé à l'intérieur du bloc, où il recouvrait la première ligne.
2.4.02026-07-29
- Ajouté : Sélection en miroir. Sélectionner du texte dans une colonne le sélectionne dans les deux autres, et amène chacune sur l'endroit trouvé. Les colonnes ne contenant pas le même texte, on ne peut pas transposer des positions : c'est la chaîne sélectionnée qui est recherchée. La recherche part du bloc correspondant, ce qui évite de tomber sur une autre occurrence du même mot ailleurs dans le document, et ne s'élargit à tout le texte qu'à défaut. Dans l'aperçu, la sélection est posée par le navigateur lui-même. Une sélection sur plusieurs lignes est ramenée à sa première ligne : les retours à la ligne diffèrent d'une colonne à l'autre, la chaîne complète ne s'y retrouverait pas. Au-delà de quatre cents caractères, rien n'est reflété. Le reflet attend cent quarante millisecondes de repos, sans quoi un glissement de souris relancerait une recherche à chaque pixel.
- Ajouté : Couleurs de sélection accordées au bloc. Chaque colonne prend une teinte de sélection déduite de la luminance de son fond réel, pas du mode déclaré : violet profond sur texte blanc pour un fond sombre, lavande claire sur texte presque noir pour un fond clair. Le curseur suit la même logique. Vérifié sur les quatre combinaisons, y compris les deux où le fond ne correspond pas au mode.
2.3.12026-07-29
- Corrigé : Un second clic renvoyait l'autre colonne tout en haut, et l'alignement était faux dès qu'on ne partait pas du Markdown. Deux erreurs superposées. D'abord la correction d'offset lisait GetRectFromCharacterIndex juste après ScrollToLine, alors que la mise en page du défilement n'avait pas encore eu lieu : le rectangle rendu se rapportait à l'ancienne position, et pour une cible située au-dessus le décalage devenait négatif, d'où la remontée en haut. Ensuite le sens inverse lisait la ligne du curseur par GetLineIndexFromCharacterIndex, qui rend une ligne visuelle : dès que le retour à la ligne est actif, elle ne correspond plus au découpage du Markdown sur lequel la table des blocs est bâtie. Le défilement calcule maintenant son offset, la hauteur d'une ligne se déduisant de l'étendue divisée par le nombre de lignes, et la ligne du curseur est comptée en sauts de ligne réels. Aller-retour vérifié sur les cent six blocs d'un document de cinq cent quatre-vingt-trois lignes, sans un écart, et chaque ligne de sortie visée tombe bien sur le commentaire d'ouverture de son bloc.
- Corrigé : Ascenseurs enfin utilisables. La piste avait la teinte du panneau, donc invisible, et le pouce était si étroit qu'il semblait flotter au milieu du texte. Piste franchement contrastée et arrondie, pouce large de quinze pixels avec quarante de haut au minimum, couleur d'accent pendant le glissement, boutons de pagination neutralisés pour que la piste entière reste cliquable. La zone de texte lui laisse la place sans le chevaucher.
- Modifié : La colonne d'aperçu est affichée par défaut.
- Modifié : Retour au temps réel. Le délai de synchronisation par défaut repasse de cinq secondes à 0,35, juste de quoi absorber la frappe : la conversion est instantanée même sur un document de deux mille lignes. Le réglage reste disponible pour une machine lente.
- Modifié : Les lignes de progression du délai sont retirées, sans objet à cette échelle de temps.
- Modifié : build.bat : le mode 2, publication autonome, devient le choix par défaut, et l'application est lancée automatiquement en fin de compilation, la fenêtre se refermant derrière.
2.3.02026-07-29
- Corrigé : Angle rougeâtre autour du bloc d'aperçu, pour de bon. La couleur du cadre était transmise à la page par Color.ToString(), qui rend #AARRGGBB. Le CSS lit cette notation à huit chiffres comme #RRGGBBAA : #FF101018 devenait donc du rouge vif à neuf pour cent d'opacité, visible dans les angles arrondis. La couleur est désormais formatée explicitement en #rrggbb.
- Corrigé : L'alignement ne suivait pas dans la colonne des blocs. La correspondance des lignes était juste, vérifiée sans un écart sur les quatre-vingt-dix-neuf blocs d'un document de cinq cent quatre-vingt-trois lignes. C'était ScrollToLine : il se contente de rendre la ligne visible, si bien qu'en venant du bas elle atterrissait sur la dernière ligne du cadre, tout ce qu'on voyait au-dessus appartenant à une autre section. Le défilement corrige maintenant à l'offset exact, par la position du caractère, et la ligne visée arrive en tête de colonne.
- Ajouté : Apparence propre à chaque bloc. Une icône lune ou soleil dans l'entête de chacune des trois colonnes. Un clic ouvre un menu portant le mode sombre ou clair, la couleur de fond et la couleur du texte, plus un champ de couleur personnalisée et un bouton de réinitialisation. On peut ainsi lire la source en clair et le balisage en sombre.
- Ajouté : Palette de couleurs de texte, filtrée par mode comme les fonds : sept encres claires pour les fonds sombres, six sombres pour les fonds clairs. « Automatique » laisse la luminance du fond décider.
- Ajouté : Chaque volet garde son apparence dans le profil, sous volet.<nom>.sombre, volet.<nom>.fond et volet.<nom>.texte. Les profils antérieurs voient leur ancien réglage d'aperçu repris.
- Modifié : La bascule sombre ou clair et les listes de couleurs quittent l'entête de l'aperçu : elles encombraient la barre et ne valaient que pour lui. Tout est passé dans le menu d'apparence, commun aux trois blocs.
2.2.02026-07-29
- Ajouté : Délai de synchronisation réglable, cinq secondes par défaut, dans les paramètres, onglet Module. Il remplace l'anti-rebond fixe de 350 millisecondes : la frappe n'est répercutée sur les autres colonnes qu'après ce temps d'inactivité. Zéro pour une répercussion immédiate, plafonné à cent vingt secondes.
- Ajouté : Ligne de progression en haut de la colonne éditée, aux couleurs de celle-ci, qui s'étire de gauche à droite sur toute la durée du délai. Elle repart de zéro à chaque frappe et disparaît à la répercussion. C'est le compteur de secondes, donné à voir plutôt qu'écrit.
- Ajouté : Le délai vaut aussi pour la colonne des blocs : ses retouches ne partent plus vers l'aperçu à chaque caractère, mais après la même attente, avec sa propre ligne de progression en ambre. L'édition n'est pas bidirectionnelle, et la barre d'état comme l'infobulle le disent maintenant clairement :
- Précision sur le sens de la répercussion : La colonne Markdown est la source. Ce qu'on y écrit reconstruit les blocs et l'aperçu.
- Précision sur le sens de la répercussion : La colonne des blocs est éditable, mais ses retouches ne vont que vers l'aperçu. Elles ne remontent pas vers le Markdown, faute de conversion inverse du balisage Gutenberg, et le prochain build les remplace.
- Précision sur le sens de la répercussion : L'aperçu n'est pas éditable au clavier. Il agit sur la source par ses actions souris et son menu contextuel.
2.1.12026-07-29
- Corrigé : Le clic alignait et transformait à la fois. Le premier clic d'un double clic déclenchait déjà l'alignement, avant que le double clic ne bascule le bloc en code : les deux actions se marchaient dessus. La bascule passe sur Maj + clic gauche, le double clic est libéré. Les profils créés avant cette version sont repris automatiquement.
- Corrigé : Le défilement sautait à chaque frappe. L'alignement était branché sur SelectionChanged, qui part au moindre déplacement du curseur, donc à chaque caractère saisi. Il se déclenche désormais sur un clic dans l'une des deux zones. Modifier du texte laisse les trois colonnes où elles sont.
- Corrigé : Défilement remis à zéro à chaque conversion. La position de lecture était restituée dans la foulée de l'affectation du texte, alors que la zone n'est pas encore remesurée : l'offset demandé était ramené à zéro. La restitution est différée à la fin de la mise en page.
- Corrigé : La colonne des blocs ne suivait pas. ScrollToLine se contente de rendre la ligne visible, souvent tout en bas de la zone, ce qui ne se voyait pas. Le défilement vise maintenant six lignes plus bas puis revient : le bloc se retrouve en tête de colonne. La correspondance des lignes entre les deux sorties est vérifiée, huit blocs sur huit sur le jeu d'essai.
- Corrigé : Coin rougeâtre autour de l'aperçu. La couleur de fond du WebView2 était posée en XAML ; la propriété étant une couleur System.Drawing, son convertisseur interprétait mal le littéral hexadécimal. Elle est désormais posée dans le code.
- Corrigé : Bordure violette de l'aperçu rétablie. Elle avait disparu en 2.0.0 avec le Border retiré pour chasser les artefacts d'angle.
- Corrigé : Bordure supérieure rognée des trois colonnes : marge de 5 pixels au-dessus de chacune.
- Corrigé : Pastille d'action rognée au survol d'un bloc dans l'aperçu. Elle débordait du cadre, dont le débordement horizontal est masqué. Elle est ramenée à l'intérieur du bloc, bornée en largeur, et son texte raccourci : « Aligner », « Bloc de code », « Menu », « Copier ».
- Corrigé : Onglet de langage passant sous la mise en évidence du survol. Il repasse au premier plan et n'est plus atténué.
2.1.02026-07-29
- Corrigé : Champs de texte tronqués sur leur bord droit dans la fenêtre de paramètres. Le style implicite des zones de texte vise les grandes zones d'édition : il active AcceptsReturn et laisse un ascenseur vertical automatique, dont le moignon venait rogner les petits champs d'une seule ligne. Un style ChampLigne dédié neutralise tout cela, et il est appliqué aux champs de l'entête, de la taille de police et de la hauteur de ligne.
- Corrigé : Menus contextuels laissés au style natif de Windows. Ils sont désormais dessinés comme le reste de l'application : fond sombre, angles arrondis, ombre portée, surbrillance à la couleur d'accent, coche et chevron en tracés vectoriels, et sous-menus défilants au-delà de 480 pixels.
- Corrigé : Toutes les cases décochées à l'ouverture des paramètres alors que tout était proposé. Un ensemble vide signifiait « tout », ce qui était illisible à l'écran. Un profil neuf coche désormais explicitement l'intégralité des thèmes, polices et codes. Un ensemble vidé volontairement reste vide, et le repli sur « tout proposer » demeure pour ne jamais présenter une liste déroulante sans contenu.
- Ajouté : Onglets dans la fenêtre de paramètres, un par bloc : Module, Thèmes, Polices, Codes, Raccourcis, Souris. Le sélecteur de filtre disparaît, devenu inutile. Chaque onglet a son propre défilement.
- Ajouté : Ombre et liseré clair sous la fenêtre de paramètres, obtenus des angles arrondis DWM avec une couleur de bordure claire : la fenêtre se détache enfin de celle qui la porte.
- Ajouté : Regroupement des langages par famille dans le menu contextuel, au-delà d'un seuil réglable dans les paramètres, dix par défaut. Cinq familles : Système, Programmation, Web, Données, Divers. En deçà du seuil, la liste reste à plat.
- Ajouté : Onglets et champs d'une ligne stylés dans le thème de l'application.
- Modifié : L'icône de corbeille devient le symbole de recyclage ♻, le bouton réinitialisant les deux colonnes plutôt que de supprimer quoi que ce soit.
2.0.12026-07-29
- Corrigé : Aperçu illisible : texte clair sur fond clair. La liste des fonds mélangeait clairs et sombres, si bien qu'on pouvait retenir « Solarized clair » alors que la bascule était sur sombre. Les couleurs de texte suivaient la bascule, pas le fond. Deux verrous, l'un pour éviter le cas, l'autre pour qu'il reste sans conséquence : 1. La liste des fonds est filtrée par le mode. Onze fonds sombres, neuf fonds clairs, sans recoupement. Elle est reconstruite au basculement, en conservant la couleur choisie si elle reste valable. 2. Les couleurs de texte sont déduites de la luminance du fond réellement appliqué, plus de la bascule. Une couleur personnalisée saisie à la main, donc hors de toute liste, reste lisible quel que soit le mode.
- Ajouté : Pastille de couleur devant chaque nom dans le sélecteur de fond.
- Ajouté : Fonds sombres ajoutés : One Dark, Monokai, Solarized sombre, Graphite, Encre. Fonds clairs ajoutés : Rosé Pine Dawn, Lin, Brume, Ivoire.
- Modifié : Le réglage retient désormais la couleur du fond, et non son rang dans la liste. Un rang ne désignait plus la même entrée d'une fois sur l'autre, la liste étant filtrée selon le mode. Les profils créés avec la 2.0.0 repartent sur le fond par défaut de leur mode.
2.0.02026-07-29
Version majeure : les réglages passent en base, avec des profils.
- Ajouté : Base SQLite MdToGutenberg.db à la racine du logiciel, en remplacement du fichier .sess. Tables des profils, des paramètres, des éléments actifs, des raccourcis et des actions souris. Un .sess laissé par une version antérieure est repris une fois au premier lancement, puis renommé en .sess.repris.
- Ajouté : Profils de réglages. Sélecteur dans la barre de titre, création, duplication, renommage et suppression depuis les paramètres. Le profil actif est retenu d'une session à l'autre. Chaque profil porte l'intégralité des réglages, jusqu'à la géométrie de la fenêtre et au dernier document ouvert.
- Ajouté : Fenêtre de paramètres, ouverte par l'engrenage en haut à gauche ou Ctrl+,, avec un filtre d'affichage : tous, paramètres du module, thèmes actifs, polices actives, codes actifs, raccourcis clavier, actions de la souris.
- Ajouté : Éléments actifs. Cocher les thèmes, polices et langages que l'on veut voir proposés. Aucun coché revient à tout proposer. Les listes déroulantes de la fenêtre principale et le menu contextuel de l'aperçu s'y conforment.
- Ajouté : Raccourcis clavier modifiables. Cliquer dans un champ, appuyer sur la combinaison. Échap efface. Les raccourcis sont reposés à chaud au changement de profil.
- Ajouté : Actions de la souris paramétrables pour l'aperçu : clic gauche, clic droit, double clic et clic du milieu, chacun associable à aligner les colonnes, basculer le bloc en code, ouvrir le menu contextuel, copier le bloc, ou rien.
- Ajouté : Menu contextuel dans l'aperçu, au clic droit : basculer le bloc en code ou l'en sortir, choisir le langage parmi les codes actifs, relancer la détection automatique, aligner les trois colonnes, copier la source du bloc, ouvrir les paramètres.
- Ajouté : Alignement des trois colonnes. Un clic dans l'aperçu, ou le déplacement du curseur dans l'une des deux zones de texte, amène les autres sur le même bloc : la source à sa ligne de Markdown, la sortie à sa ligne de balisage, l'aperçu sur l'élément, brièvement signalé. Bouton dédié dans la barre d'actions et Ctrl+L. Le convertisseur retient pour cela la ligne de sortie de chaque bloc.
- Modifié : Le clic gauche n'transforme plus le bloc en code. L'action se déclenchait par mégarde à la moindre navigation dans l'aperçu. Elle est rangée dans le menu contextuel et sur le double clic, le clic simple servant désormais à aligner les colonnes. Tout cela reste modifiable dans les paramètres.
- Modifié : Barre d'outils en icônes. Ouvrir, coller, vider, copier, extraire et enregistrer sont dessinés en Path vectoriel. Seuls trois libellés subsistent, MD, CSS et HTML, là où le format compte.
- Modifié : Ascenseurs élargis de 12 à 16 pixels, avec 2 pixels de marge au lieu de 3 : le pouce ne faisait plus que 6 pixels de large et se laissait difficilement attraper. Piste visible, pouce d'une hauteur minimale de 32 pixels, et couleur d'accent pendant le glissement. La zone de texte laisse la place à l'ascenseur, qui ne chevauche plus la bordure arrondie.
- Corrigé : Couleurs de bordure. Chaque colonne porte enfin la couleur de son marqueur : vert d'eau pour la source, ambre pour les blocs, violet pour l'aperçu. Le retour visuel de dépôt restitue la couleur de la colonne au lieu du gris commun.
- Corrigé : Cadre sombre derrière l'aperçu, visible dans les angles arrondis. Le WebView2 était réglé sur un fond transparent, ce qui laissait apparaître sa couleur de remplissage par défaut. Il reçoit maintenant le fond de l'application, et le Border intermédiaire, inutile, est retiré.
- Corrigé : Position de lecture perdue au changement de réglage. Les trois colonnes repartaient en haut du document à chaque modification d'un paramètre du module. Les décalages verticaux des deux zones de texte sont désormais relus et restitués autour de la conversion, et l'aperçu conserve le sien comme auparavant.
1.6.02026-07-29
- Ajouté : Clic sur un bloc dans l'aperçu. Survoler un bloc l'entoure et affiche ce que fera le clic. Cliquer le bascule en bloc de code, avec son langage deviné, sa coloration et son onglet, aux couleurs et au format du module. Cliquer un bloc de code le repasse en texte. La conversion est immédiate : source, blocs et aperçu sont refaits dans la foulée.
- Ajouté : Ctrl+Z opérant après un clic dans l'aperçu. La bascule ne remplace pas le texte de la zone source, elle passe par sa sélection, ce qui la fait entrer dans la pile d'annulation. Les raccourcis Ctrl+Z, Ctrl+Y et Ctrl+Shift+Z sont posés au niveau de la fenêtre, sans quoi ils n'atteindraient plus la source une fois le focus parti dans le navigateur. Ils agissent sur la zone qui a le focus, et à défaut sur la source.
- Ajouté : Traçabilité des blocs (BlocSource). Le convertisseur retient, pour chaque bloc produit, les lignes de Markdown dont il est issu. C'est ce qui permet au clic de retrouver le fragment de source exact à modifier.
- Ajouté : Colonne des blocs éditable. Une retouche à la main se répercute aussitôt dans l'aperçu, et l'entête de colonne passe en orange avec la mention « retouché à la main » pour rappeler que le prochain build remplacera le contenu.
- Ajouté : Position de lecture conservée dans l'aperçu d'un rendu à l'autre : la page remonte son défilement à l'application, qui le lui restitue. Sans quoi chaque frappe renvoyait en haut de page.
- Modifié : Bordures aux couleurs des colonnes : vert d'eau pour la source Markdown, ambre pour les blocs Gutenberg, violet pour l'aperçu, reprenant le marqueur de chaque entête. Le focus ne change plus la teinte, il épaissit le trait : la couleur reste un repère.
- Modifié : Bouton Build en dégradé du vert vers l'orange, dans le sens de la conversion, avec un halo assorti et un libellé sombre pour le contraste.
- Modifié : Bouton Build aligné sur la séparation des colonnes Markdown et Gutenberg. Sa marge est recalculée en continu, le séparateur étant déplaçable.
- Modifié : Le balisage de l'aperçu est désormais toujours généré à part de celui destiné à WordPress : il porte les attributs de repérage des blocs, que l'export ne doit pas contenir. Vérifié : l'export reste vierge de toute trace data-mdg-.
1.5.02026-07-29
- Corrigé : Interlignes doublés dans l'aperçu. Le rendu ajoutait une ligne vide entre chaque ligne de code alors que le Markdown d'origine n'en contenait aucune. La feuille de style de l'aperçu passait .line en display: block, alors que Shiki, et donc Code Block Pro, sépare déjà les lignes par un saut de ligne réel à l'intérieur du <pre>. Chaque saut comptait donc deux fois. La règle est retirée, avec un commentaire à l'endroit du piège et un avertissement dans la feuille exportée.
- Ajouté : Option « Afficher le langage ». Un petit onglet débordant du coin supérieur droit du bloc porte le langage. Écrit avec ses styles en ligne, il est conservé à l'export et s'affiche donc tel quel dans les pages WordPress. Sur écran étroit, la feuille d'appoint le replie à l'intérieur du bloc.
- Ajouté : Détection automatique du langage (Detection.Deviner), pour les clôtures Markdown écrites sans annotation. Dix-huit langages reconnus, tous ceux que colore l'application : bash, powershell, python, php, javascript, typescript, csharp, go, rust, sql, json, yaml, html, css, ini, nginx, diff, et texte brut. Indices décisifs d'abord — ligne shebang, <?php, <!DOCTYPE, structure JSON, entêtes de diff — puis notation sur des marqueurs caractéristiques. Sous un seuil minimal, rien n'est décidé : « text » plutôt qu'une coloration fausse. Taux de reconnaissance sur le jeu d'essai : 14 sur 14.
- Ajouté : Bouton « Extraire le CSS », en haut de la colonne des blocs. Copie dans le presse-papiers une feuille d'appoint adaptée aux réglages courants, et propose de l'enregistrer en .css. Elle couvre le conteneur, le pre, l'onglet de langage avec sa variante mobile, l'entête, la gouttière des numéros de ligne et les @font-face des deux polices, chaque section n'étant incluse que si l'option correspondante est active. Le balisage exporté portant déjà ses styles en ligne, cette feuille n'est pas obligatoire : elle sert à piloter l'apparence depuis le thème ou à corriger un thème qui impose ses propres règles sur les blocs de code.
- Modifié : Les angles arrondis du bloc sont portés par le pre et l'entête plutôt que par un overflow: hidden du conteneur, sans quoi l'onglet de langage serait rogné.
- Modifié : L'ombre du bloc passe en drop-shadow, qui épouse la forme réelle, onglet compris.
- Modifié : Le journal était déjà écrit à la racine du logiciel depuis la 1.4.0.
1.4.02026-07-29
- Ajouté : Fichier de session MdToGutenberg.sess, écrit à la racine du logiciel à la fermeture et relu au lancement suivant. Format clé = valeur, lisible et modifiable à la main. Sont conservés : module, thème, police, entête, mode de numérotation, toutes les cases à cocher, l'état et la largeur de la colonne d'aperçu, le mode sombre ou clair, le fond choisi et le fond personnalisé, la géométrie de la fenêtre y compris l'état agrandi, et le dernier document ouvert. La position restituée est bornée à l'écran : une fenêtre enregistrée sur un moniteur débranché depuis ne disparaît pas hors champ.
- Ajouté : Entêtes du module rendus dans le balisage : headlights (trois pastilles de terminal), simple-string (libellé, le nom du langage par défaut) et glass (bandeau translucide s'adaptant aux thèmes clairs comme sombres). Ils sont écrits avec leurs styles en ligne, donc visibles dans l'aperçu comme sur le site, sans dépendre de la feuille de style du plugin.
- Ajouté : Polices du module réellement chargées. JetBrains Mono et Fira Code, les deux polices à ligatures embarquées par Code Block Pro, sont incluses dans l'exécutable et injectées en base64 dans l'aperçu par des règles @font-face. Sans cela le navigateur ne connaissait pas ces familles et retombait sur une police par défaut : le rendu ne ressemblait pas à celui du module.
- Ajouté : Angles arrondis sur le bloc d'aperçu. Un WebView2 est un HWND natif qu'un CornerRadius de Border WPF ne rogne pas : c'est donc la page elle-même qui dessine le cadre arrondi, sur un fond reprenant la couleur du panneau de l'application.
- Modifié : Application portable. Tout ce que le logiciel écrit se trouve désormais à côté de l'exécutable : MdToGutenberg.sess, le dossier webview2 du profil du moteur d'aperçu, et le dossier journaux. Repli automatique sur %LOCALAPPDATA% puis %TEMP% si la racine est en lecture seule, sous « Program Files » par exemple.
- Modifié : Liste des polices corrigée. Elle proposait cinq familles dont trois que le plugin n'embarque pas. Code Block Pro n'en propose que trois : JetBrains Mono, Fira Code, et la police à chasse fixe du système.
- Modifié : Numéros de ligne en mode « Gérés par le plugin ». Ce mode n'écrit pas les numéros dans le HTML, c'est la feuille de style du plugin qui les dessine, et elle n'existe pas dans l'aperçu. L'aperçu est donc regénéré avec les numéros gravés : ce qui est montré correspond au rendu du site. Le balisage destiné à WordPress, lui, reste inchangé avec ses attributs et ses classes.
1.3.12026-07-29
- Corrigé : Le pare-feu s'activait à l'ouverture de la colonne d'aperçu. msedgewebview2.exe ouvrait des connexions vers Microsoft dès son démarrage, sans aucun rapport avec le contenu affiché : mise à jour de composants, SmartScreen, télémétrie, synchronisation, hints d'optimisation. La page d'aperçu est pourtant autonome, sans police distante, sans image ni script externe. Trois verrous posés, du plus général au plus strict : 1. Moteur bridé au lancement. L'environnement WebView2 est créé explicitement avec une vingtaine d'arguments Chromium qui coupent les services réseau : --disable-background-networking, --disable-component-update, --disable-sync, --disable-domain-reliability, --no-pings, --metrics-recording-only, --safebrowsing-disable-auto-update, et un --disable-features couvrant SmartScreen, Translate, MediaRouter, AutofillServerCommunication, OptimizationHints et les composants Edge inutiles ici. 2. Réglages du contrôle. Vérification de réputation, saisie automatique, enregistrement des mots de passe, objets hôtes et extensions désactivés. Prévention du pistage activée. 3. Filet de sécurité. Un filtre WebResourceRequested sur * refuse en 403 toute requête dont l'URI n'est pas data:, about: ou blob:, et NavigationStarting refuse toute navigation hors de la page injectée. Le blocage est journalisé, donc visible si quelque chose tentait malgré tout de sortir.
- Modifié : WebView2 tourne désormais dans un profil isolé, %LOCALAPPDATA%\MdToGutenberg\webview2, au lieu du profil partagé par défaut à côté de l'exécutable. Interface du moteur forcée en français.
1.3.02026-07-29
- Ajouté : Coloration syntaxique réelle, jeton par jeton, dans les blocs Code Block Pro. Jusqu'ici le code sortait en une seule couleur, celle du texte du thème : le rendu ne reprenait pas le design du module.
- Ajouté : Conversion/Palette.cs : les couleurs de jeton des 28 thèmes, extraites des thèmes Shiki officiels embarqués par Code Block Pro. Les portées TextMate sont résolues comme le fait VS Code, la règle au sélecteur préfixe le plus long l'emportant, et à longueur égale la plus tardive du fichier. Vingt-et-un types de jeton par thème, plus l'indicateur d'italique des commentaires.
- Ajouté : Conversion/Coloration.cs : tokeniseur sans dépendance externe. Un moteur générique paramétré par langage, plus des analyseurs dédiés là où la structure l'exige.
- Ajouté : Générique : bash, sh, zsh, python, php, javascript, typescript, jsx, tsx, csharp, sql, powershell, go, rust, ini, toml, conf, dotenv, nginx, apache.
- Ajouté : Dédiés : json (clés distinguées des valeurs), yaml (clés, ancres, listes), html, xml, svg, vue (balises et attributs), css, scss, less (sélecteurs, propriétés, valeurs), diff et patch.
- Ajouté : Reconnaissance des commentaires de ligne et de bloc, chaînes simples et multilignes avec échappements, nombres décimaux, hexadécimaux, binaires et suffixés, variables préfixées ($ en shell, PHP et PowerShell), appels de fonction, mots-clés de contrôle, de stockage, types, constantes et fonctions natives.
- Ajouté : Les commentaires passent en italique sur les thèmes qui le prévoient. Le bloc arrive coloré dans WordPress. Il n'est plus nécessaire de le rouvrir dans Gutenberg et de rebasculer le sélecteur de langage pour déclencher Shiki. La colonne d'aperçu affiche donc elle aussi le rendu final, puisqu'elle réutilise le même codeHTML. Le tokeniseur vise un rendu fidèle sur les langages courants, pas l'exactitude d'une grammaire TextMate complète. Sur des constructions exotiques il colorera moins finement que Shiki, sans jamais altérer le code : l'intégrité du texte est vérifiée, la concaténation des jetons redonne toujours la source exacte. Un langage inconnu sort dans la couleur de texte du thème, comme avant.
1.2.22026-07-29
- Corrigé : build.bat, mode 2 : MSBUILD : error MSB1001: Commutateur inconnu. --no-incremental est un commutateur de dotnet build, pas de dotnet publish, qui le transmet tel quel à MSBuild et échoue. Il avait été ajouté en 1.1.0 pour forcer la régénération du numéro de build horodaté. Le mode publication efface désormais obj et bin avant de publier, ce qui produit le même effet sans commutateur invalide. Le mode 1, en dotnet build, garde --no-incremental, qui y est légitime.
- Modifié : AllowedReferenceRelatedFileExtensions vidé : les fichiers .xml de documentation des paquets ne sont plus recopiés dans le dossier de publication. La publication autonome win-x64 se réduit à MdToGutenberg.exe et CHANGELOG.md.
1.2.12026-07-29
- Ajouté : Journal fichier (Journal.cs), écrit dès le lancement, avant même la création de la fenêtre. Emplacement : %LOCALAPPDATA%\MdToGutenberg\journaux\mdtogutenberg-aaaammjj.log, avec repli à côté de l'exécutable puis dans %TEMP% si le dossier est inaccessible. Rotation automatique à 15 jours.
- Ajouté : Entête de journal complet à chaque démarrage : version, numéro de build, version de Windows, version du runtime .NET, répertoire d'exécution, arguments.
- Ajouté : Gestionnaires d'exception globaux posés dans le constructeur de App, donc avant l'analyse de App.xaml : DispatcherUnhandledException, AppDomain.UnhandledException, TaskScheduler.UnobservedTaskException, et FirstChanceException en mode verbeux. Toute exception est journalisée avec sa pile complète et ses causes internes.
- Ajouté : Boîte de dialogue d'erreur au lieu d'une fermeture silencieuse : type et message de l'exception, chemin du journal, et proposition d'ouvrir le dossier.
- Ajouté : Argument de ligne de commande --verbeux : abaisse le seuil du journal à Trace et trace toutes les exceptions, y compris celles rattrapées par du code d'infrastructure.
- Ajouté : Bouton Journal dans la barre d'état, ouvre l'explorateur sur le fichier courant.
- Ajouté : Journalisation des étapes sensibles : analyse du XAML, initialisation de WebView2 avec sa version, application du chrome natif, conversions, lectures et écritures de fichiers.
- Corrigé : Plantage au démarrage. La bascule sombre/clair portait IsChecked="True" dans le XAML. WPF déclenche Checked au moment où il lit cet attribut, c'est-à-dire pendant InitializeComponent, avant que les enfants de la bascule et les autres contrôles nommés n'existent. Le gestionnaire touchait TraceMode et ZoneSortie, tous deux encore nuls, d'où une NullReferenceException au lancement. Correctif : garde-fou _initialise sur tous les gestionnaires susceptibles de partir pendant l'analyse du XAML, et application explicite de l'état des bascules à la fin du constructeur, une fois la fenêtre complète.
- Corrigé : InitializeComponent est désormais encadré par un try qui journalise l'échec avant de laisser remonter l'exception, ce qui rend ce type de panne immédiatement lisible.
- Corrigé : L'application du chrome natif DWM ne peut plus interrompre le démarrage : l'échec est journalisé en avertissement et la fenêtre reste simplement à angles droits.
1.2.02026-07-29
- Ajouté : Icône d'application 256 px, générée en multi-résolutions (16 à 256) dans Ressources/MdToGutenberg.ico, posée sur l'exécutable, la fenêtre et la barre de titre.
- Ajouté : Troisième colonne d'aperçu HTML, dépliable par l'icône « Aperçu » ou Ctrl+P. Rendu par WebView2, avec une feuille de style qui reproduit les styles WordPress et Code Block Pro, y compris la gouttière des numéros de ligne.
- Ajouté : Bascule sombre / clair de l'aperçu, avec icône lune ou soleil.
- Ajouté : Couleur de fond de l'aperçu : dix préréglages plus une saisie personnalisée au format #rrggbb, avec pastille de contrôle et validation de la saisie.
- Ajouté : 28 profils de couleur de Code Block Pro au lieu de 10. Les couleurs bgColor et textColor sont extraites des thèmes Shiki officiels embarqués par le plugin, donc strictement identiques à ce qu'il écrit lui-même. Référence : https://code-block-pro.com/themes
- Ajouté : Option d'enregistrement de la page d'aperçu complète, autonome et stylée, en plus des seuls blocs Gutenberg.
- Ajouté : build.bat : quatrième mode, archive ZIP versionnée des sources, nommée MdToGutenberg-vX.Y.Z-<build>.zip.
- Ajouté : Raccourci Ctrl+P pour la colonne d'aperçu.
- Modifié : Bouton Build recentré au milieu de la barre d'actions.
- Modifié : Copier le résultat et Enregistrer en .html déplacés en haut à droite de la colonne des blocs, là où ils s'appliquent.
- Modifié : Le compteur de blocs passe à côté du titre de la colonne.
- Corrigé : Icônes de la barre de titre invisibles. Elles s'appuyaient sur les glyphes des polices Segoe Fluent Icons et Segoe MDL2 Assets, absentes de certains postes, d'où les carrés vides. Tout est redessiné en Path vectoriel, sans dépendance de police.
- Corrigé : Angles arrondis masqués par un cadre noir. Un Border ne rogne pas ses enfants sur son CornerRadius : la barre de titre, carrée, repeignait les coins. Surtout, AllowsTransparency="True" est incompatible avec WebView2, qui est un HWND natif et ne s'affiche pas dans une fenêtre en couches. La fenêtre passe donc sur WindowChrome : redimensionnement, accrochage et agrandissement natifs de Windows, angles arrondis et ombre demandés à DWM (DWMWA_WINDOW_CORNER_PREFERENCE, DWMWA_BORDER_COLOR), et bornage de la fenêtre agrandie à la zone de travail via WM_GETMINMAXINFO. Voir ChromeFenetre.cs.
- Corrigé : Les huit poignées de redimensionnement maison disparaissent, le redimensionnement est désormais celui de Windows. La colonne d'aperçu utilise le paquet Microsoft.Web.WebView2 et le runtime WebView2 Evergreen, présent d'office sur Windows 11 et sur Windows 10 à jour. S'il manque, l'aperçu affiche un message et un lien de téléchargement, le reste de l'application fonctionne normalement. Les angles arrondis et l'ombre native viennent de DWM : sur Windows 10 la fenêtre reste à angles droits. Le reste de l'interface est identique.
1.1.02026-07-29
- Ajouté : Option Retour à la ligne appliquée aux deux colonnes, raccourci Ctrl+W.
- Ajouté : Sélecteur Numéros de ligne à trois modes : Aucun, Gérés par le plugin, Gravés dans le HTML.
- Ajouté : Dépôt de fichier depuis l'explorateur Windows sur les deux colonnes, avec retour visuel sur la bordure pendant le survol.
- Ajouté : Collage d'un fichier copié dans l'explorateur : Ctrl+V charge son contenu au lieu de coller son chemin.
- Ajouté : Build lancé automatiquement au chargement d'un fichier, quel que soit l'état de la case « Build automatique ».
- Ajouté : Numéro de version et de build affiché dans l'entête de la fenêtre, dans la barre d'état et dans le titre de la fenêtre (InfoVersion.cs).
- Ajouté : Barre d'état avec témoin coloré : vert pour un succès, turquoise pour une information, rose pour une erreur.
- Ajouté : Compteur de lignes et de caractères sur la colonne source.
- Ajouté : Raccourci Ctrl+B pour lancer le build.
- Ajouté : Ce fichier CHANGELOG.
- Modifié : Interface entièrement repensée : fenêtre sans bordure système, coins arrondis, fond transparent, ombre portée, barre de titre personnalisée avec pastille dégradée et liseret tricolore.
- Modifié : Listes déroulantes lisibles : template complet, texte clair sur fond sombre, survol et sélection colorés. Corrige le texte illisible de la version 1.0.0.
- Modifié : Cases à cocher, boutons, ascenseurs et infobulles redessinés dans le même thème.
- Modifié : Redimensionnement par huit poignées sur le pourtour, double-clic sur la barre de titre pour agrandir ou restaurer.
- Corrigé : Numéros de ligne sans effet. La version 1.0.0 se contentait de poser l'attribut lineNumbers du bloc, ce qui ne suffit pas : le rendu dépend de classes CSS que le plugin attend sur le pre et sur le conteneur. Le mode Gérés par le plugin pose désormais lineNumbers, les classes code-block-pro-line-numbers et has-line-numbers, l'attribut data-code-block-pro-line-numbers et un data-line par ligne. Le mode Gravés dans le HTML écrit les numéros en dur dans le bloc et fonctionne quelle que soit la version du plugin ou de sa feuille de style.
- Corrigé : La marge d'ombre est retirée en plein écran, la fenêtre ne déborde plus sous la barre des tâches. En mode Gravés dans le HTML, les numéros font partie du contenu du bloc. Le bouton copier de Code Block Pro s'appuie sur une zone de texte cachée (copyButtonUseTextarea), mais si cette option est désactivée côté plugin, les numéros partiront dans le presse-papiers. Préférer alors le mode Gérés par le plugin.
1.0.02026-07-29
- Ajouté : Application WPF .NET 9 à deux colonnes : Markdown à gauche, blocs Gutenberg à droite.
- Ajouté : Détection automatique des blocs de code délimités par et ~~~, avec langage.
- Ajouté : Quatre modules cibles : Code Block Pro, core/code, core/preformatted, core/html.
- Ajouté : Dix modèles de style Shiki pilotant theme, bgColor et textColor.
- Ajouté : Conversion des titres, paragraphes, listes, tableaux GFM, citations et séparateurs.
- Ajouté : Balisage en ligne : code, gras, italique, gras italique, barré, liens.
- Ajouté : Sérialisation JSON conforme à wp_json_encode avec JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS et JSON_HEX_QUOT.
- Ajouté : Build automatique avec anti-rebond de 350 ms.
- Ajouté : Ouverture d'un .md, copie du résultat, enregistrement en .html.
- Ajouté : Script build.bat : compilation Release, publication autonome, nettoyage.
Avis
Pour déposer un avis, saisissez le code affiché dans la fenêtre À propos du logiciel (il change toutes les cinq minutes).
Aucun avis pour le moment. Soyez le premier à donner le vôtre.