Commit Graph

80 Commits

Author SHA1 Message Date
Tim Pope
feadbc81e2 Vim 9.0.0772 2022-10-16 16:44:22 -04:00
Tim Pope
a282dd89fb Remove spurious blank line 2022-10-13 00:06:05 -04:00
Tim Pope
b52c46dd8e Support YAML metadata
Resolves: https://github.com/tpope/vim-markdown/issues/71
2022-03-18 17:35:23 -04:00
Tim Pope
6be354e576 Allow fenced languages when embedding in another language
Resolves: https://github.com/tpope/vim-liquid/issues/15
2022-03-18 16:40:50 -04:00
Tim Pope
ff1caeadba Use "_" in generated identifiers rather than smooshing 2022-03-18 16:40:50 -04:00
Joseph Adams
891dff54a9 Adding strikethrough support via the htmlStrike highlight group
Co-authored-by: Rodrigo Haenggi <rodrigo@codegestalt.com>
2022-01-24 13:18:41 -05:00
Jaehwang Jerry Jung
59a551feb2 Don't let emphasis span multiple paragraphs
Most markdown implementations do not allow emphasis to span multiple
paragraphs. For example, commonmark.js, Markdown.pl, pandoc, and
Python-Markdown compile the following markdown

```markdown
*asdf

asdf*
```

to

```html
<p>*asdf</p>
<p>asdf*</p>
```

Some implementations compile it to

```html
<p><em>asdf</em></p>
<p>asdf*</p>
```

See https://johnmacfarlane.net/babelmark2/?normalize=1&text=*asdf%0A%0Aasdf*

Adding "^$" to :syn-end makes the emphasis end at an empty line like the
second compiled HTML above. While not perfect, it prevents an unmatched
`*` from emphasizing the entirety of the following text.
2022-01-12 12:33:36 -05:00
Jaehwang Jerry Jung
ec486958ea Require no space after/before emphasis delimiter
Many markdown implementations require that `*` be not followed (resp.
preceded) by whitespace to open (resp. close) emphasis. For example,
commonmark.js, Markdown.pl, and pandoc compile the follow markdown

```markdown
a* asdf *a
```

to

```html
<p>a* asdf *a</p>
```

On the other hand, Python-Markdown allows whitespace:

```html
<p>a<em> asdf </em>a</p>
```

See https://johnmacfarlane.net/babelmark2/?normalize=1&text=a*+asdf+*a

Since variants of commonmark (including GFM) are prevalent these days,
it makes more sense to follow the first behavior.
2022-01-12 12:33:36 -05:00
Jaehwang Jerry Jung
db82f00b58 Don't let fenced languages change 'iskeyword' 2022-01-11 10:07:50 -05:00
Jaehwang Jerry Jung
c7988e88a2 Don't let fenced languages disable spell checking 2022-01-11 10:07:50 -05:00
Jaehwang Jerry Jung
e2acae8cef Run :syn case match before :syn include
Syntax scripts for html and some other languages run :syn case ignore.
This may break syntax scripts of other fenced languages that implicitly
assume :syn case match.
2022-01-11 10:07:50 -05:00
Tim Pope
ed76403b2e Change from email to URL 2021-09-13 19:13:50 -04:00
Tim Pope
addd5abaa6 Add :syn sync linebreaks=1 to improve consistency
This was reported to fix a folding issue I can't reproduce, and also
fixes some inconsistencies such as an underline style heading failing to
highlight until a redraw.

Resolves: https://github.com/tpope/vim-markdown/issues/179
2021-06-19 13:43:31 -04:00
Anthony Geoghegan
9d87cc1917 Prevent false detection of fenced code block start
If a line begins with a word that matches one of the languages listed in
`g:markdown_fenced_languages`, the line is wrongly detected as being the
start of a fenced code block for that language. This commit ensures that
a line is only treated as the start of fenced code block if the line
begins with three or more consecutive backtick or tilde characters (with
optional leading space characters).
2021-04-21 11:29:46 -04:00
Zach Himsel
65cb65a31a Use markdownCodeBlock for fenced code block regions
Given that there are two separate syntax groups for code and code
blocks, it makes sense to have the triple-backtick/tilde fenced code
blocks be labeled as such.
2021-03-10 15:30:11 -05:00
Zach Himsel
f08447c76b Fix region detection for indented code blocks
Prior to this commit, _any_ line that started with at least 4 spaces or
a tab would be considered a code block.

