|
||
---|---|---|
.well-known/matrix | ||
_data | ||
_includes | ||
assets | ||
de | ||
fonts/opensans/v40 | ||
scripts | ||
.dockerignore | ||
.drone.yml | ||
.envrc | ||
.gitignore | ||
_config.ts | ||
about.yml | ||
deno.json | ||
deno.lock | ||
docker-compose.yml | ||
Dockerfile | ||
filters.ts | ||
flake.lock | ||
flake.nix | ||
hakken.yml | ||
import_map.json | ||
index.yml | ||
LICENSE.md | ||
maintenance.yml | ||
privacy.yml | ||
README.md | ||
services.yml | ||
styles.scss |
pub.solar homepage
This is the repository containing the code for https://pub.solar.
It is built using lume with JSX. To get started, make sure you have the nix package manager installed. Then you can start developing with:
Quick start
nix develop
This will use a nix devshell to create an environment that has deno and lume available.
An alternative approach for loading all dependencies is direnv
.
It basically runs nix develop
for you, once you enter a directory which
contains a .envrc
file and allow it by running direnv allow
. Once installed
globally, run:
direnv allow
To get a live development server, run
deno task serve
Unfortunately, hot module reloading is currently broken for JSX modules, so you'll need to restart this process regularly during development.
Updating Open Sans
To update the font files and CSS, run google-font-downloader $FONT_CSS_URL
.
As "documentation" flake.nix
shows the internals, and
_includes/styles/typography.css
has a comment at the top that shows which
command was used to generate it.
Deployment
Our Drone CI is configured to
deploy the main
branch to the production website. To integrate any changes,
first create a pull request, which will be reviewed. After merging it, the new
version will get deployed automatically.
Troubleshooting
When running deno task serve
, if you see an error message like:
NotFound: No such file or directory (os error 2): stat '/home/<user>/.../git.pub.solar/pub-solar/pub.solar/.direnv/flake-inputs/5acdh8xyry0kdvp6xla2hw7wf3zkphkl-source/pkgs/test/nixpkgs-check-by-name/tests/symlink-invalid/pkgs/by-name/fo/foo/foo.nix'
at Object.statSync (ext:deno_fs/30_fs.js:362:7)
at FS.#walkLink (https://deno.land/x/lume@v2.0.1/core/fs.ts:143:23)
at FS.#walkFs (https://deno.land/x/lume@v2.0.1/core/fs.ts:117:23)
at FS.#walkFs (https://deno.land/x/lume@v2.0.1/core/fs.ts:136:21)
at FS.#walkFs (https://deno.land/x/lume@v2.0.1/core/fs.ts:136:21)
at FS.#walkFs (https://deno.land/x/lume@v2.0.1/core/fs.ts:136:21)
at FS.#walkFs (https://deno.land/x/lume@v2.0.1/core/fs.ts:136:21)
at FS.#walkFs (https://deno.land/x/lume@v2.0.1/core/fs.ts:136:21)
at FS.#walkFs (https://deno.land/x/lume@v2.0.1/core/fs.ts:136:21)
at FS.#walkFs (https://deno.land/x/lume@v2.0.1/core/fs.ts:136:21) {
name: "NotFound",
code: "ENOENT"
}
try removing the .direnv directory:
rm -rf .direnv
deno task serve
Another common error message after updating dependencies is:
22.31 error: The source code is invalid, as it does not match the expected hash in the lock file.
To recreate the deno lock file, run
deno cache --lock=deno.lock --lock-write _config.ts