# ============================================================================
#
# The configuration produced by default is meant to highlight the features
# that Zensical provides and to serve as a starting point for your own
# projects.
# Read more: https://zensical.org/docs/setup/basics
#
# ============================================================================

[project]

repo_url = "https://gitea.psi.ch/controls"
edit_uri = "_edit/master/docs/"

#extra_javascript = [
#    "javascripts/mathjax.js",
#    "https://unpkg.com/mathjax@3/es5/tex-mml-chtml.js"
#]

# The site_name is shown in the page header and the browser window title
#
site_name = "Controls Documentation"

# The site_description is included in the HTML head and should contain a
# meaningful description of the site content for use by search engines.
#
site_description = """
This is the collection of related documentation by the Control System
team of the Center for Accelerator Science (CAS).
"""

# The site_author attribute. This is used in the HTML head element.
#
site_author = "Paul Scherrer Institute"

# The site_url is the canonical URL for your site. When building online
# documentation you should set this.
site_url = "https://controls.pages.psi.ch/"

# The copyright notice appears in the page footer and can contain an HTML
# fragment.
#
copyright = """
Copyright &copy; 2026 Paul Scherrer Institut
"""

# Zensical supports both implicit navigation and explicitly defined navigation.
# If you decide not to define a navigation here then Zensical will simply
# derive the navigation structure from the directory structure of your
# "docs_dir". The definition below demonstrates how a navigation structure
# can be defined using TOML syntax.
#
# Read more: https://zensical.org/docs/setup/navigation/

# nav = [
#   { "Home" = [
#   "index.md",
#   "UsefulLinks.md"
#   ]},
#   { "Services & Portfolio" = "ServicesPortfolio/index.md" },
#   { "Knowledge Center" = "KnowledgeCenter/index.md" },
#   { "Contacts & Support" = "ContactsSupport/*" },
#   { "Controls Internal" = "ControlsInternal/index.md" },
# ]

# With the "extra_css" option you can add your own CSS styling to customize
# your Zensical project according to your needs. You can add any number of
# CSS files.
#
# The path provided should be relative to the "docs_dir".
#
# Read more: https://zensical.org/docs/customization/#additional-css
#
#extra_css = ["assets/stylesheets/extra.css"]

# With the `extra_javascript` option you can add your own JavaScript to your
# project to customize the behavior according to your needs.
#
# The path provided should be relative to the "docs_dir".
#
# Read more: https://zensical.org/docs/customization/#additional-javascript
#extra_javascript = ["assets/javascript/extra.js"]

# ----------------------------------------------------------------------------
# Section for configuring theme options
# ----------------------------------------------------------------------------
[project.theme]


# Zensical allows you to override specific blocks, partials, or whole
# templates as well as to define your own templates. To do this, uncomment
# the custom_dir setting below and set it to a directory in which you
# keep your template overrides.
#
# Read more:
# - https://zensical.org/docs/customization/#extending-the-theme
#
custom_dir = "overrides"

# With the "favicon" option you can set your own image to use as the icon
# browsers will use in the browser title bar or tab bar. The path provided
# must be relative to the "docs_dir".
#
# Read more:
# - https://zensical.org/docs/setup/logo-and-icons/#favicon
# - https://developer.mozilla.org/en-US/docs/Glossary/Favicon
#
#favicon = "assets/images/favicon.png"

# Zensical supports more than 60 different languages. This means that the
# labels and tooltips that Zensical's templates produce are translated.
# The "language" option allows you to set the language used. This language
# is also indicated in the HTML head element to help with accessibility
# and guide search engines and translation tools.
#
# The default language is "en" (English). It is possible to create
# sites with multiple languages and configure a language selector. See
# the documentation for details.
#
# Read more:
# - https://zensical.org/docs/setup/language/
#
language = "en"

