chore: clearing more of the spec
This commit is contained in:
@@ -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 ───────────────────────────
|
||||||
|
|||||||
@@ -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
|
||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user