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?
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.
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.
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:
M-x package-install RET impatient-mode RET
, vorausgesetzt, Sie haben package.el für die Verwendung des Repository " melpa " konfiguriert.M-x httpd-start
.M-x impatient-mode
.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
.
Мне нравится это более простой подход, который не требует ни другого пакета, ни браузера:
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-window
C-cC-cmв буфере уценки.
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.
Ich würde gerne empfehlen Grip-Modus : Sofortige Markdown/Org-Vorschau mit Github-Geschmack.
Sie können dies jetzt in Spacemacs mit markdown-live-preview-mode
oder SPC m c p
tun.
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:
M-x http-start
M-x markdown-preview-like-god
localhost:8080/imp