mirror of
https://github.com/by-jp/www.byjp.me.git
synced 2025-08-09 01:35:56 +01:00
Fix photo uploads
Uses image resizing, and sets the media URLs appropriately.
This commit is contained in:
parent
99e5be2587
commit
7e7eddcf47
5 changed files with 80 additions and 28 deletions
12
Taskfile.yml
12
Taskfile.yml
|
@ -8,7 +8,7 @@ vars:
|
||||||
puma_dev_tld: .test
|
puma_dev_tld: .test
|
||||||
|
|
||||||
env:
|
env:
|
||||||
HUGO_INDIEKIT_URL: https://indiekit.last.pub{{.DOMAIN_SUFFIX}}
|
HUGO_INDIEKIT_URL: https://indiekit.last.pub
|
||||||
HUGO_LAST_UPDATE_TIME:
|
HUGO_LAST_UPDATE_TIME:
|
||||||
sh: git log -1 --format=%cI
|
sh: git log -1 --format=%cI
|
||||||
HUGO_LAST_UPDATE_HASH:
|
HUGO_LAST_UPDATE_HASH:
|
||||||
|
@ -25,11 +25,21 @@ tasks:
|
||||||
silent: true
|
silent: true
|
||||||
vars:
|
vars:
|
||||||
port: 1313
|
port: 1313
|
||||||
|
env:
|
||||||
|
HUGO_INDIEKIT_URL: https://indiekit.last.pub.test
|
||||||
cmds:
|
cmds:
|
||||||
- |
|
- |
|
||||||
[ -d "$HOME/.puma-dev/" ] && (echo {{ .port }} > $HOME/.puma-dev/{{ .domain }}) || echo "Puma dev not installed, https://{{ .domain }}{{ .puma_dev_tld }} will not work"
|
[ -d "$HOME/.puma-dev/" ] && (echo {{ .port }} > $HOME/.puma-dev/{{ .domain }}) || echo "Puma dev not installed, https://{{ .domain }}{{ .puma_dev_tld }} will not work"
|
||||||
- hugo server --bind "0.0.0.0" --port {{ .port }} --minify --printUnusedTemplates --buildDrafts --baseURL "https://{{ .domain }}{{ .puma_dev_tld }}" --appendPort=false
|
- hugo server --bind "0.0.0.0" --port {{ .port }} --minify --printUnusedTemplates --buildDrafts --baseURL "https://{{ .domain }}{{ .puma_dev_tld }}" --appendPort=false
|
||||||
|
|
||||||
|
dev-indiekit:
|
||||||
|
desc: Run a local Indiekit server for testing local packages
|
||||||
|
silent: true
|
||||||
|
dir: indiekit
|
||||||
|
dotenv: ['.env']
|
||||||
|
cmds:
|
||||||
|
- npm run start
|
||||||
|
|
||||||
build:
|
build:
|
||||||
desc: Builds the production-ready site in ./public/
|
desc: Builds the production-ready site in ./public/
|
||||||
vars:
|
vars:
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
const store = process.env.GITHUB_TOKEN ? "@indiekit/store-github" : "@indiekit/store-file-system"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
application: {
|
application: {
|
||||||
name: "IndieKit byJP",
|
name: "IndieKit byJP",
|
||||||
|
@ -6,8 +8,8 @@ export default {
|
||||||
timeZone: 'Europe/London',
|
timeZone: 'Europe/London',
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
|
store,
|
||||||
"indiekit-preset-byjp",
|
"indiekit-preset-byjp",
|
||||||
"@indiekit/store-github",
|
|
||||||
"@indiekit/syndicator-mastodon",
|
"@indiekit/syndicator-mastodon",
|
||||||
"@indiekit/endpoint-files",
|
"@indiekit/endpoint-files",
|
||||||
"@indiekit/endpoint-image",
|
"@indiekit/endpoint-image",
|
||||||
|
@ -61,7 +63,8 @@ export default {
|
||||||
url: "photos/{yyyy}-{MM}-{dd}/{slug}/"
|
url: "photos/{yyyy}-{MM}-{dd}/{slug}/"
|
||||||
},
|
},
|
||||||
media: {
|
media: {
|
||||||
path: "content/photos/{yyyy}-{MM}-{dd}/{slug}/{filename}"
|
path: "content/photos/{yyyy}-{MM}-{dd}/{filename}",
|
||||||
|
url: "photos/{yyyy}-{MM}-{dd}/{filename}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -93,5 +96,19 @@ export default {
|
||||||
"@indiekit/endpoint-micropub": {},
|
"@indiekit/endpoint-micropub": {},
|
||||||
"@indiekit/endpoint-share": {},
|
"@indiekit/endpoint-share": {},
|
||||||
"@indiekit/endpoint-files": {},
|
"@indiekit/endpoint-files": {},
|
||||||
"@indiekit/endpoint-posts": {}
|
"@indiekit/endpoint-media": {
|
||||||
|
"imageProcessing": {
|
||||||
|
"resize": {
|
||||||
|
"width": 1280,
|
||||||
|
"height": 1280,
|
||||||
|
"options": {
|
||||||
|
"fit": "contain",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@indiekit/endpoint-posts": {},
|
||||||
|
"@indiekit/store-file-system": {
|
||||||
|
"directory": ".."
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
62
indiekit/package-lock.json
generated
62
indiekit/package-lock.json
generated
|
@ -11,6 +11,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@indiekit/endpoint-files": "^1.0.0-beta.15",
|
"@indiekit/endpoint-files": "^1.0.0-beta.15",
|
||||||
"@indiekit/endpoint-image": "^1.0.0-beta.10",
|
"@indiekit/endpoint-image": "^1.0.0-beta.10",
|
||||||
|
"@indiekit/endpoint-media": "^1.0.0-beta.19",
|
||||||
"@indiekit/endpoint-micropub": "^1.0.0-beta.18",
|
"@indiekit/endpoint-micropub": "^1.0.0-beta.18",
|
||||||
"@indiekit/endpoint-posts": "^1.0.0-beta.18",
|
"@indiekit/endpoint-posts": "^1.0.0-beta.18",
|
||||||
"@indiekit/endpoint-share": "^1.0.0-beta.15",
|
"@indiekit/endpoint-share": "^1.0.0-beta.15",
|
||||||
|
@ -22,6 +23,7 @@
|
||||||
"@indiekit/post-type-note": "^1.0.0-beta.8",
|
"@indiekit/post-type-note": "^1.0.0-beta.8",
|
||||||
"@indiekit/post-type-photo": "^1.0.0-beta.15",
|
"@indiekit/post-type-photo": "^1.0.0-beta.15",
|
||||||
"@indiekit/post-type-reply": "^1.0.0-beta.18",
|
"@indiekit/post-type-reply": "^1.0.0-beta.18",
|
||||||
|
"@indiekit/store-file-system": "^1.0.0-beta.19",
|
||||||
"@indiekit/store-github": "^1.0.0-beta.18",
|
"@indiekit/store-github": "^1.0.0-beta.18",
|
||||||
"@indiekit/syndicator-mastodon": "^1.0.0-beta.18",
|
"@indiekit/syndicator-mastodon": "^1.0.0-beta.18",
|
||||||
"indiekit-preset-byjp": "file:./packages/indiekit-preset-byjp"
|
"indiekit-preset-byjp": "file:./packages/indiekit-preset-byjp"
|
||||||
|
@ -33,6 +35,10 @@
|
||||||
"node": ">=20.6"
|
"node": ">=20.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"helpers/fixtures": {
|
||||||
|
"name": "@indiekit-test/fixtures",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/@accessible-components/tag-input": {
|
"node_modules/@accessible-components/tag-input": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/@accessible-components/tag-input/-/tag-input-0.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/@accessible-components/tag-input/-/tag-input-0.2.0.tgz",
|
||||||
|
@ -72,6 +78,11 @@
|
||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@date-fns/tz": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-LBrd7MiJZ9McsOgxqWX7AaxrDjcFVjWH/tIKJd7pnR7McaslGYOP1QmmiBXdJH/H/yLCT+rcQ7FaPBUxRGUtrg=="
|
||||||
|
},
|
||||||
"node_modules/@emnapi/runtime": {
|
"node_modules/@emnapi/runtime": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.1.1.tgz",
|
||||||
|
@ -909,6 +920,10 @@
|
||||||
"url": "https://opencollective.com/libvips"
|
"url": "https://opencollective.com/libvips"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@indiekit-test/fixtures": {
|
||||||
|
"resolved": "helpers/fixtures",
|
||||||
|
"link": true
|
||||||
|
},
|
||||||
"node_modules/@indiekit/endpoint-auth": {
|
"node_modules/@indiekit/endpoint-auth": {
|
||||||
"version": "1.0.0-beta.18",
|
"version": "1.0.0-beta.18",
|
||||||
"resolved": "https://registry.npmjs.org/@indiekit/endpoint-auth/-/endpoint-auth-1.0.0-beta.18.tgz",
|
"resolved": "https://registry.npmjs.org/@indiekit/endpoint-auth/-/endpoint-auth-1.0.0-beta.18.tgz",
|
||||||
|
@ -952,12 +967,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@indiekit/endpoint-media": {
|
"node_modules/@indiekit/endpoint-media": {
|
||||||
"version": "1.0.0-beta.18",
|
"version": "1.0.0-beta.19",
|
||||||
"resolved": "https://registry.npmjs.org/@indiekit/endpoint-media/-/endpoint-media-1.0.0-beta.18.tgz",
|
"resolved": "https://registry.npmjs.org/@indiekit/endpoint-media/-/endpoint-media-1.0.0-beta.19.tgz",
|
||||||
"integrity": "sha512-n6vvmF9f5pgEezp8MVH0nhtP0noGvmGg7zm06eeTcPvi+il5mOqKLYbjNCfCEyh86xCyKMKa+cDRQ9dUkiY3KA==",
|
"integrity": "sha512-Jfe1DvjsA+N+zMUVDP0HOlzY6GcdJR2jwqkOPlDreDb1eEelrRo426GV5t+shZp84IZH/p5lepOPdzZpBnyDyQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@indiekit/error": "^1.0.0-beta.15",
|
"@indiekit/error": "^1.0.0-beta.15",
|
||||||
"@indiekit/util": "^1.0.0-beta.18",
|
"@indiekit/util": "^1.0.0-beta.19",
|
||||||
|
"debug": "^4.3.2",
|
||||||
"deepmerge": "^4.3.1",
|
"deepmerge": "^4.3.1",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"file-type": "^19.0.0",
|
"file-type": "^19.0.0",
|
||||||
|
@ -1206,6 +1222,17 @@
|
||||||
"node": ">=20"
|
"node": ">=20"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@indiekit/store-file-system": {
|
||||||
|
"version": "1.0.0-beta.19",
|
||||||
|
"resolved": "https://registry.npmjs.org/@indiekit/store-file-system/-/store-file-system-1.0.0-beta.19.tgz",
|
||||||
|
"integrity": "sha512-usW+z2FXoIDzg+RogdeFi1NW5WSaLXA/5mAcvZq3K+mwwPUaIceaTZlyXpmL9hBz38vHxGeF/p830lseJdoq9A==",
|
||||||
|
"dependencies": {
|
||||||
|
"@indiekit/error": "^1.0.0-beta.15"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=20"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@indiekit/store-github": {
|
"node_modules/@indiekit/store-github": {
|
||||||
"version": "1.0.0-beta.18",
|
"version": "1.0.0-beta.18",
|
||||||
"resolved": "https://registry.npmjs.org/@indiekit/store-github/-/store-github-1.0.0-beta.18.tgz",
|
"resolved": "https://registry.npmjs.org/@indiekit/store-github/-/store-github-1.0.0-beta.18.tgz",
|
||||||
|
@ -1233,13 +1260,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@indiekit/util": {
|
"node_modules/@indiekit/util": {
|
||||||
"version": "1.0.0-beta.18",
|
"version": "1.0.0-beta.19",
|
||||||
"resolved": "https://registry.npmjs.org/@indiekit/util/-/util-1.0.0-beta.18.tgz",
|
"resolved": "https://registry.npmjs.org/@indiekit/util/-/util-1.0.0-beta.19.tgz",
|
||||||
"integrity": "sha512-zZmBivgs7jntl4s6DOTQCaPyle4XASqmxTs0y4AsLWEjgtLIo+8MmjsQefbw/wb9EC6Onc3sythyr941/Ogm6w==",
|
"integrity": "sha512-30kolXxnrM6JknnQPG1NCefIb+57ZlLfcKsUv1TCBRpfEguWbmNqE2tyOq4gQgmUxtpp9Ev7H2+fFXtepwoO+g==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@date-fns/tz": "^1.0.2",
|
||||||
"@sindresorhus/slugify": "^2.1.0",
|
"@sindresorhus/slugify": "^2.1.0",
|
||||||
"date-fns": "^3.6.0",
|
"date-fns": "^4.0.0",
|
||||||
"date-fns-tz": "^3.0.0",
|
|
||||||
"mongodb": "^6.8.0"
|
"mongodb": "^6.8.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
@ -2925,22 +2952,14 @@
|
||||||
"integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g=="
|
"integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g=="
|
||||||
},
|
},
|
||||||
"node_modules/date-fns": {
|
"node_modules/date-fns": {
|
||||||
"version": "3.6.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
|
||||||
"integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==",
|
"integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==",
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
"url": "https://github.com/sponsors/kossnocorp"
|
"url": "https://github.com/sponsors/kossnocorp"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/date-fns-tz": {
|
|
||||||
"version": "3.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-3.1.3.tgz",
|
|
||||||
"integrity": "sha512-ZfbMu+nbzW0mEzC8VZrLiSWvUIaI3aRHeq33mTe7Y38UctKukgqPR4nTDwcwS4d64Gf8GghnVsroBuMY3eiTeA==",
|
|
||||||
"peerDependencies": {
|
|
||||||
"date-fns": "^3.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/debug": {
|
"node_modules/debug": {
|
||||||
"version": "4.3.4",
|
"version": "4.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||||
|
@ -6835,10 +6854,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/indiekit-preset-byjp": {
|
"packages/indiekit-preset-byjp": {
|
||||||
"version": "1.0.0-beta.10",
|
"version": "1.0.0-beta.10-jp1",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iarna/toml": "^2.2.5",
|
"@iarna/toml": "^2.2.5",
|
||||||
|
"@indiekit-test/fixtures": "file:../../helpers/fixtures",
|
||||||
"camelcase-keys": "^9.0.0",
|
"camelcase-keys": "^9.0.0",
|
||||||
"plur": "^5.1.0",
|
"plur": "^5.1.0",
|
||||||
"yaml": "^2.4.0"
|
"yaml": "^2.4.0"
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@indiekit/endpoint-files": "^1.0.0-beta.15",
|
"@indiekit/endpoint-files": "^1.0.0-beta.15",
|
||||||
"@indiekit/endpoint-image": "^1.0.0-beta.10",
|
"@indiekit/endpoint-image": "^1.0.0-beta.10",
|
||||||
|
"@indiekit/endpoint-media": "^1.0.0-beta.19",
|
||||||
"@indiekit/endpoint-micropub": "^1.0.0-beta.18",
|
"@indiekit/endpoint-micropub": "^1.0.0-beta.18",
|
||||||
"@indiekit/endpoint-posts": "^1.0.0-beta.18",
|
"@indiekit/endpoint-posts": "^1.0.0-beta.18",
|
||||||
"@indiekit/endpoint-share": "^1.0.0-beta.15",
|
"@indiekit/endpoint-share": "^1.0.0-beta.15",
|
||||||
|
@ -30,6 +31,7 @@
|
||||||
"@indiekit/post-type-note": "^1.0.0-beta.8",
|
"@indiekit/post-type-note": "^1.0.0-beta.8",
|
||||||
"@indiekit/post-type-photo": "^1.0.0-beta.15",
|
"@indiekit/post-type-photo": "^1.0.0-beta.15",
|
||||||
"@indiekit/post-type-reply": "^1.0.0-beta.18",
|
"@indiekit/post-type-reply": "^1.0.0-beta.18",
|
||||||
|
"@indiekit/store-file-system": "^1.0.0-beta.19",
|
||||||
"@indiekit/store-github": "^1.0.0-beta.18",
|
"@indiekit/store-github": "^1.0.0-beta.18",
|
||||||
"@indiekit/syndicator-mastodon": "^1.0.0-beta.18",
|
"@indiekit/syndicator-mastodon": "^1.0.0-beta.18",
|
||||||
"indiekit-preset-byjp": "file:./packages/indiekit-preset-byjp"
|
"indiekit-preset-byjp": "file:./packages/indiekit-preset-byjp"
|
||||||
|
|
|
@ -48,11 +48,13 @@ const getFrontMatter = (properties, frontMatterFormat) => {
|
||||||
...(properties.deleted && { expiryDate: properties.deleted }),
|
...(properties.deleted && { expiryDate: properties.deleted }),
|
||||||
...(properties.name && { title: properties.name }),
|
...(properties.name && { title: properties.name }),
|
||||||
...(properties.photo && {
|
...(properties.photo && {
|
||||||
images: properties.photo.map((image) => image.url),
|
media: properties.photo.map(({url, alt}) => ({
|
||||||
|
url: `/${url}`,
|
||||||
|
alt,
|
||||||
|
})),
|
||||||
}),
|
}),
|
||||||
...properties,
|
...properties,
|
||||||
};
|
};
|
||||||
// TODO: move photos
|
|
||||||
|
|
||||||
delete properties.content; // Shown below front matter
|
delete properties.content; // Shown below front matter
|
||||||
delete properties.deleted; // Use `expiryDate`
|
delete properties.deleted; // Use `expiryDate`
|
||||||
|
@ -63,6 +65,7 @@ const getFrontMatter = (properties, frontMatterFormat) => {
|
||||||
delete properties.type; // Not required
|
delete properties.type; // Not required
|
||||||
delete properties.updated; // Use `lastmod`
|
delete properties.updated; // Use `lastmod`
|
||||||
delete properties.url; // Not required
|
delete properties.url; // Not required
|
||||||
|
delete properties.photo; // Was moved to media
|
||||||
|
|
||||||
switch (frontMatterFormat) {
|
switch (frontMatterFormat) {
|
||||||
case "json": {
|
case "json": {
|
||||||
|
|
Loading…
Reference in a new issue