Initial Commit

This commit is contained in:
2025-09-06 13:28:05 +10:00
commit 7a9a8a1f15
144 changed files with 3461 additions and 0 deletions

11
public/lib/.editorconfig Normal file
View File

@ -0,0 +1,11 @@
root = true
[*]
charset = utf-8
# 2 space indentation
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
# Unix-style newlines with a newline ending every file
end_of_line = lf
insert_final_newline = true

10
public/lib/.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,10 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
versioning-strategy: increase
groups:
npm:
dependency-type: "production"
schedule:
interval: "weekly"

105
public/lib/.gitignore vendored Normal file
View File

@ -0,0 +1,105 @@
# Dependency directories
node_modules/
# Debug logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul/nyc
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage
.grunt
# Bower dependency directory
bower_components
# Compiled binary addons
build/Release
# Next.js build output
.next/
out/
# Nuxt.js build output
.nuxt/
dist/
# Vuepress build output
.vuepress/dist
# Docusaurus build output
.build/
# Gatsby files
.cache/
public
# Storybook build outputs
.out/
storybook-static/
# Angular build output
angular-out/
# Svelte build output
.svelte-kit/
# Temporary files
*.tmp
*.swp
*.swo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Parcel cache
.cache
.parcel-cache
# TypeScript build outputs
*.tsbuildinfo
*.tscache
tsconfig.tsbuildinfo
# VSCode settings
.vscode/
# JetBrains IDEs
.idea/
# OS-specific files
.DS_Store
Thumbs.db
# dotenv environment files
.env
.env.test
.env.production
.env.local
.env.development.local
.env.test.local

View File

@ -0,0 +1 @@
fonts/*.css

21
public/lib/LICENSE Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2022 Cotes Chung
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

20
public/lib/README.md Normal file
View File

@ -0,0 +1,20 @@
<div align="center">
# Chirpy Hugo Assets
This repository provides the JavaScript, CSS, and font assets needed for the Chirpy theme in Hugo.
It can be used as a Hugo Module for theme development or local site builds.
</div>
---
# Comprofix Website Static Assets
This repository contains my personal assets for the [Comprofix.com](https://comprofix.com) website so it can be used as a Hugo Module. It includes all merges and changes from my development repository.
## Related Repositories
- **Development branch:** [comprofix/chirpy-static-assets](https://github.com/comprofix/chirpy-static-assets)
- **Original fork:** [geekifan/chirpy-static-assets](https://github.com/geekifan/chirpy-static-assets)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_en=n()}(this,(function(){"use strict";return{name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var n=["th","st","nd","rd"],t=e%100;return"["+e+(n[(t-20)%10]||n[t]||n[0])+"]"}}}));

View File

@ -0,0 +1 @@
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_localizedFormat=t()}(this,(function(){"use strict";var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t="YYYY-MM-DDTHH:mm:ssZ");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)}}}));

View File

@ -0,0 +1 @@
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(r="undefined"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){"use strict";return function(r,e,t){r=r||{};var n=e.prototype,o={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],m=h.length,c=0;c<m;c+=1){var y=h[c];y.d&&(f=d?t(e).diff(i,y.d,!0):i.diff(e,y.d,!0));var p=(r.rounding||Math.round)(Math.abs(f));if(s=f>0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(""+p)),a="string"==typeof v?v.replace("%d",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return"function"==typeof M?M(a):M.replace("%s",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));

File diff suppressed because one or more lines are too long

3
public/lib/go.mod Normal file
View File

@ -0,0 +1,3 @@
module git.comprofix.com/mmckinnon/chirpy-static-assets
go 1.24.2

1497
public/lib/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

35
public/lib/package.json Normal file
View File

@ -0,0 +1,35 @@
{
"name": "chirpy-hugo-assets",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/comprofix/chirpy-hugo-assets.git"
},
"keywords": [],
"author": "",
"license": "ISC",
"type": "commonjs",
"bugs": {
"url": "https://github.com/comprofix/chirpy-hugo-assets/issues"
},
"homepage": "https://github.com/comprofix/chirpy-hugo-assets#readme",
"dependencies": {
"@fortawesome/fontawesome-free": "^7.0.0",
"clipboard": "^2.0.11",
"dayjs": "^1.11.18",
"glightbox": "^3.3.1",
"lato-font": "^3.0.0",
"lazysizes": "^5.3.2",
"mermaid": "^11.10.1",
"source-sans-pro": "^3.6.0",
"tocbot": "^4.36.4"
},
"devDependencies": {
"fs-extra": "^11.3.1"
}
}

View File

@ -0,0 +1,72 @@
const fs = require('fs');
const path = require('path');
// Paths
const root = path.resolve(__dirname, '..');
const nodeModules = path.join(root, 'node_modules');
const pkgJsonPath = path.join(root, 'package.json');
const assetsRoot = path.join(root, 'assets/js');
// Load dependencies
const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf-8'));
const dependencies = Object.keys(pkgJson.dependencies || {});
// Helpers
function copyFile(src, dest) {
fs.mkdirSync(path.dirname(dest), { recursive: true });
fs.copyFileSync(src, dest);
console.log(`Copied file: ${src}${dest}`);
}
function copyFolder(src, dest) {
if (!fs.existsSync(src)) return;
fs.mkdirSync(dest, { recursive: true });
fs.readdirSync(src, { withFileTypes: true }).forEach(entry => {
const srcPath = path.join(src, entry.name);
const destPath = path.join(dest, entry.name);
if (entry.isDirectory()) {
copyFolder(srcPath, destPath);
} else {
copyFile(srcPath, destPath);
}
});
}
// Main logic
dependencies.forEach(pkg => {
const pkgPath = path.join(nodeModules, pkg);
const targetFolder = path.join(assetsRoot, pkg.replace('@', '').replace('/', '-'));
if (!fs.existsSync(pkgPath)) {
console.warn(`Package not found: ${pkg}`);
return;
}
// Copy main/module files
const depPkgJsonPath = path.join(pkgPath, 'package.json');
if (fs.existsSync(depPkgJsonPath)) {
const depPkg = JSON.parse(fs.readFileSync(depPkgJsonPath, 'utf-8'));
['main', 'module'].forEach(key => {
if (depPkg[key]) {
const src = path.join(pkgPath, depPkg[key]);
if (fs.existsSync(src)) {
const dest = path.join(targetFolder, path.basename(depPkg[key]));
copyFile(src, dest);
}
}
});
}
// Copy common folders
['dist', 'locale', 'plugin', 'webfonts', 'css'].forEach(folder => {
const srcFolder = path.join(pkgPath, folder);
if (fs.existsSync(srcFolder)) {
const destFolder = path.join(targetFolder, folder);
copyFolder(srcFolder, destFolder);
}
});
console.log(`✅ Finished processing: ${pkg}`);
});
console.log('🎉 All npm assets copied into Hugo-compatible structure.');