☰ GDG /
Docstrings (001–005)
#001 gdtest_minimal #002 gdtest_google #003 gdtest_sphinx #004 gdtest_nodocs #005 gdtest_mixed_docs
Layouts (006–013)
#006 gdtest_src_layout #007 gdtest_python_layout #008 gdtest_lib_layout #009 gdtest_hatch #010 gdtest_setuptools_find #011 gdtest_setup_cfg #012 gdtest_setup_py #013 gdtest_auto_discover
Exports (014–017)
#014 gdtest_no_all #015 gdtest_all_concat #016 gdtest_config_exclude #017 gdtest_auto_exclude
Object Types (018–027)
#018 gdtest_small_class #019 gdtest_big_class #020 gdtest_dataclasses #021 gdtest_enums #022 gdtest_typed_containers #023 gdtest_protocols #024 gdtest_descriptors #025 gdtest_dunders #026 gdtest_nested_class #027 gdtest_constants
Directives (028–032)
#028 gdtest_seealso #029 gdtest_nodoc #030 gdtest_user_guide_auto #031 gdtest_user_guide_sections #032 gdtest_user_guide_subdirs
User Guide (033–038)
#033 gdtest_user_guide_explicit #034 gdtest_user_guide_custom_dir #035 gdtest_user_guide_hyphen #036 gdtest_readme_rst #037 gdtest_index_qmd #038 gdtest_index_md
Landing Pages (039–043)
#039 gdtest_no_readme #040 gdtest_index_wins #041 gdtest_full_extras #042 gdtest_github_contrib #043 gdtest_cli_click
Extras & Config (044–050)
#044 gdtest_cli_nested #045 gdtest_explicit_ref #046 gdtest_kitchen_sink #047 gdtest_name_mismatch #048 gdtest_src_big_class #049 gdtest_google_big_class #050 gdtest_user_guide_cli
Cross-Dimension (051–065)
#051 gdtest_explicit_big_class #052 gdtest_src_no_all #053 gdtest_extras_guide #054 gdtest_google_seealso #055 gdtest_setup_cfg_src #056 gdtest_exclude_cli #057 gdtest_src_explicit_ref #058 gdtest_async_funcs #059 gdtest_generators #060 gdtest_overloads #061 gdtest_abstract_props #062 gdtest_multi_inherit #063 gdtest_slots_class #064 gdtest_frozen_dc #065 gdtest_generics
API Patterns (066–077)
#066 gdtest_context_mgr #067 gdtest_decorators #068 gdtest_exceptions #069 gdtest_reexports #070 gdtest_many_exports #071 gdtest_deep_nesting #072 gdtest_long_docs #073 gdtest_many_guides #074 gdtest_many_big_classes #075 gdtest_flit #076 gdtest_pdm #077 gdtest_namespace
Scale & Stress (078–082)
#078 gdtest_monorepo #079 gdtest_multi_module #080 gdtest_src_legacy #081 gdtest_empty_module #082 gdtest_all_private
Build Systems (083–088)
#083 gdtest_duplicate_all #084 gdtest_badge_readme #085 gdtest_math_docs #086 gdtest_mixed_guide_ext #087 gdtest_unicode_docs #088 gdtest_config_all_on
Edge Cases (089–095)
#089 gdtest_config_display #090 gdtest_config_minimal #091 gdtest_config_parser #092 gdtest_config_extra_keys #093 gdtest_github_icon #094 gdtest_source_branch #095 gdtest_source_path
Config Matrix (096–100)
#096 gdtest_source_title #097 gdtest_source_disabled #098 gdtest_sidebar_disabled #099 gdtest_sidebar_min_items #100 gdtest_sidebar_float
Config Options (101–125)
#101 gdtest_cli_name #102 gdtest_dynamic_false #103 gdtest_parser_google #104 gdtest_parser_sphinx #105 gdtest_display_name #106 gdtest_funding #107 gdtest_authors_multi #108 gdtest_no_darkmode #109 gdtest_exclude_list #110 gdtest_jupyter_kernel #111 gdtest_config_sections #112 gdtest_config_ug_string #113 gdtest_config_ug_list #114 gdtest_config_changelog #115 gdtest_config_reference #116 gdtest_config_combo_a #117 gdtest_config_combo_b #118 gdtest_config_combo_c #119 gdtest_config_combo_d #120 gdtest_config_combo_e #121 gdtest_config_combo_f #122 gdtest_attribution_on #123 gdtest_attribution_off #124 gdtest_rst_versionadded #125 gdtest_rst_deprecated
Docstring Richness (126–150)
#126 gdtest_rst_note #127 gdtest_rst_warning #128 gdtest_rst_tip #129 gdtest_rst_caution #130 gdtest_rst_danger #131 gdtest_rst_important #132 gdtest_rst_mixed_dirs #133 gdtest_sphinx_func_role #134 gdtest_sphinx_class_role #135 gdtest_sphinx_exc_role #136 gdtest_sphinx_meth_role #137 gdtest_sphinx_mixed_roles #138 gdtest_numpy_rich #139 gdtest_google_rich #140 gdtest_sphinx_rich #141 gdtest_docstring_examples #142 gdtest_docstring_notes #143 gdtest_docstring_warnings #144 gdtest_docstring_references #145 gdtest_docstring_seealso #146 gdtest_docstring_math #147 gdtest_docstring_tables #148 gdtest_docstring_combo #149 gdtest_ug_auto #150 gdtest_ug_numbered
UG Variations (151–165)
#151 gdtest_ug_sections_fm #152 gdtest_ug_subdirs #153 gdtest_ug_custom_dir #154 gdtest_ug_deep_nest #155 gdtest_ug_mixed_ext #156 gdtest_ug_many_pages #157 gdtest_ug_explicit_order #158 gdtest_ug_single_page #159 gdtest_ug_no_frontmatter #160 gdtest_ug_with_code #161 gdtest_ug_with_images #162 gdtest_ug_hyphen_dir #163 gdtest_ug_combo #164 gdtest_sec_examples #165 gdtest_sec_tutorials
Custom Sections (166–175)
#166 gdtest_sec_recipes #167 gdtest_sec_blog #168 gdtest_sec_faq #169 gdtest_sec_multi #170 gdtest_sec_navbar_after #171 gdtest_sec_with_ug #172 gdtest_sec_with_ref #173 gdtest_sec_deep #174 gdtest_sec_index_opt #175 gdtest_sec_index_hero
Reference Config (176–185)
#176 gdtest_sec_sidebar_single #177 gdtest_custom_passthrough_navbar #178 gdtest_custom_raw_navbar_after #179 gdtest_custom_mixed_modes #180 gdtest_custom_nested_combo #181 gdtest_custom_basename_output #182 gdtest_custom_nested_output #183 gdtest_custom_missing_dir_combo #184 gdtest_ref_explicit #185 gdtest_ref_members_false
Site Theming (186–195)
#186 gdtest_ref_mixed #187 gdtest_ref_reorder #188 gdtest_ref_sectioned #189 gdtest_ref_single_section #190 gdtest_ref_module_expand #191 gdtest_ref_big_class #192 gdtest_ref_multi_big #193 gdtest_ref_title #194 gdtest_theme_cosmo #195 gdtest_theme_lumen
Stress Tests (196–200)
#196 gdtest_theme_cerulean #197 gdtest_toc_disabled #198 gdtest_toc_depth #199 gdtest_toc_title #200 gdtest_site_combo #201 gdtest_display_badges #202 gdtest_display_authors #203 gdtest_display_funding #204 gdtest_stress_all_config #205 gdtest_stress_all_docstr #206 gdtest_stress_all_ug #207 gdtest_stress_all_sections #208 gdtest_stress_everything #209 gdtest_src_google_seealso #210 gdtest_hatch_nodoc #211 gdtest_pdm_big_class #212 gdtest_flit_enums #213 gdtest_namespace_ug #214 gdtest_ug_subdir_numbered #215 gdtest_homepage_ug #216 gdtest_long_names #217 gdtest_logo #218 gdtest_hero_basic #219 gdtest_hero_readme_badges #220 gdtest_hero_disabled #221 gdtest_hero_custom #222 gdtest_hero_wordmark #223 gdtest_hero_no_logo #224 gdtest_hero_explicit_badges #225 gdtest_hero_index_qmd #226 gdtest_hero_auto_logo #227 gdtest_md_disabled #228 gdtest_md_no_widget #229 gdtest_announce_simple #230 gdtest_announce_dict #231 gdtest_announce_disabled #232 gdtest_gradient_sky #233 gdtest_gradient_peach #234 gdtest_gradient_prism #235 gdtest_gradient_lilac #236 gdtest_gradient_slate #237 gdtest_gradient_honey #238 gdtest_gradient_dusk #239 gdtest_gradient_mint #240 gdtest_gradient_navbar #241 gdtest_gradient_both #242 gdtest_gradient_mixed #243 gdtest_gradient_no_dismiss #244 gdtest_header_text #245 gdtest_header_list #246 gdtest_header_file #247 gdtest_navbar_color #248 gdtest_navbar_color_light #249 gdtest_navbar_color_dark #250 gdtest_navbar_color_same #251 gdtest_navbar_color_split #252 gdtest_kitchen_sink_q #253 gdtest_stress_everything_q #254 gdtest_seealso_desc #255 gdtest_numpy_seealso_desc #256 gdtest_interlinks_prose #257 gdtest_autolink #258 gdtest_skill_default #259 gdtest_skill_curated #260 gdtest_skill_config #261 gdtest_skill_disabled #262 gdtest_skill_rich #263 gdtest_skill_combo #264 gdtest_skill_complex #265 gdtest_i18n_french #266 gdtest_i18n_japanese #267 gdtest_i18n_arabic #268 gdtest_code_cells #269 gdtest_nav_icons #270 gdtest_page_tags #271 gdtest_page_status #272 gdtest_tag_location #273 gdtest_icon_shortcode #274 gdtest_homepage_ug_subdirs #275 gdtest_gt_tables #276 gdtest_scale_to_fit #277 gdtest_scale_min_scale #278 gdtest_homepage_wide #279 gdtest_interlinks_userguide #280 gdtest_code_span_headings #281 gdtest_sec_blog_user_index #282 gdtest_sec_dir_titles #283 gdtest_namespace_src #284 gdtest_auto_include #285 gdtest_no_auto_exclude #286 gdtest_tbl_preview #287 gdtest_tbl_shortcode #288 gdtest_tbl_explorer #289 gdtest_hr_shortcode #290 gdtest_accent_color #291 gdtest_keys_shortcode #292 gdtest_inline_methods #293 gdtest_inline_always #294 gdtest_inline_never #295 gdtest_inline_threshold #296 gdtest_ref_inherited_explicit #297 gdtest_ref_include_inherited #298 gdtest_mock_code #299 gdtest_details_shortcode
299/299 built ⏱ 34.7s 🧪 18/19

