ci: fix `v -W build-tools`

pull/8904/head
Delyan Angelov 2021-02-22 15:33:03 +02:00
parent 7a6fd359d0
commit 2516c07614
No known key found for this signature in database
GPG Key ID: 66886C0F12D595ED
2 changed files with 30 additions and 36 deletions

View File

@ -106,22 +106,22 @@ struct SearchResult {
fn (vd VDoc) render_search_index(out Output) { fn (vd VDoc) render_search_index(out Output) {
mut js_search_index := strings.new_builder(200) mut js_search_index := strings.new_builder(200)
mut js_search_data := strings.new_builder(200) mut js_search_data := strings.new_builder(200)
js_search_index.write('var searchModuleIndex = [') js_search_index.write_string('var searchModuleIndex = [')
js_search_data.write('var searchModuleData = [') js_search_data.write_string('var searchModuleData = [')
for i, title in vd.search_module_index { for i, title in vd.search_module_index {
data := vd.search_module_data[i] data := vd.search_module_data[i]
js_search_index.write('"$title",') js_search_index.write_string('"$title",')
js_search_data.write('["$data.description","$data.link"],') js_search_data.write_string('["$data.description","$data.link"],')
} }
js_search_index.writeln('];') js_search_index.writeln('];')
js_search_index.write('var searchIndex = [') js_search_index.write_string('var searchIndex = [')
js_search_data.writeln('];') js_search_data.writeln('];')
js_search_data.write('var searchData = [') js_search_data.write_string('var searchData = [')
for i, title in vd.search_index { for i, title in vd.search_index {
data := vd.search_data[i] data := vd.search_data[i]
js_search_index.write('"$title",') js_search_index.write_string('"$title",')
// array instead of object to reduce file size // array instead of object to reduce file size
js_search_data.write('["$data.badge","$data.description","$data.link","$data.prefix"],') js_search_data.write_string('["$data.badge","$data.description","$data.link","$data.prefix"],')
} }
js_search_index.writeln('];') js_search_index.writeln('];')
js_search_data.writeln('];') js_search_data.writeln('];')
@ -221,12 +221,13 @@ fn (vd VDoc) write_content(cn &doc.DocNode, d &doc.Doc, mut hw strings.Builder)
} }
src_link := get_src_link(vd.manifest.repo_url, file_path_name, cn.pos.line) src_link := get_src_link(vd.manifest.repo_url, file_path_name, cn.pos.line)
if cn.content.len != 0 || (cn.name == 'Constants') { if cn.content.len != 0 || (cn.name == 'Constants') {
hw.write(doc_node_html(cn, src_link, false, cfg.include_examples, d.table)) hw.write_string(doc_node_html(cn, src_link, false, cfg.include_examples, d.table))
} }
for child in cn.children { for child in cn.children {
child_file_path_name := child.file_path.replace('$base_dir/', '') child_file_path_name := child.file_path.replace('$base_dir/', '')
child_src_link := get_src_link(vd.manifest.repo_url, child_file_path_name, child.pos.line) child_src_link := get_src_link(vd.manifest.repo_url, child_file_path_name, child.pos.line)
hw.write(doc_node_html(child, child_src_link, false, cfg.include_examples, d.table)) hw.write_string(doc_node_html(child, child_src_link, false, cfg.include_examples,
d.table))
} }
} }
@ -271,10 +272,10 @@ fn (vd VDoc) gen_html(d doc.Doc) string {
submodules := vd.docs.filter(it.head.name.starts_with(submod_prefix + '.')) submodules := vd.docs.filter(it.head.name.starts_with(submod_prefix + '.'))
dropdown := if submodules.len > 0 { vd.assets['arrow_icon'] } else { '' } dropdown := if submodules.len > 0 { vd.assets['arrow_icon'] } else { '' }
active_class := if dc.head.name == d.head.name { ' active' } else { '' } active_class := if dc.head.name == d.head.name { ' active' } else { '' }
modules_toc.write('<li class="open$active_class"><div class="menu-row">$dropdown<a href="$href_name">$submod_prefix</a></div>') modules_toc.write_string('<li class="open$active_class"><div class="menu-row">$dropdown<a href="$href_name">$submod_prefix</a></div>')
for j, cdoc in submodules { for j, cdoc in submodules {
if j == 0 { if j == 0 {
modules_toc.write('<ul>') modules_toc.write_string('<ul>')
} }
submod_name := cdoc.head.name.all_after(submod_prefix + '.') submod_name := cdoc.head.name.all_after(submod_prefix + '.')
sub_selected_classes := if cdoc.head.name == d.head.name { sub_selected_classes := if cdoc.head.name == d.head.name {
@ -282,21 +283,17 @@ fn (vd VDoc) gen_html(d doc.Doc) string {
} else { } else {
'' ''
} }
modules_toc.write('<li$sub_selected_classes><a href="./${cdoc.head.name}.html">$submod_name</a></li>') modules_toc.write_string('<li$sub_selected_classes><a href="./${cdoc.head.name}.html">$submod_name</a></li>')
if j == submodules.len - 1 { if j == submodules.len - 1 {
modules_toc.write('</ul>') modules_toc.write_string('</ul>')
} }
} }
modules_toc.write('</li>') modules_toc.write_string('</li>')
} }
} }
modules_toc_str := modules_toc.str() modules_toc_str := modules_toc.str()
symbols_toc_str := symbols_toc.str() symbols_toc_str := symbols_toc.str()
unsafe { result := html_content.replace('{{ title }}', d.head.name).replace('{{ head_name }}',
modules_toc.free()
symbols_toc.free()
}
return html_content.replace('{{ title }}', d.head.name).replace('{{ head_name }}',
header_name).replace('{{ version }}', version).replace('{{ light_icon }}', vd.assets['light_icon']).replace('{{ dark_icon }}', header_name).replace('{{ version }}', version).replace('{{ light_icon }}', vd.assets['light_icon']).replace('{{ dark_icon }}',
vd.assets['dark_icon']).replace('{{ menu_icon }}', vd.assets['menu_icon']).replace('{{ head_assets }}', vd.assets['dark_icon']).replace('{{ menu_icon }}', vd.assets['menu_icon']).replace('{{ head_assets }}',
if cfg.inline_assets { if cfg.inline_assets {
@ -322,6 +319,7 @@ fn (vd VDoc) gen_html(d doc.Doc) string {
} else { } else {
'<script src="' + vd.assets['doc_js'] + '"></script>' '<script src="' + vd.assets['doc_js'] + '"></script>'
}) })
return result
} }
fn get_src_link(repo_url string, file_name string, line_nr int) string { fn get_src_link(repo_url string, file_name string, line_nr int) string {
@ -404,7 +402,7 @@ fn html_highlight(code string, tb &table.Table) string {
} }
} }
} }
buf.write(highlight_code(tok, tok_typ)) buf.write_string(highlight_code(tok, tok_typ))
if next_tok.kind != .eof { if next_tok.kind != .eof {
i = tok.pos + tok.len i = tok.pos + tok.len
tok = next_tok tok = next_tok
@ -445,14 +443,14 @@ fn doc_node_html(dn doc.DocNode, link string, head bool, include_examples bool,
dnw.writeln('${tabs[1]}<section id="$node_id" class="doc-node$node_class">') dnw.writeln('${tabs[1]}<section id="$node_id" class="doc-node$node_class">')
if dn.name.len > 0 { if dn.name.len > 0 {
if dn.kind == .const_group { if dn.kind == .const_group {
dnw.write('${tabs[2]}<div class="title"><$head_tag>$sym_name$hash_link</$head_tag>') dnw.write_string('${tabs[2]}<div class="title"><$head_tag>$sym_name$hash_link</$head_tag>')
} else { } else {
dnw.write('${tabs[2]}<div class="title"><$head_tag>$dn.kind $sym_name$hash_link</$head_tag>') dnw.write_string('${tabs[2]}<div class="title"><$head_tag>$dn.kind $sym_name$hash_link</$head_tag>')
} }
if link.len != 0 { if link.len != 0 {
dnw.write('<a class="link" rel="noreferrer" target="_blank" href="$link">$link_svg</a>') dnw.write_string('<a class="link" rel="noreferrer" target="_blank" href="$link">$link_svg</a>')
} }
dnw.write('</div>') dnw.write_string('</div>')
} }
if !head && dn.content.len > 0 { if !head && dn.content.len > 0 {
dnw.writeln('<pre class="signature"><code>$hlighted_code</code></pre>') dnw.writeln('<pre class="signature"><code>$hlighted_code</code></pre>')
@ -472,9 +470,6 @@ fn doc_node_html(dn doc.DocNode, link string, head bool, include_examples bool,
} }
dnw.writeln('</section>') dnw.writeln('</section>')
dnw_str := dnw.str() dnw_str := dnw.str()
defer {
unsafe { dnw.free() }
}
return dnw_str return dnw_str
} }
@ -498,10 +493,9 @@ fn js_compress(str string) string {
for i in 0 .. rules.len - 1 { for i in 0 .. rules.len - 1 {
trimmed = trimmed.replace(rules[i], clean[i]) trimmed = trimmed.replace(rules[i], clean[i])
} }
js.write(trimmed) js.write_string(trimmed)
} }
js_str := js.str() js_str := js.str()
js.free()
return js_str return js_str
} }
*/ */
@ -518,9 +512,9 @@ fn write_toc(dn doc.DocNode, mut toc strings.Builder) {
if dn.comments.len == 0 || (dn.comments.len > 0 && dn.comments[0].text.len == 0) { if dn.comments.len == 0 || (dn.comments.len > 0 && dn.comments[0].text.len == 0) {
return return
} }
toc.write('<li class="open"><a href="#readme_$toc_slug">README</a>') toc.write_string('<li class="open"><a href="#readme_$toc_slug">README</a>')
} else if dn.name != 'Constants' { } else if dn.name != 'Constants' {
toc.write('<li class="open"><a href="#$toc_slug">$dn.kind $dn.name</a>') toc.write_string('<li class="open"><a href="#$toc_slug">$dn.kind $dn.name</a>')
toc.writeln(' <ul>') toc.writeln(' <ul>')
for child in dn.children { for child in dn.children {
cname := dn.name + '.' + child.name cname := dn.name + '.' + child.name
@ -528,7 +522,7 @@ fn write_toc(dn doc.DocNode, mut toc strings.Builder) {
} }
toc.writeln('</ul>') toc.writeln('</ul>')
} else { } else {
toc.write('<li class="open"><a href="#$toc_slug">$dn.name</a>') toc.write_string('<li class="open"><a href="#$toc_slug">$dn.name</a>')
} }
toc.writeln('</li>') toc.writeln('</li>')
} }

View File

@ -80,9 +80,9 @@ fn (vd VDoc) gen_json(d doc.Doc) string {
} else { } else {
d.head.merge_comments_without_examples() d.head.merge_comments_without_examples()
} }
jw.write('{"module_name":"$d.head.name","description":"${escape(comments)}","contents":') jw.write_string('{"module_name":"$d.head.name","description":"${escape(comments)}","contents":')
jw.write(json.encode(d.contents.keys().map(d.contents[it]))) jw.write_string(json.encode(d.contents.keys().map(d.contents[it])))
jw.write(',"generator":"vdoc","time_generated":"$d.time_generated.str()"}') jw.write_string(',"generator":"vdoc","time_generated":"$d.time_generated.str()"}')
return jw.str() return jw.str()
} }