# Conversion: Wiki -> Html

#################################################
Given vimwiki (Comments):
  This is some text
  %% This is a comment
  Test%%+INLINE COMMENT+%%1
  %%+INLINE COMMENT+%%Test2
  Test3%%+INLINE COMMENT+%%
  %%+ Multiline
  comment
  that
  is
  removed
  +%%
  Final text

Do (Convert):
  :call ConvertWiki2Html()\<Cr>
# Keep only body
  ggd/<body>\<Cr>

Expect (Comments Removed):
  <body>

  <p>
  This is some text
  Test1
  Test2
  Test3
  </p>






  <p>
  Final text
  </p>

  </body>
  </html>


#################################################
Given vimwiki (Table no heading {{{1):
  | header1 | header2 |
  |  val1    | val2    |
  |  val1    | val2    |
  |  val1    | val2    |

Do (Convert):
  :call ConvertWiki2Html()\<Cr>
# Keep only body
  ggd/<body>\<Cr>


Expect (Table no heading):
  <body>

  <table>
  <tr>
  <td>
  header1
  </td>
  <td>
  header2
  </td>
  </tr>
  <tr>
  <td>
  val1
  </td>
  <td>
  val2
  </td>
  </tr>
  <tr>
  <td>
  val1
  </td>
  <td>
  val2
  </td>
  </tr>
  <tr>
  <td>
  val1
  </td>
  <td>
  val2
  </td>
  </tr>
  </table>

  </body>
  </html>


Given vimwiki (Table with heading {{{1):
  | header1 | header2 | header3 |
  |---------|---------|---------|
  |  val1    | val2    | var3 |
  |  val4    | val5    | var6 |

Do (Convert):
  :call ConvertWiki2Html()\<Cr>
# Keep only body
  ggd/<body>\<Cr>


Expect (Table with heading):
  <body>

  <table>
  <thead>
  <tr>
  <th>
  header1
  </th>
  <th>
  header2
  </th>
  <th>
  header3
  </th>
  </tr>
  </thead>
  <tbody>
  <tr>
  <td>
  val1
  </td>
  <td>
  val2
  </td>
  <td>
  var3
  </td>
  </tr>
  <tr>
  <td>
  val4
  </td>
  <td>
  val5
  </td>
  <td>
  var6
  </td>
  </tr>
  </tbody>
  </table>

  </body>
  </html>


#################################################
Execute (Log):
   Log '#473: Syntax "local:" doesnt work as expected. #473'

Given vimwiki (Void Md):

Execute (Edit Test473 Wiki):
  edit $HOME/testwiki/TestHtml.wiki

Do (Add local link: [[local:$HOME/here|Link]]):
  :edit $HOME/testwiki/Test473.wiki\<CR>
  i
  [[local:
  \<C-r>=$HOME\<Cr>
  /here|Link]]
  \<Esc>
  :call WriteMe()\<Cr>
  :Vimwiki2HTML\<Cr>


Execute (Save and Convert to html):
  edit $HOME/testwiki/Test473.wiki
  Vimwiki2HTML
  AssertEqual '[[local:'.$HOME.'/here|Link]]', getline(1)


Given (Void Html):

# TODO mutualise
Do (Get Html body):
  :read $HOME/html/default/Test473.html\<CR>
# Goto body
  gg/<body>\<CR>
# Copy in b
  "bdat
# Delete All
  ggdG
# Paste body
  "bP
# Remove last line
  Gdd
# Save (Not necessary)
  :write

Expect (Local link):
  <body>

  <p>
  <a href="../../here">Link</a>
  </p>

  </body>


Execute (Delete):
  call DeleteFile(' $HOME/testwiki/Test473.wiki')

#################################################
Given (Void):

Execute (Edit TestHtml Wiki):
  edit $HOME/testwiki/TestHtml.wiki
  AssertEqual $HOME . '/testwiki/TestHtml.wiki', expand('%')
  AssertEqual 'default', vimwiki#vars#get_wikilocal('syntax')
  AssertEqual 0, vimwiki#vars#get_bufferlocal('wiki_nr')

Do (Markdwon with %plainhtml):
  :edit $HOME/testwiki/TestHtml.wiki\<CR>
  :normal ggdG\<Cr>
  i%plainhtml<div id="test">\<CR>
  my paragraph\<CR>
  %plainhtml</div>\<CR>\<Esc>
  :set bt=\<CR>
  :write\<CR>

Execute (Save and Convert to html):
  edit $HOME/testwiki/TestHtml.wiki
  Vimwiki2HTML

Given (Void):

Do (Get Html body):
  :read $HOME/html/default/TestHtml.html\<CR>
# Goto body
  gg/<body>\<CR>
# Copy in b
  "bdat
# Delete All
  ggdG
# Paste body
  "bP
# Remove last line
  Gdd
# Save (Not necessary)
  :write



Expect (Plain Html):
# the whole default html file should be here as a base + the modifications
# from "Given"
  <body>

  <div id="test">
  <p>
  my paragraph
  </p>
  </div>

  </body>


Execute (Delete):
  call DeleteFile('$HOME/testwiki/TestHtml.wiki')


Given vimwiki (PR: Add option to configure date string format 1073) {{{1):
  %template template_1073
  content

Do (template_date_format):
# Set conf
  :let g:vimwiki_wikilocal_vars[0]['template_date_format'] = '%b %d, %Y'\<Cr>
# Convert
  :call ConvertWiki2Html()\<Cr>
# Erase oth and date
  :%s/[0-9]\+/Z/g\<Cr>
  :%s/[A-Z][a-z][a-z]/Z/g\<Cr>
# Restore peace
  :let g:vimwiki_wikilocal_vars[0]['template_date_format'] = ''\<Cr>

Expect (Date proper format):
  <html>
  <body>
      <div class="content">
          <p><small>Zt updated on Z Z, Z</small></p>
      </div>
  </body>
  </html>

# vim: sw=2 foldmethod=marker foldlevel=30
