site_name: RenderCV Engine
site_description: CV/resume generator for academics and engineers
copyright: Copyright &copy; 2023 - 2026 RenderCV
repo_url: https://github.com/rendercv/rendercv
repo_name: rendercv/rendercv
edit_uri: edit/main/docs/

theme:
  name: material
  logo: assets/images/icon.svg
  language: en
  custom_dir: docs/overrides
  palette:
    - media: "(prefers-color-scheme: light)"
      scheme: default
      primary: indigo
      accent: indigo
      toggle:
        icon: material/lightbulb-outline
        name: "Switch to dark mode"
    - media: "(prefers-color-scheme: dark)"
      scheme: slate
      primary: indigo
      accent: indigo
      toggle:
        icon: material/lightbulb
        name: "Switch to light mode"

  font:
    text: Roboto
    code: Roboto Mono

  features:
    - content.code.copy # the copy-to-clipboard buttons for code blocks
    - content.action.view # view source button for pages
    - content.action.edit # view source button for pages
    - navigation.footer # the previous and next buttons in the footer
    - navigation.tabs # Top navbar
    # - navigation.indexes # allow mother pages to have their own index pages
    - navigation.instant # instant navigation for faster page loads
    - navigation.instant.prefetch # prefetch pages for instant navigation
    - navigation.instant.progress # show progress bar for instant navigation
    - navigation.top # back to top button
    - navigation.sections # make sidebar expanded by default
    - search.highlight # highlight search results after going to a page
    - search.suggest # show search suggestions while typing
    - search.share # share search results with others
    - toc.follow # if toc sidebar doesn't fit, scroll to the active heading
    - content.code.annotate # allow annotations in code blocks
    - content.tabs.link # switch all the content tabs to the same label

nav:
  - User Guide:
      - Welcome: index.md
      - Get Started: user_guide/index.md
      - YAML Input Structure: user_guide/yaml_input_structure.md
      - CLI: user_guide/cli.md
      - How-To Guides:
          - Set Up VS Code for RenderCV: user_guide/how_to/set_up_vs_code_for_rendercv.md
          - Arbitrary Keys in Entries: user_guide/how_to/arbitrary_keys_in_entries.md
          - Custom Fonts: user_guide/how_to/custom_fonts.md
          - Override Default Templates: user_guide/how_to/override_default_templates.md
  - Developer Guide:
      - Setup: developer_guide/index.md
      - Project Management: developer_guide/project_management.md
      - Understanding RenderCV: developer_guide/understanding_rendercv.md
      - Testing: developer_guide/testing.md
      - Documentation: developer_guide/documentation.md
      - JSON Schema: developer_guide/json_schema.md
      - GitHub Workflows: developer_guide/github_workflows.md
      - Dockerfile: developer_guide/dockerfile.md
      - Code Guidelines:
          - Source Code: developer_guide/code_guidelines/source_code.md
          - Tests: developer_guide/code_guidelines/tests.md
      - How-To Guides:
          - Add Theme: developer_guide/how_to/add_theme.md
          - Add Locale: developer_guide/how_to/add_locale.md
          - Add Social Network: developer_guide/how_to/add_social_network.md
  - API Reference: api_reference/
  - Changelog: changelog.md

markdown_extensions:
  - github-callouts
  # see https://facelessuser.github.io/pymdown-extensions/extensions/inlinehilite/ for more pymdownx info
  - pymdownx.highlight:
      anchor_linenums: true
      line_spans: __span
      pygments_lang_class: true
  - pymdownx.inlinehilite
  - pymdownx.extra:
      pymdownx.superfences:
        custom_fences:
          - name: mermaid
            class: mermaid
            format: !!python/name:pymdownx.superfences.fence_code_format
  - pymdownx.tabbed: # content tabs
      alternate_style: true
  - toc:
      permalink: true
      title: Page contents
  - admonition # blocks like note, warning, tip, etc.

plugins:
  - search
  - literate-nav:
      nav_file: SUMMARY.md
  - gen-files:
      scripts:
        - docs/api_reference/api_reference.py
  - macros: # mkdocs-macros-plugin
      module_name: docs/docs_templating
      j2_block_start_string: "{$"
      j2_block_end_string: "$}"
      j2_variable_start_string: "<<"
      j2_variable_end_string: ">>"
  - mkdocstrings:
      handlers:
        python:
          options:
            members_order: alphabetical
            show_bases: true
            docstring_section_style: list
            docstring_style: google
            inherited_members: true
            show_root_heading: true
            heading_level: 1
            show_symbol_type_heading: True
            show_root_full_path: false
            show_symbol_type_toc: true
            signature_crossrefs: true
            show_docstring_attributes: true
            show_source: true
            show_submodules: false
            merge_init_into_class: true
            annotations_path: brief
            show_signature: true
            show_docstring_examples: true
            show_docstring_type_aliases: true
            show_overloads: false
            show_if_no_docstring: true
extra_javascript:
  - assets/javascripts/katex.js
  - https://unpkg.com/katex@0/dist/katex.min.js
  - https://unpkg.com/katex@0/dist/contrib/auto-render.min.js

extra_css:
  - assets/stylesheets/rendercv.css
  - https://unpkg.com/katex@0/dist/katex.min.css

extra:
  analytics:
    provider: google
    property: G-7D7Y8D5Q4W
  social:
    - icon: material/github
      link: https://github.com/rendercv
    - icon: material/linkedin
      link: https://www.linkedin.com/company/rendercv/