For example, the third level of a 2-space-indented list would be
highlighted as code, not as list items.

Note: this conforms to the original Markdown spec:
> To produce a code block in Markdown, simply indent every line of the
> block by at least 4 spaces or 1 tab.
> A code block continues until it reaches a line that is not indented
> (or the end of the article).

While this doesn't explicitly state that a blank line _before_ the code
block is required, in practical testing, it is. As such, I've included
the requirement of a blank line preceeding the indent to match the
region start.

Any line not indented by at least 4 spaces will end the region.

Closes https://github.com/tpope/vim-markdown/issues/81
Closes https://github.com/tpope/vim-markdown/issues/164
Closes https://github.com/tpope/vim-markdown/issues/94 (possibly)
Closes https://github.com/tpope/vim-markdown/pull/140
2021-03-10 15:30:11 -05:00
Konfekt
baf2592d33 Don't let fenced languages change &foldtext
Addresses the sequel to issue #154.
See https://github.com/tpope/vim-markdown/issues/154#issuecomment-778677280
2021-02-15 14:32:45 -05:00
Tim Pope
276524ed9c Mitigate performance issue with link text
References https://github.com/vim/vim/issues/6777
2020-09-08 00:19:09 -04:00
Greg Anders
9ff8d52c78 Update header pattern to include trailing space or tab (#168) 2020-07-24 00:40:03 -04:00
Tim Pope
296eeaa887 Support tilde code blocks
Also ensure the end marker has the same number of delimiter characters
as the start marker.

Closes https://github.com/tpope/vim-markdown/issues/156
2020-02-21 00:25:51 -05:00
Tim Pope
6c4c60fbaa Also don't let HTML and dependent syntaxes change 'foldmethod'
References https://github.com/tpope/vim-markdown/issues/154
2020-01-30 12:56:09 -05:00
Tim Pope
719b046bbe Don't let fenced language syntaxes change 'foldmethod'
Closes https://github.com/tpope/vim-markdown/issues/154
2020-01-30 12:45:09 -05:00
Tim Pope
4e25b2f606 Vim 8.2.0141 2020-01-30 11:50:49 -05:00
Tim Pope
e875717243 Fix closing italics
Closes https://github.com/tpope/vim-markdown/issues/151
2019-12-12 13:55:26 -05:00
Tim Pope
a273e6d1f3 Vim 8.2 2019-12-12 13:54:51 -05:00
Tim Pope
9c2133fef0 Skip escaped bold/italics closer
Closes https://github.com/tpope/vim-markdown/issues/102
2019-12-02 08:47:20 -05:00
Igor Mikushkin
8a76c845de Github flavored parsing of underscores 2019-12-01 07:42:25 -05:00
Tim Pope
06a62df8a5 Restrict HTML highlighting when nesting
Closes https://github.com/tpope/vim-markdown/issues/148
2019-11-23 16:02:45 -05:00
Tim Pope
5363a4d803 Allow one level of nested brackets
Closes https://github.com/tpope/vim-markdown/issues/129
2019-10-23 03:03:09 -04:00
Greg Anders
64689dfeae Support pandoc syntax for fenced code blocks 2019-10-10 18:10:49 -04:00
Thomas Faingnaert
c043a93c84 Conceal code blocks 2019-07-28 19:37:25 -04:00
Alex Griffin
8cd41796fd Separate highlight groups for each heading level
Closes tpope#123.
2017-10-17 20:30:01 -04:00
Tim Pope
a7dbc31456 Three or more backticks, not two or more 2017-05-08 11:37:43 -04:00
Tim Pope
44822aa3c6 Allow fenced language names to contain punctuation
Closes https://github.com/tpope/vim-markdown/issues/116
2017-05-08 11:36:12 -04:00
Linda_pp
0b92a7d4cb Customizable minlines with g:markdown_minlines (#115) 2017-04-11 23:06:07 -04:00
Addison Bean
3c2215bfed Fix spell check on bold and italic text (#101)
Closes #100.
2016-07-01 17:15:47 -04:00
Rob Hurring
5c21f16771 Allow toggling of syntax concealing (#99)
Add `let g:markdown_syntax_conceal = 0` to your vimrc
2016-05-08 19:57:37 -04:00
tyru
63074a52ad Avoid E403 error on :syn-include
Example .vimrc:

        let g:markdown_fenced_languages = ['vim', 'viml=vim']
        syntax on

causes

        "/tmp/test.mkd" 6L, 98C
        Error detected while processing /usr/share/vim/vim74/syntax/vim.vim:
        line  777:
        E403: syntax sync: line continuations pattern specified twice
        E403: syntax sync: line continuations pattern specified twice

Example "test.mkd" file:

        ```vim
        echo 'hi'
        ```
2016-01-23 02:09:00 +09:00
afc163
b938671300 Support more backtick
like

````
code
````
2015-12-04 16:02:12 +08:00
Tim Pope
6eac9ffb58 Revert "Improve fenced code block matching"
This reverts commit aff85c6411.

Closes https://github.com/tpope/vim-markdown/issues/83
2015-10-12 13:53:26 -04:00
Kevin Locke
aff85c6411 Improve fenced code block matching
The previous fenced code block matching did not support the syntax used
by [Kramdown][1] or fully support the syntax described in
[CommonMark][2].  The differences are:

* Kramdown requires \~ instead of \` in fences (CommonMark permits \~)
* Both permit code fences to have more than 3 \~ or \` characters
* Both require the closing fence to have as many chars as the opening
* Both permit the closing fence to have extra fence chars
* CommonMark explicitly forbids \` in the fence info string

This is likely the case with other Markdown variants, but these are the
only two that I have considered when authoring this commit.

This commit implements all of the above mentioned changes.  The change
is mostly straight-forward.  The only exception is that the end matching
is a little subtle since one of `\z2` and `\z3` will be empty, using the
more natural expression `\z2*\|\z3*` can hang the regex matcher.  The
`\%(\z2\z3)*` expression is a bit less obvious but works reliably.

Note that I did not include any changes relating to the Pandoc syntax
mentioned in #65 and #74.  If this syntax is desired, I can adjust this
commit to include it.

[1]:  http://kramdown.gettalong.org/syntax.html#fenced-code-blocks
[2]:  http://spec.commonmark.org/0.22/#code-fence

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
2015-10-02 22:12:34 -07:00
Allen Hubbe
188d816314 Add escape support for angle braces 2015-07-17 23:49:00 -04:00
Tim Pope
409c37b205 Conceal bold and italic markers
References #9.
2014-07-11 13:35:48 -04:00
Sencer Selcuk
cb2b885214 Footnote doesn't have to be at the line end. 2014-06-19 17:30:13 -04:00
Sencer Selcuk
db5c79f7c0 Allow multi-char footnote labels. 2014-06-19 17:13:36 -04:00
Paul Jolly
ede001b33d Footnote support 2014-02-24 13:10:20 +00:00
Tim Pope
61deff1362 Allow link nesting
Closes #58.
2014-01-01 11:48:03 -05:00
Tim Pope
3fb5b260e1 Merge upstream changes 2013-12-16 20:55:46 -05:00
Drew Neil
a126974366 Add 'Last change: 2013 May 30' to headers 2013-11-16 16:48:16 +00:00
Andrew Radev
55b49cad42 Allow spaces after ```
With a fenced code block with a language, it's legal to put spaces
between the fence and the language name.
2013-06-24 11:00:29 +02:00