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-httpd
e M-x httpd-start
.markdown
partir do gerenciador de pacotes do seu sistema.impatient-mode
e 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-hook
instruçã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-export
eeww
, baseado em um gancho e cronômetro de notificação de alterações. Mas parece que a parte interessante seria determinar a que parte doeww
HTML do buffer correspondepoint
no buffer de remarcação (para que eles pudessem rolar "em sincronia").