Skip to content

Commit 111c735

Browse files
committed
use LibMan to avoid external script loading in frontend (#982)
1 parent 7a9b0d1 commit 111c735

File tree

24 files changed

+144
-28
lines changed

24 files changed

+144
-28
lines changed

docs/release-notes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
* You can now hover and click 'Copy' on the top-right to copy the full code to the clipboard.
99
* Updated to newer syntax highlighting library.
1010
* Fixed some JSON files breaking page layout.
11+
* Third-party libraries are now served from `smapi.io` instead of external CDNs.
1112
* Removed support for very old SMAPI logs.
1213

1314
## 4.2.1

src/SMAPI.Web/Views/Index/Index.cshtml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@
55
ViewData["ViewTitle"] = string.Empty;
66
}
77
@section Head {
8+
<!-- jQuery -->
9+
<script src="@Url.ContentWithCacheBust("~/Content/lib/jquery/dist/jquery.min.js")"></script>
10+
11+
<!-- page CSS/JS -->
812
<link rel="stylesheet" href="@Url.ContentWithCacheBust("~/Content/css/index.css")" />
9-
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1" crossorigin="anonymous"></script>
1013
<script src="@Url.ContentWithCacheBust("~/Content/js/index.js")"></script>
1114
}
1215

src/SMAPI.Web/Views/JsonValidator/Index.cshtml

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -28,38 +28,38 @@
2828
<meta name="robots" content="noindex" />
2929
}
3030

31-
<!-- page CSS/JS -->
32-
<link rel="stylesheet" href="@Url.ContentWithCacheBust("~/Content/css/file-upload.css")" />
33-
<link rel="stylesheet" href="@Url.ContentWithCacheBust("~/Content/css/json-validator.css")" />
34-
<script src="@Url.ContentWithCacheBust("~/Content/js/file-upload.js")"></script>
35-
<script src="@Url.ContentWithCacheBust("~/Content/js/json-validator.js")"></script>
36-
3731
<!-- jQuery -->
38-
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1" crossorigin="anonymous"></script>
32+
<script src="@Url.ContentWithCacheBust("~/Content/lib/jquery/dist/jquery.min.js")"></script>
3933

4034
<!-- Prism -->
41-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prism-themes@1.9.0/themes/prism-vs.min.css" crossorigin="anonymous" />
42-
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.30.0/prism.min.js" crossorigin="anonymous"></script>
43-
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.30.0/components/prism-json.js" crossorigin="anonymous"></script>
35+
<link rel="stylesheet" href="@Url.ContentWithCacheBust("~/Content/lib/prism-themes/themes/prism-vs.min.css")" />
36+
<script src="@Url.ContentWithCacheBust("~/Content/lib/prismjs/prism.min.js")"></script>
37+
<script src="@Url.ContentWithCacheBust("~/Content/lib/prismjs/components/prism-json.min.js")"></script>
4438

4539
<!-- Prism line numbers -->
46-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.30.0/plugins/line-numbers/prism-line-numbers.min.css" crossorigin="anonymous" />
47-
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.30.0/plugins/line-numbers/prism-line-numbers.min.js" crossorigin="anonymous"></script>
40+
<link rel="stylesheet" href="@Url.ContentWithCacheBust("~/Content/lib/prismjs/plugins/line-numbers/prism-line-numbers.min.css")" />
41+
<script src="@Url.ContentWithCacheBust("~/Content/lib/prismjs/plugins/line-numbers/prism-line-numbers.min.js")"></script>
4842

4943
<!-- Prism line highlight -->
50-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.30.0/plugins/line-highlight/prism-line-highlight.min.css" crossorigin="anonymous" />
51-
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.30.0/plugins/line-highlight/prism-line-highlight.min.js" crossorigin="anonymous"></script>
44+
<link rel="stylesheet" href="@Url.ContentWithCacheBust("~/Content/lib/prismjs/plugins/line-highlight/prism-line-highlight.min.css")" />
45+
<script src="@Url.ContentWithCacheBust("~/Content/lib/prismjs/plugins/line-highlight/prism-line-highlight.min.js")"></script>
5246

5347
<!-- Prism toolbar -->
54-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.30.0/plugins/toolbar/prism-toolbar.min.css" crossorigin="anonymous" />
55-
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.30.0/plugins/toolbar/prism-toolbar.min.js" crossorigin="anonymous"></script>
48+
<link rel="stylesheet" href="@Url.ContentWithCacheBust("~/Content/lib/prismjs/plugins/toolbar/prism-toolbar.min.css")" />
49+
<script src="@Url.ContentWithCacheBust("~/Content/lib/prismjs/plugins/toolbar/prism-toolbar.min.js")"></script>
5650

5751
<!-- Prism copy to clipboard -->
58-
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.30.0/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js" crossorigin="anonymous"></script>
52+
<script src="@Url.ContentWithCacheBust("~/Content/lib/prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js")"></script>
5953

6054
<!-- Prism match braces -->
61-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.30.0/plugins/match-braces/prism-match-braces.min.css" crossorigin="anonymous" />
62-
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.30.0/plugins/match-braces/prism-match-braces.min.js" crossorigin="anonymous"></script>
55+
<link rel="stylesheet" href="@Url.ContentWithCacheBust("~/Content/lib/prismjs/plugins/match-braces/prism-match-braces.min.css")" />
56+
<script src="@Url.ContentWithCacheBust("~/Content/lib/prismjs/plugins/match-braces/prism-match-braces.min.js")"></script>
57+
58+
<!-- page CSS/JS -->
59+
<link rel="stylesheet" href="@Url.ContentWithCacheBust("~/Content/css/file-upload.css")" />
60+
<link rel="stylesheet" href="@Url.ContentWithCacheBust("~/Content/css/json-validator.css")" />
61+
<script src="@Url.ContentWithCacheBust("~/Content/js/file-upload.js")"></script>
62+
<script src="@Url.ContentWithCacheBust("~/Content/js/json-validator.js")"></script>
6363

