Skip to content

Commit 6b978a6

Browse files
authored
vdoc: refactor theme files (#19024)
1 parent 43800a0 commit 6b978a6

File tree

11 files changed

+814
-829
lines changed

11 files changed

+814
-829
lines changed

.editorconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ end_of_line = lf
66
insert_final_newline = true
77
trim_trailing_whitespace = true
88

9-
[*.v]
9+
[*.{v,js,css}]
1010
indent_style = tab
1111

1212
[*.{bat,cmd}]
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: Code CI vlib modules
2+
3+
on:
4+
push:
5+
paths:
6+
- '**/cmd/tools/vdoc/theme/**'
7+
pull_request:
8+
paths:
9+
- '**/cmd/tools/vdoc/theme/**'
10+
11+
jobs:
12+
lint-module-docs:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v3
16+
- name: Check Formatting
17+
uses: actionsx/prettier@v2
18+
with:
19+
args: --check cmd/tools/vdoc/theme

cmd/tools/vdoc/html.v

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import v.ast
1010
import v.token
1111
import v.doc
1212
import v.pref
13+
import v.util { tabs }
1314

1415
const (
1516
css_js_assets = ['doc.css', 'normalize.css', 'doc.js', 'dark-mode.js']
@@ -249,27 +250,27 @@ fn (vd VDoc) gen_html(d doc.Doc) string {
249250
version).replace('{{ light_icon }}', vd.assets['light_icon']).replace('{{ dark_icon }}',
250251
vd.assets['dark_icon']).replace('{{ menu_icon }}', vd.assets['menu_icon']).replace('{{ head_assets }}',
251252
if cfg.inline_assets {
252-
'\n${tabs[0]}<style>' + vd.assets['doc_css'] + '</style>\n${tabs[0]}<style>' +
253-
vd.assets['normalize_css'] + '</style>\n${tabs[0]}<script>' +
254-
vd.assets['dark_mode_js'] + '</script>'
253+
'<style>${vd.assets['doc_css']}</style>
254+
${tabs(2)}<style>${vd.assets['normalize_css']}</style>
255+
${tabs(2)}<script>${vd.assets['dark_mode_js']}</script>'
255256
} else {
256-
'\n${tabs[0]}<link rel="stylesheet" href="' + vd.assets['doc_css'] +
257-
'" />\n${tabs[0]}<link rel="stylesheet" href="' + vd.assets['normalize_css'] +
258-
'" />\n${tabs[0]}<script src="' + vd.assets['dark_mode_js'] + '"></script>'
257+
'<link rel="stylesheet" href="${vd.assets['doc_css']}" />
258+
${tabs(2)}<link rel="stylesheet" href="${vd.assets['normalize_css']}" />
259+
${tabs(2)}<script src="${vd.assets['dark_mode_js']}"></script>'
259260
}).replace('{{ toc_links }}', if cfg.is_multi || vd.docs.len > 1 {
260261
modules_toc_str
261262
} else {
262263
symbols_toc_str
263264
}).replace('{{ contents }}', contents.str()).replace('{{ right_content }}', if cfg.is_multi
264265
&& d.head.name != 'README' {
265-
'<div class="doc-toc"><ul>' + symbols_toc_str + '</ul></div>'
266+
'<div class="doc-toc"><ul>${symbols_toc_str}</ul></div>'
266267
} else {
267268
''
268269
}).replace('{{ footer_content }}', gen_footer_text(d, !cfg.no_timestamp)).replace('{{ footer_assets }}',
269270
if cfg.inline_assets {
270-
'<script>' + vd.assets['doc_js'] + '</script>'
271+
'<script>${vd.assets['doc_js']}</script>'
271272
} else {
272-
'<script src="' + vd.assets['doc_js'] + '"></script>'
273+
'<script src="${vd.assets['doc_js']}"></script>'
273274
})
274275
return result
275276
}
@@ -407,12 +408,12 @@ fn doc_node_html(dn doc.DocNode, link string, head bool, include_examples bool,
407408
node_id = 'readme_${node_id}'
408409
hash_link = ' <a href="#${node_id}">#</a>'
409410
}
410-
dnw.writeln('${tabs[1]}<section id="${node_id}" class="doc-node${node_class}">')
411+
dnw.writeln('${tabs(2)}<section id="${node_id}" class="doc-node${node_class}">')
411412
if dn.name.len > 0 {
412413
if dn.kind == .const_group {
413-
dnw.write_string('${tabs[2]}<div class="title"><${head_tag}>${sym_name}${hash_link}</${head_tag}>')
414+
dnw.write_string('${tabs(3)}<div class="title"><${head_tag}>${sym_name}${hash_link}</${head_tag}>')
414415
} else {
415-
dnw.write_string('${tabs[2]}<div class="title"><${head_tag}>${dn.kind} ${sym_name}${hash_link}</${head_tag}>')
416+
dnw.write_string('${tabs(3)}<div class="title"><${head_tag}>${dn.kind} ${sym_name}${hash_link}</${head_tag}>')
416417
}
417418
if link.len != 0 {
418419
dnw.write_string('<a class="link" rel="noreferrer" target="_blank" href="${link}">${link_svg}</a>')

cmd/tools/vdoc/theme/.prettierrc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"useTabs": true,
3+
"printWidth": 100,
4+
"singleQuote": true
5+
}

cmd/tools/vdoc/theme/dark-mode.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
(function() {
2-
var html = document.getElementsByTagName('html')[0];
3-
if (localStorage.getItem('dark-mode') === 'true') {
4-
html.classList.add('dark');
5-
}
1+
(function () {
2+
if (localStorage.getItem('dark-mode') === 'true') {
3+
document.querySelector('html').classList.add('dark');
4+
}
65
})();

0 commit comments

Comments
 (0)