Source code for my gallery webpage.
https://gallery.badmanners.xyz
.vscode | ||
examples | ||
public | ||
scripts | ||
src | ||
.gitignore | ||
.prettierignore | ||
.prettierrc.mjs | ||
astro.config.mjs | ||
LICENSE.md | ||
package-lock.json | ||
package.json | ||
README.md | ||
tailwind.config.mjs | ||
tsconfig.json |
gallery.badmanners.xyz
Static website built in Astro + Typescript + TailwindCSS.
For attributions, see licenses.toml
.
Requirements
- Node.js 20+
- (optional) rsync or LFTP, for remote deployment.
- (optional) LibreOffice, for the story export script.
Development
Setup
git clone https://git.badmanners.xyz/badmanners/gallery.badmanners.xyz
cd gallery.badmanners.xyz
npm install
Local development
npm run dev # Start development server (quit with Ctrl-C)
npm run sync # Rebuild types from Astro config and src/content/ files
npm run prettier # Prettier formatting
Configuration
The following optional environment variables can be set within a .env
file:
Name | Type | Description |
---|---|---|
APACHE_CONFIG |
boolean | If set to true, generates an .htaccess Apache config file at the root of the output directory. |
PUBLISH_DRAFTS |
boolean | If set to true, includes drafts in the production build. Published drafts still won't be directly indexed by any other pages. |
Export story for upload
Requires libreoffice
to be installed and in your path.
npm run export-story -- -o ~/Documents/TO_UPLOAD slug-for-story-to-export
Build and deploy to remote
npm run build
Then, if you're using rsync, after configuring the gallerybm
host (or the name of your choosing) in ~/.ssh/config
, you can use a command like:
rsync --delete-after -acP dist/ gallerybm:/home/public