mirror of
https://github.com/next-theme/hexo-theme-next.git
synced 2026-01-19 18:42:34 +00:00
Refactor js_vendors
This commit is contained in:
parent
ee7d13e307
commit
b02c93dc3a
@ -15,4 +15,3 @@
|
|||||||
{%- if theme.pjax %}
|
{%- if theme.pjax %}
|
||||||
{% include 'pjax.njk' %}
|
{% include 'pjax.njk' %}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{% include 'three.njk' %}
|
|
||||||
|
|||||||
@ -1,16 +0,0 @@
|
|||||||
{%- if theme.three.enable %}
|
|
||||||
{%- set three_uri = theme.vendors.three or next_vendors('three/three.min.js') %}
|
|
||||||
<script defer src="{{ three_uri }}"></script>
|
|
||||||
{%- if theme.three.three_waves %}
|
|
||||||
{%- set waves_uri = theme.vendors.three_waves or next_vendors('three/three-waves.min.js') %}
|
|
||||||
<script defer src="{{ waves_uri }}"></script>
|
|
||||||
{%- endif %}
|
|
||||||
{%- if theme.three.canvas_lines %}
|
|
||||||
{%- set lines_uri = theme.vendors.canvas_lines or next_vendors('three/canvas_lines.min.js') %}
|
|
||||||
<script defer src="{{ lines_uri }}"></script>
|
|
||||||
{%- endif %}
|
|
||||||
{%- if theme.three.canvas_sphere %}
|
|
||||||
{%- set sphere_uri = theme.vendors.canvas_sphere or next_vendors('three/canvas_sphere.min.js') %}
|
|
||||||
<script defer src="{{ sphere_uri }}"></script>
|
|
||||||
{%- endif %}
|
|
||||||
{%- endif %}
|
|
||||||
@ -1,30 +1,18 @@
|
|||||||
{%- set js_vendors = {} %}
|
{%- if theme.three.enable %}
|
||||||
{%- set js_vendors = js_vendors | attr('anime', 'anime.min.js') %}
|
{%- set three_uri = theme.vendors.three or next_vendors('three/three.min.js') %}
|
||||||
|
<script defer src="{{ three_uri }}"></script>
|
||||||
{%- if theme.pjax %}
|
{%- if theme.three.three_waves %}
|
||||||
{%- set js_vendors = js_vendors | attr('pjax', 'pjax/pjax.min.js') %}
|
{%- set waves_uri = theme.vendors.three_waves or next_vendors('three/three-waves.min.js') %}
|
||||||
{%- endif %}
|
<script defer src="{{ waves_uri }}"></script>
|
||||||
|
{%- endif %}
|
||||||
{%- if theme.fancybox %}
|
{%- if theme.three.canvas_lines %}
|
||||||
{%- set js_vendors = js_vendors | attr('jquery', '//cdn.jsdelivr.net/npm/jquery@3/dist/jquery.min.js') %}
|
{%- set lines_uri = theme.vendors.canvas_lines or next_vendors('three/canvas_lines.min.js') %}
|
||||||
{%- set js_vendors = js_vendors | attr('fancybox', '//cdn.jsdelivr.net/gh/fancyapps/fancybox@3/dist/jquery.fancybox.min.js') %}
|
<script defer src="{{ lines_uri }}"></script>
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
{%- if theme.three.canvas_sphere %}
|
||||||
{%- if theme.mediumzoom %}
|
{%- set sphere_uri = theme.vendors.canvas_sphere or next_vendors('three/canvas_sphere.min.js') %}
|
||||||
{%- set js_vendors = js_vendors | attr('mediumzoom', '//cdn.jsdelivr.net/npm/medium-zoom@1/dist/medium-zoom.min.js') %}
|
<script defer src="{{ sphere_uri }}"></script>
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
{%- if theme.lazyload %}
|
|
||||||
{%- set js_vendors = js_vendors | attr('lazyload', '//cdn.jsdelivr.net/npm/lozad@1/dist/lozad.min.js') %}
|
|
||||||
{%- endif %}
|
|
||||||
|
|
||||||
{%- if theme.pangu %}
|
|
||||||
{%- set js_vendors = js_vendors | attr('pangu', '//cdn.jsdelivr.net/npm/pangu@4/dist/browser/pangu.min.js') %}
|
|
||||||
{%- endif %}
|
|
||||||
|
|
||||||
{%- if theme.motion.enable %}
|
|
||||||
{%- set js_vendors = js_vendors | attr('velocity', 'velocity/velocity.min.js') %}
|
|
||||||
{%- set js_vendors = js_vendors | attr('velocity_ui', 'velocity/velocity.ui.min.js') %}
|
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
{%- if theme.canvas_ribbon.enable %}
|
{%- if theme.canvas_ribbon.enable %}
|
||||||
@ -32,7 +20,7 @@
|
|||||||
<script size="{{ theme.canvas_ribbon.size }}" alpha="{{ theme.canvas_ribbon.alpha }}" zIndex="{{ theme.canvas_ribbon.zIndex }}" src="{{ canvas_ribbon_uri }}"></script>
|
<script size="{{ theme.canvas_ribbon.size }}" alpha="{{ theme.canvas_ribbon.alpha }}" zIndex="{{ theme.canvas_ribbon.zIndex }}" src="{{ canvas_ribbon_uri }}"></script>
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
{%- for name, internal in js_vendors %}
|
{%- for name, internal in js_vendors() %}
|
||||||
{%- set internal_script = next_vendors(internal) %}
|
{%- set internal_script = next_vendors(internal) %}
|
||||||
<script src="{{ theme.vendors[name] or internal_script }}"></script>
|
<script src="{{ theme.vendors[name] or internal_script }}"></script>
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
|
|||||||
31
scripts/helpers/next-vendors.js
Normal file
31
scripts/helpers/next-vendors.js
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/* global hexo */
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
hexo.extend.helper.register('js_vendors', function() {
|
||||||
|
let { theme } = this;
|
||||||
|
let vendors = {
|
||||||
|
anime: 'anime.min.js'
|
||||||
|
};
|
||||||
|
if (theme.pjax) {
|
||||||
|
vendors.pjax = 'pjax/pjax.min.js';
|
||||||
|
}
|
||||||
|
if (theme.fancybox) {
|
||||||
|
vendors.jquery = '//cdn.jsdelivr.net/npm/jquery@3/dist/jquery.min.js';
|
||||||
|
vendors.fancybox = '//cdn.jsdelivr.net/gh/fancyapps/fancybox@3/dist/jquery.fancybox.min.js';
|
||||||
|
}
|
||||||
|
if (theme.mediumzoom) {
|
||||||
|
vendors.mediumzoom = '//cdn.jsdelivr.net/npm/medium-zoom@1/dist/medium-zoom.min.js';
|
||||||
|
}
|
||||||
|
if (theme.lazyload) {
|
||||||
|
vendors.lazyload = '//cdn.jsdelivr.net/npm/lozad@1/dist/lozad.min.js';
|
||||||
|
}
|
||||||
|
if (theme.pangu) {
|
||||||
|
vendors.pangu = '//cdn.jsdelivr.net/npm/pangu@4/dist/browser/pangu.min.js';
|
||||||
|
}
|
||||||
|
if (theme.motion.enable) {
|
||||||
|
vendors.velocity = 'velocity/velocity.min.js';
|
||||||
|
vendors.velocity_ui = 'velocity/velocity.ui.min.js';
|
||||||
|
}
|
||||||
|
return vendors;
|
||||||
|
});
|
||||||
@ -10,10 +10,6 @@ function njkCompile(data) {
|
|||||||
const env = nunjucks.configure(templateDir, {
|
const env = nunjucks.configure(templateDir, {
|
||||||
autoescape: false
|
autoescape: false
|
||||||
});
|
});
|
||||||
env.addFilter('attr', (dictionary, key, value) => {
|
|
||||||
dictionary[key] = value;
|
|
||||||
return dictionary;
|
|
||||||
});
|
|
||||||
env.addFilter('json', dictionary => {
|
env.addFilter('json', dictionary => {
|
||||||
if (typeof dictionary !== 'undefined' && dictionary !== null) {
|
if (typeof dictionary !== 'undefined' && dictionary !== null) {
|
||||||
return JSON.stringify(dictionary);
|
return JSON.stringify(dictionary);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user