cmap functions, email, architecture documentation.

This commit is contained in:
2026-08-18 03:33:10 +02:00
parent 12f1ed2764
commit 63b7ca0853
33 changed files with 3974 additions and 80 deletions
+51
View File
@@ -4,6 +4,7 @@
racket/contract
racket/path
racket-wiki
racket-wiki/architecture/import
racket-wiki/translate))
@title{racket-wiki}
@@ -146,3 +147,53 @@ labels use one translation source.
The browser calls @tt{/api/ping} every 15 seconds. Failed or timed-out requests
show an Offline indicator. A recovered connection briefly shows Online.
@section{Architecture Documentation Import}
@defmodule[racket-wiki/architecture/import]
The package includes twelve linked Dutch architecture pages below namespace
@tt{racket-wiki} and two native CMaps. The source files live below
@tt{architecture/}; importing them uses the normal page and CMap storage
procedures and therefore creates ordinary immutable versions.
@defproc[(validate-racket-wiki-architecture!) (values list? list?)] {
Reads and validates the bundled manifest, Markdown and JSON documents without
accessing wiki content. Page references, CMap embeds, item identifiers and
connector endpoints must all resolve inside the set.
}
@defproc[(import-racket-wiki-architecture!
[config any/c]
[#:author author string? "racket-wiki architecture import"]
[#:dry-run? dry-run? boolean? #f]
[#:overwrite-modified? overwrite-modified? boolean? #f])
(listof architecture-import-result?)] {
Creates missing architecture pages and CMaps and updates imported content that
has not been edited locally. Every imported document contains a source hash.
Locally modified documents are returned with status
@racket['skipped-modified] unless @racket[overwrite-modified?] is true. Equal
content remains unchanged and does not receive a needless new version.
}
@defproc[(import-racket-wiki-architecture-from-data-directory!
[data-directory path-string?]
[#:author author string? "racket-wiki architecture import"]
[#:dry-run? dry-run? boolean? #f]
[#:overwrite-modified? overwrite-modified? boolean? #f])
(listof architecture-import-result?)] {
Convenience entry point for DrRacket and small scripts. It constructs the wiki
configuration from @racket[data-directory] and performs the same validated,
locally-change-aware import.
}
@defstruct*[architecture-import-result
([kind symbol?]
[reference string?]
[status symbol?]
[message string?])]
From the package source directory, run a non-writing preview with
@tt{racket architecture/import.rkt --data ./wiki-data --dry-run}. Remove
@tt{--dry-run} to import and use @tt{--author} to select the author recorded in
page and CMap history.