mirror of
https://github.com/next-theme/hexo-theme-next.git
synced 2026-01-18 18:33:42 +00:00
Refactor js_vendors
This commit is contained in:
parent
ee7d13e307
commit
b02c93dc3a
@ -15,4 +15,3 @@
|
||||
{%- if theme.pjax %}
|
||||
{% include 'pjax.njk' %}
|
||||
{%- 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 = {} %}
|
||||
{%- set js_vendors = js_vendors | attr('anime', 'anime.min.js') %}
|
||||
|
||||
{%- if theme.pjax %}
|
||||
{%- set js_vendors = js_vendors | attr('pjax', 'pjax/pjax.min.js') %}
|
||||
{%- endif %}
|
||||
|
||||
{%- if theme.fancybox %}
|
||||
{%- set js_vendors = js_vendors | attr('jquery', '//cdn.jsdelivr.net/npm/jquery@3/dist/jquery.min.js') %}
|
||||
{%- set js_vendors = js_vendors | attr('fancybox', '//cdn.jsdelivr.net/gh/fancyapps/fancybox@3/dist/jquery.fancybox.min.js') %}
|
||||
{%- endif %}
|
||||
|
||||
{%- if theme.mediumzoom %}
|
||||
{%- set js_vendors = js_vendors | attr('mediumzoom', '//cdn.jsdelivr.net/npm/medium-zoom@1/dist/medium-zoom.min.js') %}
|
||||
{%- 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') %}
|
||||
{%- 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 %}
|
||||
|
||||
{%- 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>
|
||||
{%- endif %}
|
||||
|
||||
{%- for name, internal in js_vendors %}
|
||||
{%- for name, internal in js_vendors() %}
|
||||
{%- set internal_script = next_vendors(internal) %}
|
||||
<script src="{{ theme.vendors[name] or internal_script }}"></script>
|
||||
{%- 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, {
|
||||
autoescape: false
|
||||
});
|
||||
env.addFilter('attr', (dictionary, key, value) => {
|
||||
dictionary[key] = value;
|
||||
return dictionary;
|
||||
});
|
||||
env.addFilter('json', dictionary => {
|
||||
if (typeof dictionary !== 'undefined' && dictionary !== null) {
|
||||
return JSON.stringify(dictionary);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user