updated doc forge docs
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2026-03-07 16:24:14 +05:30
parent 91baa41bee
commit 8701bf92ac
26 changed files with 7831 additions and 8208 deletions

View File

@@ -77,7 +77,9 @@
<header class="md-header" data-md-component="header">
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="/." title="docforge" class="md-header__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -142,12 +144,19 @@
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
@@ -173,134 +182,6 @@
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="/." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="/loaders/" class="md-tabs__link">
Loaders
</a>
</li>
<li class="md-tabs__item">
<a href="/models/" class="md-tabs__link">
Models
</a>
</li>
<li class="md-tabs__item">
<a href="/nav/" class="md-tabs__link">
Navigation
</a>
</li>
<li class="md-tabs__item">
<a href="/renderers/" class="md-tabs__link">
Renderers
</a>
</li>
<li class="md-tabs__item">
<a href="/cli/" class="md-tabs__link">
CLI
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
@@ -314,10 +195,8 @@
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="/." title="docforge" class="md-nav__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -360,13 +239,23 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -375,8 +264,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="/loaders/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -385,8 +275,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
@@ -396,27 +292,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="/loaders/" class="md-nav__link">
<span class="md-ellipsis">
Loaders
</span>
</a>
</li>
@@ -456,13 +331,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -471,8 +360,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="/models/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -481,8 +371,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
@@ -492,27 +388,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="/models/" class="md-nav__link">
<span class="md-ellipsis">
Models
</span>
</a>
</li>
@@ -598,13 +473,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -613,8 +502,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="/nav/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -623,8 +513,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
@@ -634,27 +530,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="/nav/" class="md-nav__link">
<span class="md-ellipsis">
Nav
</span>
</a>
</li>
@@ -740,13 +615,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -755,8 +644,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="/renderers/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -765,8 +655,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
@@ -776,27 +672,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="/renderers/" class="md-nav__link">
<span class="md-ellipsis">
Renderers
</span>
</a>
</li>
@@ -882,13 +757,29 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -897,8 +788,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="/cli/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -907,8 +799,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
@@ -918,27 +816,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="/cli/" class="md-nav__link">
<span class="md-ellipsis">
Cli
</span>
</a>
</li>
@@ -1073,6 +950,8 @@
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
@@ -1110,7 +989,7 @@
<script id="__config" type="application/json">{"base": "/", "features": ["navigation.tabs", "navigation.expand", "navigation.top", "navigation.instant", "content.code.copy", "content.code.annotate"], "search": "/assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script id="__config" type="application/json">{"base": "/", "features": ["navigation.sections", "navigation.expand", "navigation.top", "navigation.instant", "navigation.tracking", "navigation.indexes", "content.code.copy", "content.code.annotate", "content.tabs.link", "content.action.edit", "search.highlight", "search.share", "search.suggest"], "search": "/assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="/assets/javascripts/bundle.f55a23d4.min.js"></script>

View File

@@ -86,7 +86,9 @@
<header class="md-header" data-md-component="header">
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="docforge" class="md-header__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -151,12 +153,19 @@
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
@@ -182,136 +191,6 @@
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../loaders/" class="md-tabs__link">
Loaders
</a>
</li>
<li class="md-tabs__item">
<a href="../../models/" class="md-tabs__link">
Models
</a>
</li>
<li class="md-tabs__item">
<a href="../../nav/" class="md-tabs__link">
Navigation
</a>
</li>
<li class="md-tabs__item">
<a href="../../renderers/" class="md-tabs__link">
Renderers
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../" class="md-tabs__link">
CLI
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
@@ -325,10 +204,8 @@
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="docforge" class="md-nav__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -371,13 +248,23 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -386,8 +273,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../loaders/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -396,8 +284,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
@@ -407,27 +301,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../loaders/" class="md-nav__link">
<span class="md-ellipsis">
Loaders
</span>
</a>
</li>
@@ -467,13 +340,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -482,8 +369,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../models/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -492,8 +380,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
@@ -503,27 +397,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../models/" class="md-nav__link">
<span class="md-ellipsis">
Models
</span>
</a>
</li>
@@ -609,13 +482,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -624,8 +511,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../nav/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -634,8 +522,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
@@ -645,27 +539,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../nav/" class="md-nav__link">
<span class="md-ellipsis">
Nav
</span>
</a>
</li>
@@ -751,13 +624,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -766,8 +653,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../renderers/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -776,8 +664,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
@@ -787,27 +681,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../renderers/" class="md-nav__link">
<span class="md-ellipsis">
Renderers
</span>
</a>
</li>
@@ -895,13 +768,26 @@
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
@@ -911,8 +797,9 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" checked>
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="">
<div class="md-nav__link md-nav__container">
<a href="../" class="md-nav__link ">
<span class="md-ellipsis">
@@ -921,8 +808,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_6">
@@ -932,27 +825,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../" class="md-nav__link">
<span class="md-ellipsis">
Cli
</span>
</a>
</li>
@@ -1044,6 +916,25 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.cli.commands-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#docforge.cli.commands-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.cli.commands.build" class="md-nav__link">
<span class="md-ellipsis">
build
@@ -1073,6 +964,11 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1174,6 +1070,25 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.cli.commands-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#docforge.cli.commands-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.cli.commands.build" class="md-nav__link">
<span class="md-ellipsis">
build
@@ -1203,6 +1118,11 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1229,7 +1149,7 @@
<h2 id="docforge.cli.commands" class="doc doc-heading">
<span class="doc doc-object-name doc-module-name">docforge.cli.commands</span>
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">docforge.cli.commands</span>
</h2>
@@ -1245,27 +1165,34 @@
<h3 id="docforge.cli.commands-classes">Classes</h3>
<h3 id="docforge.cli.commands-functions">Functions</h3>
<div class="doc doc-object doc-function">
<h3 id="docforge.cli.commands.build" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">build</span>
<h4 id="docforge.cli.commands.build" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">build</span>
</h3>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">build</span><span class="p">(</span><span class="n">mcp</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span> <span class="n">mkdocs</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span> <span class="n">module_is_source</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span> <span class="n">module</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">project_name</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">site_name</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">docs_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">nav_file</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">template</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Path</span><span class="p">],</span> <span class="n">mkdocs_yml</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">out_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</code></pre></div>
</h4>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">build</span><span class="p">(</span><span class="n">mcp</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span> <span class="n">mkdocs</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span> <span class="n">module_is_source</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span> <span class="n">module</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">project_name</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">site_name</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">docs_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">nav_file</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">template</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Path</span><span class="p">],</span> <span class="n">mkdocs_yml</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">out_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Build documentation (MkDocs site or MCP resources).</p>
<p>This command orchestrates the full build process:
1. Introspects the code (Griffe)
2. Renders sources (MkDocs Markdown or MCP JSON)
3. (MkDocs only) Generates config and runs the final site build.</p>
<p>Build documentation artifacts.</p>
<p>This command performs the full documentation build pipeline:</p>
<ol>
<li>Introspects the Python project using Griffe</li>
<li>Generates renderer-specific documentation sources</li>
<li>Optionally builds the final documentation output</li>
</ol>
<p>Depending on the selected options, the build can target:</p>
<ul>
<li>MkDocs static documentation sites</li>
<li>MCP structured documentation resources</li>
</ul>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1286,7 +1213,7 @@
</td>
<td>
<div class="doc-md-description">
<p>Use the MCP documentation builder.</p>
<p>Enable MCP documentation generation.</p>
</div>
</td>
<td>
@@ -1300,7 +1227,7 @@
</td>
<td>
<div class="doc-md-description">
<p>Use the MkDocs documentation builder.</p>
<p>Enable MkDocs documentation generation.</p>
</div>
</td>
<td>
@@ -1314,7 +1241,8 @@
</td>
<td>
<div class="doc-md-description">
<p>Module is the source folder and to be treated as the root folder.</p>
<p>Treat the specified module directory as the
project root.</p>
</div>
</td>
<td>
@@ -1328,7 +1256,7 @@
</td>
<td>
<div class="doc-md-description">
<p>The dotted path of the module to the document.</p>
<p>Python module import path to document.</p>
</div>
</td>
<td>
@@ -1356,7 +1284,7 @@
</td>
<td>
<div class="doc-md-description">
<p>(MkDocs) The site display name. Defaults to module name.</p>
<p>Display name for the MkDocs site.</p>
</div>
</td>
<td>
@@ -1370,7 +1298,8 @@
</td>
<td>
<div class="doc-md-description">
<p>(MkDocs) Target directory for Markdown sources.</p>
<p>Directory where Markdown documentation sources
will be generated.</p>
</div>
</td>
<td>
@@ -1384,7 +1313,7 @@
</td>
<td>
<div class="doc-md-description">
<p>(MkDocs) Path to the docforge.nav.yml specification.</p>
<p>Path to the navigation specification file.</p>
</div>
</td>
<td>
@@ -1398,7 +1327,7 @@
</td>
<td>
<div class="doc-md-description">
<p>(MkDocs) Optional custom mkdocs.yml template.</p>
<p>Optional custom MkDocs configuration template.</p>
</div>
</td>
<td>
@@ -1412,7 +1341,7 @@
</td>
<td>
<div class="doc-md-description">
<p>(MkDocs) Target path for the generated mkdocs.yml.</p>
<p>Output path for the generated MkDocs configuration.</p>
</div>
</td>
<td>
@@ -1426,7 +1355,7 @@
</td>
<td>
<div class="doc-md-description">
<p>(MCP) Target directory for MCP JSON resources.</p>
<p>Output directory for generated MCP resources.</p>
</div>
</td>
<td>
@@ -1436,6 +1365,29 @@
</tbody>
</table>
<p><span class="doc-section-title">Raises:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code><span title="click.UsageError">UsageError</span></code>
</td>
<td>
<div class="doc-md-description">
<p>If required options are missing or conflicting.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
@@ -1443,17 +1395,22 @@
<div class="doc doc-object doc-function">
<h3 id="docforge.cli.commands.serve" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">serve</span>
<h4 id="docforge.cli.commands.serve" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">serve</span>
</h3>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">serve</span><span class="p">(</span><span class="n">mcp</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span> <span class="n">mkdocs</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span> <span class="n">module</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">mkdocs_yml</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">out_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</code></pre></div>
</h4>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">serve</span><span class="p">(</span><span class="n">mcp</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span> <span class="n">mkdocs</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span> <span class="n">module</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">mkdocs_yml</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">out_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Serve documentation (MkDocs or MCP).</p>
<p>Serve generated documentation locally.</p>
<p>Depending on the selected mode, this command starts either:</p>
<ul>
<li>A MkDocs development server for browsing documentation</li>
<li>An MCP server exposing structured documentation resources</li>
</ul>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1474,7 +1431,7 @@
</td>
<td>
<div class="doc-md-description">
<p>Serve MCP resources via an MCP server.</p>
<p>Serve documentation using the MCP server.</p>
</div>
</td>
<td>
@@ -1488,7 +1445,7 @@
</td>
<td>
<div class="doc-md-description">
<p>Serve the MkDocs site using the built-in development server.</p>
<p>Serve the MkDocs development site.</p>
</div>
</td>
<td>
@@ -1502,7 +1459,7 @@
</td>
<td>
<div class="doc-md-description">
<p>The dotted path of the module to serve.</p>
<p>Python module import path to serve via MCP.</p>
</div>
</td>
<td>
@@ -1516,7 +1473,7 @@
</td>
<td>
<div class="doc-md-description">
<p>(MkDocs) Path to the mkdocs.yml configuration.</p>
<p>Path to the MkDocs configuration file.</p>
</div>
</td>
<td>
@@ -1530,7 +1487,7 @@
</td>
<td>
<div class="doc-md-description">
<p>(MCP) Path to the mcp_docs/ directory.</p>
<p>Root directory containing MCP documentation resources.</p>
</div>
</td>
<td>
@@ -1540,6 +1497,29 @@
</tbody>
</table>
<p><span class="doc-section-title">Raises:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code><span title="click.UsageError">UsageError</span></code>
</td>
<td>
<div class="doc-md-description">
<p>If invalid or conflicting options are provided.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
@@ -1547,17 +1527,20 @@
<div class="doc doc-object doc-function">
<h3 id="docforge.cli.commands.tree" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">tree</span>
<h4 id="docforge.cli.commands.tree" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">tree</span>
</h3>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">tree</span><span class="p">(</span><span class="n">module</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">project_name</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</code></pre></div>
</h4>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">tree</span><span class="p">(</span><span class="n">module</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">project_name</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Visualize the project structure in the terminal.</p>
<p>Display the documentation object tree for a module.</p>
<p>This command introspects the specified module and prints a
hierarchical representation of the discovered documentation
objects, including modules, classes, functions, and members.</p>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1578,7 +1561,7 @@
</td>
<td>
<div class="doc-md-description">
<p>The module import path to recursively introspect.</p>
<p>Python module import path to introspect.</p>
</div>
</td>
<td>
@@ -1592,7 +1575,7 @@
</td>
<td>
<div class="doc-md-description">
<p>Optional override for the project name shown at the root.</p>
<p>Optional name to display as the project root.</p>
</div>
</td>
<td>
@@ -1630,6 +1613,8 @@
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
@@ -1667,7 +1652,7 @@
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.tabs", "navigation.expand", "navigation.top", "navigation.instant", "content.code.copy", "content.code.annotate"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.sections", "navigation.expand", "navigation.top", "navigation.instant", "navigation.tracking", "navigation.indexes", "content.code.copy", "content.code.annotate", "content.tabs.link", "content.action.edit", "search.highlight", "search.share", "search.suggest"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../../assets/javascripts/bundle.f55a23d4.min.js"></script>

View File

