# Project information
site_name: JSON for Modern C++
site_author: Niels Lohmann
site_url: https://json.nlohmann.me/

# Repository
repo_name: nlohmann/json
repo_url: https://github.com/nlohmann/json
edit_uri: edit/develop/doc/mkdocs/docs

# Copyright
copyright: Copyright &copy; 2013 - 2020 Niels Lohmann

# Configuration
theme:
  name: material
  language: en
  palette:
    primary: indigo
    accent: indigo
  font:
    text: Roboto
    code: Roboto Mono
  features:
    - tabs
    - instant

nav:
  - Home:
    - index.md
    - home/license.md
    - "Code of Conduct": home/code_of_conduct.md
    - "FAQ": home/faq.md
    - home/exceptions.md
    - home/releases.md
    - home/design_goals.md
    - home/sponsors.md
  - Features:
    - features/arbitrary_types.md
    - Binary Formats:
      - features/binary_formats/index.md
      - features/binary_formats/bson.md
      - features/binary_formats/cbor.md
      - features/binary_formats/messagepack.md
      - features/binary_formats/ubjson.md
    - features/binary_values.md
    - features/comments.md
    - Element Access:
      - features/element_access/index.md
      - features/element_access/unchecked_access.md
      - features/element_access/checked_access.md
      - features/element_access/default_value.md
    - features/iterators.md
    - features/json_pointer.md
    - features/json_patch.md
    - features/merge_patch.md
    - features/object_order.md
    - Parsing:
        - features/parsing/index.md
        - features/parsing/parse_exceptions.md
        - features/parsing/parser_callbacks.md
        - features/parsing/sax_interface.md
    - features/enum_conversion.md
    - features/macros.md
    - features/types.md
  - Integration:
    - integration/index.md
    - integration/cmake.md
    - integration/package_managers.md
  - Doxygen:
    - doxygen/index.html
  - API:
      - basic_json:
        - api/basic_json/index.md
        - api/basic_json/accept.md
        - api/basic_json/array.md
        - api/basic_json/array_t.md
        - api/basic_json/at.md
        - api/basic_json/back.md
        - api/basic_json/basic_json.md
        - api/basic_json/~basic_json.md
        - api/basic_json/begin.md
        - api/basic_json/binary.md
        - api/basic_json/binary_t.md
        - api/basic_json/boolean_t.md
        - api/basic_json/cbegin.md
        - api/basic_json/cbor_tag_handler_t.md
        - api/basic_json/cend.md
        - api/basic_json/clear.md
        - api/basic_json/contains.md
        - api/basic_json/count.md
        - api/basic_json/crbegin.md
        - api/basic_json/crend.md
        - api/basic_json/diff.md
        - api/basic_json/dump.md
        - api/basic_json/emplace.md
        - api/basic_json/emplace_back.md
        - api/basic_json/empty.md
        - api/basic_json/end.md
        - api/basic_json/erase.md
        - api/basic_json/error_handler_t.md
        - api/basic_json/exception.md
        - api/basic_json/find.md
        - api/basic_json/flatten.md
        - api/basic_json/from_bson.md
        - api/basic_json/from_cbor.md
        - api/basic_json/from_msgpack.md
        - api/basic_json/from_ubjson.md
        - api/basic_json/front.md
        - api/basic_json/get.md
        - api/basic_json/get_allocator.md
        - api/basic_json/get_binary.md
        - api/basic_json/get_ptr.md
        - api/basic_json/get_ref.md
        - api/basic_json/get_to.md
        - api/basic_json/input_format_t.md
        - api/basic_json/insert.md
        - api/basic_json/invalid_iterator.md
        - api/basic_json/is_array.md
        - api/basic_json/is_binary.md
        - api/basic_json/is_boolean.md
        - api/basic_json/is_discarded.md
        - api/basic_json/is_null.md
        - api/basic_json/is_number.md
        - api/basic_json/is_number_float.md
        - api/basic_json/is_number_integer.md
        - api/basic_json/is_number_unsigned.md
        - api/basic_json/is_object.md
        - api/basic_json/is_primitive.md
        - api/basic_json/is_string.md
        - api/basic_json/is_structured.md
        - api/basic_json/items.md
        - api/basic_json/json_serializer.md
        - api/basic_json/max_size.md
        - api/basic_json/meta.md
        - api/basic_json/merge_patch.md
        - api/basic_json/number_float_t.md
        - api/basic_json/number_integer_t.md
        - api/basic_json/number_unsigned_t.md
        - api/basic_json/object.md
        - api/basic_json/object_comparator_t.md
        - api/basic_json/object_t.md
        - api/basic_json/operator_ValueType.md
        - api/basic_json/operator_value_t.md
        - api/basic_json/operator[].md
        - api/basic_json/operator=.md
        - api/basic_json/operator_eq.md
        - api/basic_json/operator_ne.md
        - api/basic_json/operator_lt.md
        - api/basic_json/operator_le.md
        - api/basic_json/operator_gt.md
        - api/basic_json/operator_ge.md
        - api/basic_json/operator+=.md
        - api/basic_json/operator_literal_json.md
        - api/basic_json/operator_literal_json_pointer.md
        - api/basic_json/out_of_range.md
        - api/basic_json/other_error.md
        - api/basic_json/parse.md
        - api/basic_json/parse_error.md
        - api/basic_json/parse_event_t.md
        - api/basic_json/parser_callback_t.md
        - api/basic_json/patch.md
        - api/basic_json/push_back.md
        - api/basic_json/rbegin.md
        - api/basic_json/rend.md
        - api/basic_json/sax_parse.md
        - api/basic_json/size.md
        - api/basic_json/string_t.md
        - api/basic_json/to_bson.md
        - api/basic_json/to_cbor.md
        - api/basic_json/to_msgpack.md
        - api/basic_json/to_ubjson.md
        - api/basic_json/type.md
        - api/basic_json/type_error.md
        - api/basic_json/type_name.md
        - api/basic_json/unflatten.md
        - api/basic_json/update.md
        - api/basic_json/value.md
        - api/basic_json/value_t.md
      - api/adl_serializer.md
      - api/json.md
      - api/json_pointer.md
      - api/ordered_map.md
      - api/ordered_json.md

