CHANGES.md (89043B)
1 # Markdown Mode 2.5 2 3 * **Breaking changes:** 4 - `markdown-do` supports following link [GH-666][] 5 This changes behavior of `markdown-do` at table 6 7 * New features: 8 - Introduce `markdown-mouse-follow-link` variable [GH-290][] 9 - Option to define a `markdown-link-make-text-function` function 10 to automatically define a default link text before prompting the user. 11 - Option to inhibit the prompt for a tooltip text via 12 `markdown-disable-tooltip-prompt`. 13 - Introduce `markdown-ordered-list-enumeration` variable [GH-587][] 14 - Search wiki link under project 15 - Add `markdown-insert-foldable-block` function [GH-598][] 16 - Add `markdown-table-align-p` flag [GH-625][] 17 Control table alignment after table operation 18 - Support highlighting syntax like Obsidian, Quilt. [GH-652][] 19 20 * Improvements: 21 - Correct indirect buffer's indentation in `markdown-edit-code-block` [GH-375][] 22 - Cleanup test code 23 - Strip query parameters from local file name at displaying inline images [GH-511][] 24 - Improve forward/backward sentences which are wrapped markup characters [GH-517][] 25 - Improve fontification for nested meta data [GH-476][] 26 - `markdown-cycle` accepts universal-argument like org-cycle [GH-530][] 27 - Improve mode check for derived modes [GH-532][] 28 - Improve for file which contains many comments [GH-536][] 29 - Improve for file which contains many pre blocks [GH-512][] 30 - Enable flyspell check at yaml metadata[GH-560][] 31 - Clean up Makefile 32 - Support to display local image with percent encoding file path 33 - Add ability to resize inline image display (`markdown-toggle-inline-images`) without Imagemagick installed in the computer (emulating Org Mode) 34 - Support including braces around the language specification in GFM code blocks 35 - Improve `markdown-insert-{bold,italic}` when region starts with spaces[GH-613][] 36 - Disable buffer-read-only if possible when markdown-mode is called [GH-622][] 37 - Generate the `defface` via a macro rather than a function. 38 - Memoize `markdown--first-displayable` to avoid performance 39 problems. 40 - Allow the use of `add-function` on 41 `markdown-table-at-point-p-function`. 42 - Comment out redundant bindings and use the more standard `RET` 43 name for `C-m`. 44 - Give `markdown-table-at-point-p-function` a non-nil default. 45 Simplify `markdown-table-at-point-p` accordingly. 46 - Auto set `sh-shell` when `markdown-edit-code-block` enter indirect buffer with `sh-mode` 47 - Add value check and avoid raising the exception at `markdown-edit-code-block` [GH-663][] 48 - Add NonGNU ELPA badge to README and website 49 - Support plus/negative(also Unicode minus sign) exponent in super script [GH-346][] 50 51 * Bug fixes: 52 - Fix issue with `nil` being returned from `markdown-imenu-create-nested-index` [GH-578][] 53 - Fix remaining flyspell overlay in code block or comment issue [GH-311][] 54 - Fix inline URL regular expression which starts/ends with spaces [GH-514][] 55 - Fix GFM italic fontification for one character [GH-524][] 56 - Fix `markdown-table-forward-cell` at last column issue [GH-522][] 57 - Fix GFM bold fontification with underscore issue [GH-525][] 58 - Fix wrong fontification words between strong markups [GH-534][] 59 - Fix wrong italic fontification just after code block [GH-548][] 60 - Fix too indended list face issue [GH-569][] 61 - Fix creating imenu index issue when there is no level-1 header too[GH-571][] 62 - Fix highlighting consecutive HTML comments[GH-584][] 63 - Fix `markdown-follow-thing-at-point` failing on subdir search [GH-590][] 64 - Fix `markdown-table-backward-cell` so it always goes back a single cell 65 - Fix `markdown-table-align` to detect delimiters surrounded by spaces 66 - Fix customization for `markdown-mouse-follow-link` and 67 `markdown-table-align-p` 68 - Fix accessing locations beyond `point-max` in 69 `markdown-syntax-propertize` 70 - Set `syntax-propertize-extend-region-functions` buffer-locally 71 instead of globally 72 - Modify only the buffer-local part of 73 `syntax-propertize-extend-region-functions`. 74 - Fix list highlighting issue in code block [GH-631][] 75 - Fix exception when inserting code block at end of buffer [GH-634][] 76 - Fix table operations when table column contains escaped vertical bars [GH-635][] 77 - Fix issue that executing `markdown-table-sort-lines` via menu-bar with older Emacs(< 28) [GH-641][] 78 - Fix wrong markdown table command issue in menu [GH-639][] 79 - Fix table conversion issue [GH-639][] 80 - Fix fill paragraph issue with setext heading [GH-638][] 81 - Fix line break highlighting issue at end of buffer [GH-621][] 82 - Fix URL highlighting which contains comma or parentheis [GH-649][] 83 - Fix eldoc function issue with `markdown-toggle-url-hiding` [GH-674][] 84 Thanks to Ta Quang Trung for a patch 85 - Fix `markdown-enable-math` exception issue [GH-676][] 86 - Fix `markdown-marginalize-headers` rendering in tty mode [GH-677][] 87 - Fix table and list fontification [GH-680][] 88 - Fix invalid code block highlighting [GH-684][] 89 90 [gh-290]: https://github.com/jrblevin/markdown-mode/issues/290 91 [gh-311]: https://github.com/jrblevin/markdown-mode/issues/311 92 [gh-346]: https://github.com/jrblevin/markdown-mode/issues/346 93 [gh-375]: https://github.com/jrblevin/markdown-mode/issues/375 94 [gh-476]: https://github.com/jrblevin/markdown-mode/issues/476 95 [gh-511]: https://github.com/jrblevin/markdown-mode/issues/511 96 [gh-512]: https://github.com/jrblevin/markdown-mode/issues/512 97 [gh-514]: https://github.com/jrblevin/markdown-mode/issues/514 98 [gh-517]: https://github.com/jrblevin/markdown-mode/issues/517 99 [gh-522]: https://github.com/jrblevin/markdown-mode/issues/522 100 [gh-524]: https://github.com/jrblevin/markdown-mode/issues/524 101 [gh-525]: https://github.com/jrblevin/markdown-mode/issues/525 102 [gh-530]: https://github.com/jrblevin/markdown-mode/issues/530 103 [gh-532]: https://github.com/jrblevin/markdown-mode/issues/532 104 [gh-534]: https://github.com/jrblevin/markdown-mode/issues/534 105 [gh-536]: https://github.com/jrblevin/markdown-mode/issues/536 106 [gh-548]: https://github.com/jrblevin/markdown-mode/issues/548 107 [gh-553]: https://github.com/jrblevin/markdown-mode/issues/553 108 [gh-560]: https://github.com/jrblevin/markdown-mode/issues/560 109 [gh-569]: https://github.com/jrblevin/markdown-mode/issues/569 110 [gh-571]: https://github.com/jrblevin/markdown-mode/issues/571 111 [gh-584]: https://github.com/jrblevin/markdown-mode/issues/584 112 [gh-587]: https://github.com/jrblevin/markdown-mode/issues/587 113 [gh-590]: https://github.com/jrblevin/markdown-mode/pull/590 114 [gh-598]: https://github.com/jrblevin/markdown-mode/pull/598 115 [gh-613]: https://github.com/jrblevin/markdown-mode/issues/613 116 [gh-621]: https://github.com/jrblevin/markdown-mode/issues/621 117 [gh-622]: https://github.com/jrblevin/markdown-mode/issues/622 118 [gh-625]: https://github.com/jrblevin/markdown-mode/issues/625 119 [gh-631]: https://github.com/jrblevin/markdown-mode/issues/631 120 [gh-634]: https://github.com/jrblevin/markdown-mode/issues/634 121 [gh-635]: https://github.com/jrblevin/markdown-mode/issues/635 122 [gh-638]: https://github.com/jrblevin/markdown-mode/issues/638 123 [gh-639]: https://github.com/jrblevin/markdown-mode/issues/639 124 [gh-640]: https://github.com/jrblevin/markdown-mode/issues/640 125 [gh-641]: https://github.com/jrblevin/markdown-mode/issues/641 126 [gh-649]: https://github.com/jrblevin/markdown-mode/issues/649 127 [gh-652]: https://github.com/jrblevin/markdown-mode/issues/652 128 [gh-663]: https://github.com/jrblevin/markdown-mode/issues/663 129 [gh-666]: https://github.com/jrblevin/markdown-mode/issues/666 130 [gh-674]: https://github.com/jrblevin/markdown-mode/pull/674 131 [gh-676]: https://github.com/jrblevin/markdown-mode/pull/676 132 [gh-677]: https://github.com/jrblevin/markdown-mode/pull/677 133 [gh-680]: https://github.com/jrblevin/markdown-mode/pull/680 134 [gh-684]: https://github.com/jrblevin/markdown-mode/issues/684 135 136 # Markdown Mode 2.4 137 138 *May 30, 2020* 139 140 * **Breaking changes:** 141 142 - GNU Emacs 25.1 or later is required. And xemacs support has been dropped 143 - Face variables, such as `markdown-italic-face` are now 144 obsolete. Use face names directly in code and customizations. 145 The face names themselves are unaffected, so this shouldn't 146 affect most users. 147 - Delete obsoleted aliases 148 - Internal variables `markdown-font-lock-keywords-basic` and 149 `gfm-font-lock-keywords` are now obsolete. 150 `markdown-font-lock-keywords` is now used instead, but users 151 should use `font-lock-add-keywords` instead of modifying this 152 variable. 153 - `markdown-mode` now adds entries to the beginning of 154 `auto-mode-alist` rather than the end. If you were relying on 155 the previous behavior in order to override these entries, you 156 should fix the problem by following best practice and ensuring 157 that your user configuration is loaded after the autoloads for 158 `markdown-mode` are evaluated. ([GH-331][], [GH-335][]) 159 - Point at the end of fenced code blocks is no-longer considered 160 part of the code block ([GH-#349][]). 161 - Enable `markdown-fontify-code-blocks-natively` in `gfm-view-mode`. ([GH-#451][]) 162 163 * New features: 164 165 - GFM task list item (checkbox) insertion with `C-c C-s [`, or 166 as a final fallback for `markdown-do` (`C-c C-d`). Thanks to 167 Akinori Musha for a patch. ([GH-229][]) 168 - Optionally move leading atx heading markup to the left margin 169 when `markdown-marginalize-headers` is non-`nil`. Thanks to 170 Alexis Gallagher for a patch. ([GH-272][], [GH-274][]) 171 - Added pipe table editing features. Thanks to Dmitry Safronov 172 for a patch. ([GH-171][], [GH-266][]) 173 - Font lock for HTML tags and attributes, with new faces 174 `markdown-html-tag-name-face`, 175 `markdown-html-tag-delimiter-face`, 176 `markdown-html-attr-name-face`, and 177 `markdown-html-attr-value-face`. ([GH-249][]) 178 - Font lock for HTML entities, with a new face 179 `markdown-html-entity-face`. 180 - Scale down large inline images using `markdown-max-image-size`, 181 a cons cell of the form `(max-width . max-height)`. 182 - Added read-only viewing modes `markdown-view-mode` and 183 `gfm-view-mode` with keymaps similar to `view-mode` and 184 `help-mode`. ([GH-296][]) 185 - Optionally add footnote definitions to the end of the imenu 186 index using `markdown-add-footnotes-to-imenu`. ([GH-235][]) 187 - Add custom variables `markdown-xhtml-body-preamble` and 188 `markdown-xhtml-body-epilogue` for wrapping additional XHTML 189 tags around the output. ([GH-280][], [GH-281][]) 190 - Add `markdown-unused-refs` command to list and clean up unused 191 references (available via `C-c C-c u`). ([GH-322][]) 192 - Add `markdown-insert-table` (`C-c C-s t`) for interactive 193 table insertion. ([GH-369][]) 194 - Add `markdown-kill-outline` and `markdown-kill-block` 195 functions. 196 - Added `markdown-display-remote-images` for viewing remote 197 images. Thanks to Sean Allread for the patch. ([GH-378][]) 198 - `markdown-back-to-heading` can be used as command ([GH-415][]) 199 200 * Improvements: 201 202 - Insert references before local variables. Thanks to Philipp 203 Stephani for a patch. ([GH-216][], [GH-262][]) 204 - Allow `markdown-command` and `markdown-open-command` to be 205 functions. ([GH-255][], [GH-263][]) 206 - Save the buffer before running `markdown-open-command` and run 207 `markdown-open-command` asynchronously. Thanks to Dmitry 208 Safronov for a patch. ([GH-248][]) 209 - New user option `markdown-translate-filename-function` to translate 210 filenames when following file links. ([GH-268][], [GH-277][]) 211 - Support double-backslash math delimiters. ([GH-270][]) 212 - New user option `markdown-export-kill-buffer` to kill or preserve 213 HTML export output buffer. ([GH-224][]) 214 - Add custom variables `markdown-edit-code-block-default-mode` 215 and `markdown-fontify-code-block-default-mode` to specify default 216 modes for indirect editing and fontification of code blocks. 217 ([GH-251][], [GH-303][]) 218 - Insert-and-indirect-edit GFM code blocks simultaneously by 219 giving a prefix argument to `C-c C-s C`. ([GH-251][]) 220 - Improve package load time by deferring calls to 221 `char-displayable-p`. ([GH-264][]) 222 - Only raise footnotes when markup hiding is on. 223 Footnote display properties may now be customized via 224 `markdown-footnote-display`. ([GH-247][]) 225 - Customizable subscript and superscript display properties 226 via `markdown-sub-superscript-display`. 227 - Several font-lock performance improvements. 228 - Support horizontal rules consisting of underscores. 229 - Change default character encoding to UTF-8. 230 ([GH-340][], [GH-350][]) 231 - Support more markdown extensions same as Vim 232 - Complete link text from link labels at inserting link. ([GH-421][]) 233 - Improve regular expression for inline attributes. ([GH-406][]) 234 - Allow relative CSS stylesheets paths. ([GH-389][]) 235 - Improve regular expression matching for inline attributes. ([GH-389][]) 236 - If user set `display-buffer-alist` then use `display-buffer`. ([GH-413][]) 237 - Add custom variable for opening image. ([GH-383][]) 238 - Improve default `markdown-command` setting 239 - Use markdown-command directly instead of 'sh -c' ([GH-319][]) 240 - Use explicitly numbered group as possible for easy reading regexp 241 - Support list of strings of `markdown-command` 242 - Apply `markdown-translate-filename-function` for `markdown-display-inline-images` 243 ([GH-422][]) 244 - Implement own `filter-buffer-substring-function` for `markdown-view-mode` and 245 `gfm-view-mode` ([GH-493][]) 246 - Improve triple backtick behavior with `electric-pair-mode` 247 - Update code block language list 248 249 * Bug fixes: 250 251 - No longer treat code fragments that are delimited with three 252 backquotes on each side as the beginning of a code block. 253 ([GH-403][]) 254 - Fix infloop caused by incorrect detection of end of code 255 blocks ([GH-349][]). 256 - Remove GFM checkbox overlays when switching major modes. 257 ([GH-238][], [GH-257][]) 258 - Don't test the value of the `composition` property to avoid 259 failing tests. ([GH-246][], [GH-258][]) 260 - Fix types for `markdown-open-command`, `markdown-uri-types`, 261 and `markdown-hr-strings` defcustoms. ([GH-254][], [GH-259][]) 262 - Don't insert trailing whitespace when inserting a blockquote. 263 ([GH-227][], [GH-260][]) 264 - Make wiki link test work even when `/tmp` contains an 265 inaccessible subdirectory. ([GH-261][]) 266 - Fix `markdown-inline-code-face`'s `:inherit` attribute. 267 ([GH-252][]) 268 - Fix type of customizable `markdown-css-paths` variable. 269 ([GH-276][]) 270 - Don't set `markdown-code-face` background color at package 271 load time. ([GH-273][]) 272 - Don't clobber user specified font-lock keywords when toggling 273 features. ([GH-222][]) 274 - Fix font-lock for inline code inside italics and bold. 275 ([GH-275][]) 276 - Make code block language detection handle unspecified 277 or unknown code block languages. ([GH-284][]) 278 - Fix precedence of inline code over inline links. 279 - Improve error reporting for `markdown` and `markdown-open`. 280 ([GH-291][]) 281 - Fix M-RET binding for terminals. ([GH-317][]) 282 - Do not fail displaying inline images on empty links. ([GH-320][]) 283 - Fix off-by-one error in `markdown-inline-code-at-pos`. 284 ([GH-313][]) 285 - Fix bounds during inline comment syntax propertization. ([GH-327][]) 286 - Fix wrong metadata highlighting. ([GH-437][]) 287 - Fix wrong italic highlighting in HTML attributes. ([GH-410][]) 288 - Fix markdown-follow-thing-at-point issue for continuous links. ([GH-305][]) 289 - Fix wrong setting major-mode issue at following wiki link([GH-427][]) 290 - Fix not consider `markdown-list-indent-width` issue([GH-405][]) 291 - Fix URL open issue which contains end parentheses ([GH-408][]) 292 - Follow link even if it is in header([GH-430][]) 293 - Fix clean up list number issue([GH-392][]) 294 - Fix insert markup functions in consecutive case([GH-283][]) 295 - Fix hide markup issue in markdown/gfm-view-mode([GH-468][]) 296 - Fix bold regexp issue([GH-325][]) 297 - Fix italic and punctual character issue([GH-359][]) 298 - Fix table align issue when column contains escaped bar([GH-308][]) 299 - Fix nested block fill-paragraph issue([GH-366][]) 300 - Fix table transpose issue with wiki link 301 - Fix indent-region for pre block([GH-228][]) 302 - Fix link highlight issue which contains escaped right bracket([GH-409][]) 303 - Fix math inline single/double highlight issue([GH-352][]) 304 - Fix markdown-table-forward-cell escaped vertical bar issue([GH-489][]) 305 - Fix markdown-table-backward-cell escaped vertical bar issue 306 - Fix GFM italic markup issue([GH-448][]) 307 308 [gh-171]: https://github.com/jrblevin/markdown-mode/issues/171 309 [gh-216]: https://github.com/jrblevin/markdown-mode/issues/216 310 [gh-222]: https://github.com/jrblevin/markdown-mode/issues/222 311 [gh-224]: https://github.com/jrblevin/markdown-mode/issues/224 312 [gh-227]: https://github.com/jrblevin/markdown-mode/issues/227 313 [gh-228]: https://github.com/jrblevin/markdown-mode/issues/228 314 [gh-229]: https://github.com/jrblevin/markdown-mode/pull/229 315 [gh-235]: https://github.com/jrblevin/markdown-mode/issues/235 316 [gh-238]: https://github.com/jrblevin/markdown-mode/issues/238 317 [gh-246]: https://github.com/jrblevin/markdown-mode/issues/246 318 [gh-247]: https://github.com/jrblevin/markdown-mode/issues/247 319 [gh-248]: https://github.com/jrblevin/markdown-mode/issues/248 320 [gh-249]: https://github.com/jrblevin/markdown-mode/issues/249 321 [gh-251]: https://github.com/jrblevin/markdown-mode/issues/251 322 [gh-252]: https://github.com/jrblevin/markdown-mode/pull/252 323 [gh-254]: https://github.com/jrblevin/markdown-mode/issues/254 324 [gh-255]: https://github.com/jrblevin/markdown-mode/issues/255 325 [gh-257]: https://github.com/jrblevin/markdown-mode/pull/257 326 [gh-258]: https://github.com/jrblevin/markdown-mode/pull/258 327 [gh-259]: https://github.com/jrblevin/markdown-mode/pull/259 328 [gh-260]: https://github.com/jrblevin/markdown-mode/pull/260 329 [gh-261]: https://github.com/jrblevin/markdown-mode/pull/261 330 [gh-262]: https://github.com/jrblevin/markdown-mode/pull/262 331 [gh-263]: https://github.com/jrblevin/markdown-mode/pull/263 332 [gh-264]: https://github.com/jrblevin/markdown-mode/pull/264 333 [gh-266]: https://github.com/jrblevin/markdown-mode/issues/266 334 [gh-268]: https://github.com/jrblevin/markdown-mode/issues/268 335 [gh-270]: https://github.com/jrblevin/markdown-mode/issues/270 336 [gh-272]: https://github.com/jrblevin/markdown-mode/issues/272 337 [gh-273]: https://github.com/jrblevin/markdown-mode/issues/273 338 [gh-274]: https://github.com/jrblevin/markdown-mode/pull/274 339 [gh-275]: https://github.com/jrblevin/markdown-mode/issues/275 340 [gh-276]: https://github.com/jrblevin/markdown-mode/issues/276 341 [gh-277]: https://github.com/jrblevin/markdown-mode/pull/277 342 [gh-280]: https://github.com/jrblevin/markdown-mode/issues/280 343 [gh-281]: https://github.com/jrblevin/markdown-mode/pull/281 344 [gh-283]: https://github.com/jrblevin/markdown-mode/issues/283 345 [gh-284]: https://github.com/jrblevin/markdown-mode/issues/284 346 [gh-291]: https://github.com/jrblevin/markdown-mode/issues/291 347 [gh-296]: https://github.com/jrblevin/markdown-mode/issues/296 348 [gh-303]: https://github.com/jrblevin/markdown-mode/pull/303 349 [gh-305]: https://github.com/jrblevin/markdown-mode/issues/305 350 [gh-308]: https://github.com/jrblevin/markdown-mode/issues/308 351 [gh-313]: https://github.com/jrblevin/markdown-mode/issues/313 352 [gh-317]: https://github.com/jrblevin/markdown-mode/pull/317 353 [gh-319]: https://github.com/jrblevin/markdown-mode/issues/319 354 [gh-320]: https://github.com/jrblevin/markdown-mode/pull/320 355 [gh-322]: https://github.com/jrblevin/markdown-mode/pull/322 356 [gh-325]: https://github.com/jrblevin/markdown-mode/issues/325 357 [gh-327]: https://github.com/jrblevin/markdown-mode/issues/327 358 [gh-331]: https://github.com/jrblevin/markdown-mode/issues/331 359 [gh-335]: https://github.com/jrblevin/markdown-mode/pull/335 360 [gh-340]: https://github.com/jrblevin/markdown-mode/issues/340 361 [gh-349]: https://github.com/jrblevin/markdown-mode/issues/349 362 [gh-350]: https://github.com/jrblevin/markdown-mode/pull/350 363 [gh-352]: https://github.com/jrblevin/markdown-mode/issues/352 364 [gh-359]: https://github.com/jrblevin/markdown-mode/issues/359 365 [gh-366]: https://github.com/jrblevin/markdown-mode/issues/366 366 [gh-369]: https://github.com/jrblevin/markdown-mode/pull/369 367 [gh-378]: https://github.com/jrblevin/markdown-mode/pull/378 368 [gh-383]: https://github.com/jrblevin/markdown-mode/issues/383 369 [gh-389]: https://github.com/jrblevin/markdown-mode/pull/389 370 [gh-392]: https://github.com/jrblevin/markdown-mode/pull/392 371 [gh-403]: https://github.com/jrblevin/markdown-mode/issues/403 372 [gh-405]: https://github.com/jrblevin/markdown-mode/issues/405 373 [gh-406]: https://github.com/jrblevin/markdown-mode/issues/406 374 [gh-408]: https://github.com/jrblevin/markdown-mode/issues/408 375 [gh-409]: https://github.com/jrblevin/markdown-mode/issues/409 376 [gh-410]: https://github.com/jrblevin/markdown-mode/issues/410 377 [gh-413]: https://github.com/jrblevin/markdown-mode/issues/413 378 [gh-415]: https://github.com/jrblevin/markdown-mode/issues/415 379 [gh-421]: https://github.com/jrblevin/markdown-mode/issues/421 380 [gh-422]: https://github.com/jrblevin/markdown-mode/issues/422 381 [gh-427]: https://github.com/jrblevin/markdown-mode/issues/427 382 [gh-428]: https://github.com/jrblevin/markdown-mode/issues/428 383 [gh-430]: https://github.com/jrblevin/markdown-mode/issues/430 384 [gh-437]: https://github.com/jrblevin/markdown-mode/issues/437 385 [gh-448]: https://github.com/jrblevin/markdown-mode/issues/448 386 [gh-451]: https://github.com/jrblevin/markdown-mode/issues/451 387 [gh-468]: https://github.com/jrblevin/markdown-mode/issues/468 388 [gh-489]: https://github.com/jrblevin/markdown-mode/issues/489 389 [gh-493]: https://github.com/jrblevin/markdown-mode/pull/493 390 391 # Markdown Mode 2.3 392 393 *August 31, 2017* 394 395 * **Breaking changes:** 396 397 - `markdown-mode` now requires Emacs 24.3 or later. 398 - Markup insertion and replacement keybindings under <kbd>C-c 399 C-s</kbd> (_s_ for style) have been revised to make them 400 easier to remember. Now, when the prefix <kbd>C-c C-s</kbd> 401 is pressed, a short minibuffer help prompt is presented as a 402 reminder of a few of the most frequently used keys. The major 403 changes are that bold is now inserted with <kbd>b</kbd> 404 (previously <kbd>s</kbd>) and italic is now <kbd>i</kbd> 405 (previously <kbd>e</kbd>). As a result, blockquote is now 406 <kbd>q</kbd> (previously <kbd>b</kbd>) and strikethrough 407 markup is inserted with <kbd>s</kbd> (previously 408 <kbd>d</kbd>). Press <kbd>C-c C-s C-h</kbd> for a complete 409 list of markup insertion keybindings. Heading insertion 410 commands are also now under <kbd>C-c C-s</kbd>. 411 - Link insertion and editing has been consolidated into one 412 command, `markdown-insert-link`, bound to <kbd>C-c C-l</kbd>. 413 As such, the previous separate link insertion keybindings have 414 been removed: <kbd>C-c C-a l</kbd>, <kbd>C-c C-a L</kbd>, 415 <kbd>C-c C-a r</kbd>, and <kbd>C-c C-a u</kbd>. 416 - Image insertion and editing has been consolidated into one 417 command, `markdown-insert-image`, bound to <kbd>C-c C-i</kbd>. 418 As such, the previous separate image insertion keybindings have 419 been removed: <kbd>C-c C-i i</kbd> and <kbd>C-c C-i I</kbd>. 420 - Footnote and wiki link insertion have been moved to the 421 markup insertion prefix, as <kbd>C-c C-s f</kbd> and 422 <kbd>C-c C-s w</kbd>. 423 - The list and outline editing commands have been removed from 424 the top-level positions (previously <kbd>M-LEFT</kbd>, 425 <kbd>M-RIGHT</kbd>, <kbd>M-UP</kbd>, <kbd>M-DOWN</kbd>) 426 and moved to major mode keybindings under <kbd>C-c</kbd> to 427 <kbd>C-c LEFT</kbd>, <kbd>C-c RIGHT</kbd>, 428 <kbd>C-c UP</kbd>, and <kbd>C-c DOWN</kbd>, respectively. 429 ([GH-164][]) 430 - The list and outline editing commands have also been unified 431 so that they all operate on entire subtrees of list items and 432 subtrees of atx headings, symmetrically. Previously there were 433 separate commands for editing heading subtrees, but promoting 434 a single section is easy enough by directly inserting or 435 removing a hash mark or using the markup replacement commands. 436 - Jumping between references and reference definitions via 437 `markdown-jump`, previously bound to <kbd>C-c C-l</kbd>, has 438 been moved to <kbd>C-c C-d</kbd> and rebranded as 439 `markdown-do`, which attempts to do something sensible with 440 the object at the point. 441 - Rename internal `markdown-link-link` to `markdown-link-url` 442 for clarity. 443 - The old inline image toggling command <kbd>C-c C-i C-t</kbd> 444 has been removed and replaced <kbd>C-c C-x C-i</kbd> in order 445 to allow for the new interactive image insertion command at 446 <kbd>C-c C-i</kbd>. Toggling keybindings are currently being 447 grouped under <kbd>C-c C-x</kbd>. 448 - `markdown-blockquote-face` is now applied to the entire 449 blockquote, including the leading `>`, so it can be used to 450 apply a background if desired. 451 - In `markdown-regex-header`, groups 4 and 6 now include 452 whitespace surrounding hash marks in atx headings. 453 - Font lock for `~~strikethrough~~` is now supported in 454 `markdown-mode` in addition to `gfm-mode`. 455 - Introduced a new face for horizontal rules: `markdown-hr-face`. 456 Previously, `markdown-header-delimiter-face` was used. 457 - Markdown Mode is now distributed under the GNU GPL version 3 458 or later. 459 - Rename `markdown-fill-forward-paragraph-function` to 460 `markdown-fill-forward-paragraph`. 461 - Rename `markdown-footnote-face` to `markdown-footnote-marker-face`. 462 - Functions `markdown-insert-inline-link-dwim` and 463 `markdown-insert-reference-link-dwim` have been combined and 464 replaced with `markdown-insert-link`. 465 - Functions `markdown-exdent-region` and `markdown-exdent-or-delete` 466 are now named `markdown-outdent-region` and 467 `markdown-outdent-or-delete`, respectively. 468 - The non-interactive image insertion commands have been 469 refactored to mirror the corresponding link insertion 470 commands. `markdown-insert-image` (for inline images) has 471 been renamed `markdown-insert-inline-image` and it now takes 472 three arguments (previously one optional argument). 473 `markdown-insert-reference-image` now takes four arguments 474 (previously none). 475 476 * New features: 477 478 - Markup hiding: Add a custom variable `markdown-hide-markup`, 479 which determines whether to hide or otherwise beautify 480 Markdown markup. For example, for inline links the brackets, 481 URL, and title will be hidden and only the (clickable) link 482 text will remain. The URL can be seen by hovering with the 483 mouse pointer and edited by deleting one of the invisible 484 brackets or parentheses. This can be toggled interactively 485 using <kbd>C-c C-x C-m</kbd> (`markdown-toggle-markup-hiding`). 486 This setting supersedes URL hiding (below). ([GH-130][]) 487 - Unicode bullets are used to replace ASCII list item markers 488 for unordered lists when markup hiding is enabled. The list 489 of characters used, in order of list level, can be specified 490 by setting the variable `markdown-list-item-bullets`. 491 ([GH-130][]) 492 - When markup hiding is enabled, the characters used for 493 replacing certain markup can be changed by customizing the 494 corresponding variables: 495 `markdown-blockquote-display-char`, 496 `markdown-hr-display-char`, and 497 `markdown-definition-display-char`. 498 - URL and reference label hiding: URLs for inline links and 499 labels for reference links can now be hidden if desired. This is 500 configurable via `markdown-hide-urls`. URLs will appear as 501 `[link](∞)` instead of 502 `[link](http://perhaps.a/very/long/url/)`. To change the 503 placeholder character used, set `markdown-url-compose-char`. 504 This feature can be toggled using <kbd>C-c C-x C-l</kbd> 505 (`markdown-toggle-url-hiding`). If full markup hiding (above) 506 is enabled, then URL hiding has no additional effect. 507 - Native code block font-lock: Add a custom variable 508 `markdown-fontify-code-blocks-natively`, which determines 509 whether to fontify code in code blocks using the native major 510 mode. This only works for fenced code blocks where the 511 language is specified where we can automatically determine the 512 appropriate mode to use. The language to mode mapping may be 513 customized by setting the variable `markdown-code-lang-modes`. 514 ([GH-123][], [GH-185][]) 515 - When the [`edit-indirect`](https://github.com/Fanael/edit-indirect/) 516 package is installed, <kbd>C-c '</kbd> (`markdown-edit-code-block`) 517 can be used to edit a code block in an indirect buffer in the native 518 major mode. Press <kbd>C-c C-c</kbd> to commit changes and return 519 or <kbd>C-c C-k</kbd> to cancel. 520 - Add command <kbd>C-c C-x C-f</kbd> for toggling native font lock 521 for code blocks (`markdown-toggle-fontify-code-blocks-natively`). 522 - Add "page" movement, marking, and narrowing commands, where a 523 "page" in Markdown is defined to be a top-level subtree: 524 `markdown-forward-page` (<kbd>C-x ]</kbd>), 525 `markdown-backward-page` (<kbd>C-x [</kbd>), 526 `markdown-mark-page` (<kbd>C-x C-p</kbd>), and 527 `markdown-narrow-to-page` (<kbd>C-x n p</kbd>). ([GH-191][]) 528 - Add subtree marking and narrowing functions: 529 `markdown-mark-subtree` (<kbd>C-c C-M-h</kbd>) and 530 `markdown-narrow-to-subtree` (<kbd>C-x n s</kbd>). 531 ([GH-191][]) 532 - Add syntax-aware Markdown paragraph movement commands: 533 <kbd>M-{</kbd> (`markdown-backward-paragraph`) and 534 <kbd>M-}</kbd> (`markdown-forward-paragraph`). To mark a 535 paragraph, use <kbd>M-h</kbd> (`markdown-mark-paragraph`). 536 These move at a more granular level than the block movement 537 commands. ([GH-191][]) 538 - The previous block movement and marking commands are now at 539 <kbd>C-M-{</kbd>, <kbd>C-M-}</kbd>, and <kbd>C-c M-h</kbd>. 540 In terms of lists, paragraph movement commands now stop at 541 each list item while block commands move over entire lists. 542 ([GH-191][]) 543 - Add `subtree` as a possible value for 544 `markdown-reference-location` and 545 `markdown-footnote-location`. 546 - Ask flyspell to ignore words in URLs, code fragments, 547 comments, and reference labels. 548 - Make inline links, reference links, angle bracket URLs, and 549 plain URLs clickable. 550 - Add an additional keybinding for toggling inline image 551 display, <kbd>C-c C-x C-i</kbd>. 552 - Add a keybinding for toggling LaTeX math (_e_quation) support: 553 <kbd>C-c C-x C-e</kbd>. 554 - Support Leanpub blocks (asides, info blocks, warnings, etc.). 555 These are simple extensions of the usual blockquote syntax. 556 - Font lock, with markup hiding, for subscripts (e.g., `H~2~0`) 557 and superscripts (e.g., `334^10^`). Thanks to Syohei Yoshida 558 for a patch on which this is based. ([GH-134][]) 559 - Add basic font-lock support for inline attribute lists or 560 inline identifiers used by Pandoc, Python Markdown, PHP 561 Markdown Extra, Leanpub, etc. 562 - Add basic font-lock support for Leanpub section identifiers and 563 page breaks. 564 - Add basic font-lock support for common file inclusion syntax: 565 `<<(file)`, `<<[title](file)`, `<<[file]`, and `<<{file}`. 566 - Add font lock support for Pandoc inline footnotes. ([GH-81][]) 567 - Raise footnote markers and inline footnote text, and 568 optionally hide markup. 569 - Filling with now respects Pandoc line blocks. ([GH-144][]) 570 - Add interactive link editing and insertion command 571 `markdown-insert-link`. ([GH-199][]) 572 - Added <kbd>C-c C-d</kbd>, `markdown-do`, which is a 573 replacement for <kbd>C-c C-l</kbd>, `markdown-jump`. In 574 addition to jumping between reference/footnote labels and 575 definitions, it also toggles GFM checkboxes. 576 - Outline movement keys <kbd>C-c C-p</kbd>, <kbd>C-c C-n</kbd>, 577 <kbd>C-c C-f</kbd>, <kbd>C-c C-b</kbd>, and <kbd>C-c C-u</kbd> 578 now move between list items, when the point is in a list, 579 and move between headings otherwise. 580 - New customization option `markdown-spaces-after-code-fence` to 581 control the number of spaces inserted after a code fence (` ``` `). 582 Thanks to Philipp Stephani for a patch. ([GH-232][]) 583 - New customization option `markdown-gfm-uppercase-checkbox` which, 584 when non-nil, uses `[X]` to complete task list items instead of 585 `[x]`. Thanks to Paul Rankin for a patch. ([GH-236][]) 586 - Add prefix-specific prompts for styles (`C-c C-s`) and toggles 587 (`C-c C-x`). These may be disabled if desired by setting 588 `markdown-enable-prefix-prompts` to `nil`. 589 590 * Improvements: 591 592 - Document customizable variables added in version 2.2 with 593 `:package-version` tags. 594 - Better consistency of function names: predicate functions 595 ending in `-p` shouldn't modify match data. 596 - Generalize rebinding of paragraph movement commands in case users 597 have customized `{forward,backward,mark}-paragraph` bindings. 598 - Adjust point so that it is left at beginning of setext 599 headings in heading navigation commands. 600 - Prevent inline link matching in code blocks. 601 - When inserting a new reference definition, don't add blank 602 line after existing reference definitions. 603 - `markdown-toggle-inline-images` now displays the status in the 604 minibuffer. 605 - Increased default heading scaling range slightly, to make 606 level differences more pronounced when markup is hidden. 607 - Reuse existing windows, when possible, rather than splitting 608 again in preferred direction. ([GH-129][]) 609 - Update known languages in `markdown-gfm-recognized-languages`. 610 - Filling with `fill-region` now leaves code blocks unmodified. 611 ([GH-192][]) 612 - Avoid error when live-previewing a buffer that's not visiting 613 a file. Thanks to Tianxiang Xiong for a patch. 614 ([GH-200][], [GH-201][]) 615 - Adaptive filling for Leanpub blocks. 616 - Set variable `comment-use-syntax`. ([GH-213][]) 617 - Support `electric-quote-inhibit-functions` for inhibiting 618 electric quoting in code spans and blocks. Thanks to Philipp 619 Stephani for patches to both Emacs and Markdown Mode. 620 ([GH-220][]) 621 - Stop inhibiting line breaks inside links when filling. 622 ([GH-173][]) 623 624 * Bug fixes: 625 626 - Fix spurious bold/italic faces in inline code. ([GH-172][]) 627 - Fix defun movement at end of buffer. ([GH-197][]) 628 - Fix bug with adjacent bold font-locking in a list 629 item. ([GH-176][]) 630 - Prevent matching italics, bold, and inline code in comments. 631 - Prevent matching italics and bold in URLs. 632 - Prevent matching links in inline code or comment spans. 633 - Avoid infinite loop when promoting or demoting last section in 634 a buffer. 635 - Fix font lock for subsequent inline links after a malformed 636 inline link. ([GH-209][]) 637 - Prevent clobbering match data in 638 `markdown-font-lock-extend-region-function`. Thanks to 639 Philipp Stephani for a patch. ([GH-221][]) 640 - Fix incorrect indentation of inserted GFM code blocks in lists. 641 Thanks to Philipp Stephani for a patch. ([GH-215][]) 642 - Fix an issue with font lock for headings with code blocks immediately 643 afterwards, without whitespace. ([GH-234][]) 644 645 [gh-81]: https://github.com/jrblevin/markdown-mode/issues/81 646 [gh-123]: https://github.com/jrblevin/markdown-mode/issues/123 647 [gh-130]: https://github.com/jrblevin/markdown-mode/issues/130 648 [gh-134]: https://github.com/jrblevin/markdown-mode/issues/134 649 [gh-144]: https://github.com/jrblevin/markdown-mode/issues/144 650 [gh-164]: https://github.com/jrblevin/markdown-mode/issues/164 651 [gh-172]: https://github.com/jrblevin/markdown-mode/issues/172 652 [gh-173]: https://github.com/jrblevin/markdown-mode/issues/173 653 [gh-176]: https://github.com/jrblevin/markdown-mode/issues/176 654 [gh-185]: https://github.com/jrblevin/markdown-mode/issues/185 655 [gh-191]: https://github.com/jrblevin/markdown-mode/issues/191 656 [gh-192]: https://github.com/jrblevin/markdown-mode/issues/192 657 [gh-197]: https://github.com/jrblevin/markdown-mode/issues/197 658 [gh-199]: https://github.com/jrblevin/markdown-mode/issues/199 659 [gh-200]: https://github.com/jrblevin/markdown-mode/issues/200 660 [gh-201]: https://github.com/jrblevin/markdown-mode/issues/201 661 [gh-209]: https://github.com/jrblevin/markdown-mode/issues/209 662 [gh-213]: https://github.com/jrblevin/markdown-mode/issues/213 663 [gh-215]: https://github.com/jrblevin/markdown-mode/issues/215 664 [gh-220]: https://github.com/jrblevin/markdown-mode/pull/220 665 [gh-221]: https://github.com/jrblevin/markdown-mode/pull/221 666 [gh-232]: https://github.com/jrblevin/markdown-mode/pull/232 667 [gh-234]: https://github.com/jrblevin/markdown-mode/issues/234 668 [gh-236]: https://github.com/jrblevin/markdown-mode/pull/236 669 670 # Markdown Mode 2.2 671 672 *May 26, 2017* 673 674 Version 2.2 is a major new stable release and all users are encouraged 675 to upgrade. Thanks to everyone who submitted bug reports, feature 676 suggestions, and especially patches. 677 678 * **Breaking changes:** 679 680 - Now use <kbd>C-c C-j</kbd> for inserting list items, like 681 AUCTeX and similar to other programming modes. Since <kbd>C-c 682 C-j</kbd> was used for `markdown-jump` (for moving between 683 reference link/footnote markers and their definitions), it has 684 been changed to <kbd>C-c C-l</kbd> (think "leap" or "loop" 685 instead of jump). It's also close to <kbd>C-c C-o</kbd> (used 686 for opening links). ([GH-26][]) 687 - Insertion of `kbd` tags with <kbd>C-c C-s k</kbd> or 688 `markdown-insert-kbd`. 689 - Add YAML metadata parsing. Also allow multiple Pandoc 690 metadata, with tests. Thanks to Danny McClanahan and Syohei 691 Yoshida. ([GH-66][], [GH-91][], [GH-155][], [GH-156][], 692 [GH-157][]) 693 - Change the behavior of <kbd>C-c C-o</kbd> 694 (`markdown-follow-link-at-point`) so that if a link is a 695 complete URL, it will open in a browser. Otherwise, open it 696 with `find-file` after stripping anchors and/or query strings. 697 ([GH-132][]) 698 - Make font lock for missing wiki links optional and disabled by 699 default. Add new custom variable 700 `markdown-wiki-link-fontify-missing` to control this behavior. 701 - The _function_ `markdown-enable-math` has been made obsolete 702 and renamed to `markdown-toggle-math`. When called without an 703 argument, the result is to toggle this extension rather than 704 enable it. 705 706 * New features: 707 708 - Filling for definition list items. ([GH-13][]) 709 - Added option `markdown-gfm-downcase-languages` to use 710 lowercase language name in GFM code blocks. 711 ([GH-71][], [GH-73][]) 712 - Customizable live preview window split direction via 713 `markdown-split-window-direction`. ([GH-129][], [GH-188][]) 714 - Variable-height headings via 715 `markdown-header-scaling`. ([GH-121][]) 716 - Implement inline image previews via 717 `markdown-toggle-inline-images` and <kbd>C-c C-i C-t</kbd>. 718 Thanks to Syohei Yoshida. ([GH-122][], [GH-128][]) 719 - Added `markdown-wiki-link-search-subdirectories` to enable 720 searching for wiki link files in subdirectories. ([GH-174][]) 721 - Added option to automatically continue lists when `RET` is 722 pressed. `markdown-indent-on-enter` now has three settings. 723 ([GH-179][]) 724 - Match fenced code blocks with language and info strings. 725 ([GH-184][]) 726 - Add smart Markdown block navigation commands <kbd>M-{</kbd> 727 and <kbd>M-}</kbd>. These replace the 728 regular-expression-based "paragraph" movement commands 729 provided by Emacs, which do not recognize Markdown syntax 730 (e.g., headings inside of code blocks). Also use 731 <kbd>M-h</kbd> for marking a block and <kbd>C-x n b</kbd> to 732 narrow to a block. 733 - Add `markdown-nested-imenu-heading-index` as a customizable 734 option. It may be disabled to instead generate a flat imenu 735 index. 736 - Basic font lock and filling for definition lists. As a side 737 effect, list item navigation and movement should also work. 738 - Add command for toggling GFM task list items via 739 <kbd>C-c C-c C-x</kbd> (`markdown-toggle-gfm-checkbox`). 740 - Ability to toggle wiki link support via a new custom variable 741 `markdown-enable-wiki-links`. This may be set in a file local 742 variable. Also added function `markdown-toggle-wiki-links` 743 and a menu item. 744 745 * Improvements: 746 747 - Menubar reorganization. Grouped related actions together, 748 added missing commands, and added several toggle options to 749 the menu. ([GH-147][]) 750 - Use `toggle` menu style for macOS compatibility. 751 - Remove autoload for `.text` files. Thanks to Steve Purcell. 752 ([GH-118][]) 753 - Set own `adaptive-fill-regexp` so that `fill-paragraph` works 754 for list items. Thanks to Syohei Yoshida for the patch. 755 ([GH-79][], [GH-80][]) 756 - Suppress minibuffer output when generated HTML is small. 757 Thanks to Syohei Yoshida. ([GH-83][], [GH-86][]) 758 - Use GitHub fetcher for `markdown-mode` on MELPA. ([GH-84][]) 759 - Improve fenced code block parsing. Thanks to Danny McClanahan. 760 ([GH-85][], [GH-95][]) 761 - Markdown Mode is now automatically tested against Emacs 762 24.1-24.5 and 25.1-25.2. ([GH-99][]) 763 - Make live-preview mode follow min or max point. Thanks to 764 Danny McClanahan. ([GH-102][]) 765 - Improved font-lock performance. ([GH-119][]) 766 - Maintain cursor position when indenting instead of moving to 767 the beginning of the line. Thanks to Isaac Hodes. 768 ([GH-125][]) 769 - Add used language names to front of list of known languages. 770 ([GH-135][]) 771 - Support basic TOML metadata. Thanks to Jorge Israel Peña. 772 ([GH-137][]) 773 - Prohibit setext heading text from starting with hyphens, 774 spaces or tabs, so that there is no ambiguity between setext 775 headings and in-progress lists. ([GH-139][], [GH-143][]) 776 - Ignore heading lines in `fill-paragraph`. Thanks to Syohei 777 Yoshida. ([GH-159][], [GH-162][]) 778 - Improve matching of multiple math blocks with non-math text in 779 between. Thanks to Dave Kleinschmidt for a patch. 780 ([GH-168][]) 781 - Prevent `fill-paragraph` from filling lines in code blocks. 782 ([GH-169][]) 783 - Fix font lock for links with URLs containing parentheses. 784 ([GH-170][]) 785 - `fill-paragraph` now respects paragraph boundaries within 786 blockquotes. ([GH-186][]) 787 - Set mark when calling `markdown-up-heading`. 788 - Improved font locking after empty GFM code block insertion. 789 - Fix spurious italics from underscores in URLs. 790 - Respect `font-lock-mode` being nil. Only call 791 `font-lock-refresh-defaults` if `font-lock-mode` is non-nil to 792 prevent it from being turned on when disabled by user. Thanks 793 to Tom May for the patch. 794 - Fix list item insertion on ordered lists with hash marks 795 (Pandoc "fancy lists"). 796 - Treat polymode blocks as code blocks when parsing the buffer. 797 - Require whitespace atx heading hashmarks, as required by the 798 original atx specification (but not enforced by Markdown.pl). 799 The benefit is that it prevents false positives for #hashtags 800 and things like "Engine #1" when lines wrap. 801 - Complete heading markup when point is on an setext heading and 802 `markdown-insert-header-dwim` is invoked 803 (<kbd>C-c C-t h</kbd>). 804 - Better point position after inserting asymmetric atx headings. 805 806 * Bug fixes: 807 808 - Fix `scripts/get-recognized-gfm-languages.el`, which skipped 809 languages with spaces. ([GH-72][], [GH-82][]) 810 - `README.md` specified Arch (AUR) package (`emacs-goodies-el`), 811 which did not exist. ([GH-74][]) 812 - Don't accidentally override user entries in `auto-mode-alist`. 813 ([GH-127][]) 814 - Fix `markdown-cycle` issue with heading-like strings in code 815 blocks. Thanks to Syohei Yoshida. ([GH-75][], [GH-76][]) 816 - Fix moving same level heading over code block issue. Thanks 817 to Syohei Yoshida. ([GH-77][], [GH-78][]) 818 - Don't insert empty title strings for links. Thanks to 819 Sebastian Wiesner for the patch. ([GH-89][]) 820 - Fix possible infinite loop in `markdown-cleanup-list-numbers`. 821 Thanks to Danny McClanahan. ([GH-98][], [GH-100][]) 822 - Fix an args-out-of-range error due to the syntax-propertize 823 function returning point which is larger than `point-max`. 824 Thanks to Syohei Yoshida. ([GH-142][]) 825 - Respect narrowed region in `markdown-find-previous-prop`. 826 Thanks to Vitalie Spinu. ([GH-109][]) 827 - Move point at least 1 char in 828 `markdown-match-propertized-text` to avoid possible infinite 829 loop in font-lock. Thanks to Vitalie Spinu. ([GH-110][]) 830 - Fix issues where buffers could be marked as modified when no 831 modifications were made. ([GH-115][], [GH-116][], [GH-146][]) 832 - Fix an issue where comments of the form `<!-- > comment -->` 833 were not correctly identified. ([GH-117][]) 834 - Prevent spurious bold fontification. Thanks to Kévin Le 835 Gouguec. ([GH-124][]) 836 - Keep metadata visible when cycling visibility. ([GH-136][]) 837 - `markdown-syntax-propertize-extend-region` should not 838 overwrite match-data, which caused issues with 839 `replace-regexp`, etc. ([GH-104][], [GH-105][]) 840 - Don't list heading-like lines in code blocks or metadata in 841 imenu. Thanks to Syohei Yoshida. ([GH-145][], [GH-154][]) 842 - Fix an issue where fill paragraph wouldn't work following 843 unclosed left square brackets. ([GH-148][], [GH-161][]) 844 - Fix default language presented when inserting GFM code blocks. 845 Thanks to Conal Elliot for a patch. ([GH-152][]) 846 - Backspace now always deletes characters if a region is 847 specified. Thanks to Syohei Yoshida. 848 ([GH-166][], [GH-167][]) 849 - Fix `markdown-header-face` inherit from nil error, e.g., when 850 exporting HTML from an Org mode file containing a Markdown 851 source block. Thanks to Moogen Tian for a patch. 852 ([GH-190][], [GH-193][]) 853 - Inserting a reference link no longer causes an "args out of 854 range" commit error when the existing reference label is a 855 single commit character. 856 - Fix to honor location setting when inserting reference 857 definitions. 858 - Fixed an issue where, if there is special markup at the end of 859 the buffer, deleting a character backward would cause the 860 font-lock faces to disappear. 861 - Fix incorrect matching of italic text due to underscores in 862 math mode. Thanks also to Dave Kleinschmidt. 863 - Fix italic highlighting issue when each line or both lines are list. 864 - Handle false positive italics across list items. 865 866 [gh-13]: https://github.com/jrblevin/markdown-mode/issues/13 867 [gh-26]: https://github.com/jrblevin/markdown-mode/issues/26 868 [gh-66]: https://github.com/jrblevin/markdown-mode/issues/66 869 [gh-71]: https://github.com/jrblevin/markdown-mode/issues/71 870 [gh-72]: https://github.com/jrblevin/markdown-mode/issues/72 871 [gh-73]: https://github.com/jrblevin/markdown-mode/issues/73 872 [gh-74]: https://github.com/jrblevin/markdown-mode/issues/74 873 [gh-75]: https://github.com/jrblevin/markdown-mode/issues/75 874 [gh-76]: https://github.com/jrblevin/markdown-mode/pull/76 875 [gh-77]: https://github.com/jrblevin/markdown-mode/pull/77 876 [gh-78]: https://github.com/jrblevin/markdown-mode/pull/78 877 [gh-79]: https://github.com/jrblevin/markdown-mode/issues/79 878 [gh-80]: https://github.com/jrblevin/markdown-mode/pull/80 879 [gh-82]: https://github.com/jrblevin/markdown-mode/pull/82 880 [gh-83]: https://github.com/jrblevin/markdown-mode/issues/83 881 [gh-84]: https://github.com/jrblevin/markdown-mode/issues/84 882 [gh-86]: https://github.com/jrblevin/markdown-mode/pull/86 883 [gh-85]: https://github.com/jrblevin/markdown-mode/issues/85 884 [gh-89]: https://github.com/jrblevin/markdown-mode/pull/89 885 [gh-91]: https://github.com/jrblevin/markdown-mode/pull/91 886 [gh-95]: https://github.com/jrblevin/markdown-mode/pull/95 887 [gh-98]: https://github.com/jrblevin/markdown-mode/issues/98 888 [gh-99]: https://github.com/jrblevin/markdown-mode/pull/99 889 [gh-100]: https://github.com/jrblevin/markdown-mode/pull/100 890 [gh-102]: https://github.com/jrblevin/markdown-mode/pull/102 891 [gh-104]: https://github.com/jrblevin/markdown-mode/issues/104 892 [gh-105]: https://github.com/jrblevin/markdown-mode/pull/105 893 [gh-109]: https://github.com/jrblevin/markdown-mode/pull/109 894 [gh-110]: https://github.com/jrblevin/markdown-mode/pull/110 895 [gh-115]: https://github.com/jrblevin/markdown-mode/issues/115 896 [gh-116]: https://github.com/jrblevin/markdown-mode/pull/116 897 [gh-117]: https://github.com/jrblevin/markdown-mode/issues/117 898 [gh-118]: https://github.com/jrblevin/markdown-mode/pull/118 899 [gh-119]: https://github.com/jrblevin/markdown-mode/issues/119 900 [gh-121]: https://github.com/jrblevin/markdown-mode/issues/121 901 [gh-122]: https://github.com/jrblevin/markdown-mode/issues/122 902 [gh-124]: https://github.com/jrblevin/markdown-mode/issues/124 903 [gh-125]: https://github.com/jrblevin/markdown-mode/pull/125 904 [gh-127]: https://github.com/jrblevin/markdown-mode/issues/127 905 [gh-128]: https://github.com/jrblevin/markdown-mode/pull/128 906 [gh-129]: https://github.com/jrblevin/markdown-mode/issues/129 907 [gh-132]: https://github.com/jrblevin/markdown-mode/pull/132 908 [gh-135]: https://github.com/jrblevin/markdown-mode/issues/135 909 [gh-136]: https://github.com/jrblevin/markdown-mode/issues/136 910 [gh-137]: https://github.com/jrblevin/markdown-mode/issues/137 911 [gh-139]: https://github.com/jrblevin/markdown-mode/issues/139 912 [gh-142]: https://github.com/jrblevin/markdown-mode/pull/142 913 [gh-143]: https://github.com/jrblevin/markdown-mode/issues/143 914 [gh-145]: https://github.com/jrblevin/markdown-mode/issues/145 915 [gh-154]: https://github.com/jrblevin/markdown-mode/pull/154 916 [gh-146]: https://github.com/jrblevin/markdown-mode/pull/146 917 [gh-147]: https://github.com/jrblevin/markdown-mode/issues/147 918 [gh-148]: https://github.com/jrblevin/markdown-mode/issues/148 919 [gh-152]: https://github.com/jrblevin/markdown-mode/issues/152 920 [gh-155]: https://github.com/jrblevin/markdown-mode/issues/155 921 [gh-156]: https://github.com/jrblevin/markdown-mode/issues/156 922 [gh-157]: https://github.com/jrblevin/markdown-mode/pull/157 923 [gh-159]: https://github.com/jrblevin/markdown-mode/issues/159 924 [gh-161]: https://github.com/jrblevin/markdown-mode/issues/161 925 [gh-162]: https://github.com/jrblevin/markdown-mode/pull/162 926 [gh-166]: https://github.com/jrblevin/markdown-mode/issues/166 927 [gh-167]: https://github.com/jrblevin/markdown-mode/pull/167 928 [gh-168]: https://github.com/jrblevin/markdown-mode/pull/168 929 [gh-169]: https://github.com/jrblevin/markdown-mode/issues/169 930 [gh-170]: https://github.com/jrblevin/markdown-mode/issues/170 931 [gh-174]: https://github.com/jrblevin/markdown-mode/issues/174 932 [gh-179]: https://github.com/jrblevin/markdown-mode/issues/179 933 [gh-184]: https://github.com/jrblevin/markdown-mode/issues/184 934 [gh-186]: https://github.com/jrblevin/markdown-mode/issues/186 935 [gh-188]: https://github.com/jrblevin/markdown-mode/pull/188 936 [gh-190]: https://github.com/jrblevin/markdown-mode/pull/190 937 [gh-193]: https://github.com/jrblevin/markdown-mode/issues/193 938 939 # Markdown Mode 2.1 940 941 *January 9, 2016* 942 943 Version 2.1 is a major new stable release and all users are encouraged 944 to upgrade. The many new features and bug fixes included are 945 described below. 946 947 Markdown Mode is developed and tested primarily for compatibility with 948 GNU Emacs versions 24.3 and later. It requires `cl-lib` version 0.5 949 or later. This library has been bundled with GNU Emacs since version 950 24.3. Users of GNU Emacs 24.1 and 24.2 can install `cl-lib` using 951 `M-x package-install RET cl-lib`. 952 953 This release of Markdown Mode contains patches written by many 954 individuals including Masayuki Ataka, Jonas Bernoulli, Roger Bolsius, 955 Daniel Brotsky, Julien Danjou, Samuel Freilich, David Glasser, Marijn 956 Haverbeke, Antonis Kanouras, Keshav Kini, Vasily Korytov, Danny 957 McClanahan, Matt McClure, Howard Melman, Makoto Motohashi, Jon 958 Mountjoy, Pierre Neidhardt, Spanti Nicola, Paul W. Rankin, Christophe 959 Rhodes, Tim Visher, and Syohei Yoshida. Many others also submitted 960 bug reports. Thanks to everyone for your contributions. 961 962 * **Breaking changes:** 963 964 - In GFM Mode, `visual-line-mode` is no longer enabled by 965 default. A `gfm-mode-hook` was added, which could be used to 966 keep `visual-line-mode` on by default in `gfm-mode`. 967 ([GH-31][]) 968 969 * New features: 970 971 - Add automatically updating live preview functionality 972 (<kbd>C-c C-c l</kbd>) via the native `eww` browser. 973 ([GH-36][], [GH-53][], [GH-57][], [GH-58][], [GH-63][]) 974 - Use `autoload` to enable `markdown-mode` in `auto-mode-alist` 975 for files with `.text`, `.markdown`, and `.md` extensions. 976 - Use Travis CI for automated build testing. 977 - ATX heading subtree promotion and demotion via 978 <kbd>M-S-LEFT</kbd>, and <kbd>M-S-RIGHT</kbd>. 979 - ATX heading subtree moving up and down via <kbd>M-S-UP</kbd> 980 and <kbd>M-S-DOWN</kbd>. 981 - Convert inline links to reference links when 982 `markdown-insert-reference-link-dwim` is used when the point 983 is at an inline link. 984 - Allow linking to multiple stylesheets in `markdown-css-paths` 985 list. Use stylesheets for both preview and export. Previous 986 `markdown-css-path` (singular) is now deprecated. 987 - Customizable default unordered list marker via 988 `markdown-unordered-list-item-prefix`. 989 - Add asymmetric ATX heading adornment option 990 `markdown-asymmetric-header`. 991 - Font lock for `<kbd>` tags. 992 - Support GFM-style code blocks in `markdown-mode` (as well as 993 `gfm-mode`). ([GH-2][]) 994 - New function `markdown-electric-backquote` will prompt for a 995 language name for GFM code blocks. This can be disabled by 996 customizing the variable 997 `markdown-gfm-use-electric-backquote`. ([GH-9][]) 998 - Completion of programming language names for GFM code blocks. 999 A list of pre-defined languages is included, but this can be 1000 augmented by setting `markdown-gfm-additional-languages`. 1001 ([GH-38][], [GH-54][], [GH-59][], [GH-60][], [GH-64][]) 1002 - Strikethrough support in `gfm-mode`. 1003 - Support for GFM toggling checkboxes `mouse-1` or 1004 <kbd>RET</kbd>. This is controlled by a new custom variable, 1005 `markdown-make-gfm-checkboxes-buttons`. Thanks to Howard 1006 Melman for a patch. ([GH-7][]) 1007 - Font lock and filling for Pandoc "fancy lists," which use `#` 1008 as the list marker. ([GH-3][]) 1009 - Basic support for filling of definition lists. ([GH-20][]) 1010 - Support [Ikiwiki](http://ikiwiki.info/)-style search for wiki links that allows 1011 links relative to parent directories. Enable this by setting 1012 `markdown-wiki-link-search-parent-directories`. 1013 ([GH-8][], [GH-21][]) 1014 1015 * Improvements: 1016 1017 - General font lock improvements for comments, code blocks, 1018 blockquotes, headings, horizontal rules, bold, and italics. 1019 ([GH-67][], [GH-68][]) 1020 - Separate highlighting for Markdown markup characters 1021 (asterisks, underscores, backquotes, etc.) to aid in 1022 readability. 1023 - Font lock for bold, italics, and LaTeX math work inside block 1024 elements such as headings and blockquotes. ([GH-39][]) 1025 - Display a link to the GitHub repository in the MELPA 1026 description. ([GH-37][]) 1027 1028 * Bug fixes: 1029 1030 - Fix bug in `markdown-complete-region/buffer` where level-two 1031 Setext headings could be confused with horizontal rules. 1032 Includes a unit test. Thanks to Gunnar Franke for the report. 1033 - Fix filling when a decimal number appears at column zero, 1034 which could be confused with an ordered list item. 1035 - Fix buffer-wide markup completion. 1036 - Fix font-lock for GFM code blocks without language keywords. 1037 - Improved Setext header insertion to support wide characters. 1038 - Fix expensive `paragraph-separate` regular expression. 1039 - Make `comment-auto-fill-only-comments` a buffer-local 1040 variable, which allows for better default filling behavior in 1041 cases where the global variable is non-`nil`. 1042 - Fix Emacs 23 compatibility by checking for 1043 `font-lock-refresh-defaults` before calling it. 1044 - Handle reference definitions when filling paragraphs. 1045 - Improve filling of list items with indentation. 1046 - Properly handle footnotes when filling. 1047 - Fix issues with markdown-footnote-kill and related functions. 1048 - Improve font lock for fenced code blocks. 1049 - Avoid avoid overwriting source file when exporting if source 1050 file has `.html` extension. 1051 - Fix and improve ordered list behavior to preserve digit 1052 spacing and avoid an infinite loop in certain cases. Adjust 1053 ordered list whitespace when marker digit count increases. 1054 - Improve reference definition regular expression to avoid 1055 matching multiple reference links in one line. 1056 - Allow spaces in fenced code language identifiers. ([GH-22][]) 1057 - Improve font lock for preformatted blocks and fenced code 1058 blocks. 1059 - Fix out-of-order HTML output. ([GH-14][]) 1060 - Add console-friendly backspace and tab bindings. ([GH-15][]) 1061 - Better treatment of files without extensions for wiki links. 1062 When files have no extensions, don't append a lone period. 1063 ([GH-23][]) 1064 - Call `looking-back` with two arguments for compatibility with 1065 Emacs 25.1. 1066 - Make `(beginning-of-defun -1)` go to next title when point is 1067 at beginning of defun. ([GH-34][]) 1068 - Ignore headings in code blocks for font lock, movement, and 1069 visibility cycling. 1070 ([GH-27][], [GH-33][], [GH-35][], [GH-40][], [GH-41][]) 1071 - Don't highlight wiki links in code blocks. ([GH-17][]) 1072 - Don't move to links in code blocks with <kbd>C-c C-p</kbd> and 1073 <kbd>C-c C-n</kbd>. 1074 - Fix hanging indentation for list items and single-line 1075 preformatted blocks. ([GH-16][], [GH-28][], [GH-30][]) 1076 - Better rejection of false positives for italics with respect 1077 to other inline elements (inline code and bold). 1078 - Predicate functions should not modify match data. 1079 - Use correct list marker from previous list level when using 1080 <kbd>C-u M-RET</kbd> to insert a dedented list item. Prevent 1081 an infinite loop in some cases. ([GH-4][]) 1082 - Reduce lag when scrolling or inserting text into large files. 1083 ([GH-30][], [GH-101][]) 1084 - Avoid confusing tramp errors with malformed wiki links. 1085 ([GH-65][]) 1086 1087 [gh-2]: https://github.com/jrblevin/markdown-mode/pull/2 1088 [gh-3]: https://github.com/jrblevin/markdown-mode/pull/3 1089 [gh-4]: https://github.com/jrblevin/markdown-mode/issues/4 1090 [gh-7]: https://github.com/jrblevin/markdown-mode/issues/7 1091 [gh-8]: https://github.com/jrblevin/markdown-mode/issues/8 1092 [gh-9]: https://github.com/jrblevin/markdown-mode/issues/9 1093 [gh-14]: https://github.com/jrblevin/markdown-mode/issues/14 1094 [gh-15]: https://github.com/jrblevin/markdown-mode/issues/15 1095 [gh-16]: https://github.com/jrblevin/markdown-mode/issues/16 1096 [gh-17]: https://github.com/jrblevin/markdown-mode/issues/17 1097 [gh-18]: https://github.com/jrblevin/markdown-mode/issues/18 1098 [gh-20]: https://github.com/jrblevin/markdown-mode/issues/20 1099 [gh-21]: https://github.com/jrblevin/markdown-mode/issues/21 1100 [gh-22]: https://github.com/jrblevin/markdown-mode/issues/22 1101 [gh-23]: https://github.com/jrblevin/markdown-mode/issues/23 1102 [gh-27]: https://github.com/jrblevin/markdown-mode/issues/27 1103 [gh-28]: https://github.com/jrblevin/markdown-mode/issues/28 1104 [gh-30]: https://github.com/jrblevin/markdown-mode/issues/30 1105 [gh-31]: https://github.com/jrblevin/markdown-mode/issues/31 1106 [gh-32]: https://github.com/jrblevin/markdown-mode/pull/32 1107 [gh-33]: https://github.com/jrblevin/markdown-mode/issues/33 1108 [gh-34]: https://github.com/jrblevin/markdown-mode/pull/34 1109 [gh-35]: https://github.com/jrblevin/markdown-mode/pull/35 1110 [gh-36]: https://github.com/jrblevin/markdown-mode/pull/36 1111 [gh-37]: https://github.com/jrblevin/markdown-mode/issues/37 1112 [gh-38]: https://github.com/jrblevin/markdown-mode/issues/38 1113 [gh-39]: https://github.com/jrblevin/markdown-mode/issues/39 1114 [gh-40]: https://github.com/jrblevin/markdown-mode/pull/40 1115 [gh-41]: https://github.com/jrblevin/markdown-mode/pull/41 1116 [gh-53]: https://github.com/jrblevin/markdown-mode/pull/53 1117 [gh-54]: https://github.com/jrblevin/markdown-mode/pull/54 1118 [gh-57]: https://github.com/jrblevin/markdown-mode/pull/57 1119 [gh-58]: https://github.com/jrblevin/markdown-mode/pull/58 1120 [gh-59]: https://github.com/jrblevin/markdown-mode/pull/59 1121 [gh-60]: https://github.com/jrblevin/markdown-mode/pull/60 1122 [gh-63]: https://github.com/jrblevin/markdown-mode/pull/63 1123 [gh-64]: https://github.com/jrblevin/markdown-mode/pull/64 1124 [gh-65]: https://github.com/jrblevin/markdown-mode/pull/65 1125 [gh-67]: https://github.com/jrblevin/markdown-mode/pull/67 1126 [gh-68]: https://github.com/jrblevin/markdown-mode/pull/68 1127 [gh-101]: https://github.com/jrblevin/markdown-mode/issues/101 1128 1129 # Markdown Mode 2.0 1130 1131 *March 24, 2013* 1132 1133 Version 2.0 is a major new stable release with many new features, 1134 including some changes to keybindings for element insertion and 1135 outline navigation. In summary, Markdown Mode now has improved 1136 keybindings, smarter markup insertion commands, a general markup 1137 removal command, markup completion (normalization), markup promotion 1138 and demotion, list and region editing, many syntax highlighting 1139 improvements, new and improved movement commands, and generalized link 1140 following and movement. 1141 1142 * **Breaking changes:** 1143 1144 - Physical style element insertion commands prefixed by 1145 <kbd>C-c C-p</kbd> have been removed in favor of their 1146 logical style counterparts prefixed by <kbd>C-c C-s</kbd>. 1147 - Shift is now the preferred way to distinguish keybindings for 1148 two related elements. For example, you can insert an inline 1149 link with <kbd>C-c C-a l</kbd> or a reference link with 1150 <kbd>C-c C-a L</kbd>. The latter keybinding is new and 1151 preferred over <kbd>C-c C-a r</kbd>, which is deprecated. 1152 - Footnote keybindings have been moved away from the 1153 <kbd>C-c C-f n</kbd> prefix. 1154 - Several other new keybindings have been introduced and are 1155 described in more detail below. 1156 - Removed wiki link following with `RET` and 1157 `markdown-follow-wiki-link-on-enter` setting. Use the 1158 unified following (open link) command <kbd>C-c C-o</kbd> 1159 instead. 1160 1161 * New features: 1162 1163 - Fast heading insertion with a single command which 1164 automatically calculates the type (atx or setext) and level. 1165 Prefix with <kbd>C-u</kbd> to promote the heading by one 1166 level or <kbd>C-u C-u</kbd> to demote the heading by one 1167 level. Headings with a specific level or type can still be 1168 inserted quickly with specific keybindings. 1169 - Easily kill an element (e.g., a link or reference definition) 1170 at the point with <kbd>C-c C-k</kbd> and store the most 1171 important part in the kill ring (e.g., the link text or URL). 1172 - Markup completion (<kbd>C-c C-]</kbd>) normalizes the markup 1173 for an element (e.g., it balances hash marks and removing 1174 extra whitespace for atx headings). 1175 - Markup promotion and demotion via <kbd>C-c C--</kbd> and 1176 <kbd>C-c C-=</kbd>, respectively. The sequences 1177 <kbd>M-UP</kbd> and <kbd>M-DOWN</kbd> may 1178 also be used. 1179 - List editing: move list items up and down with 1180 <kbd>M-UP</kbd> and <kbd>M-DOWN</kbd>. 1181 Indent and exdent list items with <kbd>M-LEFT</kbd> 1182 and <kbd>M-RIGHT</kbd>. 1183 - Region editing: indent and exdent regions, with tab stops 1184 determined by context, using <kbd>C-c <</kbd> and 1185 <kbd>C-c ></kbd> (as in `python-mode`). 1186 - Smart list item insertion with <kbd>M-RET</kbd>, with 1187 indentation and marker determined by the surrounding context. 1188 Prefix with <kbd>C-u</kbd> to decrease the indentation by one 1189 level or <kbd>C-u C-u</kbd> to increase the indentation one 1190 level. 1191 - Quickly jump between reference definitions and 1192 reference-style links and between footnote markers and 1193 footnote text with <kbd>C-c C-j</kbd>. Create undefined 1194 references when jumping from a reference link. When jumping 1195 back, present a buffer with buttons for selecting which link 1196 to jump to. 1197 - Revised outline navigation commands, following `org-mode`. 1198 This frees up the sexp navigation keys <kbd>C-M-f</kbd> and 1199 <kbd>C-M-b</kbd> which can be useful in Markdown documents 1200 which have many matching delimiters, as well as the defun 1201 navigation keys <kbd>C-M-a</kbd> and <kbd>C-M-e</kbd>. 1202 - Previous/next section movement with <kbd>C-M-a</kbd> and 1203 <kbd>C-M-e</kbd> (in Emacs parlance, this is movement by 1204 defun). Mark the current section with <kbd>C-M-h</kbd>. 1205 - Previous/next paragraph movement via <kbd>M-{</kbd> and 1206 <kbd>M-}</kbd>. 1207 - Previous/next block movement with <kbd>C-u M-{</kbd> and 1208 <kbd>C-u M-}</kbd>. 1209 - Customizable reference link location via 1210 `markdown-reference-location`. 1211 - Font lock for title strings in inline links. 1212 - Subtle syntax highlighting for hard line breaks. 1213 - In GFM Mode, change italic font lock behavior to match GFM 1214 specification regarding underscores in words. 1215 - Insertion command (<kbd>C-c C-s P</kbd>) for GFM quoted code 1216 blocks. 1217 - Syntax highlighting for MultiMarkdown metadata and Pandoc 1218 title blocks. 1219 - Added before and after export hooks 1220 `markdown-before-export-hook` and 1221 `markdown-after-export-hook`. 1222 - Added a library of regression tests which currently contains 1223 160 unit tests. 1224 1225 * Improvements: 1226 1227 - ATX heading insertion will use current line as heading text 1228 if not blank and there is no active region. 1229 - Setext heading insertion will prompt for heading title when 1230 there is no active region. 1231 - When the point is at a heading, the heading insertion 1232 commands will replace the heading at point with a heading of 1233 the requested level and type. 1234 - When there is no active region, the bold, italic, code, link, 1235 and image insertion commands will operate on the word at 1236 point, if any, so that you don't have to have an active 1237 selection for simple modifications. 1238 - Repeating the bold, italic, or code insertion commands when 1239 the point is at an element of the corresponding type will 1240 remove the markup. 1241 - Indentation of preformatted text and blockquotes will be 1242 adjusted automatically in contexts where more indentation is 1243 required, as in nested lists. (For example, in Markdown, a 1244 preformatted text block inside a first-level list item must 1245 have eight spaces of indentation.) 1246 - Improved reference link insertion with label completion: 1247 + Use word at point as link text, if possible, when there 1248 is no active region. 1249 + Tab completion of reference labels from the set of 1250 currently defined references. 1251 + Reference link insertion no longer prompts for a URL or 1252 title if the label is already defined. 1253 + If no URL is given, create an empty reference definition 1254 and move the point there. 1255 - Basic reference-style image markup insertion. 1256 - Multiple horizontal rule styles, `markdown-hr-strings`, 1257 customizable as a list of strings, which can be cycled 1258 through. 1259 - New URL insertion command for inserting plain URLs delimited 1260 by angle brackets (<kbd>C-c C-a u</kbd>). Works on URL at 1261 point, if any, when there is no active region. 1262 - Generally improved insertion commands with respect to 1263 insertion of surrounding whitespace and point position after 1264 insertion (e.g., ensuring blank lines before and after newly 1265 inserted headings and horizontal rules). 1266 - Unified link following: open links in a browser and wiki 1267 links in a new buffer with the same keybinding (<kbd>C-c 1268 C-o</kbd>). This supersedes the separate wiki link following 1269 command (<kbd>C-c C-w</kbd>). 1270 - Generalized link movement and following: move between and 1271 open all link types (inline, reference, wiki, angle URIs) 1272 using the same key bindings (<kbd>M-n</kbd> and 1273 <kbd>M-p</kbd>). Previously, these commands only moved 1274 between wiki links, but with the above following enhancement, 1275 moving between hyperlinks of all types is more useful. 1276 - Syntax highlighting for GFM quoted code blocks with an 1277 optional language keyword. 1278 - Dynamic loading and unloading for math support with 1279 refontification. 1280 - Allow underscores and colons in equation labels in math mode. 1281 - Syntax highlighting improvements: faster identification of 1282 preformatted blocks. Markdown Mode adheres to the four space 1283 rule for nested list items: in a list item of level _n_, 1284 preformatted text must be indented at least 4(_n_ + 1) 1285 spaces. 1286 - More inclusive blockquote regular expression highlights 1287 blockquotes with leading indentation, when appropriate. 1288 - Regular expression optimization for URI matching. 1289 - Numerous other improvements for more accurate syntax 1290 highlighting. 1291 - Respect hard line breaks when filling paragraphs. 1292 - Add indentation positions: preceding list markers and pre 1293 block position. 1294 - Use button-map for navigating undefined references, so that 1295 references can be navigated via the keyboard by pressing 1296 <kbd>TAB</kbd> and <kbd>S-TAB</kbd>. 1297 - Use newer `use-region-p` when possible to check for active 1298 region, with fallbacks for older Emacsen and Xemacs. 1299 - Clean up whitespace after deleting footnote text. 1300 - Use adaptive filling for list items and blockquotes. 1301 - Treat all list items (any marker type) the same way with respect 1302 to filling. 1303 - Retain the `>` prefix when filling blockquotes. 1304 - Fill list items inside of blockquotes. 1305 - Numerous other internal improvements to make the code base 1306 more robust. 1307 1308 * Bug fixes: 1309 1310 - Fix bug in heading visibility cycling introduced in version 1311 1.9 where the level of headings was being calculated 1312 incorrectly. 1313 - Fix problems inserting ATX headings at end of buffer. 1314 - Support small Setext headings (with fewer than three 1315 characters). 1316 - Several improvements to inline code syntax highlighting. 1317 - Fix some edge cases regarding escaping, spaces, etc. for bold 1318 and italic font lock. 1319 - Prohibit newlines and tabs immediately after opening bold and 1320 italic delimiters. This fixes a bug where italics would not 1321 be highlighted following a horizontal rule 1322 - Improved multi-line font lock performance for large files. 1323 - Improved multi-line font lock at beginning of buffer. 1324 - List items with any of the three markers are filled in the 1325 same way (previously list items starting with `+` were not 1326 filled with hanging indentation). 1327 - Fix end detection for empty list items. Don't skip over the 1328 whitespace following the marker on the same line. 1329 Previously, empty list items were not being detected properly 1330 by `markdown-cur-list-item-bounds` as a result of this. 1331 - Don't exclude `[^]`, which is a valid reference tag (but 1332 let's please stick to alphanumeric characters). 1333 - No longer highlight escaped wiki links. 1334 - Fix line number buttons for reference checking and make all 1335 buttons clickable. 1336 - Fix killing of footnotes with no text. 1337 - Fix escaping in `markdown-xhtml-standalone-regexp`. 1338 - Fix a font-lock edge case involving footnote markers 1339 preceding inline links. 1340 - More accurate font-lock for ATX headings in edge cases. 1341 - Fix killing of footnotes from footnote text. 1342 1343 --- --- 1344 1345 # Markdown Mode 1.9 1346 1347 *January 1, 2013* 1348 1349 Version 1.9 is a major new stable release with important bug fixes. 1350 1351 * New features: 1352 1353 - Support for setext-style headers in `outline-mode`. Thanks 1354 to Shigeru Fukaya. 1355 - Font lock for tilde-fenced code blocks. 1356 - Reference link insertion (<kbd>C-c C-a r</kbd>). 1357 - Support two forms of aliased wiki links: 1358 `[[link text|PageName]]` and `[[PageName|link text]]` 1359 (`markdown-wiki-link-alias-first`). 1360 - Footnote support: font lock and insertion, deletion, and 1361 navigation functions for footnotes (prefixed by 1362 <kbd>C-c C-f</kbd>; following for wiki links is now 1363 <kbd>C-c C-w</kbd>). Thanks to Joost Kremers. 1364 - Improved preview and export commands. Thanks to Donald 1365 Ephraim Curtis. 1366 - `imenu` support. Thanks to Akinori Musha. 1367 - Added autoload token for `gfm-mode`. Thanks to Max Penet and 1368 Peter Eisentraut for the suggestion. 1369 - Optional character set declaration in XHTML output. Thanks 1370 to François Gannaz for the suggestion. 1371 - Smart unindentation when pressing delete at the beginning of 1372 a line. Thanks to Zhenlei Jia. 1373 - Optional prefix argument to <kbd>C-c C-w</kbd> for opening 1374 wiki links in another window. 1375 - Open inline and reference links and inline URIs in browser 1376 (<kbd>C-c C-o</kbd>). Thanks to Peter Jones. 1377 - Open files in a standalone previewer or editor 1378 (<kbd>C-c C-c o</kbd>). 1379 - Clean up numbered/ordered lists (<kbd>C-c C-c n</kbd>). 1380 Thanks to Donald Ephraim Curtis. 1381 - Save Markdown output to kill ring (copy to clipboard) 1382 (<kbd>C-c C-c w</kbd>). Thanks to Donald Ephraim Curtis. 1383 1384 * Improvements: 1385 1386 - Improve `markdown-mode-hook` docstring. Thanks to Shigeru 1387 Fukaya for the more precise description. 1388 - Don't require Common Lisp extensions at run time. Thanks to 1389 Shigeru Fukaya. 1390 - Prefer `visual-line-mode`, the replacement for 1391 `longlines-mode`, when in `gfm-mode`. Thanks to Christopher 1392 J. Madsen. 1393 - Proper GitHub wiki link handling in `gfm-mode`. Thanks to 1394 Kevin Porter. 1395 - XEmacs compatibility: 1396 - Avoid malformed list errors during font definitions. 1397 - Handle replace-regexp-in-string. 1398 - Use text properties instead of overlays. 1399 - Fall back to `set-buffer-modified-p` when 1400 `restore-buffer-modified-p` is unavailable. 1401 - Many additional fixes. Thanks to Michael Sperber. 1402 - Handle wiki links in buffers not associated with a file. 1403 - Update autoload documentation to support byte compilation. 1404 - Option to use `-` instead of `_` for wiki links in 1405 `gfm-mode`. 1406 - Add two tab stops to possible indentation positions following 1407 list items. 1408 1409 * Bug fixes: 1410 1411 - Fixed a bug which caused unusual behavior in functions 1412 performing search, replace, and/or matching operations. 1413 Thanks to Christopher J. Madsen for the patch. 1414 - Fixed a bug which caused an incompatibility with 1415 `orgtbl-mode`. Thanks to Vegard Vesterheim for the report 1416 and to Carsten Dominik for a patch. 1417 - Fixed a bug where reference links at the beginning of a line 1418 would be mistaken for reference definitions. 1419 - Improved font lock for headers. 1420 - Improved font lock for reference definitions. Thanks to Ian 1421 Yang. 1422 - Avoid byte compiler warning about `region-exists-p` in GNU 1423 Emacs. 1424 - Additional key bindings for cross-platform header cycling 1425 compatibility. 1426 - Fix problem with externally modified files on disk where the 1427 user would get stuck in a loop answering "really edit the 1428 buffer?" Thanks to Bryan Fink for a detailed report. 1429 - Font lock fix for URLs with underscores. 1430 - Escape shell commands to handle filenames with spaces, etc. 1431 Thanks to Marcin Kasperski for a patch. 1432 - Use `:slant` instead of unsupported `:italic` in font spec. 1433 - Fix typo in `paragraph-fill` regexp. 1434 1435 # Markdown Mode 1.8.1 1436 1437 *August 15, 2011* 1438 1439 Version 1.8.1 is a bugfix version which addresses some minor issues in 1440 version 1.8. 1441 1442 * New features: 1443 1444 - Wiki link features now support aliased or piped wiki links of 1445 the form `[[PageName|link text]]`. 1446 1447 * Bug fixes: 1448 1449 - Fixed an issue, reported by Werner Dittmann, where the 1450 default indentation position would be skipped over when 1451 `auto-fill-mode` was on. This meant that when writing a 1452 normal paragraph, for example, the line would wrap to column 1453 4 instead of column 1. 1454 - Require the `cl` package for `multiple-value-bind`. Thanks 1455 to Werner Dittman for noticing this. 1456 - Remove a leftover debug print message which would announce 1457 "ENTER" in the minibuffer when the enter key was pressed. 1458 1459 # Markdown Mode 1.8 1460 1461 *August 12, 2011* 1462 1463 * New features: 1464 1465 - Add support for following wiki links in a buffer, either with 1466 <kbd>C-c C-f</kbd> or, optionally, <kbd>RET</kbd>, when the 1467 point is at a wiki link. 1468 - Support Markdown processors which do not accept input from 1469 stdin (i.e, Python-Markdown) by adding the 1470 `markdown-command-needs-filename` custom option. Thanks to 1471 Jeremiah Dodds for a patch. 1472 - GitHub-Flavored Markdown mode (`gfm-mode`) turns on 1473 `longlines-mode` and `auto-fill-mode`. Thanks to Edward 1474 O'Connor for the patch. 1475 - Add outline-mode-like keybindings for fast outline navigation 1476 of atx-style headers (see the updated documentation for 1477 details). 1478 - Arbitrary content may to be added to the `<head>` block during 1479 HTML output to allow for flexible local customizations. See 1480 `markdown-xhtml-header-content`. 1481 - New HTML export options: export to a file with 1482 <kbd>C-c C-c e</kbd> or export to a file and view with 1483 <kbd>C-c C-c v</kbd>. 1484 - Support Markdown processors which produce standalone output 1485 (i.e., complete HTML documents). If this is detected, by 1486 matching `markdown-xhtml-standalone-regexp` in the first five 1487 lines of output, then omit the `markdown-mode` header and 1488 footer. Thanks to Philippe Ivaldi for this and the previous 1489 HTML-output-related patches. 1490 - Customizable wiki link following behavior using 1491 `markdown-follow-wiki-link-on-enter`. 1492 - Quick navigation to the previous and next wiki links using 1493 <kbd>M-p</kbd> and <kbd>M-n</kbd>. 1494 - Wiki links to non-existent files (missing links) are 1495 highlighted differently. Based on functionality from 1496 `wiki-mode` by Alex Schroeder. Thanks to Eric Merritt for 1497 patches. 1498 1499 * Improvements: 1500 1501 - Improve syntax highlighting of preformatted text blocks to 1502 better distinguish them from list items with hanging 1503 indentation and nested list items. 1504 - Match italic and bold text and inline code fragments across 1505 line breaks, within a single block, but prevent them from 1506 matching across blocks. 1507 - Generally improve multi-line font lock by extending the search 1508 region to include full blocks. 1509 - Make indentation work when the previous line is not indented. 1510 - Set tab width to 4, the natural tab width for Markdown 1511 documents. 1512 - Stop announcing "TAB" in the minibuffer when tab is pressed. 1513 - Use `html-mode` for viewing Markdown output. 1514 - Ensure Markdown output buffer is always raised, even when the 1515 output is short. 1516 - Make sure horizontal rules inserted by <kbd>C-c -</kbd> 1517 (`markdown-insert-hr`) are surrounded by blank lines. 1518 - Added an `autoload` cookie. Thanks to Peter S. Galbraith for 1519 the patch. 1520 - Support a customizable horizontal rule string 1521 `markdown-hr-string`. This replaces the previous but less 1522 flexible custom option `markdown-hr-length`, which has been 1523 removed. 1524 - Followed wiki links are opened using `markdown-mode`. 1525 1526 * Bug fixes: 1527 1528 - Fixed an issue, reported by Joost Kremners, where for 1529 multi-line lists, the position of the list marker was not 1530 being added to the list of possible indentation levels. 1531 - Avoid a problem where indentation positions were getting 1532 skipped over when tab cycling. 1533 - Fixed an issue when column 0 is the natural automatic 1534 indentation stop. 1535 - Prevent infinite loops in blockquote (<kbd>C-c C-s b</kbd>) 1536 and preformatted (<kbd>C-c C-s p</kbd>) block insertion while 1537 at the beginning or end of the buffer. 1538 1539 # Markdown Mode 1.7 1540 1541 *October 1, 2009* 1542 1543 * New features: 1544 1545 - Support filling of list items. 1546 - Allow customization of font-lock faces (thanks to intrigeri 1547 for the patch). 1548 - Automatic indentation when pressing enter or tab (with 1549 cycling upon subsequent tab presses) (thanks to Bryan Kyle). 1550 - Generate real XHTML for previewing (thanks to Hilko Bengen 1551 for the patch). This fixes [Debian bug #490865](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=490865). The CSS 1552 stylesheet for XHTML output is customizable via 1553 `markdown-css-path` (thanks to Ankit Solanki for the patch). 1554 - Better URL matching (protocols are customizable through 1555 `markdown-uri-types`). 1556 - LaTeX syntax highlighting can be enabled or disabled using 1557 the customize system (`markdown-enable-math`). 1558 - Support for HTML comments (font lock, `comment-dwim`, etc.). 1559 - Support filling of definition lists (thanks to Peter Williams 1560 for the patch). 1561 1562 * Improvements: 1563 1564 - Add support level 5 and 6 atx-style headers (thanks to Alec 1565 Resnick for the report). 1566 - Fill-paragraph no longer breaks lines inside of square 1567 brackets (thanks to Peter Williams for the patch). 1568 1569 * Bug fixes: 1570 1571 - Fixed several font lock issues. 1572 - Fixed a bug where pressing enter did nothing in 1573 longlines-mode (thanks to Ankit Solanki for the patch). 1574 - Fixed a problem where Emacs snapshot would hang during 1575 `markdown-enter` and `markdown-cycle` (thanks to Alec Resnick 1576 for the report). 1577 - Fixed an issue with auto-fill-mode and markdown-mode's 1578 indentation (thanks to Joost Kremers for the report and 1579 analysis). 1580 1581 # Markdown Mode 1.6 1582 1583 *June 4, 2008* 1584 1585 * **Breaking changes:** 1586 1587 - Rename `blockquote-region` to `markdown-blockquote-region` in 1588 accordance with the Emacs major mode coding conventions. 1589 - Several new keybindings. 1590 - Reverted to using colors instead of bold, italic, and 1591 fixed-width faces. 1592 1593 * New features: 1594 1595 - Implemented org-mode style visibility cycling. 1596 - Support outline minor mode. 1597 - Undefined reference checking (via `C-c C-c c`, using code by 1598 Dmitry Dzhus). 1599 - Wiki links: syntax highlighting and element insertion 1600 (`C-c C-a w`). 1601 - Allow syntax highlighting faces to be customized. 1602 - Insertion of preformatted text sections (`C-c C-s p`). 1603 - Font locking for inline URIs and email addresses. 1604 - Markdown mode menu (thanks to Greg Bognar for the initial 1605 code). 1606 1607 * Improvements: 1608 1609 - Markdown customize group moved to `wp` (word processing). 1610 - Derive from `text-mode` instead of `fundamental-mode`. 1611 - Properly prefix regex definitions and `wrap-or-insert` 1612 function. 1613 1614 * Bug fixes: 1615 1616 - Highlight wrapped inline link definitions (thanks to Blake 1617 Winton). 1618 - Fix adjacent wiki link font lock bug. 1619 - Support escaping of backticks. 1620 - Many other small font lock tweaks. 1621 - Don't check for `transient-mark-mode` in 1622 `markdown-blockquote-region`. This fixes Debian bug #456592 1623 (thanks to Daniel Burrows for the report). 1624 - Apply Greg Bognar's fix for `markdown` with an active region. 1625 - Don't use the kill ring to store wrapped text. 1626 1627 # Markdown Mode 1.5 1628 1629 *October 11, 2007* 1630 1631 Version 1.5 is a major revision compared to previous releases. The 1632 functionality has not changed very much, all of the keybindings are 1633 the same, but it is internally quite different. 1634 1635 Most of the changes involve syntax highlighting. The regular 1636 expressions have been significantly improved and the corresponding 1637 font lock faces have been tweaked (hopefully for the better, but feel 1638 free to customize them). Various other small bugs have been fixed and 1639 the documentation and website have been updated. 1640 1641 The two changes in functionality, both of which are optional, are 1642 syntax highlighting for embedded mathematics via LaTeX-like 1643 expressions, and highlighting for bracketed wiki links. 1644 1645 [itex]: http://golem.ph.utexas.edu/~distler/blog/itex2MMLcommands.html 1646 1647 # Markdown Mode 1.4 1648 1649 *June 29, 2007* 1650 1651 Version 1.4 includes a small fix to the regular expression syntax to 1652 fix the Emacs 21 "Invalid escape character syntax." error. Thanks to 1653 Edward O'Connor for the fix. 1654 1655 # Markdown Mode 1.3 1656 1657 *June 5, 2007* 1658 1659 Version 1.3 provides syntax highlighting, insertion commands for all 1660 basic HTML elements, and preview commands for viewing the resulting 1661 HTML in a new buffer of an external browser. 1662 1663 # Markdown Mode 1.2 1664 1665 *May 25, 2007* 1666 1667 Version 1.2 adds element insertion commands and keys for links, 1668 horizontal rules, headers, inline code, and bold and italic text. 1669 1670 Added element insertion commands and keys for links, horizontal rules, headers, inline code, and bold and italic text. 1671 1672 # Markdown Mode 1.1 1673 1674 *May 24, 2007* 1675 1676 Version 1.1 is the initial release of Markdown Mode for Emacs, a major 1677 mode to edit Markdown files in Emacs. This version provides basic 1678 syntax highlighting and element insertion commands for Markdown files.