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