@@ -86,7 +86,9 @@
<header class="md-header" data-md-component="header">
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href=".." title="docforge" class="md-header__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -151,12 +153,19 @@
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
@@ -182,136 +191,6 @@
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href=".." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../loaders/" class="md-tabs__link">
Loaders
</a>
</li>
<li class="md-tabs__item">
<a href="../models/" class="md-tabs__link">
Models
</a>
</li>
<li class="md-tabs__item">
<a href="../nav/" class="md-tabs__link">
Navigation
</a>
</li>
<li class="md-tabs__item">
<a href="../renderers/" class="md-tabs__link">
Renderers
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="./" class="md-tabs__link">
CLI
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
@@ -325,10 +204,8 @@
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href=".." title="docforge" class="md-nav__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -371,13 +248,23 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -386,8 +273,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../loaders/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -396,8 +284,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
@@ -407,27 +301,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../loaders/" class="md-nav__link">
<span class="md-ellipsis">
Loaders
</span>
</a>
</li>
@@ -467,13 +340,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -482,8 +369,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../models/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -492,8 +380,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
@@ -503,27 +397,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../models/" class="md-nav__link">
<span class="md-ellipsis">
Models
</span>
</a>
</li>
@@ -609,13 +482,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -624,8 +511,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../nav/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -634,8 +522,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
@@ -645,27 +539,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../nav/" class="md-nav__link">
<span class="md-ellipsis">
Nav
</span>
</a>
</li>
@@ -751,13 +624,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -766,8 +653,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../renderers/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -776,8 +664,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
@@ -787,27 +681,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../renderers/" class="md-nav__link">
<span class="md-ellipsis">
Renderers
</span>
</a>
</li>
@@ -895,13 +768,26 @@
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
@@ -911,8 +797,9 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" checked>
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="">
<div class="md-nav__link md-nav__container">
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
@@ -921,8 +808,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link md-nav__link--active" for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_6">
@@ -932,108 +825,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
Cli
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Cli
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#docforge.cli" class="md-nav__link">
<span class="md-ellipsis">
cli
</span>
</a>
<nav class="md-nav" aria-label="cli">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.cli--cli-layer" class="md-nav__link">
<span class="md-ellipsis">
CLI Layer
</span>
</a>
<nav class="md-nav" aria-label="CLI Layer">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.cli--available-commands" class="md-nav__link">
<span class="md-ellipsis">
Available Commands
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
@@ -1171,27 +962,12 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.cli--cli-layer" class="md-nav__link">
<a href="#docforge.cli--typical-usage" class="md-nav__link">
<span class="md-ellipsis">
CLI Layer
Typical usage
</span>
</a>
<nav class="md-nav" aria-label="CLI Layer">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.cli--available-commands" class="md-nav__link">
<span class="md-ellipsis">
Available Commands
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1223,22 +999,33 @@
<h2 id="docforge.cli" class="doc doc-heading">
<span class="doc doc-object-name doc-module-name">docforge.cli</span>
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">docforge.cli</span>
</h2>
<div class="doc doc-contents first">
<h3 id="docforge.cli--cli-layer">CLI Layer</h3>
<p>The <code>docforge.cli</code> package provides the command-line interface for interacting
with doc-forge.</p>
<h4 id="docforge.cli--available-commands">Available Commands</h4>
<ul>
<li><strong>build</strong>: Build documentation (MkDocs site or MCP resources).</li>
<li><strong>serve</strong>: Serve documentation (MkDocs or MCP).</li>
<li><strong>tree</strong>: Visualize the introspected project structure.</li>
</ul>
<p>Command line interface entry point for doc-forge.</p>
<p>This module exposes the primary CLI entry function used by the
<code>doc-forge</code> command. The actual command implementation resides in
<code>docforge.cli.main</code>, while this module provides a stable import path
for external tools and the package entry point configuration.</p>
<p>The CLI is responsible for orchestrating documentation workflows such as
generating renderer sources, building documentation sites, exporting
machine-readable documentation bundles, and starting development or MCP
servers.</p>
<hr />
<h4 id="docforge.cli--typical-usage">Typical usage</h4>
<p>The CLI is normally invoked through the installed command:</p>
<div class="language-text highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><code>doc-forge &lt;command&gt; [options]
</code></pre></div></td></tr></table></div>
<p>Programmatic invocation is also possible:</p>
<div class="language-text highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><code>from docforge.cli import main
main()
</code></pre></div></td></tr></table></div>
<hr />
@@ -1276,6 +1063,8 @@ with doc-forge.</p>
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
@@ -1313,7 +1102,7 @@ with doc-forge.</p>
<script id="__config" type="application/json">{"base": "..", "features": ["navigation.tabs", "navigation.expand", "navigation.top", "navigation.instant", "content.code.copy", "content.code.annotate"], "search": "../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script id="__config" type="application/json">{"base": "..", "features": ["navigation.sections", "navigation.expand", "navigation.top", "navigation.instant", "navigation.tracking", "navigation.indexes", "content.code.copy", "content.code.annotate", "content.tabs.link", "content.action.edit", "search.highlight", "search.share", "search.suggest"], "search": "../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../assets/javascripts/bundle.f55a23d4.min.js"></script>

View File

@@ -86,7 +86,9 @@
<header class="md-header" data-md-component="header">
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="docforge" class="md-header__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -151,12 +153,19 @@
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
@@ -182,136 +191,6 @@
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../loaders/" class="md-tabs__link">
Loaders
</a>
</li>
<li class="md-tabs__item">
<a href="../../models/" class="md-tabs__link">
Models
</a>
</li>
<li class="md-tabs__item">
<a href="../../nav/" class="md-tabs__link">
Navigation
</a>
</li>
<li class="md-tabs__item">
<a href="../../renderers/" class="md-tabs__link">
Renderers
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../" class="md-tabs__link">
CLI
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
@@ -325,10 +204,8 @@
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="docforge" class="md-nav__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -371,13 +248,23 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -386,8 +273,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../loaders/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -396,8 +284,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
@@ -407,27 +301,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../loaders/" class="md-nav__link">
<span class="md-ellipsis">
Loaders
</span>
</a>
</li>
@@ -467,13 +340,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -482,8 +369,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../models/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -492,8 +380,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
@@ -503,27 +397,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../models/" class="md-nav__link">
<span class="md-ellipsis">
Models
</span>
</a>
</li>
@@ -609,13 +482,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -624,8 +511,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../nav/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -634,8 +522,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
@@ -645,27 +539,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../nav/" class="md-nav__link">
<span class="md-ellipsis">
Nav
</span>
</a>
</li>
@@ -751,13 +624,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -766,8 +653,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../renderers/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -776,8 +664,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
@@ -787,27 +681,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../renderers/" class="md-nav__link">
<span class="md-ellipsis">
Renderers
</span>
</a>
</li>
@@ -895,13 +768,26 @@
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
@@ -911,8 +797,9 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" checked>
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="">
<div class="md-nav__link md-nav__container">
<a href="../" class="md-nav__link ">
<span class="md-ellipsis">
@@ -921,8 +808,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_6">
@@ -932,27 +825,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../" class="md-nav__link">
<span class="md-ellipsis">
Cli
</span>
</a>
</li>
@@ -1021,6 +893,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.cli.main-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.cli.main.main" class="md-nav__link">
<span class="md-ellipsis">
main
@@ -1032,6 +914,11 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1156,6 +1043,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.cli.main-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.cli.main.main" class="md-nav__link">
<span class="md-ellipsis">
main
@@ -1167,6 +1064,11 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1193,15 +1095,16 @@
<h2 id="docforge.cli.main" class="doc doc-heading">
<span class="doc doc-object-name doc-module-name">docforge.cli.main</span>
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">docforge.cli.main</span>
</h2>
<div class="doc doc-contents first">
<p>Main entry point for the doc-forge CLI. This module delegates all command
execution to docforge.cli.commands.</p>
<p>Command-line entry point for the doc-forge CLI.</p>
<p>This module exposes the executable entry point that initializes the
Click command group defined in <code>docforge.cli.commands</code>.</p>
@@ -1213,22 +1116,25 @@ execution to docforge.cli.commands.</p>
<h3 id="docforge.cli.main-functions">Functions</h3>
<div class="doc doc-object doc-function">
<h3 id="docforge.cli.main.main" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">main</span>
<h4 id="docforge.cli.main.main" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">main</span>
</h3>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">main</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</code></pre></div>
</h4>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">main</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>CLI Entry point. Boots the click application.</p>
<p>Run the doc-forge command-line interface.</p>
<p>This function initializes and executes the Click CLI application.
It is used as the console entry point when invoking <code>doc-forge</code>
from the command line.</p>
</div>
@@ -1258,6 +1164,8 @@ execution to docforge.cli.commands.</p>
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
@@ -1295,7 +1203,7 @@ execution to docforge.cli.commands.</p>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.tabs", "navigation.expand", "navigation.top", "navigation.instant", "content.code.copy", "content.code.annotate"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.sections", "navigation.expand", "navigation.top", "navigation.instant", "navigation.tracking", "navigation.indexes", "content.code.copy", "content.code.annotate", "content.tabs.link", "content.action.edit", "search.highlight", "search.share", "search.suggest"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../../assets/javascripts/bundle.f55a23d4.min.js"></script>

View File

@@ -86,7 +86,9 @@
<header class="md-header" data-md-component="header">
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="docforge" class="md-header__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -151,12 +153,19 @@
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
@@ -182,136 +191,6 @@
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../loaders/" class="md-tabs__link">
Loaders
</a>
</li>
<li class="md-tabs__item">
<a href="../../models/" class="md-tabs__link">
Models
</a>
</li>
<li class="md-tabs__item">
<a href="../../nav/" class="md-tabs__link">
Navigation
</a>
</li>
<li class="md-tabs__item">
<a href="../../renderers/" class="md-tabs__link">
Renderers
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../" class="md-tabs__link">
CLI
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
@@ -325,10 +204,8 @@
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="docforge" class="md-nav__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -371,13 +248,23 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -386,8 +273,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../loaders/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -396,8 +284,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
@@ -407,27 +301,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../loaders/" class="md-nav__link">
<span class="md-ellipsis">
Loaders
</span>
</a>
</li>
@@ -467,13 +340,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -482,8 +369,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../models/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -492,8 +380,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
@@ -503,27 +397,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../models/" class="md-nav__link">
<span class="md-ellipsis">
Models
</span>
</a>
</li>
@@ -609,13 +482,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -624,8 +511,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../nav/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -634,8 +522,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
@@ -645,27 +539,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../nav/" class="md-nav__link">
<span class="md-ellipsis">
Nav
</span>
</a>
</li>
@@ -751,13 +624,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -766,8 +653,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../renderers/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -776,8 +664,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
@@ -787,27 +681,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../renderers/" class="md-nav__link">
<span class="md-ellipsis">
Renderers
</span>
</a>
</li>
@@ -895,13 +768,26 @@
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
@@ -911,8 +797,9 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" checked>
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="">
<div class="md-nav__link md-nav__container">
<a href="../" class="md-nav__link ">
<span class="md-ellipsis">
@@ -921,8 +808,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_6">
@@ -932,27 +825,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../" class="md-nav__link">
<span class="md-ellipsis">
Cli
</span>
</a>
</li>
@@ -1067,6 +939,25 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.cli.mcp_utils-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#docforge.cli.mcp_utils-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.cli.mcp_utils.generate_resources" class="md-nav__link">
<span class="md-ellipsis">
generate_resources
@@ -1087,6 +978,11 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1165,6 +1061,25 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.cli.mcp_utils-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#docforge.cli.mcp_utils-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.cli.mcp_utils.generate_resources" class="md-nav__link">
<span class="md-ellipsis">
generate_resources
@@ -1185,6 +1100,11 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1211,7 +1131,7 @@
<h2 id="docforge.cli.mcp_utils" class="doc doc-heading">
<span class="doc doc-object-name doc-module-name">docforge.cli.mcp_utils</span>
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">docforge.cli.mcp_utils</span>
</h2>
@@ -1227,23 +1147,26 @@
<h3 id="docforge.cli.mcp_utils-classes">Classes</h3>
<h3 id="docforge.cli.mcp_utils-functions">Functions</h3>
<div class="doc doc-object doc-function">
<h3 id="docforge.cli.mcp_utils.generate_resources" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">generate_resources</span>
<h4 id="docforge.cli.mcp_utils.generate_resources" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">generate_resources</span>
</h3>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">generate_resources</span><span class="p">(</span><span class="n">module</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">project_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n">out_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</code></pre></div>
</h4>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">generate_resources</span><span class="p">(</span><span class="n">module</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">project_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n">out_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Generate MCP-compatible documentation resources.</p>
<p>Generate MCP documentation resources from a Python module.</p>
<p>The function performs project introspection, builds the internal
documentation model, and renders MCP-compatible JSON resources
to the specified output directory.</p>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1264,7 +1187,8 @@
</td>
<td>
<div class="doc-md-description">
<p>The dotted path of the primary module to document.</p>
<p>Python module import path used as the entry point for
documentation generation.</p>
</div>
</td>
<td>
@@ -1278,7 +1202,8 @@
</td>
<td>
<div class="doc-md-description">
<p>Optional override for the project name.</p>
<p>Optional override for the project name used in
generated documentation metadata.</p>
</div>
</td>
<td>
@@ -1292,7 +1217,8 @@
</td>
<td>
<div class="doc-md-description">
<p>Directory where the MCP JSON resources and nav will be written.</p>
<p>Directory where MCP resources (index.json, nav.json,
and module data) will be written.</p>
</div>
</td>
<td>
@@ -1309,17 +1235,19 @@
<div class="doc doc-object doc-function">
<h3 id="docforge.cli.mcp_utils.serve" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">serve</span>
<h4 id="docforge.cli.mcp_utils.serve" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">serve</span>
</h3>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">serve</span><span class="p">(</span><span class="n">module</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">mcp_root</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</code></pre></div>
</h4>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">serve</span><span class="p">(</span><span class="n">module</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">mcp_root</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Serve MCP documentation from a pre-built bundle.</p>
<p>Start an MCP server for a pre-generated documentation bundle.</p>
<p>The server exposes documentation resources such as project metadata,
navigation structure, and module documentation through MCP endpoints.</p>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1340,7 +1268,8 @@
</td>
<td>
<div class="doc-md-description">
<p>The dotted path of the primary module to serve.</p>
<p>Python module import path used to identify the served
documentation instance.</p>
</div>
</td>
<td>
@@ -1354,7 +1283,8 @@
</td>
<td>
<div class="doc-md-description">
<p>Path to the directory containing index.json, nav.json, and modules/.</p>
<p>Path to the directory containing the MCP documentation
bundle (index.json, nav.json, and modules/).</p>
</div>
</td>
<td>
@@ -1364,6 +1294,30 @@
</tbody>
</table>
<p><span class="doc-section-title">Raises:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code><span title="click.ClickException">ClickException</span></code>
</td>
<td>
<div class="doc-md-description">
<p>If the MCP documentation bundle is missing
required files or directories.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
@@ -1392,6 +1346,8 @@
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
@@ -1429,7 +1385,7 @@
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.tabs", "navigation.expand", "navigation.top", "navigation.instant", "content.code.copy", "content.code.annotate"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.sections", "navigation.expand", "navigation.top", "navigation.instant", "navigation.tracking", "navigation.indexes", "content.code.copy", "content.code.annotate", "content.tabs.link", "content.action.edit", "search.highlight", "search.share", "search.suggest"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../../assets/javascripts/bundle.f55a23d4.min.js"></script>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -86,7 +86,9 @@
<header class="md-header" data-md-component="header">
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="docforge" class="md-header__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -151,12 +153,19 @@
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
@@ -182,136 +191,6 @@
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../loaders/" class="md-tabs__link">
Loaders
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../" class="md-tabs__link">
Models
</a>
</li>
<li class="md-tabs__item">
<a href="../../nav/" class="md-tabs__link">
Navigation
</a>
</li>
<li class="md-tabs__item">
<a href="../../renderers/" class="md-tabs__link">
Renderers
</a>
</li>
<li class="md-tabs__item">
<a href="../../cli/" class="md-tabs__link">
CLI
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
@@ -325,10 +204,8 @@
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="docforge" class="md-nav__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -371,13 +248,23 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -386,8 +273,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../loaders/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -396,8 +284,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
@@ -407,27 +301,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../loaders/" class="md-nav__link">
<span class="md-ellipsis">
Loaders
</span>
</a>
</li>
@@ -468,6 +341,18 @@
@@ -475,7 +360,6 @@
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
@@ -485,8 +369,9 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" checked>
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="">
<div class="md-nav__link md-nav__container">
<a href="../" class="md-nav__link ">
<span class="md-ellipsis">
@@ -495,8 +380,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3">
@@ -506,27 +397,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../" class="md-nav__link">
<span class="md-ellipsis">
Models
</span>
</a>
</li>
@@ -595,6 +465,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.module-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.module.Module" class="md-nav__link">
<span class="md-ellipsis">
Module
@@ -605,6 +485,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.module.Module-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.module.Module.add_object" class="md-nav__link">
<span class="md-ellipsis">
add_object
@@ -639,6 +529,16 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -711,13 +611,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -726,8 +640,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../nav/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -736,8 +651,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
@@ -747,27 +668,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../nav/" class="md-nav__link">
<span class="md-ellipsis">
Nav
</span>
</a>
</li>
@@ -853,13 +753,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -868,8 +782,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../renderers/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -878,8 +793,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
@@ -889,27 +810,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../renderers/" class="md-nav__link">
<span class="md-ellipsis">
Renderers
</span>
</a>
</li>
@@ -995,13 +895,29 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -1010,8 +926,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../cli/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -1020,8 +937,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
@@ -1031,27 +954,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../cli/" class="md-nav__link">
<span class="md-ellipsis">
Cli
</span>
</a>
</li>
@@ -1189,6 +1091,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.module-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.module.Module" class="md-nav__link">
<span class="md-ellipsis">
Module
@@ -1199,6 +1111,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.module.Module-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.module.Module.add_object" class="md-nav__link">
<span class="md-ellipsis">
add_object
@@ -1233,6 +1155,16 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1259,16 +1191,18 @@
<h2 id="docforge.models.module" class="doc doc-heading">
<span class="doc doc-object-name doc-module-name">docforge.models.module</span>
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">docforge.models.module</span>
</h2>
<div class="doc doc-contents first">
<p>This module defines the Module class, which represents a Python module or package
in the doc-forge documentation models. It acts as a container for top-level
documented objects.</p>
<p>Documentation model representing a Python module or package.</p>
<p>This module defines the <code>Module</code> class used in the doc-forge documentation
model. A <code>Module</code> acts as a container for top-level documented objects
(classes, functions, variables, and other members) discovered during
introspection.</p>
@@ -1279,24 +1213,27 @@ documented objects.</p>
<h3 id="docforge.models.module-classes">Classes</h3>
<div class="doc doc-object doc-class">
<h3 id="docforge.models.module.Module" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">Module</span>
<h4 id="docforge.models.module.Module" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Module</span>
</h3>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">Module</span><span class="p">(</span><span class="n">path</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">docstring</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span>
</code></pre></div>
</h4>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">Module</span><span class="p">(</span><span class="n">path</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">docstring</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Represents a documented Python module or package.</p>
<p>Representation of a documented Python module or package.</p>
<p>A <code>Module</code> stores metadata about the module itself and maintains a
collection of top-level documentation objects discovered during
introspection.</p>
<p><span class="doc-section-title">Attributes:</span></p>
@@ -1327,7 +1264,7 @@ documented objects.</p>
</td>
<td>
<div class="doc-md-description">
<p>Module-level docstring content.</p>
<p>Module-level documentation string, if present.</p>
</div>
</td>
</tr>
@@ -1338,14 +1275,15 @@ documented objects.</p>
</td>
<td>
<div class="doc-md-description">
<p>Dictionary mapping object names to their DocObject representations.</p>
<p>Mapping of object names to their corresponding
<code>DocObject</code> representations.</p>
</div>
</td>
</tr>
</tbody>
</table>
<p>Initialize a new Module.</p>
<p>Initialize a Module instance.</p>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1366,7 +1304,7 @@ documented objects.</p>
</td>
<td>
<div class="doc-md-description">
<p>The dotted path of the module.</p>
<p>Dotted import path identifying the module.</p>
</div>
</td>
<td>
@@ -1380,7 +1318,7 @@ documented objects.</p>
</td>
<td>
<div class="doc-md-description">
<p>The module's docstring, if any.</p>
<p>Module-level documentation text, if available.</p>
</div>
</td>
<td>
@@ -1401,18 +1339,18 @@ documented objects.</p>
<h5 id="docforge.models.module.Module-functions">Functions</h5>
<div class="doc doc-object doc-function">
<h4 id="docforge.models.module.Module.add_object" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">add_object</span>
<h6 id="docforge.models.module.Module.add_object" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">add_object</span>
</h4>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">add_object</span><span class="p">(</span><span class="n">obj</span><span class="p">:</span> <span class="n">DocObject</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</code></pre></div>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">add_object</span><span class="p">(</span><span class="n">obj</span><span class="p">:</span> <span class="n">DocObject</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
@@ -1437,7 +1375,8 @@ documented objects.</p>
</td>
<td>
<div class="doc-md-description">
<p>The object to add.</p>
<p>Documentation object to register as a top-level
member of the module.</p>
</div>
</td>
<td>
@@ -1454,17 +1393,17 @@ documented objects.</p>
<div class="doc doc-object doc-function">
<h4 id="docforge.models.module.Module.get_all_objects" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">get_all_objects</span>
<h6 id="docforge.models.module.Module.get_all_objects" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">get_all_objects</span>
</h4>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">get_all_objects</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Iterable</span><span class="p">[</span><span class="n">DocObject</span><span class="p">]</span>
</code></pre></div>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">get_all_objects</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Iterable</span><span class="p">[</span><span class="n">DocObject</span><span class="p">]</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Get all top-level objects in the module.</p>
<p>Return all top-level documentation objects in the module.</p>
<p><span class="doc-section-title">Returns:</span></p>
@@ -1482,7 +1421,17 @@ documented objects.</p>
</td>
<td>
<div class="doc-md-description">
<p>An iterable of DocObject instances.</p>
<p>An iterable of <code>DocObject</code> instances representing the</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td>
<code><span title="typing.Iterable">Iterable</span>[<a class="autorefs autorefs-internal" title="docforge.models.object.DocObject" href="../object/#docforge.models.object.DocObject">DocObject</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>module's public members.</p>
</div>
</td>
</tr>
@@ -1496,17 +1445,17 @@ documented objects.</p>
<div class="doc doc-object doc-function">
<h4 id="docforge.models.module.Module.get_object" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">get_object</span>
<h6 id="docforge.models.module.Module.get_object" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">get_object</span>
</h4>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">get_object</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DocObject</span>
</code></pre></div>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">get_object</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DocObject</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Retrieve a member object by name.</p>
<p>Retrieve a documented object by name.</p>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1527,7 +1476,7 @@ documented objects.</p>
</td>
<td>
<div class="doc-md-description">
<p>The name of the object.</p>
<p>Name of the object to retrieve.</p>
</div>
</td>
<td>
@@ -1553,7 +1502,30 @@ documented objects.</p>
</td>
<td>
<div class="doc-md-description">
<p>The requested DocObject.</p>
<p>The corresponding <code>DocObject</code> instance.</p>
</div>
</td>
</tr>
</tbody>
</table>
<p><span class="doc-section-title">Raises:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code>KeyError</code>
</td>
<td>
<div class="doc-md-description">
<p>If no object with the given name exists.</p>
</div>
</td>
</tr>
@@ -1597,6 +1569,8 @@ documented objects.</p>
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
@@ -1634,7 +1608,7 @@ documented objects.</p>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.tabs", "navigation.expand", "navigation.top", "navigation.instant", "content.code.copy", "content.code.annotate"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.sections", "navigation.expand", "navigation.top", "navigation.instant", "navigation.tracking", "navigation.indexes", "content.code.copy", "content.code.annotate", "content.tabs.link", "content.action.edit", "search.highlight", "search.share", "search.suggest"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../../assets/javascripts/bundle.f55a23d4.min.js"></script>

View File

@@ -86,7 +86,9 @@
<header class="md-header" data-md-component="header">
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="docforge" class="md-header__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -151,12 +153,19 @@
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
@@ -182,136 +191,6 @@
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../loaders/" class="md-tabs__link">
Loaders
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../" class="md-tabs__link">
Models
</a>
</li>
<li class="md-tabs__item">
<a href="../../nav/" class="md-tabs__link">
Navigation
</a>
</li>
<li class="md-tabs__item">
<a href="../../renderers/" class="md-tabs__link">
Renderers
</a>
</li>
<li class="md-tabs__item">
<a href="../../cli/" class="md-tabs__link">
CLI
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
@@ -325,10 +204,8 @@
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="docforge" class="md-nav__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -371,13 +248,23 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -386,8 +273,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../loaders/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -396,8 +284,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
@@ -407,27 +301,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../loaders/" class="md-nav__link">
<span class="md-ellipsis">
Loaders
</span>
</a>
</li>
@@ -468,6 +341,18 @@
@@ -475,7 +360,6 @@
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
@@ -485,8 +369,9 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" checked>
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="">
<div class="md-nav__link md-nav__container">
<a href="../" class="md-nav__link ">
<span class="md-ellipsis">
@@ -495,8 +380,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3">
@@ -506,27 +397,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../" class="md-nav__link">
<span class="md-ellipsis">
Models
</span>
</a>
</li>
@@ -618,6 +488,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.object-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.object.DocObject" class="md-nav__link">
<span class="md-ellipsis">
DocObject
@@ -628,6 +508,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.object.DocObject-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.object.DocObject.add_member" class="md-nav__link">
<span class="md-ellipsis">
add_member
@@ -662,6 +552,16 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -711,13 +611,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -726,8 +640,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../nav/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -736,8 +651,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
@@ -747,27 +668,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../nav/" class="md-nav__link">
<span class="md-ellipsis">
Nav
</span>
</a>
</li>
@@ -853,13 +753,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -868,8 +782,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../renderers/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -878,8 +793,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
@@ -889,27 +810,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../renderers/" class="md-nav__link">
<span class="md-ellipsis">
Renderers
</span>
</a>
</li>
@@ -995,13 +895,29 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -1010,8 +926,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../cli/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -1020,8 +937,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
@@ -1031,27 +954,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../cli/" class="md-nav__link">
<span class="md-ellipsis">
Cli
</span>
</a>
</li>
@@ -1189,6 +1091,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.object-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.object.DocObject" class="md-nav__link">
<span class="md-ellipsis">
DocObject
@@ -1199,6 +1111,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.object.DocObject-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.object.DocObject.add_member" class="md-nav__link">
<span class="md-ellipsis">
add_member
@@ -1233,6 +1155,16 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1259,16 +1191,18 @@
<h2 id="docforge.models.object" class="doc doc-heading">
<span class="doc doc-object-name doc-module-name">docforge.models.object</span>
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">docforge.models.object</span>
</h2>
<div class="doc doc-contents first">
<p>This module defines the DocObject class, the fundamental recursive unit of the
doc-forge documentation models. A DocObject represents a single Python entity
(class, function, method, or attribute) and its nested members.</p>
<p>Documentation model representing individual Python objects.</p>
<p>This module defines the <code>DocObject</code> class, the fundamental recursive unit of
the doc-forge documentation model. Each <code>DocObject</code> represents a Python
entity such as a class, function, method, or attribute, and may contain nested
members that form a hierarchical documentation structure.</p>
@@ -1279,24 +1213,27 @@ doc-forge documentation models. A DocObject represents a single Python entity
<h3 id="docforge.models.object-classes">Classes</h3>
<div class="doc doc-object doc-class">
<h3 id="docforge.models.object.DocObject" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">DocObject</span>
<h4 id="docforge.models.object.DocObject" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">DocObject</span>
</h3>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">DocObject</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">signature</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">docstring</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span>
</code></pre></div>
</h4>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">DocObject</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">signature</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">docstring</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Represents a documented Python object (class, function, method, etc.).</p>
<p>Representation of a documented Python object.</p>
<p>A <code>DocObject</code> models a single Python entity discovered during
introspection. Objects may contain nested members, allowing the structure
of modules, classes, and other containers to be represented recursively.</p>
<p><span class="doc-section-title">Attributes:</span></p>
@@ -1327,7 +1264,8 @@ doc-forge documentation models. A DocObject represents a single Python entity
</td>
<td>
<div class="doc-md-description">
<p>Type of object (e.g., 'class', 'function', 'attribute').</p>
<p>Type of object (for example <code>class</code>, <code>function</code>,
<code>method</code>, or <code>attribute</code>).</p>
</div>
</td>
</tr>
@@ -1338,7 +1276,7 @@ doc-forge documentation models. A DocObject represents a single Python entity
</td>
<td>
<div class="doc-md-description">
<p>Full dotted import path to the object.</p>
<p>Fully qualified dotted path to the object.</p>
</div>
</td>
</tr>
@@ -1349,7 +1287,7 @@ doc-forge documentation models. A DocObject represents a single Python entity
</td>
<td>
<div class="doc-md-description">
<p>Callable signature, if applicable.</p>
<p>Callable signature if the object represents a callable.</p>
</div>
</td>
</tr>
@@ -1360,7 +1298,7 @@ doc-forge documentation models. A DocObject represents a single Python entity
</td>
<td>
<div class="doc-md-description">
<p>Raw docstring content extracted from the source.</p>
<p>Raw docstring text extracted from the source code.</p>
</div>
</td>
</tr>
@@ -1371,14 +1309,14 @@ doc-forge documentation models. A DocObject represents a single Python entity
</td>
<td>
<div class="doc-md-description">
<p>Dictionary mapping member names to their DocObject representations.</p>
<p>Mapping of member names to child <code>DocObject</code> instances.</p>
</div>
</td>
</tr>
</tbody>
</table>
<p>Initialize a new DocObject.</p>
<p>Initialize a DocObject instance.</p>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1399,7 +1337,7 @@ doc-forge documentation models. A DocObject represents a single Python entity
</td>
<td>
<div class="doc-md-description">
<p>The local name of the object.</p>
<p>Local name of the object.</p>
</div>
</td>
<td>
@@ -1413,7 +1351,7 @@ doc-forge documentation models. A DocObject represents a single Python entity
</td>
<td>
<div class="doc-md-description">
<p>The kind of object (e.g., 'class', 'function').</p>
<p>Object type identifier (for example <code>class</code> or <code>function</code>).</p>
</div>
</td>
<td>
@@ -1427,7 +1365,7 @@ doc-forge documentation models. A DocObject represents a single Python entity
</td>
<td>
<div class="doc-md-description">
<p>The full dotted path to the object.</p>
<p>Fully qualified dotted path of the object.</p>
</div>
</td>
<td>
@@ -1441,7 +1379,7 @@ doc-forge documentation models. A DocObject represents a single Python entity
</td>
<td>
<div class="doc-md-description">
<p>The object's signature (for callable objects).</p>
<p>Callable signature if applicable.</p>
</div>
</td>
<td>
@@ -1455,7 +1393,7 @@ doc-forge documentation models. A DocObject represents a single Python entity
</td>
<td>
<div class="doc-md-description">
<p>The object's docstring, if any.</p>
<p>Documentation string associated with the object.</p>
</div>
</td>
<td>
@@ -1476,22 +1414,24 @@ doc-forge documentation models. A DocObject represents a single Python entity
<h5 id="docforge.models.object.DocObject-functions">Functions</h5>
<div class="doc doc-object doc-function">
<h4 id="docforge.models.object.DocObject.add_member" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">add_member</span>
<h6 id="docforge.models.object.DocObject.add_member" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">add_member</span>
</h4>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">add_member</span><span class="p">(</span><span class="n">obj</span><span class="p">:</span> <span class="n">DocObject</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</code></pre></div>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">add_member</span><span class="p">(</span><span class="n">obj</span><span class="p">:</span> <span class="n">DocObject</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Add a child member to this object (e.g., a method to a class).</p>
<p>Add a child documentation object.</p>
<p>This is typically used when attaching methods to classes or
nested objects to their parent containers.</p>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1512,7 +1452,7 @@ doc-forge documentation models. A DocObject represents a single Python entity
</td>
<td>
<div class="doc-md-description">
<p>The child DocObject to add.</p>
<p>Documentation object to add as a member.</p>
</div>
</td>
<td>
@@ -1529,17 +1469,17 @@ doc-forge documentation models. A DocObject represents a single Python entity
<div class="doc doc-object doc-function">
<h4 id="docforge.models.object.DocObject.get_all_members" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">get_all_members</span>
<h6 id="docforge.models.object.DocObject.get_all_members" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">get_all_members</span>
</h4>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">get_all_members</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Iterable</span><span class="p">[</span><span class="n">DocObject</span><span class="p">]</span>
</code></pre></div>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">get_all_members</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Iterable</span><span class="p">[</span><span class="n">DocObject</span><span class="p">]</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Get all members of this object.</p>
<p>Return all child members of the object.</p>
<p><span class="doc-section-title">Returns:</span></p>
@@ -1557,7 +1497,7 @@ doc-forge documentation models. A DocObject represents a single Python entity
</td>
<td>
<div class="doc-md-description">
<p>An iterable of child DocObject instances.</p>
<p>An iterable of <code>DocObject</code> instances representing nested members.</p>
</div>
</td>
</tr>
@@ -1571,17 +1511,17 @@ doc-forge documentation models. A DocObject represents a single Python entity
<div class="doc doc-object doc-function">
<h4 id="docforge.models.object.DocObject.get_member" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">get_member</span>
<h6 id="docforge.models.object.DocObject.get_member" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">get_member</span>
</h4>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">get_member</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DocObject</span>
</code></pre></div>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">get_member</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DocObject</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Retrieve a child member by name.</p>
<p>Retrieve a member object by name.</p>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1602,7 +1542,7 @@ doc-forge documentation models. A DocObject represents a single Python entity
</td>
<td>
<div class="doc-md-description">
<p>The name of the member.</p>
<p>Name of the member to retrieve.</p>
</div>
</td>
<td>
@@ -1628,7 +1568,30 @@ doc-forge documentation models. A DocObject represents a single Python entity
</td>
<td>
<div class="doc-md-description">
<p>The requested DocObject.</p>
<p>The corresponding <code>DocObject</code> instance.</p>
</div>
</td>
</tr>
</tbody>
</table>
<p><span class="doc-section-title">Raises:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code>KeyError</code>
</td>
<td>
<div class="doc-md-description">
<p>If the member does not exist.</p>
</div>
</td>
</tr>
@@ -1672,6 +1635,8 @@ doc-forge documentation models. A DocObject represents a single Python entity
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
@@ -1709,7 +1674,7 @@ doc-forge documentation models. A DocObject represents a single Python entity
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.tabs", "navigation.expand", "navigation.top", "navigation.instant", "content.code.copy", "content.code.annotate"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.sections", "navigation.expand", "navigation.top", "navigation.instant", "navigation.tracking", "navigation.indexes", "content.code.copy", "content.code.annotate", "content.tabs.link", "content.action.edit", "search.highlight", "search.share", "search.suggest"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../../assets/javascripts/bundle.f55a23d4.min.js"></script>

View File

@@ -86,7 +86,9 @@
<header class="md-header" data-md-component="header">
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="docforge" class="md-header__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -151,12 +153,19 @@
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
@@ -182,136 +191,6 @@
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../loaders/" class="md-tabs__link">
Loaders
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../" class="md-tabs__link">
Models
</a>
</li>
<li class="md-tabs__item">
<a href="../../nav/" class="md-tabs__link">
Navigation
</a>
</li>
<li class="md-tabs__item">
<a href="../../renderers/" class="md-tabs__link">
Renderers
</a>
</li>
<li class="md-tabs__item">
<a href="../../cli/" class="md-tabs__link">
CLI
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
@@ -325,10 +204,8 @@
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="docforge" class="md-nav__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -371,13 +248,23 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -386,8 +273,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../loaders/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -396,8 +284,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
@@ -407,27 +301,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../loaders/" class="md-nav__link">
<span class="md-ellipsis">
Loaders
</span>
</a>
</li>
@@ -468,6 +341,18 @@
@@ -475,7 +360,6 @@
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
@@ -485,8 +369,9 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" checked>
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="">
<div class="md-nav__link md-nav__container">
<a href="../" class="md-nav__link ">
<span class="md-ellipsis">
@@ -495,8 +380,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3">
@@ -506,27 +397,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../" class="md-nav__link">
<span class="md-ellipsis">
Models
</span>
</a>
</li>
@@ -641,6 +511,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.project-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.project.Project" class="md-nav__link">
<span class="md-ellipsis">
Project
@@ -651,6 +531,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.project.Project-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.project.Project.add_module" class="md-nav__link">
<span class="md-ellipsis">
add_module
@@ -694,6 +584,16 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -720,13 +620,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -735,8 +649,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../nav/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -745,8 +660,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
@@ -756,27 +677,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../nav/" class="md-nav__link">
<span class="md-ellipsis">
Nav
</span>
</a>
</li>
@@ -862,13 +762,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -877,8 +791,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../renderers/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -887,8 +802,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
@@ -898,27 +819,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../renderers/" class="md-nav__link">
<span class="md-ellipsis">
Renderers
</span>
</a>
</li>
@@ -1004,13 +904,29 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -1019,8 +935,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../cli/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -1029,8 +946,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
@@ -1040,27 +963,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../cli/" class="md-nav__link">
<span class="md-ellipsis">
Cli
</span>
</a>
</li>
@@ -1198,6 +1100,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.project-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.project.Project" class="md-nav__link">
<span class="md-ellipsis">
Project
@@ -1208,6 +1120,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.project.Project-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.models.project.Project.add_module" class="md-nav__link">
<span class="md-ellipsis">
add_module
@@ -1251,6 +1173,16 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1277,15 +1209,17 @@
<h2 id="docforge.models.project" class="doc doc-heading">
<span class="doc doc-object-name doc-module-name">docforge.models.project</span>
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">docforge.models.project</span>
</h2>
<div class="doc doc-contents first">
<p>This module defines the Project class, the top-level container for a documented
project. It aggregates multiple Module instances into a single named entity.</p>
<p>Documentation model representing a project.</p>
<p>This module defines the <code>Project</code> class, the top-level container used by
doc-forge to represent a documented codebase. A <code>Project</code> aggregates multiple
modules and provides access to them through a unified interface.</p>
@@ -1296,24 +1230,26 @@ project. It aggregates multiple Module instances into a single named entity.</p>
<h3 id="docforge.models.project-classes">Classes</h3>
<div class="doc doc-object doc-class">
<h3 id="docforge.models.project.Project" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">Project</span>
<h4 id="docforge.models.project.Project" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Project</span>
</h3>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">Project</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span>
</code></pre></div>
</h4>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">Project</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Represents a documentation project, serving as a container for modules.</p>
<p>Representation of a documentation project.</p>
<p>A <code>Project</code> serves as the root container for all modules discovered during
introspection. Each module is stored by its dotted import path.</p>
<p><span class="doc-section-title">Attributes:</span></p>
@@ -1344,14 +1280,14 @@ project. It aggregates multiple Module instances into a single named entity.</p>
</td>
<td>
<div class="doc-md-description">
<p>Dictionary mapping module paths to Module instances.</p>
<p>Mapping of module paths to <code>Module</code> instances.</p>
</div>
</td>
</tr>
</tbody>
</table>
<p>Initialize a new Project.</p>
<p>Initialize a Project instance.</p>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1372,7 +1308,7 @@ project. It aggregates multiple Module instances into a single named entity.</p>
</td>
<td>
<div class="doc-md-description">
<p>The name of the project.</p>
<p>Name used to identify the documentation project.</p>
</div>
</td>
<td>
@@ -1393,22 +1329,22 @@ project. It aggregates multiple Module instances into a single named entity.</p>
<h5 id="docforge.models.project.Project-functions">Functions</h5>
<div class="doc doc-object doc-function">
<h4 id="docforge.models.project.Project.add_module" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">add_module</span>
<h6 id="docforge.models.project.Project.add_module" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">add_module</span>
</h4>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">add_module</span><span class="p">(</span><span class="n">module</span><span class="p">:</span> <span class="n">Module</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</code></pre></div>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">add_module</span><span class="p">(</span><span class="n">module</span><span class="p">:</span> <span class="n">Module</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Add a module to the project.</p>
<p>Register a module in the project.</p>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1429,7 +1365,7 @@ project. It aggregates multiple Module instances into a single named entity.</p>
</td>
<td>
<div class="doc-md-description">
<p>The module to add.</p>
<p>Module instance to add to the project.</p>
</div>
</td>
<td>
@@ -1446,17 +1382,17 @@ project. It aggregates multiple Module instances into a single named entity.</p>
<div class="doc doc-object doc-function">
<h4 id="docforge.models.project.Project.get_all_modules" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">get_all_modules</span>
<h6 id="docforge.models.project.Project.get_all_modules" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">get_all_modules</span>
</h4>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">get_all_modules</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Iterable</span><span class="p">[</span><span class="n">Module</span><span class="p">]</span>
</code></pre></div>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">get_all_modules</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Iterable</span><span class="p">[</span><span class="n">Module</span><span class="p">]</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Get all modules in the project.</p>
<p>Return all modules contained in the project.</p>
<p><span class="doc-section-title">Returns:</span></p>
@@ -1474,7 +1410,7 @@ project. It aggregates multiple Module instances into a single named entity.</p>
</td>
<td>
<div class="doc-md-description">
<p>An iterable of Module objects.</p>
<p>An iterable of <code>Module</code> instances.</p>
</div>
</td>
</tr>
@@ -1488,13 +1424,13 @@ project. It aggregates multiple Module instances into a single named entity.</p>
<div class="doc doc-object doc-function">
<h4 id="docforge.models.project.Project.get_module" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">get_module</span>
<h6 id="docforge.models.project.Project.get_module" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">get_module</span>
</h4>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">get_module</span><span class="p">(</span><span class="n">path</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Module</span>
</code></pre></div>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">get_module</span><span class="p">(</span><span class="n">path</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Module</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
@@ -1519,7 +1455,7 @@ project. It aggregates multiple Module instances into a single named entity.</p>
</td>
<td>
<div class="doc-md-description">
<p>The dotted path of the module (e.g., 'pkg.mod').</p>
<p>Fully qualified dotted module path (for example <code>pkg.module</code>).</p>
</div>
</td>
<td>
@@ -1545,7 +1481,30 @@ project. It aggregates multiple Module instances into a single named entity.</p>
</td>
<td>
<div class="doc-md-description">
<p>The requested Module.</p>
<p>The corresponding <code>Module</code> instance.</p>
</div>
</td>
</tr>
</tbody>
</table>
<p><span class="doc-section-title">Raises:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code>KeyError</code>
</td>
<td>
<div class="doc-md-description">
<p>If the module does not exist in the project.</p>
</div>
</td>
</tr>
@@ -1559,17 +1518,17 @@ project. It aggregates multiple Module instances into a single named entity.</p>
<div class="doc doc-object doc-function">
<h4 id="docforge.models.project.Project.get_module_list" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">get_module_list</span>
<h6 id="docforge.models.project.Project.get_module_list" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">get_module_list</span>
</h4>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">get_module_list</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span>
</code></pre></div>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">get_module_list</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Get the list of all module dotted paths.</p>
<p>Return the list of module import paths.</p>
<p><span class="doc-section-title">Returns:</span></p>
@@ -1587,7 +1546,7 @@ project. It aggregates multiple Module instances into a single named entity.</p>
</td>
<td>
<div class="doc-md-description">
<p>A list of module paths.</p>
<p>A list containing the dotted paths of all modules in the project.</p>
</div>
</td>
</tr>
@@ -1631,6 +1590,8 @@ project. It aggregates multiple Module instances into a single named entity.</p>
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
@@ -1668,7 +1629,7 @@ project. It aggregates multiple Module instances into a single named entity.</p>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.tabs", "navigation.expand", "navigation.top", "navigation.instant", "content.code.copy", "content.code.annotate"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.sections", "navigation.expand", "navigation.top", "navigation.instant", "navigation.tracking", "navigation.indexes", "content.code.copy", "content.code.annotate", "content.tabs.link", "content.action.edit", "search.highlight", "search.share", "search.suggest"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../../assets/javascripts/bundle.f55a23d4.min.js"></script>

File diff suppressed because it is too large Load Diff

View File

@@ -86,7 +86,9 @@
<header class="md-header" data-md-component="header">
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="docforge" class="md-header__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -151,12 +153,19 @@
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
@@ -182,136 +191,6 @@
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../loaders/" class="md-tabs__link">
Loaders
</a>
</li>
<li class="md-tabs__item">
<a href="../../models/" class="md-tabs__link">
Models
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../" class="md-tabs__link">
Navigation
</a>
</li>
<li class="md-tabs__item">
<a href="../../renderers/" class="md-tabs__link">
Renderers
</a>
</li>
<li class="md-tabs__item">
<a href="../../cli/" class="md-tabs__link">
CLI
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
@@ -325,10 +204,8 @@
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="docforge" class="md-nav__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -371,13 +248,23 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -386,8 +273,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../loaders/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -396,8 +284,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
@@ -407,27 +301,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../loaders/" class="md-nav__link">
<span class="md-ellipsis">
Loaders
</span>
</a>
</li>
@@ -467,13 +340,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -482,8 +369,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../models/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -492,8 +380,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
@@ -503,27 +397,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../models/" class="md-nav__link">
<span class="md-ellipsis">
Models
</span>
</a>
</li>
@@ -610,6 +483,18 @@
@@ -617,7 +502,6 @@
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
@@ -627,8 +511,9 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" checked>
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="">
<div class="md-nav__link md-nav__container">
<a href="../" class="md-nav__link ">
<span class="md-ellipsis">
@@ -637,8 +522,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_4">
@@ -648,27 +539,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../" class="md-nav__link">
<span class="md-ellipsis">
Nav
</span>
</a>
</li>
@@ -783,6 +653,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.nav.mkdocs-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.nav.mkdocs.MkDocsNavEmitter" class="md-nav__link">
<span class="md-ellipsis">
MkDocsNavEmitter
@@ -793,6 +673,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.nav.mkdocs.MkDocsNavEmitter-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.nav.mkdocs.MkDocsNavEmitter.emit" class="md-nav__link">
<span class="md-ellipsis">
emit
@@ -809,6 +699,16 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -835,13 +735,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -850,8 +764,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../renderers/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -860,8 +775,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
@@ -871,27 +792,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../renderers/" class="md-nav__link">
<span class="md-ellipsis">
Renderers
</span>
</a>
</li>
@@ -977,13 +877,29 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -992,8 +908,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../cli/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -1002,8 +919,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
@@ -1013,27 +936,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../cli/" class="md-nav__link">
<span class="md-ellipsis">
Cli
</span>
</a>
</li>
@@ -1171,6 +1073,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.nav.mkdocs-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.nav.mkdocs.MkDocsNavEmitter" class="md-nav__link">
<span class="md-ellipsis">
MkDocsNavEmitter
@@ -1181,6 +1093,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.nav.mkdocs.MkDocsNavEmitter-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.nav.mkdocs.MkDocsNavEmitter.emit" class="md-nav__link">
<span class="md-ellipsis">
emit
@@ -1197,6 +1119,16 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1223,16 +1155,17 @@
<h2 id="docforge.nav.mkdocs" class="doc doc-heading">
<span class="doc doc-object-name doc-module-name">docforge.nav.mkdocs</span>
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">docforge.nav.mkdocs</span>
</h2>
<div class="doc doc-contents first">
<p>This module provides the MkDocsNavEmitter, which converts a ResolvedNav instance
into the specific YAML-ready list structure expected by the MkDocs 'nav'
configuration.</p>
<p>MkDocs navigation emitter.</p>
<p>This module provides the <code>MkDocsNavEmitter</code> class, which converts a
<code>ResolvedNav</code> instance into the navigation structure required by the
MkDocs <code>nav</code> configuration.</p>
@@ -1243,24 +1176,25 @@ configuration.</p>
<h3 id="docforge.nav.mkdocs-classes">Classes</h3>
<div class="doc doc-object doc-class">
<h3 id="docforge.nav.mkdocs.MkDocsNavEmitter" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">MkDocsNavEmitter</span>
<h4 id="docforge.nav.mkdocs.MkDocsNavEmitter" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">MkDocsNavEmitter</span>
</h3>
</h4>
<div class="doc doc-contents ">
<p>Emitter responsible for transforming a ResolvedNav into an MkDocs-compatible
navigation structure.</p>
<p>Emit MkDocs navigation structures from resolved navigation data.</p>
<p>The emitter transforms a <code>ResolvedNav</code> object into the YAML-compatible
list structure expected by the MkDocs <code>nav</code> configuration field.</p>
@@ -1273,22 +1207,22 @@ navigation structure.</p>
<h5 id="docforge.nav.mkdocs.MkDocsNavEmitter-functions">Functions</h5>
<div class="doc doc-object doc-function">
<h4 id="docforge.nav.mkdocs.MkDocsNavEmitter.emit" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">emit</span>
<h6 id="docforge.nav.mkdocs.MkDocsNavEmitter.emit" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">emit</span>
</h4>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">emit</span><span class="p">(</span><span class="n">nav</span><span class="p">:</span> <span class="n">ResolvedNav</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">List</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]]</span>
</code></pre></div>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">emit</span><span class="p">(</span><span class="n">nav</span><span class="p">:</span> <span class="n">ResolvedNav</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">List</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]]</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Generate a list of navigation entries for mkdocs.yml.</p>
<p>Generate a navigation structure for <code>mkdocs.yml</code>.</p>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1309,7 +1243,8 @@ navigation structure.</p>
</td>
<td>
<div class="doc-md-description">
<p>The resolved navigation data.</p>
<p>Resolved navigation data describing documentation groups
and their associated Markdown files.</p>
</div>
</td>
<td>
@@ -1335,7 +1270,27 @@ navigation structure.</p>
</td>
<td>
<div class="doc-md-description">
<p>A list of dictionary mappings representing the MkDocs navigation.</p>
<p>A list of dictionaries representing the MkDocs navigation layout.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td>
<code><span title="typing.List">List</span>[<span title="typing.Dict">Dict</span>[str, <span title="typing.Any">Any</span>]]</code>
</td>
<td>
<div class="doc-md-description">
<p>Each dictionary maps a navigation label to a page or a list of</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td>
<code><span title="typing.List">List</span>[<span title="typing.Dict">Dict</span>[str, <span title="typing.Any">Any</span>]]</code>
</td>
<td>
<div class="doc-md-description">
<p>pages.</p>
</div>
</td>
</tr>
@@ -1379,6 +1334,8 @@ navigation structure.</p>
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
@@ -1416,7 +1373,7 @@ navigation structure.</p>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.tabs", "navigation.expand", "navigation.top", "navigation.instant", "content.code.copy", "content.code.annotate"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.sections", "navigation.expand", "navigation.top", "navigation.instant", "navigation.tracking", "navigation.indexes", "content.code.copy", "content.code.annotate", "content.tabs.link", "content.action.edit", "search.highlight", "search.share", "search.suggest"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../../assets/javascripts/bundle.f55a23d4.min.js"></script>

View File

@@ -86,7 +86,9 @@
<header class="md-header" data-md-component="header">
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="docforge" class="md-header__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -151,12 +153,19 @@
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
@@ -182,136 +191,6 @@
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../loaders/" class="md-tabs__link">
Loaders
</a>
</li>
<li class="md-tabs__item">
<a href="../../models/" class="md-tabs__link">
Models
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../" class="md-tabs__link">
Navigation
</a>
</li>
<li class="md-tabs__item">
<a href="../../renderers/" class="md-tabs__link">
Renderers
</a>
</li>
<li class="md-tabs__item">
<a href="../../cli/" class="md-tabs__link">
CLI
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
@@ -325,10 +204,8 @@
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="docforge" class="md-nav__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -371,13 +248,23 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -386,8 +273,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../loaders/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -396,8 +284,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
@@ -407,27 +301,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../loaders/" class="md-nav__link">
<span class="md-ellipsis">
Loaders
</span>
</a>
</li>
@@ -467,13 +340,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -482,8 +369,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../models/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -492,8 +380,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
@@ -503,27 +397,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../models/" class="md-nav__link">
<span class="md-ellipsis">
Models
</span>
</a>
</li>
@@ -610,6 +483,18 @@
@@ -617,7 +502,6 @@
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
@@ -627,8 +511,9 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" checked>
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="">
<div class="md-nav__link md-nav__container">
<a href="../" class="md-nav__link ">
<span class="md-ellipsis">
@@ -637,8 +522,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_4">
@@ -648,27 +539,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../" class="md-nav__link">
<span class="md-ellipsis">
Nav
</span>
</a>
</li>
@@ -760,6 +630,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.nav.resolver-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.nav.resolver.ResolvedNav" class="md-nav__link">
<span class="md-ellipsis">
ResolvedNav
@@ -770,6 +650,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.nav.resolver.ResolvedNav-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.nav.resolver.ResolvedNav.all_files" class="md-nav__link">
<span class="md-ellipsis">
all_files
@@ -783,6 +673,26 @@
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#docforge.nav.resolver-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.nav.resolver.resolve_nav" class="md-nav__link">
<span class="md-ellipsis">
@@ -795,6 +705,11 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -844,13 +759,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -859,8 +788,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../renderers/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -869,8 +799,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
@@ -880,27 +816,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../renderers/" class="md-nav__link">
<span class="md-ellipsis">
Renderers
</span>
</a>
</li>
@@ -986,13 +901,29 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -1001,8 +932,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../cli/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -1011,8 +943,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
@@ -1022,27 +960,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../cli/" class="md-nav__link">
<span class="md-ellipsis">
Cli
</span>
</a>
</li>
@@ -1180,6 +1097,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.nav.resolver-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.nav.resolver.ResolvedNav" class="md-nav__link">
<span class="md-ellipsis">
ResolvedNav
@@ -1190,6 +1117,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.nav.resolver.ResolvedNav-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.nav.resolver.ResolvedNav.all_files" class="md-nav__link">
<span class="md-ellipsis">
all_files
@@ -1203,6 +1140,26 @@
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#docforge.nav.resolver-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.nav.resolver.resolve_nav" class="md-nav__link">
<span class="md-ellipsis">
@@ -1215,6 +1172,11 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1241,16 +1203,16 @@
<h2 id="docforge.nav.resolver" class="doc doc-heading">
<span class="doc doc-object-name doc-module-name">docforge.nav.resolver</span>
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">docforge.nav.resolver</span>
</h2>
<div class="doc doc-contents first">
<p>This module contains the logic for resolving a NavSpec against the physical
filesystem. It expands globs and validates that all referenced documents
actually exist on disk.</p>
<p>Navigation resolution utilities.</p>
<p>This module resolves a <code>NavSpec</code> against the filesystem by expanding glob
patterns and validating that referenced documentation files exist.</p>
@@ -1261,25 +1223,26 @@ actually exist on disk.</p>
<h3 id="docforge.nav.resolver-classes">Classes</h3>
<div class="doc doc-object doc-class">
<h3 id="docforge.nav.resolver.ResolvedNav" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">ResolvedNav</span>
<h4 id="docforge.nav.resolver.ResolvedNav" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">ResolvedNav</span>
</h3>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">ResolvedNav</span><span class="p">(</span><span class="n">home</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n">groups</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="n">Path</span><span class="p">]],</span> <span class="n">docs_root</span><span class="p">:</span> <span class="n">Path</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span>
</code></pre></div>
</h4>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">ResolvedNav</span><span class="p">(</span><span class="n">home</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n">groups</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="n">Path</span><span class="p">]],</span> <span class="n">docs_root</span><span class="p">:</span> <span class="n">Path</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Represents a navigation structure where all patterns and paths have been
resolved against the actual filesystem contents.</p>
<p>Resolved navigation structure.</p>
<p>A <code>ResolvedNav</code> represents navigation data after glob patterns have been
expanded and paths validated against the filesystem.</p>
<p><span class="doc-section-title">Attributes:</span></p>
@@ -1299,7 +1262,7 @@ resolved against the actual filesystem contents.</p>
</td>
<td>
<div class="doc-md-description">
<p>Resolved relative path to the home page.</p>
<p>Relative path to the documentation home page.</p>
</div>
</td>
</tr>
@@ -1310,7 +1273,8 @@ resolved against the actual filesystem contents.</p>
</td>
<td>
<div class="doc-md-description">
<p>Mapping of group titles to lists of absolute or relative Path objects.</p>
<p>Mapping of navigation group titles to lists of resolved
documentation file paths.</p>
</div>
</td>
</tr>
@@ -1338,7 +1302,7 @@ resolved against the actual filesystem contents.</p>
</td>
<td>
<div class="doc-md-description">
<p>The relative path to the project home page.</p>
<p>Relative path to the home page within the documentation root.</p>
</div>
</td>
<td>
@@ -1352,7 +1316,7 @@ resolved against the actual filesystem contents.</p>
</td>
<td>
<div class="doc-md-description">
<p>A mapping of group names to their resolved filesystem paths.</p>
<p>Mapping of group titles to resolved documentation file paths.</p>
</div>
</td>
<td>
@@ -1366,7 +1330,7 @@ resolved against the actual filesystem contents.</p>
</td>
<td>
<div class="doc-md-description">
<p>The root documentation directory.</p>
<p>Root directory of the documentation source files.</p>
</div>
</td>
<td>
@@ -1387,22 +1351,22 @@ resolved against the actual filesystem contents.</p>
<h5 id="docforge.nav.resolver.ResolvedNav-functions">Functions</h5>
<div class="doc doc-object doc-function">
<h4 id="docforge.nav.resolver.ResolvedNav.all_files" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">all_files</span>
<h6 id="docforge.nav.resolver.ResolvedNav.all_files" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">all_files</span>
</h4>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">all_files</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Iterable</span><span class="p">[</span><span class="n">Path</span><span class="p">]</span>
</code></pre></div>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">all_files</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Iterable</span><span class="p">[</span><span class="n">Path</span><span class="p">]</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Get an iterable of all resolved files in the navigation structure.</p>
<p>Iterate over all files referenced by the navigation structure.</p>
<p><span class="doc-section-title">Returns:</span></p>
@@ -1420,7 +1384,31 @@ resolved against the actual filesystem contents.</p>
</td>
<td>
<div class="doc-md-description">
<p>An iterable of Path objects.</p>
<p>An iterable of <code>Path</code> objects representing documentation files.</p>
</div>
</td>
</tr>
</tbody>
</table>
<p><span class="doc-section-title">Raises:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code>RuntimeError</code>
</td>
<td>
<div class="doc-md-description">
<p>If the home page is defined but the documentation
root is not available for resolution.</p>
</div>
</td>
</tr>
@@ -1438,23 +1426,24 @@ resolved against the actual filesystem contents.</p>
</div>
</div>
<h3 id="docforge.nav.resolver-functions">Functions</h3>
<div class="doc doc-object doc-function">
<h3 id="docforge.nav.resolver.resolve_nav" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">resolve_nav</span>
<h4 id="docforge.nav.resolver.resolve_nav" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">resolve_nav</span>
</h3>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">resolve_nav</span><span class="p">(</span><span class="n">spec</span><span class="p">:</span> <span class="n">NavSpec</span><span class="p">,</span> <span class="n">docs_root</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ResolvedNav</span>
</code></pre></div>
</h4>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">resolve_nav</span><span class="p">(</span><span class="n">spec</span><span class="p">:</span> <span class="n">NavSpec</span><span class="p">,</span> <span class="n">docs_root</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ResolvedNav</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Create a ResolvedNav by processing a NavSpec against the filesystem.
This expands globs and validates the existence of referenced files.</p>
<p>Resolve a navigation specification against the filesystem.</p>
<p>The function expands glob patterns defined in a <code>NavSpec</code> and verifies
that referenced documentation files exist within the documentation root.</p>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1475,7 +1464,7 @@ This expands globs and validates the existence of referenced files.</p>
</td>
<td>
<div class="doc-md-description">
<p>The navigation specification to resolve.</p>
<p>Navigation specification describing documentation layout.</p>
</div>
</td>
<td>
@@ -1489,7 +1478,7 @@ This expands globs and validates the existence of referenced files.</p>
</td>
<td>
<div class="doc-md-description">
<p>The root directory for documentation files.</p>
<p>Root directory containing documentation Markdown files.</p>
</div>
</td>
<td>
@@ -1515,7 +1504,7 @@ This expands globs and validates the existence of referenced files.</p>
</td>
<td>
<div class="doc-md-description">
<p>A ResolvedNav instance.</p>
<p>A <code>ResolvedNav</code> instance containing validated navigation paths.</p>
</div>
</td>
</tr>
@@ -1538,7 +1527,8 @@ This expands globs and validates the existence of referenced files.</p>
</td>
<td>
<div class="doc-md-description">
<p>If a pattern doesn't match any files or the docs_root doesn't exist.</p>
<p>If the documentation root does not exist or a
navigation pattern does not match any files.</p>
</div>
</td>
</tr>
@@ -1573,6 +1563,8 @@ This expands globs and validates the existence of referenced files.</p>
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
@@ -1610,7 +1602,7 @@ This expands globs and validates the existence of referenced files.</p>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.tabs", "navigation.expand", "navigation.top", "navigation.instant", "content.code.copy", "content.code.annotate"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.sections", "navigation.expand", "navigation.top", "navigation.instant", "navigation.tracking", "navigation.indexes", "content.code.copy", "content.code.annotate", "content.tabs.link", "content.action.edit", "search.highlight", "search.share", "search.suggest"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../../assets/javascripts/bundle.f55a23d4.min.js"></script>

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -86,7 +86,9 @@
<header class="md-header" data-md-component="header">
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="docforge" class="md-header__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -151,12 +153,19 @@
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
@@ -182,136 +191,6 @@
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../loaders/" class="md-tabs__link">
Loaders
</a>
</li>
<li class="md-tabs__item">
<a href="../../models/" class="md-tabs__link">
Models
</a>
</li>
<li class="md-tabs__item">
<a href="../../nav/" class="md-tabs__link">
Navigation
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../" class="md-tabs__link">
Renderers
</a>
</li>
<li class="md-tabs__item">
<a href="../../cli/" class="md-tabs__link">
CLI
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
@@ -325,10 +204,8 @@
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="docforge" class="md-nav__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -371,13 +248,23 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -386,8 +273,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../loaders/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -396,8 +284,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
@@ -407,27 +301,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../loaders/" class="md-nav__link">
<span class="md-ellipsis">
Loaders
</span>
</a>
</li>
@@ -467,13 +340,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -482,8 +369,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../models/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -492,8 +380,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
@@ -503,27 +397,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../models/" class="md-nav__link">
<span class="md-ellipsis">
Models
</span>
</a>
</li>
@@ -609,13 +482,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -624,8 +511,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../nav/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -634,8 +522,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
@@ -645,27 +539,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../nav/" class="md-nav__link">
<span class="md-ellipsis">
Nav
</span>
</a>
</li>
@@ -752,6 +625,18 @@
@@ -759,7 +644,6 @@
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
@@ -769,8 +653,9 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" checked>
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="">
<div class="md-nav__link md-nav__container">
<a href="../" class="md-nav__link ">
<span class="md-ellipsis">
@@ -779,8 +664,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_5">
@@ -790,27 +681,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../" class="md-nav__link">
<span class="md-ellipsis">
Renderers
</span>
</a>
</li>
@@ -879,6 +749,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.base-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.base.DocRenderer" class="md-nav__link">
<span class="md-ellipsis">
DocRenderer
@@ -889,6 +769,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.base.DocRenderer-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.base.DocRenderer.generate_sources" class="md-nav__link">
<span class="md-ellipsis">
generate_sources
@@ -900,6 +790,11 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@@ -909,6 +804,26 @@
</span>
</a>
<nav class="md-nav" aria-label="RendererConfig">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.base.RendererConfig-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -986,13 +901,29 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -1001,8 +932,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../cli/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -1011,8 +943,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
@@ -1022,27 +960,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../cli/" class="md-nav__link">
<span class="md-ellipsis">
Cli
</span>
</a>
</li>
@@ -1180,6 +1097,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.base-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.base.DocRenderer" class="md-nav__link">
<span class="md-ellipsis">
DocRenderer
@@ -1190,6 +1117,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.base.DocRenderer-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.base.DocRenderer.generate_sources" class="md-nav__link">
<span class="md-ellipsis">
generate_sources
@@ -1201,6 +1138,11 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@@ -1210,6 +1152,26 @@
</span>
</a>
<nav class="md-nav" aria-label="RendererConfig">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.base.RendererConfig-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1241,16 +1203,17 @@
<h2 id="docforge.renderers.base" class="doc doc-heading">
<span class="doc doc-object-name doc-module-name">docforge.renderers.base</span>
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">docforge.renderers.base</span>
</h2>
<div class="doc doc-contents first">
<p>This module defines the base interfaces and configuration containers for
doc-forge renderers. All renderer implementations should adhere to the
DocRenderer protocol.</p>
<p>Renderer base interfaces and configuration models.</p>
<p>This module defines the base protocol and configuration container used by
doc-forge renderers. Concrete renderer implementations should implement the
<code>DocRenderer</code> protocol.</p>
@@ -1261,17 +1224,17 @@ DocRenderer protocol.</p>
<h3 id="docforge.renderers.base-classes">Classes</h3>
<div class="doc doc-object doc-class">
<h3 id="docforge.renderers.base.DocRenderer" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">DocRenderer</span>
<h4 id="docforge.renderers.base.DocRenderer" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">DocRenderer</span>
</h3>
</h4>
<div class="doc doc-contents ">
@@ -1280,6 +1243,8 @@ DocRenderer protocol.</p>
<p>Protocol defining the interface for documentation renderers.</p>
<p>Implementations of this protocol are responsible for transforming a
<code>Project</code> model into renderer-specific documentation sources.</p>
@@ -1292,22 +1257,22 @@ DocRenderer protocol.</p>
<h5 id="docforge.renderers.base.DocRenderer-functions">Functions</h5>
<div class="doc doc-object doc-function">
<h4 id="docforge.renderers.base.DocRenderer.generate_sources" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">generate_sources</span>
<h6 id="docforge.renderers.base.DocRenderer.generate_sources" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">generate_sources</span>
</h4>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">generate_sources</span><span class="p">(</span><span class="n">project</span><span class="p">:</span> <span class="n">Project</span><span class="p">,</span> <span class="n">out_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</code></pre></div>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">generate_sources</span><span class="p">(</span><span class="n">project</span><span class="p">:</span> <span class="n">Project</span><span class="p">,</span> <span class="n">out_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Generate renderer-specific source files for the given project.</p>
<p>Generate renderer-specific documentation sources.</p>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1328,7 +1293,7 @@ DocRenderer protocol.</p>
</td>
<td>
<div class="doc-md-description">
<p>The project models containing modules and objects.</p>
<p>Project model containing modules and documentation objects.</p>
</div>
</td>
<td>
@@ -1342,7 +1307,8 @@ DocRenderer protocol.</p>
</td>
<td>
<div class="doc-md-description">
<p>Target directory for the generated files.</p>
<p>Directory where generated documentation sources
should be written.</p>
</div>
</td>
<td>
@@ -1368,18 +1334,58 @@ DocRenderer protocol.</p>
<h3 id="docforge.renderers.base.RendererConfig" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">RendererConfig</span>
<h4 id="docforge.renderers.base.RendererConfig" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">RendererConfig</span>
</h3>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">RendererConfig</span><span class="p">(</span><span class="n">out_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">project</span><span class="p">:</span> <span class="n">Project</span><span class="p">)</span>
</code></pre></div>
</h4>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">RendererConfig</span><span class="p">(</span><span class="n">out_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">project</span><span class="p">:</span> <span class="n">Project</span><span class="p">)</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Configuration container for documentation renderers.</p>
<p>A <code>RendererConfig</code> instance groups together the project model and the
output directory used during rendering.</p>
<p><span class="doc-section-title">Attributes:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code><span title="docforge.renderers.base.RendererConfig.out_dir">out_dir</span></code></td>
<td>
<code><span title="pathlib.Path">Path</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Directory where generated documentation files will be written.</p>
</div>
</td>
</tr>
<tr class="doc-section-item">
<td><code><span title="docforge.renderers.base.RendererConfig.project">project</span></code></td>
<td>
<code><a class="autorefs autorefs-internal" title="docforge.models.Project" href="../../models/#docforge.models.Project">Project</a></code>
</td>
<td>
<div class="doc-md-description">
<p>Documentation project model to be rendered.</p>
</div>
</td>
</tr>
</tbody>
</table>
<p>Initialize a RendererConfig instance.</p>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1400,7 +1406,7 @@ DocRenderer protocol.</p>
</td>
<td>
<div class="doc-md-description">
<p>The directory where documentation files should be written.</p>
<p>Target directory where documentation files should be written.</p>
</div>
</td>
<td>
@@ -1414,7 +1420,7 @@ DocRenderer protocol.</p>
</td>
<td>
<div class="doc-md-description">
<p>The introspected project models to be rendered.</p>
<p>Introspected project model to render.</p>
</div>
</td>
<td>
@@ -1435,7 +1441,7 @@ DocRenderer protocol.</p>
<h5 id="docforge.renderers.base.RendererConfig-functions">Functions</h5>
@@ -1470,6 +1476,8 @@ DocRenderer protocol.</p>
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
@@ -1507,7 +1515,7 @@ DocRenderer protocol.</p>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.tabs", "navigation.expand", "navigation.top", "navigation.instant", "content.code.copy", "content.code.annotate"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.sections", "navigation.expand", "navigation.top", "navigation.instant", "navigation.tracking", "navigation.indexes", "content.code.copy", "content.code.annotate", "content.tabs.link", "content.action.edit", "search.highlight", "search.share", "search.suggest"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../../assets/javascripts/bundle.f55a23d4.min.js"></script>