# Zensical provides a number of feature toggles that change the behavior
# of the documentation site.
features = [
    # Zensical includes an announcement bar. This feature allows users to
    # dismiss it then they have read the announcement.
    # https://zensical.org/docs/setup/header/#announcement-bar
    "announce.dismiss",

    # If you have a repository configured and turn feature this on, Zensical
    # will generate an edit button for the page. This works for common
    # repository hosting services.
    # https://zensical.org/docs/setup/repository/#code-actions
    "content.action.edit",

    # If you have a repository configured and turn feature this on, Zensical
    # will generate a button that allows the user to view the Markdown
    # code for the current page.
    # https://zensical.org/docs/setup/repository/#code-actions
    #"content.action.view",

    # Code annotations allow you to add an icon with a tooltip to your
    # code blocks to provide explanations at crucial points.
    # https://zensical.org/docs/authoring/code-blocks/#code-annotations
    "content.code.annotate",

    # This feature turns on a button in code blocks that allow users to
    # copy the content to their clipboard without first selecting it.
    # https://zensical.org/docs/authoring/code-blocks/#code-copy-button
    "content.code.copy",

    # Code blocks can include a button to allow for the selection of line
    # ranges by the user.
    # https://zensical.org/docs/authoring/code-blocks/#code-selection-button
    "content.code.select",

    # Zensical can render footnotes as inline tooltips, so the user can read
    # the footnote without leaving the context of the document.
    # https://zensical.org/docs/authoring/footnotes/#footnote-tooltips
    "content.footnote.tooltips",

    # If you have many content tabs that have the same titles (e.g., "Python",
    # "JavaScript", "Cobol"), this feature causes all of them to switch to
    # at the same time when the user chooses their language in one.
    # https://zensical.org/docs/authoring/content-tabs/#linked-content-tabs
    "content.tabs.link",

    # TODO: not sure I understand this one? Is there a demo of this in the docs?
    # https://zensical.org/docs/authoring/tooltips/#improved-tooltips
    "content.tooltips",

    # With this feature enabled, Zensical will automatically hide parts
    # of the header when the user scrolls past a certain point.
    # https://zensical.org/docs/setup/header/#automatic-hiding
    # "header.autohide",

    # Turn on this feature to expand all collapsible sections in the
    # navigation sidebar by default.
    # https://zensical.org/docs/setup/navigation/#navigation-expansion
    # "navigation.expand",

    # This feature turns on navigation elements in the footer that allow the
    # user to navigate to a next or previous page.
    # https://zensical.org/docs/setup/footer/#navigation
    "navigation.footer",

    # When section index pages are enabled, documents can be directly attached
    # to sections, which is particularly useful for providing overview pages.
    # https://zensical.org/docs/setup/navigation/#section-index-pages
    "navigation.indexes",

    # When instant navigation is enabled, clicks on all internal links will be
    # intercepted and dispatched via XHR without fully reloading the page.
    # https://zensical.org/docs/setup/navigation/#instant-navigation
    "navigation.instant",

    # With instant prefetching, your site will start to fetch a page once the
    # user hovers over a link. This will reduce the perceived loading time
    # for the user.
    # https://zensical.org/docs/setup/navigation/#instant-prefetching
    "navigation.instant.prefetch",

    # In order to provide a better user experience on slow connections when
    # using instant navigation, a progress indicator can be enabled.
    # https://zensical.org/docs/setup/navigation/#progress-indicator
    #"navigation.instant.progress",

    # When navigation paths are activated, a breadcrumb navigation is rendered
    # above the title of each page
    # https://zensical.org/docs/setup/navigation/#navigation-path
    "navigation.path",

    # When pruning is enabled, only the visible navigation items are included
    # in the rendered HTML, reducing the size of the built site by 33% or more.
    # https://zensical.org/docs/setup/navigation/#navigation-pruning
    #"navigation.prune",

    # When sections are enabled, top-level sections are rendered as groups in
    # the sidebar for viewports above 1220px, but remain as-is on mobile.
    # https://zensical.org/docs/setup/navigation/#navigation-sections
    #"navigation.sections",

    # When tabs are enabled, top-level sections are rendered in a menu layer
    # below the header for viewports above 1220px, but remain as-is on mobile.
    # https://zensical.org/docs/setup/navigation/#navigation-tabs
    "navigation.tabs",

    # When sticky tabs are enabled, navigation tabs will lock below the header
    # and always remain visible when scrolling down.
    # https://zensical.org/docs/setup/navigation/#sticky-navigation-tabs
    "navigation.tabs.sticky",

    # A back-to-top button can be shown when the user, after scrolling down,
    # starts to scroll up again.
    # https://zensical.org/docs/setup/navigation/#back-to-top-button
    "navigation.top",

    # When anchor tracking is enabled, the URL in the address bar is
    # automatically updated with the active anchor as highlighted in the table
    # of contents.
    # https://zensical.org/docs/setup/navigation/#anchor-tracking
    "navigation.tracking",

    # When search highlighting is enabled and a user clicks on a search result,
    # Zensical will highlight all occurrences after following the link.
    # https://zensical.org/docs/setup/search/#search-highlighting
    "search.highlight",

    # When anchor following for the table of contents is enabled, the sidebar
    # is automatically scrolled so that the active anchor is always visible.
    # https://zensical.org/docs/setup/navigation/#anchor-following
    # "toc.follow",

    # When navigation integration for the table of contents is enabled, it is
    # always rendered as part of the navigation sidebar on the left.
    # https://zensical.org/docs/setup/navigation/#navigation-integration
    #"toc.integrate",
]

