Compare commits

...
Sign in to create a new pull request.

14 commits

Author SHA1 Message Date
Ava Gaiety W
268e054cc8 analytics 2025-04-15 18:02:00 -06:00
Ava Gaiety W
b5548f373d swapped git.gay for git.basking.monster links 2025-04-14 17:44:14 -06:00
Ava Gaiety W
536e55b84d tool versions file 2025-04-14 17:42:45 -06:00
Ava Gaiety W
6ac4de80cf point status link to page 2024-03-10 14:19:28 -05:00
Ava Gaiety W
aaa5d23200 fixed badges again 2024-03-10 14:18:28 -05:00
Ava Gaiety W
fc94884114 badge is a link 2024-03-10 14:07:36 -05:00
Ava Gaiety W
64ebd3d59d Add status badge to README 2024-03-10 14:00:03 -05:00
Ava Gaiety W
28f496f393 docker deploy steps 2024-03-08 16:01:00 +00:00
Ava Gaiety W
70a982361a point to git.gay 2024-03-08 15:08:24 +00:00
Ava Gaiety W
d88d3c3685 yeet digital ocean badge 2024-03-08 15:06:57 +00:00
Ava Gaiety W
655acdfd3e serve image typo 2023-10-25 13:51:29 -05:00
Ava Gaiety W
9d74ec41b9 audit fix 2023-10-15 17:02:01 -07:00
Ava Gaiety W
71cf08fd7c plausible analytics 2023-10-15 17:01:36 -07:00
Ava Gaiety W
d5c7862294
Merge branch 'monsterize' into 'main'
Monsterize

See merge request gaiety/pronoun-monster!3
2023-09-01 18:00:11 +00:00
8 changed files with 107 additions and 58 deletions

View file

@ -1 +1 @@
nodejs 19.7.0 nodejs latest

12
Dockerfile Normal file
View file

@ -0,0 +1,12 @@
# build with nodejs
FROM node:16.17.0-bullseye-slim
ENV NODE_ENV production
WORKDIR /app
COPY . /app
RUN mkdir -p dist node_modules
RUN chown -R node:node .
USER node
RUN NODE_ENV=development npm ci
RUN npm run postinstall
RUN npm run prestart
CMD ["node", "./app.js"]

View file

