# VimwikiTOC {{{1 # # Just generate the TOC # See: link_* for link movement and creation # # TODO (10min) test if g:vimwiki_to_header well readen # TODO (10min) test vimviki_toc_link_format # TODO (1h) test if really wiki dependant (for 2 diffrent wikis) # TODO if link in heading Given vimwiki (Wiki with spaces {{{1): = h1 h2 h3 h4 = Execute (Toc and enter (alpha)): call SetSyntax('default') call vimwiki#vars#set_wikilocal('list_margin', -1, vimwiki#vars#get_bufferlocal('wiki_nr')) AssertEqual -1, vimwiki#vars#get_wikilocal('list_margin') VimwikiTOC Expect (Toc alpha): = Contents = - [[#h1 h2 h3 h4]] = h1 h2 h3 h4 = Given vimwiki (Wiki with bad characters {{{1): = h!@$%^&() = Execute (Toc and beta): call SetSyntax('default') file wiki.wiki VimwikiTOC Expect (Toc and jumpes well): = Contents = - [[#h!@$%^&()]] = h!@$%^&() = Given vimwiki (One word headings (#981) {{{1): = head1 = == head2 == === head3 === Execute (Wiki: toc_link_format=1 (to restore) VimwikiTOC x 1): set sw=2 let vimwiki_toc_link_format = 1 call ReloadVimwiki() call SetSyntax('default') VimwikiTOC Expect(Headinds TOC one word (1)): = Contents = - [[#head1|head1]] - [[#head1#head2|head2]] - [[#head1#head2#head3|head3]] = head1 = == head2 == === head3 === Execute (Wiki: toc_link_format=0 (restoring default) VimwikiTOC x 1): let vimwiki_toc_link_format = 0 call ReloadVimwiki() call SetSyntax('default') VimwikiTOC Expect(Headinds TOC one word (0)): = Contents = - [[#head1]] - [[#head2]] - [[#head3]] = head1 = == head2 == === head3 === Execute (Clean wiki TOC): Given vimwiki (One heading: May delete last line (#910) {{{1): # Basic-title Execute (VimwikiTOC x 1): call SetSyntax('markdown') set sw=8 VimwikiTOC Expect(Good content with 1 item x 1): # Contents - [Basic-title](#basic-title) # Basic-title Execute (VimwikiTOC x 2): call SetSyntax('markdown') set sw=8 VimwikiTOC VimwikiTOC Expect(Good content with 1 item x 1): # Contents - [Basic-title](#basic-title) # Basic-title Given vimwiki (With link header (#182) {{{1): # A [link](anything here) B # t[link](anything here) ## 7.4.1528 Execute (VimwikiTOC: Set syntax markdown && Set sw=8): call SetSyntax('markdown') set sw=8 VimwikiTOC Expect vimwiki (With link header (#182) {{{1): # Contents - [A link B](#a-link-b) - [tlink](#tlink) - [7.4.1528](#741528) # A [link](anything here) B # t[link](anything here) ## 7.4.1528 Given vimwiki (Underline header (SetExt) (#209) {{{1): First with spaces ===== toto Second ------- toto Third ----- toto Four ===== toto Last ---- Execute (Set syntax markdown && Set sw=8): call SetSyntax('markdown') set sw=8 VimwikiTOC Expect (Heading SetExt created): # Contents - [First with spaces](#first-with-spaces) - [Second](#second) - [Third](#third) - [Four](#four) - [Last](#last) First with spaces ===== toto Second ------- toto Third ----- toto Four ===== toto Last ---- Given vimwiki (Two same heading (#968) {{{1): # One toto # ONE like ## oNe you Execute (Set syntax markdown && Set sw=8): call SetSyntax('markdown') set sw=8 VimwikiTOC Expect (Suffix -2 and -3): # Contents - [One](#one) - [ONE](#one-2) - [oNe](#one-3) # One toto # ONE like ## oNe you Given vimwiki (Heading with many bad caracters {{{1): # One !@#@#(!%#&$^(!@ ## Two !!~!!:"@!>@!>?< Execute (Set syntax markdown && VimwikiTOC): call SetSyntax('markdown') set sw=8 VimwikiTOC Expect (Bad characters are removed): # Contents - [One !@#@#(!%#&$^(!@](#one-) - [Two !!~!!:"@!>@!>?<](#two-) # One !@#@#(!%#&$^(!@ ## Two !!~!!:"@!>@!>?< # Large previous tests {{{1 Execute (Reset TOC header to default): call vimwiki#vars#set_wikilocal('toc_header', 'Contents') Given vimwiki (Headings): # Header 1 random text ## Header 1.1 random text ### Header 1.1.1 random text # Header 2 ### Header 2.1.1 Execute (Set syntax markdown && Set sw=8): call SetSyntax('markdown') set sw=8 Execute (VimwikiTOC): VimwikiTOC Expect (With a TOC sw=8): # Contents - [Header 1](#header-1) - [Header 1.1](#header-11) - [Header 1.1.1](#header-111) - [Header 2](#header-2) - [Header 2.1.1](#header-211) # Header 1 random text ## Header 1.1 random text ### Header 1.1.1 random text # Header 2 ### Header 2.1.1 Execute (Set sw=4 && VimwikiTOC): set sw=4 VimwikiTOC Expect (With a TOC sw=4): # Contents - [Header 1](#header-1) - [Header 1.1](#header-11) - [Header 1.1.1](#header-111) - [Header 2](#header-2) - [Header 2.1.1](#header-211) # Header 1 random text ## Header 1.1 random text ### Header 1.1.1 random text # Header 2 ### Header 2.1.1 Do (Destroy some stuff): jj dd jj dd Execute (VimwikiTOC): VimwikiTOC Expect (Brand new TOC): # Contents - [Header 1](#header-1) - [Header 1.1](#header-11) - [Header 1.1.1](#header-111) - [Header 2](#header-2) - [Header 2.1.1](#header-211) # Header 1 random text ## Header 1.1 random text ### Header 1.1.1 random text # Header 2 ### Header 2.1.1 Execute (Let toc_header = Sommaire && VimwikiTOC): call vimwiki#vars#set_wikilocal('toc_header', 'Sommaire') VimwikiTOC Expect (Append a Sommaire && Leave Contents alone): # Sommaire - [Header 1](#header-1) - [Header 1.1](#header-11) - [Header 1.1.1](#header-111) - [Header 2](#header-2) - [Header 2.1.1](#header-211) # Header 1 random text ## Header 1.1 random text ### Header 1.1.1 random text # Header 2 ### Header 2.1.1 Do (Destroy some stuff): jj dd jj dd Execute (VimwikiTOC): VimwikiTOC Expect (Brand new TOC with sommaire): # Sommaire - [Header 1](#header-1) - [Header 1.1](#header-11) - [Header 1.1.1](#header-111) - [Header 2](#header-2) - [Header 2.1.1](#header-211) # Header 1 random text ## Header 1.1 random text ### Header 1.1.1 random text # Header 2 ### Header 2.1.1 Execute (call vimwiki#vars#set_global('toc_header_level', 6): call vimwiki#vars#set_wikilocal('toc_header_level', 6) VimwikiTOC # Reset default call vimwiki#vars#set_wikilocal('toc_header_level', 1) Expect (Content prepended): ###### Sommaire - [Header 1](#header-1) - [Header 1.1](#header-11) - [Header 1.1.1](#header-111) - [Header 2](#header-2) - [Header 2.1.1](#header-211) # Header 1 random text ## Header 1.1 random text ### Header 1.1.1 random text # Header 2 ### Header 2.1.1 " vim: sw=2 foldmethod=marker foldlevel=30 foldignore=#