Round 117: Add 20 Markdown mode commands
ober
0137b11f82eacaedf2fae96610f6ea9285aee70e
--- a/docs/jemacs-vs-emacs.md +++ b/docs/jemacs-vs-emacs.md @@ -3889,6 +3889,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features | rcirc-cmd-topic | :orange_circle: | RCIRC set topic | | rcirc-cmd-away | :orange_circle: | RCIRC set away | +### Round 117 — Markdown Mode + +| Command | Status | Description | +|---------|--------|-------------| +| markdown-mode | :orange_circle: | Activate Markdown mode | +| markdown-export | :orange_circle: | Export to HTML | +| markdown-live-preview-mode | :orange_circle: | Toggle live preview | +| markdown-insert-header-atx-1 | :orange_circle: | Insert # heading | +| markdown-insert-header-atx-2 | :orange_circle: | Insert ## heading | +| markdown-insert-link | :orange_circle: | Insert link | +| markdown-insert-image | :orange_circle: | Insert image | +| markdown-insert-code | :orange_circle: | Insert code block | +| markdown-insert-blockquote | :orange_circle: | Insert blockquote | +| markdown-insert-list-item | :orange_circle: | Insert list item | +| markdown-insert-footnote | :orange_circle: | Insert footnote | +| markdown-insert-hr | :orange_circle: | Insert horizontal rule | +| markdown-toggle-markup-hiding | :orange_circle: | Toggle markup hiding | +| markdown-toggle-fontify-code-blocks-natively | :orange_circle: | Toggle native code fontification | +| markdown-move-up | :orange_circle: | Move element up | +| markdown-move-down | :orange_circle: | Move element down | +| markdown-outline-previous | :orange_circle: | Move to previous heading | +| markdown-outline-next | :orange_circle: | Move to next heading | +| markdown-insert-header-atx-3 | :orange_circle: | Insert ### heading | +| markdown-insert-bold | :orange_circle: | Insert bold markup | + --- ## Recommended Development Roadmap --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -14143,3 +14143,51 @@ (echo-read-string echo "RCIRC away reason: " (lambda (reason) (echo-message! echo (str "RCIRC: set away - " reason)))))) + +;;; ——— Round 117: Markdown mode (batch 2) ——— + +(def (cmd-markdown-insert-footnote app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Markdown: inserted footnote"))) + +(def (cmd-markdown-insert-hr app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Markdown: inserted horizontal rule"))) + +(def (cmd-markdown-toggle-markup-hiding app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'markdown-markup-hiding) + (if (mode-enabled? app 'markdown-markup-hiding) + (echo-message! echo "Markdown markup hiding enabled") + (echo-message! echo "Markdown markup hiding disabled")))) + +(def (cmd-markdown-toggle-fontify-code-blocks-natively app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'markdown-native-fontify) + (if (mode-enabled? app 'markdown-native-fontify) + (echo-message! echo "Markdown native code fontification enabled") + (echo-message! echo "Markdown native code fontification disabled")))) + +(def (cmd-markdown-move-up app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Markdown: moved element up"))) + +(def (cmd-markdown-move-down app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Markdown: moved element down"))) + +(def (cmd-markdown-outline-previous app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Markdown: moved to previous heading"))) + +(def (cmd-markdown-outline-next app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Markdown: moved to next heading"))) + +(def (cmd-markdown-insert-header-atx-3 app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Markdown: inserted ### heading"))) + +(def (cmd-markdown-insert-bold app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Markdown: inserted bold markup"))) --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -14736,3 +14736,52 @@ (if (mode-enabled? app 'erc-spelling) (echo-message! echo "ERC spelling mode enabled") (echo-message! echo "ERC spelling mode disabled")))) + +;;; ——— Round 117: Markdown mode (batch 1) ——— + +(def (cmd-markdown-mode app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Markdown mode activated"))) + +(def (cmd-markdown-export app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Markdown: exported to HTML"))) + +(def (cmd-markdown-live-preview-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'markdown-live-preview) + (if (mode-enabled? app 'markdown-live-preview) + (echo-message! echo "Markdown live preview enabled") + (echo-message! echo "Markdown live preview disabled")))) + +(def (cmd-markdown-insert-header-atx-1 app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Markdown: inserted # heading"))) + +(def (cmd-markdown-insert-header-atx-2 app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Markdown: inserted ## heading"))) + +(def (cmd-markdown-insert-link app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Link URL: " + (lambda (url) + (echo-message! echo (str "Markdown: inserted link to " url)))))) + +(def (cmd-markdown-insert-image app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Image URL: " + (lambda (url) + (echo-message! echo (str "Markdown: inserted image " url)))))) + +(def (cmd-markdown-insert-code app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Markdown: inserted code block"))) + +(def (cmd-markdown-insert-blockquote app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Markdown: inserted blockquote"))) + +(def (cmd-markdown-insert-list-item app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Markdown: inserted list item"))) --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -3890,4 +3890,25 @@ (register-command! 'rcirc-cmd-quit cmd-rcirc-cmd-quit) (register-command! 'rcirc-cmd-topic cmd-rcirc-cmd-topic) (register-command! 'rcirc-cmd-away cmd-rcirc-cmd-away) + ;; Round 117: Markdown mode + (register-command! 'markdown-mode cmd-markdown-mode) + (register-command! 'markdown-export cmd-markdown-export) + (register-command! 'markdown-live-preview-mode cmd-markdown-live-preview-mode) + (register-command! 'markdown-insert-header-atx-1 cmd-markdown-insert-header-atx-1) + (register-command! 'markdown-insert-header-atx-2 cmd-markdown-insert-header-atx-2) + (register-command! 'markdown-insert-link cmd-markdown-insert-link) + (register-command! 'markdown-insert-image cmd-markdown-insert-image) + (register-command! 'markdown-insert-code cmd-markdown-insert-code) + (register-command! 'markdown-insert-blockquote cmd-markdown-insert-blockquote) + (register-command! 'markdown-insert-list-item cmd-markdown-insert-list-item) + (register-command! 'markdown-insert-footnote cmd-markdown-insert-footnote) + (register-command! 'markdown-insert-hr cmd-markdown-insert-hr) + (register-command! 'markdown-toggle-markup-hiding cmd-markdown-toggle-markup-hiding) + (register-command! 'markdown-toggle-fontify-code-blocks-natively cmd-markdown-toggle-fontify-code-blocks-natively) + (register-command! 'markdown-move-up cmd-markdown-move-up) + (register-command! 'markdown-move-down cmd-markdown-move-down) + (register-command! 'markdown-outline-previous cmd-markdown-outline-previous) + (register-command! 'markdown-outline-next cmd-markdown-outline-next) + (register-command! 'markdown-insert-header-atx-3 cmd-markdown-insert-header-atx-3) + (register-command! 'markdown-insert-bold cmd-markdown-insert-bold) )