gdtest-mock-code

Synthetic test for source-code: mock and output-title.

Purpose

Tests that Great Docs correctly:

  • Splits mock cells into display + eval pairs
  • Wraps output in titled containers when output-title is set
  • Frames output without a title when output-frame: true is set
  • Handles output-title on non-mock cells
  • Handles mock cells with no delimiter (display-only)
  • Handles multiple mock cells on one page
  • Goes frameless for rich HTML outputs (GT tables)

Mock code cells (source-code: mock) and output-title containers. Tests that the preprocessor splits mock cells into display + eval pairs, output-title wraps output in titled containers on both mock and regular cells, mock cells with no delimiter are display-only, and multiple mock cells work on a single page.

Source files
📁 gdtest_mock_code/
📄 __init__.py
"""Test package for mock code cells and output-title."""

__version__ = "0.1.0"
__all__ = ["add", "multiply", "greet"]


def add(a: int, b: int) -> int:
    """
    Add two numbers.

    Parameters
    ----------
    a
        First number.
    b
        Second number.

    Returns
    -------
    int
        Sum of a and b.

    Examples
    --------
    ```python
    from gdtest_mock_code import add

    add(2, 3)
    ```
    """
    return a + b


def multiply(a: int, b: int) -> int:
    """
    Multiply two numbers.

    Parameters
    ----------
    a
        First number.
    b
        Second number.

    Returns
    -------
    int
        Product of a and b.
    """
    return a * b


