GitHub repository template for CalConnect Metanorma document repositories. Supports single-publishing (CalConnect only) and dual-publishing (CalConnect + IETF).
-
Click Use this template on GitHub to create a new repository (e.g.
cc-icalendar-series). -
Replace
XXXXXwith the assigned document number:-
sources/cc-XXXXX.adoc→sources/cc-51020.adoc -
metanorma.yml→ update the file list and collection name
-
-
For IETF dual-publishing, rename
sources/draft-ietf-calext-example-00.adocto match your IETF draft name. -
Delete any files you don’t need (IETF files if single-publishing, or vice versa).
-
Write your document in AsciiDoc under
sources/. -
Add the
metanorma-releaseGitHub topic to the repository. -
Push to
main— thegenerateworkflow builds a preview, thereleaseworkflow publishes to standards.calconnect.org.
├── .github/workflows/
│ ├── generate.yml
│ └── release.yml
├── .gitignore
├── Gemfile
├── metanorma.yml
├── metanorma.release.yml
└── sources/
├── cc-XXXXX.adoc # CalConnect document
└── sections/ # Sections├── .github/workflows/
│ ├── generate.yml
│ └── release.yml
├── .gitignore
├── Gemfile
├── metanorma.yml # Lists both .adoc files
├── metanorma.release.yml # Only routes cc-* to channels
└── sources/
├── cc-XXXXX.adoc # CalConnect document (released)
├── draft-ietf-calext-example-00.adoc # IETF internet-draft (not released)
├── sections/ # Shared sections (abstract, intro, scope, terms)
│ ├── 00-abstract.adoc
│ ├── 01-intro.adoc
│ ├── 01-scope.adoc
│ ├── 02-normative-references.adoc
│ ├── 03-terms.adoc
│ └── 99-acknowledgements.adoc
└── sections-ietf/ # IETF-specific sections (conventions, references)
├── 02-conventions.adoc
└── 99-references.adocBoth documents share sections from sections/ (abstract, intro, scope, terms).
IETF-specific content goes in sections-ietf/ (BCP 14 conventions, IETF-style references).
Set the :doctype: attribute in your .adoc header:
| Doctype | Description | Display category |
|---|---|---|
|
Normative standard |
Standards, Specifications & Reports |
|
Technical specification |
Standards, Specifications & Reports |
|
Technical report |
Standards, Specifications & Reports |
|
Implementation guide |
Guides & Advisories |
|
Advisory/recommendation |
Guides & Advisories |
|
Organizational directive |
Directives |
|
Minutes, agendas, reports |
Administrative |
|
Amendment to a standard |
Amendments & Technical Corrigenda |
|
Technical corrigendum |
Amendments & Technical Corrigenda |
= CalConnect Standard: TODO Document Title
:title: TODO Document Title
:docnumber: XXXXX
:copyright-year: 2026
:language: en
:doctype: standard
:edition: 1
:status: working-draft
:revdate: 2026-01-01
:published-date: 2026-01-01
:technical-committee: CALENDAR
:fullname: TODO Author Name
:surname: TODO
:givenname: TODO
:affiliation: TODO Organization
:mn-document-class: cc
:mn-output-extensions: xml,html,pdf,rxl
:local-cache-only:
:data-uri-image:Additional authors use _2, _3 suffixes:
:fullname_2: Second Author
:surname_2: Author
:givenname_2: Second
:affiliation_2: Another Organization= TODO Document Title
:doctype: internet-draft
:name: draft-ietf-calext-example-00
:status: standard
:ipr: trust200902
:area: Applications
:intended-series: full-standard
:revdate: 2026-01-01
:fullname: TODO Author Name
:lastname: TODO
:forename_initials: TODO
:affiliation: TODO Organization
:address: TODO Street + \
TODO City, TODO State TODO Code + \
TODO Country
:email: todo@example.com
:mn-document-class: ietf
:mn-output-extensions: xml,rfc,txt,html,rxl
:local-cache-only:
:data-uri-image:Key differences from CalConnect documents:
-
:mn-document-class: ietf— uses IETF formatting rules -
:name:— the IETF draft name (e.g.draft-ietf-calext-valarm-extensions-01) -
:ipr:,:area:,:intended-series:— IETF-specific metadata -
:mn-output-extensions:includesrfcandtxt, notpdf -
Author format uses
:lastname:/:forename_initials:instead of:surname:/:givenname: -
Author format includes
:address:and:email:fields
metanorma.release.yml controls which documents are released.
Only CalConnect documents (cc-*) are released to channels —
IETF internet-drafts are published through the IETF process, not via metanorma-release.
documents:
- pattern: "cc-*"
channels: [public/standards]For a multi-doctype repository with separate channels:
documents:
- pattern: "cc-s-*"
channels: [public/standards]
- pattern: "cc-r-*"
channels: [public/reports]
- pattern: "cc-a-*"
channels: [public/admin]Set the :status: attribute to control the publication stage:
| Status | Stage code | Description |
|---|---|---|
|
20 |
Initial working draft |
|
30 |
Committee review draft |
|
40 |
Draft standard |
|
50 |
Final draft for public review |
|
60 |
Published document |
The release workflow publishes all stages by default.
Draft stages are released as GitHub pre-releases.
The aggregator site can optionally include or exclude drafts via include_drafts in its config.
Builds the Metanorma output on every push and PR.
Uses the reusable workflow from actions-mn/.github.
bundle install
bundle exec metanorma site generate --agree-to-termsThe generated output appears in _site/.
No manual steps needed.
The aggregator site discovers repositories by the metanorma-release GitHub topic and subscribes to their release channels.
As long as your repo:
-
Belongs to the
CalConnectorganization -
Has the topic
metanorma-release -
Has a
metanorma.release.ymlwith channel patterns
…it will be automatically aggregated and published on https://standards.calconnect.org.