1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678
|
"""Documentation configuration."""
from __future__ import annotations
import datetime
import faulthandler
import importlib.util
import locale
import os
from pathlib import Path
import sys
from atsphinx.mini18n import get_template_dir
# Otherwise VTK reader issues on some systems, causing sphinx to crash. See also #226.
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
faulthandler.enable()
# This flag is set *before* any pyvista import. It allows `pyvista.core._typing_core._aliases` to
# import things like `scipy` or `matplotlib` that would be unnecessarily bulky to import by default
# during normal operation. See https://github.com/pyvista/pyvista/pull/7023.
# Note that `import make_tables` below imports pyvista.
os.environ['PYVISTA_DOCUMENTATION_BULKY_IMPORTS_ALLOWED'] = 'true'
sys.path.insert(0, str(Path().cwd()))
import make_external_gallery
import make_tables
make_external_gallery.make_example_gallery()
make_tables.make_all_tables()
# -- pyvista configuration ---------------------------------------------------
import pyvista
from pyvista.core.errors import PyVistaDeprecationWarning
from pyvista.core.utilities.docs import linkcode_resolve # noqa: F401
from pyvista.core.utilities.docs import pv_html_page_context
from pyvista.plotting.utilities.sphinx_gallery import DynamicScraper
# Manage errors
pyvista.set_error_output_file('errors.txt')
# Ensure that offscreen rendering is used for docs generation
pyvista.OFF_SCREEN = True # Not necessary - simply an insurance policy
# Preferred plotting style for documentation
pyvista.set_plot_theme('document_build')
pyvista.set_jupyter_backend(None)
# Save figures in specified directory
pyvista.FIGURE_PATH = str(Path('./images/').resolve() / 'auto-generated/')
if not Path(pyvista.FIGURE_PATH).exists():
Path(pyvista.FIGURE_PATH).mkdir()
# necessary when building the sphinx gallery
pyvista.BUILDING_GALLERY = True
os.environ['PYVISTA_BUILDING_GALLERY'] = 'true'
# SG warnings
import warnings
warnings.filterwarnings(
'ignore',
category=UserWarning,
message='Matplotlib is currently using agg, which is a non-GUI backend, '
'so cannot show the figure.',
)
# Prevent deprecated features from being used in examples
warnings.filterwarnings(
'error',
category=PyVistaDeprecationWarning,
)
# -- General configuration ------------------------------------------------
numfig = False
html_logo = './_static/pyvista_logo.svg'
html_favicon = './_static/pyvista_logo.svg'
sys.path.append(str(Path('./_ext').resolve()))
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'atsphinx.mini18n',
'enum_tools.autoenum',
'jupyter_sphinx',
'notfound.extension',
'numpydoc',
'pyvista.ext.plot_directive',
'pyvista.ext.viewer_directive',
'sphinx.ext.autodoc',
'sphinx.ext.autosummary',
'sphinx.ext.linkcode', # Adds [Source] button to each API site by calling ``linkcode_resolve``
'sphinx.ext.extlinks',
'sphinx.ext.intersphinx',
'sphinx.ext.duration',
'sphinx_copybutton',
'sphinx_design',
'sphinx_gallery.gen_gallery',
'sphinxcontrib.asciinema',
'sphinx_tags',
'sphinx_toolbox.more_autodoc.overloads',
'sphinx_toolbox.more_autodoc.typevars',
'sphinx_toolbox.more_autodoc.autonamedtuple',
'sphinxext.opengraph',
'sphinx_sitemap',
'vtk_xref',
]
# Configuration for sphinx.ext.autodoc
# Do not expand following type aliases when generating the docs
autodoc_type_aliases = {
'Chart': 'pyvista.Chart',
'ColorLike': 'pyvista.ColorLike',
'ArrayLike': 'pyvista.ArrayLike',
'VectorLike': 'pyvista.VectorLike',
'MatrixLike': 'pyvista.MatrixLike',
'BoundsLike': 'pyvista.BoundsLike',
'CellsLike': 'pyvista.CellsLike',
'CellArrayLike': 'pyvista.CellArrayLike',
'TransformLike': 'pyvista.TransformLike',
'RotationLike': 'pyvista.RotationLike',
'InteractionEventType': 'pyvista.InteractionEventType',
}
# Needed to address a code-block parsing error by sphinx for an example
autodoc_mock_imports = ['example']
# Hide overload type signatures (from "sphinx_toolbox.more_autodoc.overload")
overloads_location = ['bottom']
# Display long function signatures with each param on a new line.
# Helps make annotated signatures more readable.
maximum_signature_line_length = 88
# See https://numpydoc.readthedocs.io/en/latest/install.html
numpydoc_use_plots = True
numpydoc_show_class_members = False
numpydoc_xref_param_type = True
# Warn if target links or references cannot be found
nitpicky = True
# Except ignore these entries
nitpick_ignore_regex = [
# NOTE: We need to ignore any/all pyvista objects which are used as type hints
# in function signatures since these are not linked by sphinx (bug).
# See https://github.com/pyvista/pyvista/pull/6206#issuecomment-2149138086
#
# PyVista TypeVars and TypeAliases
(r'py:.*', '.*ColorLike'),
(r'py:.*', '.*ColormapOptions'),
(r'py:.*', '.*ArrayLike'),
(r'py:.*', '.*MatrixLike'),
(r'py:.*', '.*VectorLike'),
(r'py:.*', '.*TransformLike'),
(r'py:.*', '.*InteractionEventType'),
(r'py:.*', '.*BoundsLike'),
(r'py:.*', '.*RotationLike'),
(r'py:.*', '.*CellsLike'),
(r'py:.*', '.*ShapeLike'),
(r'py:.*', '.*NumpyArray'),
(r'py:.*', '.*_ArrayLikeOrScalar'),
(r'py:.*', '.*NumberType'),
(r'py:.*', '.*_PolyDataType'),
(r'py:.*', '.*_UnstructuredGridType'),
(r'py:.*', '.*_GridType'),
(r'py:.*', '.*_PointGridType'),
(r'py:.*', '.*_PointSetType'),
(r'py:.*', '.*_DataSetType'),
(r'py:.*', '.*_DataSetOrMultiBlockType'),
(r'py:.*', '.*_DataObjectType'),
(r'py:.*', '.*_MeshType_co'),
(r'py:.*', '.*_WrappableVTKDataObjectType'),
(r'py:.*', '.*_VTKWriterType'),
(r'py:.*', '.*NormalsLiteral'),
(r'py:.*', '.*_CellQualityLiteral'),
(r'py:.*', '.*T'),
#
# Dataset-related types
(r'py:.*', '.*DataSet'),
(r'py:.*', '.*DataObject'),
(r'py:.*', '.*PolyData'),
(r'py:.*', '.*UnstructuredGrid'),
(r'py:.*', '.*_TypeMultiBlockLeaf'),
(r'py:.*', '.*Grid'),
(r'py:.*', '.*PointGrid'),
(r'py:.*', '.*_PointSet'),
#
# PyVista array-related types
(r'py:.*', 'ActiveArrayInfo'),
(r'py:.*', 'FieldAssociation'),
(r'py:.*', '.*CellLiteral'),
(r'py:.*', '.*PointLiteral'),
(r'py:.*', '.*FieldLiteral'),
(r'py:.*', '.*RowLiteral'),
(r'py:.*', '.*_SerializedDictArray'),
#
# PyVista AxesAssembly-related types
(r'py:.*', '.*GeometryTypes'),
(r'py:.*', '.*ShaftType'),
(r'py:.*', '.*TipType'),
(r'py:.*', '.*_AxesGeometryKwargs'),
(r'py:.*', '.*_OrthogonalPlanesKwargs'),
#
# PyVista Widget enums
(r'py:.*', '.*PickerType'),
(r'py:.*', '.*ElementType'),
#
# PyVista Texture enum
(r'py:.*', '.*WrapType'),
#
# PyVista plotting-related classes
(r'py:.*', '.*BasePlotter'),
(r'py:.*', '.*ScalarBars'),
(r'py:.*', '.*Theme'),
#
# Misc pyvista ignores
(r'py:.*', 'principal_axes'), # Valid ref, but is not linked correctly in some wrapped cases
(r'py:.*', 'axes_enabled'), # Valid ref, but is not linked correctly in some wrapped cases
(r'py:.*', '.*lookup_table_ndarray'),
(r'py:.*', '.*colors.Colormap'),
(r'py:.*', 'colors.ListedColormap'),
(r'py:.*', '.*CellQualityInfo'),
(r'py:.*', 'cycler.Cycler'),
(r'py:.*', 'pyvista.PVDDataSet'),
(r'py:.*', 'ScalarBarArgs'),
(r'py:.*', 'SilhouetteArgs'),
(r'py:.*', 'BackfaceArgs'),
(r'py:.*', 'CullingOptions'),
(r'py:.*', 'OpacityOptions'),
(r'py:.*', 'CameraPositionOptions'),
(r'py:.*', 'StyleOptions'),
(r'py:.*', 'FontFamilyOptions'),
(r'py:.*', 'HorizontalOptions'),
(r'py:.*', 'VerticalOptions'),
(r'py:.*', 'JupyterBackendOptions'),
#
# Built-in python types. TODO: Fix links (intersphinx?)
(r'py:.*', '.*StringIO'),
(r'py:.*', '.*Path'),
(r'py:.*', '.*UserDict'),
(r'py:.*', 'sys.float_info.max'),
(r'py:.*', '.*NoneType'),
(r'py:.*', 'collections.*'),
(r'py:.*', '.*PathStrSeq'),
#
# NumPy types. TODO: Fix links (intersphinx?)
(r'py:.*', '.*DTypeLike'),
(r'py:.*', 'np.*'),
(r'py:.*', 'npt.*'),
(r'py:.*', 'numpy.*'),
(r'py:.*', '.*NDArray'),
#
# Third party ignores. TODO: Can these be linked with intersphinx?
(r'py:.*', 'ipywidgets.Widget'),
(r'py:.*', 'EmbeddableWidget'),
(r'py:.*', 'Widget'),
(r'py:.*', 'IFrame'),
(r'py:.*', 'Image'),
(r'py:.*', 'meshio.*'),
(r'py:.*', '.*Mesh'),
(r'py:.*', '.*Trimesh'),
(r'py:.*', 'networkx.*'),
(r'py:.*', 'Rotation'),
(r'py:.*', 'vtk.*'),
(r'py:.*', '_vtk.*'),
(r'py:.*', 'VTK'),
#
# Misc general ignores
(r'py:.*', 'optional'),
]
add_module_names = False
# Intersphinx mapping
# NOTE: if these are changed, then doc/intersphinx/update.sh
# must be changed accordingly to keep auto-updated mappings working
intersphinx_mapping = {
'python': (
'https://docs.python.org/3.11',
(None, '../intersphinx/python-objects.inv'),
), # Pin Python 3.11. See https://github.com/pyvista/pyvista/pull/5018 .
'scipy': (
'https://docs.scipy.org/doc/scipy/',
(None, '../intersphinx/scipy-objects.inv'),
),
'numpy': ('https://numpy.org/doc/stable', (None, '../intersphinx/numpy-objects.inv')),
'matplotlib': (
'https://matplotlib.org/stable',
(None, '../intersphinx/matplotlib-objects.inv'),
),
'imageio': (
'https://imageio.readthedocs.io/en/stable',
(None, '../intersphinx/imageio-objects.inv'),
),
'pandas': (
'https://pandas.pydata.org/pandas-docs/stable',
(None, '../intersphinx/pandas-objects.inv'),
),
'pytest': ('https://docs.pytest.org/en/stable', (None, '../intersphinx/pytest-objects.inv')),
'pyvistaqt': ('https://qtdocs.pyvista.org/', (None, '../intersphinx/pyvistaqt-objects.inv')),
'trimesh': ('https://trimesh.org', (None, '../intersphinx/trimesh-objects.inv')),
}
intersphinx_timeout = 10
linkcheck_retries = 3
linkcheck_timeout = 500
# Select if we want to generate production or dev documentation
#
# Generate class table auto-summary when enabled. This generates one page per
# class method or attribute and should be used with the production
# documentation, but local builds and PR commits can get away without this as
# it takes ~4x as long to generate the documentation.
templates_path = ['_templates', get_template_dir()]
# Autosummary configuration
autosummary_context = {
# Methods that should be skipped when generating the docs
# __init__ should be documented in the class docstring
# override is a VTK method
'skipmethods': ['__init__', 'override'],
}
# The suffix(es) of source filenames.
source_suffix = '.rst'
# The main toctree document.
root_doc = 'index'
# General information about the project.
project = 'PyVista'
year = datetime.datetime.now(tz=datetime.timezone.utc).date().year
copyright = f'2017-{year}, The PyVista Developers' # noqa: A001
author = 'Alex Kaszynski and Bane Sullivan'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = pyvista.__version__
# The full version, including alpha/beta/rc tags.
release = pyvista.__version__
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = 'en'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This patterns also effect to html_static_path and html_extra_path
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', '**.ipynb_checkpoints', '_templates*']
html_extra_path = ['_extra']
# Pages are not detected correct by ``make linkcheck``
linkcheck_ignore = [
'https://data.kitware.com/#collection/55f17f758d777f6ddc7895b7/folder/5afd932e8d777f15ebe1b183',
'https://www.sciencedirect.com/science/article/abs/pii/S0309170812002564',
'https://www.researchgate.net/publication/2926068_LightKit_A_lighting_system_for_effective_visualization',
]
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'friendly'
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = False
# -- Sphinx Gallery Options
from sphinx_gallery.sorting import FileNameSortKey
class ResetPyVista:
"""Reset pyvista module to default settings."""
def __call__(self, gallery_conf, fname): # noqa: ARG002
"""Reset pyvista module to default settings.
If default documentation settings are modified in any example, reset here.
"""
import pyvista
pyvista._wrappers['vtkPolyData'] = pyvista.PolyData
pyvista.set_plot_theme('document_build')
def __repr__(self):
return 'ResetPyVista'
reset_pyvista = ResetPyVista()
# skip building the osmnx example if osmnx is not installed
has_osmnx = importlib.util.find_spec('fiona') and importlib.util.find_spec('osmnx')
sphinx_gallery_conf = {
'abort_on_example_error': True, # Fail early
# convert rst to md for ipynb
'pypandoc': True,
# path to your examples scripts
'examples_dirs': ['../../examples/'],
# path where to save gallery generated examples
'gallery_dirs': ['examples'],
# Pattern to search for example files
'filename_pattern': r'\.py' if has_osmnx else r'(?!osmnx-example)\.py',
# Remove the "Download all examples" button from the top level gallery
'download_all_examples': False,
# Remove sphinx configuration comments from code blocks
'remove_config_comments': True,
# Sort gallery example by file name instead of number of lines (default)
'within_subsection_order': FileNameSortKey,
# directory where function granular galleries are stored
'backreferences_dir': None,
# Modules for which function level galleries are created. In
'doc_module': 'pyvista',
'reference_url': {'pyvista': None}, # Add hyperlinks inside code blocks to pyvista methods
'image_scrapers': (DynamicScraper(), 'matplotlib'),
'first_notebook_cell': '%matplotlib inline',
'reset_modules': (reset_pyvista,),
'reset_modules_order': 'both',
'junit': str(Path('sphinx-gallery') / 'junit-results.xml'),
}
suppress_warnings = ['config.cache']
import re
# -- .. pyvista-plot:: directive ----------------------------------------------
from numpydoc.docscrape_sphinx import SphinxDocString
IMPORT_PYVISTA_RE = r'\b(import +pyvista|from +pyvista +import)\b'
IMPORT_MATPLOTLIB_RE = r'\b(import +matplotlib|from +matplotlib +import)\b'
pyvista_plot_setup = """
from pyvista import set_plot_theme as __s_p_t
__s_p_t('document_build')
del __s_p_t
"""
pyvista_plot_cleanup = pyvista_plot_setup
def _str_examples(self):
examples_str = '\n'.join(self['Examples'])
if (
self.use_plots
and re.search(IMPORT_MATPLOTLIB_RE, examples_str)
and 'plot::' not in examples_str
):
out = []
out += self._str_header('Examples')
out += ['.. plot::', '']
out += self._str_indent(self['Examples'])
out += ['']
return out
elif re.search(IMPORT_PYVISTA_RE, examples_str) and 'plot-pyvista::' not in examples_str:
out = []
out += self._str_header('Examples')
out += ['.. pyvista-plot::', '']
out += self._str_indent(self['Examples'])
out += ['']
return out
else:
return self._str_section('Examples')
SphinxDocString._str_examples = _str_examples
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
import sphinx_book_theme # noqa: F401
html_theme = 'sphinx_book_theme'
html_context = {
'github_user': 'pyvista',
'github_repo': 'pyvista',
'github_version': 'main',
'doc_path': 'doc/source',
'examples_path': 'examples',
}
html_show_sourcelink = False
html_copy_source = False
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
html_show_sphinx = False
def get_version_match(semver):
"""Evaluate the version match for the multi-documentation."""
if semver.endswith('dev0'):
return 'dev'
major, minor, _ = semver.split('.')
return f'{major}.{minor}'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
html_theme_options = {
'analytics': {'google_analytics_id': 'UA-140243896-1'},
'show_prev_next': False,
'github_url': 'https://github.com/pyvista/pyvista',
'collapse_navigation': True,
'use_edit_page_button': True,
'navigation_with_keys': False,
'show_navbar_depth': 1,
'max_navbar_depth': 3,
'icon_links': [
{
'name': 'Slack Community',
'url': 'https://communityinviter.com/apps/pyvista/pyvista',
'icon': 'fab fa-slack',
},
{
'name': 'Support',
'url': 'https://github.com/pyvista/pyvista/discussions',
'icon': 'fa fa-comment fa-fw',
},
{
'name': 'Contributing',
'url': 'https://github.com/pyvista/pyvista/blob/main/CONTRIBUTING.rst',
'icon': 'fa fa-gavel fa-fw',
},
{
'name': 'The Paper',
'url': 'https://doi.org/10.21105/joss.01450',
'icon': 'fa fa-file-text fa-fw',
},
],
}
# sphinx-panels shouldn't add bootstrap css since the pydata-sphinx-theme
# already loads it
panels_add_bootstrap_css = False
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
html_css_files = [
'cards.css', # used in card CSS
'no_italic.css', # disable italic for span classes
]
# -- Options for HTMLHelp output ------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = 'pyvistadoc'
# -- Options for LaTeX output ---------------------------------------------
latex_elements: dict[str, str] = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#
# 'point_size': '10pt',
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(root_doc, 'pyvista.tex', 'pyvista Documentation', author, 'manual'),
]
# -- Options for gettext output -------------------------------------------
# To specify names to enable gettext extracting and translation applying for i18n additionally.
# You can specify below names:
gettext_additional_targets = ['raw']
# -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [(root_doc, 'pyvista', 'pyvista Documentation', [author], 1)]
# -- Options for Texinfo output -------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(
root_doc,
'pyvista',
'pyvista Documentation',
author,
'pyvista',
'A Streamlined Python Interface for the Visualization Toolkit',
'Miscellaneous',
),
]
# -- Custom 404 page
notfound_context = {
'body': (
'<h1>Page not found.</h1>\n\n'
'Perhaps try the <a href="http://docs.pyvista.org/examples/index.html">examples page</a>.'
),
}
notfound_urls_prefix = None
# Copy button customization ---------------------------------------------------
# exclude traditional Python prompts from the copied code
copybutton_prompt_text = r'>>> ?|\.\.\. '
copybutton_prompt_is_regexp = True
# sphinx-tags options ---------------------------------------------------------
# See https://sphinx-tags.readthedocs.io/en/latest/index.html
tags_badge_colors = {
'load': 'primary',
'filter': 'secondary',
'plot': 'dark',
'widgets': 'success',
'lights': 'primary',
}
tags_create_tags = True
tags_create_badges = True
tags_index_head = 'Gallery examples categorised by tag:' # tags landing page intro text
tags_intro_text = 'Tags:' # prefix text for a tags list
tags_overview_title = 'Tags' # title for the tags landing page
tags_output_dir = 'tags'
tags_page_header = 'Gallery examples contain this tag:' # tag sub-page, header text
tags_page_title = 'Tag' # tag sub-page, title appended with the tag name
# sphinxext.opengraph ---------------------------------------------------------
ogp_site_url = 'https://docs.pyvista.org/'
ogp_image = 'https://docs.pyvista.org/_static/pyvista_banner_small.png'
# sphinx-sitemap options ---------------------------------------------------------
html_baseurl = 'https://docs.pyvista.org/'
# atsphinx.mini18n options ---------------------------------------------------------
html_sidebars = {
'**': [
'navbar-logo.html',
'icon-links.html',
'mini18n/snippets/select-lang.html',
'search-button-field.html',
'sbt-sidebar-nav.html',
],
}
mini18n_default_language = language
mini18n_support_languages = ['en', 'ja']
locale_dirs = ['../../pyvista-doc-translations/locale']
def setup(app): # noqa: D103
app.connect('html-page-context', pv_html_page_context)
app.add_css_file('copybutton.css')
app.add_css_file('no_search_highlight.css')
|