├── .github ├── dependabot.yml └── workflows │ ├── build.yml │ └── docs.yml ├── .gitignore ├── .mergify.yml ├── .readthedocs.yml ├── CHANGES.rst ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.rst ├── DEVELOP.rst ├── LICENSE ├── MANIFEST.in ├── Makefile ├── NOTICE ├── README.rst ├── devtools └── create_tag.sh ├── docs ├── Makefile ├── _extra │ └── robots.txt ├── _static │ ├── mermaid-example.mmd │ ├── myst-logo-wide.png │ └── myst-logo-wide.svg ├── admonitions.rst ├── authoring.md ├── build.json ├── codesnippets.rst ├── conf.py ├── diagrams.rst ├── glossary.rst ├── headings.rst ├── images.rst ├── index.rst ├── links.md ├── lists.rst ├── myst │ ├── button.md │ ├── cell.md │ ├── crossref.md │ ├── icon.md │ ├── image-figure.md │ ├── index.md │ ├── infocard.md │ ├── introduction.md │ ├── mermaid.md │ ├── misc.md │ ├── notebook-text.md │ ├── notebook-traditional.ipynb │ ├── oembed.md │ ├── sphinx-design.md │ ├── tab.md │ ├── table.md │ ├── togglebutton.md │ └── video.md ├── projects.rst ├── requirements.txt ├── rst │ ├── button.rst │ ├── cell.rst │ ├── crossref.rst │ ├── icon.rst │ ├── image-figure.rst │ ├── index.rst │ ├── infocard.rst │ ├── introduction.rst │ ├── mermaid.rst │ ├── misc.rst │ ├── notebook-text.rst │ ├── notebook-traditional.ipynb │ ├── oembed.rst │ ├── sphinx-design.rst │ ├── tab.rst │ ├── table.rst │ ├── togglebutton.rst │ └── video.rst ├── subpage.rst ├── tables.rst └── typography.rst ├── modernizr-config.json ├── package.json ├── requirements.txt ├── setup.py ├── src ├── crate │ └── theme │ │ ├── __init__.py │ │ ├── rtd │ │ ├── __init__.py │ │ ├── conf │ │ │ ├── __init__.py │ │ │ ├── cloud.py │ │ │ ├── cloud_cli.py │ │ │ ├── crate_admin_ui.py │ │ │ ├── crate_clients_tools.py │ │ │ ├── crate_crash.py │ │ │ ├── crate_howtos.py │ │ │ ├── crate_reference.py │ │ │ ├── crate_tutorials.py │ │ │ ├── cratedb_guide.py │ │ │ ├── dbal.py │ │ │ ├── doing_docs.py │ │ │ ├── furo.py │ │ │ ├── jdbc.py │ │ │ ├── npgsql.py │ │ │ ├── pdo.py │ │ │ ├── python.py │ │ │ ├── sql_99.py │ │ │ ├── sqlalchemy_cratedb.py │ │ │ └── theme.py │ │ └── crate │ │ │ ├── base.html │ │ │ ├── components │ │ │ ├── github_feedback_compact.html │ │ │ ├── github_feedback_full.html │ │ │ ├── github_feedback_full.js │ │ │ ├── github_keynav.js │ │ │ ├── related-pages.html │ │ │ ├── toggle-sidebar-primary.html │ │ │ ├── toggle-sidebar-secondary.html │ │ │ └── version_chooser.html │ │ │ ├── globaltoc.html │ │ │ ├── layout_legacy.html │ │ │ ├── localtoc.html │ │ │ ├── navbarsearchbox.html │ │ │ ├── navbartoc.html │ │ │ ├── page.html │ │ │ ├── partials │ │ │ ├── _head_css_variables.html │ │ │ └── icons.html │ │ │ ├── relations.html │ │ │ ├── search.html │ │ │ ├── searchbox.html │ │ │ ├── searchresults.html │ │ │ ├── sections │ │ │ ├── announcement.html │ │ │ ├── article.html │ │ │ ├── footer-article.html │ │ │ ├── footer.html │ │ │ ├── footer_sql99.html │ │ │ ├── header-article.html │ │ │ ├── header-content.html │ │ │ ├── header.html │ │ │ ├── sidebar-primary.html │ │ │ └── sidebar-secondary.html │ │ │ ├── settings.html │ │ │ ├── sidebar.html │ │ │ ├── sidebartoc.html │ │ │ ├── sourcelink.html │ │ │ ├── static │ │ │ ├── .gitignore │ │ │ ├── css │ │ │ │ ├── components.css │ │ │ │ ├── crateio-rtd.css │ │ │ │ ├── crateio.css │ │ │ │ ├── custom.css │ │ │ │ ├── index.css │ │ │ │ └── ng │ │ │ │ │ ├── furo.scss │ │ │ │ │ ├── index.scss │ │ │ │ │ ├── layout.scss │ │ │ │ │ ├── page-tools.scss │ │ │ │ │ └── settings.scss │ │ │ ├── fonts │ │ │ │ ├── Inter-Regular.woff2 │ │ │ │ ├── Inter-SemiBold.woff2 │ │ │ │ └── montserrat-v26-latin-600.woff2 │ │ │ ├── images │ │ │ │ ├── admonition │ │ │ │ │ ├── caution.png │ │ │ │ │ ├── caution@2x.png │ │ │ │ │ ├── icon-docs-caution.svg │ │ │ │ │ ├── icon-docs-danger.svg │ │ │ │ │ ├── icon-docs-note.svg │ │ │ │ │ ├── icon-docs-seealso.svg │ │ │ │ │ ├── icon-docs-tip.svg │ │ │ │ │ ├── icon-docs-warning.svg │ │ │ │ │ ├── note-sql-99.svg │ │ │ │ │ ├── note.png │ │ │ │ │ ├── note@2x.png │ │ │ │ │ ├── seealso.png │ │ │ │ │ ├── seealso@2x.png │ │ │ │ │ ├── tip.png │ │ │ │ │ ├── tip@2x.png │ │ │ │ │ ├── warning.png │ │ │ │ │ └── warning@2x.png │ │ │ │ ├── apple-touch-icon.png │ │ │ │ ├── bg-banner-sql99.png │ │ │ │ ├── cloud_admin.png │ │ │ │ ├── cloud_everywhere.png │ │ │ │ ├── cloud_open-source.png │ │ │ │ ├── cloud_scale.png │ │ │ │ ├── crate-logo-white.svg │ │ │ │ ├── crate-logo.svg │ │ │ │ ├── cratedb-logo-h400.png │ │ │ │ ├── cratedb-logo-h630.png │ │ │ │ ├── cratedb-logo-h742.png │ │ │ │ ├── cratedb-logo-white.svg │ │ │ │ ├── cratedb-logo.svg │ │ │ │ ├── erdf.png │ │ │ │ ├── f-logo-facebook.png │ │ │ │ ├── f-logo-github.png │ │ │ │ ├── f-logo-google.png │ │ │ │ ├── f-logo-linkedin.png │ │ │ │ ├── f-logo-twitter.png │ │ │ │ ├── f-logo-youtube.png │ │ │ │ ├── favicon.ico │ │ │ │ ├── favicon.png │ │ │ │ ├── icon-docs@2x.png │ │ │ │ ├── icon-home-fast-x100.png │ │ │ │ ├── icon-home-playswell-x100.png │ │ │ │ ├── icon-home-simple-x100.png │ │ │ │ ├── icon-install.png │ │ │ │ ├── icon-performance@2x.png │ │ │ │ ├── icon-search2x.png │ │ │ │ ├── icon-search@2x.png │ │ │ │ ├── icon-start@2x.png │ │ │ │ ├── icon-support@2x.png │ │ │ │ ├── icon_analytics.png │ │ │ │ ├── icon_blob.png │ │ │ │ ├── icon_document.png │ │ │ │ ├── icon_link_external-sql-99.svg │ │ │ │ ├── icon_link_external.svg │ │ │ │ ├── icon_restructure.png │ │ │ │ ├── icon_search.png │ │ │ │ ├── logo-crate.png │ │ │ │ ├── logo-eu-optimized-1.jpg │ │ │ │ └── slack.png │ │ │ ├── js │ │ │ │ ├── crate.js │ │ │ │ ├── custom.js │ │ │ │ ├── index.js │ │ │ │ └── util.js │ │ │ └── vendor │ │ │ │ └── furo │ │ │ │ ├── index.js │ │ │ │ ├── scripts │ │ │ │ ├── furo.js │ │ │ │ ├── furo.js.LICENSE.txt │ │ │ │ ├── furo.js.map │ │ │ │ └── gumshoe-patched.js │ │ │ │ └── styles │ │ │ │ ├── _scaffold.sass │ │ │ │ ├── _shame.sass │ │ │ │ ├── base │ │ │ │ ├── _index.sass │ │ │ │ ├── _screen-readers.sass │ │ │ │ └── _theme.sass │ │ │ │ ├── components │ │ │ │ ├── _footer.sass │ │ │ │ ├── _index.sass │ │ │ │ ├── _search.sass │ │ │ │ ├── _sidebar.sass │ │ │ │ └── _table_of_contents.sass │ │ │ │ ├── content │ │ │ │ ├── _admonitions.sass │ │ │ │ ├── _code.sass │ │ │ │ ├── _footnotes.sass │ │ │ │ ├── _index.sass │ │ │ │ ├── _misc.sass │ │ │ │ └── _sidebar.sass │ │ │ │ ├── furo.sass │ │ │ │ └── variables │ │ │ │ ├── _admonitions.scss │ │ │ │ ├── _fonts.scss │ │ │ │ ├── _icons.scss │ │ │ │ ├── _index.sass │ │ │ │ ├── _layout.scss │ │ │ │ ├── _spacing.scss │ │ │ │ ├── _theme.scss │ │ │ │ └── colors.scss │ │ │ └── theme.conf │ │ └── vendor │ │ ├── __init__.py │ │ └── rtd_compat │ │ ├── __init__.py │ │ ├── extension.py │ │ └── utils.py └── index.js ├── webpack.config.js └── yarn.lock /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | 8 | updates: 9 | 10 | - package-ecosystem: "pip" 11 | directory: "/" 12 | schedule: 13 | interval: "monthly" 14 | 15 | - package-ecosystem: "npm" 16 | directory: "/" 17 | schedule: 18 | interval: "monthly" 19 | 20 | - package-ecosystem: "github-actions" 21 | directory: "/" 22 | schedule: 23 | interval: "monthly" 24 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: build 2 | on: 3 | pull_request: ~ 4 | push: 5 | branches: 6 | - main 7 | 8 | # Allow job to be triggered manually. 9 | workflow_dispatch: 10 | 11 | # Cancel in-progress jobs when pushing to the same branch. 12 | concurrency: 13 | cancel-in-progress: true 14 | group: ${{ github.workflow }}-${{ github.ref }} 15 | 16 | jobs: 17 | 18 | package: 19 | 20 | name: Build package on ${{ matrix.os }} 21 | runs-on: ${{ matrix.os }} 22 | 23 | strategy: 24 | fail-fast: false 25 | matrix: 26 | os: [ubuntu-latest, macos-latest] 27 | 28 | steps: 29 | - uses: actions/checkout@v4 30 | 31 | - name: Set up Python 32 | uses: actions/setup-python@v5 33 | with: 34 | python-version: '3.13' 35 | 36 | - name: Set up uv 37 | uses: astral-sh/setup-uv@v6 38 | with: 39 | cache-dependency-glob: | 40 | setup.py 41 | enable-cache: true 42 | version: "latest" 43 | 44 | - name: Build package 45 | run: | 46 | alias pip="uv pip" 47 | make build 48 | -------------------------------------------------------------------------------- /.github/workflows/docs.yml: -------------------------------------------------------------------------------- 1 | name: docs 2 | on: 3 | pull_request: ~ 4 | push: 5 | branches: 6 | - main 7 | 8 | # Allow job to be triggered manually. 9 | workflow_dispatch: 10 | 11 | # Cancel in-progress jobs when pushing to the same branch. 12 | concurrency: 13 | cancel-in-progress: true 14 | group: ${{ github.workflow }}-${{ github.ref }} 15 | 16 | jobs: 17 | 18 | documentation: 19 | 20 | name: Build docs with Python ${{ matrix.python-version }} on ${{ matrix.os }} 21 | runs-on: ${{ matrix.os }} 22 | 23 | strategy: 24 | fail-fast: false 25 | matrix: 26 | os: ['ubuntu-latest', 'macos-latest'] 27 | python-version: ['3.9', '3.13'] 28 | 29 | steps: 30 | - uses: actions/checkout@v4 31 | 32 | - name: Set up Python 33 | uses: actions/setup-python@v5 34 | with: 35 | python-version: ${{ matrix.python-version }} 36 | 37 | - name: Set up uv 38 | uses: astral-sh/setup-uv@v6 39 | with: 40 | cache-dependency-glob: | 41 | setup.py 42 | cache-suffix: ${{ matrix.python-version }} 43 | enable-cache: true 44 | version: "latest" 45 | 46 | - name: Install PlantUML on Linux 47 | if: matrix.os == 'ubuntu-latest' 48 | run: | 49 | sudo apt-get update 50 | sudo apt-get install plantuml 51 | 52 | - name: Install PlantUML on macOS 53 | if: matrix.os == 'macos-latest' 54 | run: brew install plantuml 55 | 56 | - name: Build docs 57 | run: | 58 | alias pip="uv pip" 59 | cd docs && make check 60 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .build 3 | .clone 4 | .crate-docs 5 | .dist 6 | .DS_Store 7 | .env* 8 | .venv* 9 | .installed.cfg 10 | .style 11 | .utils 12 | *.csv 13 | *.db 14 | *.egg-info 15 | *.lint 16 | *.pyc 17 | blackbox 18 | build 19 | develop-eggs 20 | dist 21 | eggs 22 | node_modules* 23 | yarn-error.log 24 | -------------------------------------------------------------------------------- /.mergify.yml: -------------------------------------------------------------------------------- 1 | queue_rules: 2 | - name: default 3 | queue_conditions: 4 | - label=ready-to-merge 5 | - '#approved-reviews-by>=1' 6 | - status-success~=Build docs 7 | - status-success~=Build package 8 | - status-success~=docs/readthedocs.org 9 | merge_conditions: 10 | - check-success~=Build docs 11 | - check-success~=Build package 12 | - check-success~=docs/readthedocs.org 13 | merge_method: rebase 14 | 15 | pull_request_rules: 16 | - name: refactored queue action rule 17 | conditions: [] 18 | actions: 19 | queue: 20 | -------------------------------------------------------------------------------- /.readthedocs.yml: -------------------------------------------------------------------------------- 1 | # .readthedocs.yml 2 | # Read the Docs configuration file 3 | 4 | # Details 5 | # - https://docs.readthedocs.io/en/stable/config-file/v2.html 6 | 7 | # Required 8 | version: 2 9 | 10 | build: 11 | os: "ubuntu-22.04" 12 | tools: 13 | python: "3.13" 14 | apt_packages: 15 | - plantuml 16 | 17 | jobs: 18 | 19 | # Install `uv`. 20 | # https://docs.readthedocs.io/en/stable/build-customization.html#install-dependencies-with-uv 21 | create_environment: 22 | - asdf plugin add uv 23 | - asdf install uv latest 24 | - asdf global uv latest 25 | - uv venv 26 | 27 | # Install dependencies using `uv`. 28 | install: 29 | - uv pip install -r docs/requirements.txt 30 | 31 | # Bundle assets, because `pip install --editable=.` does not do it. 32 | pre_build: 33 | - make bundle-develop 34 | - cd docs; make bundle-assets 35 | 36 | # Invoke the build also using `uv`. 37 | build: 38 | html: 39 | - uv run sphinx-build -T -b html docs $READTHEDOCS_OUTPUT/html 40 | 41 | # Build documentation in the docs/ directory with Sphinx 42 | sphinx: 43 | builder: html 44 | configuration: docs/conf.py 45 | fail_on_warning: true 46 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at support@crate.io. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq 77 | -------------------------------------------------------------------------------- /CONTRIBUTING.rst: -------------------------------------------------------------------------------- 1 | ============ 2 | Contributing 3 | ============ 4 | 5 | Thank you for your interest in contributing. 6 | 7 | Please see the CrateDB `contribution guide`_ for more information. Everything in 8 | the CrateDB contribution guide applies to this repository. 9 | 10 | .. _contribution guide: https://github.com/crate/crate/blob/master/CONTRIBUTING.rst 11 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include *.txt 2 | recursive-include src/crate/theme/rtd/crate * 3 | global-exclude .DS_Store 4 | global-exclude *.pyc 5 | 6 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | Crate.io Documentation Theme 2 | 3 | Copyright 2013-2021 Crate.io GmbH ("Crate") 4 | 5 | 6 | Licensed to Crate under one or more contributor license agreements. 7 | See the NOTICE file distributed with this work for additional information 8 | regarding copyright ownership. 9 | 10 | Crate licenses this software to you under the Apache License, Version 2.0. 11 | However, if you have executed another commercial license agreement with 12 | Crate these terms will supersede the license and you may use the software 13 | solely pursuant to the terms of the relevant commercial agreement. 14 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | =========================== 2 | CrateDB Documentation Theme 3 | =========================== 4 | 5 | |tests| |rtd| |pypi| |build| |python-versions| 6 | 7 | 8 | About 9 | ===== 10 | 11 | A `Sphinx`_ theme for the `CrateDB documentation`_. 12 | 13 | *Note: This theme is tightly integrated into the cratedb.com website and is 14 | not intended for general use.* 15 | 16 | For making changes to the theme, see the `developer docs`_. 17 | 18 | 19 | Preview 20 | ======= 21 | 22 | The demo/preview project is rendered and published to https://crate-docs-theme.readthedocs.io/. 23 | 24 | 25 | Using the theme 26 | =============== 27 | 28 | Prerequisites 29 | ------------- 30 | 31 | The documentation can include UML diagrams which will be rendered using 32 | `sphinxcontrib-plantuml`_. In order to satisfy its requirements, run:: 33 | 34 | # On Linux 35 | apt-get install plantuml 36 | 37 | # On macOS 38 | brew install plantuml 39 | 40 | .. _sphinxcontrib-plantuml: https://pypi.org/project/sphinxcontrib-plantuml/ 41 | 42 | Installation 43 | ------------ 44 | 45 | The CrateDB Documentation Theme is available as a package on `PyPI`_. However, there is no 46 | need to install it yourself. CrateDB projects that use the theme should install 47 | it automatically. 48 | 49 | 50 | Configuration 51 | ------------- 52 | 53 | The documentation is composed of multiple separate documentation 54 | projects, seamlessly interlinked via the CrateDB Documentation Theme. 55 | 56 | To use the theme, add this line to your Sphinx ``conf.py`` file:: 57 | 58 | from crate.theme.rtd.conf.foo import * 59 | 60 | Here, replace ``foo`` with the appropriate module for your documentation 61 | project. 62 | 63 | 64 | Contributing 65 | ============ 66 | 67 | This project is primarily maintained by `Crate.io`_, but we welcome community 68 | contributions! 69 | 70 | See the `developer docs`_ and the `contribution docs`_ for more information. 71 | 72 | 73 | Help 74 | ==== 75 | 76 | Looking for more help? 77 | 78 | - Check out our `support channels`_ 79 | 80 | 81 | .. _contribution docs: CONTRIBUTING.rst 82 | .. _Crate.io: https://cratedb.com 83 | .. _CrateDB documentation: https://cratedb.com/docs/ 84 | .. _developer docs: DEVELOP.rst 85 | .. _PyPI: https://pypi.python.org/ 86 | .. _Sphinx: http://www.sphinx-doc.org/en/stable/ 87 | .. _support channels: https://cratedb.com/support/ 88 | 89 | 90 | .. |tests| image:: https://github.com/crate/crate-docs-theme/workflows/docs/badge.svg 91 | :alt: CI status 92 | :target: https://github.com/crate/crate-docs-theme/actions?workflow=docs 93 | 94 | .. |rtd| image:: https://readthedocs.org/projects/crate-docs-theme/badge/ 95 | :alt: Read the Docs status 96 | :target: https://readthedocs.org/projects/crate-docs-theme/ 97 | 98 | .. |build| image:: https://img.shields.io/endpoint.svg?color=blue&url=https%3A%2F%2Fraw.githubusercontent.com%2Fcrate%2Fcrate-docs-theme%2Fmain%2Fdocs%2Fbuild.json 99 | :alt: crate-docs version 100 | :target: https://github.com/crate/crate-docs-theme/blob/main/docs/build.json 101 | 102 | .. |pypi| image:: https://badge.fury.io/py/crate-docs-theme.svg 103 | :alt: PyPI version 104 | :target: https://badge.fury.io/py/crate-docs-theme 105 | 106 | .. |python-versions| image:: https://img.shields.io/pypi/pyversions/crate-docs-theme.svg 107 | :alt: Python Versions 108 | :target: https://pypi.org/project/crate-docs-theme/ 109 | -------------------------------------------------------------------------------- /devtools/create_tag.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | # Info: Be aware from where you are invoking this script due to relative paths. 24 | # For example, 'gradlew' has to be in the same directory as where you are 25 | # invoking this script from. 26 | # E.g.: ../crate>./devtools/create_tag.sh 27 | 28 | # check if everything is committed 29 | CLEAN=`git status -s` 30 | if [ ! -z "$CLEAN" ] 31 | then 32 | echo "Working directory not clean. Please commit all changes before tagging" 33 | echo "Aborting." 34 | exit -1 35 | fi 36 | 37 | echo "Fetching origin..." 38 | git fetch origin > /dev/null 39 | 40 | # get the version 41 | VERSION=`python3 setup.py --version` 42 | echo "Found package version $VERSION" 43 | 44 | # check if tag to create has already been created 45 | EXISTS=`git tag | grep $VERSION` 46 | 47 | if [ "$VERSION" == "$EXISTS" ] 48 | then 49 | echo "Revision $VERSION already tagged." 50 | echo "Aborting." 51 | exit -1 52 | fi 53 | 54 | # check if VERSION is in head of CHANGES.rst 55 | REV_NOTE=`grep "[0-9/]\{10\} $VERSION" CHANGES.rst` 56 | if [ -z "$REV_NOTE" ] 57 | then 58 | echo "No notes for revision $VERSION found in CHANGES.rst" 59 | echo "Aborting." 60 | exit -1 61 | fi 62 | 63 | echo "Creating tag $VERSION..." 64 | git tag -a "$VERSION" -m "Tag release for revision $VERSION" 65 | git push --tags 66 | echo "Done." 67 | -------------------------------------------------------------------------------- /docs/_extra/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: / 3 | -------------------------------------------------------------------------------- /docs/_static/mermaid-example.mmd: -------------------------------------------------------------------------------- 1 | flowchart LR 2 | 3 | subgraph sensors 4 | 5 | subgraph ism 6 | RF-1[RF sensor 1] 7 | RF-2[RF sensor 2] 8 | RF-N[RF sensor N] 9 | relay{{telemetry relay}} 10 | end 11 | subgraph sub1ghz 12 | LORAWAN[LoRaWAN sensor] 13 | LORA[LoRa sensor] 14 | end 15 | subgraph cellular 16 | CELL-GSM[GSM sensor] 17 | CELL-LTE[LTE M1/NB1 sensor] 18 | end 19 | 20 | gateway{{network gateway}} 21 | 22 | RF-1 --> relay 23 | RF-2 --> relay 24 | RF-N --> relay 25 | relay --> gateway 26 | 27 | TTN{TTN} 28 | 29 | end 30 | 31 | subgraph network 32 | HTTP{HTTP} 33 | MQTT{MQTT} 34 | end 35 | 36 | subgraph backend 37 | 38 | Kotori>Kotori message router\nand data historian] 39 | InfluxDB[(InfluxDB)] 40 | CrateDB[(CrateDB)] 41 | 42 | Kotori --> InfluxDB 43 | Kotori --> CrateDB 44 | Kotori --> Grafana 45 | 46 | end 47 | 48 | %% Breadboard 49 | 50 | %% Sensors 51 | LORAWAN --> TTN 52 | LORA --> gateway 53 | 54 | %% Network 55 | gateway --> network 56 | TTN --> network 57 | 58 | CELL-GSM --> network 59 | CELL-LTE --> network 60 | 61 | %% Kotori 62 | MQTT --> Kotori 63 | HTTP --> Kotori 64 | -------------------------------------------------------------------------------- /docs/_static/myst-logo-wide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/docs/_static/myst-logo-wide.png -------------------------------------------------------------------------------- /docs/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": 1, 3 | "label": "docs build", 4 | "message": "2.1.2" 5 | } 6 | -------------------------------------------------------------------------------- /docs/codesnippets.rst: -------------------------------------------------------------------------------- 1 | ===================== 2 | Code snippet examples 3 | ===================== 4 | 5 | 6 | SQL 7 | === 8 | 9 | .. highlight:: psql 10 | 11 | Plain 12 | ----- 13 | 14 | :: 15 | 16 | ALTER TABLE foo ADD COLUMN new_column INTEGER; 17 | 18 | With prompts 19 | ------------ 20 | 21 | :: 22 | 23 | mysql> CREATE TABLE foo ( 24 | ... id integer primary key, 25 | ... name varchar(255), 26 | ... date datetime, 27 | ... fruits set('apple', 'pear', 'banana') 28 | ... ) CHARACTER SET utf8 COLLATE utf8_unicode_ci; 29 | 30 | :: 31 | 32 | cr> COPY foo_imported FROM '/tmp/dump.csv' WITH (bulk_size=1000); 33 | 34 | With prompts and doctests 35 | ------------------------- 36 | 37 | :: 38 | 39 | cr> CREATE TABLE metrics1 ( 40 | ... weight REAL CONSTRAINT weight_is_positive CHECK (weight >= 0), 41 | ... ); 42 | CREATE OK, 1 row affected (... sec) 43 | 44 | :: 45 | 46 | cr> drop table metrics1; 47 | DROP OK, 1 row affected (... sec) 48 | 49 | :: 50 | 51 | cr> select array(select height from sys.summits order by height desc limit 5) 52 | ... as top5_mountains_array; 53 | +--------------------------------+ 54 | | top5_mountains_array | 55 | +--------------------------------+ 56 | | [4808, 4634, 4545, 4527, 4506] | 57 | +--------------------------------+ 58 | SELECT 1 row in set (... sec) 59 | 60 | 61 | Configuration files 62 | =================== 63 | 64 | .. code-block:: ini 65 | 66 | [client] 67 | default-character-set=utf8 68 | [mysqld] 69 | character-set-server=utf8 70 | 71 | 72 | Terminal commands 73 | ================= 74 | 75 | Single-line 76 | ----------- 77 | 78 | .. code-block:: sh 79 | 80 | sh$ csvsql --db crate://localhost:4200 --insert /tmp/dump.csv 81 | 82 | .. code-block:: sh 83 | 84 | $ sh iss-position.sh 85 | 86 | CONNECT OK 87 | INSERT OK, 1 row affected (0.029 sec) 88 | Sleeping for 10 seconds... 89 | 90 | Multi-line 91 | ---------- 92 | 93 | .. code-block:: sh 94 | 95 | sh$ crash --hosts localhost:4200 \ 96 | --command "INSERT INTO iss (position) VALUES ('$(wkt_position)')" 97 | 98 | CONNECT OK 99 | INSERT OK, 1 row affected (0.037 sec) 100 | 101 | 102 | Code blocks 103 | =========== 104 | 105 | With prompts and empty lines 106 | ---------------------------- 107 | 108 | This snippet can be used to verify that ``sphinx-copybutton`` works 109 | appropriately by also honoring empty lines. 110 | 111 | .. code-block:: python 112 | 113 | >>> from sqlalchemy.ext import declarative 114 | >>> from crate.client.sqlalchemy import types 115 | >>> from uuid import uuid4 116 | 117 | >>> def gen_key(): 118 | ... return str(uuid4()) 119 | -------------------------------------------------------------------------------- /docs/conf.py: -------------------------------------------------------------------------------- 1 | from crate.theme.rtd.conf.theme import * 2 | 3 | # Mimic some bits of the RTD context being propagated to its Sphinx builder. 4 | # https://github.com/readthedocs/readthedocs.org/blob/main/readthedocs/doc_builder/backends/sphinx.py 5 | html_context.update({ 6 | 7 | # Generic settings. 8 | "conf_py_path": "/docs/", 9 | "source_suffix": source_suffix, 10 | 11 | # Enable version chooser. 12 | "display_version": True, 13 | "current_version": "foobar", 14 | "versions": [("foobar", None), ("bazqux", None)], 15 | 16 | # Enable feedback widget and source/edit links. 17 | "display_github": True, 18 | "github_user": "crate", 19 | "github_repo": "crate-docs-theme", 20 | "github_version": "main", 21 | }) 22 | 23 | 24 | # `html_context_custom` will be applied to the HTML context after the RTD 25 | # builder was initialized. 26 | 27 | # This snippet disables the GitHub feedback area for demonstration purposes. 28 | # It can be used on individual projects where this is needed. 29 | html_context_custom.update({ 30 | #"display_github": False, 31 | }) 32 | 33 | 34 | intersphinx_mapping["myst"] = ("https://myst-parser.readthedocs.io/en/latest/", None) 35 | intersphinx_mapping["sd"] = ("https://sphinx-design.readthedocs.io/en/latest/", None) 36 | intersphinx_mapping["sde"] = ("https://sphinx-design-elements.readthedocs.io/en/latest/", None) 37 | -------------------------------------------------------------------------------- /docs/diagrams.rst: -------------------------------------------------------------------------------- 1 | =========================== 2 | Different kinds of diagrams 3 | =========================== 4 | 5 | PlantUML 6 | ======== 7 | 8 | .. uml:: 9 | 10 | Alice -> Bob: Hi! 11 | Alice <- Bob: How are you? 12 | 13 | Mermaid 14 | ======= 15 | 16 | .. mermaid:: 17 | 18 | flowchart LR 19 | 20 | subgraph sensors 21 | 22 | subgraph ism 23 | RF-1[RF sensor 1] 24 | RF-2[RF sensor 2] 25 | RF-N[RF sensor N] 26 | relay{{telemetry relay}} 27 | end 28 | subgraph sub1ghz 29 | LORAWAN[LoRaWAN sensor] 30 | LORA[LoRa sensor] 31 | end 32 | subgraph cellular 33 | CELL-GSM[GSM sensor] 34 | CELL-LTE[LTE M1/NB1 sensor] 35 | end 36 | 37 | gateway{{network gateway}} 38 | 39 | RF-1 --> relay 40 | RF-2 --> relay 41 | RF-N --> relay 42 | relay --> gateway 43 | 44 | TTN{TTN} 45 | 46 | end 47 | 48 | %% Breadboard 49 | 50 | %% Sensors 51 | LORAWAN --> TTN 52 | LORA --> gateway 53 | 54 | %% Network 55 | gateway --> network 56 | TTN --> network 57 | 58 | CELL-GSM --> network 59 | CELL-LTE --> network 60 | -------------------------------------------------------------------------------- /docs/glossary.rst: -------------------------------------------------------------------------------- 1 | ======== 2 | Glossary 3 | ======== 4 | 5 | This page exists so that the CSS styling for glossary links can be tested. 6 | 7 | .. _gloss-foo: 8 | 9 | **Foo** 10 | A place-holder name in computing. 11 | 12 | -------------------------------------------------------------------------------- /docs/headings.rst: -------------------------------------------------------------------------------- 1 | ====================== 2 | All levels of headings 3 | ====================== 4 | 5 | 6 | .. _top-level-heading: 7 | 8 | Top-level heading 9 | ================= 10 | 11 | This is a paragraph within the 1st-level heading. 12 | 13 | 14 | .. _second-level-heading: 15 | 16 | Second-level heading 17 | -------------------- 18 | 19 | This is a paragraph within a 2nd-level heading. 20 | 21 | 22 | .. _third-level-heading: 23 | 24 | Third-level heading 25 | ~~~~~~~~~~~~~~~~~~~ 26 | 27 | This is a paragraph within a 3rd-level heading. 28 | 29 | 30 | .. _fourth-level-heading: 31 | 32 | Fourth-level heading 33 | ^^^^^^^^^^^^^^^^^^^^ 34 | 35 | This is a paragraph within a 4th-level heading. 36 | 37 | 38 | .. _fifth-level-heading: 39 | 40 | Fifth-level heading 41 | ................... 42 | 43 | This is the deepest heading level we support. 44 | 45 | 46 | .. _sixth-level-heading: 47 | 48 | Sixth-level heading 49 | ``````````````````` 50 | 51 | This is an even deeper heading level for corner cases. 52 | -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- 1 | .. _index: 2 | 3 | ########################### 4 | CrateDB Documentation Theme 5 | ########################### 6 | 7 | Sphinx makes it easy to create intelligent and beautiful documentation. 8 | 9 | A theme component for the `Sphinx`_ static documentation generator used by 10 | the `CrateDB Documentation`_ across the board. 11 | It derives from and builds upon the excellent `sphinx-basic-ng`_ and `Furo`_. 12 | 13 | .. rubric:: Introduction 14 | 15 | .. toctree:: 16 | :maxdepth: 1 17 | 18 | authoring 19 | links 20 | 21 | 22 | .. rubric:: Style Guides 23 | 24 | A few markup snippets by example. 25 | 26 | 27 | Modernized 28 | ========== 29 | 30 | A side-by-side gallery demonstrating both reStructuredText and Markedly 31 | Structured Text syntax. 32 | 33 | .. grid:: 34 | 35 | .. grid-item:: 36 | :columns: 6 37 | 38 | .. toctree:: 39 | :titlesonly: 40 | 41 | rst/index 42 | 43 | .. grid-item:: 44 | :columns: 6 45 | 46 | .. toctree:: 47 | :titlesonly: 48 | 49 | myst/index 50 | 51 | 52 | Legacy 53 | ====== 54 | 55 | The legacy feature gallery exclusively uses reStructuredText. 56 | 57 | .. toctree:: 58 | :maxdepth: 1 59 | 60 | admonitions 61 | codesnippets 62 | diagrams 63 | glossary 64 | headings 65 | images 66 | lists 67 | projects 68 | subpage 69 | tables 70 | typography 71 | 72 | 73 | 74 | ******* 75 | Details 76 | ******* 77 | 78 | .. meta:: 79 | :description lang=en: 80 | This is the meta description, it should be between 150-300 characters. 81 | Meta descriptions are used for display but not for ranking. 82 | 83 | This is a sample documentation project that can be used for visually testing 84 | the theme. 85 | 86 | How to use this documentation: 87 | 88 | - Verify that each page element displays correctly. Some page elements identify 89 | themselves (e.g., the :ref:`index`) and some elements describe how they ought 90 | to appear (e.g., the :ref:`admonition gallery `). 91 | 92 | How to improve this documentation: 93 | 94 | - If you notice any bugs, please `report an issue`_ or create a PR to fix them. 95 | 96 | - Add page elements and use the available text to describe how the element 97 | should be displayed. 98 | 99 | 100 | .. NOTE:: 101 | 102 | To learn how to run sandbox or CI builds as a part of your testing and *Quality 103 | Assurance* (QA) workflow, see the `developer guide`_. 104 | 105 | 106 | .. _CrateDB Documentation: https://cratedb.com/docs/ 107 | .. _developer guide: https://github.com/crate/crate-docs-theme/blob/main/DEVELOP.rst 108 | .. _Furo: https://github.com/pradyunsg/furo 109 | .. _report an issue: https://github.com/crate/crate-docs-theme/issues/new 110 | .. _Sphinx: https://www.sphinx-doc.org/ 111 | .. _sphinx-basic-ng: https://github.com/pradyunsg/sphinx-basic-ng 112 | -------------------------------------------------------------------------------- /docs/lists.rst: -------------------------------------------------------------------------------- 1 | ======================== 2 | Different kinds of lists 3 | ======================== 4 | 5 | .. contents:: 6 | :local: 7 | 8 | Bullet lists 9 | ============ 10 | 11 | Basics 12 | ------ 13 | 14 | .. _closed-list: 15 | 16 | This is a closed list: 17 | 18 | * It has bullet points like this one 19 | * The list items are spaced close together like subsequent lines in a paragraph 20 | * Typically the items are short and are not terminated with a period 21 | 22 | .. _open-list: 23 | 24 | An open list is quite different: 25 | 26 | .. rst-class:: open 27 | 28 | * Notice how this sentence is terminated with a period. 29 | 30 | And there's a second paragraph too. 31 | 32 | * This is the second item. Notice how it is separated from the first item like 33 | a regular paragraph would be. 34 | 35 | This is a regular paragraph and not a list item. 36 | 37 | 38 | With admonition 39 | --------------- 40 | 41 | These are lists within admonitions. 42 | 43 | .. NOTE:: 44 | 45 | Here's a regular list: 46 | 47 | - This is the first list item 48 | - The list items are spaced close together like subsequent lines in a 49 | paragraph 50 | - This list is styled the same as the :ref:`closed list ` 51 | above 52 | 53 | This is an open list: 54 | 55 | .. rst-class:: open 56 | 57 | - This list looks the same as the :ref:`open list ` above 58 | 59 | - The list items are separated as if they were separate paragraphs 60 | 61 | 62 | Enumerated lists 63 | ================ 64 | 65 | This demonstrates an auto-enumerated list with a nested bullet-list. 66 | 67 | #. Item 1 68 | 69 | - Sub item 1 70 | - Sub item 2 71 | 72 | #. Item 2 73 | 74 | - Sub item 1 75 | - Sub item 2 76 | -------------------------------------------------------------------------------- /docs/myst/button.md: -------------------------------------------------------------------------------- 1 | # Buttons 2 | 3 | ## Documentation 4 | - [sphinx{design} » Buttons](inv:sd#buttons) 5 | 6 | ## Examples 7 | ```{button-link} https://example.com 8 | :color: primary 9 | :shadow: 10 | ``` 11 | 12 | ```{button-link} https://example.com 13 | :color: primary 14 | :outline: 15 | ``` 16 | 17 | ```{button-link} https://example.com 18 | :color: secondary 19 | :expand: 20 | ``` 21 | -------------------------------------------------------------------------------- /docs/myst/cell.md: -------------------------------------------------------------------------------- 1 | --- 2 | # A Jupyter Notebook written in Markdown. 3 | # https://myst-nb.readthedocs.io/ 4 | jupytext: 5 | text_representation: 6 | format_name: myst 7 | --- 8 | 9 | (cell)= 10 | (cells)= 11 | 12 | # Cells 13 | 14 | Widget elements that are like "editors with output". 15 | 16 | :::{note} 17 | _**Status:** Just written down, no special styling per CSS 18 | has been applied yet. Contributions are welcome._ 19 | ::: 20 | 21 | 22 | ## Sphinx 23 | 24 | Those are solely based on vanilla [docutils]/[Sphinx] directives 25 | `code` and `csv-table`, written down in MyST Markdown instead 26 | of reStructuredText. 27 | 28 | :::{code} sql 29 | SELECT * FROM sometable 30 | ::: 31 | :::{csv-table} 32 | :header: > 33 | : "schema_name", "table_name", "sum(num_docs)" 34 | :widths: 15, 10, 30 35 | 36 | "doc", "taxi_january", 5929248 37 | "doc", "taxi_january_bestcompression", 5929248 38 | "doc", "taxi_january_nocolumnstore_bestcompression", 5929248 39 | "doc", "taxi_january_nocolumnstore_noindex_bestcompression", 5929248 40 | "doc", "taxi_january_noindex_bestcompression", 5929248 41 | "doc", "taxi_january_nocolumnstore", 5929248 42 | ::: 43 | 44 | :::{code} bash 45 | antrl4 46 | ::: 47 | :::{code} text 48 | Downloading antlr4-4.13.2-complete.jar 49 | ANTLR tool needs Java to run; install Java JRE 11 yes/no (default yes)? yes 50 | Installed Java in /root/.jre/jdk-11.0.24+8-jre; remove that dir to uninstall 51 | ANTLR Parser Generator Version 4.13.2 52 | ::: 53 | 54 | ## IPython 55 | 56 | Those are using [MyST-NB], 57 | actually executing Python code, 58 | like [doctest] is doing it. 59 | 60 | ```{code-cell} ipython3 61 | import sys 62 | print("this is some stdout") 63 | print("this is some stderr", file=sys.stderr) 64 | ``` 65 | 66 | :::{important} 67 | This actually means the documentation can include Jupyter Notebooks 68 | now, both using the traditional .ipynb JSON file format, but also 69 | using the .md file format, enabling [text-based notebooks]. 70 | Enjoy {ref}`notebook-text`. 71 | ::: 72 | 73 | 74 | 75 | [docutils]: https://www.docutils.org/ 76 | [doctest]: https://docs.python.org/3/library/doctest.html 77 | [MyST-NB]: https://myst-nb.readthedocs.io/ 78 | [Sphinx]: https://www.sphinx-doc.org/ 79 | [text-based notebooks]: https://myst-nb.readthedocs.io/en/latest/authoring/text-notebooks.html 80 | -------------------------------------------------------------------------------- /docs/myst/crossref.md: -------------------------------------------------------------------------------- 1 | # Cross-references 2 | 3 | Being able to use cross-references appropriately, i.e. optimally linking between 4 | documentation resources, even across projects, is important for documentation 5 | authoring. Please refer to [MyST cross-references](inv:myst#syntax/referencing), 6 | in order to learn about how this works using the Markdown markup language. 7 | 8 | By using cross-references properly, maintenance efforts regarding broken links will 9 | be greatly reduced, because all target references will be validated at build time. 10 | See also [How to use cross-references with Sphinx]. 11 | 12 | [How to use cross-references with Sphinx]: https://docs.readthedocs.io/en/stable/guides/cross-referencing-with-sphinx.html 13 | -------------------------------------------------------------------------------- /docs/myst/icon.md: -------------------------------------------------------------------------------- 1 | # Icons 2 | 3 | ## Documentation 4 | - [sphinx{design} » Icons](inv:sd#icons) 5 | 6 | ## Examples 7 | 8 | ### Octicon Icons 9 | 10 | A coloured icon: {octicon}`report;1em;sd-text-info`, some more text. 11 | 12 | - Alert: {octicon}`alert` 13 | - Mention: {octicon}`mention` 14 | 15 | ### Material Design Icons 16 | 17 | - regular icon: {material-regular}`data_exploration;2em`, some more text 18 | - A coloured regular icon: {material-regular}`settings;3em;sd-text-success`, some more text. 19 | - A coloured outline icon: {material-outlined}`settings;3em;sd-text-success`, some more text. 20 | - A coloured sharp icon: {material-sharp}`settings;3em;sd-text-success`, some more text. 21 | - A coloured round icon: {material-round}`settings;3em;sd-text-success`, some more text. 22 | - A coloured two-tone icon: {material-twotone}`settings;3em;sd-text-success`, some more text. 23 | - A fixed size icon: {material-regular}`data_exploration;24px`, some more text. 24 | 25 | ### FontAwesome Icons 26 | 27 | - An icon {fas}`spinner;sd-text-primary`, some more text. 28 | - An icon {fab}`github`, some more text. 29 | - An icon {fab}`gitkraken;sd-text-success fa-xl`, some more text. 30 | - An icon {fas}`skull;sd-text-danger`, some more text. 31 | -------------------------------------------------------------------------------- /docs/myst/image-figure.md: -------------------------------------------------------------------------------- 1 | # Images and figures 2 | 3 | ## Documentation 4 | - [sphinx{design} » Images and figures](inv:myst#syntax/images_and_figures) 5 | - {doc}`sphinx{design} » Images and figures ` 6 | 7 | ## Standard 8 | 9 | The standard Markdown syntax for images. 10 | 11 | ![MyST logo](../_static/myst-logo-wide.svg) 12 | 13 | ## Adjusting attributes 14 | The `attrs_inline` extension can be used to add attributes to an inline image, 15 | for example, to resize/scale it. 16 | 17 | ![MyST logo](../_static/myst-logo-wide.svg){.bg-warning w=100px align=center} 18 | 19 | ## Block level 20 | To create a block image, use the `image` directive. 21 | ```{image} https://myst-parser.readthedocs.io/en/latest/_static/logo-wide.svg 22 | :alt: fishy 23 | :class: bg-primary 24 | :width: 200px 25 | :align: center 26 | ``` 27 | 28 | 29 | ## Figures (images with captions) 30 | 31 | To create a figure, use the `figure` directive. 32 | 33 | ```{figure} ../_static/myst-logo-wide.png 34 | :scale: 50 % 35 | :alt: The MyST logo. 36 | 37 | This is the caption of the figure (a simple paragraph). 38 | 39 | The legend consists of all elements after the caption. In this 40 | case, the legend consists of this paragraph and the following 41 | table: 42 | 43 | | Symbol | Meaning | 44 | | ------ | ------- | 45 | | :logo: | MyST | 46 | ``` 47 | 48 | 49 | ## Subfigures 50 | 51 | Documentation: https://sphinx-subfigure.readthedocs.io/ 52 | 53 | :::{subfigure} AA|BC 54 | :layout-sm: A|B|C 55 | :gap: 8px 56 | :subcaptions: above 57 | :name: myfigure 58 | :class-grid: outline 59 | 60 | ```{image} https://sphinx-subfigure.readthedocs.io/en/latest/_images/A.png 61 | :height: 100px 62 | :alt: Image A 63 | ``` 64 | 65 | ```{image} https://sphinx-subfigure.readthedocs.io/en/latest/_images/B.png 66 | :height: 100px 67 | :alt: Image B 68 | ``` 69 | 70 | ```{image} https://sphinx-subfigure.readthedocs.io/en/latest/_images/C.png 71 | :height: 100px 72 | :alt: Image C 73 | ``` 74 | 75 | ::: 76 | -------------------------------------------------------------------------------- /docs/myst/index.md: -------------------------------------------------------------------------------- 1 | # Using Markedly Structured Text (MyST) 2 | 3 | :::{toctree} 4 | :titlesonly: 5 | :glob: 6 | 7 | introduction 8 | sphinx-design 9 | * 10 | ::: 11 | -------------------------------------------------------------------------------- /docs/myst/infocard.md: -------------------------------------------------------------------------------- 1 | # Info Card 2 | 3 | 4 | ## About 5 | 6 | The [](inv:sde#infocard-directive) is a composite web element from [](inv:sde:*:label#index). 7 | 8 | It is a composite component offering a title, description text, and both verbose 9 | and short tags, or other toolkit elements. It is suitable for authoring pages 10 | enumerating items with dense information, without the maintenance nightmares of tables. 11 | 12 | 13 | ## Examples 14 | 15 | ### Example 1 16 | 17 | ::::{info-card} 18 | 19 | :::{grid-item} 20 | :columns: 8 21 | [example.org/beagles](https://example.org/beagles) 22 | 23 | A module for collecting votes from beagles, \ 24 | and for consolidating them. 25 | 26 | **Author:** C. Schultz, Universal Features Syndicate \ 27 | **Contact:** Los Angeles, CA; 28 | ::: 29 | 30 | :::{grid-item} 31 | :columns: 4 32 | 33 | {tags-primary}`foo, bar` 34 | 35 | {tags-success}`baz` 36 | 37 | {tags-secondary}`qux` 38 | 39 | {tags-info}`anything` 40 | ::: 41 | 42 | :::: 43 | 44 | 45 | ### Example 2 46 | 47 | ::::{info-card} 48 | 49 | :::{grid-item} 50 | :columns: 8 51 | [multihop-firmware](https://hiveeyes.org/docs/arduino/firmware/backdoor/multihop/README.html) 52 | 53 | A flexible software breadboard for ISM RF packet radio nodes, relays, and gateways. 54 | 55 | | **Date:** 2015 56 | | **Source:** multihop.ino 57 | ::: 58 | 59 | :::{grid-item} 60 | :columns: 4 61 | 62 | {tags-primary}`rf69, rf96, lora, beradio` 63 | 64 | {tags-success}`hx711, ds18b20, dht22` 65 | 66 | {tags-secondary}`ATmega328` 67 | 68 | {tags-info}`low-power` 69 | ::: 70 | 71 | :::: 72 | 73 | 74 | ### Example 3 75 | 76 | :::::{info-card} 77 | 78 | ::::{grid-item} 79 | :columns: 8 80 | :class: sd-align-major-spaced 81 | #### Curated picture of the day 82 | 83 | A mountain goat with long horns standing on a grassy hill. 84 | 85 | :::{div} text-small 86 | 87 | **Author:** Jaromír Kalina, Czech Republic, [@jkalina](https://unsplash.com/@jkalina) \ 88 | **Exposé:** https://unsplash.com/photos/spdQ1dVuIHw \ 89 | **Source:** [Unsplash -- The internet’s source for visuals](https://unsplash.com/) 90 | ::: 91 | :::: 92 | 93 | ::::{grid-item} 94 | :columns: 4 95 | 96 | [![](https://unsplash.com/photos/spdQ1dVuIHw/download?ixid=M3wxMjA3fDB8MXxhbGx8fHx8fHx8fHwxNjg5Nzg4MTEzfA&force=true&w=640)](https://unsplash.com/photos/spdQ1dVuIHw) 97 | :::: 98 | 99 | ::::: 100 | -------------------------------------------------------------------------------- /docs/myst/introduction.md: -------------------------------------------------------------------------------- 1 | # MyST introduction 2 | 3 | 4 | ## About 5 | 6 | > A Sphinx and Docutils extension to parse MyST, a rich and extensible flavour 7 | > of Markdown for authoring technical and scientific documentation. 8 | > 9 | > -- https://myst-parser.readthedocs.io/ 10 | 11 | [MyST](https://myst-parser.readthedocs.io/) is a strict superset of the 12 | [CommonMark syntax specification](https://spec.commonmark.org/). 13 | It adds features focussed on scientific and technical documentation authoring. {fas}`star2` 14 | 15 | 16 | ## Details 17 | 18 | Roles and directives provide a way to extend the syntax of MyST in an unbound 19 | manner, by interpreting a chunk of text as a specific type of markup, according 20 | to its name. 21 | Directives syntax is defined with triple-backticks and curly-brackets, effectively 22 | a Markdown code fence. 23 | 24 | -– [Roles and Directives](https://myst-parser.readthedocs.io/en/latest/syntax/roles-and-directives.html) 25 | 26 | 27 | ## History - The great dilemma 28 | 29 | For a long time, the power of the Sphinx documentation generator was only available 30 | to people writing documentation in reStructuredText. Because Markdown gained 31 | significant popularity in recent years, the community was in a big dilemma, and 32 | surely there have been endless Programming Language Wars-style discussions about 33 | using reStructuredText vs. Markdown for documentation authoring. 34 | 35 | This dilemma has come to an end with MyST now, aiming to follow up on the success 36 | of MySQL and mypy – naming-wise. 37 | -------------------------------------------------------------------------------- /docs/myst/mermaid.md: -------------------------------------------------------------------------------- 1 | # Mermaid diagrams 2 | 3 | 4 | ## About 5 | 6 | [Mermaid] is a JavaScript based diagramming and charting tool that renders Markdown- 7 | inspired text definitions to create and modify diagrams dynamically. 8 | 9 | By adding a `mermaid` directive, the [sphinxcontrib-mermaid] extension allows you to 10 | embed Mermaid graphs in your documents, including general flowcharts, sequence diagrams, 11 | gantt diagrams, and more. 12 | 13 | The most popular chart will probably be a flowchart, see [Flowcharts - Basic Syntax] 14 | for an introduction. 15 | 16 | [Mermaid]: https://mermaid.js.org/ 17 | [Flowcharts - Basic Syntax]: https://mermaid.js.org/syntax/flowchart.html 18 | [sphinxcontrib-mermaid]: https://pypi.org/project/sphinxcontrib-mermaid/ 19 | 20 | 21 | ## Examples 22 | 23 | ### Sequence diagram 24 | ```{mermaid} 25 | sequenceDiagram 26 | participant Alice 27 | participant Bob 28 | Alice->John: Hello John, how are you? 29 | ``` 30 | 31 | ### Flowchart diagram 32 | ```{mermaid} ../_static/mermaid-example.mmd 33 | ``` 34 | -------------------------------------------------------------------------------- /docs/myst/misc.md: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | 3 | 4 | ## Inline quotes / citations 5 | 6 | > This text should be quoted. 7 | 8 | 9 | ## Todo items 10 | 11 | ```{todo} 12 | Foo bar baz. 13 | ``` 14 | -------------------------------------------------------------------------------- /docs/myst/notebook-text.md: -------------------------------------------------------------------------------- 1 | --- 2 | # A Jupyter Notebook written in Markdown. 3 | # https://myst-nb.readthedocs.io/ 4 | file_format: mystnb 5 | --- 6 | 7 | (notebook-text)= 8 | 9 | # Notebook (text-based) 10 | 11 | The documentation can include [text-based notebooks] using [MyST-NB], 12 | effectively bringing Jupyter technologies to Markdown. 13 | 14 | ## Basics 15 | 16 | ```{code-cell} ipython3 17 | import sys 18 | print("this is some stdout") 19 | print("this is some stderr", file=sys.stderr) 20 | ``` 21 | 22 | :::{tip} 23 | See also {ref}`notebook-traditional` and {ref}`cells`. 24 | ::: 25 | 26 | ## SQL Magics 27 | 28 | [JupySQL], the successor of [ipython-sql], enables running SQL in Jupyter/IPython 29 | via `%sql` and `%%sql` magics. 30 | 31 | ```{code-cell} ipython3 32 | # Acquire data. 33 | !pip --quiet install csvkit 34 | !curl -s -L -O https://github.com/wireservice/csvkit/raw/refs/heads/master/examples/realdata/acs2012_5yr_population.csv 35 | !rm -f population.db 36 | !csvsql --db sqlite:///population.db --insert acs2012_5yr_population.csv 37 | ``` 38 | ```{code-cell} ipython3 39 | # Run query using JupySQL. 40 | %reload_ext sql 41 | %sql sqlite:///population.db 42 | %sql SELECT * FROM acs2012_5yr_population ORDER BY total_population DESC LIMIT 10; 43 | ``` 44 | 45 | :::{note} 46 | Here, we are using SQLite, in order not to make `sqlalchemy-cratedb` a 47 | dependency of the documentation theme. An example using CrateDB can be 48 | explored at [CrateDB Examples: notebook/jupyter]. 49 | ::: 50 | 51 | :::{todo} 52 | Rendering the result table has unfortunate output when using dark mode. 53 | Please switch to light mode instead. 54 | ::: 55 | 56 | ## Video embeds 57 | 58 | Sometimes it is needed for optimal information conveyance, or just for 59 | entertainment purposes: Notebooks can have video embeds, too. 60 | 61 | :::{youtube} YE7VzlLtp-4 62 | :width: 480 63 | :height: 320 64 | ::: 65 | 66 | 67 | [CrateDB Examples: notebook/jupyter]: https://github.com/crate/cratedb-examples/tree/main/notebook/jupyter 68 | [ipython-sql]: https://github.com/catherinedevlin/ipython-sql 69 | [JupySQL]: https://jupysql.ploomber.io/ 70 | [MyST-NB]: https://myst-nb.readthedocs.io/ 71 | [text-based notebooks]: https://myst-nb.readthedocs.io/en/latest/authoring/text-notebooks.html 72 | -------------------------------------------------------------------------------- /docs/myst/oembed.md: -------------------------------------------------------------------------------- 1 | (oembed-md)= 2 | 3 | # oEmbed widgets 4 | 5 | 6 | ## About 7 | 8 | [oEmbed] is a format for allowing an embedded representation of a URL on 9 | third party sites. The simple API allows a website to display embedded 10 | content (such as photos or videos) when a user posts a link to that 11 | resource, without having to parse the resource directly. 12 | 13 | Client-side implementations of oEmbed, like [oEmbedPy], can render 14 | [oEmbed] information provided by any HTML page, for example Bluesky, 15 | Reddit, Twitter/X, and many more. Registered oEmbed providers can be 16 | explored per [providers.json]. 17 | 18 | 19 | ## Examples 20 | 21 | ### Bluesky 22 | :::{oembed} https://bsky.app/profile/simonprickett.dev/post/3lgizsidy722u 23 | ::: 24 | 25 | ### Reddit 26 | :::{oembed} https://www.reddit.com/r/Database/comments/1i6umke/comment/m8pptia/ 27 | ::: 28 | 29 | ### Twitter/X 30 | :::{oembed} https://x.com/simon_prickett/status/1882858717571641581 31 | ::: 32 | 33 | ### YouTube 34 | :::{oembed} https://www.youtube.com/watch?v=YE7VzlLtp-4 35 | :maxwidth: 480 36 | :maxheight: 320 37 | ::: 38 | 39 | 40 | [oEmbed]: https://oembed.com/ 41 | [oEmbedPy]: https://oembedpy.readthedocs.io/ 42 | [providers.json]: https://oembed.com/providers.json 43 | -------------------------------------------------------------------------------- /docs/myst/sphinx-design.md: -------------------------------------------------------------------------------- 1 | (sphinx-design-myst)= 2 | # sphinx-design, using MyST 3 | 4 | ## Grid layout, cards, badges 5 | 6 | ### Documentation 7 | - [sphinx{design} » Grids](inv:sd#sd-grids) 8 | - [sphinx{design} » Cards](inv:sd#sd-cards) 9 | - [sphinx{design} » Badges](inv:sd#badges) 10 | -------------------------------------------------------------------------------- /docs/myst/tab.md: -------------------------------------------------------------------------------- 1 | # Tabs 2 | 3 | ## sphinx{design} Tabs 4 | 5 | For basic "tabs" needs. 6 | 7 | ### Documentation 8 | - [sphinx{design} » Tabs](inv:sd#sd-tabs) 9 | 10 | ### Examples 11 | 12 | ::::{tab-set} 13 | 14 | :::{tab-item} Label1 15 | Content 1 16 | ::: 17 | 18 | :::{tab-item} Label2 19 | Content 2 20 | ::: 21 | 22 | :::: 23 | 24 | 25 | ## sphinx-inline-tabs 26 | 27 | For more advanced "tabs" needs. 28 | 29 | ### Documentation 30 | 31 | https://sphinx-inline-tabs.readthedocs.io/ 32 | 33 | ### Examples 34 | 35 | #### Basics 36 | ```{tab} Label1 37 | Content 1 38 | ``` 39 | 40 | ```{tab} Label2 41 | Content 2 42 | ``` 43 | 44 | #### Code tabs 45 | ````{tab} Python 46 | ```python 47 | print("Hello World!") 48 | ``` 49 | 50 | It's pretty simple! 51 | ```` 52 | 53 | ````{tab} C++ 54 | ```cpp 55 | #include 56 | 57 | int main() { 58 | std::cout << "Hello World!" << std::endl; 59 | } 60 | ``` 61 | 62 | More code, but it works too! 63 | ```` 64 | 65 | ````{tab} Text 66 | ```none 67 | Hello World! 68 | ``` 69 | 70 | Why not. 71 | ```` 72 | 73 | #### Synchronized 74 | ````{tab} Windows 75 | ```console 76 | $ py -m pip install sphinx 77 | ``` 78 | ```` 79 | 80 | ````{tab} Unix (MacOS / Linux) 81 | ```console 82 | $ python -m pip install sphinx 83 | ``` 84 | ```` 85 | 86 | ````{tab} Windows 87 | :new-set: 88 | ```console 89 | $ make.bat html 90 | ``` 91 | ```` 92 | 93 | ````{tab} Unix (MacOS / Linux) 94 | ```console 95 | $ make html 96 | ``` 97 | ```` 98 | 99 | 100 | #### Nested 101 | ````{tab} Windows 102 | ```{tab} Command prompt 103 | `cmd.exe` 104 | ``` 105 | ```{tab} Powershell 106 | `ps2.exe` 107 | ``` 108 | ```` 109 | 110 | ````{tab} Unix (MacOS / Linux) 111 | 112 | As can be seen on the other tab, the tab sets will "join" when there's 113 | no text between different levels of tabs. Adding text between them 114 | will space them out. 115 | 116 | ```{tab} Bash 117 | `bash` 118 | ``` 119 | ```{tab} Zsh 120 | `zsh` 121 | ``` 122 | ```{tab} Fish 123 | `fish` 124 | ``` 125 | ```{tab} Powershell 126 | `ps2` 127 | ``` 128 | ```` 129 | -------------------------------------------------------------------------------- /docs/myst/table.md: -------------------------------------------------------------------------------- 1 | # Tables 2 | 3 | 4 | ## About 5 | 6 | The [](inv:sde#gridtable-directive) is a composite web element from [](inv:sde:*:label#index). 7 | 8 | 9 | ## Examples 10 | 11 | ::::{sd-table} 12 | :widths: 2 6 4 13 | :row-class: top-border 14 | 15 | :::{sd-row} 16 | ```{sd-item} **Table name** 17 | ``` 18 | ```{sd-item} **Changes** 19 | ``` 20 | ```{sd-item} **Column type changes** 21 | ``` 22 | ::: 23 | 24 | :::{sd-row} 25 | ```{sd-item} pg_proc 26 | ``` 27 | ```{sd-item} 28 | Added: prosupport, prokind, prosqlbody 29 |
30 | Removed: protransform, proisagg, proiswindow 31 | ``` 32 | ```{sd-item} proargdefaults: OBJECT[] -> STRING 33 | ``` 34 | ::: 35 | 36 | :::{sd-row} 37 | ```{sd-item} pg_class 38 | ``` 39 | ```{sd-item} 40 | Added: relrewrite 41 |
42 | Removed: relhasoids, relhaspkey 43 | ``` 44 | ```{sd-item} relacl: OBJECT[] -> STRING[] 45 | ``` 46 | ::: 47 | 48 | :::{sd-row} 49 | ```{sd-item} pg_attribute 50 | ``` 51 | ```{sd-item} 52 | Added: atthasmissing 53 |
54 | Removed: attmissingval 55 | ``` 56 | ```{sd-item} spcacl: OBJECT[] -> STRING[] 57 | ``` 58 | ::: 59 | 60 | :::: 61 | 62 | 63 | --- 64 | 65 | _This page is written in Markedly Structured Text (MyST Markdown)._ 66 | -------------------------------------------------------------------------------- /docs/myst/togglebutton.md: -------------------------------------------------------------------------------- 1 | # Sphinx Togglebutton 2 | 3 | ## About 4 | 5 | [sphinx-togglebutton] is a small Sphinx extension to make it possible to add a 6 | "toggle button" to sections of your page. This allows you to: 7 | 8 | - Collapse Sphinx admonitions (notes, warnings, etc.) so that their content is 9 | hidden until users click a toggle button. 10 | - Collapse arbitrary chunks of content on your page with a collapse directive. 11 | 12 | 13 | ## Examples 14 | 15 | 16 | ### Collapsed 17 | 18 | 19 | The default version is to display the collapsed variant of the element. 20 | 21 | :::{note} 22 | :class: dropdown 23 | 24 | This is my note. 25 | ::: 26 | 27 | 28 | ### Opened 29 | 30 | You may also **show the content by default**. 31 | 32 | :::{note} 33 | :class: dropdown, toggle-shown 34 | 35 | This is my note. 36 | ::: 37 | 38 | 39 | ### Container 40 | 41 | You can also use containers to add arbitrary toggle-able code. For example, 42 | here's a container with an image inside. 43 | 44 | :::::{container} toggle, toggle-hidden 45 | ::::{admonition} Look at that, an image! 46 | 47 | :::{image} https://media.giphy.com/media/mW05nwEyXLP0Y/giphy.gif 48 | ::: 49 | 50 | :::: 51 | ::::: 52 | 53 | 54 | [sphinx-togglebutton]: https://github.com/executablebooks/sphinx-togglebutton 55 | -------------------------------------------------------------------------------- /docs/myst/video.md: -------------------------------------------------------------------------------- 1 | # Videos 2 | 3 | Videos, for example from YouTube or Vimeo, can be embedded using inline 4 | HTML, [sphinxcontrib-youtube], or [oEmbedPy]. 5 | 6 | ## Inline HTML 7 | 8 | This uses a basic `` HTML markup, just written down 9 | into the Markdown file. Voilà. 10 | 11 | 12 | 13 | ## sphinxcontrib-youtube 14 | 15 | This uses the `youtube` and `vimeo` directives provided by `sphinxcontrib-youtube`. 16 | 17 | :::{rubric} YouTube 18 | ::: 19 | :::{youtube} YE7VzlLtp-4 20 | ::: 21 | 22 | :::{rubric} Vimeo 23 | ::: 24 | :::{vimeo} 1084537 25 | ::: 26 | 27 | ## oembedpy 28 | 29 | This uses the `oembed` directive provided by `oembedpy`. 30 | 31 | :::{oembed} https://www.youtube.com/watch?v=YE7VzlLtp-4 32 | :maxwidth: 480 33 | :maxheight: 320 34 | ::: 35 | 36 | :::{tip} 37 | See {ref}`oembed-md` to learn about all capabilities of the `oembed` directive. 38 | ::: 39 | 40 | 41 | [oEmbedPy]: https://oembedpy.readthedocs.io/ 42 | [sphinxcontrib-youtube]: https://sphinxcontrib-youtube.readthedocs.io/ 43 | -------------------------------------------------------------------------------- /docs/projects.rst: -------------------------------------------------------------------------------- 1 | .. _cratedb-projects: 2 | 3 | =========================== 4 | All the projects of CrateDB 5 | =========================== 6 | 7 | Glossary links 8 | ============== 9 | 10 | This paragraph contains a link to the :ref:`foo ` glossary entry 11 | that should be styled black with a dotted underline to make it less prominent 12 | and distinguish it from normal internal links. 13 | 14 | Intersphinx links 15 | ================= 16 | 17 | Those links reference documentation sections within other repositories. 18 | 19 | CrateDB core 20 | ------------ 21 | 22 | - :ref:`guide:index` 23 | - :ref:`crate-reference:index` 24 | 25 | 26 | CrateDB clients 27 | --------------- 28 | 29 | - :ref:`crate-admin-ui:index` 30 | - :ref:`crate-crash:index` 31 | - :ref:`crate-clients-tools:index` 32 | - :ref:`crate-jdbc:index` 33 | - :ref:`crate-npgsql:index` 34 | - :ref:`crate-dbal:index` 35 | - :ref:`crate-pdo:index` 36 | - :ref:`crate-python:index` 37 | 38 | 39 | CrateDB Cloud 40 | ------------- 41 | 42 | - :ref:`cloud:index` 43 | - :ref:`cloud-cli:index` 44 | 45 | 46 | CrateDB Docs 47 | ------------ 48 | 49 | - :ref:`crate-docs:index` 50 | - :ref:`crate-docs-theme:index` 51 | -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- 1 | # Install the `crate-docs-theme` package from the local working tree 2 | # in editable mode. `pip` is invoked from the root directory. 3 | --editable=. 4 | -------------------------------------------------------------------------------- /docs/rst/button.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Buttons 3 | ******* 4 | 5 | Documentation 6 | ============= 7 | - :ref:`sphinx{design} » Buttons ` 8 | 9 | Examples 10 | ======== 11 | .. button-link:: https://example.com 12 | :color: primary 13 | :shadow: 14 | 15 | .. button-link:: https://example.com 16 | :color: primary 17 | :outline: 18 | 19 | .. button-link:: https://example.com 20 | :color: secondary 21 | :expand: 22 | -------------------------------------------------------------------------------- /docs/rst/cell.rst: -------------------------------------------------------------------------------- 1 | ##### 2 | Cells 3 | ##### 4 | 5 | This is just a placeholder. 6 | See Markdown variant at :ref:`cells`. 7 | -------------------------------------------------------------------------------- /docs/rst/crossref.rst: -------------------------------------------------------------------------------- 1 | ################ 2 | Cross-references 3 | ################ 4 | 5 | Nothing here, yet. 6 | -------------------------------------------------------------------------------- /docs/rst/icon.rst: -------------------------------------------------------------------------------- 1 | ***** 2 | Icons 3 | ***** 4 | 5 | Documentation 6 | ============= 7 | - :ref:`sphinx{design} » Icons ` 8 | 9 | Examples 10 | ======== 11 | 12 | Octicon Icons 13 | ------------- 14 | 15 | A coloured icon: :octicon:`report;1em;sd-text-info`, some more text. 16 | 17 | - Alert: :octicon:`alert` 18 | - Mention: :octicon:`mention` 19 | 20 | Material Design Icons 21 | --------------------- 22 | 23 | - regular icon: :material-regular:`data_exploration;2em`, some more text 24 | - A coloured regular icon: :material-regular:`settings;3em;sd-text-success`, some more text. 25 | - A coloured outline icon: :material-outlined:`settings;3em;sd-text-success`, some more text. 26 | - A coloured sharp icon: :material-sharp:`settings;3em;sd-text-success`, some more text. 27 | - A coloured round icon: :material-round:`settings;3em;sd-text-success`, some more text. 28 | - A coloured two-tone icon: :material-twotone:`settings;3em;sd-text-success`, some more text. 29 | - A fixed size icon: :material-regular:`data_exploration;24px`, some more text. 30 | 31 | FontAwesome Icons 32 | ----------------- 33 | 34 | - An icon :fas:`spinner;sd-text-primary`, some more text. 35 | - An icon :fab:`github`, some more text. 36 | - An icon :fab:`gitkraken;sd-text-success fa-xl`, some more text. 37 | - An icon :fas:`skull;sd-text-danger`, some more text. 38 | -------------------------------------------------------------------------------- /docs/rst/image-figure.rst: -------------------------------------------------------------------------------- 1 | ################## 2 | Images and figures 3 | ################## 4 | 5 | Nothing here, yet. 6 | -------------------------------------------------------------------------------- /docs/rst/index.rst: -------------------------------------------------------------------------------- 1 | ############################ 2 | Using reStructuredText (rST) 3 | ############################ 4 | 5 | .. toctree:: 6 | :titlesonly: 7 | :glob: 8 | 9 | introduction 10 | sphinx-design 11 | * 12 | -------------------------------------------------------------------------------- /docs/rst/infocard.rst: -------------------------------------------------------------------------------- 1 | ######### 2 | Info Card 3 | ######### 4 | 5 | 6 | ***** 7 | About 8 | ***** 9 | 10 | The :ref:`sde:infocard-directive` is a composite web element from :ref:`sde:index`. 11 | 12 | It is a composite component offering a title, description text, and both verbose 13 | and short tags, or other toolkit elements. It is suitable for authoring pages 14 | enumerating items with dense information, without the maintenance nightmares of tables. 15 | 16 | 17 | ******** 18 | Examples 19 | ******** 20 | 21 | Example 1 22 | ========= 23 | 24 | .. info-card:: 25 | 26 | .. grid-item:: 27 | :columns: 8 28 | 29 | `example.org/beagles `_ 30 | 31 | | A module for collecting votes from beagles, 32 | | and for consolidating them. 33 | | 34 | | **Author:** C. Schultz, Universal Features Syndicate 35 | | **Contact:** Los Angeles, CA; 36 | 37 | .. grid-item:: 38 | :columns: 4 39 | 40 | :tags-primary:`foo, bar` 41 | 42 | :tags-success:`baz` 43 | 44 | :tags-secondary:`qux` 45 | 46 | :tags-info:`anything` 47 | 48 | 49 | Example 2 50 | ========= 51 | 52 | .. info-card:: 53 | 54 | .. grid-item:: 55 | :columns: 8 56 | 57 | `multihop-firmware `_ 58 | 59 | | A flexible software breadboard for ISM RF packet radio nodes, relays, and gateways. 60 | | 61 | | **Date:** 2015 62 | | **Source:** multihop.ino 63 | 64 | .. grid-item:: 65 | :columns: 4 66 | 67 | :tags-primary:`rf69, rf96, lora, beradio` 68 | 69 | :tags-success:`hx711, ds18b20, dht22` 70 | 71 | :tags-secondary:`ATmega328` 72 | 73 | :tags-info:`low-power` 74 | 75 | 76 | Example 3 77 | ========= 78 | 79 | .. info-card:: 80 | 81 | .. grid-item:: 82 | :columns: 8 83 | :class: sd-align-major-spaced 84 | 85 | **Curated picture of the day** 86 | 87 | A mountain goat with long horns standing on a grassy hill. 88 | 89 | .. div:: text-small 90 | 91 | | **Author:** Jaromír Kalina, Czech Republic, `@jkalina `_ 92 | | **Exposé:** https://unsplash.com/photos/spdQ1dVuIHw 93 | | **Source:** `Unsplash -- The internet’s source for visuals `_ 94 | 95 | .. grid-item:: 96 | :columns: 4 97 | 98 | .. image:: https://unsplash.com/photos/spdQ1dVuIHw/download?ixid=M3wxMjA3fDB8MXxhbGx8fHx8fHx8fHwxNjg5Nzg4MTEzfA&force=true&w=640 99 | :target: https://unsplash.com/photos/spdQ1dVuIHw 100 | -------------------------------------------------------------------------------- /docs/rst/introduction.rst: -------------------------------------------------------------------------------- 1 | ################ 2 | rST introduction 3 | ################ 4 | 5 | ***** 6 | About 7 | ***** 8 | 9 | .. todo:: 10 | 11 | Add some introductory content about reStructuredText. 12 | 13 | 14 | ********* 15 | Resources 16 | ********* 17 | 18 | - `Guide to reStructuredText and Sphinx`_ 19 | 20 | 21 | .. _Guide to reStructuredText and Sphinx: https://documatt.com/restructuredtext-reference/ 22 | -------------------------------------------------------------------------------- /docs/rst/mermaid.rst: -------------------------------------------------------------------------------- 1 | ################ 2 | Mermaid diagrams 3 | ################ 4 | 5 | 6 | ***** 7 | About 8 | ***** 9 | 10 | `Mermaid`_ is a JavaScript based diagramming and charting tool that renders Markdown- 11 | inspired text definitions to create and modify diagrams dynamically. 12 | 13 | By adding a ``mermaid`` directive, the `sphinxcontrib-mermaid`_ extension allows you to 14 | embed Mermaid graphs in your documents, including general flowcharts, sequence diagrams, 15 | gantt diagrams, and more. 16 | 17 | The most popular chart will probably be a flowchart, see `Flowcharts - Basic Syntax`_ 18 | for an introduction. 19 | 20 | .. _Mermaid: https://mermaid.js.org/ 21 | .. _Flowcharts - Basic Syntax: https://mermaid.js.org/syntax/flowchart.html 22 | .. _sphinxcontrib-mermaid: https://pypi.org/project/sphinxcontrib-mermaid/ 23 | 24 | 25 | ******** 26 | Examples 27 | ******** 28 | 29 | Sequence diagram 30 | ================ 31 | 32 | .. mermaid:: 33 | 34 | sequenceDiagram 35 | participant Alice 36 | participant Bob 37 | Alice->John: Hello John, how are you? 38 | 39 | Flowchart diagram 40 | ================= 41 | 42 | .. mermaid:: ../_static/mermaid-example.mmd 43 | -------------------------------------------------------------------------------- /docs/rst/misc.rst: -------------------------------------------------------------------------------- 1 | ############# 2 | Miscellaneous 3 | ############# 4 | 5 | Inline quotes / citations 6 | ========================= 7 | 8 | This text should be quoted. 9 | 10 | Todo items 11 | ========== 12 | .. todo:: 13 | 14 | Foo bar baz. 15 | -------------------------------------------------------------------------------- /docs/rst/notebook-text.rst: -------------------------------------------------------------------------------- 1 | ##################### 2 | Notebook (text-based) 3 | ##################### 4 | 5 | There are no Jupyter Notebooks in reStructuredText format. 6 | See :ref:`notebook-text` for a Markdown variant instead. 7 | -------------------------------------------------------------------------------- /docs/rst/notebook-traditional.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "metadata": {}, 5 | "cell_type": "markdown", 6 | "source": [ 7 | "# Notebook (traditional)\n", 8 | "\n", 9 | "This is just a placeholder.\n", 10 | "See {ref}`notebook-traditional` instead." 11 | ] 12 | } 13 | ], 14 | "metadata": { 15 | "kernelspec": { 16 | "name": "python3", 17 | "language": "python", 18 | "display_name": "Python 3 (ipykernel)" 19 | } 20 | }, 21 | "nbformat": 4, 22 | "nbformat_minor": 0 23 | } 24 | -------------------------------------------------------------------------------- /docs/rst/oembed.rst: -------------------------------------------------------------------------------- 1 | .. _oembed-rst: 2 | 3 | ############## 4 | oEmbed widgets 5 | ############## 6 | 7 | ===== 8 | About 9 | ===== 10 | 11 | `oEmbed`_ is a format for allowing an embedded representation of a URL on 12 | third party sites. The simple API allows a website to display embedded 13 | content (such as photos or videos) when a user posts a link to that 14 | resource, without having to parse the resource directly. 15 | 16 | Client-side implementations of oEmbed, like `oEmbedPy`_, can render 17 | `oEmbed`_ information provided by any HTML page, for example Bluesky, 18 | Reddit, Twitter/X, and many more. Registered oEmbed providers can be 19 | explored per [providers.json]. 20 | 21 | ======== 22 | Examples 23 | ======== 24 | 25 | Bluesky 26 | ======= 27 | .. oembed:: https://bsky.app/profile/simonprickett.dev/post/3lgizsidy722u 28 | 29 | Reddit 30 | ======= 31 | .. oembed:: https://www.reddit.com/r/Database/comments/1i6umke/comment/m8pptia/ 32 | 33 | Twitter/X 34 | ========= 35 | .. oembed:: https://x.com/simon_prickett/status/1882858717571641581 36 | 37 | YouTube 38 | ======= 39 | .. oembed:: https://www.youtube.com/watch?v=YE7VzlLtp-4 40 | :maxwidth: 480 41 | :maxheight: 320 42 | 43 | 44 | .. _oEmbed: https://oembed.com/ 45 | .. _oEmbedPy: https://oembedpy.readthedocs.io/ 46 | .. _providers.json: https://oembed.com/providers.json 47 | -------------------------------------------------------------------------------- /docs/rst/sphinx-design.rst: -------------------------------------------------------------------------------- 1 | .. _sphinx-design-rst: 2 | 3 | ######################## 4 | sphinx-design, using rST 5 | ######################## 6 | 7 | 8 | ************************** 9 | Grid layout, cards, badges 10 | ************************** 11 | 12 | Documentation 13 | ============= 14 | 15 | - :ref:`sphinx{design} » Grids ` 16 | - :ref:`sphinx{design} » Cards ` 17 | - :ref:`sphinx{design} » Badges ` 18 | -------------------------------------------------------------------------------- /docs/rst/tab.rst: -------------------------------------------------------------------------------- 1 | #### 2 | Tabs 3 | #### 4 | 5 | 6 | ******************* 7 | sphinx{design} Tabs 8 | ******************* 9 | 10 | For basic "tabs" needs. 11 | 12 | Documentation 13 | ============= 14 | - :ref:`sphinx{design} » Tabs ` 15 | 16 | Examples 17 | ======== 18 | 19 | .. tab-set:: 20 | 21 | .. tab-item:: Label1 22 | 23 | Content 1 24 | 25 | .. tab-item:: Label2 26 | 27 | Content 2 28 | 29 | 30 | ****************** 31 | sphinx-inline-tabs 32 | ****************** 33 | 34 | For more advanced "tabs" needs. 35 | 36 | Documentation 37 | ============= 38 | 39 | https://sphinx-inline-tabs.readthedocs.io/ 40 | 41 | Examples 42 | ======== 43 | 44 | Basics 45 | ------ 46 | 47 | .. tab:: Label1 48 | 49 | Content 1 50 | 51 | .. tab:: Label2 52 | 53 | Content 2 54 | 55 | Code tabs 56 | --------- 57 | 58 | .. tab:: Python 59 | 60 | .. code-block:: python 61 | 62 | print("Hello World!") 63 | 64 | It's pretty simple! 65 | 66 | .. tab:: C++ 67 | 68 | .. code-block:: cpp 69 | 70 | #include 71 | 72 | int main() { 73 | std::cout << "Hello World!" << std::endl; 74 | 75 | } 76 | 77 | More code, but it works too! 78 | 79 | .. tab:: Text 80 | 81 | .. code-block:: none 82 | 83 | Hello World! 84 | 85 | Why not. 86 | 87 | Synchronized 88 | ------------ 89 | 90 | .. tab:: Windows 91 | 92 | .. code-block:: console 93 | 94 | $ py -m pip install sphinx 95 | 96 | .. tab:: Unix (MacOS / Linux) 97 | 98 | .. code-block:: console 99 | 100 | $ python -m pip install sphinx 101 | 102 | 103 | .. tab:: Windows 104 | :new-set: 105 | 106 | .. code-block:: console 107 | 108 | $ make.bat html 109 | 110 | .. tab:: Unix (MacOS / Linux) 111 | 112 | .. code-block:: console 113 | 114 | $ make html 115 | 116 | Nested 117 | ------ 118 | 119 | .. tab:: Windows 120 | 121 | .. tab:: Command prompt 122 | 123 | ``cmd.exe`` 124 | 125 | .. tab:: Powershell 126 | 127 | ``ps2.exe`` 128 | 129 | 130 | .. tab:: Unix (MacOS / Linux) 131 | 132 | As can be seen on the other tab, the tab sets will "join" when there's 133 | no text between different levels of tabs. Adding text between them 134 | will space them out. 135 | 136 | .. tab:: Bash 137 | 138 | ``bash`` 139 | 140 | .. tab:: Zsh 141 | 142 | ``zsh`` 143 | 144 | .. tab:: Fish 145 | 146 | ``fish`` 147 | 148 | .. tab:: Powershell 149 | 150 | ``ps2`` 151 | -------------------------------------------------------------------------------- /docs/rst/table.rst: -------------------------------------------------------------------------------- 1 | ###### 2 | Tables 3 | ###### 4 | 5 | 6 | ***** 7 | About 8 | ***** 9 | 10 | The :ref:`sde:gridtable-directive` is a composite web element from :ref:`sde:index`. 11 | 12 | 13 | ******** 14 | Examples 15 | ******** 16 | 17 | .. sd-table:: 18 | :widths: 2 6 4 19 | :row-class: top-border 20 | 21 | .. sd-row:: 22 | .. sd-item:: **Table name** 23 | .. sd-item:: **Changes** 24 | .. sd-item:: **Column type changes** 25 | 26 | .. sd-row:: 27 | .. sd-item:: pg_proc 28 | .. sd-item:: 29 | | Added: prosupport, prokind, prosqlbody 30 | | Removed: protransform, proisagg, proiswindow 31 | .. sd-item:: proargdefaults: OBJECT[] -> STRING 32 | 33 | .. sd-row:: 34 | .. sd-item:: pg_class 35 | .. sd-item:: 36 | | Added: relrewrite 37 | | Removed: relhasoids, relhaspkey 38 | .. sd-item:: relacl: OBJECT[] -> STRING[] 39 | 40 | .. sd-row:: 41 | .. sd-item:: pg_attribute 42 | .. sd-item:: 43 | | Added: atthasmissing 44 | | Removed: attmissingval 45 | .. sd-item:: spcacl: OBJECT[] -> STRING[] 46 | 47 | 48 | ---- 49 | 50 | *This page is written in reStructuredText (rST).* 51 | -------------------------------------------------------------------------------- /docs/rst/togglebutton.rst: -------------------------------------------------------------------------------- 1 | ################### 2 | Sphinx Togglebutton 3 | ################### 4 | 5 | 6 | ***** 7 | About 8 | ***** 9 | 10 | `sphinx-togglebutton`_ is a small Sphinx extension to make it possible to add a 11 | "toggle button" to sections of your page. This allows you to: 12 | 13 | - Collapse Sphinx admonitions (notes, warnings, etc.) so that their content is 14 | hidden until users click a toggle button. 15 | - Collapse arbitrary chunks of content on your page with a collapse directive. 16 | 17 | 18 | ******** 19 | Examples 20 | ******** 21 | 22 | 23 | Collapsed 24 | ========= 25 | 26 | The default version is to display the collapsed variant of the element. 27 | 28 | .. note:: 29 | :class: dropdown 30 | 31 | This is my note. 32 | 33 | Opened 34 | ====== 35 | 36 | You may also **show the content by default**. 37 | 38 | .. note:: 39 | :class: dropdown, toggle-shown 40 | 41 | This is my note. 42 | 43 | Container 44 | ========= 45 | 46 | You can also use containers to add arbitrary toggle-able code. For example, 47 | here's a container with an image inside. 48 | 49 | .. container:: toggle, toggle-hidden 50 | 51 | .. admonition:: Look at that, an image! 52 | 53 | .. image:: https://media.giphy.com/media/mW05nwEyXLP0Y/giphy.gif 54 | 55 | 56 | .. _sphinx-togglebutton: https://github.com/executablebooks/sphinx-togglebutton 57 | -------------------------------------------------------------------------------- /docs/rst/video.rst: -------------------------------------------------------------------------------- 1 | ###### 2 | Videos 3 | ###### 4 | 5 | Videos, for example from YouTube or Vimeo, can be embedded using inline 6 | HTML, `sphinxcontrib-youtube`_, or `oembedpy`_. 7 | 8 | Inline HTML 9 | =========== 10 | 11 | This uses a basic ```` HTML markup, just written down 12 | into the Markdown file. Voilà. 13 | 14 | .. raw:: html 15 | 16 | 17 | 18 | sphinxcontrib-youtube 19 | ===================== 20 | 21 | This uses the ``youtube`` and ``vimeo`` directives provided by ``sphinxcontrib-youtube``. 22 | 23 | .. rubric:: YouTube 24 | .. youtube:: YE7VzlLtp-4 25 | 26 | .. rubric:: Vimeo 27 | .. vimeo:: 1084537 28 | 29 | oembedpy 30 | ======== 31 | 32 | This uses the ``oembed`` directive provided by ``oembedpy``. 33 | 34 | .. oembed:: https://www.youtube.com/watch?v=YE7VzlLtp-4 35 | :maxwidth: 480 36 | :maxheight: 320 37 | 38 | .. tip:: 39 | 40 | See :ref:`oembed-rst` to learn about all capabilities of the ``oembed`` directive. 41 | 42 | 43 | .. _oEmbedPy: https://oembedpy.readthedocs.io/ 44 | .. _sphinxcontrib-youtube: https://sphinxcontrib-youtube.readthedocs.io/ 45 | -------------------------------------------------------------------------------- /docs/subpage.rst: -------------------------------------------------------------------------------- 1 | ========= 2 | A subpage 3 | ========= 4 | 5 | This is a subpage. 6 | 7 | .. TIP:: 8 | 9 | :ref:`Index ` 10 | 11 | .. rubric:: Table of contents 12 | 13 | .. contents:: 14 | :local: 15 | 16 | Top-level heading 17 | ================= 18 | 19 | Second-level heading 20 | -------------------- 21 | 22 | Third-level heading 23 | ~~~~~~~~~~~~~~~~~~~ 24 | 25 | Fourth-level heading 26 | ^^^^^^^^^^^^^^^^^^^^ 27 | 28 | Fifth-level heading 29 | ................... 30 | -------------------------------------------------------------------------------- /docs/tables.rst: -------------------------------------------------------------------------------- 1 | ========================= 2 | Different kinds of tables 3 | ========================= 4 | 5 | A simple ``list-table`` with header. 6 | 7 | .. list-table:: 8 | :header-rows: 1 9 | 10 | * - Foo 11 | - Bar 12 | - Baz 13 | - Qux 14 | * - ``KEEP`` 15 | - calm 16 | - and 17 | - carry on 18 | 19 | 20 | A ``list-table`` with header, column widths and alignment. 21 | 22 | .. list-table:: 23 | :header-rows: 1 24 | :widths: 15 10 30 20 25 | :align: left 26 | 27 | * - Foo 28 | - Bar 29 | - Baz 30 | - Qux 31 | * - ``KEEP`` 32 | - calm 33 | - and 34 | - carry on 35 | -------------------------------------------------------------------------------- /docs/typography.rst: -------------------------------------------------------------------------------- 1 | ########## 2 | Typography 3 | ########## 4 | 5 | 6 | The quick brown fox jumps over the lazy dog. 7 | Franz jagt im komplett verwahrlosten Taxi quer durch Bayern. 8 | 9 | -------------------------------------------------------------------------------- /modernizr-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "minify": true, 3 | "options": [ 4 | "setClasses" 5 | ], 6 | "feature-detects": [] 7 | } 8 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "license": "Apache-2.0", 3 | "devDependencies": { 4 | "css-loader": "^7.1", 5 | "expose-loader": "^5.0", 6 | "jquery": "^3.7.1", 7 | "js-cookie": "^3.0.5", 8 | "normalize.css": "^8.0.1", 9 | "postcss-loader": "^8.1", 10 | "sass": "^1.87.0", 11 | "sass-loader": "^16.0", 12 | "sticky-sidebar": "^3.3.1", 13 | "style-loader": "^4.0", 14 | "webpack": "^5.99", 15 | "webpack-cli": "^4.10", 16 | "webpack-modernizr-loader": "^5.0.0" 17 | }, 18 | "resolutions": { 19 | "loader-utils": "^1.4.2", 20 | "markdown-it": "^13.0.1", 21 | "minimist": "^1.2.7" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | build 2 | setuptools 3 | twine 4 | wheel 5 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | import os 23 | from importlib import machinery 24 | from setuptools import setup, find_namespace_packages 25 | 26 | pwd = os.path.join(os.path.dirname(__file__)) 27 | filepath = os.path.join(pwd, "src", "crate", "theme", "rtd", "__init__.py") 28 | version = machinery.SourceFileLoader("theme", filepath).load_module().__version__ 29 | 30 | README = open(os.path.join(pwd, 'README.rst')).read() 31 | 32 | setup( 33 | name="crate-docs-theme", 34 | version=version, 35 | description="CrateDB Documentation Theme", 36 | long_description=README, 37 | long_description_content_type="text/x-rst", 38 | classifiers=[ 39 | "Intended Audience :: Developers", 40 | "License :: OSI Approved :: Apache Software License", 41 | "Operating System :: OS Independent", 42 | "Programming Language :: Python", 43 | "Programming Language :: Python :: 3", 44 | "Programming Language :: Python :: 3.9", 45 | "Programming Language :: Python :: 3.10", 46 | "Programming Language :: Python :: 3.11", 47 | "Programming Language :: Python :: 3.12", 48 | "Programming Language :: Python :: 3.13", 49 | "Topic :: Software Development :: Documentation", 50 | ], 51 | author="Crate.IO GmbH", 52 | author_email="office@crate.io", 53 | url="https://github.com/crate/crate-docs-theme", 54 | keywords="cratedb docs sphinx readthedocs", 55 | license="Apache License 2.0", 56 | packages=find_namespace_packages(where="src"), 57 | package_dir={"": "src"}, 58 | include_package_data=True, 59 | zip_safe=False, 60 | install_requires=[ 61 | "furo==2024.8.6", 62 | "jinja2>=3,<4", 63 | "jupysql<0.12", 64 | "myst-nb<1.3", 65 | "myst-parser[linkify]<5", 66 | "oembedpy>=0.8.1,<0.9", 67 | "snowballstemmer<3", 68 | "sphinx>=7.1,<9", 69 | "sphinx-basic-ng==1.0.0b2", 70 | "sphinx-copybutton>=0.3.1,<1", 71 | "sphinx-design-elements==0.4.0", 72 | "sphinx-inline-tabs", 73 | "sphinx-sitemap>=2.6,<3", 74 | "sphinx-subfigure<1", 75 | "sphinx-togglebutton<1", 76 | "sphinxext.opengraph>=0.4,<1", 77 | "sphinxcontrib-mermaid<2", 78 | "sphinxcontrib-plantuml>=0.21,<1", 79 | "sphinxcontrib-youtube<2", 80 | ], 81 | python_requires=">=3.9", 82 | ) 83 | -------------------------------------------------------------------------------- /src/crate/theme/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/__init__.py -------------------------------------------------------------------------------- /src/crate/theme/rtd/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | """CrateDB Sphinx theme for Read the Docs""" 23 | 24 | import os 25 | 26 | VERSION = (0, 38, 5) 27 | 28 | __version__ = ".".join(str(v) for v in VERSION) 29 | __version_full__ = __version__ 30 | 31 | 32 | def get_version(): 33 | return __version__ 34 | 35 | 36 | def current_dir(): 37 | return os.path.abspath(os.path.dirname(__file__)) 38 | 39 | 40 | def get_html_theme_path(): 41 | """Return list of HTML theme paths.""" 42 | return [current_dir()] 43 | 44 | 45 | def get_html_static_path(): 46 | """Return list of HTML static paths.""" 47 | current_dir = current_dir() 48 | return [ 49 | os.path.join(current_dir, "crate", "static"), 50 | ] 51 | 52 | 53 | def get_html_template_path(): 54 | """Return list of HTML template paths.""" 55 | current_dir = current_dir() 56 | return [ 57 | os.path.join(current_dir, "crate"), 58 | ] 59 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/cloud.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | from crate.theme.rtd.conf import * 24 | 25 | # If you update the `project` value here, you must update it in the 26 | # `src/crate/theme/rtd/crate/sidebartoc.html` file or else Sphinx will not 27 | # expand the sidebar TOC for this project. 28 | project = "CrateDB Cloud" 29 | html_title = project 30 | 31 | url_path = "docs/cloud" 32 | html_baseurl = "https://cratedb.com/%s/" % url_path 33 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/cloud_cli.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | from crate.theme.rtd.conf import * 24 | 25 | # If you update the `project` value here, you must update it in the 26 | # `src/crate/theme/rtd/crate/sidebartoc.html` file or else Sphinx will not 27 | # expand the sidebar TOC for this project. 28 | project = u"CrateDB Cloud: Croud CLI" 29 | html_title = project 30 | 31 | url_path = "docs/cloud/cli" 32 | html_baseurl = "https://cratedb.com/%s/" % url_path 33 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/crate_admin_ui.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | from crate.theme.rtd.conf import * 24 | 25 | # If you update the `project` value here, you must update it in the 26 | # `src/crate/theme/rtd/crate/sidebartoc.html` file or else Sphinx will not 27 | # expand the sidebar TOC for this project. 28 | project = u"CrateDB: Admin UI" 29 | html_title = project 30 | 31 | url_path = "docs/crate/admin-ui" 32 | html_baseurl = "https://cratedb.com/%s/" % url_path 33 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/crate_clients_tools.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | from crate.theme.rtd.conf import * 24 | 25 | # If you update the `project` value here, you must update it in the 26 | # `src/crate/theme/rtd/crate/sidebartoc.html` file or else Sphinx will not 27 | # expand the sidebar TOC for this project. 28 | project = u"CrateDB: Clients and Tools" 29 | html_title = project 30 | 31 | url_path = "docs/crate/clients-tools" 32 | html_baseurl = "https://cratedb.com/%s/" % url_path 33 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/crate_crash.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | from crate.theme.rtd.conf import * 24 | 25 | # If you update the `project` value here, you must update it in the 26 | # `src/crate/theme/rtd/crate/sidebartoc.html` file or else Sphinx will not 27 | # expand the sidebar TOC for this project. 28 | project = u"CrateDB: Crash CLI" 29 | html_title = project 30 | 31 | url_path = "docs/crate/crash" 32 | html_baseurl = "https://cratedb.com/%s/" % url_path 33 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/crate_howtos.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | from crate.theme.rtd.conf import * 24 | 25 | # If you update the `project` value here, you must update it in the 26 | # `src/crate/theme/rtd/crate/sidebartoc.html` file or else Sphinx will not 27 | # expand the sidebar TOC for this project. 28 | project = u"CrateDB: How-Tos" 29 | html_title = project 30 | 31 | url_path = "docs/crate/howtos" 32 | html_baseurl = "https://cratedb.com/%s/" % url_path 33 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/crate_reference.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | from crate.theme.rtd.conf import * 24 | 25 | # If you update the `project` value here, you must update it in the 26 | # `src/crate/theme/rtd/crate/sidebartoc.html` file or else Sphinx will not 27 | # expand the sidebar TOC for this project. 28 | project = u"CrateDB: Reference" 29 | html_title = project 30 | 31 | url_path = "docs/crate/reference" 32 | html_baseurl = "https://cratedb.com/%s/" % url_path 33 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/crate_tutorials.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | from crate.theme.rtd.conf import * 24 | 25 | # If you update the `project` value here, you must update it in the 26 | # `src/crate/theme/rtd/crate/sidebartoc.html` file or else Sphinx will not 27 | # expand the sidebar TOC for this project. 28 | project = u"CrateDB: Tutorials" 29 | html_title = project 30 | 31 | url_path = "docs/crate/tutorials" 32 | html_baseurl = "https://cratedb.com/%s/" % url_path 33 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/cratedb_guide.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | from crate.theme.rtd.conf import * 24 | 25 | # If you update the `project` value here, you must update it in the 26 | # `src/crate/theme/rtd/crate/sidebartoc.html` file or else Sphinx will not 27 | # expand the sidebar TOC for this project. 28 | project = u"CrateDB: Guide" 29 | html_title = project 30 | 31 | url_path = "docs/guide" 32 | html_baseurl = "https://cratedb.com/%s/" % url_path 33 | 34 | # This is a project which is not versioned. 35 | version = "" 36 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/dbal.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | from crate.theme.rtd.conf import * 24 | 25 | # If you update the `project` value here, you must update it in the 26 | # `src/crate/theme/rtd/crate/sidebartoc.html` file or else Sphinx will not 27 | # expand the sidebar TOC for this project. 28 | project = u"CrateDB DBAL" 29 | html_title = project 30 | 31 | url_path = "docs/dbal" 32 | html_baseurl = "https://cratedb.com/%s/" % url_path 33 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/doing_docs.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | from crate.theme.rtd.conf import * 24 | 25 | # If you update the `project` value here, you must update it in the 26 | # `src/crate/theme/rtd/crate/sidebartoc.html` file or else Sphinx will not 27 | # expand the sidebar TOC for this project. 28 | project = u"Doing Docs" 29 | html_title = project 30 | 31 | url_path = "docs/meta" 32 | html_baseurl = "https://cratedb.com/%s/" % url_path 33 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/furo.py: -------------------------------------------------------------------------------- 1 | """ 2 | Vendored version of Furo's navigation tree component. 3 | 4 | https://github.com/pradyunsg/furo/blob/main/src/furo/navigation.py 5 | """ 6 | import sphinx 7 | import typing as t 8 | 9 | from furo import get_navigation_tree 10 | 11 | from crate.theme.rtd import __version__ 12 | from sphinx.builders.html import StandaloneHTMLBuilder 13 | 14 | 15 | def furo_compute_navigation_tree(context: t.Dict[str, t.Any]) -> str: 16 | """ 17 | The navigation tree, generated from the sphinx-provided ToC tree. 18 | """ 19 | if "toctree" in context: 20 | toctree = context["toctree"] 21 | toctree_html = toctree( 22 | collapse=False, 23 | titles_only=True, 24 | maxdepth=-1, 25 | includehidden=True, 26 | ) 27 | else: 28 | toctree_html = "" 29 | 30 | return get_navigation_tree(toctree_html) 31 | 32 | 33 | def _html_page_context( 34 | app: sphinx.application.Sphinx, 35 | pagename: str, 36 | templatename: str, 37 | context: t.Dict[str, t.Any], 38 | doctree: t.Any, 39 | ) -> None: 40 | """ 41 | HTML page context provider. 42 | """ 43 | if not isinstance(app.builder, StandaloneHTMLBuilder): 44 | raise Exception( 45 | "Theme is being used with a non-HTML builder. " 46 | "If you're seeing this error, it is a symptom of a mistake in your " 47 | "configuration." 48 | ) 49 | 50 | # Basic constants 51 | context["theme_version"] = __version__ 52 | 53 | # Values computed from page-level context. 54 | context["ng_navigation_tree"] = furo_compute_navigation_tree(context) 55 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/jdbc.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | from crate.theme.rtd.conf import * 24 | 25 | # If you update the `project` value here, you must update it in the 26 | # `src/crate/theme/rtd/crate/sidebartoc.html` file or else Sphinx will not 27 | # expand the sidebar TOC for this project. 28 | project = u"CrateDB JDBC" 29 | html_title = project 30 | 31 | # Vanilla Sphinx/RTD `html_baseurl`. 32 | html_baseurl = "https://cratedb.com/docs/jdbc/" 33 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/npgsql.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | from crate.theme.rtd.conf import * 24 | 25 | # If you update the `project` value here, you must update it in the 26 | # `src/crate/theme/rtd/crate/sidebartoc.html` file or else Sphinx will not 27 | # expand the sidebar TOC for this project. 28 | project = u"CrateDB Npgsql" 29 | html_title = project 30 | 31 | # Vanilla Sphinx/RTD `html_baseurl`. 32 | html_baseurl = "https://cratedb.com/docs/npgsql/" 33 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/pdo.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | from crate.theme.rtd.conf import * 24 | 25 | # If you update the `project` value here, you must update it in the 26 | # `src/crate/theme/rtd/crate/sidebartoc.html` file or else Sphinx will not 27 | # expand the sidebar TOC for this project. 28 | project = u"CrateDB PDO" 29 | html_title = project 30 | 31 | url_path = "docs/pdo" 32 | html_baseurl = "https://cratedb.com/%s/" % url_path 33 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/python.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | from crate.theme.rtd.conf import * 24 | 25 | # If you update the `project` value here, you must update it in the 26 | # `src/crate/theme/rtd/crate/sidebartoc.html` file or else Sphinx will not 27 | # expand the sidebar TOC for this project. 28 | project = u"CrateDB Python" 29 | html_title = project 30 | 31 | url_path = "docs/python" 32 | html_baseurl = "https://cratedb.com/%s/" % url_path 33 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/sql_99.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | from crate.theme.rtd.conf import * 24 | 25 | # If you update the `project` value here, you must update it in the 26 | # `src/crate/theme/rtd/crate/sidebartoc.html` file or else Sphinx will not 27 | # expand the sidebar TOC for this project. 28 | project = u"SQL 99" 29 | html_title = project 30 | 31 | html_baseurl = "https://sql-99.readthedocs.io/" 32 | 33 | # Disable the GitHub feedback area. 34 | html_context_custom.update({ 35 | "display_github": False, 36 | }) 37 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/sqlalchemy_cratedb.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | from crate.theme.rtd.conf import * 24 | 25 | # If you update the `project` value here, you must update it in the 26 | # `src/crate/theme/rtd/crate/sidebartoc.html` file or else Sphinx will not 27 | # expand the sidebar TOC for this project. 28 | project = u"SQLAlchemy Dialect" 29 | html_title = project 30 | 31 | url_path = "docs/sqlalchemy-cratedb" 32 | html_baseurl = "https://cratedb.com/%s/" % url_path 33 | 34 | # This is a project which is not versioned. 35 | version = "" 36 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/conf/theme.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | 23 | from crate.theme.rtd.conf import * 24 | 25 | # You can change the `project` value to anything you want because 26 | # `src/crate/theme/rtd/crate/sidebartoc.html` does not have a menu item for 27 | # this project. 28 | project = "CrateDB documentation theme" 29 | html_title = project 30 | 31 | url_path = "docs/theme" 32 | html_baseurl = "https://cratedb.com/%s/" % url_path 33 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/components/github_feedback_compact.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% import "settings.html" as settings with context %} 5 | 6 | {% set suffix = settings.suffix %} 7 | {% set source_path = conf_py_path + pagename + suffix %} 8 | 9 | 63 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/components/github_keynav.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Keyboard navigation for GitHub. CTRL+G will navigate to 3 | * the edit page on GitHub for the corresponding document. 4 | **/ 5 | 6 | {% import "settings.html" as settings with context %} 7 | 8 | {% set suffix = settings.suffix %} 9 | 10 | document.addEventListener('keydown', (event) => { 11 | if (event.key === 'g' && event.ctrlKey) { 12 | {% if check_meta and 'github_url' in meta %} 13 | location.href = "{{ meta['github_url'] }}"; 14 | {% else %} 15 | location.href = "https://{{ github_host|default('github.com') }}/{{ github_user }}/{{ github_repo }}/{{ theme_vcs_pageview_mode|default('edit') }}/{{ github_version }}{{ conf_py_path }}{{ pagename }}{{ suffix }}"; 16 | {% endif %} 17 | } 18 | }); 19 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/components/related-pages.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/components/toggle-sidebar-primary.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/components/toggle-sidebar-secondary.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/components/version_chooser.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | {% set baseurl = custom_baseurl.replace('en/latest/', '') %} 6 | 56 | 57 |
58 | 59 | {{ current_version }} 60 | 61 | 64 | 65 | 66 |
67 | {% for slug, url in versions %} 68 | 71 | {% endfor %} 72 |
73 |
74 |
75 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/globaltoc.html: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/localtoc.html: -------------------------------------------------------------------------------- 1 | {{ toc }} 2 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/navbarsearchbox.html: -------------------------------------------------------------------------------- 1 | {%- if pagename != "search" %} 2 | 10 | {%- endif %} 11 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/navbartoc.html: -------------------------------------------------------------------------------- 1 |
    {{ toc }}
2 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/page.html: -------------------------------------------------------------------------------- 1 | {# Layout: This is used by _every_ Sphinx content page #} 2 | {% extends "base.html" %} 3 | 4 | {% block body -%} 5 | {{ super() }} 6 | {% include "partials/icons.html" %} 7 | 8 | 9 | {%- trans -%} 10 | Skip to content 11 | {%- endtrans -%} 12 | 13 | 14 | {% block announcement %} 15 |
16 | {% include "sections/announcement.html" %} 17 |
18 | {% endblock announcement %} 19 | 20 | {% block header %} 21 |
22 |
23 | {% include "sections/header.html" %} 24 |
25 |
26 | {% endblock header %} 27 | 28 | {% block header_secondary %} 29 | {% endblock header_secondary %} 30 | 31 | 32 | 33 | 34 | 35 | 36 | {% block container %} 37 |
38 |
39 | {% block sidebar_primary %} 40 | 43 | {% endblock sidebar_primary %} 44 |
45 | {% block header_content %} 46 |
47 |
48 | {% include "sections/header-content.html" %} 49 |
50 |
51 | {% endblock header_content %} 52 |
53 | {% block content %} 54 |
55 |
56 | {% include "sections/header-article.html" %} 57 |
58 |
59 | {% include "sections/article.html" %} 60 |
61 |
62 | {% include "sections/footer-article.html" %} 63 |
64 |
65 | {% endblock content %} 66 | {% block sidebar_secondary %} 67 | 70 | {% endblock sidebar_secondary %} 71 |
72 | {% block footer_content %} 73 | {% endblock footer_content %} 74 |
75 |
76 |
77 | {% endblock container %} 78 | 79 | {%- endblock %} 80 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/partials/_head_css_variables.html: -------------------------------------------------------------------------------- 1 | {# 2 | This is where user-provided CSS variables get converted into actual values. 3 | #} 4 | {% macro declare_css_variables(user_customisations, pygments_theme) -%} 5 | --color-code-background: {{ pygments_theme.background }}; 6 | --color-code-foreground: {{ pygments_theme.foreground }}; 7 | {% if user_customisations -%} 8 | {% for name, value in user_customisations.items() -%} 9 | --{{ name }}: {{ value }}; 10 | {% endfor %} 11 | {%- endif %} 12 | {%- endmacro %} 13 | 14 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/partials/icons.html: -------------------------------------------------------------------------------- 1 | {# Adapted from Just the Docs #} 2 | 3 | 4 | Contents 5 | 6 | 7 | 8 | 9 | 10 | Menu 11 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | Expand 20 | 22 | 23 | 24 | 25 | 26 | Light mode 27 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | Dark mode 42 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/relations.html: -------------------------------------------------------------------------------- 1 | {%- if prev %} 2 |
  • Previous Topic
  • 3 | 5 | {%- endif %} 6 | {%- if next %} 7 |
  • Next Topic
  • 8 | 10 | {%- endif %} 11 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/search.html: -------------------------------------------------------------------------------- 1 | {# 2 | basic/search.html 3 | ~~~~~~~~~~~~~~~~~ 4 | 5 | Template for the search page. 6 | 7 | :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS. 8 | :license: BSD, see LICENSE for details. 9 | #} 10 | {% extends "page.html" %} 11 | 12 | 13 | {# On synthetic pages, do not display Edit/View page source #} 14 | {% set synthetic_page = true %} 15 | 16 | {% set title = _('CrateDB Documentation Search') %} 17 | 18 | {%- block head_extra -%} 19 | {{ super() }} 20 | 21 | 22 | 23 | 24 | {%- endblock head_extra -%} 25 | 26 | {% if project == 'SQL 99' %} 27 | 30 | {% endif %} 31 | 32 | 33 | {% block content %} 34 |
    35 |
    36 | {% include "sections/header-article.html" %} 37 |
    38 |
    39 | 40 |

    {{ _('Search') }}

    41 |

    42 | {% trans %}From here you can search these documents. Enter your search 43 | words into the box below and click "search". Note that the search 44 | function will automatically search for all of the words. Pages 45 | containing fewer words won't appear in the result list.{% endtrans %} 46 |

    47 | 48 | {% if project == 'SQL 99' %} 49 | 50 | 55 | {% if search_performed %} 56 |

    {{ _('Search Results') }}

    57 | {% if not search_results %} 58 |

    {{ _('Your search did not match any results.') }}

    59 | {% endif %} 60 | {% endif %} 61 | 69 | {% if search_results %} 70 |
    71 |
      72 | {% for href, caption, context in search_results %} 73 |
    • 74 |
      75 |

      {{ caption }}

      76 |
      {{ context|e }}
      77 |
      78 |
    • 79 | {% endfor %} 80 |
    81 |
    82 | {% endif %} 83 | 84 | {% else %} 85 | 86 |
    87 |
    88 | 89 |
    90 | 91 |
    92 |
    93 | {% endif %} 94 | 95 |
    96 |
    97 | {% include "sections/footer-article.html" %} 98 |
    99 |
    100 | {% endblock content %} 101 | 102 | {% block footer_content %} 103 | {{ super() }} 104 | 105 | 106 | 107 | {% endblock footer_content %} 108 | 109 | 110 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/searchbox.html: -------------------------------------------------------------------------------- 1 | {%- if pagename != "search" %} 2 | 9 | {%- endif %} 10 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/searchresults.html: -------------------------------------------------------------------------------- 1 | {# 2 | basic/searchresults.html 3 | ~~~~~~~~~~~~~~~~~~~~~~~~ 4 | 5 | Template for the body of the search results page. 6 | 7 | :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. 8 | :license: BSD, see LICENSE for details. 9 | #} 10 |

    Search

    11 |

    12 | From here you can search these documents. Enter your search 13 | words into the box below and click "search". 14 |

    15 | 16 | 21 | 22 | {%- if search_performed %} 23 |

    Search Results

    24 | {%- if not search_results %} 25 |

    Your search did not match any results.

    26 | {%- endif %} 27 | {%- endif %} 28 |
    29 | {%- if search_results %} 30 |
      31 | {% for href, caption, context in search_results %} 32 |
    • 33 |
      34 |

      {{ caption }}

      35 |
      {{ context|e }}
      36 |
      37 |
    • 38 | {% endfor %} 39 |
    40 | {%- endif %} 41 |
    42 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/sections/announcement.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/sections/article.html: -------------------------------------------------------------------------------- 1 | {% block content %}{{ body }}{% endblock %} 2 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/sections/footer-article.html: -------------------------------------------------------------------------------- 1 | {% include "components/related-pages.html" with context %} 2 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/sections/footer_sql99.html: -------------------------------------------------------------------------------- 1 |
    2 |
    3 |
    4 |
    5 | 18 |
    19 |
    20 |
    21 |
    22 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/sections/header-article.html: -------------------------------------------------------------------------------- 1 | {# Include Furo sidebar toggles #} 2 | 5 | 8 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/sections/sidebar-primary.html: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/sections/sidebar-secondary.html: -------------------------------------------------------------------------------- 1 |
    2 |
    3 | 4 | 26 | 27 |
    28 | 29 | {{ _("On this page") }} 30 | 31 |
    32 |
    33 |
    34 | {{ toc }} 35 |
    36 |
    37 |
    38 |
    39 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/settings.html: -------------------------------------------------------------------------------- 1 | {% if page_source_suffix %} 2 | {% set suffix = page_source_suffix %} 3 | {% else %} 4 | {% set suffix = source_suffix %} 5 | {% endif %} 6 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/sidebar.html: -------------------------------------------------------------------------------- 1 | 39 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/sourcelink.html: -------------------------------------------------------------------------------- 1 | {%- if show_source and has_source and sourcename %} 2 | 6 | {%- endif %} 7 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/.gitignore: -------------------------------------------------------------------------------- 1 | bundle 2 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/css/components.css: -------------------------------------------------------------------------------- 1 | * { 2 | -webkit-box-sizing: border-box; 3 | -moz-box-sizing: border-box; 4 | box-sizing: border-box; 5 | } 6 | img { 7 | max-width: 100%; 8 | vertical-align: middle; 9 | display: inline-block; 10 | } 11 | html.w-mod-touch * { 12 | background-attachment: scroll !important; 13 | } 14 | .w-block { 15 | display: block; 16 | } 17 | .w-inline-block { 18 | max-width: 100%; 19 | display: inline-block; 20 | } 21 | .w-clearfix:before, 22 | .w-clearfix:after { 23 | content: " "; 24 | display: table; 25 | } 26 | .w-clearfix:after { 27 | clear: both; 28 | } 29 | .w-preserve-3d { 30 | transform-style: preserve-3d; 31 | } 32 | .w-hidden { 33 | display: none; 34 | } 35 | .w-button { 36 | display: inline-block; 37 | padding: 9px 15px; 38 | background-color: #3898ec; 39 | color: white; 40 | border: 0; 41 | line-height: inherit; 42 | text-decoration: none; 43 | cursor: pointer; 44 | border-radius: 0; 45 | } 46 | a:focus { 47 | outline: 0; 48 | } 49 | figure { 50 | margin: 0; 51 | margin-bottom: 10px; 52 | } 53 | figcaption { 54 | margin-top: 5px; 55 | text-align: center; 56 | } 57 | .w-list-unstyled { 58 | padding-left: 0; 59 | list-style: none; 60 | } 61 | fieldset { 62 | padding: 0; 63 | margin: 0; 64 | border: 0; 65 | } 66 | button, 67 | html input[type="button"], 68 | input[type="reset"] { 69 | border: 0; 70 | cursor: pointer; 71 | -webkit-appearance: button; 72 | } 73 | label { 74 | display: block; 75 | margin-bottom: 5px; 76 | font-weight: bold; 77 | } 78 | 79 | .w-hidden-main { 80 | display: none !important; 81 | } 82 | @media screen and (max-width: 991px) { 83 | #notification { 84 | display: none !important; 85 | } 86 | .w-hidden-main { 87 | display: inherit !important; 88 | } 89 | } 90 | @media screen and (max-width: 767px) { 91 | .w-hidden-main { 92 | display: inherit !important; 93 | } 94 | .w-row, 95 | .w-container .w-row { 96 | margin-left: 0; 97 | margin-right: 0; 98 | } 99 | } 100 | @media screen and (max-width: 479px) { 101 | .w-hidden-main { 102 | display: inherit !important; 103 | } 104 | } 105 | @media screen and (max-width: 767px) { 106 | .w-nav-brand { 107 | padding-left: 10px; 108 | } 109 | } 110 | .w-nav-brand { 111 | position: relative; 112 | } 113 | .w-nav-link { 114 | position: relative; 115 | text-decoration: none; 116 | } 117 | 118 | .w-nav-link.w--current { 119 | color: #0082f3; 120 | } 121 | 122 | .w-nav-menu { 123 | position: relative; 124 | float: right; 125 | } 126 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/css/index.css: -------------------------------------------------------------------------------- 1 | @import "~normalize.css"; 2 | @import "crateio.css"; 3 | @import "ng/index.scss"; 4 | @import "crateio-rtd.css"; 5 | @import "custom.css"; 6 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/css/ng/furo.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * A few adjustments to Furo's styles. 3 | * 4 | * Either they need fixes, or the adjustments are needed because of side 5 | * effects coming from the other styles of the theme, which is more probable. 6 | * 7 | * TODO: Progressively get rid of all legacy styles. 8 | **/ 9 | 10 | // Import Furo's variables. 11 | @import "../../vendor/furo/styles/variables/layout"; 12 | 13 | // Import Furo's components. 14 | @import "../../vendor/furo/styles/components/footer"; 15 | 16 | // Sidebar: When primary sidebar is not collapsed, show its 17 | // content above all others. 18 | @media (max-width: $full-width - $sidebar-width) { 19 | .sb-sidebar-primary { 20 | z-index: 50; 21 | } 22 | } 23 | 24 | // Sidebar: Unset `position: fixed`, otherwise content 25 | // will not be visible on drawers when not collapsed. 26 | 27 | @media (max-width: $full-width - $sidebar-width) { 28 | // Collapse "navigation". 29 | .sidebar-drawer { 30 | position: unset; 31 | } 32 | } 33 | 34 | @media (max-width: $full-width) { 35 | // Collapse "toc" into the icon. 36 | .toc-drawer { 37 | position: unset; 38 | } 39 | } 40 | 41 | // Migrate new converted ul/ol styles from _lists.sass 42 | ul, 43 | ol { 44 | padding-left: 1.2rem; 45 | 46 | // Space lists out like paragraphs 47 | margin-top: 1rem; 48 | margin-bottom: 1rem; 49 | // reduce margins within li. 50 | li { 51 | > p:first-child { 52 | margin-top: 0.25rem; 53 | margin-bottom: 0.25rem; 54 | } 55 | > p:last-child { 56 | margin-top: 0.25rem; 57 | } 58 | > ul, 59 | > ol { 60 | margin-top: 0.5rem; 61 | margin-bottom: 0.5rem; 62 | } 63 | } 64 | } 65 | ol { 66 | &.arabic { 67 | list-style: decimal; 68 | } 69 | &.loweralpha { 70 | list-style: lower-alpha; 71 | } 72 | &.upperalpha { 73 | list-style: upper-alpha; 74 | } 75 | &.lowerroman { 76 | list-style: lower-roman; 77 | } 78 | &.upperroman { 79 | list-style: upper-roman; 80 | } 81 | // Don't space lists out when they're "simple" or in a `.. toctree::` 82 | } 83 | .simple, 84 | .toctree-wrapper { 85 | li { 86 | > ul, 87 | > ol { 88 | margin-top: 0; 89 | margin-bottom: 0; 90 | } 91 | } 92 | } 93 | 94 | //remove spacing when ul before p 95 | article p + ul, 96 | article p + ol { 97 | margin-top: 0; 98 | } 99 | 100 | article p:has(+ ul), 101 | article p:has(+ ol) { 102 | margin-bottom: 4px; 103 | } 104 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/css/ng/index.scss: -------------------------------------------------------------------------------- 1 | @import "settings"; 2 | @import "layout"; 3 | @import "furo"; 4 | @import "page-tools"; 5 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/css/ng/page-tools.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Page tools: GitHub feedback and version chooser. 3 | * 4 | * Two self-contained components on the top right of the page. 5 | * 6 | * - GitHub feedback: Similar to the GitHub icon overlay menu of the Executable Books theme. 7 | * - Version chooser: Similar to RTD's version chooser overlay, but a bit more focused. 8 | **/ 9 | 10 | // Locate components on the right side of the section, 11 | // and display them in a Flexbox. 12 | .page-tools { 13 | float: right; 14 | display: flex; 15 | gap: 0.3em; 16 | margin-left: 20px; 17 | } 18 | 19 | @media (min-width: 76rem) { 20 | .page-tools { 21 | margin-left: 0; 22 | } 23 | } 24 | 25 | // Decouple from page flow, to not push around other downstream elements. 26 | .version-chooser-content, 27 | .feedback-compact-content { 28 | position: absolute; 29 | div.sd-summary-content { 30 | position: absolute; 31 | z-index: 150; 32 | background: var(--color-sidebar-background); 33 | border: 1px solid var(--color-sidebar-background-border); 34 | width: max-content; 35 | } 36 | } 37 | 38 | details.sd-dropdown { 39 | summary.sd-summary-title { 40 | align-items: center; 41 | } 42 | } 43 | 44 | // Titles: Do not use bold font. 45 | .feedback-compact-title, 46 | .version-chooser-title { 47 | font-weight: normal !important; 48 | } 49 | 50 | // Feedback title: Do not display when collapsed. 51 | details.feedback-compact-content:not([open]) .feedback-compact-title { 52 | display: none; 53 | } 54 | 55 | // Set link text color. 56 | .version-chooser-link, 57 | .feedback-compact-link { 58 | color: var(--color-sidebar-link-text); 59 | } 60 | 61 | // Fix jumping border. 62 | details.sd-dropdown:not([open]).sd-card { 63 | border: none; 64 | } 65 | .sd-card-header { 66 | border-bottom: none; 67 | border-radius: 0 !important; 68 | } 69 | 70 | /* Fix text alignment with sphinx-togglebutton */ 71 | button.toggle-button { 72 | display: inline-flex; 73 | align-items: center; 74 | } 75 | 76 | /* Fix fontawesome icon alignment */ 77 | .sd-summary-title .fa-gear { 78 | line-height: inherit; 79 | } 80 | 81 | @media all and (max-width: 540px) { 82 | .feedback-compact-title { 83 | margin-right: 3px; 84 | } 85 | 86 | details.sd-dropdown { 87 | font-size: var(--font-size--small) !important; 88 | } 89 | } 90 | 91 | /* Visually disable annoying "notificatio-pro" component */ 92 | .notificatio-pro { 93 | display: none; 94 | } 95 | 96 | .related-pages { 97 | line-height: 1.2; 98 | } 99 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/css/ng/settings.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Custom settings to adjust the style. 3 | **/ 4 | 5 | // Adjust secondary sidebar / right navigation. 6 | // Larger font sizes than Furo. 7 | @mixin settings { 8 | // Table of Contents 9 | --toc-font-size: var(--font-size--small); 10 | --toc-font-size--mobile: var(--font-size--normal); 11 | --toc-title-font-size: var(--font-size--small--2); 12 | } 13 | 14 | // Define size of the icons used for expanding/collapsing sidebar drawers. 15 | $sidebar-drawer-icon-size: 1.75em; 16 | $pagetools-text-color: #222222; 17 | 18 | 19 | // Apply defined settings to body element. 20 | body { 21 | @include settings; 22 | } 23 | 24 | @media all and (max-width: 540px) { 25 | 26 | /* Change body size so everything gets smaller on mobile */ 27 | body { 28 | font-size: 15px; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/fonts/Inter-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/fonts/Inter-Regular.woff2 -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/fonts/Inter-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/fonts/Inter-SemiBold.woff2 -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/fonts/montserrat-v26-latin-600.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/fonts/montserrat-v26-latin-600.woff2 -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/admonition/caution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/admonition/caution.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/admonition/caution@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/admonition/caution@2x.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/admonition/icon-docs-caution.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | icons-docs-caution 5 | Created with Sketch. 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/admonition/icon-docs-note.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | icons-docs-note 5 | Created with Sketch. 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/admonition/icon-docs-seealso.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | icons-docs-seealso 5 | Created with Sketch. 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/admonition/icon-docs-warning.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | icon-docs-warning 5 | Created with Sketch. 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/admonition/note-sql-99.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | icons-docs-note 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/admonition/note.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/admonition/note.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/admonition/note@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/admonition/note@2x.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/admonition/seealso.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/admonition/seealso.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/admonition/seealso@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/admonition/seealso@2x.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/admonition/tip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/admonition/tip.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/admonition/tip@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/admonition/tip@2x.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/admonition/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/admonition/warning.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/admonition/warning@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/admonition/warning@2x.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/apple-touch-icon.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/bg-banner-sql99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/bg-banner-sql99.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/cloud_admin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/cloud_admin.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/cloud_everywhere.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/cloud_everywhere.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/cloud_open-source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/cloud_open-source.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/cloud_scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/cloud_scale.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/crate-logo-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 1_LOGOTYPES -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/crate-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/cratedb-logo-h400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/cratedb-logo-h400.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/cratedb-logo-h630.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/cratedb-logo-h630.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/cratedb-logo-h742.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/cratedb-logo-h742.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/erdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/erdf.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/f-logo-facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/f-logo-facebook.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/f-logo-github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/f-logo-github.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/f-logo-google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/f-logo-google.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/f-logo-linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/f-logo-linkedin.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/f-logo-twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/f-logo-twitter.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/f-logo-youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/f-logo-youtube.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/favicon.ico -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/favicon.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/icon-docs@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/icon-docs@2x.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/icon-home-fast-x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/icon-home-fast-x100.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/icon-home-playswell-x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/icon-home-playswell-x100.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/icon-home-simple-x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/icon-home-simple-x100.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/icon-install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/icon-install.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/icon-performance@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/icon-performance@2x.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/icon-search2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/icon-search2x.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/icon-search@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/icon-search@2x.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/icon-start@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/icon-start@2x.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/icon-support@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/icon-support@2x.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/icon_analytics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/icon_analytics.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/icon_blob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/icon_blob.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/icon_document.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/icon_document.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/icon_link_external-sql-99.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/icon_link_external.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Group 12 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/icon_restructure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/icon_restructure.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/icon_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/icon_search.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/logo-crate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/logo-crate.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/logo-eu-optimized-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/logo-eu-optimized-1.jpg -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/images/slack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/images/slack.png -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/js/crate.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/rtd/crate/static/js/crate.js -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/js/custom.js: -------------------------------------------------------------------------------- 1 | /** 2 | * This JS file is for additional new JS built over the existing theme 3 | * ...so as to avoid breaking anything unexpectedly 4 | */ 5 | 6 | var Cookies = require('js-cookie'); 7 | 8 | document.addEventListener('DOMContentLoaded', () => { 9 | // Function to set the theme 10 | function setTheme(theme) { 11 | document.documentElement.setAttribute('data-theme', theme); 12 | localStorage.setItem('theme', theme); 13 | } 14 | 15 | // Function to initialize the theme 16 | function initTheme() { 17 | // Check for saved theme in localStorage 18 | const savedTheme = localStorage.getItem('theme'); 19 | if (savedTheme) { 20 | // Use saved theme 21 | setTheme(savedTheme); 22 | } else { 23 | // No saved theme, use the system preference 24 | const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches; 25 | setTheme(prefersDark ? 'dark' : 'light'); 26 | } 27 | } 28 | 29 | // Listen for changes in the system preference 30 | window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (event) => { 31 | if (!localStorage.getItem('theme')) { 32 | // Only change if there's no theme saved in localStorage 33 | setTheme(event.matches ? 'dark' : 'light'); 34 | } 35 | }); 36 | 37 | // Initialize theme on page load 38 | initTheme(); 39 | }); 40 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/js/index.js: -------------------------------------------------------------------------------- 1 | import "jquery"; 2 | import * as Cookies from "js-cookie"; 3 | import "sticky-sidebar"; 4 | 5 | import "./util"; 6 | import "./crate"; 7 | import "./custom"; 8 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/js/util.js: -------------------------------------------------------------------------------- 1 | window.isInViewport = function(elem) { 2 | var bounding = elem.getBoundingClientRect(); 3 | return ( 4 | bounding.top >= 0 && 5 | bounding.left >= 0 && 6 | bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight) && 7 | bounding.right <= (window.innerWidth || document.documentElement.clientWidth) 8 | ); 9 | } 10 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/index.js: -------------------------------------------------------------------------------- 1 | import "./scripts/furo.js"; 2 | import "./styles/furo.sass"; 3 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/scripts/furo.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * gumshoejs v5.1.2 (patched by @pradyunsg) 3 | * A simple, framework-agnostic scrollspy script. 4 | * (c) 2019 Chris Ferdinandi 5 | * MIT License 6 | * http://github.com/cferdinandi/gumshoe 7 | */ 8 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/_shame.sass: -------------------------------------------------------------------------------- 1 | // Shameful hacks, to work around bugs. 2 | 3 | // MyST parser doesn't correctly generate classes, to align table contents. 4 | // https://github.com/executablebooks/MyST-Parser/issues/412 5 | .text-align\:left > p 6 | text-align: left 7 | 8 | .text-align\:center > p 9 | text-align: center 10 | 11 | .text-align\:right > p 12 | text-align: right 13 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/base/_index.sass: -------------------------------------------------------------------------------- 1 | //@import "print" 2 | @import "screen-readers" 3 | @import "theme" 4 | //@import "typography" 5 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/base/_screen-readers.sass: -------------------------------------------------------------------------------- 1 | .visually-hidden 2 | position: absolute !important 3 | width: 1px !important 4 | height: 1px !important 5 | padding: 0 !important 6 | margin: -1px !important 7 | overflow: hidden !important 8 | clip: rect(0,0,0,0) !important 9 | white-space: nowrap !important 10 | border: 0 !important 11 | color: var(--color-foreground-primary) 12 | background: var(--color-background-primary) 13 | 14 | :-moz-focusring 15 | outline: auto 16 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/base/_theme.sass: -------------------------------------------------------------------------------- 1 | // This file serves as the "skeleton" of the theming logic. 2 | // 3 | // This contains the bulk of the logic for handling dark mode, color scheme 4 | // toggling and the handling of color-scheme-specific hiding of elements. 5 | 6 | body 7 | @include fonts 8 | @include spacing 9 | @include icons 10 | @include admonitions 11 | @include default-admonition(#651fff, "abstract") 12 | @include default-topic(#14B8A6, "pencil") 13 | 14 | @include colors 15 | 16 | .only-light 17 | display: block !important 18 | html body .only-dark 19 | display: none !important 20 | 21 | // Ignore dark-mode hints if print media. 22 | @media not print 23 | // Enable dark-mode, if requested. 24 | html[data-theme="dark"] 25 | body 26 | @include colors-dark 27 | 28 | html & .only-light 29 | display: none !important 30 | .only-dark 31 | display: block !important 32 | 33 | // Enable dark mode, unless explicitly told to avoid. 34 | @media (prefers-color-scheme: dark) 35 | html:not([data-theme="light"]) 36 | body 37 | @include colors-dark 38 | 39 | html & .only-light 40 | display: none !important 41 | .only-dark 42 | display: block !important 43 | 44 | // 45 | // Theme toggle presentation 46 | // 47 | html[data-theme="auto"] 48 | .theme-toggle svg.theme-icon-when-auto-light 49 | display: block 50 | 51 | @media (prefers-color-scheme: dark) 52 | .theme-toggle svg.theme-icon-when-auto-dark 53 | display: block 54 | .theme-toggle svg.theme-icon-when-auto-light 55 | display: none 56 | 57 | html[data-theme="dark"] 58 | .theme-toggle svg.theme-icon-when-dark 59 | display: block 60 | 61 | html[data-theme="light"] 62 | .theme-toggle svg.theme-icon-when-light 63 | display: block 64 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/components/_footer.sass: -------------------------------------------------------------------------------- 1 | // This file contains the styles used for stylizing the footer that's shown 2 | // below the content. 3 | 4 | footer 5 | font-size: var(--font-size--small) 6 | display: flex 7 | flex-direction: column 8 | 9 | margin-top: 2rem 10 | 11 | // Bottom of page information 12 | .bottom-of-page 13 | display: flex 14 | align-items: center 15 | justify-content: space-between 16 | 17 | margin-top: 1rem 18 | padding-top: 1rem 19 | padding-bottom: 1rem 20 | 21 | color: var(--color-foreground-secondary) 22 | border-top: 1px solid var(--color-background-border) 23 | 24 | line-height: 1.5 25 | 26 | @media (max-width: $content-width) 27 | text-align: center 28 | flex-direction: column-reverse 29 | gap: 0.25rem 30 | 31 | .left-details 32 | font-size: var(--font-size--small) 33 | 34 | .right-details 35 | display: flex 36 | flex-direction: column 37 | gap: 0.25rem 38 | text-align: right 39 | 40 | .icons 41 | display: flex 42 | justify-content: flex-end 43 | gap: 0.25rem 44 | font-size: 1rem 45 | 46 | a 47 | text-decoration: none 48 | 49 | svg, 50 | img 51 | font-size: 1.125rem 52 | height: 1em 53 | width: 1em 54 | 55 | // Next/Prev page information 56 | .related-pages 57 | a 58 | display: flex 59 | align-items: center 60 | 61 | text-decoration: none 62 | &:hover .page-info .title 63 | text-decoration: underline 64 | color: var(--color-link) 65 | text-decoration-color: var(--color-link-underline) 66 | 67 | svg.furo-related-icon, 68 | svg.furo-related-icon > use 69 | flex-shrink: 0 70 | 71 | color: var(--color-foreground-border) 72 | 73 | width: 0.75rem 74 | height: 0.75rem 75 | margin: 0 0.5rem 76 | 77 | &.next-page 78 | max-width: 50% 79 | 80 | float: right 81 | clear: right 82 | text-align: right 83 | 84 | &.prev-page 85 | max-width: 50% 86 | 87 | float: left 88 | clear: left 89 | 90 | svg 91 | transform: rotate(180deg) 92 | 93 | .page-info 94 | display: flex 95 | flex-direction: column 96 | overflow-wrap: anywhere 97 | 98 | .next-page & 99 | align-items: flex-end 100 | 101 | .context 102 | display: flex 103 | align-items: center 104 | 105 | padding-bottom: 0.1rem 106 | 107 | color: var(--color-foreground-muted) 108 | font-size: var(--font-size--small) 109 | text-decoration: none 110 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/components/_index.sass: -------------------------------------------------------------------------------- 1 | @import "footer" 2 | @import "search" 3 | @import "sidebar" 4 | @import "table_of_contents" 5 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/components/_search.sass: -------------------------------------------------------------------------------- 1 | // 2 | // Search Page Listing 3 | // 4 | ul.search 5 | padding-left: 0 6 | list-style: none 7 | 8 | li 9 | padding: 1rem 0 10 | border-bottom: 1px solid var(--color-background-border) 11 | 12 | // 13 | // Highlighted by links in search page 14 | // 15 | [role=main] .highlighted 16 | background-color: var(--color-highlighted-background) 17 | color: var(--color-highlighted-text) 18 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/components/_table_of_contents.sass: -------------------------------------------------------------------------------- 1 | // This file contains the styles for the contents of the right sidebar, which 2 | // contains the table of contents for the current page. 3 | .toc-title-container 4 | padding: var(--toc-title-padding) 5 | padding-top: var(--toc-spacing-vertical) 6 | 7 | .toc-title 8 | color: var(--color-toc-title-text) 9 | font-size: var(--toc-title-font-size) 10 | padding-left: var(--toc-spacing-horizontal) 11 | text-transform: uppercase 12 | 13 | // If the ToC is not present, hide these elements coz they're not relevant. 14 | .no-toc 15 | display: none 16 | 17 | .toc-tree-container 18 | padding-bottom: var(--toc-spacing-vertical) 19 | 20 | .toc-tree 21 | font-size: var(--toc-font-size) 22 | line-height: 1.3 23 | border-left: 1px solid var(--color-background-border) 24 | 25 | padding-left: calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal)) 26 | 27 | // Hide the first "top level" bullet. 28 | > ul > li:first-child 29 | padding-top: 0 30 | & > ul 31 | padding-left: 0 32 | & > a 33 | display: none 34 | 35 | ul 36 | list-style-type: none 37 | margin-top: 0 38 | margin-bottom: 0 39 | padding-left: var(--toc-item-spacing-horizontal) 40 | li 41 | padding-top: var(--toc-item-spacing-vertical) 42 | 43 | &.scroll-current > .reference 44 | color: var(--color-toc-item-text--active) 45 | font-weight: bold 46 | 47 | a.reference 48 | color: var(--color-toc-item-text) 49 | text-decoration: none 50 | overflow-wrap: anywhere 51 | 52 | .toc-scroll 53 | max-height: 100vh 54 | overflow-y: scroll 55 | 56 | // Be very annoying when someone includes the table of contents 57 | .contents:not(.this-will-duplicate-information-and-it-is-still-useful-here) 58 | color: var(--color-problematic) 59 | background: rgba(255, 0, 0, 0.25) 60 | &::before 61 | content: "ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling. Add a 'this-will-duplicate-information-and-it-is-still-useful-here' class, if you want an escape hatch." 62 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/content/_admonitions.sass: -------------------------------------------------------------------------------- 1 | // 2 | // The design here is strongly inspired by mkdocs-material. 3 | .admonition, .topic 4 | margin: 1rem auto 5 | padding: 0 0.5rem 0.5rem 0.5rem 6 | 7 | background: var(--color-admonition-background) 8 | 9 | border-radius: 0.2rem 10 | box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1) 11 | 12 | font-size: var(--admonition-font-size) 13 | 14 | overflow: hidden 15 | page-break-inside: avoid 16 | 17 | // First element should have no margin, since the title has it. 18 | > :nth-child(2) 19 | margin-top: 0 20 | 21 | // Last item should have no margin, since we'll control that w/ padding 22 | > :last-child 23 | margin-bottom: 0 24 | 25 | .admonition p.admonition-title, 26 | p.topic-title 27 | position: relative 28 | margin: 0 -0.5rem 0.5rem 29 | padding-left: 2rem 30 | padding-right: .5rem 31 | padding-top: .4rem 32 | padding-bottom: .4rem 33 | 34 | font-weight: 500 35 | font-size: var(--admonition-title-font-size) 36 | line-height: 1.3 37 | 38 | // Our fancy icon 39 | &::before 40 | content: "" 41 | position: absolute 42 | left: 0.5rem 43 | width: 1rem 44 | height: 1rem 45 | 46 | // Default styles 47 | p.admonition-title 48 | background-color: var(--color-admonition-title-background) 49 | &::before 50 | background-color: var(--color-admonition-title) 51 | mask-image: var(--icon-admonition-default) 52 | mask-repeat: no-repeat 53 | 54 | p.topic-title 55 | background-color: var(--color-topic-title-background) 56 | &::before 57 | background-color: var(--color-topic-title) 58 | mask-image: var(--icon-topic-default) 59 | mask-repeat: no-repeat 60 | 61 | // 62 | // Variants 63 | // 64 | .admonition 65 | border-left: 0.2rem solid var(--color-admonition-title) 66 | 67 | @each $type, $value in $admonitions 68 | &.#{$type} 69 | border-left-color: var(--color-admonition-title--#{$type}) 70 | > .admonition-title 71 | background-color: var(--color-admonition-title-background--#{$type}) 72 | &::before 73 | background-color: var(--color-admonition-title--#{$type}) 74 | mask-image: var(--icon-#{nth($value, 2)}) 75 | 76 | .admonition-todo > .admonition-title 77 | text-transform: uppercase 78 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/content/_footnotes.sass: -------------------------------------------------------------------------------- 1 | // Inline Footnote Reference 2 | .footnote-reference 3 | font-size: var(--font-size--small--4) 4 | vertical-align: super 5 | 6 | // Definition list, listing the content of each note. 7 | // docutils <= 0.17 8 | dl.footnote.brackets 9 | font-size: var(--font-size--small) 10 | color: var(--color-foreground-secondary) 11 | 12 | display: grid 13 | grid-template-columns: max-content auto 14 | dt 15 | margin: 0 16 | > .fn-backref 17 | margin-left: 0.25rem 18 | 19 | &:after 20 | content: ":" 21 | 22 | .brackets 23 | &:before 24 | content: "[" 25 | &:after 26 | content: "]" 27 | 28 | dd 29 | margin: 0 30 | padding: 0 1rem 31 | 32 | // docutils >= 0.18 33 | aside.footnote 34 | font-size: var(--font-size--small) 35 | color: var(--color-foreground-secondary) 36 | 37 | aside.footnote > span, 38 | div.citation > span 39 | float: left 40 | font-weight: 500 41 | padding-right: 0.25rem 42 | 43 | aside.footnote > *:not(span), 44 | div.citation > p 45 | margin-left: 2rem 46 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/content/_index.sass: -------------------------------------------------------------------------------- 1 | @import "admonitions" 2 | @import "code" 3 | @import "footnotes" 4 | @import "misc" 5 | @import "sidebar" 6 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/content/_misc.sass: -------------------------------------------------------------------------------- 1 | // Abbreviations 2 | abbr[title] 3 | cursor: help 4 | 5 | // "Problematic" content, as identified by Sphinx 6 | .problematic 7 | color: var(--color-problematic) 8 | 9 | // Keyboard / Mouse "instructions" 10 | kbd:not(.compound):not(.DocSearch-Commands-Key):not(.DocSearch-Button-Key) 11 | margin: 0 0.2rem 12 | padding: 0 0.2rem 13 | border-radius: 0.2rem 14 | border: 1px solid var(--color-foreground-border) 15 | color: var(--color-foreground-primary) 16 | vertical-align: text-bottom 17 | 18 | font-size: var(--font-size--small--3) 19 | display: inline-block 20 | 21 | box-shadow: 0 0.0625rem 0 rgba(0, 0, 0, 0.2), inset 0 0 0 0.125rem var(--color-background-primary) 22 | 23 | background-color: var(--color-background-secondary) 24 | 25 | // Blockquote 26 | blockquote 27 | border-left: 4px solid var(--color-background-border) 28 | background: var(--color-background-secondary) 29 | 30 | margin-left: 0 31 | margin-right: 0 32 | padding: 0.5rem 1rem 33 | 34 | .attribution 35 | font-weight: 600 36 | text-align: right 37 | 38 | &.pull-quote, 39 | &.highlights 40 | font-size: 1.25em 41 | 42 | &.epigraph, 43 | &.pull-quote 44 | border-left-width: 0 45 | border-radius: 0.5rem 46 | 47 | &.highlights 48 | border-left-width: 0 49 | background: transparent 50 | 51 | // Center align embedded-in-text images 52 | p .reference img 53 | vertical-align: middle 54 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/content/_sidebar.sass: -------------------------------------------------------------------------------- 1 | article .sidebar 2 | float: right 3 | clear: right 4 | width: 30% 5 | 6 | margin-left: 1rem 7 | margin-right: 0 8 | 9 | border-radius: 0.2rem 10 | background-color: var(--color-background-secondary) 11 | border: var(--color-background-border) 1px solid 12 | 13 | > * 14 | padding-left: 1rem 15 | padding-right: 1rem 16 | 17 | > ul, > ol // lists need additional padding, because bullets. 18 | padding-left: 2.2rem 19 | 20 | .sidebar-title 21 | margin: 0 22 | padding: 0.5rem 1rem 23 | border-bottom: var(--color-background-border) 1px solid 24 | 25 | font-weight: 500 26 | 27 | // TODO: subtitle 28 | // TODO: dedicated variables? 29 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/furo.sass: -------------------------------------------------------------------------------- 1 | @import "~normalize.css" 2 | 3 | @import "variables" 4 | @import "base" 5 | @import "scaffold" 6 | @import "content" 7 | @import "components" 8 | 9 | @import "shame" 10 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/variables/_admonitions.scss: -------------------------------------------------------------------------------- 1 | // Admonitions 2 | 3 | // Structure of these is: 4 | // admonition-class: color "icon-name"; 5 | // 6 | // The colors are translated into CSS variables below. The icons are 7 | // used directly in the main declarations to set the `mask-image` in 8 | // the title. 9 | 10 | // prettier-ignore 11 | $admonitions: ( 12 | // Each of these has an reST directives for it. 13 | "caution": #ff9100 "spark", 14 | "warning": #ff9100 "warning", 15 | "danger": #ff5252 "spark", 16 | "attention": #ff5252 "warning", 17 | "error": #ff5252 "failure", 18 | "hint": #00c852 "question", 19 | "tip": #00c852 "info", 20 | "important": #00bfa5 "flame", 21 | "note": #19c0ea "pencil", 22 | "seealso": #448aff "info", 23 | "admonition-todo": #808080 "pencil" 24 | ); 25 | 26 | @mixin default-admonition($color, $icon-name) { 27 | --color-admonition-title: #{$color}; 28 | --color-admonition-title-background: #{rgba($color, 0.2)}; 29 | 30 | --icon-admonition-default: var(--icon-#{$icon-name}); 31 | } 32 | 33 | @mixin default-topic($color, $icon-name) { 34 | --color-topic-title: #{$color}; 35 | --color-topic-title-background: #{rgba($color, 0.2)}; 36 | 37 | --icon-topic-default: var(--icon-#{$icon-name}); 38 | } 39 | 40 | @mixin admonitions { 41 | @each $name, $values in $admonitions { 42 | --color-admonition-title--#{$name}: #{nth($values, 1)}; 43 | --color-admonition-title-background--#{$name}: #{rgba( 44 | nth($values, 1), 45 | 0.2 46 | )}; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/variables/_fonts.scss: -------------------------------------------------------------------------------- 1 | // Fonts used by this theme. 2 | // 3 | // There are basically two things here -- using the system font stack and 4 | // defining sizes for various elements in %ages. We could have also used `em` 5 | // but %age is easier to reason about for me. 6 | 7 | @mixin fonts { 8 | // These are adapted from https://systemfontstack.com/ 9 | --font-stack: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, 10 | sans-serif, Apple Color Emoji, Segoe UI Emoji; 11 | --font-stack--monospace: "SFMono-Regular", Menlo, Consolas, Monaco, 12 | Liberation Mono, Lucida Console, monospace; 13 | --font-stack--headings: var(--font-stack); 14 | 15 | --font-size--normal: 100%; 16 | --font-size--small: 87.5%; 17 | --font-size--small--2: 81.25%; 18 | --font-size--small--3: 75%; 19 | --font-size--small--4: 62.5%; 20 | 21 | // Sidebar 22 | --sidebar-caption-font-size: var(--font-size--small--2); 23 | --sidebar-item-font-size: var(--font-size--small); 24 | --sidebar-search-input-font-size: var(--font-size--small); 25 | 26 | // Table of Contents 27 | --toc-font-size: var(--font-size--small--3); 28 | --toc-font-size--mobile: var(--font-size--normal); 29 | --toc-title-font-size: var(--font-size--small--4); 30 | 31 | // Admonitions 32 | // 33 | // These aren't defined in terms of %ages, since nesting these is permitted. 34 | --admonition-font-size: 0.8125rem; 35 | --admonition-title-font-size: 0.8125rem; 36 | 37 | // Code 38 | --code-font-size: var(--font-size--small--2); 39 | 40 | // API 41 | --api-font-size: var(--font-size--small); 42 | } 43 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/variables/_icons.scss: -------------------------------------------------------------------------------- 1 | // Expose theme icons as CSS variables. 2 | 3 | $icons: ( 4 | // Adapted from tabler-icons 5 | // url: https://tablericons.com/ 6 | "search": 7 | url('data:image/svg+xml;charset=utf-8,'), 8 | // Factored out from mkdocs-material on 24-Aug-2020. 9 | // url: https://squidfunk.github.io/mkdocs-material/reference/admonitions/ 10 | "pencil": 11 | url('data:image/svg+xml;charset=utf-8,'), 12 | "abstract": 13 | url('data:image/svg+xml;charset=utf-8,'), 14 | "info": 15 | url('data:image/svg+xml;charset=utf-8,'), 16 | "flame": 17 | url('data:image/svg+xml;charset=utf-8,'), 18 | "question": 19 | url('data:image/svg+xml;charset=utf-8,'), 20 | "warning": 21 | url('data:image/svg+xml;charset=utf-8,'), 22 | "failure": 23 | url('data:image/svg+xml;charset=utf-8,'), 24 | "spark": 25 | url('data:image/svg+xml;charset=utf-8,') 26 | ); 27 | 28 | @mixin icons { 29 | @each $name, $glyph in $icons { 30 | --icon-#{$name}: #{$glyph}; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/variables/_index.sass: -------------------------------------------------------------------------------- 1 | // This file collects all the knobs that can be tweaked by end users. 2 | 3 | @import "layout" 4 | @import "fonts" 5 | @import "spacing" 6 | @import "icons" 7 | @import "admonitions" 8 | @import "colors" 9 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/variables/_layout.scss: -------------------------------------------------------------------------------- 1 | // Overall Layout Variables 2 | // 3 | // Because CSS variables can't be used in media queries. The fact that this 4 | // makes the layout non-user-configurable is a good thing. 5 | $content-padding: 3em; 6 | $content-padding--small: 1em; 7 | $content-width: 46em; 8 | $sidebar-width: 15em; 9 | $content-padded-width: $content-width + 2 * $content-padding; 10 | $content-padded-width--small: $content-width + 2 * $content-padding--small; 11 | $full-width: $content-padded-width + 2 * $sidebar-width; 12 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/variables/_spacing.scss: -------------------------------------------------------------------------------- 1 | // Spacing for various elements on the page 2 | // 3 | // If the user wants to tweak things in a certain way, they are permitted to. 4 | // They also have to deal with the consequences though! 5 | 6 | @mixin spacing { 7 | // Header! 8 | --header-height: calc( 9 | var(--sidebar-item-line-height) + 4 * #{var(--sidebar-item-spacing-vertical)} 10 | ); 11 | --header-padding: 0.5rem; 12 | 13 | // Sidebar 14 | --sidebar-tree-space-above: 1.5rem; 15 | --sidebar-caption-space-above: 1rem; 16 | 17 | --sidebar-item-line-height: 1rem; 18 | --sidebar-item-spacing-vertical: 0.5rem; 19 | --sidebar-item-spacing-horizontal: 1rem; 20 | --sidebar-item-height: calc( 21 | var(--sidebar-item-line-height) + 2 *#{var(--sidebar-item-spacing-vertical)} 22 | ); 23 | 24 | --sidebar-expander-width: var(--sidebar-item-height); // be square 25 | 26 | --sidebar-search-space-above: 0.5rem; 27 | --sidebar-search-input-spacing-vertical: 0.5rem; 28 | --sidebar-search-input-spacing-horizontal: 0.5rem; 29 | --sidebar-search-input-height: 1rem; 30 | --sidebar-search-icon-size: var(--sidebar-search-input-height); 31 | 32 | // Table of Contents 33 | --toc-title-padding: 0.25rem 0; 34 | --toc-spacing-vertical: 1.5rem; 35 | --toc-spacing-horizontal: 1.5rem; 36 | --toc-item-spacing-vertical: 0.4rem; 37 | --toc-item-spacing-horizontal: 1rem; 38 | } 39 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/static/vendor/furo/styles/variables/_theme.scss: -------------------------------------------------------------------------------- 1 | // This file serves as the "skeleton" of the theming logic. 2 | // 3 | // This contains the bulk of the logic for handling dark mode, color scheme 4 | // toggling and the handling of color-scheme-specific hiding of elements. 5 | 6 | body { 7 | @include fonts; 8 | @include spacing; 9 | @include icons; 10 | @include admonitions; 11 | @include default-admonition(#651fff, "abstract"); 12 | @include default-topic(#14b8a6, "pencil"); 13 | 14 | @include colors; 15 | } 16 | .only-light { 17 | display: block !important; 18 | } 19 | html body .only-dark { 20 | display: none !important; 21 | } 22 | // Ignore dark-mode hints if print media. 23 | @media not print { 24 | // Enable dark-mode, if requested. 25 | html[data-theme="dark"] { 26 | body { 27 | @include colors-dark; 28 | } 29 | 30 | html & .only-light { 31 | display: none !important; 32 | } 33 | .only-dark { 34 | display: block !important; 35 | } 36 | // Enable dark mode, unless explicitly told to avoid. 37 | } 38 | @media (prefers-color-scheme: dark) { 39 | html:not([data-theme="light"]) { 40 | body { 41 | @include colors-dark; 42 | } 43 | 44 | html & .only-light { 45 | display: none !important; 46 | } 47 | .only-dark { 48 | display: block !important; 49 | } 50 | // 51 | // Theme toggle presentation 52 | // 53 | } 54 | } 55 | } 56 | html[data-theme="auto"] { 57 | .theme-toggle svg.theme-icon-when-auto-light { 58 | display: block; 59 | } 60 | @media (prefers-color-scheme: dark) { 61 | .theme-toggle svg.theme-icon-when-auto-dark { 62 | display: block; 63 | } 64 | .theme-toggle svg.theme-icon-when-auto-light { 65 | display: none; 66 | } 67 | } 68 | } 69 | html[data-theme="dark"] { 70 | .theme-toggle svg.theme-icon-when-dark { 71 | display: block; 72 | } 73 | } 74 | html[data-theme="light"] { 75 | .theme-toggle svg.theme-icon-when-light { 76 | display: block; 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /src/crate/theme/rtd/crate/theme.conf: -------------------------------------------------------------------------------- 1 | [theme] 2 | inherit = basic-ng 3 | pygments_style = material 4 | 5 | # Disable designer styles 6 | stylesheet = css/components.css 7 | 8 | [options] 9 | # Navigation bar title. (Default: ``project`` value) 10 | # We leave this blank because RTD takes care of it 11 | navbar_title = 12 | 13 | # Tab name for entire site. (Default: "Site") 14 | # We leave this blank because RTD takes care of it 15 | navbar_site_name = 16 | 17 | # A list of tuples containting pages to link to. The value should be 18 | # in the form [(name, page), ..] 19 | navbar_links = 20 | 21 | # Render the next and previous page links in navbar. (Default: true) 22 | navbar_sidebarrel = true 23 | 24 | # Render the current pages TOC in the navbar. (Default: true) 25 | navbar_pagenav = true 26 | 27 | # Global TOC depth for "site" navbar tab. (Default: 1) 28 | # Switching to -1 shows all levels. 29 | globaltoc_depth = 1 30 | 31 | # Include hidden TOCs in Site navbar? 32 | # 33 | # Note: If this is "false", you cannot have mixed ``:hidden:`` and 34 | # non-hidden ``toctree`` directives in the same page, or else the build 35 | # will break. 36 | # 37 | # Values: "true" (default) or "false" 38 | globaltoc_includehidden = true 39 | 40 | # Navigation bar settings 41 | navbar_class = navbar 42 | navbar_fixed_top = true 43 | 44 | # Location of link to source. 45 | # Options are "nav" (default), "footer" or anything else to exclude. 46 | source_link_position = nav 47 | 48 | # HubSpot tracking ID 49 | tracking_project = 50 | tracking_hubspot_id = 51 | 52 | # Can be used the query string of a resource URL for HTTP cache busting 53 | ver = 54 | 55 | # Furo 56 | announcement = 57 | dark_css_variables = 58 | dark_logo = 59 | light_css_variables = 60 | light_logo = 61 | sidebar_hide_name = 62 | footer_icons = 63 | top_of_page_button = edit 64 | # For components/edit-this-page.html 65 | source_repository = 66 | source_branch = 67 | source_directory = 68 | source_edit_link = 69 | -------------------------------------------------------------------------------- /src/crate/theme/vendor/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/vendor/__init__.py -------------------------------------------------------------------------------- /src/crate/theme/vendor/rtd_compat/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-docs-theme/b4aa4795bcab17541c88f3bd0e422d6704f685b4/src/crate/theme/vendor/rtd_compat/__init__.py -------------------------------------------------------------------------------- /src/crate/theme/vendor/rtd_compat/utils.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | # Borrowed from 4 | # https://github.com/readthedocs/readthedocs.org/blob/25e697f1ee63828bba65f41d0c8724769d70402f/readthedocs/projects/constants.py#L345-L366 5 | GITHUB_REGEXS = [ 6 | re.compile(r"github.com/(.+)/(.+)(?:\.git){1}$"), 7 | # This must come before the one without a / to make sure we don't capture the / 8 | re.compile(r"github.com/(.+)/(.+)/"), 9 | re.compile(r"github.com/(.+)/(.+)"), 10 | re.compile(r"github.com:(.+)/(.+)\.git$"), 11 | ] 12 | BITBUCKET_REGEXS = [ 13 | re.compile(r"bitbucket.org/(.+)/(.+)\.git$"), 14 | re.compile(r"@bitbucket.org/(.+)/(.+)\.git$"), 15 | # This must come before the one without a / to make sure we don't capture the / 16 | re.compile(r"bitbucket.org/(.+)/(.+)/"), 17 | re.compile(r"bitbucket.org/(.+)/(.+)"), 18 | re.compile(r"bitbucket.org:(.+)/(.+)\.git$"), 19 | ] 20 | GITLAB_REGEXS = [ 21 | re.compile(r"gitlab.com/(.+)/(.+)(?:\.git){1}$"), 22 | # This must come before the one without a / to make sure we don't capture the / 23 | re.compile(r"gitlab.com/(.+)/(.+)/"), 24 | re.compile(r"gitlab.com/(.+)/(.+)"), 25 | re.compile(r"gitlab.com:(.+)/(.+)\.git$"), 26 | ] 27 | 28 | 29 | # Borrowed from 30 | # https://github.com/readthedocs/readthedocs.org/blob/25e697f1ee63828bba65f41d0c8724769d70402f/readthedocs/builds/utils.py#L24-L48 31 | def get_github_username_repo(url): 32 | if "github" in url: 33 | for regex in GITHUB_REGEXS: 34 | match = regex.search(url) 35 | if match: 36 | return match.groups() 37 | return (None, None) 38 | 39 | 40 | def get_bitbucket_username_repo(url=None): 41 | if "bitbucket" in url: 42 | for regex in BITBUCKET_REGEXS: 43 | match = regex.search(url) 44 | if match: 45 | return match.groups() 46 | return (None, None) 47 | 48 | 49 | def get_gitlab_username_repo(url=None): 50 | if "gitlab" in url: 51 | for regex in GITLAB_REGEXS: 52 | match = regex.search(url) 53 | if match: 54 | return match.groups() 55 | return (None, None) 56 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * This is a surrogate for satisfying webpack. 4 | * 5 | * In order to build the resources, invoke:: 6 | * 7 | * npx webpack --mode=development 8 | * 9 | * or 10 | * 11 | * npx webpack --mode=production 12 | * 13 | **/ 14 | import "./crate/theme/rtd/crate/static/vendor/furo/index"; 15 | import "./crate/theme/rtd/crate/static/css/index.css"; 16 | import "./crate/theme/rtd/crate/static/js/index"; 17 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | 3 | module.exports = { 4 | entry: './src/index.js', 5 | module: { 6 | rules: [ 7 | { 8 | test: [ 9 | /\.css$/i, 10 | /\.s[ac]ss$/i, 11 | ], 12 | use: [ 13 | { loader: "style-loader" }, 14 | { loader: "css-loader", options: { sourceMap: true } }, 15 | { loader: "postcss-loader", options: { sourceMap: true } }, 16 | { loader: "sass-loader", options: { api: "legacy", sourceMap: true } }, 17 | ], 18 | }, 19 | { 20 | test: /\.(png|jpg|gif|svg|woff|woff2|eot|ttf|otf)$/i, 21 | type: 'asset/resource', 22 | }, 23 | { 24 | loader: "webpack-modernizr-loader", 25 | test: "/modernizr-config\.json$/", 26 | type: 'javascript/auto', 27 | }, 28 | { 29 | // Expose jQuery for use outside Webpack build. 30 | test: require.resolve('jquery'), 31 | loader: "expose-loader", 32 | options: { 33 | exposes: ["$", "jquery", "jQuery"], 34 | }, 35 | }, 36 | { 37 | // Expose `js-cookie` for use outside Webpack build. 38 | test: require.resolve('js-cookie'), 39 | loader: "expose-loader", 40 | options: { 41 | exposes: ["Cookies"], 42 | }, 43 | }, 44 | ], 45 | }, 46 | resolve: { 47 | alias: { 48 | modernizr$: path.resolve(__dirname, 'modernizr-config.json'), 49 | }, 50 | }, 51 | output: { 52 | path: path.resolve(__dirname, 'src', 'crate', 'theme', 'rtd', 'crate', 'static', 'bundle'), 53 | filename: 'main.js', 54 | }, 55 | }; 56 | --------------------------------------------------------------------------------