Difference between revisions of "Markdown"

From WikEmacs
Jump to navigation Jump to search
m (added category)
(added another filter for impatient-mode)
(7 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 +
{{Infobox major-mode
 +
|title=Markdown
 +
|library=markdown-mode
 +
|command=markdown-mode
 +
|builtin=no
 +
}}
 +
 
[http://jblevins.org/projects/markdown-mode/ Markdown Mode] provides a major mode for editing Markdown-formatted text files.  
 
[http://jblevins.org/projects/markdown-mode/ Markdown Mode] provides a major mode for editing Markdown-formatted text files.  
  
 
This package is not currently part of the Emacs distribution.  
 
This package is not currently part of the Emacs distribution.  
  
== External Links ==
+
= See also =
 +
 
 +
== Live preview as you type ==
 +
 
 +
There are a few possibilities.
 +
 
 +
=== Impatient-mode ===
 +
 
 +
See [https://github.com/skeeto/impatient-mode impatient-mode] (in MELPA). It only depends on emacs packages. This package is designed for html though, but it is possible to make it render markdown. Evaluate this somewhere so you have the function:
 +
 
 +
  (defun markdown-html (buffer)
 +
  (princ (with-current-buffer buffer
 +
          (format "<!DOCTYPE html><html><title>Impatient Markdown</title><xmp theme=\"united\" style=\"display:none;\"> %s  </xmp><script src=\"http://strapdownjs.com/v/0.2/strapdown.js\"></script></html>" (buffer-substring-no-properties (point-min) (point-max))))
 +
        (current-buffer)))
 +
 
 +
Then '''M-x imp-set-user-filter''' in your markdown buffer, and supply markdown-html when it asks for the function. Live updating markdown!
 +
 
 +
Another filter which cooperates markdown-mode:
 +
 
 +
    (defun markdown-filter (buffer)
 +
      (princ
 +
        (with-temp-buffer
 +
          (let ((tmpname (buffer-name)))
 +
            (set-buffer buffer)
 +
            (set-buffer (markdown tmpname)) ; the function markdown is in `markdown-mode.el'
 +
            (buffer-string)))
 +
        (current-buffer)))
 +
 
 +
=== Livedown-mode ===
 +
 
 +
[https://github.com/shime/emacs-livedown livedown] is specific to markdown but it requires nodejs packages (to be easily installed with npm).
 +
 
 +
=== Realtime-preview ===
 +
 
 +
[https://github.com/niku/realtime-preview.el realtime-preview.el] requires a ruby package (''redcarpet''). Then it does the rendering in [[EWW]], which is embedded in Emacs24.4.
 +
 
 +
= External Links =
  
 
* [http://jblevins.org/projects/markdown-mode/ Markdown Mode Project]
 
* [http://jblevins.org/projects/markdown-mode/ Markdown Mode Project]
 
* [http://jblevins.org/git/markdown-mode.git Source (git)]
 
* [http://jblevins.org/git/markdown-mode.git Source (git)]
 +
* [http://melpa.milkbox.net/#/markdown-toc Markdown-toc (Melpa)], a simple TOC generator for a markdown file
  
[[Category:Markup languages]]
+
[[Category:Markup languages]][[Category:Document authoring]]

Revision as of 12:11, 30 January 2016

Markdown
Library markdown-mode
Command markdown-mode
Builtin no


Markdown Mode provides a major mode for editing Markdown-formatted text files.

This package is not currently part of the Emacs distribution.

See also

Live preview as you type

There are a few possibilities.

Impatient-mode

See impatient-mode (in MELPA). It only depends on emacs packages. This package is designed for html though, but it is possible to make it render markdown. Evaluate this somewhere so you have the function:

  (defun markdown-html (buffer)
  (princ (with-current-buffer buffer
          (format "<!DOCTYPE html><html><title>Impatient Markdown</title><xmp theme=\"united\" style=\"display:none;\"> %s  </xmp><script src=\"http://strapdownjs.com/v/0.2/strapdown.js\"></script></html>" (buffer-substring-no-properties (point-min) (point-max))))
        (current-buffer)))

Then M-x imp-set-user-filter in your markdown buffer, and supply markdown-html when it asks for the function. Live updating markdown!

Another filter which cooperates markdown-mode:

   (defun markdown-filter (buffer)
     (princ
       (with-temp-buffer
         (let ((tmpname (buffer-name)))
           (set-buffer buffer)
           (set-buffer (markdown tmpname)) ; the function markdown is in `markdown-mode.el'
           (buffer-string)))
       (current-buffer)))

Livedown-mode

livedown is specific to markdown but it requires nodejs packages (to be easily installed with npm).

Realtime-preview

realtime-preview.el requires a ruby package (redcarpet). Then it does the rendering in EWW, which is embedded in Emacs24.4.

External Links