Add privacy disclosure page
Deploy production / deploy (push) Successful in 23s

This commit is contained in:
2026-08-23 18:03:15 -07:00
parent 457f98ad8e
commit 9e3f448459
6 changed files with 78 additions and 0 deletions
+9
View File
@@ -98,6 +98,15 @@ This is baseline page tracking only. The repository does not host an analytics
backend, add custom analytics events, or include the tracker in local authoring
and build interfaces.
The public privacy disclosure is the normal Lektor page record at
`content/privacy/contents.lr`, published at `/privacy/` and linked from the
shared site footer. It describes the current cookie-free analytics
implementation, aggregate usage data, external links, and the policy for any
future anonymous feature measurements. The page's visible **Last updated** date
comes from its `updated` content metadata; revise that value whenever the
disclosure materially changes. The site does not display analytics cookie or
consent UI for this implementation.
## Atom and RSS feeds
The project-aware build generates Atom 1.0 and RSS 2.0 feeds from one shared
+58
View File
@@ -0,0 +1,58 @@
_model: page
---
title: Privacy
---
eyebrow: Site policy
---
summary: Privacy
---
meta_description: How Labyricorn handles analytics and visitor privacy.
---
updated: 2026-08-23
---
body:
Labyricorn collects only the information reasonably useful for understanding
how the site is used and improving its content and navigation.
## Analytics
Labyricorn uses [Umami Analytics](https://docs.umami.is/docs/faq) to understand
aggregate site usage and improve the usefulness of its content. Umami's
standard analytics tracker does not use cookies, collect personally identifiable
information, or track visitors across websites.
Analytics may include pages visited, referring sites, browser and operating
system, device type, and approximate country-level location. Labyricorn uses
this information to understand broad usage patterns, not to identify individual
visitors.
## Cookies
Labyricorn's current analytics implementation does not use cookies for visitor
analytics.
## Cross-site tracking and advertising
The current analytics implementation is not used for cross-site visitor
tracking, behavioral advertising, or building advertising profiles.
## Site-feature measurements
Labyricorn may later measure anonymous interactions with site features, such as
navigation links, tags, feeds, or media controls, to understand which features
are useful. These measurements would describe how the site is used, not identify
individual visitors.
Labyricorn does not intentionally send names, email addresses, form contents,
account identifiers, or other information intended to identify a visitor to
Umami as analytics event data.
## External links
Labyricorn links to external services and websites. After you follow an external
link, the destination's own privacy practices apply.
## Changes to this page
This page may be updated if Labyricorn's analytics, embedded services, or other
data-handling behavior materially changes.
+8
View File
@@ -14,6 +14,14 @@ type = string
label = Summary
type = text
[fields.meta_description]
label = Meta description
type = string
[fields.updated]
label = Updated
type = date
[fields.body]
label = Body
type = markdown
+1
View File
@@ -51,6 +51,7 @@
<span>© 2026 Labyricorn — GENERATED FROM GIT, NEVER HAND-EDITED</span>
<nav aria-label="Footer navigation">
<a href="mailto:[email protected]">Contact</a>
<a href="/privacy/">Privacy</a>
<a href="{{ '/tags'|url }}">Tags</a>
<a href="https://github.com/Labyricorn">GitHub</a>
<a href="https://git.labyricorn.com/">Gitea</a>
+1
View File
@@ -47,6 +47,7 @@
{% endif %}
{% set social_title = record.title|default('Labyricorn', true)|striptags|trim %}
{% set base_description = record.summary|default('Labyricorn developer devlog and project hub', true)|striptags|trim %}
{% if record.meta_description %}{% set base_description = record.meta_description|striptags|trim %}{% endif %}
{% set social_description = base_description|truncate(220, true, '') %}
{% if schema_type == 'TechArticle' and project %}
{% set social_title = record.title ~ ' ' ~ project.title ~ ' Devlog' %}
+1
View File
@@ -11,6 +11,7 @@
<div class="shell narrow">
<p class="eyebrow">{{ this.eyebrow }}</p>
<h1>{{ this.summary }}</h1>
{% if this.updated %}<p class="entry-meta">Last updated <time datetime="{{ this.updated }}">{{ this.updated|dateformat('long') }}</time></p>{% endif %}
</div>
</section>
<section class="content-section">