Come posso visualizzare l'anteprima di Markdown live mentre la scrivo?


14

Come posso farlo in un buffer diverso o anche nel buffer corrente?

Sto cercando di fare Github README.md e altri rendering Github di Markdown (per note e simili),


A prima vista questo sembra semplice da fare usando markdown-exporte eww, guidato da un gancio e un timer di notifica di modifica. Ma sembra che la parte interessante sarebbe determinare a quale parte del ewwbuffer corrisponde HTML pointnel buffer di markdown (in modo che possano scorrere "in sincronia").
Greg Hendershott,

Risposte:


4

Ecco una soluzione piuttosto lunga ma efficiente.

  1. Installa simple-httpde M-x httpd-start.
  2. Installa markdowndal gestore dei pacchetti del tuo sistema.
  3. Apri il tuo buffer markdown ed esegui markdown-export. Questo produce un file HTML nella stessa directory.
  4. Apri quel file HTML.
  5. Installa impatient-modee M-x impatient-mode.
  6. Torna al tuo file markdown.

Infine, valuta questo codice:

(defun markdown-export-continuous (&optional output-file)
  (interactive)
  (let ((input-file (buffer-file-name))
        (output-file (markdown-export-file-name ".html")))
    (when output-file
      (with-current-buffer (find-file-noselect output-file)
        (erase-buffer)
        (insert
         (shell-command-to-string
          (format "markdown %s" input-file)))
        (save-buffer)))))
(add-hook 'after-save-hook 'markdown-export-continuous t t)

Nota che l' add-hookistruzione deve essere locale per Markdown, quindi eseguila in quel buffer.

Dopo tutto questo, apri il browser http://localhost:8080/imp/e si aggiornerà ogni volta che lo farai C-x C-s.


Sto vedendo il file html in localhost: 8080 / imp, ma devo fare clic su di esso per vederlo e Cx Cs non sembra aggiornarsi. O è previsto?
CodeSammich,

Inoltre, invece di limitarsi all'esportazione markdown, esiste un modo per eseguire invece l'esportazione markdown al gusto di Github?
CodeSammich,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.