MPM Document Standard 1.3, mpmdoc build engine, templates for TN, INS, SOP, BOM, SVY, TAP, DWG, TSB, PRO, SOW and WO (Chinese editions for TN and DWG), glossary, MPM fonts and logos, and the mpm-technical-documents plugin 1.3.0. Worked examples ship in the kit zip on Drive only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NWatTMmqmGatgHjDZvWs5b
92 lines
4.2 KiB
Python
92 lines
4.2 KiB
Python
"""MPM brand tokens — the single source for colours, fonts and the document-type
|
|
and customer-code registries. Figures (figs.py) import colours from here so a
|
|
palette change lands everywhere at once.
|
|
|
|
See MPM_Document_Standard.md §3 (Numbering) and §6 (Visual system).
|
|
Fonts and logos are NOT stored here — they live in DOCUMENTATION PROJECT/_ASSETS/mpm/.
|
|
"""
|
|
from pathlib import Path
|
|
|
|
|
|
# ---- shared assets (DOCUMENTATION PROJECT/_ASSETS/mpm) ----------------------
|
|
def _find_assets():
|
|
for p in Path(__file__).resolve().parents:
|
|
if (p / "_ASSETS" / "mpm").is_dir():
|
|
return p / "_ASSETS" / "mpm"
|
|
raise FileNotFoundError("Could not find _ASSETS/mpm above _STANDARDS — see _ASSETS/README.md")
|
|
|
|
|
|
ASSETS = _find_assets()
|
|
FONTS_CSS = ASSETS / "fonts" / "fonts_embed.css" # generated by _ASSETS/mpm/fonts/make_embed.py
|
|
LOGO_HEADER = ASSETS / "logos" / "png" / "Logo-Gold-Black.png" # gold icon + dark text, on white
|
|
LOGO_ON_DARK = ASSETS / "logos" / "png" / "Logo-Gold-White.png" # dark title blocks / banners
|
|
LOGO_MONO = ASSETS / "logos" / "png" / "Logo-Black-Text.png" # single-colour black print
|
|
TAGLINE = "Born to Innovate. Built to Last."
|
|
|
|
# ---- palette (official MPM colour system; see _ASSETS/README.md) -----------
|
|
INK = "#232022" # Dark Shade · text, dark callouts, primary strokes
|
|
GOLD = "#DCBB4F" # Middle Gold · brand accent: rules, step numbers, header underline
|
|
KICK = "#998643" # Dark Gold · kicker text, labels, FIG/TABLE tags (gold for text on light backgrounds)
|
|
MUTE = "#849698" # Light Accent · secondary text, ledes, captions, footer
|
|
CREAM = "#F5F1EC" # meta cells, notes, calc blocks
|
|
LINE = "#E6E0D8" # table rules, figure frames
|
|
KEYBG = "#FBF6E6" # highlighted ("key") table row / KPI tile
|
|
RED = "#A42D20" # warnings, failing values, minimum/limit lines
|
|
REDBG = "#F7E9E7"
|
|
GRN = "#3F6B3A" # PASS, passing values
|
|
GRNBG = "#EAF1E6"
|
|
BLU = "#2F5A8A" # data-series only (e.g. blue channel); never for UI chrome
|
|
GRY = "#B8B1A8" # de-emphasised data series
|
|
FOOT = MUTE # running footer text (Light Accent)
|
|
|
|
# ---- type ----------------------------------------------------------------
|
|
FONT_HEAD = "Montserrat" # headings, kickers, labels, captions
|
|
FONT_BODY = "Open Sans" # body copy
|
|
FONT_MONO = "JetBrains Mono" # numbers, dimensions, part numbers, calcs
|
|
|
|
# ---- document types (TYPE field of TYPE-CUST-SUBJ-NN) ----------------------
|
|
# code: (header label, kicker label, default classification)
|
|
TYPES = {
|
|
"INS": ("Installation Guide", "Installation guide", "customer"),
|
|
"SOP": ("Standard Operating Procedure", "Procedure", "internal"),
|
|
"TN": ("Technical Note", "Technical note", "customer"),
|
|
"BOM": ("Bill of Materials", "Bill of materials", "internal"),
|
|
"SVY": ("Site Survey", "Site survey", "customer"),
|
|
"TAP": ("Technical Action Plan", "Technical action plan", "confidential"),
|
|
"DWG": ("Drawing", "Drawing", "customer"),
|
|
"TSB": ("Technical Service Bulletin", "Service bulletin", "customer"), # internal edition: classification="internal"
|
|
"PRO": ("Proposal", "Proposal", "confidential"),
|
|
"SOW": ("Statement of Work", "Statement of work", "customer"),
|
|
"WO": ("Field Work Order", "Work order", "internal"),
|
|
}
|
|
|
|
# ---- customer / department codes (CUST field) -------------------------------
|
|
# Add new codes here AND in registry.md before issuing a number.
|
|
CUSTOMERS = {
|
|
"LT": "LakeTran",
|
|
"NSH": "Nashville MCC (WeGo)",
|
|
"CMT": "CommTran",
|
|
"OMT": "Omnitrans",
|
|
"SOR": "SORTA / Metro",
|
|
"COTA": "COTA",
|
|
"GIL": "GILLIG",
|
|
# internal departments / company-wide
|
|
"MPM": "Message Point Media", # company-wide / product documents
|
|
"IT": "MPM IT",
|
|
"ENG": "MPM Engineering",
|
|
"OPS": "MPM Field Operations",
|
|
"QA": "MPM Quality",
|
|
}
|
|
|
|
# provider block for PRO / SOW / WO parties
|
|
PROVIDER = {"name": "Message Point Media of Alabama, Inc", "contact": "Jason Stedwell, Director of Technical Services",
|
|
"address": "Irondale, AL", "web": "messagepoint.tv"}
|
|
|
|
CLASSIFICATIONS = {
|
|
# key: footer suffix shown after the context ("" = no marking)
|
|
"public": "",
|
|
"customer": "",
|
|
"internal": "INTERNAL USE",
|
|
"confidential": "CONFIDENTIAL",
|
|
}
|