it-swarm.com.de

Wie kann ich eine Vorschau des Markdowns in Emacs in Echtzeit anzeigen?

Ich benutze Spacemacs und suche nach einem Plugin, um eine Vorschau von Markdown in Echtzeit anzuzeigen. Ich habe ein Plugin markdown-preview-eww gefunden, aber es erfordert einen Edelstein und ich ziehe es vor, Ruby nicht zu installieren.

Der Markdown-Modus exportiert nur md in HTML, und es kann keine Vorschau des Markdowns in Echtzeit angezeigt werden. Außerdem möchte ich keine Datei ohne meine Zustimmung generieren.

Gibt es ein Plugin für die Vorschau von markdown in emacs? Oder verwenden alle den org-Modus in emacs und nicht in markdown?

31
honmaple

Hier sind einige Lösungen aufgeführt: http://wikemacs.org/wiki/Markdown#Live_preview_as_you_type .

Zwei davon erfordern zusätzliche Pakete: das Ruby-Paket, das Sie erwähnt haben, oder eine npm-Bibliothek (nodejs, javascript) für livedown-mode.

Es gibt jedoch zwei reine Elisp-Optionen! Die einfachste ist flymd und die andere heißt ungeduldig-Modus . Beide sind in Melpa erhältlich. 

Flymd

Installieren Sie es mit package.el (M-x package-install RET flymd RET) und rufen Sie einfach M-x flymd-flyit auf. Es öffnet den Browser mit dem gerenderten Markdown.

Wir können Auto-Reloading und Github Markdown aktivieren/deaktivieren.

Ungeduldiger Modus

Es ist für die Arbeit mit HTML gedacht, aber das Dokument gibt einen Trick, damit es mit Markdown funktioniert. Es funktioniert auch wie ein Zauber, erfordert jedoch einen Konfigurationsschritt:

  • Installieren Sie impatient-mode mit M-x package-install RET impatient-mode RET, vorausgesetzt, Sie haben package.el für die Verwendung des Repository " melpa " konfiguriert.
  • Starten Sie den Webserver eines Emacs mit M-x httpd-start.
  • Starten Sie den ungeduldigen Modus in den Puffern, die Sie für die Live-Vorschau interessieren: M-x impatient-mode.
  • Öffnen Sie Ihren Browser für localhost: 8080/imp. Sie sehen die Liste der Puffer, wenn der Modus aktiviert ist. Klicken Sie auf eins: Sie sehen das Live-Rendering des Puffers.

Um die Markdown-Konvertierung zu aktivieren, folgen wir Wikemacs:

  • Definieren Sie diese Elisp-Funktion wie in Ihrer Init-Datei:

    (defun markdown-html (buffer)
      (princ (with-current-buffer buffer
        (format "<!DOCTYPE html><html><title>Impatient Markdown</title><xmp theme=\"united\" style=\"display:none;\"> %s  </xmp><script src=\"http://strapdownjs.com/v/0.2/strapdown.js\"></script></html>" (buffer-substring-no-properties (point-min) (point-max))))
      (current-buffer)))
    
  • Weisen Sie den ungeduldigen Modus an, ihn zu verwenden: M-x imp-set-user-filter RET markdown-html RET.

  • Gehen Sie zurück zu Ihrem Browser, es funktioniert!
29
Ehvince

Мне нравится это более простой подход, который не требует ни другого пакета, ни браузера:

  • Sie können den M-x markdown-other-window-Code in einem Ordner speichern.

  • Es wurde kein M-x html-mode und kein HTML-Code M-x sgml-tags-invisible angegeben.

Zum Anfang, zum Ende des HTML-Codes, zum Ende des Codes markdown-other-windowC-cC-cmв буфере уценки.

5
marcanuy

Sie können mein Emacs Application Framework verwenden: https://github.com/manateelazycat/emacs-application-framework

Der Browser ist in den Emacs eingebettet. Dann können Sie Markdown auf der linken Seite und eine Vorschau auf der rechten Seite schreiben.

Screenshot unter: https://github.com/manateelazycat/emacs-application-framework/blob/master/screenshot/markdown_previewer.gif

Wie Sie eaf installieren, schauen Sie unter https://github.com/manateelazycat/emacs-application-framework/blob/master/README.md nach.

2
ManateeLazyCat

Ich würde gerne empfehlen Grip-Modus : Sofortige Markdown/Org-Vorschau mit Github-Geschmack.

0
seagle0128

Sie können dies jetzt in Spacemacs mit markdown-live-preview-mode oder SPC m c p tun.

0
Jin

Die Antwort von @Hevvince inspirierte mich dazu, die Markdown-html-Funktion ein wenig zu ändern, um genau dieselbe Ansicht wie in Github.com bereitzustellen.

(defun markdown-html (buffer)
  (princ (with-current-buffer buffer
           (format "<!DOCTYPE html><html><script src=\"https://cdnjs.cloudflare.com/ajax/libs/he/1.1.1/he.js\"></script><link rel=\"stylesheet\" href=\"https://assets-cdn.github.com/assets/github-e6bb18b320358b77abe040d2eb46b547.css\"><link rel=\"stylesheet\" href=\"https://assets-cdn.github.com/assets/frameworks-95aff0b550d3fe338b645a4deebdcb1b.css\"><title>Impatient Markdown</title><div id=\"markdown-content\" style=\"display:none\">%s</div><div class=\"markdown-body\" style=\"max-width:968px;margin:0 auto;\"></div><script>fetch('https://api.github.com/markdown', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ \"text\": document.getElementById('markdown-content').innerHTML, \"mode\": \"gfm\", \"context\": \"knit-pk/homepage-nuxtjs\"}) }).then(response => response.text()).then(response => {document.querySelector('.markdown-body').innerHTML = he.decode(response)}).then(() => { fetch(\"https://Gist.githubusercontent.com/FieryCod/b6938b29531b6ec72de25c76fa978b2c/raw/\").then(response => response.text()).then(eval)});</script></html>"
                   (buffer-substring-no-properties (point-min) (point-max))))
         (current-buffer)))

Funktion, die den ungeduldigen Modus aktiviert und den imp-user-filter automatisch auf markdown-html setzt.

(defun markdown-preview-like-god ()
  (interactive)
  (impatient-mode 1)
  (setq imp-user-filter #'markdown-html)
  (cl-incf imp-last-state)
  (imp--notify-clients))

Wie benutzt man:

  1. M-x http-start
  2. Auf .md Puffer M-x markdown-preview-like-god
  3. Gehe zu localhost:8080/imp
0
FieryCod