# 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) # # Doc: from #664: # -- 1. It downcases the string => OK: from previous big collection # -- 2. remove anything that is not a letter, number, space or hyphen (see the source for how Unicode is handled) => from 'bad characters' # -- 3. changes any space to a hyphen => OK: from previous big # -- 4. If that is not unique, add "-1", "-2", "-3",... to make it unique => TODO not implemented # # # TODO if link in heading #Given vimwiki (Two same heading {{{1): # # Pre [link](anything no parenthesis) Post # #Execute (Set syntax markdown && Set sw=8): # call SetSyntax('markdown') # set sw=8 # VimwikiTOC # #Expect (Suffix -1 and -2): # # # # # Start {{{1 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=#