# ----------------------------------------------------------------------------
# In the "palette" subsection you can configure options for the color scheme.
# You can configure different color # schemes, e.g., to turn on dark mode,
# that the user can switch between. Each color scheme can be further
# customized.
#
# Read more:
# - https://zensical.org/docs/setup/colors/
# ----------------------------------------------------------------------------
[[project.theme.palette]]
scheme = "default"
toggle.icon = "lucide/sun"
toggle.name = "Switch to dark mode"

[[project.theme.palette]]
scheme = "slate"
toggle.icon = "lucide/moon"
toggle.name = "Switch to light mode"

# ----------------------------------------------------------------------------
# In the "font" subsection you can configure the fonts used. By default, fonts
# are loaded from Google Fonts, giving you a wide range of choices from a set
# of suitably licensed fonts. There are options for a normal text font and for
# a monospaced font used in code blocks.
# ----------------------------------------------------------------------------
#[project.theme.font]
#text = "Inter"
#code = "Jetbrains Mono"

# ----------------------------------------------------------------------------
# You can configure your own logo to be shown in the header using the "logo"
# option in the "icons" subsection. The logo can be a path to a file in your
# "docs_dir" or it can be a path to an icon.
#
# Likewise, you can customize the logo used for the repository section of the
# header. Zensical derives the default logo for this from the repository URL.
# See below...
#
# There are other icons you can customize. See the documentation for details.
#
# Read more:
# - https://zensical.org/docs/setup/logo-and-icons
# - https://zensical.org/docs/authoring/icons-emojis/#search
# - https://zensical.org/docs/setup/logo-and-icons/#logo-zensicaltoml
# ----------------------------------------------------------------------------
[project.markdown_extensions.pymdownx.emoji]
emoji_index = "zensical.extensions.emoji.twemoji"
emoji_generator = "zensical.extensions.emoji.to_svg"
options.custom_icons = ["overrides/.icons"]

[project.theme.icon]
logo = "cas_03_sp"

# ----------------------------------------------------------------------------
# The "extra" section contains miscellaneous settings.
# ----------------------------------------------------------------------------
#[[project.extra.social]]
#icon = "fontawesome/brands/github"
#link = "https://github.com/user/repo"

#[project.markdown_extensions.toc]
#permalink = false
#toc_depth = 10
