Add option g:vimwiki_auto_header to automatically generate H1.
A level 1 header will automatically be generated for new files. The title used in the header is based on the filename. Closes #245.
This commit is contained in:
		| @@ -239,6 +239,50 @@ if !exists("*VimwikiWikiIncludeHandler") | ||||
| endif | ||||
|  | ||||
|  | ||||
| " write a level 1 header to new wiki files | ||||
| " a:fname should be an absolute filepath | ||||
| function! s:create_h1(fname) | ||||
|   if vimwiki#vars#get_global('auto_header') | ||||
|     let idx = vimwiki#vars#get_bufferlocal('wiki_nr') | ||||
|  | ||||
|     " don't do anything for unregistered wikis | ||||
|     if idx == -1 | ||||
|       return | ||||
|     endif | ||||
|  | ||||
|     " don't create header for the diary index page | ||||
|     if vimwiki#path#is_equal(a:fname, | ||||
|           \ vimwiki#vars#get_wikilocal('path', idx).vimwiki#vars#get_wikilocal('diary_rel_path', idx). | ||||
|           \ vimwiki#vars#get_wikilocal('diary_index', idx).vimwiki#vars#get_wikilocal('ext', idx)) | ||||
|       return | ||||
|     endif | ||||
|  | ||||
|     " get tail of filename without extension | ||||
|     let title = expand('%:t:r') | ||||
|  | ||||
|     " don't insert header for index page | ||||
|     if title ==# vimwiki#vars#get_wikilocal('index', idx) | ||||
|       return | ||||
|     endif | ||||
|  | ||||
|     " don't substitute space char for diary pages | ||||
|     if title !~# '^\d\{4}-\d\d-\d\d' | ||||
|       " NOTE: it is possible this could remove desired characters if the 'links_space_char' | ||||
|       " character matches characters that are intentionally used in the title. | ||||
|       let title = substitute(title, vimwiki#vars#get_wikilocal('links_space_char'), ' ', 'g') | ||||
|     endif | ||||
|  | ||||
|     " insert the header | ||||
|     if vimwiki#vars#get_wikilocal('syntax') ==? 'markdown' | ||||
|       keepjumps call append(0, '# ' . title) | ||||
|       for _ in range(vimwiki#vars#get_global('markdown_header_style')) | ||||
|         keepjumps call append(1, '') | ||||
|       endfor | ||||
|     else | ||||
|       keepjumps call append(0, '= ' . title . ' =') | ||||
|     endif | ||||
|   endif | ||||
| endfunction | ||||
|  | ||||
| " Define autocommands for all known wiki extensions | ||||
|  | ||||
| @@ -258,6 +302,8 @@ augroup vimwiki | ||||
|     exe 'autocmd BufNewFile,BufRead *'.s:ext.' call s:setup_new_wiki_buffer()' | ||||
|     exe 'autocmd BufEnter *'.s:ext.' call s:setup_buffer_enter()' | ||||
|     exe 'autocmd BufLeave *'.s:ext.' call s:setup_buffer_leave()' | ||||
|     " automatically generate a level 1 header for new files | ||||
|     exe 'autocmd BufNewFile *'.s:ext.' call s:create_h1(expand("%:p"))' | ||||
|     " Format tables when exit from insert mode. Do not use textwidth to | ||||
|     " autowrap tables. | ||||
|     if vimwiki#vars#get_global('table_auto_fmt') | ||||
|   | ||||
		Reference in New Issue
	
	Block a user