Skip to content

Commit 0ade2c3

Browse files
committed
【doc】Usage使用tab样式
AI-GEN: 80%
1 parent fc607e3 commit 0ade2c3

3 files changed

Lines changed: 88 additions & 18 deletions

File tree

build/jsdocs/template/static/scripts/main.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
11
$(function () {
2+
$('.usage-tabs').on('click', '.usage-tab', function () {
3+
var tab = $(this);
4+
var tabs = tab.closest('.usage-tabs');
5+
var target = tab.data('usage-tab');
6+
tabs.find('.usage-tab').removeClass('active').attr('aria-selected', 'false');
7+
tabs.find('.usage-panel').removeClass('active');
8+
tab.addClass('active').attr('aria-selected', 'true');
9+
tabs.find('.usage-panel[data-usage-panel="' + target + '"]').addClass('active');
10+
if (window.prettyPrint) {
11+
window.prettyPrint();
12+
}
13+
});
214
$('.navigationDiv').load("nav.html .main-sidebar", null, function () {
315
var height = $('.sidebar').height();
416
$('.main-sidebar #categories').css('height', height - 125 + 'px');

build/jsdocs/template/static/styles/jaguar.css

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,37 @@ a:hover, a:active, a:focus{
188188
display: none;
189189
}
190190

191+
.usage-tab-list {
192+
display: flex;
193+
gap: 4px;
194+
margin-bottom: 8px;
195+
border-bottom: 1px solid #ddd;
196+
}
197+
198+
.usage-tab {
199+
padding: 6px 12px;
200+
border: 1px solid #ddd;
201+
border-bottom: 2px solid transparent;
202+
background: #f5f5f5;
203+
color: #555;
204+
font-weight: 600;
205+
cursor: pointer;
206+
}
207+
208+
.usage-tab.active {
209+
background: #fff;
210+
border-bottom-color: var(--active-color);
211+
color: var(--active-color);
212+
}
213+
214+
.usage-panel {
215+
display: none;
216+
}
217+
218+
.usage-panel.active {
219+
display: block;
220+
}
221+
191222
.main h1 {
192223
font-weight: bold;
193224
font-size: 1.6em;
Lines changed: 45 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,47 @@
1-
<?js var data = obj; ?>
2-
<?jsif(data && typeof data === 'object'){?>
3-
<pre class="prettyprint">
4-
<code>// 浏览器
5-
&lt;script type="text/javascript" src="<?js= data.globalParams.cdn ?>"&gt;&lt;/script&gt;
6-
&lt;script&gt;
7-
<?js= "new {namespace}.{className}({paramsNames});".replace('{className}', data.aliasClass || data.className).replace('{namespace}',data.browserNamespace || data.globalParams.namespace).replace('{paramsNames}',data.paramsNames?data.paramsNames.join(', '):'') ?>
8-
<?js= data.deprecatedClasses.length > 0 || data.deprecatedClassInstance?'\r // 弃用的写法\r\n':'' ?><?jsdata.deprecatedClasses.forEach(deprecatedClass => { ?><?js= " new {deprecatedClass}({paramsNames});\r\n".replace('{deprecatedClass}',deprecatedClass).replace('{paramsNames}',data.paramsNames?data.paramsNames.join(', '):'') ?><?js}); ?><?js if(data.deprecatedClassInstance){ ?><?js= " {deprecatedClassInstance}({paramsNames});".replace('{deprecatedClassInstance}',data.deprecatedClassInstance).replace('{paramsNames}',data.paramsNames?data.paramsNames.join(', '):'') ?>
9-
<?js } ?>
10-
&lt;/script&gt;
1+
<?js
2+
var data = obj;
3+
var cdnUsage = '';
4+
var esmUsage = '';
5+
var explicitUsage = data && typeof data !== 'object' ? data.toString() : '';
116

12-
<span class="nopretty">// ES6 Import</span>
13-
<?js= "import { {className} } from '{npm}';".replace('{className}',data.className).replace('{npm}',data.globalParams.npm) ?>
7+
if (data && typeof data === 'object') {
8+
cdnUsage = '<pre class="prettyprint"><code>' +
9+
'&lt;script type="text/javascript" src="' + data.globalParams.cdn + '"&gt;&lt;/script&gt;\n' +
10+
'&lt;script&gt;\n' +
11+
' ' + "new {namespace}.{className}({paramsNames});"
12+
.replace('{className}', data.aliasClass || data.className)
13+
.replace('{namespace}', data.browserNamespace || data.globalParams.namespace) +
14+
(data.deprecatedClasses.length > 0 || data.deprecatedClassInstance ? '\n // 弃用的写法\n' : '') +
15+
data.deprecatedClasses.map(function(deprecatedClass) {
16+
return ' new ' + deprecatedClass + '(' + (data.paramsNames ? data.paramsNames.join(', ') : '') + ');';
17+
}).join('\n') +
18+
(data.deprecatedClassInstance ? '\n ' + data.deprecatedClassInstance + '(' + (data.paramsNames ? data.paramsNames.join(', ') : '') + ');' : '') +
19+
'\n&lt;/script&gt;</code></pre>';
1420

15-
<?js= "new {className}({paramsNames});".replace('{className}',data.className).replace('{paramsNames}',data.paramsNames?data.paramsNames.join(', '):'') ?>
16-
</code>
17-
</pre>
18-
<?js}else{ ?>
19-
<?js= data ?>
20-
<?js} ?>
21+
esmUsage = '<pre class="prettyprint"><code>' +
22+
'import { ' + data.className + ' } from \'' + data.globalParams.npm + '\';\n\n' +
23+
'new ' + data.className + '(' + (data.paramsNames ? data.paramsNames.join(', ') : '') + ');</code></pre>';
24+
} else {
25+
var marker = explicitUsage.indexOf('// ES6 Import');
26+
var codeStart = explicitUsage.indexOf('<code>');
27+
var codeEnd = explicitUsage.lastIndexOf('</code>');
28+
if (marker >= 0 && codeStart >= 0 && codeEnd >= 0) {
29+
var codePrefix = explicitUsage.substring(0, codeStart + 6);
30+
var codeSuffix = explicitUsage.substring(codeEnd);
31+
cdnUsage = codePrefix + explicitUsage.substring(codeStart + 6, marker).replace(/^\s*\/\/ 浏览器\s*/, '') + codeSuffix;
32+
esmUsage = codePrefix + explicitUsage.substring(marker + '// ES6 Import'.length).replace(/^\s*/, '');
33+
} else {
34+
cdnUsage = explicitUsage;
35+
esmUsage = explicitUsage;
36+
}
37+
}
38+
?>
39+
40+
<div class="usage-tabs">
41+
<div class="usage-tab-list" role="tablist">
42+
<button type="button" class="usage-tab active" role="tab" aria-selected="true" data-usage-tab="esm">ESM</button>
43+
<button type="button" class="usage-tab" role="tab" aria-selected="false" data-usage-tab="cdn">CDN</button>
44+
</div>
45+
<div class="usage-panel active" role="tabpanel" data-usage-panel="esm"><?js= esmUsage ?></div>
46+
<div class="usage-panel" role="tabpanel" data-usage-panel="cdn"><?js= cdnUsage ?></div>
47+
</div>

0 commit comments

Comments
 (0)