./textproc/markdown-mode, Emacs major mode for editing Markdown-formatted text files

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 2.4nb1, Package name: markdown-mode-2.4nb1, Maintainer: minskim

markdown-mode is a major mode for editing Markdown-formatted text
files in GNU Emacs.


Required to run:
[editors/emacs26]

Master sites:

Filesize: 206.278 KB

Version history: (Expand)


CVS history: (Expand)


   2022-05-15 00:25:42 by David A. Holland | Files touched by this commit (90)
Log message:
Bump all elisp packages for the CONFLICTS change.
   2021-10-26 13:23:42 by Nia Alarie | Files touched by this commit (1161)
Log message:
textproc: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Unfetchable distfiles (fetched conditionally?):
./textproc/convertlit/distinfo clit18src.zip
   2021-10-07 17:02:49 by Nia Alarie | Files touched by this commit (1162)
Log message:
textproc: Remove SHA1 hashes for distfiles
   2020-08-18 06:49:39 by Tobias Nygren | Files touched by this commit (2) | Package updated
Log message:
markdown-mode: update to 2.4.

Change MASTER_SITE to author's github.

Breaking changes:
  GNU Emacs 25.1 or later is required. And xemacs support has been dropped
  Face variables, such as markdown-italic-face are now
  obsolete. Use face names directly in code and customizations.
  The face names themselves are unaffected, so this shouldn't
  affect most users.
  Delete obsoleted aliases
  Internal variables markdown-font-lock-keywords-basic and
  gfm-font-lock-keywords are now obsolete.
  markdown-font-lock-keywords is now used instead, but users
  should use font-lock-add-keywords instead of modifying this
  variable.
  markdown-mode now adds entries to the beginning of
  auto-mode-alist rather than the end. If you were relying on
  the previous behavior in order to override these entries, you
  should fix the problem by following best practice and ensuring
  that your user configuration is loaded after the autoloads for
  markdown-mode are evaluated. (GH-331, GH-335)
  Point at the end of fenced code blocks is no-longer considered
  part of the code block ([GH-#349][]).
  Enable markdown-fontify-code-blocks-natively in gfm-view-mode. ([GH-#451][])

New features:
  GFM task list item (checkbox) insertion with C-c C-s [, or
  as a final fallback for markdown-do (C-c C-d). Thanks to
  Akinori Musha for a patch. (GH-229)
  Optionally move leading atx heading markup to the left margin
  when markdown-marginalize-headers is non-nil. Thanks to
  Alexis Gallagher for a patch. (GH-272, GH-274)
  Added pipe table editing features. Thanks to Dmitry Safronov
  for a patch. (GH-171, GH-266)
  Font lock for HTML tags and attributes, with new faces
  markdown-html-tag-name-face,
  markdown-html-tag-delimiter-face,
  markdown-html-attr-name-face, and
  markdown-html-attr-value-face. (GH-249)
  Font lock for HTML entities, with a new face
  markdown-html-entity-face.
  Scale down large inline images using markdown-max-image-size,
  a cons cell of the form (max-width . max-height).
  Added read-only viewing modes markdown-view-mode and
  gfm-view-mode with keymaps similar to view-mode and
  help-mode. (GH-296)
  Optionally add footnote definitions to the end of the imenu
  index using markdown-add-footnotes-to-imenu. (GH-235)
  Add custom variables markdown-xhtml-body-preamble and
  markdown-xhtml-body-epilogue for wrapping additional XHTML
  tags around the output. (GH-280, GH-281)
  Add markdown-unused-refs command to list and clean up unused
  references (available via C-c C-c u). (GH-322)
  Add markdown-insert-table (C-c C-s t) for interactive
  table insertion. (GH-369)
  Add markdown-kill-outline and markdown-kill-block functions.
  Added markdown-display-remote-images for viewing remote
  images. Thanks to Sean Allread for the patch. (GH-378)
  markdown-back-to-heading can be used as command (GH-415)
   2017-09-03 10:53:18 by Thomas Klausner | Files touched by this commit (165)
Log message:
Follow some redirects.
   2017-05-09 07:09:15 by Masatake Daimon | Files touched by this commit (2)
Log message:
Update textproc/markdown-mode to 2.1

New Features

  General

    - Add automatically updating live preview functionality (C-c C-c l)
      via the native eww browser.
    - Use autoload to enable markdown-mode in auto-mode-alist for files
      with .text, .markdown, and .md extensions.
    - Use Travis CI for automated build testing.

  Element Insertion and Editing

    - ATX heading subtree promotion and demotion via M-S-LEFT, and
      M-S-RIGHT.
    - ATX heading subtree moving up and down via M-S-UP and
      M-S-DOWN.
    - Convert inline links to reference links when
      markdown-insert-reference-link-dwim is used when the point is at
      an inline link.

  Customizable Features

    - Allow linking to multiple stylesheets in markdown-css-paths
      list. Use stylesheets for both preview and export. Previous
      markdown-css-path (singular) is now deprecated.
    - Customizable default unordered list marker via
      markdown-unordered-list-item-prefix.
    - Add asymmetric ATX heading adornment option
      markdown-asymmetric-header.

  Font Lock

    - Separate highlighting for Markdown markup characters (asterisks,
      underscores, backquotes, etc.) to aid in readability.
    - General font lock improvements for comments, code blocks,
      blockquotes, headings, horizontal rules, bold, italics
    - Font lock for bold, italics, and LaTeX math work inside block
      elements such as headings and blockquotes.
    - Font lock for <kbd> tags.

  GFM

    - Support GFM-style code blocks in markdown-mode (as well as
      gfm-mode).
    - New function markdown-electric-backquote will prompt for a
      language name for GFM code blocks. This can be disabled by
      customizing the variable markdown-gfm-use-electric-backquote.
    - Completion of programming language names for GFM code blocks. A
      list of pre-defined languages is included, but this can be
      augmented by setting markdown-gfm-additional-languages.
    - Strikethrough support in gfm-mode.
    - Support for GFM toggling checkboxes mouse-1 or RET. This is
      controlled by a new custom variable,
      markdown-make-gfm-checkboxes-buttons.

  Other Extensions

    - Font lock and filling for Pandoc "fancy list", which use # as
      the list marker.
    - Basic support for filling of definition lists.
    - Support Ikiwiki-style search for wiki links that allows links
      relative to parent directories. Enable this by setting
      markdown-wiki-link-search-parent-directories.

Bug Fixes

    - Fix bug in markdown-complete-region/buffer where level-two
      Setext headings could be confused with horizontal
      rules. Includes a unit test. Thanks to Gunnar Franke for the
      report.
    - Fix filling when a decimal number appears at column zero, which
      could be confused with an ordered list item.
    - Fix buffer-wide markup completion.
    - Fix font-lock for GFM code blocks without language keywords.
    - Improved Setext header insertion to support wide characters.
    - Fix expensive paragraph-separate regular expression.
    - Make comment-auto-fill-only-comments a buffer-local variable,
      which allows for better default filling behavior in cases where
      the global variable is non-nil.
    - Fix Emacs 23 compatibility by checking for
      font-lock-refresh-defaults before calling it.
    - Handle reference definitions when filling paragraphs.
    - Improve filling of list items with indentation.
    - Properly handle footnotes when filling.
    - Fix issues with markdown-footnote-kill and related functions.
    - Improve font lock for fenced code blocks.
    - Avoid avoid overwriting source file when exporting if source
      file has .html extension.
    - Fix and improve ordered list behavior to preserve digit spacing
      and avoid an infinite loop in certain cases. Adjust ordered list
      whitespace when marker digit count increases.
    - Improve reference definition regular expression to avoid matching
      multiple reference links in one line.
    - Allow spaces in fenced code language identifiers.
    - Improve font lock for preformatted blocks and fenced code blocks.
    - Fix out-of-order HTML output.
    - Add console-friendly backspace and tab bindings.
    - Better treatment of files without extensions for wiki
      links. When files have no extensions, don't append a lone
      period.
    - Call looking-back with two arguments for compatibility with
      Emacs 25.1.
    - Make (beginning-of-defun -1) go to next title when point is at
      beginning of defun.
    - Ignore headings in code blocks for font lock.
    - Don't highlight wiki links in code blocks.
    - Don't move to links in code blocks with C-c C-p and C-c C-n.
    - Fix hanging indentation for list items and single-line
      preformatted blocks.
    - Better rejection of false positives for italics with respect to
      other inline elements (inline code and bold).
    - Predicate functions should not modify match data.
    - Use correct list marker from previous list level when using C-u
      M-RET to insert a dedented list item. Prevent an infinite loop
      in some cases.
    - Reduce lag when scrolling or inserting text into large
      files.
    - Avoid confusing tramp errors with malformed wiki
      links.
   2015-11-04 03:00:17 by Alistair G. Crooks | Files touched by this commit (797)
Log message:
Add SHA512 digests for distfiles for textproc category

Problems found locating distfiles:
	Package cabocha: missing distfile cabocha-0.68.tar.bz2
	Package convertlit: missing distfile clit18src.zip
	Package php-enchant: missing distfile php-enchant/enchant-1.1.0.tgz

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.
   2013-07-30 21:15:15 by Thomas Klausner | Files touched by this commit (2)
Log message:
Update to 2.0:

Markdown Mode 2.0 Release Notes

Markdown Mode version 2.0 was released on March 24, 2013. This
is a major new stable release with many new features, including some
changes to keybindings for element insertion and outline navigation.
This new stable version can be downloaded from the
Markdown Mode homepage. Below is a description of significant or
user-visible enhancements or bug fixes. See the Git repository
for a complete history of changes.

New Features

Keybinding Changes

Physical styles: element insertion commands prefixed by C-c
 C-p have been removed in favor of their logical style
 counterparts prefixed by C-c C-s.
Shift is now the preferred way to distinguish keybindings for two
 similar elements:

Insert an inline link with C-c C-a l or a reference
 link with C-c C-a L. The latter keybinding is new
 and preferred over C-c C-a r, which is deprecated.
Insert an inline image with C-c C-a l or a reference
 image with C-c C-a L. The latter keybinding and
 insertion functionality is new.
The new automatic header insertion function (more below) is
 bound to C-c C-t h, with C-c C-t H being a
 variant that indicates a preference for Setext headings.
Insert an ATX level-one heading with C-c C-t 1 or a
 Setext level-one heading with C-c C-t ! (!
 is S–1). The latter keybinding is new and is
 preferred over C-c C-t t, which is deprecated.
Insert an ATX level-two heading with C-c C-t 2 or a
 Setext level-two heading with C-c C-t @ (@
 is S–2). The latter keybinding is new and is preferred
 over C-c C-t s, which is deprecated.

Footnotes:

Insert new footnote: C-c C-f n has been changed to
 C-c C-a f.
Jump to footnote text: C-c C-f g has been superceded
 by C-c C-j (markdown-jump).
Jump to footnote marker: C-c C-f b has been
 superceded by C-c C-j (markdown-jump).
Kill footnote: C-c C-f k has been superceded by
 C-c C-k (markdown-kill-thing-at-point).

Several other new keybdings have been introduced and are described
 in more detail below.

Smarter Markup Insertion

Fast heading insertion with a single command which automatically
 calculates the type (atx or setext) and level (which can now be
 cycled quickly, see below). Prefix with C-u to promote
 the heading by one level or C-u C-u to demote the
 heading by one level. Headings with a specific level or type
 can still be inserted quickly with specific keybindings.
ATX heading insertion will use current line as heading text if not
 blank and there is no active region.
Setext heading insertion will prompt for heading title when there is
 no active region.
When the point is at a heading, the heading insertion commands will
 replace the heading at point with a heading of the requested level
 and type.
When there is no active region, the bold, italic, code, link, and
 image insertion commands will operate on the word at point, if any,
 so that you don’t have to have an active selection for simple
 modifications.
Repeating the bold, italic, or code insertion commands when the
 point is at an element of the corresponding type will remove the
 markup.
Smart list item insertion with M-RET, with indentation
 and marker determined by the surrounding context. Prefix with
 C-u to decrease the indentation by one level or
 C-u C-u to increase the indentation one level.
Indentation of preformatted text and blockquotes will be adjusted
 automatically in contexts where more indentation is required, as in
 nested lists. (For example, in Markdown, a preformatted text block
 inside a first-level list item must have eight spaces of
 indentation.)
Improved reference link insertion with label completion.

Use word at point as link text, if possible, when there is no
 active region.
Tab completion of reference labels from the set of currently
 defined references.
Reference link insertion no longer prompts for
 a URL or title if the label is already defined.
If no URL is given, create an empty reference definition
 and move the point there.
Customizable reference link location via
 markdown-reference-location.

Basic reference-style image markup insertion.
Multiple horizontal rule styles, customizable as a list of strings,
 which can be cycled through.
New URL insertion command for inserting plain URLs delimited by
 angle brackets (C-c C-a u). Works on URL at point, if any,
 when there is no active region.
Generally improved insertion commands with respect to insertion of
 surrounding whitespace and point position after insertion
 (e.g., ensuring blank lines before and after newly inserted headings
 and horizontal rules).

Markup Removal

Easily kill an element (e.g., a link or reference definition) at the
 point and store the most important part in the kill ring (e.g., the
 link text or URL).

Markup Completion

Completion (C-c C-]) normalizes the markup for an
 element:

balancing hash marks and removing extra whitespace for atx
 headings,
equating the length of the underline with the text for setext
 headings, and
ensuring that horizintal rule strings are chosen from a
 pre-defined list of strings (markdown-hr-strings).

Markup Promotion and Demotion

Markup promotion and demotion via C-c C— and C-c
 C-=, respectively. The sequences M-<up> and
 M-<down> may also be used.
Certain types of markup may be promoted or demoted: atx headings,
 setext headings, horizontal rules, and list items.
 Bold and italic also be toggled between asterisks and
 underscores.
Promotion and demotion commands also cycle when level boundaries are
 reached (e.g. when demoting a level six heading, it cycles back a
 level one heading).

List and Region Editing

Move list items uper and more
 accurate. The pre block matching routines have been completely
 rewritten, with unit tests. The previous implementation was
 incorrect in some cases and generally slow. This should be much
 faster and more accurate for pre blocks inside nesterule for nested list items:
 in a list item of level n, preformatted text must be indented at
 least 4(n + 1) spaces.
Font lock for title strings in inline links.
Subtle syntax highlighting for hard line breaks.
More inclusive blockquote regular expressiofor more accurate syntax highlighting.

New and Improved Movement Commands

Jumping:

Quickly jump between reference definitions and reference-style links
 and between footnote markers and footnote text with
 C-c C-j.
Create undefined references when jumping from a reference link.
When jumping from a reference definition used by multiple
 reference links, show a temporary buffer with buttons for
 selecting which link to jump to. Possible locations may be
 cycled with TAB and S-TAB.

Revised outline navigation commands, following org-mode. This
 frees up the sexp navigation keys C-M-f and
 C-M-b which can be useful in Markdown documents which
 have many matching delimiters, as well as the defun navigation keys
 C-M-a and C-M-e.
Previous/next section movement with C-M-a and
 C-M-e (in Emacs parlance, this is movement by defun).
 Mark the current section with C-M-h.
Previous/next paragraph movement via M-{ and M-}.
Previous/next block movement with C-u M-{ and C-u M-}.

Link Following and Movement

Unified link following: open links in a browser and wiki links in a
 new buffer with the same keybinding (C-c C-o). This
 supercedes the separate wiki link following command
 (C-c C-w).
Generalized link movement and following: move between and open all
 link types (inline, reference, wiki, angle URIs) using the same key
 bindings (M-n and M-p). Previously, these
 commands only moved between wiki links, but with the above following
 enhancement, moving between hyperlinks of all types is more useful.
Remove wiki link following with RET and
 markdown-follow-wiki-link-on-enter setting.

Other Enhancements

Respect hard line breaks when filling paragraphs.
 A downside of this is that paragraph movement commands will also
 stop at hard line breaks, thus slightly changing the definition of
 “paragraph” in this mode. In those cases, use the new block
 movement commands instead.
Use adaptive filling for list items and blockquotes.

Treat all list items (any marker type) the same way with respect
 to filling.
Retain the > prefix when filling blockquotes.
Fill list items inside of blockquotes.

Add indentation positions: preceding list markers and pre block position.
imenu support.
Added before and after export hooks.

markdown-before-export-hook can make changes to the source
 buffer (e.g., preprocessing the Markdown source before running
 Markdown). Any changes made will be kept until the file is
 exported, so they will be incorporated into the resulting XHTML
 output, and the buffer will be restored to it’s original state
 after exporting.
markdown-after-export-hook may modify the resulting output
 buffer after export but before the output file is saved (e.g.,
 postprocessing the XHTML output).

Added a library of regression tests which currently contains 1cks for older \ 
Emacsen and Xemacs.
Numerous other internal improvements to make the code base more robust.
Use button-map for navigating undefined references, so that
 references can be navigated via the keyboard by pressing
 TAB and S-TAB.
Clean up whites:

Dynamic loading and unloading for math support with
 refontification.
Allow underscores and colons in equation labels.

GFM (GitHub Flavored Markdown) Mode Improvements

Changes italic font lock behavior to match GFM specification
 regarding underscores in words.
Syntax highlighting for GFM quoted code blocks with an optional
 language keyword.
Insertion command (C-c C-s P) for GFM quoted code blocks.

Bug Fixes

Fix bug in heading visibility cycling introduced in version 1.9
 where the level of headings was being calculated incorrectly.
Fix problems inserting ATX headings at end of buffer.
Support small Setext headings (with fewer than three characters).
Several improvements to inline code syntax highlighting.

No need to prohibit spaces after the leading backquotes.
Markdown allows more than two leading backquotes (but the same number
 must appear at the end to close the code tag).
Ensure following character is not a backquote.
Fix a bug where code fragments separated by a single character
 were not highlighted correctly. (This is difficult or impossible
 to do with regular expressions in Emacs, which do not support
 negative lookahead or negative lookbehind, so a matching function
 is used now.)

Fix some edge cases regarding escaping, spaces, etc. for bold and
 italic font lock.
Prohibit newlines and tabs immediately after opening bold and italic
 delimiters. This fixes a bug where italics would not be
 highlighted following a horizontal rule
Improved multi-line font lock performance for large files.
Improved multi-line font lock at beginning of buffer.
List items with any of the three markers are filled in the same way
 (previously list items starting with + were not filled with
 hanging indentation).
Fix end detection for empty list items. Don’t skip over the
 whitespace following the marker on the same line. Previously, empty
 list items were not being detected properly by
 markdown-cur-list-item-bounds as a result of this.
Don’t exclude [^], which is a valid reference tag (but let’s
 please stick to alphanumeric characters).
No longer highlight escaped wiki links.
Fix line number buttons for reference checking and make all buttons
 clickable.
Fix killing of footnotes with no text.
Fix escaping in markdown-xhtml-standalone-regexp.
Fix a font-lock edge case involving footnote markers preceding
 inline links.
More accurate font-lock for ATX headings in edge cases.
Fix killing of footnotes from footnote text.

1.9

markdown-mode 1.9

markdown-mode version 1.9 was released on
January 25, 2013. This is a major new stable release with important
bug fixes.

New features:

Support for setext-style headers in outline-mode.
Thanks to Shigeru Fukaya.
Font lock for tilde-fenced code blocks.
Reference link insertion (C-c C-a r).
Support both forms of aliased wiki links:
[[link text|PageName]] and [[PageName|link text]]
(markdown-wiki-link-alias-first).
Footnote support: font lock and insertion, deletion, and
navigation functions for footnotes (prefixed by C-c C-f;
following for wiki links is now C-c C-w).
Thanks to Joost Kremers.
Improved preview and export commands.
Thanks to Donald Ephraim Curtis.
imenu support. Thanks to Akinori Musha.
Added autoload token for gfm-mode.
Thanks to Max Penet and Peter Eisentraut for the suggestion.
Optional character set declaration in XHTML output.
Thanks to François Gannaz for the suggestion.
Smart unindentation when pressing delete at the beginning of a
line. Thanks to Zhenlei Jia.
Optional prefix argument to C-c C-w for opening wiki links
in another window.
Open inline and reference links and inline URIs in browser
(C-c C-o). Thanks to Peter Jones.
Open files in a standaline previewer or editor (C-c C-c o).
Clean up numbered/ordered lists (C-c C-c n).
Thanks to Donald Ephraim Curtis.
Save Markdown output to kill ring (copy to clipboard) (C-c C-c w).
Thanks to Donald Ephraim Curtis.

Bug fixes:

Fixed a bug which caused unusual behavior in functions performing
search, replace, and/or matching operations.
Thanks to Christopher J. Madsen for the patch.
Fixed a bug which caused an incompatibility with orgtbl-mode.
Thanks to Vegard Vesterheim for the report and to Carsten Dominik
for a patch.
Fixed a bug where reference links at the beginning of a line
would be mistaken for reference definitions.
Improved font lock for headers.
Improved font lock for reference definitions. Thanks to Ian Yang.
Avoid byte compiler warning about region-exists-p in GNU Emacs.
Additional key bindings for cross-platform header cycling
compatibility.
Fix problem with externally modified files on disk where the user
would get stuck in a loop answering “really edit the buffer?”
Thanks to Bryan Fink for a detailed report.

Other improvements:

Improve markdown-mode-hook docstring.
Thanks to Shigeru Fukaya for the more precise description.
Don’t require Common Lisp extensions at run time.
Thanks to Shigeru Fukaya.
Prefer visual-line-mode, the replacement for longlines-mode,
when in gfm-mode. Thanks to Christopher J. Madsen.
Proper GitHub wiki link handling in gfm-mode. Thanks to Kevin
Porter.
XEmacs compatibility:

Avoid malformed list errors during font definitions.
Handle replace-regexp-in-string.
Use text properties instead of overlays.
Fall back to set-buffer-modified-p when
 restore-buffer-modified-p is unavailable.
Many additional fixes. Thanks to Michael Sperber.

Handle wiki links in buffers not associated with a file.
Update autoload documentation to support byte compilation.
Option to use - instead of _ for wiki links in gfm-mode.
Add two tab stops to possible indentation positions following list
items.

Minor bug fixes:

Font lock fix for URLs with underscores.
Escape shell commands to handle filenames with spaces, etc.
Thanks to Marcin Kasperski for a patch.
Use :slant instead of unsupported :italic in font spec.
Fix typo in paragraph-fill regexp.