feat(web/website): init

This adds a new Website/Docs for Snix, using Thulite / Doks, which is
mostly hugo and a bit of npm.

Change-Id: Iea10d4068fa783ec0ddd6bcaba5c8d92b1a1168f
This commit is contained in:
Florian Klink 2025-03-16 13:36:18 +01:00
parent 2705517e6d
commit 91d8b86b39
55 changed files with 6205 additions and 0 deletions

63
web/layouts/index.html Normal file
View file

@ -0,0 +1,63 @@
{{ define "main" }}
<section class="section container-fluid mt-n3 pb-3">
<div class="row justify-content-center">
<div class="col-lg-12 text-center">
<h1>{{ .Title }}</h1>
</div>
<div class="col-lg-9 col-xl-8 text-center">
<p class="lead">{{ .Params.lead | safeHTML }}</p>
<a class="btn btn-primary btn-cta rounded-pill btn-lg my-3" href="/about" role="button">Learn More</a>
{{ .Content }}
</div>
</div>
</section>
{{ end }}
{{ define "sidebar-prefooter" }}
{{ if site.Params.doks.backgroundDots -}}
<div class="d-flex justify-content-start">
<div class="bg-dots"></div>
</div>
{{ end -}}
{{ if eq $.Site.Language.LanguageName "English" }}
<section class="section section-md section-features">
<div class="container">
<div class="row justify-content-center text-center">
<div class="col-lg-5">
<h2 class="h4">Composable and Modular by Design</h2>
<p>Snix is architected with a focus on composability. Different components representing different aspects of Nix can be combined and extended freely, allowing it to be tailored to your usecase.</p>
</div>
<div class="col-lg-5">
<h2 class="h4">Library-first Approach</h2>
<p>Designed to be embedded in your project, it opens up the possibility to interact with Nix expressions and concepts more natively than conventional Nix CLI-based tools.</p>
</div>
<div class="col-lg-5">
<h2 class="h4">Robust Unit Test Coverage</h2>
<p>Snix has a strong commitment to reliability and compatibility with Nix' behaviour, resulting in an extensive test suite, documentation and regression testing.</p>
</div>
<div class="col-lg-5">
<h2 class="h4">Content-addressed Storage model</h2>
<p>With its own content-addressed storage engine, Snix can store and exchange store path contents in a much more granular fashion, while providing great deduplication, consistency and integrity across build artifacts and dependencies.</p>
</div>
<div class="col-lg-5">
<h2 class="h4">Interoperability with Nix</h2>
<p>While potentially doing thing differently underneath, it provides a "Nix-compatible surface". This results in nixpkgs compatibility, allowing to produce the same build expressions as Nix, bit-by-bit, and interoperability with existing Nix binary caches.</p>
</div>
</div>
</div>
</section>
{{ end }}
{{ end }}
{{ define "sidebar-footer" }}
{{ if site.Params.doks.sectionFooter -}}
<section class="section section-md container-fluid bg-light">
<div class="row justify-content-center text-center">
<div class="col-lg-7">
<h2 class="mt-2">Start building with Doks today</h2>
<a class="btn btn-primary rounded-pill px-4 my-2" href="/docs/{{ if site.Params.doks.docsVersioning }}{{ site.Params.doks.docsVersion }}/{{ end }}prologue/introduction/" role="button">{{ i18n "get-started" }}</a>
</div>
</div>
</section>
{{ end -}}
{{ end }}

View file

@ -0,0 +1,13 @@
{{/* Put your custom <script></script> tags here */}}
{{/* EXAMPLE - only load script for production
{{ if eq (hugo.Environment) "production" -}}
{{ partial "footer/esbuild" (dict "src" "js/instantpage.js" "load" "async" "transpile" false) -}}
{{ end -}}
*/}}
{{/* EXAMPLE - only load script for a page type e.g. contact or gallery
{{ if eq .Type "gallery" -}}
{{ partial "footer/esbuild" (dict "src" "js/gallery.js" "load" "async" "transpile" false) -}}
{{ end -}}
*/}}

View file

@ -0,0 +1 @@
<!-- Custom head -->

View file

@ -0,0 +1 @@
<!-- Insert scripts NOT needed by stylesheets here -->