File diff suppressed because it is too large Load Diff

View File

@@ -86,7 +86,9 @@
<header class="md-header" data-md-component="header">
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="docforge" class="md-header__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -151,12 +153,19 @@
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
@@ -182,136 +191,6 @@
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../loaders/" class="md-tabs__link">
Loaders
</a>
</li>
<li class="md-tabs__item">
<a href="../../models/" class="md-tabs__link">
Models
</a>
</li>
<li class="md-tabs__item">
<a href="../../nav/" class="md-tabs__link">
Navigation
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../" class="md-tabs__link">
Renderers
</a>
</li>
<li class="md-tabs__item">
<a href="../../cli/" class="md-tabs__link">
CLI
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
@@ -325,10 +204,8 @@
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="docforge" class="md-nav__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -371,13 +248,23 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -386,8 +273,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../loaders/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -396,8 +284,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
@@ -407,27 +301,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../loaders/" class="md-nav__link">
<span class="md-ellipsis">
Loaders
</span>
</a>
</li>
@@ -467,13 +340,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -482,8 +369,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../models/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -492,8 +380,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
@@ -503,27 +397,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../models/" class="md-nav__link">
<span class="md-ellipsis">
Models
</span>
</a>
</li>
@@ -609,13 +482,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -624,8 +511,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../nav/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -634,8 +522,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
@@ -645,27 +539,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../nav/" class="md-nav__link">
<span class="md-ellipsis">
Nav
</span>
</a>
</li>
@@ -752,6 +625,18 @@
@@ -759,7 +644,6 @@
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
@@ -769,8 +653,9 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" checked>
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="">
<div class="md-nav__link md-nav__container">
<a href="../" class="md-nav__link ">
<span class="md-ellipsis">
@@ -779,8 +664,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_5">
@@ -790,27 +681,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../" class="md-nav__link">
<span class="md-ellipsis">
Renderers
</span>
</a>
</li>
@@ -925,6 +795,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.mcp_renderer-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.mcp_renderer.MCPRenderer" class="md-nav__link">
<span class="md-ellipsis">
MCPRenderer
@@ -935,6 +815,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.mcp_renderer.MCPRenderer-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.mcp_renderer.MCPRenderer.generate_sources" class="md-nav__link">
<span class="md-ellipsis">
generate_sources
@@ -951,6 +841,16 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -977,13 +877,29 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -992,8 +908,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../cli/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -1002,8 +919,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
@@ -1013,27 +936,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../cli/" class="md-nav__link">
<span class="md-ellipsis">
Cli
</span>
</a>
</li>
@@ -1171,6 +1073,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.mcp_renderer-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.mcp_renderer.MCPRenderer" class="md-nav__link">
<span class="md-ellipsis">
MCPRenderer
@@ -1181,6 +1093,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.mcp_renderer.MCPRenderer-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.mcp_renderer.MCPRenderer.generate_sources" class="md-nav__link">
<span class="md-ellipsis">
generate_sources
@@ -1197,6 +1119,16 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1223,7 +1155,7 @@
<h2 id="docforge.renderers.mcp_renderer" class="doc doc-heading">
<span class="doc doc-object-name doc-module-name">docforge.renderers.mcp_renderer</span>
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">docforge.renderers.mcp_renderer</span>
</h2>
@@ -1239,23 +1171,26 @@
<h3 id="docforge.renderers.mcp_renderer-classes">Classes</h3>
<div class="doc doc-object doc-class">
<h3 id="docforge.renderers.mcp_renderer.MCPRenderer" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">MCPRenderer</span>
<h4 id="docforge.renderers.mcp_renderer.MCPRenderer" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">MCPRenderer</span>
</h3>
</h4>
<div class="doc doc-contents ">
<p>Renderer that emits MCP-native JSON resources from docforge models.</p>
<p>Renderer that generates MCP-compatible documentation resources.</p>
<p>This renderer converts doc-forge project models into structured JSON
resources suitable for consumption by systems implementing the Model
Context Protocol (MCP).</p>
@@ -1268,22 +1203,24 @@
<h5 id="docforge.renderers.mcp_renderer.MCPRenderer-functions">Functions</h5>
<div class="doc doc-object doc-function">
<h4 id="docforge.renderers.mcp_renderer.MCPRenderer.generate_sources" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">generate_sources</span>
<h6 id="docforge.renderers.mcp_renderer.MCPRenderer.generate_sources" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">generate_sources</span>
</h4>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">generate_sources</span><span class="p">(</span><span class="n">project</span><span class="p">:</span> <span class="n">Project</span><span class="p">,</span> <span class="n">out_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</code></pre></div>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">generate_sources</span><span class="p">(</span><span class="n">project</span><span class="p">:</span> <span class="n">Project</span><span class="p">,</span> <span class="n">out_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Generate MCP-compatible JSON resources and navigation for the project.</p>
<p>Generate MCP documentation resources for a project.</p>
<p>The renderer serializes each module into a JSON resource and produces
supporting metadata files such as <code>nav.json</code> and <code>index.json</code>.</p>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1304,7 +1241,7 @@
</td>
<td>
<div class="doc-md-description">
<p>The project model to render.</p>
<p>Documentation project model to render.</p>
</div>
</td>
<td>
@@ -1318,7 +1255,7 @@
</td>
<td>
<div class="doc-md-description">
<p>Target directory for the generated JSON files.</p>
<p>Directory where MCP resources will be written.</p>
</div>
</td>
<td>
@@ -1365,6 +1302,8 @@
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
@@ -1402,7 +1341,7 @@
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.tabs", "navigation.expand", "navigation.top", "navigation.instant", "content.code.copy", "content.code.annotate"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.sections", "navigation.expand", "navigation.top", "navigation.instant", "navigation.tracking", "navigation.indexes", "content.code.copy", "content.code.annotate", "content.tabs.link", "content.action.edit", "search.highlight", "search.share", "search.suggest"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../../assets/javascripts/bundle.f55a23d4.min.js"></script>

View File

@@ -86,7 +86,9 @@
<header class="md-header" data-md-component="header">
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="docforge" class="md-header__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -151,12 +153,19 @@
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
@@ -182,136 +191,6 @@
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../loaders/" class="md-tabs__link">
Loaders
</a>
</li>
<li class="md-tabs__item">
<a href="../../models/" class="md-tabs__link">
Models
</a>
</li>
<li class="md-tabs__item">
<a href="../../nav/" class="md-tabs__link">
Navigation
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../" class="md-tabs__link">
Renderers
</a>
</li>
<li class="md-tabs__item">
<a href="../../cli/" class="md-tabs__link">
CLI
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
@@ -325,10 +204,8 @@
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="docforge" class="md-nav__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -371,13 +248,23 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -386,8 +273,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../loaders/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -396,8 +284,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
@@ -407,27 +301,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../loaders/" class="md-nav__link">
<span class="md-ellipsis">
Loaders
</span>
</a>
</li>
@@ -467,13 +340,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -482,8 +369,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../models/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -492,8 +380,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
@@ -503,27 +397,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../models/" class="md-nav__link">
<span class="md-ellipsis">
Models
</span>
</a>
</li>
@@ -609,13 +482,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -624,8 +511,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../nav/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -634,8 +522,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
@@ -645,27 +539,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../nav/" class="md-nav__link">
<span class="md-ellipsis">
Nav
</span>
</a>
</li>
@@ -752,6 +625,18 @@
@@ -759,7 +644,6 @@
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
@@ -769,8 +653,9 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" checked>
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="">
<div class="md-nav__link md-nav__container">
<a href="../" class="md-nav__link ">
<span class="md-ellipsis">
@@ -779,8 +664,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_5">
@@ -790,27 +681,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../" class="md-nav__link">
<span class="md-ellipsis">
Renderers
</span>
</a>
</li>
@@ -902,6 +772,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.mkdocs_renderer-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.mkdocs_renderer.MkDocsRenderer" class="md-nav__link">
<span class="md-ellipsis">
MkDocsRenderer
@@ -911,6 +791,25 @@
<nav class="md-nav" aria-label="MkDocsRenderer">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.mkdocs_renderer.MkDocsRenderer-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.mkdocs_renderer.MkDocsRenderer.generate_readme" class="md-nav__link">
<span class="md-ellipsis">
generate_readme
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#docforge.renderers.mkdocs_renderer.MkDocsRenderer.generate_sources" class="md-nav__link">
<span class="md-ellipsis">
@@ -928,6 +827,16 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -977,13 +886,29 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -992,8 +917,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../cli/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -1002,8 +928,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
@@ -1013,27 +945,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../cli/" class="md-nav__link">
<span class="md-ellipsis">
Cli
</span>
</a>
</li>
@@ -1171,6 +1082,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.mkdocs_renderer-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.mkdocs_renderer.MkDocsRenderer" class="md-nav__link">
<span class="md-ellipsis">
MkDocsRenderer
@@ -1180,6 +1101,25 @@
<nav class="md-nav" aria-label="MkDocsRenderer">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.mkdocs_renderer.MkDocsRenderer-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.renderers.mkdocs_renderer.MkDocsRenderer.generate_readme" class="md-nav__link">
<span class="md-ellipsis">
generate_readme
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#docforge.renderers.mkdocs_renderer.MkDocsRenderer.generate_sources" class="md-nav__link">
<span class="md-ellipsis">
@@ -1197,6 +1137,16 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1223,20 +1173,23 @@
<h2 id="docforge.renderers.mkdocs_renderer" class="doc doc-heading">
<span class="doc doc-object-name doc-module-name">docforge.renderers.mkdocs_renderer</span>
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">docforge.renderers.mkdocs_renderer</span>
</h2>
<div class="doc doc-contents first">
<p>MkDocsRenderer</p>
<p>Generates Markdown source files compatible with MkDocs Material
and mkdocstrings, ensuring:</p>
<p>MkDocs renderer implementation.</p>
<p>This module defines the <code>MkDocsRenderer</code> class, which generates Markdown
documentation sources compatible with MkDocs Material and the mkdocstrings
plugin.</p>
<p>The renderer ensures a consistent documentation structure by:</p>
<ul>
<li>Root index.md always exists</li>
<li>Parent package indexes are created automatically</li>
<li>Child modules are linked in parent index files</li>
<li>Creating a root <code>index.md</code> if one does not exist</li>
<li>Generating package index pages automatically</li>
<li>Linking child modules within parent package pages</li>
<li>Optionally generating <code>README.md</code> from the root package docstring</li>
</ul>
@@ -1248,24 +1201,25 @@ and mkdocstrings, ensuring:</p>
<h3 id="docforge.renderers.mkdocs_renderer-classes">Classes</h3>
<div class="doc doc-object doc-class">
<h3 id="docforge.renderers.mkdocs_renderer.MkDocsRenderer" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">MkDocsRenderer</span>
<h4 id="docforge.renderers.mkdocs_renderer.MkDocsRenderer" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">MkDocsRenderer</span>
</h3>
</h4>
<div class="doc doc-contents ">
<p>Renderer that generates Markdown source files formatted for the MkDocs
'mkdocstrings' plugin.</p>
<p>Renderer that produces Markdown documentation for MkDocs.</p>
<p>Generated pages use mkdocstrings directives to reference Python modules,
allowing MkDocs to render API documentation dynamically.</p>
@@ -1278,23 +1232,28 @@ and mkdocstrings, ensuring:</p>
<h5 id="docforge.renderers.mkdocs_renderer.MkDocsRenderer-functions">Functions</h5>
<div class="doc doc-object doc-function">
<h4 id="docforge.renderers.mkdocs_renderer.MkDocsRenderer.generate_sources" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">generate_sources</span>
<h6 id="docforge.renderers.mkdocs_renderer.MkDocsRenderer.generate_readme" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">generate_readme</span>
</h4>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">generate_sources</span><span class="p">(</span><span class="n">project</span><span class="p">:</span> <span class="n">Project</span><span class="p">,</span> <span class="n">out_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">module_is_source</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</code></pre></div>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">generate_readme</span><span class="p">(</span><span class="n">project</span><span class="p">:</span> <span class="n">Project</span><span class="p">,</span> <span class="n">docs_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">module_is_source</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Produce a set of Markdown files in the output directory based on the
provided Project models.</p>
<p>Generate a <code>README.md</code> file from the root module docstring.</p>
<p>Behavior:</p>
<ul>
<li>If <code>module_is_source</code> is True, <code>README.md</code> is written to the
project root directory.</li>
<li>If False, README generation is currently not implemented.</li>
</ul>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1315,7 +1274,7 @@ provided Project models.</p>
</td>
<td>
<div class="doc-md-description">
<p>The project models to render.</p>
<p>Project model containing documentation metadata.</p>
</div>
</td>
<td>
@@ -1323,13 +1282,13 @@ provided Project models.</p>
</td>
</tr>
<tr class="doc-section-item">
<td><code>out_dir</code></td>
<td><code>docs_dir</code></td>
<td>
<code><span title="pathlib.Path">Path</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Target directory for documentation files.</p>
<p>Directory containing generated documentation sources.</p>
</div>
</td>
<td>
@@ -1343,7 +1302,88 @@ provided Project models.</p>
</td>
<td>
<div class="doc-md-description">
<p>Module is the source folder and to be treated as the root folder.</p>
<p>Whether the module is treated as the project
source root.</p>
</div>
</td>
<td>
<code>None</code>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="doc doc-object doc-function">
<h6 id="docforge.renderers.mkdocs_renderer.MkDocsRenderer.generate_sources" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">generate_sources</span>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">generate_sources</span><span class="p">(</span><span class="n">project</span><span class="p">:</span> <span class="n">Project</span><span class="p">,</span> <span class="n">out_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">module_is_source</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Generate Markdown documentation files for a project.</p>
<p>This method renders a documentation structure from the provided
project model and writes the resulting Markdown files to the
specified output directory.</p>
<p><span class="doc-section-title">Parameters:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code>project</code></td>
<td>
<code><a class="autorefs autorefs-internal" title="docforge.models.Project" href="../../models/#docforge.models.Project">Project</a></code>
</td>
<td>
<div class="doc-md-description">
<p>Project model containing modules to document.</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
<tr class="doc-section-item">
<td><code>out_dir</code></td>
<td>
<code><span title="pathlib.Path">Path</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Directory where generated Markdown files will be written.</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
<tr class="doc-section-item">
<td><code>module_is_source</code></td>
<td>
<code>bool | None</code>
</td>
<td>
<div class="doc-md-description">
<p>If True, treat the specified module as the
documentation root rather than nesting it inside a folder.</p>
</div>
</td>
<td>
@@ -1390,6 +1430,8 @@ provided Project models.</p>
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
@@ -1427,7 +1469,7 @@ provided Project models.</p>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.tabs", "navigation.expand", "navigation.top", "navigation.instant", "content.code.copy", "content.code.annotate"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.sections", "navigation.expand", "navigation.top", "navigation.instant", "navigation.tracking", "navigation.indexes", "content.code.copy", "content.code.annotate", "content.tabs.link", "content.action.edit", "search.highlight", "search.share", "search.suggest"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../../assets/javascripts/bundle.f55a23d4.min.js"></script>

File diff suppressed because one or more lines are too long

View File

@@ -82,7 +82,9 @@
<header class="md-header" data-md-component="header">
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href=".." title="docforge" class="md-header__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -147,12 +149,19 @@
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
@@ -178,134 +187,6 @@
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href=".." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../loaders/" class="md-tabs__link">
Loaders
</a>
</li>
<li class="md-tabs__item">
<a href="../models/" class="md-tabs__link">
Models
</a>
</li>
<li class="md-tabs__item">
<a href="../nav/" class="md-tabs__link">
Navigation
</a>
</li>
<li class="md-tabs__item">
<a href="../renderers/" class="md-tabs__link">
Renderers
</a>
</li>
<li class="md-tabs__item">
<a href="../cli/" class="md-tabs__link">
CLI
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
@@ -319,10 +200,8 @@
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href=".." title="docforge" class="md-nav__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -365,13 +244,23 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -380,8 +269,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../loaders/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -390,8 +280,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
@@ -401,27 +297,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../loaders/" class="md-nav__link">
<span class="md-ellipsis">
Loaders
</span>
</a>
</li>
@@ -461,13 +336,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -476,8 +365,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../models/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -486,8 +376,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
@@ -497,27 +393,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../models/" class="md-nav__link">
<span class="md-ellipsis">
Models
</span>
</a>
</li>
@@ -603,13 +478,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -618,8 +507,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../nav/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -628,8 +518,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
@@ -639,27 +535,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../nav/" class="md-nav__link">
<span class="md-ellipsis">
Nav
</span>
</a>
</li>
@@ -745,13 +620,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -760,8 +649,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../renderers/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -770,8 +660,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
@@ -781,27 +677,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../renderers/" class="md-nav__link">
<span class="md-ellipsis">
Renderers
</span>
</a>
</li>
@@ -887,13 +762,29 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -902,8 +793,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../cli/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -912,8 +804,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
@@ -923,27 +821,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../cli/" class="md-nav__link">
<span class="md-ellipsis">
Cli
</span>
</a>
</li>
@@ -1081,6 +958,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.servers-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.servers.MCPServer" class="md-nav__link">
<span class="md-ellipsis">
MCPServer
@@ -1091,6 +978,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.servers.MCPServer-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.servers.MCPServer.run" class="md-nav__link">
<span class="md-ellipsis">
run
@@ -1107,6 +1004,16 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1133,13 +1040,19 @@
<h2 id="docforge.servers" class="doc doc-heading">
<span class="doc doc-object-name doc-module-name">docforge.servers</span>
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">docforge.servers</span>
</h2>
<div class="doc doc-contents first">
<p>Server layer for doc-forge.</p>
<p>This module exposes server implementations used to provide live access
to generated documentation resources. Currently, it includes the MCP
documentation server.</p>
<hr />
<div class="doc doc-children">
@@ -1149,26 +1062,28 @@
<h3 id="docforge.servers-classes">Classes</h3>
<div class="doc doc-object doc-class">
<h3 id="docforge.servers.MCPServer" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">MCPServer</span>
<h4 id="docforge.servers.MCPServer" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">MCPServer</span>
</h3>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">MCPServer</span><span class="p">(</span><span class="n">mcp_root</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span>
</code></pre></div>
</h4>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">MCPServer</span><span class="p">(</span><span class="n">mcp_root</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>MCP server for serving a pre-built MCP documentation bundle.</p>
<p>MCP server for serving a pre-generated documentation bundle.</p>
<p>The server exposes documentation resources and diagnostic tools through
MCP endpoints backed by JSON files generated by the MCP renderer.</p>
<p>Initialize the MCPServer.</p>
<p>Initialize the MCP server.</p>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1189,7 +1104,9 @@
</td>
<td>
<div class="doc-md-description">
<p>Path to the directory containing pre-built MCP JSON resources.</p>
<p>Directory containing the generated MCP documentation
bundle (for example <code>index.json</code>, <code>nav.json</code>, and
<code>modules/</code>).</p>
</div>
</td>
<td>
@@ -1203,7 +1120,7 @@
</td>
<td>
<div class="doc-md-description">
<p>Name of the MCP server.</p>
<p>Identifier used for the MCP server instance.</p>
</div>
</td>
<td>
@@ -1224,18 +1141,18 @@
<h5 id="docforge.servers.MCPServer-functions">Functions</h5>
<div class="doc doc-object doc-function">
<h4 id="docforge.servers.MCPServer.run" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">run</span>
<h6 id="docforge.servers.MCPServer.run" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">run</span>
</h4>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">run</span><span class="p">(</span><span class="n">transport</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="s1">&#39;stdio&#39;</span><span class="p">,</span> <span class="s1">&#39;sse&#39;</span><span class="p">,</span> <span class="s1">&#39;streamable-http&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;streamable-http&#39;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</code></pre></div>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">run</span><span class="p">(</span><span class="n">transport</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="s1">&#39;stdio&#39;</span><span class="p">,</span> <span class="s1">&#39;sse&#39;</span><span class="p">,</span> <span class="s1">&#39;streamable-http&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;streamable-http&#39;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
@@ -1260,7 +1177,8 @@
</td>
<td>
<div class="doc-md-description">
<p>MCP transport (default: streamable-http)</p>
<p>Transport mechanism used by the MCP server. Supported
options include <code>stdio</code>, <code>sse</code>, and <code>streamable-http</code>.</p>
</div>
</td>
<td>
@@ -1307,6 +1225,8 @@
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
@@ -1344,7 +1264,7 @@
<script id="__config" type="application/json">{"base": "..", "features": ["navigation.tabs", "navigation.expand", "navigation.top", "navigation.instant", "content.code.copy", "content.code.annotate"], "search": "../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script id="__config" type="application/json">{"base": "..", "features": ["navigation.sections", "navigation.expand", "navigation.top", "navigation.instant", "navigation.tracking", "navigation.indexes", "content.code.copy", "content.code.annotate", "content.tabs.link", "content.action.edit", "search.highlight", "search.share", "search.suggest"], "search": "../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../assets/javascripts/bundle.f55a23d4.min.js"></script>

View File

@@ -82,7 +82,9 @@
<header class="md-header" data-md-component="header">
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="docforge" class="md-header__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -147,12 +149,19 @@
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
@@ -178,134 +187,6 @@
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../loaders/" class="md-tabs__link">
Loaders
</a>
</li>
<li class="md-tabs__item">
<a href="../../models/" class="md-tabs__link">
Models
</a>
</li>
<li class="md-tabs__item">
<a href="../../nav/" class="md-tabs__link">
Navigation
</a>
</li>
<li class="md-tabs__item">
<a href="../../renderers/" class="md-tabs__link">
Renderers
</a>
</li>
<li class="md-tabs__item">
<a href="../../cli/" class="md-tabs__link">
CLI
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
@@ -319,10 +200,8 @@
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="docforge" class="md-nav__button md-logo" aria-label="docforge" data-md-component="logo">
@@ -365,13 +244,23 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -380,8 +269,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../loaders/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -390,8 +280,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
@@ -401,27 +297,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../loaders/" class="md-nav__link">
<span class="md-ellipsis">
Loaders
</span>
</a>
</li>
@@ -461,13 +336,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -476,8 +365,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../models/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -486,8 +376,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
@@ -497,27 +393,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../models/" class="md-nav__link">
<span class="md-ellipsis">
Models
</span>
</a>
</li>
@@ -603,13 +478,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -618,8 +507,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../nav/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -628,8 +518,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
@@ -639,27 +535,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../nav/" class="md-nav__link">
<span class="md-ellipsis">
Nav
</span>
</a>
</li>
@@ -745,13 +620,27 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -760,8 +649,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../renderers/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -770,8 +660,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
@@ -781,27 +677,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../renderers/" class="md-nav__link">
<span class="md-ellipsis">
Renderers
</span>
</a>
</li>
@@ -887,13 +762,29 @@
<li class="md-nav__item md-nav__item--nested">
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
@@ -902,8 +793,9 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<div class="md-nav__link md-nav__container">
<a href="../../cli/" class="md-nav__link ">
<span class="md-ellipsis">
@@ -912,8 +804,14 @@
</span>
<span class="md-nav__icon md-icon"></span>
</label>
</a>
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
@@ -923,27 +821,6 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../cli/" class="md-nav__link">
<span class="md-ellipsis">
Cli
</span>
</a>
</li>
@@ -1081,6 +958,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.servers.mcp_server-classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
<nav class="md-nav" aria-label="Classes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.servers.mcp_server.MCPServer" class="md-nav__link">
<span class="md-ellipsis">
MCPServer
@@ -1091,6 +978,16 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.servers.mcp_server.MCPServer-functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
<nav class="md-nav" aria-label="Functions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#docforge.servers.mcp_server.MCPServer.run" class="md-nav__link">
<span class="md-ellipsis">
run
@@ -1107,6 +1004,16 @@
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1133,7 +1040,7 @@
<h2 id="docforge.servers.mcp_server" class="doc doc-heading">
<span class="doc doc-object-name doc-module-name">docforge.servers.mcp_server</span>
<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">docforge.servers.mcp_server</span>
</h2>
@@ -1149,26 +1056,28 @@
<h3 id="docforge.servers.mcp_server-classes">Classes</h3>
<div class="doc doc-object doc-class">
<h3 id="docforge.servers.mcp_server.MCPServer" class="doc doc-heading">
<span class="doc doc-object-name doc-class-name">MCPServer</span>
<h4 id="docforge.servers.mcp_server.MCPServer" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">MCPServer</span>
</h3>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">MCPServer</span><span class="p">(</span><span class="n">mcp_root</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span>
</code></pre></div>
</h4>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">MCPServer</span><span class="p">(</span><span class="n">mcp_root</span><span class="p">:</span> <span class="n">Path</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>MCP server for serving a pre-built MCP documentation bundle.</p>
<p>MCP server for serving a pre-generated documentation bundle.</p>
<p>The server exposes documentation resources and diagnostic tools through
MCP endpoints backed by JSON files generated by the MCP renderer.</p>
<p>Initialize the MCPServer.</p>
<p>Initialize the MCP server.</p>
<p><span class="doc-section-title">Parameters:</span></p>
@@ -1189,7 +1098,9 @@
</td>
<td>
<div class="doc-md-description">
<p>Path to the directory containing pre-built MCP JSON resources.</p>
<p>Directory containing the generated MCP documentation
bundle (for example <code>index.json</code>, <code>nav.json</code>, and
<code>modules/</code>).</p>
</div>
</td>
<td>
@@ -1203,7 +1114,7 @@
</td>
<td>
<div class="doc-md-description">
<p>Name of the MCP server.</p>
<p>Identifier used for the MCP server instance.</p>
</div>
</td>
<td>
@@ -1224,18 +1135,18 @@
<h5 id="docforge.servers.mcp_server.MCPServer-functions">Functions</h5>
<div class="doc doc-object doc-function">
<h4 id="docforge.servers.mcp_server.MCPServer.run" class="doc doc-heading">
<span class="doc doc-object-name doc-function-name">run</span>
<h6 id="docforge.servers.mcp_server.MCPServer.run" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">run</span>
</h4>
<div class="doc-signature highlight"><pre><span></span><code><span class="nf">run</span><span class="p">(</span><span class="n">transport</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="s1">&#39;stdio&#39;</span><span class="p">,</span> <span class="s1">&#39;sse&#39;</span><span class="p">,</span> <span class="s1">&#39;streamable-http&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;streamable-http&#39;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</code></pre></div>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">run</span><span class="p">(</span><span class="n">transport</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="s1">&#39;stdio&#39;</span><span class="p">,</span> <span class="s1">&#39;sse&#39;</span><span class="p">,</span> <span class="s1">&#39;streamable-http&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;streamable-http&#39;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
@@ -1260,7 +1171,8 @@
</td>
<td>
<div class="doc-md-description">
<p>MCP transport (default: streamable-http)</p>
<p>Transport mechanism used by the MCP server. Supported
options include <code>stdio</code>, <code>sse</code>, and <code>streamable-http</code>.</p>
</div>
</td>
<td>
@@ -1307,6 +1219,8 @@
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
@@ -1344,7 +1258,7 @@
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.tabs", "navigation.expand", "navigation.top", "navigation.instant", "content.code.copy", "content.code.annotate"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.sections", "navigation.expand", "navigation.top", "navigation.instant", "navigation.tracking", "navigation.indexes", "content.code.copy", "content.code.annotate", "content.tabs.link", "content.action.edit", "search.highlight", "search.share", "search.suggest"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../../assets/javascripts/bundle.f55a23d4.min.js"></script>

Binary file not shown.