| File vimd2h.py changed (mode: 100755) (index fa1b0c8..f2541cb) |
| ... |
... |
except: |
| 15 |
15 |
import urllib |
import urllib |
| 16 |
16 |
|
|
| 17 |
17 |
RE_TAGLINE = re.compile(r'(\S+)\s+(\S+)') |
RE_TAGLINE = re.compile(r'(\S+)\s+(\S+)') |
|
18 |
|
RE_LINE1_HELP = re.compile(r'^\*\S+\*\s.*') |
| 18 |
19 |
|
|
| 19 |
20 |
PAT_WORDCHAR = '[!#-)+-{}~\xC0-\xFF]' |
PAT_WORDCHAR = '[!#-)+-{}~\xC0-\xFF]' |
| 20 |
21 |
|
|
| |
| ... |
... |
PAT_SPECIAL = r'(<.*?>|\{.*?}|' \ |
| 29 |
30 |
r'\[(?:range|line|count|offset|\+?cmd|[-+]?num|\+\+opt|' \ |
r'\[(?:range|line|count|offset|\+?cmd|[-+]?num|\+\+opt|' \ |
| 30 |
31 |
r'arg|arguments|ident|addr|group)]|' \ |
r'arg|arguments|ident|addr|group)]|' \ |
| 31 |
32 |
r'(?<=\s)\[[-a-z^A-Z0-9_]{2,}])' |
r'(?<=\s)\[[-a-z^A-Z0-9_]{2,}])' |
| 32 |
|
PAT_TITLE = r'(Vim version [0-9.a-z]+|VIM REFERENCE.*)' |
|
|
33 |
|
PAT_VIM_REF = r'(Vim version [0-9.a-z]+|VIM REFERENCE.*)' |
| 33 |
34 |
PAT_NOTE = r'((?<!' + PAT_WORDCHAR + r')(?:note|NOTE|Notes?):?' \ |
PAT_NOTE = r'((?<!' + PAT_WORDCHAR + r')(?:note|NOTE|Notes?):?' \ |
| 34 |
35 |
r'(?!' + PAT_WORDCHAR + r'))' |
r'(?!' + PAT_WORDCHAR + r'))' |
| 35 |
36 |
PAT_URL = r'((?:https?|ftp)://[^\'"<> \t]+[a-zA-Z0-9/])' |
PAT_URL = r'((?:https?|ftp)://[^\'"<> \t]+[a-zA-Z0-9/])' |
| |
| ... |
... |
RE_TAGWORD = re.compile( |
| 49 |
50 |
PAT_OPTWORD + '|' + |
PAT_OPTWORD + '|' + |
| 50 |
51 |
PAT_CTRL + '|' + |
PAT_CTRL + '|' + |
| 51 |
52 |
PAT_SPECIAL + '|' + |
PAT_SPECIAL + '|' + |
| 52 |
|
PAT_TITLE + '|' + |
|
|
53 |
|
PAT_VIM_REF + '|' + |
| 53 |
54 |
PAT_NOTE + '|' + |
PAT_NOTE + '|' + |
| 54 |
55 |
PAT_URL + '|' + |
PAT_URL + '|' + |
| 55 |
56 |
PAT_WORD) |
PAT_WORD) |
| |
| ... |
... |
class VimDoc2HTML(object): |
| 119 |
120 |
out = [ ] |
out = [ ] |
| 120 |
121 |
|
|
| 121 |
122 |
inexample = 0 |
inexample = 0 |
|
123 |
|
lineno = 0 |
| 122 |
124 |
for line in RE_NEWLINE.split(contents): |
for line in RE_NEWLINE.split(contents): |
|
125 |
|
lineno += 1 |
| 123 |
126 |
line = line.rstrip('\r\n') |
line = line.rstrip('\r\n') |
|
127 |
|
line1_help = lineno == 1 and RE_LINE1_HELP.match(line) |
|
128 |
|
if line1_help: |
|
129 |
|
out.append('<span class="flh">') |
| 124 |
130 |
line_tabs = line |
line_tabs = line |
| 125 |
131 |
line = line.expandtabs() |
line = line.expandtabs() |
| 126 |
132 |
if RE_HRULE.match(line): |
if RE_HRULE.match(line): |
| |
| ... |
... |
class VimDoc2HTML(object): |
| 148 |
154 |
out.append(html_escape[line[lastpos:pos]]) |
out.append(html_escape[line[lastpos:pos]]) |
| 149 |
155 |
lastpos = match.end() |
lastpos = match.end() |
| 150 |
156 |
header, graphic, pipeword, starword, command, opt, ctrl, \ |
header, graphic, pipeword, starword, command, opt, ctrl, \ |
| 151 |
|
special, title, note, url, word = match.groups() |
|
|
157 |
|
special, vimref, note, url, word = match.groups() |
| 152 |
158 |
if pipeword is not None: |
if pipeword is not None: |
| 153 |
159 |
out.append(self.maplink(pipeword, 'l')) |
out.append(self.maplink(pipeword, 'l')) |
| 154 |
160 |
elif starword is not None: |
elif starword is not None: |
| |
| ... |
... |
class VimDoc2HTML(object): |
| 164 |
170 |
out.append(self.maplink(ctrl, 'k')) |
out.append(self.maplink(ctrl, 'k')) |
| 165 |
171 |
elif special is not None: |
elif special is not None: |
| 166 |
172 |
out.append(self.maplink(special, 's')) |
out.append(self.maplink(special, 's')) |
| 167 |
|
elif title is not None: |
|
| 168 |
|
out.extend(('<span class="i">', html_escape[title], |
|
|
173 |
|
elif vimref is not None: |
|
174 |
|
out.extend(('<span class="i">', html_escape[vimref], |
| 169 |
175 |
'</span>')) |
'</span>')) |
| 170 |
176 |
elif note is not None: |
elif note is not None: |
| 171 |
177 |
out.extend(('<span class="n">', html_escape[note], |
out.extend(('<span class="n">', html_escape[note], |
| |
| ... |
... |
class VimDoc2HTML(object): |
| 182 |
188 |
out.append(self.maplink(word)) |
out.append(self.maplink(word)) |
| 183 |
189 |
if lastpos < len(line): |
if lastpos < len(line): |
| 184 |
190 |
out.append(html_escape[line[lastpos:]]) |
out.append(html_escape[line[lastpos:]]) |
|
191 |
|
if line1_help: |
|
192 |
|
out.append('</span>') |
| 185 |
193 |
out.append('\n') |
out.append('\n') |
| 186 |
194 |
if inexample == 1: inexample = 2 |
if inexample == 1: inexample = 2 |
| 187 |
195 |
|
|