Prepare to install¶
Every installation route begins in the parent directory where you keep your repositories and needs the same supported Python release. Prepare Python and a setup virtual environmentvirtual environment there in section 3.1, then continue with the route that matches the work: adoption for an established document, bootstrap for a new machine and template project, the template-project guide for the supplied project structure, or the first-site walkthrough for an empty directory.
Section 3.1 is the shared preparation for those routes. Each route then owns its project directory, project-local environment, Prodockit installation, and verification rather than repeating that work here.
Prepare Python and its environment¶
Python must exist before it can create the environment that runs Prodockit.
Always complete this section in the directory that holds all your repositories,
for example ~/repos, ~/github, ~/gitlab, or
C:\Users\your-name\github. Do not enter an individual project yet.
The setup .venv keeps the initial tools separate from system Python and
avoids the externally-managed-environment error produced by package-managed
Python installations under PEP 668. Bootstrap uses this setup environment to
create or prepare a project. Adoption and the first-site walkthrough later
enter their project directory and create or replace that project's own
.venv; those important transitions are shown in their own steps rather than
hidden here.
Use the badges in this section as a key: Privileged
means installing system software needs administrator or sudo access;
Optional means skip a step when its software is already
available or the feature is not needed. Neither badge applies to commands
run inside your own virtual environment.
-
Install Python 3.14 Privileged Optional
Python 3.14 must be available before creating an environment. Installing it is optional if it is already present, but a new system installation requires the necessary administrator privileges. Verify the installed version even when you skip installation.
If Homebrew is not installed, use its official installer. Follow every post-install instruction it prints so that
brewis added to your shell.After Homebrew finishes installing, close Terminal completely and reopen it. The current terminal will not know about the new
brewcommand.In the reopened terminal, check that Homebrew is available:
Install and verify Python 3.14:
Install the 64-bit Python 3.14 release from the official Python website:
Select Add python.exe to PATH and Disable path length limit in the installer, then open a new PowerShell window and run:
If
pythonopens the Microsoft Store, disable itspython.exeandpython3.exeApp Installer aliases.Every check must report Python 3.14 before you continue.
-
Create the virtual environment
First choose the parent directory that will hold your Git repositories. Keeping projects under one parent gives Bootstrap a predictable place to create a new project and makes it clear that this first
.venvis a setup environment, not the environment belonging to one particular site.Create a repositories directory if this is your first one
If you have not worked with a Git repository before, create one top-level directory for all your repositories.
reposis a neutral name;gitlaborgithubcan be useful when you prefer to group projects by host. Keep using an existing repositories directory if you already have one, and replacereposin the examples with its name. Lowercase names are quicker to type. After creating the directory, type the first few characters of its name and press Tab to let the terminal complete the rest.Create or enter the repositories directory:
Next create the setup virtual environment in that directory. Python stores it in a folder named
.venvalongside, rather than inside, the individual repository folders that will be created later.Creating the environment does not activate it or change system Python.
-
Activate the environment
Activate
.venvin every new terminal before installing or running the documentation tools.The policy applies to the current account and may ask for confirmation. To leave it unchanged, use classic CMD and run
.\.venv\Scripts\activate.batinstead.The shell prompt normally gains a
(.venv)prefix. -
Verify the active environment
Verify both the version and the interpreter selected by the shell.
The version must report Python 3.14 and the executable path must be inside the parent repositories directory's
.venv. Ifpythonresolves to an alias, follow Step 5, then repeat this check; activating the environment again will not remove the alias. If a check points elsewhere without an alias, repeat the activation step. The route you follow next will say when to keep using this setup environment and when to create or activate a project-local one. -
Fix the Python alias when needed Optional
If Step 4 detects a
pythonalias that overrides.venv, remove it in the current Bash terminal.This corrects the current terminal only. Repeat Step 4 now; its version, executable and prefix should all point to the activated
.venv. If the prefix is still wrong and no alias remains, reactivate the environment and repeat Step 4.To make the fix persist for future interactive Bash logins, optionally run this command once. It appends the line to your account's
~/.bashrconly if it is not already present, preserving the file's existing content:grep -qxF 'unalias python 2>/dev/null || true' ~/.bashrc 2>/dev/null || printf '\n%s\n' 'unalias python 2>/dev/null || true' >> ~/.bashrcTo verify the
~/.bashrcchange, log out and back in, activate.venv, then repeat Step 4. If you skip the persistent change, repeat the current-terminal command in Step 5 whenever a new login restores the alias. Prodockit does not change your shell setup.
Understand the project structure¶
The installation route changes what is stored in a site's project directory. It helps to recognise the starting structure before choosing a route or reviewing changes made by Prodockit.
A clean Zensical site¶
Running zensical new . in an empty project directory creates a small,
working site. Its Markdown pages live under docs/, zensical.toml controls
the site, and the supplied GitHub workflow can publish it. The project's
virtual environment, .venv, is local working state and is not committed to
Git, so it is not shown in the tree.
- .githubGitHub repository configuration
- workflowsautomated workflows
- docs.ymlZensical's GitHub Pages workflow
- workflowsautomated workflows
- docsMarkdown source pages
- index.mdstarter home page
- markdown.mdstarter Markdown example
- zensical.tomlZensical project configuration
This is a complete Zensical starting point. Build and preview it successfully before adding Prodockit so that any earlier environment or Zensical problem is kept separate from the adoption work.
The site after adding Prodockit¶
pdk adopt --apply retains the Zensical pages and workflow, then adds the
selected Prodockit components and records their supported toolchain. It also
updates zensical.toml to enable the standard authoring extensions and load
the website and PDF stylesheets in their intended override order.
- .githuboriginal GitHub repository configuration
- workflows
- docs.ymloriginal Zensical workflow
- workflows
- docsoriginal Markdown source pages and Prodockit assets
- javascriptsProdockit and project website behaviour
- vendor
- mathjax
- LICENSEvendor licence supplied with MathJax
- tex-svg-full.jsvendor MathJax browser bundle
- mathjax
- extra.jsUSER-MANAGED website behaviour
- mathjax.jsgenerated Prodockit configuration when maths is selected
- pdk.jsmanaged Prodockit website behaviour
- vendor
- stylesheets
- extra.cssUSER-MANAGED website overrides
- pdk-pdf.cssmanaged Prodockit PDF styles
- pdk.cssmanaged Prodockit website and component styles
- print.cssUSER-MANAGED PDF-only overrides
- index.mdoriginal starter home page
- markdown.mdoriginal starter Markdown example
- javascriptsProdockit and project website behaviour
- .prodockit-components.tomloptional component choices added by Adopt
- .prodockit-toolchain.tomlsupported tool versions added by Adopt
- .python-versionsupported Python release added by Adopt
- pdf-requirements.txtPDF-only Python packages prepared on first use
- pdk-pdf.tomlPDF-only policy created or migrated by Adopt
- requirements.txtsupported Python packages added by Adopt
- zensical.tomloriginal configuration updated by Adopt
For the website, zensical.toml loads pdk.css first and extra.css last, so
your rules can override the managed defaults. PDF generation continues the
cascade with pdk-pdf.css followed by print.css. Adopt creates a missing
user-managed stylesheet, but never replaces one you have edited.
Adopt installs managed pdk.js before the empty user-managed extra.js.
When mathematical notation is selected, its generated configuration and vendor
bundle are loaded between those two files. The MathJax licence is retained
beside the vendored bundle.
These are the principal files in the clean-site route, not an exhaustive list of everything a mature project may contain. Adopt preserves existing content and project-owned configuration.
A site created from prodockit-template¶
The maintained template starts with Prodockit's publishing, authoring, and rendering structure already connected. It contains more files than a clean Zensical site because Bootstrap is preparing a complete working project rather than adding selected components to an existing one.
- .githubGitHub repository configuration
- workflowsGitHub Actions workflows
- docs.ymlGitHub Pages build and deployment
- release-redeploy.ymlrebuild after a template release
- workflowsGitHub Actions workflows
- docscontent and appearance
- assetscover, branding, and report images
- javascriptsProdockit and project website behaviour
- vendor
- mathjax
- LICENSEvendor licence supplied with MathJax
- tex-svg-full.jsvendor MathJax browser bundle
- mathjax
- extra.jsUSER-MANAGED website behaviour
- mathjax.jsgenerated Prodockit MathJax configuration
- pdk.jsmanaged Prodockit website behaviour
- vendor
- stylesheetswebsite and PDF presentation
- extra.cssUSER-MANAGED website overrides
- pdk-pdf.cssmanaged Prodockit PDF styles
- pdk.cssmanaged Prodockit website and component styles
- print.cssUSER-MANAGED PDF-only overrides
- template.csstemplate-specific website presentation
- 1-originality.mdoriginality and AI-use statement
- 2-executive-summary.mdstarter executive summary
- 3-requirements.mdrequirements section
- 4-solution-architecture.mdsolution architecture section
- 5-goverance.mdgovernance section
- 6-operations.mdoperations section
- 7-examples.mdextension examples
- acronyms.mdacronym list
- bibliography.mdgenerated bibliography page
- glossary.mdglossary
- index.mdreport cover
- references.mdformatted reference list
- overridesZensical theme customisations
- toolspinned Mermaid and MathJax Node tooling
- .gitignoregenerated and local files excluded from Git
- .gitlab-ci.ymlGitLab Pages build and deployment
- .prodockit-shared-files.tomlmanaged shared-file checksums
- .python-versionsupported project Python
- bibliography.bibexample bibliography source
- macros.pyshared template macros
- pdf-requirements.txtPDF-only Python dependencies prepared by pdk pdf
- pdk-pdf.tomlPDF-only settings and runtime policy
- README.mdproject summary and publishing badges
- references.bibexample hand-written reference source
- requirements.txtPython build dependencies
- zensical.tomlsite, navigation, and shared authoring settings
This is the useful project-facing structure rather than every file in the template repository. The template manifest is the authoritative record of which files Template Sync manages, shares with the project, leaves to the author, or excludes.
In a template site, template.css sits between pdk.css and extra.css in
the website cascade. PDF generation then adds pdk-pdf.css and finally the
user-managed print.css.
Continue with an installation route¶
The shared preparation is complete. Choose the card that matches what you are starting with; each route takes over from the parent repositories directory and explains when to enter or create the project itself.
-
Adopt prodockit
Start with an empty directory, create and test a Zensical site, then use Adoption to add the Prodockit features you select.
-
Build a template site
Let Bootstrap prepare the machine, repository, build tools, and maintained
prodockit-templateas one recoverable process. -
Build site manually
Perform and verify the machine, repository, editor, renderer, and project setup yourself instead of asking Bootstrap or Adoption to orchestrate it.