Skip to content

Commit 1bfd387

Browse files
Optimize the loading of NexT.utils.getScript to avoid global namespace pollution
1 parent 07b0504 commit 1bfd387

File tree

6 files changed

+35
-36
lines changed

6 files changed

+35
-36
lines changed

layout/_scripts/vendors.swig

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,6 @@
2626
{%- set js_vendors.reading_progress = 'reading_progress/reading_progress.js' %}
2727
{%- endif %}
2828

29-
{%- if theme.valine.enable %}
30-
{%- set js_vendors.valine = '//unpkg.com/valine/dist/Valine.min.js' %}
31-
{%- endif %}
32-
3329
{%- if theme.motion.enable %}
3430
{%- set js_vendors.velocity = 'velocity/velocity.min.js?v=1.2.1' %}
3531
{%- set js_vendors.velocity_ui = 'velocity/velocity.ui.min.js?v=1.2.1' %}

layout/_third-party/comments/disqusjs.swig

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
{%- endif %}
1212

1313
<script>
14-
function initialDsq() {
14+
NexT.utils.getScript('{{ disqusjs_js_url }}', function() {
1515
window.dsqjs = new DisqusJS({
1616
api: '{{ theme.disqusjs.api }}' || 'https://disqus.com/api/',
1717
apikey: '{{ theme.disqusjs.apikey }}',
@@ -20,7 +20,6 @@
2020
identifier: {{ page.path | json }},
2121
title: '{{ page.title | addslashes }}',
2222
});
23-
}
24-
NexT.utils.getScript('{{ disqusjs_js_url }}', initialDsq, window.DisqusJS);
23+
}, window.DisqusJS);
2524
</script>
2625
{%- endif %}

layout/_third-party/comments/gitalk.swig

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
{%- endif %}
1212

1313
<script>
14-
function initGitalk() {
14+
NexT.utils.getScript('{{ gitalk_js_url }}', function() {
1515
var gitalk = new Gitalk({
1616
clientID: '{{ theme.gitalk.client_id }}',
1717
clientSecret: '{{ theme.gitalk.client_secret }}',
@@ -27,7 +27,6 @@
2727
distractionFreeMode: '{{ theme.gitalk.distraction_free_mode }}'
2828
});
2929
gitalk.render('gitalk-container');
30-
}
31-
NexT.utils.getScript('{{ gitalk_js_url }}', initGitalk, window.Gitalk);
30+
}, window.Gitalk);
3231
</script>
3332
{%- endif %}

layout/_third-party/comments/valine.swig

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1+
{%- set valine_uri = '//unpkg.com/valine/dist/Valine.min.js' %}
2+
{%- if theme.vendors.valine %}
3+
{%- set valine_uri = theme.vendors.valine %}
4+
{%- endif %}
5+
16
<script>
7+
NexT.utils.getScript('{{ valine_uri }}', function() {
28
var GUEST = ['nick', 'mail', 'link'];
39
var guest = '{{ theme.valine.guest_info }}';
410
guest = guest.split(',').filter(function(item) {
@@ -18,4 +24,5 @@
1824
lang: '{{ theme.valine.language }}' || 'zh-cn',
1925
path: location.pathname
2026
});
27+
}, window.Valine);
2128
</script>
Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
{%- if theme.mermaid.enable %}
22
<script{{ pjax }}>
3-
function embedMermaid() {
4-
mermaid.initialize({
5-
theme: '{{ theme.mermaid.theme }}',
6-
logLevel: 3,
7-
flowchart: { curve: 'linear' },
8-
gantt: { axisFormat: '%m/%d/%Y' },
9-
sequence: { actorMargin: 50 }
10-
});
11-
}
123
if ($('body').find('pre.mermaid').length) {
13-
NexT.utils.getScript('{{ theme.mermaid.cdn }}', embedMermaid, window.mermaid);
4+
NexT.utils.getScript('{{ theme.mermaid.cdn }}', function() {
5+
mermaid.initialize({
6+
theme: '{{ theme.mermaid.theme }}',
7+
logLevel: 3,
8+
flowchart: { curve: 'linear' },
9+
gantt: { axisFormat: '%m/%d/%Y' },
10+
sequence: { actorMargin: 50 }
11+
});
12+
}, window.mermaid);
1413
}
1514
</script>
1615
{%- endif %}

layout/_third-party/tags/pdf.swig

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
{%- if theme.pdf.enable %}
22
<script{{ pjax }}>
3-
function embedPDF() {
4-
$('body').find('div.pdf').each(function(i, o) {
5-
PDFObject.embed($(o).attr('target'), $(o), {
6-
pdfOpenParams: {
7-
navpanes: 0,
8-
toolbar: 0,
9-
statusbar: 0,
10-
pagemode: 'thumbs',
11-
view: 'FitH'
12-
},
13-
PDFJS_URL: '/lib/pdf/web/viewer.html',
14-
height: $(o).attr('height') || '{{ theme.pdf.height }}'
15-
});
16-
});
17-
}
183
if ($('body').find('div.pdf').length) {
19-
NexT.utils.getScript('{{ theme.pdf.pdfobject.cdn }}', embedPDF, window.PDFObject);
4+
NexT.utils.getScript('{{ theme.pdf.pdfobject.cdn }}', function() {
5+
$('body').find('div.pdf').each(function(i, o) {
6+
PDFObject.embed($(o).attr('target'), $(o), {
7+
pdfOpenParams: {
8+
navpanes: 0,
9+
toolbar: 0,
10+
statusbar: 0,
11+
pagemode: 'thumbs',
12+
view: 'FitH'
13+
},
14+
PDFJS_URL: '/lib/pdf/web/viewer.html',
15+
height: $(o).attr('height') || '{{ theme.pdf.height }}'
16+
});
17+
});
18+
}, window.PDFObject);
2019
}
2120
</script>
2221
{%- endif %}

0 commit comments

Comments
 (0)