# Extras
extra:
  social:
    - icon: fontawesome/brands/github
      link: https://github.com/nlohmann
    - icon: fontawesome/brands/twitter
      link: https://twitter.com/nlohmann
    - icon: fontawesome/brands/linkedin
      link: https://www.linkedin.com/in/nielslohmann/
    - icon: fontawesome/brands/xing
      link: https://www.xing.com/profile/Niels_Lohmann
    - icon: fontawesome/brands/paypal
      link: https://www.paypal.me/nlohmann

# Extensions
markdown_extensions:
  - admonition
  - def_list
  - codehilite:
      guess_lang: false
  - toc:
      permalink: true
  - pymdownx.arithmatex
  - pymdownx.betterem:
      smart_enable: all
  - pymdownx.caret
  - pymdownx.critic
  - pymdownx.details
  - pymdownx.emoji:
      emoji_index: !!python/name:materialx.emoji.twemoji
      emoji_generator: !!python/name:materialx.emoji.to_svg
  - pymdownx.inlinehilite
  - pymdownx.magiclink
  - pymdownx.mark
  #- pymdownx.smartsymbols
  - pymdownx.superfences
  - pymdownx.tasklist:
      custom_checkbox: true
  - pymdownx.tabbed
  - pymdownx.tilde
  - pymdownx.snippets:
      base_path: docs
      check_paths: true
  - plantuml_markdown:
      format: svg

plugins:
    - search:
        separator: '[\s\-\.]+'
    - mkdocs-simple-hooks:
        hooks:
          on_post_build: "docs.hooks:copy_doxygen"
    - minify:
        minify_html: true

extra_javascript:
  - https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML
