Files
Rayhaan JaufeerallyandClaude Opus 5.5 dc275f99d7
ci / check (push) Canceled after 0s
ci / docs (push) Canceled after 0s
ci / interop (push) Canceled after 0s
ci / fuzz (push) Canceled after 0s
Add a documentation website, built with Zola
The documentation moves from READMEs into a site in docs/: getting
started, a user guide, operations, a reference, and development pages,
written in the style of network vendors' documentation (docs/STYLE.md).
bin/bgp/README.md and docs/RFCs.md are folded into it.

- A theme of its own in the International Typographic Style, in blues,
  with self-hosted Inter and JetBrains Mono, search over Zola's index,
  dark mode, and no resources loaded from other hosts.
- Example configurations in docs/examples/, shown on the pages and
  checked with `bgp --check` in CI.
- A test that fails when a field of config.proto is missing from the
  configuration reference.
- A CI job that builds the site; Zola fails on broken links and anchors.
- A hardened systemd unit, tried under systemd with kernel routes on.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 15:12:43 +02:00

40 lines
1.5 KiB
HTML

{% extends "base.html" %}
{%- import "macros/icons.html" as icons -%}
{%- import "macros/docs.html" as docs -%}
{% block title %}{{ page.title }} · {{ config.title }}{% endblock title %}
{% block description %}{{ page.description | default(value=config.description) }}{% endblock description %}
{% block body_class %}layout-docs{% endblock body_class %}
{% block menu_button %}
<button class="icon-button menu-button" type="button" data-menu-toggle aria-label="Show the contents" aria-expanded="false">{{ icons::menu() }}</button>
{% endblock menu_button %}
{% block body %}
{%- set group = get_section(path=page.ancestors | last, metadata_only=true) %}
<div class="docs-layout">
<aside class="sidebar" data-sidebar>
{{ docs::sidebar(current=page.path) }}
</aside>
<main id="main" class="docs-main">
<article class="prose">
<header class="page-header">
<span class="eyebrow">{{ group.extra.number }} — {{ group.title }}</span>
<h1>{{ page.title }}</h1>
{%- if page.description %}
<p class="lead">{{ page.description }}</p>
{%- endif %}
</header>
{{ page.content | safe }}
</article>
{{ docs::pager(current=page.path) }}
<p class="page-source">
<a href="{{ config.extra.repository }}/src/branch/main/docs/content/{{ page.relative_path }}">{{ icons::file() }} This page's source</a>
</p>
</main>
<aside class="toc-column">
{{ docs::toc(entries=page.toc) }}
</aside>
</div>
{% endblock body %}