Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor vendors #72

Merged
merged 6 commits into from
Aug 2, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
source/lib/* linguist-vendored
test/* linguist-vendored
5 changes: 0 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,3 @@ node_modules/

# Ignore optional external libraries
source/lib/*

# Track internal libraries & Ignore unused verdors files
!source/lib/font-awesome/
!source/lib/anime.min.js
!source/lib/animate-css/
70 changes: 15 additions & 55 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -853,126 +853,86 @@ canvas_ribbon:
#! See: https://theme-next.js.org/docs/advanced-settings
#! ==============================================================

# Script Vendors. Set a CDN address for the vendor you want to customize.
# CDN URLs from UNPKG and CDNJS are provided in the comments for selection.
# If left blank, jsDelivr will be used as the default CDN provider.
# It's recommended to use the same version as internal ones to avoid potential problems.
# Remember to use the https protocol of CDN files when you enable https on your site.
# It's recommended to use the same version as in `_vendors.yml` to avoid potential problems.
# Remember to use the https protocol of CDN links when you enable https on your site.
vendors:
# The CDN provider of NexT internal scripts.
# Available values: local, jsdelivr, unpkg
internal: local
# The default CDN provider of third-party plugins.
# Available values: local, jsdelivr, unpkg, cdnjs
# Dependencies for `plugins: local`: https://github.com/next-theme/plugins
plugins: jsdelivr

# Internal version: 3.1.0
# anime: //cdn.jsdelivr.net/npm/animejs@3.2.0/lib/anime.min.js
# anime: //unpkg.com/animejs@3.2.0/lib/anime.min.js
# anime: //cdnjs.cloudflare.com/ajax/libs/animejs/3.2.0/anime.min.js
# In the following settings, you can specify the CDN link for each plugin.
# If left blank, the default CDN provider set by `plugins` option will be used.

# Anime.js
anime:

# Internal version: 5.13.0
# fontawesome: //cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5/css/all.min.css
# fontawesome: //unpkg.com/@fortawesome/fontawesome-free@5/css/all.min.css
# fontawesome: //cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css
# Font Awesome
fontawesome:

# Prism
# prism: //unpkg.com/prismjs@1/components/prism-core.min.js
# prism_autoloader: //unpkg.com/prismjs@1/plugins/autoloader/prism-autoloader.min.js
# prism_line_numbers: //unpkg.com/prismjs@1/plugins/line-numbers/prism-line-numbers.min.js
prism:
prism_autoloader:
prism_line_numbers:

# MathJax
# mathjax: //unpkg.com/mathjax@3/es5/tex-mml-chtml.js
# mathjax: //cdnjs.cloudflare.com/ajax/libs/mathjax/3.0.5/es5/tex-mml-chtml.js
mathjax:

# KaTeX
# katex: //unpkg.com/katex@0/dist/katex.min.css
# katex: //cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css
# copy_tex_js: //unpkg.com/katex@0/dist/contrib/copy-tex.min.js
# copy_tex_css: //unpkg.com/katex@0/dist/contrib/copy-tex.min.css
katex:
copy_tex_js:
copy_tex_css:

# Recommended version: 0.4.0
# pjax: //cdn.jsdelivr.net/gh/next-theme/pjax@0/pjax.min.js
# Pjax
pjax:

# FancyBox
# jquery: //unpkg.com/jquery@3/dist/jquery.min.js
# fancybox: //unpkg.com/@fancyapps/fancybox@3/dist/jquery.fancybox.min.js
# fancybox_css: //unpkg.com/@fancyapps/fancybox@3/dist/jquery.fancybox.min.css
jquery:
fancybox:
fancybox_css:

# Medium-zoom
# mediumzoom: //unpkg.com/medium-zoom@1/dist/medium-zoom.min.js
# mediumzoom: //cdnjs.cloudflare.com/ajax/libs/medium-zoom/1.0.5/medium-zoom.min.js
mediumzoom:

# Lazyload
# lazyload: //unpkg.com/lozad@1/dist/lozad.min.js
# lazyload: //cdnjs.cloudflare.com/ajax/libs/lozad.js/1.15.0/lozad.min.js
lazyload:

# Pangu
# pangu: //unpkg.com/pangu@4/dist/browser/pangu.min.js
# pangu: //cdnjs.cloudflare.com/ajax/libs/pangu/4.0.7/pangu.min.js
pangu:

# Quicklink
# quicklink: //unpkg.com/quicklink@2/dist/quicklink.umd.js
# quicklink: //cdnjs.cloudflare.com/ajax/libs/quicklink/2.0.0/quicklink.umd.js
quicklink:

# DisqusJS
# disqusjs_js: //unpkg.com/disqusjs@1/dist/disqus.js
# disqusjs_css: //unpkg.com/disqusjs@1/dist/disqusjs.css
disqusjs_js:
disqusjs_css:

# Valine
# valine: //unpkg.com/valine@1/dist/Valine.min.js
# valine: //cdnjs.cloudflare.com/ajax/libs/valine/1.4.14/Valine.min.js
valine:

# Gitalk
# gitalk_js: //unpkg.com/gitalk@1/dist/gitalk.min.js
# gitalk_css: //unpkg.com/gitalk@1/dist/gitalk.min.css
gitalk_js:
gitalk_css:

# Algolia Search
# algolia_search: //unpkg.com/algoliasearch@4/dist/algoliasearch-lite.umd.js
# instant_search: //unpkg.com/instantsearch.js@4/dist/instantsearch.production.min.js
algolia_search:
instant_search:

# Mermaid
# mermaid: //unpkg.com/mermaid@8/dist/mermaid.min.js
# mermaid: //cdnjs.cloudflare.com/ajax/libs/mermaid/8.6.3/mermaid.min.js
mermaid:

# Internal version: 3.1.1
# Animate.css
# Warning: motion won't work with animate.css version 3.2.0 or later
# animate_css: //cdn.jsdelivr.net/npm/animate.css@3.1.1/animate.min.css
# animate_css: //unpkg.com/animate.css@3.1.1/animate.min.css
# animate_css: //cdnjs.cloudflare.com/ajax/libs/animate.css/3.1.1/animate.min.css
animate_css:

# Internal version: 1.0.2
# pace: //unpkg.com/pace-js@1/pace.min.js
# pace: //cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/pace.min.js
# pace_css: //unpkg.com/pace-js@1/themes/blue/pace-theme-minimal.css
# pace_css: //cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/themes/blue/pace-theme-minimal.min.css
# Pace.js
pace:
pace_css:

# Canvas ribbon
# canvas_ribbon: //unpkg.com/ribbon.js@1/dist/ribbon.min.js
canvas_ribbon:

# Assets
Expand Down
132 changes: 132 additions & 0 deletions _vendors.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
anime:
name: animejs
version: 3.2.0
file: lib/anime.min.js
fontawesome:
name: '@fortawesome/fontawesome-free'
version: 5.14.0
file: css/all.min.css
alias: font-awesome
prism:
name: prismjs
version: 1.20.0
file: components/prism-core.min.js
alias: prism
prism_autoloader:
name: prismjs
version: 1.20.0
file: plugins/autoloader/prism-autoloader.min.js
alias: prism
prism_line_numbers:
name: prismjs
version: 1.20.0
file: plugins/line-numbers/prism-line-numbers.min.js
alias: prism
mathjax:
name: mathjax
version: 3.0.5
file: es5/tex-mml-chtml.js
katex:
name: katex
version: 0.11.1
file: dist/katex.min.css
alias: KaTeX
copy_tex_js:
name: katex
version: 0.11.1
file: dist/contrib/copy-tex.min.js
alias: KaTeX
copy_tex_css:
name: katex
version: 0.11.1
file: dist/contrib/copy-tex.min.css
alias: KaTeX
pjax:
name: '@next-theme/pjax'
version: 0.4.0
file: pjax.min.js
unavailable: [cdnjs]
jquery:
name: jquery
version: 3.5.1
file: dist/jquery.min.js
fancybox:
name: '@fancyapps/fancybox'
version: 3.5.7
file: dist/jquery.fancybox.min.js
alias: fancybox
fancybox_css:
name: '@fancyapps/fancybox'
version: 3.5.7
file: dist/jquery.fancybox.min.css
alias: fancybox
mediumzoom:
name: medium-zoom
version: 1.0.6
file: dist/medium-zoom.min.js
lazyload:
name: lozad
version: 1.15.0
file: dist/lozad.min.js
alias: lozad.js
pangu:
name: pangu
version: 4.0.7
file: dist/browser/pangu.min.js
quicklink:
name: quicklink
version: 2.0.0
file: dist/quicklink.umd.js
disqusjs_js:
name: disqusjs
version: 1.3.0
file: dist/disqus.js
unavailable: [cdnjs]
disqusjs_css:
name: disqusjs
version: 1.3.0
file: dist/disqusjs.css
unavailable: [cdnjs]
valine:
name: valine
version: 1.4.14
file: dist/Valine.min.js
gitalk_js:
name: gitalk
version: 1.6.2
file: dist/gitalk.min.js
gitalk_css:
name: gitalk
version: 1.6.2
file: dist/gitalk.css
algolia_search:
name: algoliasearch
version: 4.3.1
file: dist/algoliasearch-lite.umd.js
instant_search:
name: instantsearch.js
version: 4.7.0
file: dist/instantsearch.production.min.js
mermaid:
name: mermaid
version: 8.6.4
file: dist/mermaid.min.js
animate_css:
name: animate.css
version: 3.1.1
file: animate.min.css
pace:
name: pace-js
version: 1.0.2
file: pace.min.js
alias: pace
pace_css:
name: pace-js
version: 1.0.2
file: themes/blue/pace-theme-minimal.css
alias: pace
canvas_ribbon:
name: ribbon.js
version: 1.0.2
file: dist/ribbon.min.js
unavailable: [cdnjs]
15 changes: 5 additions & 10 deletions layout/_partials/head/head.njk
Original file line number Diff line number Diff line change
Expand Up @@ -43,24 +43,19 @@

{{ next_font() }}

{%- set font_awesome_uri = theme.vendors.fontawesome or 'lib/font-awesome/css/all.min.css' %}
<link rel="stylesheet" href="{{ url_for(font_awesome_uri) }}">
<link rel="stylesheet" href="{{ theme.vendors.fontawesome }}">

{%-if theme.motion.enable %}
{% set animate_css_uri = theme.vendors.animate_css or 'lib/animate-css/animate.min.css' %}
<link rel="stylesheet" href="{{ url_for(animate_css_uri) }}">
<link rel="stylesheet" href="{{ theme.vendors.animate_css }}">
{%- endif %}

{%- if theme.fancybox %}
{%- set fancybox_css_uri = theme.vendors.fancybox_css or '//cdn.jsdelivr.net/npm/@fancyapps/fancybox@3/dist/jquery.fancybox.min.css' %}
<link rel="stylesheet" href="{{ url_for(fancybox_css_uri) }}">
<link rel="stylesheet" href="{{ theme.vendors.fancybox_css }}">
{%- endif %}

{%- if theme.pace.enable %}
{%- set pace_css_uri = theme.vendors.pace_css or '//cdn.jsdelivr.net/npm/pace-js@1/themes/blue/pace-theme-' + theme.pace.theme + '.min.css' %}
{%- set pace_js_uri = theme.vendors.pace or '//cdn.jsdelivr.net/npm/pace-js@1/pace.min.js' %}
<link rel="stylesheet" href="{{ url_for(pace_css_uri) }}">
<script src="{{ url_for(pace_js_uri) }}"></script>
<link rel="stylesheet" href="{{ theme.vendors.pace_css }}">
<script src="{{ theme.vendors.pace }}"></script>
{%- endif %}

{{ next_config() }}
7 changes: 3 additions & 4 deletions layout/_scripts/vendors.njk
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
{%- if theme.canvas_ribbon.enable %}
{%- set canvas_ribbon_uri = theme.vendors.canvas_ribbon or '//cdn.jsdelivr.net/npm/ribbon.js@1/dist/ribbon.min.js' %}
<script size="{{ theme.canvas_ribbon.size }}" alpha="{{ theme.canvas_ribbon.alpha }}" zIndex="{{ theme.canvas_ribbon.zIndex }}" src="{{ url_for(canvas_ribbon_uri) }}"></script>
<script size="{{ theme.canvas_ribbon.size }}" alpha="{{ theme.canvas_ribbon.alpha }}" zIndex="{{ theme.canvas_ribbon.zIndex }}" src="{{ theme.vendors.canvas_ribbon }}"></script>
{%- endif %}

{%- for name, internal in js_vendors() %}
<script src="{{ url_for(theme.vendors[name] or internal) }}"></script>
{%- for name in js_vendors() %}
<script src="{{ url_for(theme.vendors[name]) }}"></script>
{%- endfor %}
7 changes: 2 additions & 5 deletions layout/_third-party/comments/disqusjs.njk
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
{%- if page.comments %}
{%- set disqusjs_css_uri = theme.vendors.disqusjs_css or '//cdn.jsdelivr.net/npm/disqusjs@1/dist/disqusjs.css' %}
<link rel="stylesheet" href="{{ url_for(disqusjs_css_uri) }}">

{%- set disqusjs_js_uri = theme.vendors.disqusjs_js or '//cdn.jsdelivr.net/npm/disqusjs@1/dist/disqus.js' %}
<link rel="stylesheet" href="{{ theme.vendors.disqusjs_css }}">

<script>
NexT.utils.loadComments('#disqus_thread', () => {
NexT.utils.getScript('{{ url_for(disqusjs_js_uri) }}', () => {
NexT.utils.getScript('{{ theme.vendors.disqusjs_js }}', () => {
window.dsqjs = new DisqusJS({
api : '{{ theme.disqusjs.api }}' || 'https://disqus.com/api/',
apikey : '{{ theme.disqusjs.apikey }}',
Expand Down
7 changes: 2 additions & 5 deletions layout/_third-party/comments/gitalk.njk
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
{%- if page.comments %}
{%- set gitalk_css_uri = theme.vendors.gitalk_css or '//cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.css' %}
<link rel="stylesheet" href="{{ url_for(gitalk_css_uri) }}">

{%- set gitalk_js_uri = theme.vendors.gitalk_js or '//cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js' %}
<link rel="stylesheet" href="{{ theme.vendors.gitalk_css }}">

<script>
NexT.utils.loadComments('#gitalk-container', () => {
NexT.utils.getScript('{{ url_for(gitalk_js_uri) }}', () => {
NexT.utils.getScript('{{ theme.vendors.gitalk_js }}', () => {
var gitalk = new Gitalk({
clientID : '{{ theme.gitalk.client_id }}',
clientSecret: '{{ theme.gitalk.client_secret }}',
Expand Down
4 changes: 1 addition & 3 deletions layout/_third-party/comments/valine.njk
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
{%- set valine_uri = theme.vendors.valine or '//cdn.jsdelivr.net/npm/valine@1/dist/Valine.min.js' %}

<script>
NexT.utils.loadComments('#valine-comments', () => {
NexT.utils.getScript('{{ url_for(valine_uri) }}', () => {
NexT.utils.getScript('{{ theme.vendors.valine }}', () => {
new Valine(Object.assign({
el : '#valine-comments',
path: location.pathname,
Expand Down
9 changes: 3 additions & 6 deletions layout/_third-party/math/katex.njk
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
{%- set katex_uri = theme.vendors.katex or '//cdn.jsdelivr.net/npm/katex@0/dist/katex.min.css' %}
<link rel="stylesheet" href="{{ url_for(katex_uri) }}">
<link rel="stylesheet" href="{{ theme.vendors.katex }}">
{%- if theme.math.katex.copy_tex %}
{%- set copy_tex_js_uri = theme.vendors.copy_tex_js or '//cdn.jsdelivr.net/npm/katex@0/dist/contrib/copy-tex.min.js' %}
{%- set copy_tex_css_uri = theme.vendors.copy_tex_css or '//cdn.jsdelivr.net/npm/katex@0/dist/contrib/copy-tex.min.css' %}
<script src="{{ url_for(copy_tex_js_uri) }}"></script>
<link rel="stylesheet" href="{{ url_for(copy_tex_css_uri) }}">
<script src="{{ theme.vendors.copy_tex_js }}"></script>
<link rel="stylesheet" href="{{ theme.vendors.copy_tex_css }}">
{%- endif %}
4 changes: 1 addition & 3 deletions layout/_third-party/math/mathjax.njk
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
{%- set mathjax_uri = theme.vendors.mathjax or '//cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js' %}

<script>
if (typeof MathJax === 'undefined') {
window.MathJax = {
Expand Down Expand Up @@ -39,7 +37,7 @@
};
(function () {
const script = document.createElement('script');
script.src = '{{ url_for(mathjax_uri) }}';
script.src = '{{ theme.vendors.mathjax }}';
script.defer = true;
document.head.appendChild(script);
})();
Expand Down
Loading