Compare commits
5 Commits
2a4f6f2c48
...
9cd91dc788
Author | SHA1 | Date |
---|---|---|
Bauke | 9cd91dc788 | |
Bauke | 537c8c0f3e | |
Bauke | 2e828eb087 | |
Bauke | cb2e5e9f17 | |
Bauke | 7129322105 |
27
README.md
27
README.md
|
@ -3,3 +3,30 @@
|
||||||
> https://href.plus
|
> https://href.plus
|
||||||
|
|
||||||
* If you find a release that has a link which just shows the domain and not a proper name, please post it in [#5](https://github.com/Bauke/href-plus/issues/5). Thank you!
|
* If you find a release that has a link which just shows the domain and not a proper name, please post it in [#5](https://github.com/Bauke/href-plus/issues/5). Thank you!
|
||||||
|
|
||||||
|
## Building
|
||||||
|
|
||||||
|
*Requires a recent version of [Node](https://nodejs.org) and [pnpm](https://pnpm.io).* In the command-line:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Clone the repository.
|
||||||
|
git clone https://github.com/Bauke/href-plus.git
|
||||||
|
|
||||||
|
# Move into it.
|
||||||
|
cd href-plus
|
||||||
|
|
||||||
|
# Install the dependencies.
|
||||||
|
pnpm install
|
||||||
|
|
||||||
|
# Start a local development server.
|
||||||
|
pnpm start -- --open
|
||||||
|
|
||||||
|
# Build for production.
|
||||||
|
pnpm vite build --emptyOutDir
|
||||||
|
```
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This project is licensed under the [GPL-3.0-or-later](LICENSE) license.
|
||||||
|
|
||||||
|
Icons in [`source/assets/icons`](source/assets/icons) belong to their respective owners.
|
||||||
|
|
29
package.json
29
package.json
|
@ -10,21 +10,21 @@
|
||||||
"deploy:netlify": "netlify deploy --prod -d 'public' -s 'href.plus'"
|
"deploy:netlify": "netlify deploy --prod -d 'public' -s 'href.plus'"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fontsource/inter": "^4.5.2",
|
"@fontsource/inter": "^4.5.12",
|
||||||
"htm": "^3.1.0",
|
"htm": "^3.1.1",
|
||||||
"modern-normalize": "^1.1.0",
|
"modern-normalize": "^1.1.0",
|
||||||
"preact": "^10.6.5",
|
"preact": "^10.11.0",
|
||||||
"preact-router": "^3.2.1"
|
"preact-router": "^4.1.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^17.0.14",
|
"@types/node": "^18.7.23",
|
||||||
"postcss": "^8.4.6",
|
"postcss": "^8.4.16",
|
||||||
"sass": "^1.49.7",
|
"sass": "^1.55.0",
|
||||||
"stylelint": "^14.3.0",
|
"stylelint": "^14.13.0",
|
||||||
"stylelint-config-standard-scss": "^3.0.0",
|
"stylelint-config-standard-scss": "^5.0.0",
|
||||||
"typescript": "^4.5.5",
|
"typescript": "^4.8.4",
|
||||||
"vite": "^2.7.13",
|
"vite": "^3.1.4",
|
||||||
"xo": "^0.47.0"
|
"xo": "^0.52.3"
|
||||||
},
|
},
|
||||||
"stylelint": {
|
"stylelint": {
|
||||||
"extends": [
|
"extends": [
|
||||||
|
@ -36,6 +36,11 @@
|
||||||
},
|
},
|
||||||
"xo": {
|
"xo": {
|
||||||
"prettier": true,
|
"prettier": true,
|
||||||
|
"rules": {
|
||||||
|
"@typescript-eslint/consistent-type-definitions": "off",
|
||||||
|
"@typescript-eslint/consistent-type-imports": "off",
|
||||||
|
"n/file-extension-in-import": "off"
|
||||||
|
},
|
||||||
"space": true
|
"space": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
1615
pnpm-lock.yaml
1615
pnpm-lock.yaml
File diff suppressed because it is too large
Load Diff
|
@ -63,3 +63,7 @@
|
||||||
margin-right: 1rem;
|
margin-right: 1rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.release-date {
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
|
|
@ -66,6 +66,11 @@ export default class ReleasePage extends Component<Props, State> {
|
||||||
if (loading === 'finished' && release !== undefined) {
|
if (loading === 'finished' && release !== undefined) {
|
||||||
document.title = release.display();
|
document.title = release.display();
|
||||||
|
|
||||||
|
const date =
|
||||||
|
release.date === undefined
|
||||||
|
? undefined
|
||||||
|
: html`<span class="release-date">${release.date}</span>`;
|
||||||
|
|
||||||
const image =
|
const image =
|
||||||
release.image === undefined
|
release.image === undefined
|
||||||
? undefined
|
? undefined
|
||||||
|
@ -117,6 +122,7 @@ export default class ReleasePage extends Component<Props, State> {
|
||||||
<header class="release-header">
|
<header class="release-header">
|
||||||
${image}
|
${image}
|
||||||
<h1>${release.artist}<br />${release.title}</h1>
|
<h1>${release.artist}<br />${release.title}</h1>
|
||||||
|
${date}
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<main class="release-main">
|
<main class="release-main">
|
||||||
|
|
|
@ -9,6 +9,7 @@ type ApiReleaseData = {
|
||||||
'cover-art-archive': {
|
'cover-art-archive': {
|
||||||
front: boolean;
|
front: boolean;
|
||||||
};
|
};
|
||||||
|
date: string | undefined;
|
||||||
id: string;
|
id: string;
|
||||||
relations: Array<{
|
relations: Array<{
|
||||||
ended: boolean;
|
ended: boolean;
|
||||||
|
@ -23,6 +24,7 @@ type ApiReleaseData = {
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
||||||
interface IRelease {
|
interface IRelease {
|
||||||
artist: string;
|
artist: string;
|
||||||
|
date: string | undefined;
|
||||||
image: string | undefined;
|
image: string | undefined;
|
||||||
links: RelationLink[];
|
links: RelationLink[];
|
||||||
title: string;
|
title: string;
|
||||||
|
@ -77,6 +79,7 @@ export default class Release {
|
||||||
|
|
||||||
return new Release({
|
return new Release({
|
||||||
artist,
|
artist,
|
||||||
|
date: data.date,
|
||||||
image,
|
image,
|
||||||
links,
|
links,
|
||||||
title: data.title,
|
title: data.title,
|
||||||
|
|
|
@ -13,7 +13,7 @@ function gitRevParse(): string {
|
||||||
const revParse = childProcess.spawnSync(
|
const revParse = childProcess.spawnSync(
|
||||||
'git',
|
'git',
|
||||||
['rev-parse', '--short', '--verify', 'main'],
|
['rev-parse', '--short', '--verify', 'main'],
|
||||||
{encoding: 'utf-8'},
|
{encoding: 'utf8'},
|
||||||
);
|
);
|
||||||
|
|
||||||
if (revParse.error) {
|
if (revParse.error) {
|
||||||
|
|
Loading…
Reference in New Issue