]> git.madduck.net Git - etc/vim.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Merge pull request #124 from cirosantilli/front
authorCiro Santilli <ciro.santilli@gmail.com>
Mon, 29 Sep 2014 08:43:27 +0000 (10:43 +0200)
committerCiro Santilli <ciro.santilli@gmail.com>
Mon, 29 Sep 2014 08:43:27 +0000 (10:43 +0200)
Support YAML frontmatter headers v2.

README.md
syntax/mkd.vim
test/syntax.vader

index 6755e94762864b0c6c3a40eb61929a4c12879ad7..2b23477a9ba029c54e9bdde8e4c8506a4beaa594 100644 (file)
--- a/README.md
+++ b/README.md
@@ -37,7 +37,7 @@ If you are not using any package manager, download the [tarball](https://github.
 
 ## Options
 
-**Disable Folding**
+### Disable Folding
 
 Add the following line to your `.vimrc` to disable folding.
 
@@ -45,7 +45,7 @@ Add the following line to your `.vimrc` to disable folding.
 let g:vim_markdown_folding_disabled=1
 ```
 
-**Set Initial Foldlevel**
+### Set Initial Foldlevel
 
 Add the following line to your `.vimrc` to set the initial foldlevel. This option defaults to 0 (i.e. all folds are closed) and is ignored if folding is disabled.
 
@@ -53,7 +53,7 @@ Add the following line to your `.vimrc` to set the initial foldlevel. This optio
 let g:vim_markdown_initial_foldlevel=1
 ```
 
-**Disable Default Key Mappings**
+### Disable Default Key Mappings
 
 Add the following line to your `.vimrc` to disable default key mappings. You can map them by yourself with `<Plug>` mappings.
 
@@ -61,15 +61,26 @@ Add the following line to your `.vimrc` to disable default key mappings. You can
 let g:vim_markdown_no_default_key_mappings=1
 ```
 
-**Syntax extensions**
+### Syntax extensions
 
-The following options control which syntax extensions will be turned on.
+The following options control which syntax extensions will be turned on. They are off by default.
 
-LaTeX math: `$ $`, `$$ $$`, escapable as `\$ \$` and `\$\$ \$\$`:
+#### LaTeX math
+
+Used as `$x^2$`, `$$x^2$$`, escapable as `\$x\$` and `\$\$x\$\$`.
 
 ```vim
 let g:vim_markdown_math=1
 ```
+
+#### YAML frontmatter
+
+Highlight YAML frontmatter as used by Jekyll:
+
+```vim
+let g:vim_markdown_frontmatter=1
+```
+
 ## Mappings
 
 The following work on normal and visual modes:
index 19d59d56ab230ea54dcb3e12ec7b30ccb783ca82..eb871651357200af9c89956e0fa59a0eac83c1fe 100644 (file)
@@ -101,6 +101,12 @@ endif
 
 syn cluster mkdNonListItem contains=htmlItalic,htmlBold,htmlBoldItalic,mkdFootnotes,mkdID,mkdURL,mkdLink,mkdLinkDef,mkdLineBreak,mkdBlockquote,mkdCode,mkdMath,mkdIndentCode,mkdListItem,mkdRule,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6
 
+" YAML frontmatter
+if get(g:, 'vim_markdown_frontmatter', 0)
+  syn include @yamlTop syntax/yaml.vim
+  syn region Comment matchgroup=mkdDelimiter start="\%^---$" end="^---$" contains=@yamlTop
+endif
+
 "highlighting for Markdown groups
 HtmlHiLink mkdString       String
 HtmlHiLink mkdCode          String
index 6d5111818cf84f10092504cd5d1685952d89c550..4f0a17551168f8d1dedf0fd3fd2176ff942cf6c8 100644 (file)
@@ -72,3 +72,42 @@ Execute (multiline math):
   AssertNotEqual SyntaxOf('a'), 'mkdMath'
   AssertEqual SyntaxOf('b'), 'mkdMath'
   AssertNotEqual SyntaxOf('c'), 'mkdMath'
+
+# YAML frontmatter
+
+Given mkd;
+---
+a: b
+---
+
+Execute (YAML frontmatter is controlled by the option):
+  AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
+  let g:vim_markdown_frontmatter=1
+  syn off | syn on
+  AssertEqual SyntaxOf('a'), 'yamlBlockMappingKey'
+  let g:vim_markdown_frontmatter=0
+  syn off | syn on
+  AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
+
+Given mkd;
+
+---
+a: b
+---
+
+Execute (YAML frontmatter only works if it's the first thing in the file):
+  let g:vim_markdown_frontmatter=1
+  syn off | syn on
+  AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
+
+Given mkd;
+---
+a: b
+---
+
+---
+
+Execute (rules are not mistaken by YAML frontmatter delimiters):
+  let g:vim_markdown_frontmatter=1
+  syn off | syn on
+  AssertEqual SyntaxAt(5, 1), 'mkdRule'