def greet(name: str) -> str:
    """
    Greet someone by name.

    Parameters
    ----------
    name
        The person to greet.

    Returns
    -------
    str
        A greeting string.
    """
    return f"Hello, {name}!"
📁 user_guide/
📄 01-basic-mock.qmd
---
title: Basic Mock Cell
---

A basic mock cell splits display code from eval code.

```{python}
#| source-code: mock
import gdtest_mock_code

gdtest_mock_code.add(10, 20)
# ---
from gdtest_mock_code import add
add(10, 20)
```

The reader sees `gdtest_mock_code.add(10, 20)` but the cell
actually runs `from gdtest_mock_code import add; add(10, 20)`.
📄 02-mock-output-title.qmd
---
title: Mock with Output Title
---

Combines `source-code: mock` with `output-title`.

```{python}
#| source-code: mock
#| output-title: Addition Result
gdtest_mock_code.add(3, 4)
# ---
from gdtest_mock_code import add
add(3, 4)
```

The output should appear inside a titled container
labelled "Addition Result".
📄 03-standalone-output-title.qmd
---
title: Standalone Output Title
---

`output-title` works on regular (non-mock) executable cells too.

```{python}
#| output-title: Greeting Output
from gdtest_mock_code import greet
greet("World")
```

The output should appear inside a titled container
labelled "Greeting Output".
📄 04-no-delimiter.qmd
---
title: No Delimiter Mock
---

