chore: clearing more of the spec

This commit is contained in:
2026-04-09 17:31:52 +02:00
parent 5eff5b9636
commit 92f0687549
6 changed files with 67 additions and 4 deletions

View File

@@ -10,6 +10,7 @@
use "./tabs.allium" as tabs use "./tabs.allium" as tabs
use "./i18n.allium" as i18n use "./i18n.allium" as i18n
use "./generation.allium" as generation
-- ─── Dashboard (no tab active) ─────────────────────────────── -- ─── Dashboard (no tab active) ───────────────────────────────
@@ -395,22 +396,26 @@ surface DocumentationSurface {
-- ─── Site validation view ─────────────────────────────────── -- ─── Site validation view ───────────────────────────────────
value SiteValidationReport { value SiteValidationReport {
project_id: String
expected_url_count: Integer expected_url_count: Integer
existing_html_count: Integer existing_html_count: Integer
missing_url_paths: List<String> -- in sitemap, no HTML on disk missing_url_paths: List<String> -- in sitemap, no HTML on disk
extra_url_paths: List<String> -- HTML on disk, not in sitemap extra_url_paths: List<String> -- HTML on disk, not in sitemap
updated_post_url_paths: List<String> -- source .md newer than HTML updated_post_url_paths: List<String> -- source .md newer than HTML
affected_sections: Set<generation/GenerationSection>
} }
surface SiteValidationSurface { surface SiteValidationSurface {
context report: SiteValidationReport context report: SiteValidationReport
exposes: exposes:
report.project_id
report.expected_url_count report.expected_url_count
report.existing_html_count report.existing_html_count
report.missing_url_paths report.missing_url_paths
report.extra_url_paths report.extra_url_paths
report.updated_post_url_paths report.updated_post_url_paths
report.affected_sections
provides: provides:
SiteValidationScanRequested() SiteValidationScanRequested()
@@ -447,7 +452,7 @@ rule SiteValidationApply {
-- Deletes extra HTML files, removes empty directories -- Deletes extra HTML files, removes empty directories
-- Regenerates calendar if anything changed -- Regenerates calendar if anything changed
-- Rebuilds search index if anything rendered or deleted -- Rebuilds search index if anything rendered or deleted
ensures: GenerateSiteRequested(sections: report.affected_sections) ensures: ApplyValidationRequested(report.project_id, report.affected_sections)
} }
-- ─── Translation validation view ─────────────────────────── -- ─── Translation validation view ───────────────────────────

View File

@@ -8,6 +8,15 @@
-- file types. The Rust implementation must read and write these -- file types. The Rust implementation must read and write these
-- formats byte-for-byte compatible with the TypeScript implementation. -- formats byte-for-byte compatible with the TypeScript implementation.
surface FrontmatterPersistenceSurface {
facing _: ContentPersistenceRuntime
provides:
PublishPostRequested(post)
PublishTemplateRequested(template)
PublishScriptRequested(script)
}
-- ============================================================================ -- ============================================================================
-- POST FILE FORMAT -- POST FILE FORMAT
-- ============================================================================ -- ============================================================================

View File

@@ -10,6 +10,23 @@ use "./metadata.allium" as meta
use "./menu.allium" as menu use "./menu.allium" as menu
use "./translation.allium" as translation use "./translation.allium" as translation
surface GenerationControlSurface {
facing _: GenerationOperator
provides:
GenerateSiteRequested(generation)
ValidateSiteRequested(project)
ApplyValidationRequested(project_id, sections)
}
surface GenerationRuntimeSurface {
facing _: GenerationRuntime
provides:
PageRenderRequested(template, context)
GenerateSiteCompleted(generation)
}
value GenerationSection { value GenerationSection {
kind: core | single | category | tag | date kind: core | single | category | tag | date
} }
@@ -134,10 +151,9 @@ rule ValidateSite {
} }
rule ApplyValidation { rule ApplyValidation {
when: ApplyValidationRequested(project, report) when: ApplyValidationRequested(project_id, sections)
-- Targeted re-rendering for affected sections only -- Targeted re-rendering for affected sections only
for section in report.affected_sections: ensures: GenerateSiteRequested(plan_generation(project_id, sections))
ensures: GenerateSiteRequested(project, sections: {section})
} }
-- Day-block grouping for archives -- Day-block grouping for archives

View File

@@ -8,6 +8,14 @@ use "./media.allium" as media
use "./script.allium" as script use "./script.allium" as script
use "./template.allium" as template use "./template.allium" as template
surface MetadataMaintenanceSurface {
facing _: MaintenanceOperator
provides:
MetadataDiffRequested(project)
RebuildFromFilesystemRequested(project, entity_type)
}
value DiffField { value DiffField {
name: String name: String
db_value: String db_value: String

View File

@@ -17,6 +17,22 @@ config {
preview_port: Integer = 4123 preview_port: Integer = 4123
} }
surface PreviewControlSurface {
facing _: PreviewOperator
provides:
StartPreviewRequested(project)
StopPreviewRequested(server)
}
surface PreviewHttpSurface {
facing _: PreviewClient
provides:
PreviewRequest(path)
PreviewDraftRequest(path, post_id)
}
rule StartPreview { rule StartPreview {
when: StartPreviewRequested(project) when: StartPreviewRequested(project)
ensures: PreviewServer.created( ensures: PreviewServer.created(

View File

@@ -12,6 +12,15 @@
-- GLOBAL TEMPLATE VARIABLES -- GLOBAL TEMPLATE VARIABLES
-- ============================================================================ -- ============================================================================
surface TemplateRenderingSurface {
facing _: RenderPipeline
provides:
RenderPostPageRequested(post, language)
RenderListPageRequested(posts, pagination, archive_context)
RenderNotFoundPageRequested()
}
value RenderContext { value RenderContext {
-- Top-level variables available in all templates -- Top-level variables available in all templates
language: String -- Current language code language: String -- Current language code