forked from pub-solar/pub.solar
90 lines
2.9 KiB
Markdown
90 lines
2.9 KiB
Markdown
# pub.solar homepage
|
|
|
|
This is the repository containing the code for https://pub.solar.
|
|
|
|
It is built using [lume](https://lume.land/) with JSX. To get started, make sure
|
|
you have the [nix package manager](https://nixos.org/download.html) installed.
|
|
Then you can start developing with:
|
|
|
|
### Quick start
|
|
|
|
```
|
|
nix develop
|
|
```
|
|
|
|
This will use a [nix devshell](https://nix.dev/tutorials/first-steps/ad-hoc-shell-environments#ad-hoc-envs)
|
|
to create an environment that has [deno](https://deno.land/) and [lume](https://lume.land/)
|
|
available.
|
|
|
|
An alternative approach for loading all dependencies is [`direnv`](https://direnv.net).
|
|
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](https://ci.pub.solar/pub-solar/pub.solar) 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
|
|
```
|