6464
<!-- init -->
6565
<script>

src/SMAPI.Web/Views/LogParser/Index.cshtml

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,24 @@
3636
{
3737
<meta name="robots" content="noindex" />
3838
}
39+
40+
<!-- jQuery -->
41+
<script src="@Url.ContentWithCacheBust("~/Content/lib/jquery/dist/jquery.min.js")"></script>
42+
43+
<!-- Tabby -->
44+
<link rel="stylesheet" href="@Url.ContentWithCacheBust("~/Content/lib/tabbyjs/dist/css/tabby-ui-vertical.min.css")" />
45+
<script src="@Url.ContentWithCacheBust("~/Content/lib/tabbyjs/dist/js/tabby.polyfills.min.js")"></script>
46+
47+
<!-- Vue -->
48+
<script src="@Url.ContentWithCacheBust("~/Content/lib/vue/dist/vue.min.js")"></script>
49+
50+
<!-- page CSS/JS -->
3951
<link rel="stylesheet" href="@Url.ContentWithCacheBust("~/Content/css/file-upload.css")" />
4052
<link rel="stylesheet" href="@Url.ContentWithCacheBust("~/Content/css/log-parser.css")" />
41-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/tabbyjs@12.0.3/dist/css/tabby-ui-vertical.min.css" />
42-
43-
<script src="https://cdn.jsdelivr.net/npm/tabbyjs@12.0.3" crossorigin="anonymous"></script>
44-
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14" crossorigin="anonymous"></script>
45-
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1" crossorigin="anonymous"></script>
4653
<script src="@Url.ContentWithCacheBust("~/Content/js/file-upload.js")"></script>
4754
<script src="@Url.ContentWithCacheBust("~/Content/js/log-parser.js")"></script>
4855

56+
<!-- init -->
4957
<script id="serializedData" type="application/json">
5058
@if (!Model.ShowRaw)
5159
{

src/SMAPI.Web/Views/Mods/Index.cshtml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,19 @@
88
TimeSpan staleAge = DateTimeOffset.UtcNow - Model.LastUpdated;
99
}
1010
@section Head {
11+
<!-- jQuery -->
12+
<script src="@Url.ContentWithCacheBust("~/Content/lib/jquery/dist/jquery.min.js")"></script>
13+
14+
<!-- jQuery tablesorter -->
15+
<script src="@Url.ContentWithCacheBust("~/Content/lib/tablesorter/dist/js/jquery.tablesorter.min.js")"></script>
16+
17+
<!-- Vue -->
18+
<script src="@Url.ContentWithCacheBust("~/Content/lib/vue/dist/vue.min.js")"></script>
19+
20+
<!-- page CSS/JS -->
1121
<link rel="stylesheet" href="@Url.ContentWithCacheBust("~/Content/css/mods.css")" />
12-
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.11" crossorigin="anonymous"></script>
13-
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1" crossorigin="anonymous"></script>
14-
<script src="https://cdn.jsdelivr.net/npm/tablesorter@2.31.3" crossorigin="anonymous"></script>
1522
<script src="@Url.ContentWithCacheBust("~/Content/js/mods.js")"></script>
23+
1624
<script>
1725
$(function() {
1826
var data = @(this.ForJson(Model.Mods));

src/SMAPI.Web/libman.json

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
{
2+
"version": "3.0",
3+
"defaultProvider": "jsdelivr",
4+
"defaultDestination": "wwwroot/Content/lib/[Name]",
5+
"libraries": [
6+
{
7+
"library": "jquery@3.5.1",
8+
"files": [
9+
"dist/jquery.min.js",
10+
"dist/jquery.min.map"
11+
]
12+
},
13+
{
14+
"library": "prismjs@1.30.0",
15+
"files": [
16+
"prism.min.js",
17+
"components/prism-json.min.js",
18+
"plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js",
19+
"plugins/line-highlight/prism-line-highlight.min.css",
20+
"plugins/line-highlight/prism-line-highlight.min.js",
21+
"plugins/line-numbers/prism-line-numbers.min.css",
22+
"plugins/line-numbers/prism-line-numbers.min.js",
23+
"plugins/match-braces/prism-match-braces.min.css",
24+
"plugins/match-braces/prism-match-braces.min.js",
25+
"plugins/toolbar/prism-toolbar.min.css",
26+
"plugins/toolbar/prism-toolbar.min.js"
27+
]
28+
},
29+
{
30+
"library": "prism-themes@1.9.0",
31+
"files": [
32+
"themes/prism-vs.min.css"
33+
]
34+
},
35+
{
36+
"library": "tabbyjs@12.0.3",
37+
"files": [
38+
"dist/css/tabby-ui-vertical.min.css",
39+
"dist/js/tabby.polyfills.min.js"
40+
]
41+
},
42+
{
43+
"library": "tablesorter@2.31.3",
44+
"files": [
45+
"dist/js/jquery.tablesorter.min.js"
46+
]
47+
},
48+
{
49+
"library": "vue@2.6.14",
50+
"files": [
51+
"dist/vue.min.js"
52+
]
53+
}
54+
]
55+
}

src/SMAPI.Web/wwwroot/Content/lib/jquery/dist/jquery.min.js

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/SMAPI.Web/wwwroot/Content/lib/jquery/dist/jquery.min.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/SMAPI.Web/wwwroot/Content/lib/prism-themes/themes/prism-vs.min.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/SMAPI.Web/wwwroot/Content/lib/prismjs/components/prism-json.min.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)