~repos /website
git clone https://pyrossh.dev/repos/website.git
木 Personal website of pyrossh. Built with astrojs, shiki, vite.
032ace7e
—
pyrossh 1 year ago
improve sitemap
- package-lock.json +248 -98
- package.json +2 -3
- src/routes/sitemap.xml/+server.js +15 -0
- static/robots.txt +4 -0
- tests/sitemap.test.js +27 -0
- tests/test.js +1 -1
package-lock.json
CHANGED
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
"mdsvex": "^0.11.0",
|
|
29
29
|
"prettier": "^3.1.1",
|
|
30
30
|
"prettier-plugin-svelte": "^3.1.2",
|
|
31
|
+
"super-sitemap": "^0.14.14",
|
|
31
32
|
"svelte": "4.2.11",
|
|
32
33
|
"svelte-check": "^3.6.0",
|
|
33
|
-
"svelte-sitemap": "^2.6.0",
|
|
34
34
|
"typescript": "^5.0.0",
|
|
35
35
|
"unocss": "^0.58.5",
|
|
36
36
|
"vite": "^5.0.3",
|
|
@@ -1381,54 +1381,6 @@
|
|
|
1381
1381
|
"node": ">= 8"
|
|
1382
1382
|
}
|
|
1383
1383
|
},
|
|
1384
|
-
"node_modules/@oozcitak/dom": {
|
|
1385
|
-
"version": "1.15.10",
|
|
1386
|
-
"resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-1.15.10.tgz",
|
|
1387
|
-
"integrity": "sha512-0JT29/LaxVgRcGKvHmSrUTEvZ8BXvZhGl2LASRUgHqDTC1M5g1pLmVv56IYNyt3bG2CUjDkc67wnyZC14pbQrQ==",
|
|
1388
|
-
"dev": true,
|
|
1389
|
-
"dependencies": {
|
|
1390
|
-
"@oozcitak/infra": "1.0.8",
|
|
1391
|
-
"@oozcitak/url": "1.0.4",
|
|
1392
|
-
"@oozcitak/util": "8.3.8"
|
|
1393
|
-
},
|
|
1394
|
-
"engines": {
|
|
1395
|
-
"node": ">=8.0"
|
|
1396
|
-
}
|
|
1397
|
-
},
|
|
1398
|
-
"node_modules/@oozcitak/infra": {
|
|
1399
|
-
"version": "1.0.8",
|
|
1400
|
-
"resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-1.0.8.tgz",
|
|
1401
|
-
"integrity": "sha512-JRAUc9VR6IGHOL7OGF+yrvs0LO8SlqGnPAMqyzOuFZPSZSXI7Xf2O9+awQPSMXgIWGtgUf/dA6Hs6X6ySEaWTg==",
|
|
1402
|
-
"dev": true,
|
|
1403
|
-
"dependencies": {
|
|
1404
|
-
"@oozcitak/util": "8.3.8"
|
|
1405
|
-
},
|
|
1406
|
-
"engines": {
|
|
1407
|
-
"node": ">=6.0"
|
|
1408
|
-
}
|
|
1409
|
-
},
|
|
1410
|
-
"node_modules/@oozcitak/url": {
|
|
1411
|
-
"version": "1.0.4",
|
|
1412
|
-
"resolved": "https://registry.npmjs.org/@oozcitak/url/-/url-1.0.4.tgz",
|
|
1413
|
-
"integrity": "sha512-kDcD8y+y3FCSOvnBI6HJgl00viO/nGbQoCINmQ0h98OhnGITrWR3bOGfwYCthgcrV8AnTJz8MzslTQbC3SOAmw==",
|
|
1414
|
-
"dev": true,
|
|
1415
|
-
"dependencies": {
|
|
1416
|
-
"@oozcitak/infra": "1.0.8",
|
|
1417
|
-
"@oozcitak/util": "8.3.8"
|
|
1418
|
-
},
|
|
1419
|
-
"engines": {
|
|
1420
|
-
"node": ">=8.0"
|
|
1421
|
-
}
|
|
1422
|
-
},
|
|
1423
|
-
"node_modules/@oozcitak/util": {
|
|
1424
|
-
"version": "8.3.8",
|
|
1425
|
-
"resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.3.8.tgz",
|
|
1426
|
-
"integrity": "sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==",
|
|
1427
|
-
"dev": true,
|
|
1428
|
-
"engines": {
|
|
1429
|
-
"node": ">=8.0"
|
|
1430
|
-
}
|
|
1431
|
-
},
|
|
1432
1384
|
"node_modules/@playwright/test": {
|
|
1433
1385
|
"version": "1.41.2",
|
|
1434
1386
|
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.41.2.tgz",
|
|
@@ -2709,6 +2661,15 @@
|
|
|
2709
2661
|
"dequal": "^2.0.3"
|
|
2710
2662
|
}
|
|
2711
2663
|
},
|
|
2664
|
+
"node_modules/array-back": {
|
|
2665
|
+
"version": "3.1.0",
|
|
2666
|
+
"resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
|
|
2667
|
+
"integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
|
|
2668
|
+
"dev": true,
|
|
2669
|
+
"engines": {
|
|
2670
|
+
"node": ">=6"
|
|
2671
|
+
}
|
|
2672
|
+
},
|
|
2712
2673
|
"node_modules/assert": {
|
|
2713
2674
|
"version": "2.1.0",
|
|
2714
2675
|
"resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz",
|
|
@@ -3025,6 +2986,98 @@
|
|
|
3025
2986
|
"integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
|
|
3026
2987
|
"dev": true
|
|
3027
2988
|
},
|
|
2989
|
+
"node_modules/command-line-args": {
|
|
2990
|
+
"version": "5.2.1",
|
|
2991
|
+
"resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz",
|
|
2992
|
+
"integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==",
|
|
2993
|
+
"dev": true,
|
|
2994
|
+
"dependencies": {
|
|
2995
|
+
"array-back": "^3.1.0",
|
|
2996
|
+
"find-replace": "^3.0.0",
|
|
2997
|
+
"lodash.camelcase": "^4.3.0",
|
|
2998
|
+
"typical": "^4.0.0"
|
|
2999
|
+
},
|
|
3000
|
+
"engines": {
|
|
3001
|
+
"node": ">=4.0.0"
|
|
3002
|
+
}
|
|
3003
|
+
},
|
|
3004
|
+
"node_modules/command-line-usage": {
|
|
3005
|
+
"version": "6.1.3",
|
|
3006
|
+
"resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz",
|
|
3007
|
+
"integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==",
|
|
3008
|
+
"dev": true,
|
|
3009
|
+
"dependencies": {
|
|
3010
|
+
"array-back": "^4.0.2",
|
|
3011
|
+
"chalk": "^2.4.2",
|
|
3012
|
+
"table-layout": "^1.0.2",
|
|
3013
|
+
"typical": "^5.2.0"
|
|
3014
|
+
},
|
|
3015
|
+
"engines": {
|
|
3016
|
+
"node": ">=8.0.0"
|
|
3017
|
+
}
|
|
3018
|
+
},
|
|
3019
|
+
"node_modules/command-line-usage/node_modules/array-back": {
|
|
3020
|
+
"version": "4.0.2",
|
|
3021
|
+
"resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz",
|
|
3022
|
+
"integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==",
|
|
3023
|
+
"dev": true,
|
|
3024
|
+
"engines": {
|
|
3025
|
+
"node": ">=8"
|
|
3026
|
+
}
|
|
3027
|
+
},
|
|
3028
|
+
"node_modules/command-line-usage/node_modules/chalk": {
|
|
3029
|
+
"version": "2.4.2",
|
|
3030
|
+
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
|
3031
|
+
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
|
3032
|
+
"dev": true,
|
|
3033
|
+
"dependencies": {
|
|
3034
|
+
"ansi-styles": "^3.2.1",
|
|
3035
|
+
"escape-string-regexp": "^1.0.5",
|
|
3036
|
+
"supports-color": "^5.3.0"
|
|
3037
|
+
},
|
|
3038
|
+
"engines": {
|
|
3039
|
+
"node": ">=4"
|
|
3040
|
+
}
|
|
3041
|
+
},
|
|
3042
|
+
"node_modules/command-line-usage/node_modules/escape-string-regexp": {
|
|
3043
|
+
"version": "1.0.5",
|
|
3044
|
+
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
|
3045
|
+
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
|
|
3046
|
+
"dev": true,
|
|
3047
|
+
"engines": {
|
|
3048
|
+
"node": ">=0.8.0"
|
|
3049
|
+
}
|
|
3050
|
+
},
|
|
3051
|
+
"node_modules/command-line-usage/node_modules/has-flag": {
|
|
3052
|
+
"version": "3.0.0",
|
|
3053
|
+
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
|
3054
|
+
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
|
|
3055
|
+
"dev": true,
|
|
3056
|
+
"engines": {
|
|
3057
|
+
"node": ">=4"
|
|
3058
|
+
}
|
|
3059
|
+
},
|
|
3060
|
+
"node_modules/command-line-usage/node_modules/supports-color": {
|
|
3061
|
+
"version": "5.5.0",
|
|
3062
|
+
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
|
3063
|
+
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
|
3064
|
+
"dev": true,
|
|
3065
|
+
"dependencies": {
|
|
3066
|
+
"has-flag": "^3.0.0"
|
|
3067
|
+
},
|
|
3068
|
+
"engines": {
|
|
3069
|
+
"node": ">=4"
|
|
3070
|
+
}
|
|
3071
|
+
},
|
|
3072
|
+
"node_modules/command-line-usage/node_modules/typical": {
|
|
3073
|
+
"version": "5.2.0",
|
|
3074
|
+
"resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz",
|
|
3075
|
+
"integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==",
|
|
3076
|
+
"dev": true,
|
|
3077
|
+
"engines": {
|
|
3078
|
+
"node": ">=8"
|
|
3079
|
+
}
|
|
3080
|
+
},
|
|
3028
3081
|
"node_modules/concat-map": {
|
|
3029
3082
|
"version": "0.0.1",
|
|
3030
3083
|
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
|
@@ -3119,6 +3172,15 @@
|
|
|
3119
3172
|
"node": ">=6"
|
|
3120
3173
|
}
|
|
3121
3174
|
},
|
|
3175
|
+
"node_modules/deep-extend": {
|
|
3176
|
+
"version": "0.6.0",
|
|
3177
|
+
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
|
|
3178
|
+
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
|
|
3179
|
+
"dev": true,
|
|
3180
|
+
"engines": {
|
|
3181
|
+
"node": ">=4.0.0"
|
|
3182
|
+
}
|
|
3183
|
+
},
|
|
3122
3184
|
"node_modules/deep-is": {
|
|
3123
3185
|
"version": "0.1.4",
|
|
3124
3186
|
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
|
|
@@ -3209,6 +3271,22 @@
|
|
|
3209
3271
|
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
|
|
3210
3272
|
}
|
|
3211
3273
|
},
|
|
3274
|
+
"node_modules/directory-tree": {
|
|
3275
|
+
"version": "3.5.1",
|
|
3276
|
+
"resolved": "https://registry.npmjs.org/directory-tree/-/directory-tree-3.5.1.tgz",
|
|
3277
|
+
"integrity": "sha512-HqjZ49fDzUnKYUhHxVw9eKBqbQ+lL0v4kSBInlDlaktmLtGoV9tC54a6A0ZfYeIrkMHWTE6MwwmUXP477+UEKQ==",
|
|
3278
|
+
"dev": true,
|
|
3279
|
+
"dependencies": {
|
|
3280
|
+
"command-line-args": "^5.2.0",
|
|
3281
|
+
"command-line-usage": "^6.1.1"
|
|
3282
|
+
},
|
|
3283
|
+
"bin": {
|
|
3284
|
+
"directory-tree": "bin/index.js"
|
|
3285
|
+
},
|
|
3286
|
+
"engines": {
|
|
3287
|
+
"node": ">=10.0"
|
|
3288
|
+
}
|
|
3289
|
+
},
|
|
3212
3290
|
"node_modules/doctrine": {
|
|
3213
3291
|
"version": "3.0.0",
|
|
3214
3292
|
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
|
|
@@ -3694,6 +3772,28 @@
|
|
|
3694
3772
|
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
|
|
3695
3773
|
"dev": true
|
|
3696
3774
|
},
|
|
3775
|
+
"node_modules/fast-xml-parser": {
|
|
3776
|
+
"version": "4.3.6",
|
|
3777
|
+
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.6.tgz",
|
|
3778
|
+
"integrity": "sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==",
|
|
3779
|
+
"dev": true,
|
|
3780
|
+
"funding": [
|
|
3781
|
+
{
|
|
3782
|
+
"type": "github",
|
|
3783
|
+
"url": "https://github.com/sponsors/NaturalIntelligence"
|
|
3784
|
+
},
|
|
3785
|
+
{
|
|
3786
|
+
"type": "paypal",
|
|
3787
|
+
"url": "https://paypal.me/naturalintelligence"
|
|
3788
|
+
}
|
|
3789
|
+
],
|
|
3790
|
+
"dependencies": {
|
|
3791
|
+
"strnum": "^1.0.5"
|
|
3792
|
+
},
|
|
3793
|
+
"bin": {
|
|
3794
|
+
"fxparser": "src/cli/cli.js"
|
|
3795
|
+
}
|
|
3796
|
+
},
|
|
3697
3797
|
"node_modules/fastq": {
|
|
3698
3798
|
"version": "1.16.0",
|
|
3699
3799
|
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz",
|
|
@@ -3726,6 +3826,18 @@
|
|
|
3726
3826
|
"node": ">=8"
|
|
3727
3827
|
}
|
|
3728
3828
|
},
|
|
3829
|
+
"node_modules/find-replace": {
|
|
3830
|
+
"version": "3.0.0",
|
|
3831
|
+
"resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz",
|
|
3832
|
+
"integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==",
|
|
3833
|
+
"dev": true,
|
|
3834
|
+
"dependencies": {
|
|
3835
|
+
"array-back": "^3.0.1"
|
|
3836
|
+
},
|
|
3837
|
+
"engines": {
|
|
3838
|
+
"node": ">=4.0.0"
|
|
3839
|
+
}
|
|
3840
|
+
},
|
|
3729
3841
|
"node_modules/find-up": {
|
|
3730
3842
|
"version": "5.0.0",
|
|
3731
3843
|
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
|
|
@@ -4402,6 +4514,12 @@
|
|
|
4402
4514
|
"url": "https://github.com/sponsors/sindresorhus"
|
|
4403
4515
|
}
|
|
4404
4516
|
},
|
|
4517
|
+
"node_modules/lodash.camelcase": {
|
|
4518
|
+
"version": "4.3.0",
|
|
4519
|
+
"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
|
|
4520
|
+
"integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
|
|
4521
|
+
"dev": true
|
|
4522
|
+
},
|
|
4405
4523
|
"node_modules/lodash.merge": {
|
|
4406
4524
|
"version": "4.6.2",
|
|
4407
4525
|
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
|
@@ -5299,6 +5417,15 @@
|
|
|
5299
5417
|
"node": ">= 4"
|
|
5300
5418
|
}
|
|
5301
5419
|
},
|
|
5420
|
+
"node_modules/reduce-flatten": {
|
|
5421
|
+
"version": "2.0.0",
|
|
5422
|
+
"resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz",
|
|
5423
|
+
"integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==",
|
|
5424
|
+
"dev": true,
|
|
5425
|
+
"engines": {
|
|
5426
|
+
"node": ">=6"
|
|
5427
|
+
}
|
|
5428
|
+
},
|
|
5302
5429
|
"node_modules/remark-github": {
|
|
5303
5430
|
"version": "12.0.0",
|
|
5304
5431
|
"resolved": "https://registry.npmjs.org/remark-github/-/remark-github-12.0.0.tgz",
|
|
@@ -5656,12 +5783,6 @@
|
|
|
5656
5783
|
"node": ">=0.10.0"
|
|
5657
5784
|
}
|
|
5658
5785
|
},
|
|
5659
|
-
"node_modules/sprintf-js": {
|
|
5660
|
-
"version": "1.0.3",
|
|
5661
|
-
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
|
|
5662
|
-
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
|
|
5663
|
-
"dev": true
|
|
5664
|
-
},
|
|
5665
5786
|
"node_modules/stackback": {
|
|
5666
5787
|
"version": "0.0.2",
|
|
5667
5788
|
"resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
|
|
@@ -5722,6 +5843,25 @@
|
|
|
5722
5843
|
"url": "https://github.com/sponsors/antfu"
|
|
5723
5844
|
}
|
|
5724
5845
|
},
|
|
5846
|
+
"node_modules/strnum": {
|
|
5847
|
+
"version": "1.0.5",
|
|
5848
|
+
"resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
|
|
5849
|
+
"integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==",
|
|
5850
|
+
"dev": true
|
|
5851
|
+
},
|
|
5852
|
+
"node_modules/super-sitemap": {
|
|
5853
|
+
"version": "0.14.14",
|
|
5854
|
+
"resolved": "https://registry.npmjs.org/super-sitemap/-/super-sitemap-0.14.14.tgz",
|
|
5855
|
+
"integrity": "sha512-ZrxbwYD1+7n+CHZaFwt3XW3a74gpLATLaDpH4yN67a0kHRwY8Tm0eLVeIuG07PXfzxCroWj8o60G1m4kigHEaw==",
|
|
5856
|
+
"dev": true,
|
|
5857
|
+
"dependencies": {
|
|
5858
|
+
"directory-tree": "^3.5.1",
|
|
5859
|
+
"fast-xml-parser": "^4.3.2"
|
|
5860
|
+
},
|
|
5861
|
+
"peerDependencies": {
|
|
5862
|
+
"svelte": "^4.0.0"
|
|
5863
|
+
}
|
|
5864
|
+
},
|
|
5725
5865
|
"node_modules/supports-color": {
|
|
5726
5866
|
"version": "7.2.0",
|
|
5727
5867
|
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
|
@@ -5870,21 +6010,37 @@
|
|
|
5870
6010
|
}
|
|
5871
6011
|
}
|
|
5872
6012
|
},
|
|
5873
|
-
"node_modules/
|
|
6013
|
+
"node_modules/table-layout": {
|
|
5874
|
-
"version": "
|
|
6014
|
+
"version": "1.0.2",
|
|
5875
|
-
"resolved": "https://registry.npmjs.org/
|
|
6015
|
+
"resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz",
|
|
5876
|
-
"integrity": "sha512-
|
|
6016
|
+
"integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==",
|
|
5877
6017
|
"dev": true,
|
|
5878
6018
|
"dependencies": {
|
|
5879
|
-
"
|
|
6019
|
+
"array-back": "^4.0.1",
|
|
6020
|
+
"deep-extend": "~0.6.0",
|
|
5880
|
-
"
|
|
6021
|
+
"typical": "^5.2.0",
|
|
5881
|
-
"
|
|
6022
|
+
"wordwrapjs": "^4.0.0"
|
|
5882
|
-
},
|
|
5883
|
-
"bin": {
|
|
5884
|
-
"svelte-sitemap": "index.js"
|
|
5885
6023
|
},
|
|
5886
6024
|
"engines": {
|
|
5887
|
-
"node": ">=
|
|
6025
|
+
"node": ">=8.0.0"
|
|
6026
|
+
}
|
|
6027
|
+
},
|
|
6028
|
+
"node_modules/table-layout/node_modules/array-back": {
|
|
6029
|
+
"version": "4.0.2",
|
|
6030
|
+
"resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz",
|
|
6031
|
+
"integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==",
|
|
6032
|
+
"dev": true,
|
|
6033
|
+
"engines": {
|
|
6034
|
+
"node": ">=8"
|
|
6035
|
+
}
|
|
6036
|
+
},
|
|
6037
|
+
"node_modules/table-layout/node_modules/typical": {
|
|
6038
|
+
"version": "5.2.0",
|
|
6039
|
+
"resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz",
|
|
6040
|
+
"integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==",
|
|
6041
|
+
"dev": true,
|
|
6042
|
+
"engines": {
|
|
6043
|
+
"node": ">=8"
|
|
5888
6044
|
}
|
|
5889
6045
|
},
|
|
5890
6046
|
"node_modules/text-table": {
|
|
@@ -6021,6 +6177,15 @@
|
|
|
6021
6177
|
"node": ">=14.17"
|
|
6022
6178
|
}
|
|
6023
6179
|
},
|
|
6180
|
+
"node_modules/typical": {
|
|
6181
|
+
"version": "4.0.0",
|
|
6182
|
+
"resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz",
|
|
6183
|
+
"integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==",
|
|
6184
|
+
"dev": true,
|
|
6185
|
+
"engines": {
|
|
6186
|
+
"node": ">=8"
|
|
6187
|
+
}
|
|
6188
|
+
},
|
|
6024
6189
|
"node_modules/ufo": {
|
|
6025
6190
|
"version": "1.4.0",
|
|
6026
6191
|
"resolved": "https://registry.npmjs.org/ufo/-/ufo-1.4.0.tgz",
|
|
@@ -6511,47 +6676,32 @@
|
|
|
6511
6676
|
"node": ">=8"
|
|
6512
6677
|
}
|
|
6513
6678
|
},
|
|
6514
|
-
"node_modules/
|
|
6679
|
+
"node_modules/wordwrapjs": {
|
|
6515
|
-
"version": "
|
|
6680
|
+
"version": "4.0.1",
|
|
6516
|
-
"resolved": "https://registry.npmjs.org/
|
|
6681
|
+
"resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz",
|
|
6517
|
-
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
|
|
6518
|
-
},
|
|
6519
|
-
"node_modules/xmlbuilder2": {
|
|
6520
|
-
"version": "3.1.1",
|
|
6521
|
-
"resolved": "https://registry.npmjs.org/xmlbuilder2/-/xmlbuilder2-3.1.1.tgz",
|
|
6522
|
-
"integrity": "sha512-
|
|
6682
|
+
"integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==",
|
|
6523
6683
|
"dev": true,
|
|
6524
6684
|
"dependencies": {
|
|
6525
|
-
"@oozcitak/dom": "1.15.10",
|
|
6526
|
-
"
|
|
6685
|
+
"reduce-flatten": "^2.0.0",
|
|
6527
|
-
"@oozcitak/util": "8.3.8",
|
|
6528
|
-
"
|
|
6686
|
+
"typical": "^5.2.0"
|
|
6529
6687
|
},
|
|
6530
6688
|
"engines": {
|
|
6531
|
-
"node": ">=
|
|
6689
|
+
"node": ">=8.0.0"
|
|
6532
6690
|
}
|
|
6533
6691
|
},
|
|
6534
|
-
"node_modules/
|
|
6692
|
+
"node_modules/wordwrapjs/node_modules/typical": {
|
|
6535
|
-
"version": "
|
|
6693
|
+
"version": "5.2.0",
|
|
6536
|
-
"resolved": "https://registry.npmjs.org/
|
|
6694
|
+
"resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz",
|
|
6537
|
-
"integrity": "sha512-
|
|
6695
|
+
"integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==",
|
|
6538
6696
|
"dev": true,
|
|
6539
|
-
"
|
|
6697
|
+
"engines": {
|
|
6540
|
-
"
|
|
6698
|
+
"node": ">=8"
|
|
6541
6699
|
}
|
|
6542
6700
|
},
|
|
6543
|
-
"node_modules/
|
|
6701
|
+
"node_modules/wrappy": {
|
|
6544
|
-
"version": "
|
|
6702
|
+
"version": "1.0.2",
|
|
6545
|
-
"resolved": "https://registry.npmjs.org/
|
|
6703
|
+
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
|
6546
|
-
"integrity": "sha512-
|
|
6704
|
+
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
|
|
6547
|
-
"dev": true,
|
|
6548
|
-
"dependencies": {
|
|
6549
|
-
"argparse": "^1.0.7",
|
|
6550
|
-
"esprima": "^4.0.0"
|
|
6551
|
-
},
|
|
6552
|
-
"bin": {
|
|
6553
|
-
"js-yaml": "bin/js-yaml.js"
|
|
6554
|
-
}
|
|
6555
6705
|
},
|
|
6556
6706
|
"node_modules/yallist": {
|
|
6557
6707
|
"version": "4.0.0",
|
package.json
CHANGED
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
"lint": "prettier --check . && eslint .",
|
|
14
14
|
"format": "prettier --write .",
|
|
15
15
|
"test:integration": "playwright test",
|
|
16
|
-
"test:unit": "vitest"
|
|
16
|
+
"test:unit": "vitest"
|
|
17
|
-
"postbuild": "npx svelte-sitemap --domain https://pyrossh.dev --ignore '**404**'"
|
|
18
17
|
},
|
|
19
18
|
"dependencies": {
|
|
20
19
|
"@sentry/sveltekit": "^7.102.0",
|
|
@@ -37,9 +36,9 @@
|
|
|
37
36
|
"mdsvex": "^0.11.0",
|
|
38
37
|
"prettier": "^3.1.1",
|
|
39
38
|
"prettier-plugin-svelte": "^3.1.2",
|
|
39
|
+
"super-sitemap": "^0.14.14",
|
|
40
40
|
"svelte": "4.2.11",
|
|
41
41
|
"svelte-check": "^3.6.0",
|
|
42
|
-
"svelte-sitemap": "^2.6.0",
|
|
43
42
|
"typescript": "^5.0.0",
|
|
44
43
|
"unocss": "^0.58.5",
|
|
45
44
|
"vite": "^5.0.3",
|
src/routes/sitemap.xml/+server.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as sitemap from 'super-sitemap';
|
|
2
|
+
|
|
3
|
+
export const prerender = true;
|
|
4
|
+
|
|
5
|
+
export async function GET() {
|
|
6
|
+
return await sitemap.response({
|
|
7
|
+
origin: 'https://pyrossh.dev',
|
|
8
|
+
paramValues: {
|
|
9
|
+
'/posts/[slug]': [
|
|
10
|
+
'eyecandy-golang-error-reporting',
|
|
11
|
+
'gopibot-to-the-rescue',
|
|
12
|
+
]
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
};
|
static/robots.txt
CHANGED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
User-agent: *
|
|
2
|
+
Allow: /
|
|
3
|
+
|
|
4
|
+
Sitemap: https://pyrossh.dev/sitemap.xml
|
tests/sitemap.test.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { expect, test } from '@playwright/test';
|
|
2
|
+
|
|
3
|
+
test('/sitemap.xml is valid', async ({ page }) => {
|
|
4
|
+
const response = await page.goto('/sitemap.xml');
|
|
5
|
+
expect(response.status()).toBe(200);
|
|
6
|
+
|
|
7
|
+
// Ensure XML is valid. Playwright parses the XML here and will error if it
|
|
8
|
+
// cannot be parsed.
|
|
9
|
+
const urls = await page.$$eval('url', (urls) =>
|
|
10
|
+
urls.map((url) => ({
|
|
11
|
+
loc: url.querySelector('loc').textContent,
|
|
12
|
+
// changefreq: url.querySelector('changefreq').textContent, // if you enabled in your sitemap
|
|
13
|
+
// priority: url.querySelector('priority').textContent,
|
|
14
|
+
}))
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
// Sanity check
|
|
18
|
+
expect(urls.length).toBeGreaterThanOrEqual(5);
|
|
19
|
+
|
|
20
|
+
// Ensure entries are in a valid format.
|
|
21
|
+
for (const url of urls) {
|
|
22
|
+
expect(url.loc).toBeTruthy();
|
|
23
|
+
expect(() => new URL(url.loc)).not.toThrow();
|
|
24
|
+
// expect(url.changefreq).toBe('daily');
|
|
25
|
+
// expect(url.priority).toBe('0.7');
|
|
26
|
+
}
|
|
27
|
+
});
|
tests/test.js
CHANGED
|
@@ -2,5 +2,5 @@ import { expect, test } from '@playwright/test';
|
|
|
2
2
|
|
|
3
3
|
test('index page has expected h1', async ({ page }) => {
|
|
4
4
|
await page.goto('/');
|
|
5
|
-
await expect(page.getByRole('heading', { name: '
|
|
5
|
+
await expect(page.getByRole('heading', { name: 'pyrossh' })).toBeVisible();
|
|
6
6
|
});
|