TEC Wiki Project State¶
This file is the persistent handoff record for work on the new TEC Wiki at https://tec-wiki.com/.
Future TEC Wiki chats should read this file, inspect the relevant current source page, and review recent related commits before continuing work.
Repository¶
- Repository:
Eternal-City-Community/tec-wiki - Default branch:
main - Primary wiki source:
docs/ - Production site generator: Zensical 0.0.66 in MkDocs-compatibility mode (configuration remains in
mkdocs.yml) - Production site: https://tec-wiki.com/
Standing Workflow Rules¶
- When the user says a page is broken, empty, incomplete, incorrect, screwed up, needs restoring, or needs fixing, assume they want the actual wiki build updated, not merely replacement text drafted in chat.
- Inspect the current
docs/<slug>.mdfile before editing. - Use the old TEC Wiki at
eternal-city.wikidot.comas a historical/restoration source when useful. - Do not assume old Wikidot mechanics are current when there is evidence of later changes.
- Current in-game evidence, user testing, GM statements, and confirmed mechanics take precedence over old wiki information.
- Never invent TEC mechanics, ranks, prices, trainer caps, formulas, commands, directions, or effects to fill gaps.
- Clean migration damage as part of restoration:
- broken anchors
- malformed Markdown
- broken internal links
- duplicated sections
- incorrect copied commands
- Wikidot markup remnants
- empty/nearly-empty pages
- broken tables
- Preserve useful real command examples and in-game output when available.
- Internal wiki links should use root-relative format, e.g.
/page-slug/. - Use MkDocs-compatible Markdown consistent with the repository.
- Commit requested page fixes directly to
mainunless the user explicitly requests another workflow. - Report the commit SHA after changes.
- Update this file after significant repairs, confirmed mechanics, or project-wide decisions that future chats may need.
Source Priority¶
When sources disagree, use this order:
- Current user-provided in-game testing/output
- Current GM-confirmed statements
- Current game behavior documented elsewhere in the repo
- Related current TEC Wiki pages
- Old Wikidot material
- Inference only when clearly labeled and never used to invent mechanics
Confirmed Mechanics / Project Knowledge¶
Two-Handed Crushing¶
- Two-Handed Crushing uses 0.25 reputation × the rank being purchased for training cost.
- Do not use the old
30 sens × rankmodel for this skill.
Jewelry Crafting¶
Confirmed from user testing / GM clarification:
- Only skills actually used in a recipe contribute to finished quality.
- Assembly contributes only when the recipe uses assembly.
- Gem-cutting skills do not affect casting quality.
- Captuo teaches the listed jewelry skills through rank 100.
- Skill difficulties:
- Basic Jewelry — Average
- Assemble Jewelry — Average
- Cast Jewelry — Average
- Cold Work Stock — Average
- Engrave Jewelry — Difficult
- Form Wax — Average
- Hot Work Stock — Difficult
- Layout Gem — Average
- Make Mold — Average
- Set Gem — Difficult
- Rough Cut Gem — Average
- Shape Gem — Average
- Polish Gem — Average
- Self-trained SP cost per rank observed:
- Easy — 9
- Average — 12
- Difficult — 15
- Impossible — 18
Recent Repairs¶
Locksmithing¶
- File:
docs/locksmithing.md - Restored/repaired the full Locksmithing page from surviving TEC material.
- Rebuilt the trainer table and skill sections.
- Repaired broken anchors and section links.
- Corrected migrated clay-mold examples that incorrectly repeated
imprint wax with lockpick; they now use the proper clay-mold action. - Preserved useful in-game examples and command syntax.
- Commit:
e6f5957534e63007b7229d4396d42ca2f9285b00
Two-Handed Crushing¶
- File:
docs/two-handed-crushing.md - Skill table repair committed.
- Commit:
5908a8d8321f16615af315b6ea2cfdd64b68483e - Important confirmed rule: training cost is
0.25 reputation × rank purchased.
Outdoor Survival¶
- File:
docs/outdoor-survival.md - Source content was present, but the rendered page was reported as missing its content.
- Repaired migration/rendering issues conservatively:
- enabled Markdown parsing inside migrated
.skill-templateHTML blocks - removed remaining Wikidot double-brace command markup
- fixed malformed emphasis in rank-note text
- cleaned minor migration typos without changing mechanics
- Commit:
a2d6731ccecf778c9b1ee05ba965e01bcca19e62
MkDocs fenced code support¶
- Enabled the
fenced_codeMarkdown extension globally so restored pages using triple-backtick code blocks render correctly instead of showing literal backticks. - This specifically fixes the Locksmithing formatting issue reported after restoration.
- Commit:
b0c73c18135d56f1bc281bb9157aaf3f63d60e05
Pickpocketing¶
- File:
docs/pickpocketing.md - Source content was present, but the rendered page was reported as empty.
- Repaired migrated
.skill-templateHTML blocks so Markdown inside them is parsed correctly. - Normalized broken/case-sensitive section links to MkDocs-generated heading anchors.
- Did not invent missing Silent Slip / Silent Draw mechanics; those actions are listed in the trainer table but no surviving sections were found in the current source or repository search.
- Commit:
b6eb6b92526100a293fd3e1477fe02b67c30da5b
Production build / Zensical cache¶
- Cloudflare Workers Builds runs
zensical buildfor production, notmkdocs build. - Zensical is pinned at
0.0.66inrequirements.txtand reads the existingmkdocs.ymlin compatibility mode. - Pages such as Outdoor Survival and Pickpocketing had full Markdown sources but rendered as an empty site shell, indicating stale/incorrect generated assets rather than missing source.
wrangler.jsoncnow defines a custom deploy-time build command:zensical build --clean.- This forces a clean Zensical rebuild immediately before Wrangler uploads
./site, avoiding stale Zensical build state in CI. - Commit:
77823450ed5d163297260ca1614fbbea02741880
Known-good rollback: Pickpocketing and Outdoor Survival¶
- On 2026-10-01, repeated render/deploy repair attempts caused unstable behavior for
/pickpocketing/and/outdoor-survival/. - User requested both pages be restored to the last known-good repository state from roughly four hours earlier.
- Exact restore source: repository commit
3b788f91219135ef523973d93cababa2a3df8789, the parent state immediately before the later anchor-repair changes affecting these files. docs/outdoor-survival.mdrestored byte-for-byte to blobf0d7a0880c8e6b2eb12454e319342be5f07826d6.- Restore commit:
30fe754bd27cd4ec2557ffdf4f445b0c0008e9fe docs/pickpocketing.mdrestored byte-for-byte to blobe85cb0c8c157c100350e9b939bd78eb27197b54f.- Restore commit:
e2da0f673dc256a277a59124632a2186ecf944ff - Do not reapply the prior page-specific rendering/anchor edits to these two pages unless a specific root cause is verified first.
Production renderer rollback to MkDocs¶
- Investigation showed
docs/pickpocketing.mdanddocs/outdoor-survival.mdwere byte-for-byte identical to their earlier working versions. - Working skill pages use the same general migrated markup patterns, so the page source itself was not the differentiator.
- The meaningful environment change was the production renderer: earlier working builds used
mkdocs build, while later broken builds usedzensical build. wrangler.jsoncnow forcesmkdocs build --cleanimmediately before asset upload, so the deployedsite/is generated by MkDocs even if an earlier Cloudflare build step runs Zensical.- Commit:
861ee151e818e4b70d650b60caadfb2c8c0e58a5
Grouped skill trainer table styling¶
- The blank-page issue was resolved by restoring MkDocs as the final production renderer.
- After content returned, Pickpocketing and Outdoor Survival showed a separate table-formatting defect: the main trainer table rendered unstyled while ordinary tables rendered correctly.
- Root cause:
tec-skill-pages.jsassigns the classtec-skill-overview-tableto grouped trainer tables, while the base TEC table CSS targeted only.md-typeset table:not([class]). - Added an isolated CSS skin for
.md-typeset table.tec-skill-overview-tableinstead of changing page Markdown or the shared table JavaScript. - A first broad selector patch was immediately superseded because it could distort unrelated selectors.
- Correct fix commit:
96d63bdee4ff8e04ff9ac5260bf069bb368063a0
Skill description truncation: raw
- After restoring MkDocs and fixing grouped trainer table styling, Pickpocketing and Outdoor Survival still appeared to lose later skill-description content.
- Root cause identified in page Markdown: command syntax was written with raw angle-bracket placeholders such as
<object>. Under MkDocs/browser HTML parsing,<object>is a real HTML element, not a harmless placeholder, and an unclosed occurrence can absorb later page content in the DOM. - Working skill pages often use placeholders such as
<target>, which do not trigger the same built-in HTML element behavior. - Escaped command placeholders in skill headings so the literal syntax displays without becoming HTML.
- Also escaped the Pickpocketing
unpalm <object>prose command and remaining Outdoor Survival<object>placeholders. - Pickpocketing fix commit:
62db7233c06a3b2e0a96d8e5bb8a4c35641cedc3 - Outdoor Survival fix commit:
c76dc3a73ebbe51381f0e440bfa0399e3b4ae78b - The Pickpocketing source still has no surviving detailed sections for Silent Slip or Silent Draw; do not invent those mechanics.
Outdoor Survival tail rebuilt as plain Markdown¶
- User reported that live rendering still stopped after Forester Conceal, even though the repository contained Survival Weaving, Whittling, and lore sections.
- The break point aligned with the remaining legacy raw-HTML tail of the page.
- Rebuilt everything from Survival Weaving onward as plain MkDocs Markdown:
- converted legacy
<a id=...>anchors to heading attr-list IDs - converted
.skill-templateraw HTML blocks to fenced text blocks - converted collapsible
<details markdown="1">rank sections to normal visible Markdown sections/tables - preserved all existing descriptions, tables, command examples, and lore content
- Commit:
545561bd29b299af238f10700d1643e710cd94bf
Migration presentation cleanup batch¶
User-reported issues and fixes on 2026-10-01:
- Character bios: migrated bio pages had inconsistent/broken quote markup. Added
docs/javascripts/tec-content.jsto normalize/bio_*/pages into a single quote-style biography frame at runtime without rewriting hundreds of source files. - Commit:
0f8a9adfe1418f509a0fb8a280ac50eea6133143 - Skill example spacing: normalized blank source lines inside migrated
.skill-templateblocks and trimmed leading/trailing whitespace. - Commits:
bcc5af28190cbafc4741b52d32d67663ea59d618,191284a01a5ab49668d70d7caa643ac5a3d61aae - Legacy single-line breaks: enabled the Markdown
nl2brextension because many migrated map legends, related-map lists, and guide instructions preserve meaningful single newlines in source. - Commit:
53f6d03da63f4dd104d703f52456c9ba49a97c17 - H5 readability: added distinct, larger fifth-level heading styling.
- Map images: linked images may use the full article-column width instead of the prose-width cap, and linked image/map assets now open in a new tab.
- Top navigation: removed the old CSS rule that completely hid the TEC top navigation below the desktop breakpoint; compact responsive navigation remains available on narrow desktop and mobile.
- Shared styling commit:
4e59a2eaf52a613fc3275356a1a0c12b6b5d0303 - Maps index: restored concrete map links under the regional headings in
docs/maps.mdusing known current wiki map pages. - Commit:
ef3066001becbbc26727403a2c3cc37e21f05c1c - Rank Bonus Calculator: allow calculations when either basics or subskill input is present rather than suppressing combat output when subskill is empty; seeded the calculator with the classic defaults of basics 10 / subskill 1 so combat results display immediately.
- Commits:
76cf6d9ed4fade917b407c36377156e9f8464261,793e8b2f4e1c672458ec7ccb327712f44e951a76 - User also expressed a preference concern about the current
+button behavior; that interaction has not been redesigned yet. - Announcements / ListPages: the old Announcements page used a Wikidot
ListPagesmodule whose generated content was not captured by migration. Replaced the raw technical warning with a clearer restoration note, but the actual historical announcement index still needs reconstruction from archived Wikidot source. - Announcements note commit:
3cf922d0c5fb7457ca4026f95071f14bc9c900e6 - Migration audit: updated
tools/audit_migration.pyto flagArchive note:andWikidot modulemarkers so remaining dynamic-module losses are visible in future audits. - Commit:
3533db56834eda4581ee954285bbb2b0f2538ddc
Rank Bonus Calculator classic functionality restoration¶
- User confirmed Offensive and Defensive modes still rendered blank while Non-Combat worked.
- Root cause: combat stance rows were represented as arrays, but the renderer read
row.mod; only Non-Combat used an object with a validmodproperty. This producedNaN/blank combat results. - Rebuilt
docs/javascripts/tec-rank-bonus.jsaround a consistent calculator-card model while preserving the polished UI. - Restored the original Wikidot calculation behavior:
- Basic column uses raw RB for the entered Basics rank.
- Easy/Average/Difficult/Impossible subskills use
floor(Basics RB) × difficulty modifier + Subskill RB. - Combat stance modifier is applied to the calculated RB.
- Defensive mode uses the inverse stance modifiers.
- Non-combat uses 100% stance modifier.
- Restored the original
RB +/- Modfield; the modifier is applied after stance to subskill results, matching the classic calculator. - Restored
+behavior: clicking+now creates a complete independent copy of the first calculator box, including its current ranks, modifier, mode, row/column settings, and decimal precision. The temporary one-line comparison widget was removed. - Main functionality commit:
fe2d9a9ef388a3b8bd08dc178641a70a074d75af - Duplicate-card spacing/style commit:
0f54ee779872904bf95d2fc5028d0df281dbc4c2
RB calculator input parity correction¶
- User provided screenshots of the Wikidot calculator and current rebuilt calculator.
- The target Wikidot UI has only Basics Rank and Subskill Rank inputs; the previously restored third
RB +/- Modfield came from an older preserved source variant and should not be present in the rebuilt UI. - Removed the third modifier input and modifier math from the current calculator.
- Removed the default
10 / 1ranks; both inputs now start blank, matching the Wikidot calculator shown by the user. - The
+button still duplicates the complete first calculator box and its current state. - Commit:
df4908914487f0354ab1a2c6ce362307c805d4ac
Breadcrumb restoration¶
- Page breadcrumbs were missing from the migrated site.
- No custom CSS was hiding them; the Material theme's breadcrumb/path feature simply was not enabled.
- Enabled
navigation.pathinmkdocs.yml. - Commit:
5d173b61e954ce050d87270bc1ab3399122feaf6 - Material breadcrumbs follow the configured
nav:hierarchy, so pages not represented in that hierarchy may still have limited/no breadcrumb context until the nav structure is expanded. - Replaced later by front-matter breadcrumbs:
- Each page names its parent page, e.g.
parent: skills.hooks/breadcrumbs.pyworks out the chain up to Home on every build, andoverrides/partials/path.html(themecustom_dir: overrides) renders it in place of Material's nav-based path. Parent pages are links; the current page is plain text. Every chain starts at Home. - Parents were recovered from the old wiki's breadcrumbs (743 pages; Combat and Hunting Grounds listed themselves and were corrected), plus 68 set by clear evidence (bios,
codex-/scroll-books, hunting grounds, crafting skills and their guides, History articles, Aestivan pages). About 40 pages, mostly test, meta and stray pages, are left without one on purpose. - The editor has a Parent page field (searchable dropdown of titles). The build warns about a parent that doesn't exist or a loop.
forum-news("IG - @Forum") was never migrated; it was restored as a generated child-page list.
Mobile-friendly pass for other calculators¶
- Applied a responsive/mobile usability pass to the non-Rank-Bonus calculators without changing calculator formulas or mechanics.
- Training Cost Calculator
- Single-column layout on phones.
- Current/Desired Rank rows use compact two-column mobile layout.
- Inputs and modifier buttons enlarged for touch.
- NPC and SP result tables remain intact and scroll horizontally instead of overflowing/collapsing.
- Notes text enlarged slightly for phone readability.
- Commit:
55b43b4841ba243f633af665902d85415c52f49d - Money Calculator
- Mobile-safe horizontal table scrolling.
- Larger 16px numeric inputs and 44px action buttons.
- Action buttons stack full-width.
- Reduced card padding and improved heading/help readability.
- Fight It! Calculator
- Panels/results remain single-column on narrow screens.
- Selects/text inputs become full-width 44px controls with 16px text to avoid mobile zoom.
- Checkboxes enlarged.
- Calculate button becomes full-width.
- Results/cards use tighter mobile spacing and larger readable text.
- Shared Money/Fight It styling commit:
38560d6f37ceba9c267a6c3d811b4ba29b46edb6
Mobile-friendly Shops pass¶
- Treated
/shops/as an interactive calculator/search tool and made the existing UI genuinely phone-friendly without changing inventory parsing, search behavior, prices, or data. - Search field now uses 16px text and a 44px touch target; Options becomes a full-width button on phones.
- Shop search option checkboxes are larger and easier to tap.
- Location links become a two-column touch-friendly grid (one column on very narrow screens).
- Browse-mode shop cards use full width with tighter headers, readable item rows, and preserved item/price layout.
- Search-mode results no longer force a 720px horizontal table on phones; each result becomes a stacked mobile card showing item, price, shop, and location.
- Commit:
2a5f5cb227a1857e8d4cf5e5291ef3df73f7cf8c
Missing-page / red-link restoration¶
- The hardened migration had created 47 fake preservation stub pages for internal links whose source did not exist in the Wikidot backup.
- This made genuinely missing pages look like normal existing pages, unlike Wikidot where missing links appeared red and led to page creation.
- Confirmed examples included:
/dual-daggers-combat-guide//bio_mortarian-santum/- Removed all 47 auto-generated preservation stubs.
- Updated
tools/post_migration.pyso it no longer recreates fake missing-source pages. - Added
docs/assets/data/missing-pages.jsonas the manifest of currently known unresolved slugs. - Updated
docs/javascripts/tec-content.jsso links to those slugs: - render with a red/dotted missing-page style
- get a tooltip explaining the page does not exist
- route to Decap's New Wiki Page workflow at
/admin/#/collections/pages/new - Added matching CSS in
docs/stylesheets/tec.css. - Commit:
a75b09986faadb12ec09dbca9475f8d0a1fd3d8a
Obsolete map legend migration-note cleanup¶
- User identified old Wikidot map-template instructions containing
display_legendthat had survived migration and were rendering as ordinary text on some pages. - Repository search found 47 affected Markdown pages.
- Removed the obsolete instruction block from all affected pages, including both properly formed HTML comments and malformed migrated
[!-- ... --]variants. - Verified representative pages such as
docs/storm-drain-system.md,docs/franlius.md, anddocs/harbor-of-the-moons.mdno longer contain the block in source. - Cleanup commits:
f7f2911c0fab525124df983db0b871816dbd1f28e9ff076406baf736337a9fa3cca26d0c4e19086058bedf876fd2b8439e06fc1b62405e3a2445032b14bbcdef9136c1509cf6d243a492aa76a303c6a5c917e30a0bf0a5b5b81e7bbfeae9688199cc30ff828114a81db9ebe5ef3b41523d0318c5f19c73348518042deee717e8e322b09abe4c34fb724c2f62b0199a85dfee0c1c0cbc84d276b7ce9ae2a118ff90de8c65988c823c0d336dd7f855658ef78f0549f421a74d7211a410ccd4a9d2479e5c0d2b6b436c
Harbor of the Moons feature-image sizing correction¶
- User reported the top illustration on
/harbor-of-the-moons/became excessively large on desktop after the broader map-image width change. - Root cause: the generic linked-image/map styling treated all linked images as map-like content.
- Converted the Harbor artwork to an explicit
.tec-feature-image/.tec-feature-image-linktreatment. - Feature artwork is now capped at 900px wide and 68vh tall on desktop, centered, while remaining full-width/fluid on mobile.
- The actual Harbor map inside the Map section keeps the wider map behavior.
- Page commit:
c39f147ad41abbd4bd5d2a26d6dc1c6c148053e4 - CSS commit:
175d89cdb3a2797211066961648c879c9b5746be
Top navigation overlap fix¶
- User reported the TEC top navigation overlapping page content at certain desktop/mobile breakpoints and scroll positions.
- Root cause:
.tec-topnavwas independently sticky with hard-codedtop: 80pxon desktop andtop: 48pxbelow the responsive breakpoint, while Material's header changes size/position across those states. - Removed sticky positioning and breakpoint-specific top offsets from the TEC top nav.
- The shortcut bar now remains in normal document flow directly beneath the masthead, matching the old wiki behavior and preventing the closed bar from covering page content.
- Dropdown/flyout menus remain positioned overlays only while intentionally open.
- Commit:
89315e315031477a6889542edce2a37cfd78a3b7
Top navigation header-stack correction¶
- User provided a screen recording showing that after the previous overlap fix, the TEC shortcut bar scrolled away independently while Material's masthead remained sticky and changed from the site title to the current page title.
- Root cause: the TEC nav was inserted after the Material header as a separate document-flow element.
- Moved
.tec-topnavinside.md-headerso the masthead and shortcut bar form one sticky header stack. - Added dynamic measurement of the actual combined header height via
ResizeObserverand the CSS variable--tec-header-stack-height. - Mobile drawer and desktop sticky sidebar now use the measured header-stack height instead of hard-coded
68px/ rem offsets. - This should keep the top nav visible with the header while preventing it from covering content across viewport widths and Material's scroll-title transitions.
- JS commit:
8c3da86f441303f94a7e14bdbd3b8a0ef34a34a9 - CSS commit:
b0cc21e113827317703cdc69c1991f29b9980951
Search/top-nav stacking correction¶
- After moving the TEC shortcut bar inside the sticky Material header, the expanded Material search UI could render beneath the green shortcut row.
- Cause was a stacking-order conflict:
.tec-topnavhad a higher effective layer than the expanded search form/output in some responsive states. - Raised Material search/form/output above the TEC nav while leaving the nav/header layout unchanged.
- Mobile search overlay/inner/output receive a higher overlay layer as well.
- Commit:
93ace0df0954eea94f0c36d41b2b82e992d94c90
Search expansion / top-nav displacement fix¶
- Screenshot showed expanded search pushing the TEC nav far down the viewport.
- Root cause:
.tec-topnavhad been appended as the last child of.md-header; Material's expanded search UI participates in that header structure, so the nav followed it downward. - Changed insertion point so the TEC nav is placed immediately after
.md-header__inner(the normal masthead row), ahead of the expandable search UI. - Header-stack measurement now explicitly uses masthead-row height + TEC-nav height rather than the full expanded header box.
- Search output is treated as an overlay and the TEC nav is hidden while search is actively open so it cannot visually compete with the search panel.
- JS commit:
3fe7a248f9f693d8fe6123d8c6389b537c346a71 - CSS commit:
930f59ce8ba99310388cd8f74575e14abb17426c
Account page table repair and section redesign¶
- User reported one broken table on
/account/and that the major account topics blended together visually. - Broken table root cause: the Role Point Expenditure table was interrupted by the
requests-propertyanchor; the following property/pet/event rows had no Markdown table header/separator, so they rendered incorrectly. - Repaired that portion as a deliberate second table with the same five columns and a Property, Pet, and Event Requests subheading.
- Promoted the five major topics to consistent H2 sections:
- Account Subscriptions
- Role Points
- StoryPoints
- Apartments
- Perks
- Added a compact jump navigation at the top linking directly to all five topics.
- Added account-specific section styling so H2 topics have a distinct band/divider treatment, subtopics are easier to scan, and mobile spacing remains readable.
- Clarified apartment subheadings as Monlon Apartments / Rock Valley Apartments / Vetallun Apartments without changing mechanics or prices.
- Page commit:
5032cbd6a726a151621c21df92c8fc2fe21d3b39 - CSS commit:
6e051ebc362d12f21c2d7e1d3baa83fce6b969e4
Wikidot ListPages replacement¶
- Recreated the old Wikidot dynamic child-page listing behavior in MkDocs using a build hook.
- Added
hooks/listpages.pyand enabled it frommkdocs.yml. - Pages can declare a Wikidot-like parent relationship in front matter, e.g.
parent: announcements. -
A marker such as `
- 2022 Combat Revamp
- 2024 Combat Revamp
- 2025 Combat Revamp
- Franlius Rerelease
- Gmmeeting01102021
- Town Hall Meeting 03 27 2020
is replaced at build time with linked child-page titles. - Child pages are sorted by slug/page name ascending to reproduceorder="name asc", while the visible link text uses each page's title to reproduce%%title_linked%%. - Generated links use 1.2em text, matching the old[[size 120%]]intent. -docs/announcements.mdnow uses the generated-list marker instead of the migration restoration warning. - Hook commit:3168bca5fd0eb05f7416d3ad6117984223e643d1- MkDocs config commit:59267ee1bd2c7b31abc37f4837a7486800312b00- Announcements marker commit:fd0d8f37dce388d5cf5be0428267fec4c37ca414- Styling commit:4be999d174b779f65627b45395bd61b1bef81f92- Children ofannouncements(and every other parent) now come from the parents recovered for breadcrumbs, see Breadcrumb restoration. - The generated list needsmarkdown="1"` on its wrapper div; without it the list showed as raw Markdown text.General Rules two-column layout restoration¶
- User reported that
/general-rules/lost the two-column layout from the old Wikidot page. - Restored the page as a responsive two-column grid:
- left column: The Eternal City Rules and Policies
- right column: Contacting the GM Staff, Contacting an SG, Contacting an Auxilii, and Contacting ThreeSeas LLC
- Columns collapse to a single column below 62rem for tablet/mobile usability.
- Added a subtle divider and stronger section styling to the contact column.
- Removed stray
Test Textleft at the bottom of the page. - Page commit:
2b81fd5a7b7d7398dafd4d9f2577267b5c686786 - CSS commit:
4bb47246530794576b16974201020d1e30dfc773
Stats responsive two-column redesign¶
- User reported that
/stats/had been two-column on Wikidot and looked awkward as one long linear page after migration. - Restored the two-column intent with a more deliberate responsive layout rather than one giant page-wide split:
- all 13 Attribute Types are individual cards in a two-column desktop grid
- The Training Courses and Numeric Equivalents are side-by-side reference panels
- Improving Attributes, Natural Attribute Increases, Stat Skills, and Temporary Modifiers remain full-width for long-form readability
- All grids collapse to one column below 62rem for tablet/mobile.
- Existing mechanics, stat descriptions, values, training-course directions, and formulas were preserved.
- Promoted major section headings to H2 for clearer hierarchy.
- Page commit:
befe35771cf74e0d1cceb76d0b560efa6490cac2 - CSS commit:
8f35d3969193d18b0c9fd8d7b92b73f728f23737
Markdown parsing fix for responsive grid pages¶
- User screenshots showed both
/general-rules/and/stats/rendering Markdown syntax literally after their responsive grid redesigns. - Root cause: inner columns/cards had
markdown="1", but the outer grid wrappers did not. With MkDocs/Python-Markdownmd_in_html, the outer HTML container must also opt into Markdown parsing for nested Markdown content to render correctly. - Added
markdown="1"to: .tec-general-rules-grid.tec-stat-grid.tec-stats-reference-grid- General Rules fix commit:
04f5bd20d675fb8c88ac491b69d98609b7ed0073 - Stats fix commit:
6a72ddf5499b8f505635cd375afb59a2e5fa8faa
Recurring MkDocs
md_in_htmlrule¶- When introducing responsive layouts with raw HTML wrappers such as
<div>,<section>,<article>, cards, grids, or columns that contain Markdown, every containing HTML wrapper in the nesting chain must usemarkdown="1". - Adding
markdown="1"only to an inner child is not sufficient if an outer wrapper is still plain HTML. - Failure mode: headings render as literal
##/#####, lists show literal*, emphasis shows literal**, and tables/links may stop parsing. - Before committing any new HTML-based layout, verify Markdown rendering inside the deepest content block and all parent wrappers.
- Prefer plain Markdown when an HTML wrapper is unnecessary.
Table cell markers¶
Markdown tables lack Wikidot's cell formatting, so a marker at the start of a cell supplies it (
docs/javascripts/tec-table-cells.js, run before the other page enhancers on the live site and in the editor preview):Wikidot Markdown cell Meaning \|\|\|\|~ Armor \|\|\| >> \| ~ Armor \|>>joins the cell to its right (colspan)[[cell rowspan="2"]]\| ^^ \|(in the row below)^^joins the cell above (rowspan)\|\|~ Armor~ Armorheader cell \|\|= 2/\|\|> 400d= 2/> 400dcenter / right-align one cell - Whole columns use normal Markdown alignment (
:---:,---:). Header cells stay centered unless they have their own marker. - Editor-facing docs: the "Formatting rules" section of
docs/browser-editing.md, linked from the "Formatting" link in the CMS editor toolbar (docs/admin/tec-cms-format-link.js). Only markers in plain text count; a marker inside code (`~ `) is shown as written. - There is no left marker (the CMS escapes a leading
<); left is the default. - Content that itself starts with a marker needs rewording, e.g.
~5 GSPrather than~ 5 GSP. - The migration had dropped all of this (spans became empty cells,
~ = >were stripped, and some "~" meaning "approximately" were lost with them). Restored from the Wikidot source where the table still matches it. Not restored: tables restructured after migration (Account, Locksmithing); on Jewelry, Leather-working, Tailoring and Tanning skill tables only header/section rows were restored (their source alignment was inconsistent).
GitHub organization transfer¶
- Repository ownership moved from
herdias/tec-wikitoEternal-City-Community/tec-wiki. - The ChatGPT Codex Connector is installed for the
Eternal-City-Communityorganization and retains admin/write access to the repository. - Decap CMS backend configuration was updated to use
Eternal-City-Community/tec-wiki. - Future TEC Wiki work should use the organization repository as the canonical source.
Cloudflare Git integration after organization transfer¶
- Cloudflare Workers Builds was reconnected to the canonical organization repository:
Eternal-City-Community/tec-wiki. - Production branch remains
main. - The existing Worker/deployment remains
tec-wiki. - Future pushes to
mainshould trigger Cloudflare builds from the organization-owned repository.
Recent Migration/Audit Work¶
Recent repository work before this handoff file was created includes:
eb90201f77d4c664422901c7b5c6e15b6c15b304— Audit migrated pages for content loss72af4d255fbb234d313939f6a56ebade877171da— Refresh content loss audit after restorations9f5f4a6d4856d63ede46a519d362132bd1c1df8c— Restore Account property section anchor320fab1e1041314858446f3ca8d021adce5f0e6a— Audit migrated prose for content lossadbd83b393e2c6ab075f8441543e04b9543674cd— Run semantic migration content auditc44451c0c1df1b08f8ad519c55834301704a8999— Add semantic migration content audit
Useful audit files at repository root include:
CONTENT_LOSS_AUDIT.mdSEMANTIC_CONTENT_AUDIT.mdFULL_SITE_AUDIT.mdWIKI_AUDIT.mdANCHOR_REPAIR_REPORT.mdFORMAT_REPAIR_REPORT.md
New-Chat Startup Checklist¶
At the beginning of a fresh TEC Wiki chat:
- Read
docs/admin/tec-wiki-project-state.md. - Inspect recent commits relevant to the page/topic.
- Fetch the current
docs/<slug>.mdsource. - Check old Wikidot or related current pages only as needed.
- Apply the repair to the actual repository.
- Commit to
main. - Update this handoff file when the work adds durable project knowledge.