11# FEBio-Documentation
22
33A MkDocs site collecting FEBio's manuals into one searchable site (Material for MkDocs theme, indigo
4- palette, ` pymdownx.arithmatex ` + MathJax for equations, footnote-based citations). The site has three
5- tabs, each a separately generated manual :
4+ palette, ` pymdownx.arithmatex ` + MathJax for equations, footnote-based citations). The site has four
5+ tabs:
66
77- ** Theory** — the FEBio Theory Manual. Started as a single-chapter pilot (Chapter 2, Continuum
88 Mechanics); now covers the complete manual — Chapters 1 through 8 plus Appendix A (Tensor Calculus).
@@ -13,6 +13,11 @@ tabs, each a separately generated manual:
1313- ** Features** — the FEBio Feature Manual, absorbed from the standalone
1414 [ ` febio-feature-manual ` ] ( https://github.com/febiosoftware/febio-feature-manual ) repository. 660 feature
1515 pages across 32 categories, 7 module pages, and the plot/log output-variable tables.
16+ - ** Febcode** — the FEBio input-file-format (` .feb ` ) reference, a single hand-authored page that used to
17+ be buried at the bottom of the Feature Manual's own nav. Split out into its own top-level tab per
18+ [ Steve Maas's request] ( https://github.com/febiosoftware/FEBio/discussions/130#discussioncomment-18179757 ) ,
19+ since it's a distinct kind of reference (input file syntax, not feature-by-feature parameter docs) that
20+ deserved to be easy to find from the site's tab bar.
1621
1722The two LyX manuals share one generic, stdlib-only converter (` tools/lyx2md.py ` ). The Feature Manual has
1823no LyX source — it is generated from FEBio's exported feature database by ` tools/features2md.py ` . Both
@@ -45,7 +50,7 @@ tools/features2md.py the Feature Manual generator (port of febio-feat
4550build.py runs the right converter per manual (see its MANUALS list), generates mkdocs.yml
4651docs/ generated Markdown SOURCE for mkdocs -- this is mkdocs's input, not the
4752 deployed site; see "Deployment" below
48- index.md site root landing page (not manual-specific; links to all three tabs)
53+ index.md site root landing page (not manual-specific; links to all four tabs)
4954 theory/index.md Theory Manual Preface (hand-authored)
5055 theory/chapter<N>/*.md Theory Manual generated pages
5156 studio/index.md Studio Manual Preface (hand-authored)
@@ -105,13 +110,17 @@ the entry's `"kind"`:
105110 per converted chapter, expanding to that chapter's sections.
106111- ` "features" ` (Features) → ` tools/features2md.py ` . Its sidecar records a freely nested nav tree, which
107112 ` build.py ` 's ` write_nav() ` emits recursively; the nav becomes a Preface entry followed by Modules,
108- Features (subdivided by category), Output, and Febcode .
113+ Features (subdivided by category), and Output .
109114
110115` "kind" ` also gates the figure-fetching step: only ` "lyx" ` manuals fetch missing figures from upstream,
111116since the Feature Manual's figures are vendored in ` docs/features/features/figs/ ` .
112117
113118Navigation uses ` navigation.tabs ` , so each manual is exactly one top-level nav key rendered as a tab
114- ("Theory", "Studio", "Features").
119+ ("Theory", "Studio", "Features"). Febcode (` docs/features/febcode.md ` ) is the one exception: it's a page
120+ that lives under the Features manual's ` docs_root ` , but ` build.py ` writes it as its own top-level nav key
121+ — a fourth tab — right after the ` MANUALS ` loop, rather than letting ` tools/features2md.py ` nest it inside
122+ the Features tab as it used to. ` tools/features2md.py ` 's nav tree deliberately omits it for this reason;
123+ see the comments at both call sites if this needs to change again.
115124
116125## Deployment
117126
0 commit comments