Como posso fazer isso em um buffer diferente ou mesmo no buffer atual?
Estou tentando fazer o Github README.md e outras renderizações do Markdown no Github (para anotações e coisas assim),
Como posso fazer isso em um buffer diferente ou mesmo no buffer atual?
Estou tentando fazer o Github README.md e outras renderizações do Markdown no Github (para anotações e coisas assim),
Respostas:
Aqui está uma solução bastante longa, mas eficiente.
simple-httpde M-x httpd-start.markdownpartir do gerenciador de pacotes do seu sistema.impatient-modee M-x impatient-mode.Por fim, avalie este código:
(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)
Observe que a add-hookinstrução precisa ser local para o Markdown, portanto, execute-a nesse buffer.
Depois de tudo isso, abra o navegador http://localhost:8080/imp/e ele será atualizado sempre que você C-x C-s.
No modo de remarcação 2.1 , essa funcionalidade é fornecida em markdown-live-preview-mode(vinculada a C-c C-c l).
Ele usa eww para renderizar o HTML. Captura de tela:
markdown-exporteeww, baseado em um gancho e cronômetro de notificação de alterações. Mas parece que a parte interessante seria determinar a que parte doewwHTML do buffer correspondepointno buffer de remarcação (para que eles pudessem rolar "em sincronia").