= Building Documentation
:page-parent: Development

// SPDX-FileCopyrightText: 2022 Unikie
// SPDX-License-Identifier: GFDL-1.3-no-invariants-or-later OR CC-BY-SA-4.0

This tutorial assumes that you have https://nixos.org/[Nix] installed.
You may also want to xref:binary-cache.adoc[configure the Spectrum
binary cache], to avoid having to wait for dependencies to compile on
your local system.

1. Get a copy of the Spectrum source code:
+
[source,shell]
----
git clone https://spectrum-os.org/git/spectrum
----
2. Enter the documentation directory:
+
[source,shell]
----
cd spectrum/Documentation
----
3. Enter the development environment:
+
[source,shell]
----
nix-shell -I nixpkgs=https://spectrum-os.org/git/nixpkgs/snapshot/nixpkgs-rootfs.tar.gz
----
4. In the development shell, do an initial build of the documentation
site:
+
[source,shell]
----
scripts/build.sh
----
5. Run a development server for previewing changes locally:
+
[source,shell]
----
jekyll serve
----
+
This will serve a local copy of the documentation at http://localhost:4000/.
+
IMPORTANT: Jekyll doesn't handle rendering of the draw.io diagrams, so
if you modify any of those, or add new ones, you'll have to run
`scripts/build.sh` again to do a full rebuild of the site.

Once you made your changes to the documentation, see
xref:first-patch.adoc[Patching] for information
on how to submit your patch for review.
