mirror of
https://github.com/next-theme/hexo-theme-next.git
synced 2026-01-17 18:22:33 +00:00
Add wavedrom support (#655)
This commit is contained in:
parent
2d64661e5d
commit
01e518a39f
@ -532,6 +532,9 @@ mermaid:
|
||||
light: default
|
||||
dark: dark
|
||||
|
||||
# WaveDrom tag
|
||||
wavedrom:
|
||||
enable: false
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# Third Party Plugins & Services Settings
|
||||
|
||||
10
_vendors.yml
10
_vendors.yml
@ -172,3 +172,13 @@ creative_commons:
|
||||
version: 2020.11.3
|
||||
dir: assets/license_badges
|
||||
alias: creativecommons-vocabulary
|
||||
wavedrom:
|
||||
name: wavedrom
|
||||
version: 3.2.0
|
||||
file: wavedrom.min.js
|
||||
integrity: sha512-/ZL0uQxVV1wYyWlpO4klZ1a39eaBz4zESSamuBMaMsZ6le3YejJ07hmLlHoCTXrKz5eYtEuO5K1BcTo+lQpQJA==
|
||||
wavedrom_skin:
|
||||
name: wavedrom
|
||||
version: 3.2.0
|
||||
file: skins/default.js
|
||||
integrity: sha512-GV5gOBpCHd3M5Af9Ooz+I9dQdwcDKPR2F8ulzCpoF4W6uwmtLTh/pT8Q1XupPmQJO+Kt88/DrIiK7PzR1YLvwQ==
|
||||
1
layout/_third-party/index.njk
vendored
1
layout/_third-party/index.njk
vendored
@ -14,6 +14,7 @@
|
||||
|
||||
{%- include 'tags/pdf.njk' -%}
|
||||
{%- include 'tags/mermaid.njk' -%}
|
||||
{%- include 'tags/wavedrom.njk' -%}
|
||||
|
||||
{%- include 'fancybox.njk' -%}
|
||||
{%- include 'pace.njk' -%}
|
||||
|
||||
9
layout/_third-party/tags/wavedrom.njk
vendored
Normal file
9
layout/_third-party/tags/wavedrom.njk
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
{%- if theme.wavedrom.enable %}
|
||||
{{ next_data('wavedrom', theme.wavedrom, {
|
||||
js: theme.vendors.wavedrom
|
||||
}) }}
|
||||
{{ next_data('wavedrom_skin', theme.wavedrom, {
|
||||
js: theme.vendors.wavedrom_skin
|
||||
}) }}
|
||||
{{ next_js('third-party/tags/wavedrom.js') }}
|
||||
{%- endif %}
|
||||
@ -137,6 +137,10 @@ hexo.extend.filter.register('after_generate', () => {
|
||||
hexo.route.remove('js/third-party/tags/pdf.js');
|
||||
}
|
||||
|
||||
if (!theme.wavedrom.enable) {
|
||||
hexo.route.remove('js/third-party/tags/wavedrom.js');
|
||||
}
|
||||
|
||||
// Others
|
||||
if (!theme.fancybox) {
|
||||
hexo.route.remove('js/third-party/fancybox.js');
|
||||
|
||||
@ -35,6 +35,10 @@ const mermaid = require('./mermaid');
|
||||
|
||||
hexo.extend.tag.register('mermaid', mermaid, true);
|
||||
|
||||
const wavedrom = require('./wavedrom');
|
||||
|
||||
hexo.extend.tag.register('wavedrom', wavedrom, true);
|
||||
|
||||
const postNote = require('./note')(hexo);
|
||||
|
||||
hexo.extend.tag.register('note', postNote, true);
|
||||
|
||||
11
scripts/tags/wavedrom.js
Normal file
11
scripts/tags/wavedrom.js
Normal file
@ -0,0 +1,11 @@
|
||||
/**
|
||||
* wavedrom.js | https://theme-next.js.org/docs/tag-plugins/wavedrom
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
module.exports = function(args, content) {
|
||||
return `<div class="wavedrom"><script type="WaveDrom">
|
||||
${content}
|
||||
</script></div>`;
|
||||
};
|
||||
@ -3,6 +3,7 @@
|
||||
@import 'label';
|
||||
@import 'link-grid';
|
||||
@import 'mermaid';
|
||||
@import 'wavedrom';
|
||||
@import 'note';
|
||||
@import 'pdf';
|
||||
@import 'tabs';
|
||||
|
||||
6
source/css/_common/scaffolding/tags/wavedrom.styl
Normal file
6
source/css/_common/scaffolding/tags/wavedrom.styl
Normal file
@ -0,0 +1,6 @@
|
||||
if (hexo-config('wavedrom.enable')) {
|
||||
.wavedrom {
|
||||
margin-bottom: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
13
source/js/third-party/tags/wavedrom.js
vendored
Normal file
13
source/js/third-party/tags/wavedrom.js
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
/* global NexT, CONFIG, WaveDrom */
|
||||
|
||||
document.addEventListener('page:loaded', () => {
|
||||
NexT.utils.getScript(CONFIG.wavedrom.js, {
|
||||
condition: window.WaveDrom
|
||||
}).then(() => {
|
||||
NexT.utils.getScript(CONFIG.wavedrom_skin.js, {
|
||||
condition: window.WaveSkin
|
||||
}).then(() => {
|
||||
WaveDrom.ProcessAll();
|
||||
});
|
||||
});
|
||||
});
|
||||
Loading…
x
Reference in New Issue
Block a user