A mock cell with no `# ---` delimiter is display-only
(equivalent to `eval: false`).

```{python}
#| source-code: mock
gdtest_mock_code.multiply(6, 7)
```

There is no eval cell emitted, so no output appears.
📄 05-multiple-mocks.qmd
---
title: Multiple Mock Cells
---

A page with several mock cells interleaved with prose.

## First calculation

```{python}
#| source-code: mock
gdtest_mock_code.add(1, 2)
# ---
from gdtest_mock_code import add
add(1, 2)
```

## Second calculation

```{python}
#| source-code: mock
#| output-title: Product
gdtest_mock_code.multiply(3, 4)
# ---
from gdtest_mock_code import multiply
multiply(3, 4)
```

## Third — a greeting

```{python}
#| source-code: mock
#| output-title: Greeting
gdtest_mock_code.greet("GDG")
# ---
from gdtest_mock_code import greet
greet("GDG")
```
📄 06-html-repr-output-title.qmd
---
title: HTML Repr with Output Title
---

When `output-title` wraps a rich HTML object like a GT table
the container should go frameless — no double border.

### GT table with output-title

```{python}
#| source-code: mock
#| output-title: Example Table
import great_tables as gt
import pandas as pd

gt.GT(pd.DataFrame({"x": [1, 2], "y": [3, 4]}))
# ---
from great_tables import GT
import pandas as pd

GT(pd.DataFrame({"x": [1, 2], "y": [3, 4]}))
```

### GT table without output-title (baseline)

```{python}
#| source-code: mock
import great_tables as gt
import pandas as pd

gt.GT(pd.DataFrame({"a": [10, 20], "b": [30, 40]}))
# ---
from great_tables import GT
import pandas as pd

GT(pd.DataFrame({"a": [10, 20], "b": [30, 40]}))
```

### Plain text with output-title (framed)

```{python}
#| output-title: Text Output
from gdtest_mock_code import greet
greet("comparison")
```

