618893be00
Problem: I noticed that running :Vimwiki2HTML for a file with a `"` in
the `%title` line would error out. For example, a title like:
%title this will die: "
Causes:
Error detected while processing function vimwiki#html#Wiki2HTML[1]..<SNR>177_convert_file[15]..<SNR>177_convert_file_to_lines
_template:
line 8:
E116: Invalid arguments for function substitute(v:val, "%title%", "this will die: "", "g")
Solution: It seems like the string concatenation here was unnecessary.
At least on my vim 8.1, the evaluated code seems to have access to the
correct variables.
I'm sure there are bigger problems with the HTML generation here, but this
allows my ~2000 pages with titles to render without throwing errors.
Also adds a brief test and removes some unnecessary DeleteFile() calls
from html_convert_default.vader.
Co-authored-by: Brennen Bearnes <code@p1k3.com>
301 lines
4.4 KiB
Plaintext
301 lines
4.4 KiB
Plaintext
# 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
|