The path from a folder of markdown (note: Markdown) files to a published wiki, and the one every new knowledge repository (note: Knowledge repository) follows to join an existing wiki. The integrator (note: Integrator) does the declaration (17 passages, no note) and the two settings a forge (14 passages, no note) asks for; the build pipeline and the lint do the rest. On the golden corpus (note: Golden corpus) the whole path takes under thirty minutes (note: Meeting), and the repository of the tool replays (3 passages, no note) every command (21 passages, no note) of it on each change so that the guide (13 passages, no note) never promises a step (note: Step) that fails.
Steps
- Install (3 passages, no note) the command line: the published package (23 passages, no note) with npm (7 passages, no note), the container image (5 passages, no note) with a container (12 passages, no note) engine (13 passages, no note), or a checkout (3 passages, no note) of the repository built once; all three run the same
concordancecommand. - Create the configuration repository (note: Configuration repository):
concordance init --templateswrites a commentedconcordance.yamland the note templates (4 passages, no note),validate-configconfirms the file is valid (3 passages, no note) before anything is cloned (5 passages, no note). The configuration repository holds the configuration (note: Configuration), the theme (note: Theme) and the stopwords (note: Stopword), never the content (43 passages, no note). - Declare the sources (note: Source): one entry per knowledge repository, a
gitURL cloned at depth 1 (3 passages, no note) or a local (27 passages, no note)path, a glossary (28 passages, no note) source markedglossary: trueso that its titles win when a word could mean two things, and typing rules (note: Rule) where the filing (3 passages, no note) of a repository already says what a note (note: Note) is. Credentials (4 passages, no note) stay in the git (24 passages, no note) environment of the machine (4 passages, no note) or of the pipeline (note: Pipeline); the configuration never carries a token. - Build (note: Build):
concordance buildvalidates (10 passages, no note), ingests, parses, types (note: Type), recognises (4 passages, no note), infers, checks (note: Check) and renders (24 passages, no note) in one run, prints every finding and a summary, and writes the site with the model and the log; a content anomaly is a finding (note: Finding), never a crash (3 passages, no note), and the exit code followsbuild.fail_onalone. - Open
dist/index.htmlfrom the file manager: the site (note: Site) works overfile://as behind a server, and the home page, the alphabetical index and the to-do page show what the corpus (note: Corpus) already gives before any note is rewritten (5 passages, no note). - Publish (16 passages, no note): commit (29 passages, no note) the configuration repository, add the pipeline of the forge that builds on every push and every morning and publishes
dist/on GitHub (10 passages, no note) Pages or GitLab Pages; on GitHub, set the Pages source to the workflow (9 passages, no note) once. Two builds of unchanged sources are byte-identical (note: Determinism), so a published site can be diffed against the previous one. - Let each knowledge repository check itself:
concordance lintin its merge (27 passages, no note) requests (31 passages, no note), with the SARIF log (note: Forge report) on GitHub or the JUnit report on GitLab so that every finding lands in the margin of the diff, and--sourcewith--configwhen the rules of the configuration must apply. - Read the to-do page and the findings, then improve the corpus at its own pace (4 passages, no note): a note for a word everybody uses, a link (note: Link) where a mention (note: Mention) was only recognised (37 passages, no note), a frontmatter (note: Frontmatter) key (46 passages, no note) where a relation (note: Relation) must be certain. Nothing is required before the first build, and nothing added stops working when it is removed.