|
1 | | -<?js var data = obj; ?> |
2 | | -<?jsif(data && typeof data === 'object'){?> |
3 | | -<pre class="prettyprint"> |
4 | | -<code>// 浏览器 |
5 | | -<script type="text/javascript" src="<?js= data.globalParams.cdn ?>"></script> |
6 | | -<script> |
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 | | -</script> |
| 1 | +<?js |
| 2 | +var data = obj; |
| 3 | +var cdnUsage = ''; |
| 4 | +var esmUsage = ''; |
| 5 | +var explicitUsage = data && typeof data !== 'object' ? data.toString() : ''; |
11 | 6 |
|
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 | + '<script type="text/javascript" src="' + data.globalParams.cdn + '"></script>\n' + |
| 10 | + '<script>\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</script></code></pre>'; |
14 | 20 |
|
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