Skip to content

arc42/arc42-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

arc42 Template ("Golden Master")

https://vshymanskyy.github.io/StandWithUkraine

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 :-)

Revisions

  • 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

Diagrams

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

Downloads

Please refer to the official download page for all downloads.

Languages

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

Build a Local Version

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]

Directory Structure

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>

Requirements

  • Java 11 or newer

  • Gradle 8.0 or newer (or use the included Gradle wrapper)

Configuration

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

Clean the build directory

./gradlew clean

Build all formats for all configured languages

./gradlew

or

./gradlew asciidoctorAll

Build only HTML for all configured languages

./gradlew asciidoctorHtmlAll

Build only PDF for all configured languages

./gradlew asciidoctorPdfAll

Build specific language in HTML format

./gradlew asciidoctorHtmlDE

Replace DE with the desired language code.

Build specific language in PDF format

./gradlew asciidoctorPdfDE

Replace DE with the desired language code.

Output

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

Adding a New Language

  1. Add the language code to the languages property in gradle.properties

  2. Create the necessary AsciiDoc source files for the new language

  3. Run the build

Questions on using arc42?

Suggestions welcome

Open an issue here!

About

arc42 - the template for software architecture documentation and communication

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors 41