arc42 - the template for effective, practical and pragmatic software architecture documentation and communication.
Initially created by Dr. Gernot Starke and Dr. Peter Hruschka (way back in 2005…), free and open source.
This repository contains the (AsciiDoc) source of the arc42 template.
It is used…
-
as the basis for generating (by the arc42-generator project) the official download formats (i.e. docx, markdown, docbook and others). To generate, THIS repo is included as submodule from the generator project. Use the gradle build contained here just for preview!
-
to maintain structure, content and help for the template
-
to keep non-asciidoc, non-generable formats (like Sparx® Enterprise-Architect® EAP).
In case you find issues within the template or its explanations, this is the repo to fix and issue pull requests :-)
-
9.0: July 2025:
-
Clarified and re-structured section 10 (Quality Requirements) to include overview (10.1) and details (10.2).
-
Unified concept-image in section 8.
-
Unified usage of revision number by adding version.properties file to every language.
-
Reworked the local build to facilitate translations
-
-
8.2: Jan 28th 2023: Thx to A. Bentele, added imagedir def to all files, for easier editing asciidoc. See #178
We intend to provide all diagrams in platform-neutral formats, mainly drawio
.
The source of these diagrams is embedded in a .png
file. To make this explicit, we use the combined extension .drawio.png
for our diagrams.
The drawio tools will recognize this and open such files in the editor instead of an image viewer.
Therefore we will gradually remove all files under ./graphics-originals
Please refer to the official download page for all downloads.
The EN and DE versions are actively maintained by the founders (G.Starke & P.Hruschka). Translations to additional languages (see below) have been provided by volunteers, but won’t be automatically updated.
The following languages are currently available:
Language | Translator | Available Since |
---|---|---|
Czech (CZ) |
jakub_rc <[email protected]> |
2022-10-12 |
Dutch (NL) |
mv <[email protected]> |
2022-05-01 |
English (EN) |
Gernot Starke, Peter Hruschka (founders) |
2005 |
Spanish (ES) |
Isidoro ([email protected]) |
2017-09-19 |
French (FR) |
Damien Lucas ([email protected]) |
2023-06-05 |
German (DE) |
Gernot Starke, Peter Hruschka (founders) |
2005 |
Italian (IT) |
Mario Giustiniani ([email protected]) |
2021-04-04 |
Dutch (NL) |
Maarten Verburg ([email protected]) |
2022-05-01 |
Portuguese (PT) |
Guilherme Weizenmann ([email protected]) |
2024-09-10 |
Russian (RU) |
Various contributors, <[email protected]>, [email protected] |
2018-11-14 |
Ukrainian (UKR) |
Ivan Bulyk, Larysa Visengeriyeva ([email protected]) |
2024-11-10 |
In case you want to build the HTML or PDF version of the template on your local, just checkout this repo and call
$> gradle
on the command line.
To select another language set the Gradle build property languages
in the file gradle.properties
to one of the provided languages (e.g. DE, EN, ES, IT, NL etc).
link:gradle.properties[role=include]
The build process assumes the following directory structure:
<root>/
├── DE/ // German language files
│ └── asciidoc/ // AsciiDoc source files
│ ├── arc42-template.adoc // Main document for German
│ └── src/ // Included files
│ └── version.properties // version information for German
│
├── EN/ // English language files
│ └── asciidoc/ // AsciiDoc source files
│ ├── arc42-template.adoc // Main document for English
│ └── src/ // Included files
│ └── version.properties // version information for English
│
├── images/ // Shared images for all languages
│ └── *.png, *.jpg, etc. // Image files
│
└── build/ // Generated output
├── DE/ // German output
│ ├── html/ // HTML output
│ └── pdf/ // PDF output
│
└── EN/ // English output
├── html/ // HTML output
└── pdf/ // PDF output
├── <LC>/ // language files for language <LC>
│ └── asciidoc/ // AsciiDoc source files
│ ├── arc42-template.adoc // Main document for <LC>
│ └── src/ // Included files
│ └── version.properties // version information for <LC>
Language configuration is done in the gradle.properties
file:
# Configure languages to be built (comma-separated list)
languages=DE
The project name is set to 'arc42-template' in the settings.gradle file.
You can add multiple languages by separating them with commas:
languages=DE,EN,FR
./gradlew asciidoctorHtmlDE
Replace DE
with the desired language code.
Generated documentation will be available in the build directory:
-
HTML:
build/<LANGUAGE>/html/
-
PDF:
build/<LANGUAGE>/pdf/
For example, German (DE) documentation would be in:
- build/DE/html/arc42-template.html
- build/DE/pdf/arc42-template.pdf
-
Add the language code to the
languages
property ingradle.properties
-
Create the necessary AsciiDoc source files for the new language
-
Run the build
-
see the extensive documentation website
-
see the overview