@ -1,19 +1,23 @@
# Pronoun Monster # Pronoun Monster
- [Site Status](https://status.basking.monster/status/pronoun-monster)
- Express Service: ![](https://status.basking.monster/api/badge/45/status)
- Express Service: ![](https://status.basking.monster/api/badge/46/status)
- [View site](https://pronoun.monster/)
Inspired by [@morganastra](https://twitter.com/morganastra)'s [pronoun.is](https://github.com/witch-house/pronoun.is) project</p> Inspired by [@morganastra](https://twitter.com/morganastra)'s [pronoun.is](https://github.com/witch-house/pronoun.is) project</p>
[![DigitalOcean Referral Badge](https://web-platforms.sfo2.digitaloceanspaces.com/WWW/Badge%203.svg)](https://www.digitalocean.com/?refcode=dfabbc9bb922&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge)
## Getting Started ## Getting Started
- [NodeJS](https://nodejs.org/en/) - [NodeJS](https://nodejs.org/en/)
```bash ```sh
npm i # Installs Dependencies npm i # Installs Dependencies
``` ```
### Serving Locally ### Serving Locally
```bash ```sh
npm start npm start
``` ```
@ -22,11 +26,12 @@ npm start
### Deploy ### Deploy
```bash ```sh
npm build:css npm run deploy
npm start
``` ```
### Testing ### Testing
TODO ```sh
npm test
```

12
docker-compose.yml Normal file
View file

@ -0,0 +1,12 @@
version: "3.9"
services:
app:
container_name: pronoun-monster
image: pronoun-monster
build:
context: .
dockerfile: Dockerfile
restart: always
ports:
- "9995:3000"

98
package-lock.json generated
View file

@ -2030,9 +2030,9 @@
"dev": true "dev": true
}, },
"node_modules/lint-staged/node_modules/yaml": { "node_modules/lint-staged/node_modules/yaml": {
"version": "2.2.1", "version": "2.3.3",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.3.tgz",
"integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", "integrity": "sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">= 14" "node": ">= 14"
@ -2424,10 +2424,16 @@
"dev": true "dev": true
}, },
"node_modules/nanoid": { "node_modules/nanoid": {
"version": "3.3.4", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
"dev": true, "dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"bin": { "bin": {
"nanoid": "bin/nanoid.cjs" "nanoid": "bin/nanoid.cjs"
}, },
@ -2451,9 +2457,9 @@
"dev": true "dev": true
}, },
"node_modules/nodemon": { "node_modules/nodemon": {
"version": "2.0.21", "version": "2.0.22",
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.21.tgz", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz",
"integrity": "sha512-djN/n2549DUtY33S7o1djRCd7dEm0kBnj9c7S9XVXqRUbuggN1MZH/Nqa+5RFQr63Fbefq37nFXAE9VU86yL1A==", "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"chokidar": "^3.5.2", "chokidar": "^3.5.2",
@ -2531,9 +2537,9 @@
"dev": true "dev": true
}, },
"node_modules/nodemon/node_modules/semver": { "node_modules/nodemon/node_modules/semver": {
"version": "5.7.1", "version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true, "dev": true,
"bin": { "bin": {
"semver": "bin/semver" "semver": "bin/semver"
@ -2588,9 +2594,9 @@
} }
}, },
"node_modules/normalize-package-data/node_modules/semver": { "node_modules/normalize-package-data/node_modules/semver": {
"version": "5.7.1", "version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true, "dev": true,
"bin": { "bin": {
"semver": "bin/semver" "semver": "bin/semver"
@ -3004,9 +3010,9 @@
} }
}, },
"node_modules/postcss": { "node_modules/postcss": {
"version": "8.4.21", "version": "8.4.31",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
"integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@ -3016,10 +3022,14 @@
{ {
"type": "tidelift", "type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss" "url": "https://tidelift.com/funding/github/npm/postcss"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
} }
], ],
"dependencies": { "dependencies": {
"nanoid": "^3.3.4", "nanoid": "^3.3.6",
"picocolors": "^1.0.0", "picocolors": "^1.0.0",
"source-map-js": "^1.0.2" "source-map-js": "^1.0.2"
}, },
@ -3575,9 +3585,9 @@
"dev": true "dev": true
}, },
"node_modules/semver": { "node_modules/semver": {
"version": "7.3.8", "version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"lru-cache": "^6.0.0" "lru-cache": "^6.0.0"
@ -5950,9 +5960,9 @@
"dev": true "dev": true
}, },
"yaml": { "yaml": {
"version": "2.2.1", "version": "2.3.3",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.3.tgz",
"integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", "integrity": "sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==",
"dev": true "dev": true
} }
} }
@ -6222,9 +6232,9 @@
"dev": true "dev": true
}, },
"nanoid": { "nanoid": {
"version": "3.3.4", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
"dev": true "dev": true
}, },
"negotiator": { "negotiator": {
@ -6240,9 +6250,9 @@
"dev": true "dev": true
}, },
"nodemon": { "nodemon": {
"version": "2.0.21", "version": "2.0.22",
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.21.tgz", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz",
"integrity": "sha512-djN/n2549DUtY33S7o1djRCd7dEm0kBnj9c7S9XVXqRUbuggN1MZH/Nqa+5RFQr63Fbefq37nFXAE9VU86yL1A==", "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"chokidar": "^3.5.2", "chokidar": "^3.5.2",
@ -6304,9 +6314,9 @@
"dev": true "dev": true
}, },
"semver": { "semver": {
"version": "5.7.1", "version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true "dev": true
}, },
"supports-color": { "supports-color": {
@ -6348,9 +6358,9 @@
}, },
"dependencies": { "dependencies": {
"semver": { "semver": {
"version": "5.7.1", "version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true "dev": true
} }
} }
@ -6624,12 +6634,12 @@
} }
}, },
"postcss": { "postcss": {
"version": "8.4.21", "version": "8.4.31",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
"integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"nanoid": "^3.3.4", "nanoid": "^3.3.6",
"picocolors": "^1.0.0", "picocolors": "^1.0.0",
"source-map-js": "^1.0.2" "source-map-js": "^1.0.2"
} }
@ -6997,9 +7007,9 @@
"dev": true "dev": true
}, },
"semver": { "semver": {
"version": "7.3.8", "version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dev": true, "dev": true,
"requires": { "requires": {
"lru-cache": "^6.0.0" "lru-cache": "^6.0.0"

View file

@ -5,29 +5,35 @@
"main": "app.js", "main": "app.js",
"scripts": { "scripts": {
"postinstall": "mkdir -p ./dist", "postinstall": "mkdir -p ./dist",
"start": "concurrently npm:serve:*", "start": "node app.js",
"prestart": "npm run start:css && npm run start:svg && npm run start:images",
"start:css": "tailwindcss -i ./src/app.css -o ./dist/app.css",
"start:svg": "npm run build:svg",
"start:images": "npm run build:images",
"serve": "concurrently npm:serve:*",
"build": "concurrently npm:build:*", "build": "concurrently npm:build:*",
"serve:handlebars": "node app.js", "serve:handlebars": "node app.js",
"serve:css": "tailwindcss -i ./src/app.css -o ./dist/app.css --watch", "serve:css": "tailwindcss -i ./src/app.css -o ./dist/app.css --watch",
"serve:svg": "nodemon --watch 'src/svgs/*' -e svg --exec 'npm run build:svg'", "serve:svg": "nodemon --watch 'src/svgs/*' -e svg --exec 'npm run build:svg'",
"serve:svg": "nodemon --watch 'src/images/*' --exec 'npm run build:images'", "serve:image": "nodemon --watch 'src/images/*' --exec 'npm run build:images'",
"build:css": "tailwindcss -i ./src/app.css -o ./dist/app.css", "build:css": "tailwindcss -i ./src/app.css -o ./dist/app.css",
"build:svg": "svgdir2sprite ./src/svgs ./dist/spritesheet.svg", "build:svg": "svgdir2sprite ./src/svgs ./dist/spritesheet.svg",
"build:images": "mkdir -p ./dist ./dist/images && cp ./src/images/* ./dist/images/", "build:images": "mkdir -p ./dist ./dist/images && cp ./src/images/* ./dist/images/",
"test": "ava", "test": "ava",
"lint": "prettier --check .", "lint": "prettier --check .",
"prepare": "husky install" "prepare": "husky install",
"deploy": "docker compose up --build -d"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+ssh://git@gitlab.com/gaiety/pronoun-monster.git" "url": "ssh://git@git.basking.monster:222/gaiety/pronoun-monster.git"
}, },
"author": "", "author": "",
"license": "Unlicense", "license": "Unlicense",
"bugs": { "bugs": {
"url": "https://gitlab.com/gaiety/pronoun-monster/issues" "url": "https://git.basking.monster/gaiety/pronoun-monster/issues"
}, },
"homepage": "https://gitlab.com/gaiety/pronoun-monster#readme", "homepage": "https://pronoun.monster/",
"type": "module", "type": "module",
"devDependencies": { "devDependencies": {
"ava": "^5.2.0", "ava": "^5.2.0",

View file

@ -19,6 +19,8 @@
<link href="https://fonts.googleapis.com/css2?family=Special+Elite&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Special+Elite&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://fonts.cdnfonts.com/css/redaction"> <link rel="stylesheet" href="https://fonts.cdnfonts.com/css/redaction">
<link rel="stylesheet" href="/app.css"> <link rel="stylesheet" href="/app.css">
<script defer data-domain="pronoun.monster" src="https://plausible.io/js/script.js"></script>
</head> </head>
<body class="min-h-screen flex flex-col"> <body class="min-h-screen flex flex-col">

View file

@ -14,4 +14,6 @@
<p>Inspired by <a href="https://twitter.com/morganastra" class="font-bold">@morganastra</a>'s <a href="https://github.com/witch-house/pronoun.is" class="font-bold">pronoun.is</a> project</p> <p>Inspired by <a href="https://twitter.com/morganastra" class="font-bold">@morganastra</a>'s <a href="https://github.com/witch-house/pronoun.is" class="font-bold">pronoun.is</a> project</p>
<p>Background Photo by <a href="https://unsplash.com/@jazminantoinette?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText" class="font-bold">Jazmin Quaynor</a> on <a href="https://unsplash.com/photos/bm9zWKi_c9Y?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText" class="font-bold">Unsplash</a></p> <p>Background Photo by <a href="https://unsplash.com/@jazminantoinette?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText" class="font-bold">Jazmin Quaynor</a> on <a href="https://unsplash.com/photos/bm9zWKi_c9Y?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText" class="font-bold">Unsplash</a></p>
</div> </div>
<script type="module" data-entity="pronounmonster" src="https://analytics.basking.monster/script.js"></script>
</footer> </footer>