Mercurial > vim
diff runtime/autoload/tohtml.vim @ 5003:ad6996a23e3e
Updated runtime files. New version of TOhtml plugin.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 26 Jun 2013 13:28:14 +0200 |
parents | 2eb30f341e8d |
children | 30042ddff503 |
line wrap: on
line diff
--- a/runtime/autoload/tohtml.vim +++ b/runtime/autoload/tohtml.vim @@ -1,6 +1,6 @@ " Vim autoload file for the tohtml plugin. " Maintainer: Ben Fritz <fritzophrenic@gmail.com> -" Last Change: 2013 May 31 +" Last Change: 2013 Jun 19 " " Additional contributors: " @@ -401,15 +401,15 @@ func! tohtml#Diff2HTML(win_list, buf_lis call add(html, '</head>') let body_line_num = len(html) if !empty(s:settings.prevent_copy) - call add(html, "<body onload='FixCharWidth(); JumpToLine();'>") + call add(html, "<body onload='FixCharWidth();".(s:settings.line_ids ? " JumpToLine();" : "")."'>") call add(html, "<!-- hidden divs used by javascript to get the width of a char -->") call add(html, "<div id='oneCharWidth'>0</div>") call add(html, "<div id='oneInputWidth'><input size='1' value='0'".tag_close."</div>") call add(html, "<div id='oneEmWidth' style='width: 1em;'></div>") else - call add(html, '<body onload="JumpToLine();">') + call add(html, '<body'.(s:settings.line_ids ? ' onload="JumpToLine();"' : '').'>') endif - call add(html, "<table border='1' width='100%' id='vimCodeElement'>") + call add(html, "<table border='1' width='100%' id='vimCodeElement".s:settings.id_suffix."'>") call add(html, '<tr>') for buf in a:win_list @@ -475,7 +475,7 @@ func! tohtml#Diff2HTML(win_list, buf_lis let temp = getline(1,'$') " clean out id on the main content container because we already set it on " the table - let temp[0] = substitute(temp[0], " id='vimCodeElement'", "", "") + let temp[0] = substitute(temp[0], " id='vimCodeElement[^']*'", "", "") " undo deletion of start and end part " so we can later save the file as valid html " TODO: restore using grabbed lines if undolevel is 1? @@ -568,9 +568,9 @@ func! tohtml#Diff2HTML(win_list, buf_lis \ ' var emWidth = document.getElementById("oneEmWidth").clientWidth;', \ ' if (inputWidth > goodWidth) {', \ ' while (ratio < 100*goodWidth/emWidth && ratio < 100) {', - \ ' ratio += 5;', - \ ' }', - \ ' document.getElementById("vimCodeElement").className = "em"+ratio;', + \ ' ratio += 5;', + \ ' }', + \ ' document.getElementById("vimCodeElement'.s:settings.id_suffix.'").className = "em"+ratio;', \ ' }', \ '}' \ ]) @@ -596,7 +596,7 @@ func! tohtml#Diff2HTML(win_list, buf_lis \ "", \ " /* navigate upwards in the DOM tree to open all folds containing the line */", \ " var node = lineElem;", - \ " while (node && node.id != 'vimCodeElement')", + \ " while (node && node.id != 'vimCodeElement".s:settings.id_suffix."')", \ " {", \ " if (node.className == 'closed-fold')", \ " {", @@ -722,6 +722,7 @@ func! tohtml#GetUserSettings() "{{{ call tohtml#GetOption(user_settings, 'no_invalid', 0 ) call tohtml#GetOption(user_settings, 'whole_filler', 0 ) call tohtml#GetOption(user_settings, 'use_xhtml', 0 ) + call tohtml#GetOption(user_settings, 'line_ids', user_settings.number_lines ) " }}} " override those settings that need it {{{ @@ -855,6 +856,20 @@ func! tohtml#GetUserSettings() "{{{ let user_settings.no_invalid = 0 endif + if exists('g:html_id_expr') + let user_settings.id_suffix = eval(g:html_id_expr) + if user_settings.id_suffix !~ '^[-_:.A-Za-z0-9]*$' + echohl WarningMsg + echomsg '2html: g:html_id_expr evaluated to invalid string for HTML id attributes' + echomsg '2html: Omitting user-specified suffix' + echohl None + sleep 3 + let user_settings.id_suffix="" + endif + else + let user_settings.id_suffix="" + endif + " TODO: font return user_settings