Как я могу сделать это в другом буфере или даже в текущем буфере?
Я пытаюсь сделать Github README.md и другие Github рендеринга Markdown (для заметок и тому подобное),
Как я могу сделать это в другом буфере или даже в текущем буфере?
Я пытаюсь сделать Github README.md и другие Github рендеринга Markdown (для заметок и тому подобное),
Ответы:
Вот довольно длинное, но эффективное решение.
simple-httpd
и M-x httpd-start
.markdown
из диспетчера пакетов вашей системы.impatient-mode
и M-x impatient-mode
.Наконец, оцените этот код:
(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)
Обратите внимание, что add-hook
оператор должен быть локальным по отношению к Markdown, поэтому запустите его в этом буфере.
После всего этого, откройте ваш браузер, http://localhost:8080/imp/
и он будет обновляться каждый раз, когда вы C-x C-s.
Начиная с режима уценки 2.1 , эта функциональность предоставляется markdown-live-preview-mode
(привязана к C-c C-c l
).
Он использует eww для рендеринга HTML. Скриншот:
markdown-export
иeww
, управляемым из ловушки уведомлений об изменениях и таймера. Но, похоже, интересной частью будет определение того, какой частиeww
буфера HTML соответствуетpoint
буфер уценки (чтобы они могли прокручиваться «синхронно»).