A live-updating development server for forester.
To make use of the live-reload feature, you will need to add the following
javascript snippet to the root template in forest.xsl
:
...
<script type="module" src="forester.js"></script>
<script src="reload.js"></script>
Run forest watch -- "$args"
, where $args
are the arguments you want to pass
to forester
. For example:
forest watch -- "build --dev --root index trees/"
cargo install forest-server
Requires forester
to be available in $PATH
.
To install using Nix:
{
inputs = {
forester.url = "sourcehut:~jonsterling/ocaml-forester";
forest-server.url = "github:kentookura/forest-server";
forester.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = inputs@{ self, forester, forest-server, nixpkgs }:
let
system = "x86_64-linux"; # Only works on linux so far, PRs welcome!
pkgs = import nixpkgs { inherit system inputs; };
in
{
devShells.${system}.default = pkgs.mkShell {
buildInputs = [
forester.packages.${system}.default
forest-server.packages.${system}.default
];
};
};
}
forester
is written in ocaml, so why rust?
See this discussion.
Additionally, I have found compiling ffi code really challenging on nixos.
I am open to deprecating this program if a good ocaml solution is possible.
However, I suspect that forest-server
is runnable on windows, so It would be
nice that when forester
becomes windows-compatible, the native ocaml file
watching solution also works.
- Add a nice overlay to the UI like in vite.
Contributions are welcome! Feel free to open a PR.