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
|
light: default
|
||||||
dark: dark
|
dark: dark
|
||||||
|
|
||||||
|
# WaveDrom tag
|
||||||
|
wavedrom:
|
||||||
|
enable: false
|
||||||
|
|
||||||
# ---------------------------------------------------------------
|
# ---------------------------------------------------------------
|
||||||
# Third Party Plugins & Services Settings
|
# Third Party Plugins & Services Settings
|
||||||
|
|||||||
10
_vendors.yml
10
_vendors.yml
@ -172,3 +172,13 @@ creative_commons:
|
|||||||
version: 2020.11.3
|
version: 2020.11.3
|
||||||
dir: assets/license_badges
|
dir: assets/license_badges
|
||||||
alias: creativecommons-vocabulary
|
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/pdf.njk' -%}
|
||||||
{%- include 'tags/mermaid.njk' -%}
|
{%- include 'tags/mermaid.njk' -%}
|
||||||
|
{%- include 'tags/wavedrom.njk' -%}
|
||||||
|
|
||||||
{%- include 'fancybox.njk' -%}
|
{%- include 'fancybox.njk' -%}
|
||||||
{%- include 'pace.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');
|
hexo.route.remove('js/third-party/tags/pdf.js');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!theme.wavedrom.enable) {
|
||||||
|
hexo.route.remove('js/third-party/tags/wavedrom.js');
|
||||||
|
}
|
||||||
|
|
||||||
// Others
|
// Others
|
||||||
if (!theme.fancybox) {
|
if (!theme.fancybox) {
|
||||||
hexo.route.remove('js/third-party/fancybox.js');
|
hexo.route.remove('js/third-party/fancybox.js');
|
||||||
|
|||||||
@ -35,6 +35,10 @@ const mermaid = require('./mermaid');
|
|||||||
|
|
||||||
hexo.extend.tag.register('mermaid', mermaid, true);
|
hexo.extend.tag.register('mermaid', mermaid, true);
|
||||||
|
|
||||||
|
const wavedrom = require('./wavedrom');
|
||||||
|
|
||||||
|
hexo.extend.tag.register('wavedrom', wavedrom, true);
|
||||||
|
|
||||||
const postNote = require('./note')(hexo);
|
const postNote = require('./note')(hexo);
|
||||||
|
|
||||||
hexo.extend.tag.register('note', postNote, true);
|
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 'label';
|
||||||
@import 'link-grid';
|
@import 'link-grid';
|
||||||
@import 'mermaid';
|
@import 'mermaid';
|
||||||
|
@import 'wavedrom';
|
||||||
@import 'note';
|
@import 'note';
|
||||||
@import 'pdf';
|
@import 'pdf';
|
||||||
@import 'tabs';
|
@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