The GT table with output-title should show a floating label
with no frame.  The baseline GT table (no output-title) should
render identically to any other GT table.  The text output
should keep its frame.
📄 07-output-frame.qmd
---
title: Output Frame (No Title)
---

The `output-frame` option adds a bordered container around
cell output without a title label.

### Framed output (no title)

```{python}
#| output-frame: true
from gdtest_mock_code import greet
greet("framed")
```

### Framed output with mock cell

```{python}
#| source-code: mock
#| output-frame: true
gdtest_mock_code.add(5, 5)
# ---
from gdtest_mock_code import add
add(5, 5)
```

### Unframed output (baseline)

```{python}
from gdtest_mock_code import greet
greet("no frame")
```

The first two outputs should have a border but no title
header.  The third should render as a normal cell output.
📄 README.md
# gdtest-mock-code

Synthetic test for `source-code: mock` and `output-title`.

## Purpose

Tests that Great Docs correctly:

- Splits mock cells into display + eval pairs
- Wraps output in titled containers when `output-title` is set
- Frames output without a title when `output-frame: true` is set
- Handles `output-title` on non-mock cells
- Handles mock cells with no delimiter (display-only)
- Handles multiple mock cells on one page
- Goes frameless for rich HTML outputs (GT tables)
📄 great-docs.yml generated
# Great Docs Configuration
# See https://posit-dev.github.io/great-docs/user-guide/configuration.html

# Module Name (optional)
# ----------------------
# Set this if your importable module name differs from the project name.
# Example: project 'py-yaml12' with module name 'yaml12'
# module: yaml12

# Docstring Parser
# ----------------
# The docstring format used in your package (numpy, google, or sphinx)
parser: numpy

# Dynamic Introspection
# ---------------------
# Use runtime introspection for more accurate documentation (default: true)
# Set to false if your package has cyclic alias issues (e.g., PyO3/Rust bindings)
dynamic: true

# API Discovery Settings
# ----------------------
# Exclude items from auto-documentation
# exclude:
#   - InternalClass
#   - helper_function

# Logo & Favicon
# ---------------
# Point to a single logo file (replaces the text title in the navbar):
# logo: assets/logo.svg
#
# For light/dark variants:
# logo:
#   light: assets/logo-light.svg
#   dark: assets/logo-dark.svg
#
# To show the text title alongside the logo, add: show_title: true

# Funding / Copyright Holder
# --------------------------
# Credit the organization that funds or holds copyright for this package.
# Displays in sidebar and footer. Homepage and ROR provide links.
# funding:
#   name: "Posit Software, PBC"
#   roles:
#     - Copyright holder
#     - funder
#   homepage: https://posit.co
#   ror: https://ror.org/03wc8by49

# API Reference Structure
# -----------------------
# Customize the sections below to organize your API documentation.
# - Reorder items within a section to change their display order
# - Move items between sections or create new sections
# - Use 'members: false' to exclude methods from documentation
# - Add 'desc:' to sections for descriptions

reference:
  - title: Functions
    desc: Utility functions
    contents:
      - add
      - greet
      - multiply

# Site URL
# --------
# Canonical address of the deployed documentation site.
# Required for subdirectory deployments, skills page install commands,
# .well-known/ discovery, and sitemaps.
# site_url: "https://your-org.github.io/your-package/"

# Site Settings
# -------------
# site:
#   theme: flatly              # Quarto theme (default: flatly)
#   toc: true                  # Show table of contents (default: true)
#   toc-depth: 2               # TOC heading depth (default: 2)
#   toc-title: On this page    # TOC title (default: "On this page")

# Jupyter Kernel
# --------------
# Jupyter kernel to use for executing code cells in .qmd files.
# This is set at the project level so it applies to all pages, including
# auto-generated API reference pages. Can be overridden in individual .qmd
# file frontmatter if needed for special cases.
jupyter: python3

# CLI Documentation
# -----------------
# cli:
#   enabled: true              # Enable CLI documentation
#   module: my_package.cli     # Module containing Click commands
#   name: cli                  # Name of the Click command object