Як мені зробити попередній попередній перегляд Markdown, коли я його пишу?


14

Як я можу це зробити або в іншому буфері, або навіть у поточному буфері?

Я намагаюсь зробити Github README.md та інший Github-рендерінг Markdown (для нотаток та іншого),


На перший погляд, це здається простим, використовуючи markdown-exportта ewwкеруючись гаком сповіщень про зміни та таймером. Але здається, що цікавою частиною було б визначити, якій частині ewwбуфера HTML відповідає pointв буфері відмітки (щоб вони могли прокручуватись "синхронізовано").
Грег Хендершот

Відповіді:


4

Ось досить довге, але ефективне рішення.

  1. Встановити simple-httpdта M-x httpd-start.
  2. Встановіть markdownіз менеджера пакунків вашої системи.
  3. Відкрийте буфер відмітки та запустіть markdown-export. Це створює HTML-файл у тому самому каталозі.
  4. Відкрийте цей HTML-файл.
  5. Встановити impatient-modeта M-x impatient-mode.
  6. Поверніться до файлу розмітки.

Нарешті, оцініть цей код:

(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.


Я бачу файл html у localhost: 8080 / imp, але мені потрібно натиснути на нього, щоб побачити його, і Cx Cs не здається оновити. Або це призначено?
CodeSammich

Окрім того, чи замість того, щоб тільки розмітити-експортувати, є спосіб зробити експорт маркірованої ароматизації Github?
CodeSammich

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.