49 votes

Render Markdown dans le tampon Emacs

Est-il possible de présenter Markdown rendus dans Emacs d'une mémoire tampon à l'aide d'Emacs propre tampon texte fonctionnalités de mise en forme? Emacs dans des environnements graphiques, a rich text capacités de présentation (les styles de polices, des couleurs, des liens et même des images), donc ça devrait être tout à fait possible. Existe-t-il implémentations?

Notez que l'idée est d'avoir le rendu de la Démarque être natif Emacs texte mis en forme qui peut être commandé et géré comme n'importe quel autre texte Emacs. Par conséquent, des solutions de rendu d'une image qui est incorporé dans un tampon d'Emacs ne sont pas souhaitable ici.

Notez également que ce n'est pas un mode pour l'édition de Markdown, mais pour la présentation de rendu Markdown dans un tampon d'Emacs. Il doit de préférence être un pur Emacs Lisp solution pour la portabilité.

21voto

Sebastien Varrette Points 2277

Personnellement, j'utilise le flux de travail suivant:

  • exécuter sur un C-c C-c m pour exécuter Démarque sur le tampon courant et de prévisualiser le résultat dans un autre tampon.
  • déplacer html-mode sur cette autre tampon (M-x html-mode)
  • masquer les balises html pour afficher quelque chose de proche de la sortie (M-x sgml-tags-invisible)

Puis, à chaque fois que vous souhaitez actualiser le rendu, il suffit de courir à nouveau C-c C-c m sur le démarque de la mémoire tampon.

Mais j'avoue que jusqu'à maintenant, pour des Réductions de l'édition/la prévisualisation, rien ne vaut pour moi Textmate et ses markdown panneau de prévisualisation. En fait, lors d'un point de vue personnel, le seul cas où je préfère courir Textmate plutôt que Emacs est quand je veux éditer les fichiers markdown. Mais le chemin pour avoir la même qualité de prévisualisation sur emacs n'est pas si difficile et probablement que je devrais enquêter sur elle. Comme je le vois, il est tout simplement:

  • obtenez de l'intérieur css utilisé par Textmate pour le rendu de l'aperçu
  • utilisation w3 ou w3m pour un aperçu de la démarque de sortie à l'aide de css

7voto

bastibe Points 3569

J'ai ceci dans mon .emacs fichier:

(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(markdown-header-delimiter-face ((t (:inherit font-lock-function-name-face :underline t :weight bold))) t)
 '(markdown-header-face-1 ((t (:inherit markdown-header-face :height 1.5))) t)
 '(markdown-header-face-2 ((t (:inherit markdown-header-face :height 1.3))) t)
 '(markdown-header-face-3 ((t (:inherit markdown-header-face :underline t :height 1.2))) t)
 '(markdown-header-face-4 ((t (:inherit markdown-header-face :underline t :height 1.1))) t)
 '(markdown-header-face-5 ((t (:inherit markdown-header-face :underline t))) t)
 '(markdown-header-face-6 ((t (:inherit markdown-header-face :underline t))) t))
(put 'set-goal-column 'disabled nil)

qui s'agrandit tous les titres. Markdown-mode lui-même qui va le mettre en italique étoilé du texte et des caractères gras double étoilé texte, ce qui permettra de vous y rendre. Cependant, il ne fera pas les caractères de contrôle invisible.

Si vous voulez, vous devriez probablement regarder dans l' à-peu-près lambda pour les exemples (comme Bozhidar Batsov suggéré)

7voto

Bozhidar Batsov Points 23298

Je suppose que vous pouvez utiliser le code source de latex-preview pour l'inspiration ou pretty-lambda (un logiciel beaucoup plus simple).

Vous pouvez également convertir le démarquage en HTML dans un processus en arrière-plan et prévisualiser le code HTML.

Tout est possible dans Emacs, mais tout n'est pas facile à réaliser :-)

5voto

Stefan Points 13308

En fonction du contexte dans lequel vous souhaitez voir le texte rendu, vous pourrez peut-être vous rapprocher de ce dont vous avez besoin en modifiant simplement les règles de verrouillage de police en mode de réduction.

4voto

Francesco Points 5760

En dehors de joli-lambda (qui a déjà été proposé plusieurs fois), vous pourriez regarder dans org-mode et sa syntaxe highliting règles. En particulier, l' org-hide-emphasis-markers variable n'est plus ou moins ce que vous voulez (voir, par exemple, comment org-faire-mettre l'accent sur les visages de masquer les caractères de balisage).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X