Як я можу це зробити або в іншому буфері, або навіть у поточному буфері?
Я намагаюсь зробити 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
в буфері відмітки (щоб вони могли прокручуватись "синхронізовано").