Skip to content

Conversation

@nibsbin
Copy link
Contributor

@nibsbin nibsbin commented Dec 2, 2025

PR: tonguetoquill-usaf-memo 1.0.0 (update)

I am submitting

  • a new package
  • an update for a package

Package: tonguetoquill-usaf-memo
From version: 0.2.0
To version: 1.0.0

Description

This release is a major architectural rewrite and cleanup of the USAF memorandum template for Typst. The goal of v1.0.0 is to provide a modular, composable API while maintaining AFH 33-337 formatting compliance, cleaner internals, and improved maintainability.

This update is not fully backward compatible — particularly the API changed from the single official-memorandum API to a composable set of show-rules (frontmatter, mainmatter, backmatter, and indorsement). See the migration notes below.

Key Changes from 0.2.0

  • Complete API Redesign: The monolithic official-memorandum function was replaced with a composable show-rule API: frontmatter, mainmatter, backmatter, and indorsement. This offers more flexibility for custom layouts and programmatic document composition.
  • Modular Architecture: The template evolved from a few files into a structured src/ layout: lib.typ, frontmatter.typ, mainmatter.typ, backmatter.typ, indorsement.typ, primitives.typ, config.typ, and utils.typ.
  • Eliminated Global State: Removed the MAIN_MEMO global state in favor of flowing configuration through metadata and composable functions.
  • Documentation & Limitations: Added LIMITATIONS.md highlighting known deviations from AFH 33-337 and internal notes for reviewers, with code references to relevant src/ files.
  • Terminology Update: Changed references from "Separate Page Indorsements" to "New Page Indorsements" for clarity.
  • New Tagline & Attribution: Adds Less formatting. More lethality. and a tonguetoquill.com attribution in the README.

Migration Notes (Important)

If you previously used #official-memorandum from v0.2.0, update your documents as follows:

  • Replace this old import and usage:
#import "@preview/tonguetoquill-usaf-memo:0.2.0": official-memorandum, indorsement

#official-memorandum(
  subject: "Your Subject Here",
)[
Your content here.
]
  • With the new show-rule API in v1.0.0:
#import "@preview/tonguetoquill-usaf-memo:1.0.0": frontmatter, mainmatter, backmatter, indorsement

#show: frontmatter.with(
  subject: "Your Subject Here",
  memo_for: ("OFFICE/SYMBOL",),
  memo_from: ("YOUR/SYMBOL",),
)

#show: mainmatter

Your memo body content here.

#backmatter(
  signature_block: ("NAME, Rank, USAF", "Title"),
)
  • Indorsements now use #indorsement as a standalone macro with typical show-rule usage and are compatible with single-page or multi-page indorsement scenarios.

Developer Notes for Reviewers

…om commit 4a30099

git-subtree-dir: packages/preview/tonguetoquill-usaf-memo/1.0.0
git-subtree-split: 4a30099758c13cd9aee867631d88ff5bb852ec70
…om 4a30099..f7c64c8

f7c64c8 Remove files excluded by .gitignore~package
71a3a7b Update .gitignore from .gitignore~package
19d89f8 Update README with detailed font instructions and additional font options
ba5f1e8 Enable font fallback
REVERT: 4a30099 Remove files excluded by .gitignore~package
REVERT: 58f6153 Update .gitignore from .gitignore~package

git-subtree-dir: packages/preview/tonguetoquill-usaf-memo/1.0.0
git-subtree-split: f7c64c81fcab9fe2dc52a1342f1210ac6442fb0c
@saecki saecki self-assigned this Dec 3, 2025
@saecki saecki merged commit d255da4 into typst:main Dec 3, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants