├── .circleci └── config.yml ├── .editorconfig ├── .flake8 ├── .github ├── CODEOWNERS └── workflows │ └── documentation-links.yaml ├── .gitignore ├── .gitmodules ├── .htmlvalidate.json ├── .htmlvalidateignore ├── .isort.cfg ├── .npmrc ├── .pep8 ├── .pre-commit-config.yaml ├── .prettierignore ├── .readthedocs.yml ├── .style.yapf ├── .tool-versions-example ├── .vscode └── settings.json ├── LICENSE ├── README.rst ├── conf.py ├── content ├── images │ ├── 10-year.jpg │ ├── 2025-vision.jpg │ ├── 2fa.jpg │ ├── acquia-logo.svg │ ├── addons-analytics.png │ ├── addons-by-default.jpg │ ├── addons-docdiff.gif │ ├── addons-ethical-ads.png │ ├── addons-flyout.png │ ├── addons-latest-notification.png │ ├── addons-non-stable-notification.png │ ├── addons-pull-request-notification.png │ ├── addons-search.gif │ ├── amd-logo.svg │ ├── anaconda-logo.svg │ ├── apr-2024.jpg │ ├── august-2024.jpg │ ├── aws-rds-upgrade.png │ ├── canonical-logo.svg │ ├── cloudflare-pages-logo.svg │ ├── ddev-logo.png │ ├── ddev-logo.svg │ ├── december-2024.jpg │ ├── deprecated-config-file-without-sphinx-or-mkdocs-config.jpg │ ├── deprecated-embed-api-v2.jpg │ ├── docs-as-code │ │ ├── deploy.png │ │ ├── flyout-zoomed.png │ │ ├── gh-integration.png │ │ └── visual-diff.png │ ├── drop-support-for-subversion-mercurial-bazaar.jpg │ ├── enable-beta-addons.jpg │ ├── features │ │ ├── analytics.png │ │ ├── authoring.png │ │ ├── building.png │ │ ├── flyout.png │ │ ├── notification.png │ │ ├── offline-formats-django.png │ │ ├── review.png │ │ └── search.png │ ├── feb-2024.jpg │ ├── feb-2025.jpg │ ├── flask-logo.png │ ├── gitbook-logo.svg │ ├── github-logo.svg │ ├── gluster-logo.png │ ├── godot-logo.png │ ├── headers │ │ └── ai-crawlers.jpg │ ├── homepage.png │ ├── introducing-latest-aliases.jpg │ ├── jan-2024.jpg │ ├── jan-2025.jpg │ ├── july-2024.jpg │ ├── jupysql-logo.png │ ├── jupyter-book-logo.png │ ├── jupyter-book-users-logo.png │ ├── jupyter-logo.png │ ├── logo-opengraph.png │ ├── mar-2024.jpg │ ├── mkdocs-yaml-manipulation.jpg │ ├── myst-parser-logo.png │ ├── new-dashboard.png │ ├── november-2024.jpg │ ├── orchard-core-logo.png │ ├── override-build-steps-with-build-jobs.jpg │ ├── posts │ │ ├── bandwidth-june-2024.png │ │ ├── bandwidth-may-2024.png │ │ ├── default.svg │ │ └── screenshot-new-website.png │ ├── read-the-docs-loves-ruby.jpg │ ├── readme-html-deprecated.jpg │ ├── readthedocs-thumb.png │ ├── september-2024.jpg │ ├── sphinx-logo.png │ ├── stats-2023.jpg │ ├── ubuntu-24-04.jpg │ └── update-version-slug.png ├── includes │ ├── business-logos.html │ ├── try-it-out-custom.html │ ├── try-it-out-docusaurus.html │ ├── try-it-out-jupyter-book.html │ ├── try-it-out-markdoc.html │ ├── try-it-out-mkdocs.html │ ├── try-it-out-pelican.html │ ├── try-it-out.html │ ├── users-jupyter-book.html │ ├── users-mkdocs.html │ └── users-sphinx.html ├── pages │ ├── choosing-a-platform.rst │ ├── company.html │ ├── comparisons │ │ ├── cloudflare-pages.html │ │ ├── gitbook.html │ │ ├── github-pages.html │ │ └── index.html │ ├── custom.html │ ├── docs-as-code.html │ ├── enterprise.html │ ├── errors │ │ ├── 401.html │ │ ├── 403.html │ │ ├── 404.html │ │ ├── 4xx.html │ │ ├── 504.html │ │ └── 5xx.html │ ├── examples │ │ └── marketing.html │ ├── features.html │ ├── features │ │ └── reader.html │ ├── homepage.html │ ├── pricing.html │ ├── privacy-policy.rst │ ├── terms-of-service.rst │ └── tools │ │ ├── jupyter-book.html │ │ ├── markdoc.html │ │ ├── mkdocs.html │ │ └── sphinx.html ├── partials │ ├── basic.html │ ├── comparisons.html │ ├── features.html │ ├── homepage.html │ ├── marketing.html │ ├── pricing.html │ └── technical.html └── posts │ ├── 10-year-anniversary.md │ ├── 2025-vision.md │ ├── addons-by-default.md │ ├── ai-crawlers-abuse.md │ ├── customize-versions-urls.md │ ├── deprecate-config-files-without-sphinx-or-mkdocs-config.md │ ├── drop-support-for-subversion-mercurial-bazaar.md │ ├── embed-api-v2-deprecated.md │ ├── enable-beta-addons.md │ ├── introducing-latest-aliases.md │ ├── mkdocs-yaml-manipulation.md │ ├── newsletter-april-2024.md │ ├── newsletter-august-2024.md │ ├── newsletter-december-2024.md │ ├── newsletter-february-2024.md │ ├── newsletter-february-2025.md │ ├── newsletter-january-2024.rst │ ├── newsletter-january-2025.md │ ├── newsletter-july-2024.md │ ├── newsletter-march-2022.rst │ ├── newsletter-march-2024.md │ ├── newsletter-november-2024.md │ ├── newsletter-september-2024.md │ ├── override-build-process-with-build-jobs.md │ ├── postgres-maint-feb-14.md │ ├── read-the-docs-2021-stats.rst │ ├── read-the-docs-2023-stats.rst │ ├── read-the-docs-loves-ruby.md │ ├── readme-html-deprecated.md │ ├── rollout-of-our-new-dashboard.rst │ ├── two-factor-authentication.md │ ├── ubuntu-24-04.md │ └── website-migration.rst ├── dist ├── css │ └── site.css └── js │ ├── site.js │ └── vendor.js ├── examples ├── mockups │ ├── company.html │ ├── example.html │ ├── images │ │ ├── callout.png │ │ ├── continuous-documentation.jpg │ │ ├── infographic-01.png │ │ ├── infographic-02.png │ │ ├── infographic-03.png │ │ ├── infographic-inverted-01.png │ │ ├── infographic-inverted-02.png │ │ ├── infographic-inverted-03.png │ │ ├── logo-light.svg │ │ ├── logo-wordmark-dark.svg │ │ ├── logo-wordmark-light.svg │ │ ├── shutterstock-concept-of-user-manual-1315141181-2.jpg │ │ ├── sponsors │ │ │ └── sponsor-logo-light.svg │ │ ├── team │ │ │ ├── ana.jfif │ │ │ ├── anthony.jfif │ │ │ ├── default-avatar.svg │ │ │ ├── eric.jfif │ │ │ ├── juanlu.jfif │ │ │ ├── manuel.jfif │ │ │ └── santos.jfif │ │ └── tiny-people-with-guide.png │ ├── index.html │ ├── pricing.html │ └── product.html └── theme │ ├── images │ ├── avatar │ │ ├── nan.jpg │ │ └── tom.jpg │ ├── bg.jpg │ ├── logo.png │ └── wireframe │ │ ├── image.png │ │ ├── paragraph.png │ │ └── square-image.png │ └── index.html ├── package-lock.json ├── package.json ├── pelicanconf.py ├── prospector.yml ├── publishconf.py ├── pyproject.toml ├── readthedocs_theme ├── plugins │ └── html_directive.py ├── static │ ├── css │ │ ├── fonts │ │ │ ├── lato-black-italic.woff │ │ │ ├── lato-black-italic.woff2 │ │ │ ├── lato-black.woff │ │ │ ├── lato-black.woff2 │ │ │ ├── lato-bold-italic.woff │ │ │ ├── lato-bold-italic.woff2 │ │ │ ├── lato-bold.woff │ │ │ ├── lato-bold.woff2 │ │ │ ├── lato-hairline-italic.woff │ │ │ ├── lato-hairline-italic.woff2 │ │ │ ├── lato-hairline.woff │ │ │ ├── lato-hairline.woff2 │ │ │ ├── lato-heavy-italic.woff │ │ │ ├── lato-heavy-italic.woff2 │ │ │ ├── lato-heavy.woff │ │ │ ├── lato-heavy.woff2 │ │ │ ├── lato-light-italic.woff │ │ │ ├── lato-light-italic.woff2 │ │ │ ├── lato-light.woff │ │ │ ├── lato-light.woff2 │ │ │ ├── lato-medium-italic.woff │ │ │ ├── lato-medium-italic.woff2 │ │ │ ├── lato-medium.woff │ │ │ ├── lato-medium.woff2 │ │ │ ├── lato-normal-italic.woff │ │ │ ├── lato-normal-italic.woff2 │ │ │ ├── lato-normal.woff │ │ │ ├── lato-normal.woff2 │ │ │ ├── lato-semibold-italic.woff │ │ │ ├── lato-semibold-italic.woff2 │ │ │ ├── lato-semibold.woff │ │ │ ├── lato-semibold.woff2 │ │ │ ├── lato-thin-italic.woff │ │ │ ├── lato-thin-italic.woff2 │ │ │ ├── lato-thin.woff │ │ │ └── lato-thin.woff2 │ │ └── site.css │ ├── img │ │ ├── apple-touch-icon.png │ │ ├── contributors │ │ │ ├── Abhi-khandelwal.jpg │ │ │ ├── Blackcipher101.jpg │ │ │ ├── Blendify.jpg │ │ │ ├── cocobennett.jpg │ │ │ ├── dojutsu-user.jpg │ │ │ ├── jessetan.jpg │ │ │ ├── saadmk11.jpg │ │ │ ├── safwanrahman.jpg │ │ │ └── tapaswenipathak.jpg │ │ ├── favicon-16x16.png │ │ ├── favicon-24x24.png │ │ ├── favicon-32x32.png │ │ ├── favicon.ico │ │ ├── infographic-01.png │ │ ├── infographic-02.png │ │ ├── infographic-03.png │ │ ├── logo-wordmark-dark.svg │ │ ├── sponsors │ │ │ ├── aws.png │ │ │ ├── azure.png │ │ │ ├── cloudflare.png │ │ │ ├── elastic.png │ │ │ ├── newrelic.png │ │ │ ├── pagerduty.png │ │ │ └── sentry.png │ │ └── team │ │ │ ├── ana.jfif │ │ │ ├── anthony.jfif │ │ │ ├── benjamin.jpeg │ │ │ ├── eric.jfif │ │ │ ├── juanlu.jfif │ │ │ ├── manuel.jfif │ │ │ └── santos.jfif │ └── js │ │ ├── site.js │ │ └── vendor.js └── templates │ ├── article.html │ ├── base.html │ ├── category.html │ ├── docutils_page.html │ ├── error.html │ ├── includes │ ├── footer.html │ ├── opengraph.html │ ├── pagination.html │ └── topnav.html │ ├── index.html │ ├── page.html │ └── tag.html ├── src ├── css │ └── site.less ├── js │ ├── site.js │ └── tests │ │ └── site.test.js └── sui │ ├── theme.config │ ├── theme.less │ └── themes │ └── rtd-site │ ├── elements │ ├── button.overrides │ ├── header.overrides │ ├── image.overrides │ ├── image.variables │ ├── label.overrides │ ├── label.variables │ └── segment.overrides │ ├── globals │ └── site.overrides │ └── views │ └── card.overrides ├── uv.lock └── webpack.config.js /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.1 2 | 3 | orbs: 4 | node: circleci/node@5.0.2 5 | 6 | commands: 7 | run-lint: 8 | description: "Run basic checks" 9 | steps: 10 | - checkout 11 | - run: npm ci 12 | - run: npm run lint 13 | - run: npm run test 14 | run-build: 15 | description: "Ensure compiled assets are up to date and HTML is valid" 16 | steps: 17 | - checkout 18 | - node/install: 19 | node-version: '14.18' 20 | - run: npm ci 21 | - run: npm run build-assets 22 | - run: 23 | name: Ensure built assets are up to date 24 | command: | 25 | if [[ `git status readthedocs_theme/ --porcelain` ]] 26 | then 27 | echo "ERROR: assets are out of date. Make sure to run 'npm run build' on your branch." 28 | git status readthedocs_theme/ --porcelain 29 | exit 1 30 | fi 31 | - run: pip install uv 32 | - run: uv sync 33 | - run: uv run pelican content -s publishconf.py 34 | - run: npx html-validate --formatter codeframe output/ 35 | 36 | jobs: 37 | lint: 38 | docker: 39 | - image: "cimg/node:14.18" 40 | steps: 41 | - run-lint: {} 42 | build: 43 | docker: 44 | - image: "cimg/python:3.10" 45 | steps: 46 | - attach_workspace: 47 | at: ~/ 48 | - run-build: {} 49 | - persist_to_workspace: 50 | root: ~/ 51 | paths: project 52 | 53 | workflows: 54 | version: 2 55 | build: 56 | jobs: 57 | - lint 58 | - build 59 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [**/*.html] 4 | indent_style = space 5 | indent_size = 2 6 | vim_filetype = jinja2.html 7 | 8 | [**/*.js] 9 | indent_style = space 10 | indent_size = 2 11 | -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- 1 | common/flake8 -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | *.js @readthedocs/frontend 2 | *.html @readthedocs/frontend 3 | *.css @readthedocs/frontend 4 | *.less @readthedocs/frontend 5 | /content/ @readthedocs/advocacy 6 | -------------------------------------------------------------------------------- /.github/workflows/documentation-links.yaml: -------------------------------------------------------------------------------- 1 | name: Read the Docs pull request preview 2 | on: 3 | pull_request_target: 4 | types: 5 | - opened 6 | 7 | permissions: 8 | pull-requests: write 9 | 10 | jobs: 11 | documentation-links: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: readthedocs/actions/preview@v1 15 | with: 16 | project-slug: "readthedocs-about" 17 | single-version: "true" # Has to be a string value. 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .nodenv 3 | .node-version 4 | .python-version 5 | .tool-versions 6 | .direnv/ 7 | .env 8 | .envrc 9 | .ropeproject/ 10 | 11 | __pycache__ 12 | 13 | output/ 14 | 15 | src/website.egg-info/ 16 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "common"] 2 | path = common 3 | url = https://github.com/readthedocs/common.git 4 | -------------------------------------------------------------------------------- /.htmlvalidate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["html-validate:recommended"], 3 | "rules": { 4 | "void-style": "off", 5 | "no-dup-class": "off", 6 | "no-trailing-whitespace": "off", 7 | "no-inline-style": [ 8 | "error", 9 | { 10 | "allowedProperties": [ 11 | "--fa-primary-opacity", 12 | "--fa-primary-color", 13 | "--fa-secondary-opacity", 14 | "--fa-secondary-color" 15 | ] 16 | } 17 | ] 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /.htmlvalidateignore: -------------------------------------------------------------------------------- 1 | # Unfinished pages 2 | output/company/index.html 3 | 4 | # Can have docutils output included, which includes lots of errors 5 | output/blog/**/*.html 6 | -------------------------------------------------------------------------------- /.isort.cfg: -------------------------------------------------------------------------------- 1 | common/isort.cfg -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | -------------------------------------------------------------------------------- /.pep8: -------------------------------------------------------------------------------- 1 | common/pep8 -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | common/pre-commit-config.yaml -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | examples/ 3 | *.rst 4 | *.eot 5 | *.woff 6 | *.woff2 7 | *.ttf 8 | *.svg 9 | -------------------------------------------------------------------------------- /.readthedocs.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | build: 4 | os: ubuntu-22.04 5 | tools: 6 | python: "3.10" 7 | nodejs: "14" 8 | commands: 9 | - pip install uv 10 | - uv sync 11 | - npm ci 12 | - uv run npm run build-html 13 | - mkdir -p _readthedocs/html/ 14 | - cp -r output/* _readthedocs/html/ 15 | -------------------------------------------------------------------------------- /.style.yapf: -------------------------------------------------------------------------------- 1 | common/style.yapf -------------------------------------------------------------------------------- /.tool-versions-example: -------------------------------------------------------------------------------- 1 | nodejs 14.21.1 2 | python 3.10.8 3 | uv 0.7.8 4 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cSpell.words": [ 3 | "checklist" 4 | ], 5 | "cSpell.ignoreWords": [ 6 | "taglist" 7 | ] 8 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright © Read the Docs, Inc. All rights reserved. 2 | -------------------------------------------------------------------------------- /conf.py: -------------------------------------------------------------------------------- 1 | # This is mostly a hack to bail out of Sphinx 2 | 3 | import sys 4 | 5 | project = 'site-communtiy' 6 | copyright = '2022, Test' 7 | author = 'Test' 8 | 9 | extensions = [] 10 | 11 | 12 | def setup(app): 13 | sys.exit(0) 14 | -------------------------------------------------------------------------------- /content/images/10-year.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/10-year.jpg -------------------------------------------------------------------------------- /content/images/2025-vision.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/2025-vision.jpg -------------------------------------------------------------------------------- /content/images/2fa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/2fa.jpg -------------------------------------------------------------------------------- /content/images/acquia-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /content/images/addons-analytics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/addons-analytics.png -------------------------------------------------------------------------------- /content/images/addons-by-default.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/addons-by-default.jpg -------------------------------------------------------------------------------- /content/images/addons-docdiff.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/addons-docdiff.gif -------------------------------------------------------------------------------- /content/images/addons-ethical-ads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/addons-ethical-ads.png -------------------------------------------------------------------------------- /content/images/addons-flyout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/addons-flyout.png -------------------------------------------------------------------------------- /content/images/addons-latest-notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/addons-latest-notification.png -------------------------------------------------------------------------------- /content/images/addons-non-stable-notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/addons-non-stable-notification.png -------------------------------------------------------------------------------- /content/images/addons-pull-request-notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/addons-pull-request-notification.png -------------------------------------------------------------------------------- /content/images/addons-search.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/addons-search.gif -------------------------------------------------------------------------------- /content/images/amd-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /content/images/apr-2024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/apr-2024.jpg -------------------------------------------------------------------------------- /content/images/august-2024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/august-2024.jpg -------------------------------------------------------------------------------- /content/images/aws-rds-upgrade.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/aws-rds-upgrade.png -------------------------------------------------------------------------------- /content/images/ddev-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/ddev-logo.png -------------------------------------------------------------------------------- /content/images/ddev-logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /content/images/december-2024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/december-2024.jpg -------------------------------------------------------------------------------- /content/images/deprecated-config-file-without-sphinx-or-mkdocs-config.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/deprecated-config-file-without-sphinx-or-mkdocs-config.jpg -------------------------------------------------------------------------------- /content/images/deprecated-embed-api-v2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/deprecated-embed-api-v2.jpg -------------------------------------------------------------------------------- /content/images/docs-as-code/deploy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/docs-as-code/deploy.png -------------------------------------------------------------------------------- /content/images/docs-as-code/flyout-zoomed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/docs-as-code/flyout-zoomed.png -------------------------------------------------------------------------------- /content/images/docs-as-code/gh-integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/docs-as-code/gh-integration.png -------------------------------------------------------------------------------- /content/images/docs-as-code/visual-diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/docs-as-code/visual-diff.png -------------------------------------------------------------------------------- /content/images/drop-support-for-subversion-mercurial-bazaar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/drop-support-for-subversion-mercurial-bazaar.jpg -------------------------------------------------------------------------------- /content/images/enable-beta-addons.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/enable-beta-addons.jpg -------------------------------------------------------------------------------- /content/images/features/analytics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/features/analytics.png -------------------------------------------------------------------------------- /content/images/features/authoring.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/features/authoring.png -------------------------------------------------------------------------------- /content/images/features/building.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/features/building.png -------------------------------------------------------------------------------- /content/images/features/flyout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/features/flyout.png -------------------------------------------------------------------------------- /content/images/features/notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/features/notification.png -------------------------------------------------------------------------------- /content/images/features/offline-formats-django.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/features/offline-formats-django.png -------------------------------------------------------------------------------- /content/images/features/review.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/features/review.png -------------------------------------------------------------------------------- /content/images/features/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/features/search.png -------------------------------------------------------------------------------- /content/images/feb-2024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/feb-2024.jpg -------------------------------------------------------------------------------- /content/images/feb-2025.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/feb-2025.jpg -------------------------------------------------------------------------------- /content/images/flask-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/flask-logo.png -------------------------------------------------------------------------------- /content/images/gluster-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/gluster-logo.png -------------------------------------------------------------------------------- /content/images/godot-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/godot-logo.png -------------------------------------------------------------------------------- /content/images/headers/ai-crawlers.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/headers/ai-crawlers.jpg -------------------------------------------------------------------------------- /content/images/homepage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/homepage.png -------------------------------------------------------------------------------- /content/images/introducing-latest-aliases.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/introducing-latest-aliases.jpg -------------------------------------------------------------------------------- /content/images/jan-2024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/jan-2024.jpg -------------------------------------------------------------------------------- /content/images/jan-2025.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/jan-2025.jpg -------------------------------------------------------------------------------- /content/images/july-2024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/july-2024.jpg -------------------------------------------------------------------------------- /content/images/jupysql-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/jupysql-logo.png -------------------------------------------------------------------------------- /content/images/jupyter-book-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/jupyter-book-logo.png -------------------------------------------------------------------------------- /content/images/jupyter-book-users-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/jupyter-book-users-logo.png -------------------------------------------------------------------------------- /content/images/jupyter-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/jupyter-logo.png -------------------------------------------------------------------------------- /content/images/logo-opengraph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/logo-opengraph.png -------------------------------------------------------------------------------- /content/images/mar-2024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/mar-2024.jpg -------------------------------------------------------------------------------- /content/images/mkdocs-yaml-manipulation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/mkdocs-yaml-manipulation.jpg -------------------------------------------------------------------------------- /content/images/myst-parser-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/myst-parser-logo.png -------------------------------------------------------------------------------- /content/images/new-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/new-dashboard.png -------------------------------------------------------------------------------- /content/images/november-2024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/november-2024.jpg -------------------------------------------------------------------------------- /content/images/orchard-core-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/orchard-core-logo.png -------------------------------------------------------------------------------- /content/images/override-build-steps-with-build-jobs.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/override-build-steps-with-build-jobs.jpg -------------------------------------------------------------------------------- /content/images/posts/bandwidth-june-2024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/posts/bandwidth-june-2024.png -------------------------------------------------------------------------------- /content/images/posts/bandwidth-may-2024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/posts/bandwidth-may-2024.png -------------------------------------------------------------------------------- /content/images/posts/default.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /content/images/posts/screenshot-new-website.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/posts/screenshot-new-website.png -------------------------------------------------------------------------------- /content/images/read-the-docs-loves-ruby.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/read-the-docs-loves-ruby.jpg -------------------------------------------------------------------------------- /content/images/readme-html-deprecated.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/readme-html-deprecated.jpg -------------------------------------------------------------------------------- /content/images/readthedocs-thumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/readthedocs-thumb.png -------------------------------------------------------------------------------- /content/images/september-2024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/september-2024.jpg -------------------------------------------------------------------------------- /content/images/sphinx-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/sphinx-logo.png -------------------------------------------------------------------------------- /content/images/stats-2023.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/stats-2023.jpg -------------------------------------------------------------------------------- /content/images/ubuntu-24-04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/ubuntu-24-04.jpg -------------------------------------------------------------------------------- /content/images/update-version-slug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/content/images/update-version-slug.png -------------------------------------------------------------------------------- /content/includes/business-logos.html: -------------------------------------------------------------------------------- 1 | 22 | -------------------------------------------------------------------------------- /content/includes/try-it-out-docusaurus.html: -------------------------------------------------------------------------------- 1 |
2 |
Try it out
3 |
4 | 5 |
6 |
7 |

8 | Deploy in 5 minutes and see for yourself 9 |

10 | 11 |
12 | 13 |
14 |
15 | 16 | {# Stylized code blocks #} 17 | {% call technical.code_block(title=".readthedocs.yaml", icon="fa-file") %} 18 | {% markdown %} 19 | 20 | ```yaml 21 | version: 2 22 | build: 23 | os: "ubuntu-22.04" 24 | tools: 25 | nodejs: "18" 26 | # You can also specify other tool versions: 27 | # python: "3" 28 | commands: 29 | # "docs/" was created following the Docusaurus tutorial: 30 | # npx create-docusaurus@latest docs classic 31 | # 32 | # Install Docusaurus dependencies 33 | - cd docs/ && npm install 34 | # Build the site 35 | - cd docs/ && npm run build 36 | # Copy generated files into Read the Docs directory 37 | - mkdir --parents $READTHEDOCS_OUTPUT/html/ 38 | - cp --recursive docs/build/* $READTHEDOCS_OUTPUT/html/ 39 | ``` 40 | 41 | {% endmarkdown %} 42 | {% endcall %} 43 |
44 |
45 | 46 |
47 |
48 |
49 | 50 | {%- set header_1 = "Create an account" %} 51 | {%- set icon_1 = "fa-square-1" -%} 52 | 53 | 54 | 55 | {{ header_1 }} 56 | Sign up with GitHub or your email. 57 | 58 | 59 | 60 | {%- set header_2 = "Import your project" %} 61 | {%- set icon_2 = "fa-square-2" -%} 62 | 63 | 64 | 65 | {{ header_2 }} 66 | Select a project from your existing Git repositories. 67 | 68 | 69 | 70 | {%- set header_3 = "Add YAML config" %} 71 | {%- set icon_3 = "fa-square-3" -%} 72 | 73 | 74 | 75 | {{ header_3 }} 76 | Save this file as .readthedocs.yaml, and update the commands as necessary. 77 | 78 | 79 | 80 | {%- set header_4 = "Your docs build on every commit" %} 81 | {%- set icon_4 = "fa-square-4" -%} 82 | 83 | 84 | 85 | {{ header_4 }} 86 | Like magic. 87 | 88 | 89 |
90 |
91 |
92 |
93 |
94 |
95 | -------------------------------------------------------------------------------- /content/includes/try-it-out-markdoc.html: -------------------------------------------------------------------------------- 1 |
2 |
Try it out
3 |
4 | 5 |
6 |
7 |

8 | Deploy in 5 minutes and see for yourself 9 |

10 | 11 |
12 | 13 |
14 |
15 | 16 | {# Stylized code blocks #} 17 | {% call technical.code_block(title=".readthedocs.yaml", icon="fa-file") %} 18 | {% markdown %} 19 | 20 | ```yaml 21 | version: 2 22 | 23 | build: 24 | os: ubuntu-24.04 25 | tools: 26 | nodejs: "22" 27 | commands: 28 | # Install dependencies 29 | - cd docs/ && npm install 30 | # Build the site 31 | - cd docs/ && npm run build 32 | # Copy generated files into Read the Docs directory 33 | - mkdir --parents $READTHEDOCS_OUTPUT/html/ 34 | - cp --verbose --recursive docs/out/* $READTHEDOCS_OUTPUT/html/ 35 | 36 | ``` 37 | 38 | {% endmarkdown %} 39 | {% endcall %} 40 |
41 |
42 | 43 |
44 |
45 |
46 | 47 | {%- set header_1 = "Create an account" %} 48 | {%- set icon_1 = "fa-square-1" -%} 49 | 50 | 51 | 52 | {{ header_1 }} 53 | Sign up with GitHub or your email. 54 | 55 | 56 | 57 | {%- set header_2 = "Import your project" %} 58 | {%- set icon_2 = "fa-square-2" -%} 59 | 60 | 61 | 62 | {{ header_2 }} 63 | Select a project from your existing Git repositories. 64 | 65 | 66 | 67 | {%- set header_3 = "Add YAML config" %} 68 | {%- set icon_3 = "fa-square-3" -%} 69 | 70 | 71 | 72 | {{ header_3 }} 73 | Save this file as .readthedocs.yaml, and update the commands as necessary. 74 | 75 | 76 | 77 | {%- set header_4 = "Your docs build on every commit" %} 78 | {%- set icon_4 = "fa-square-4" -%} 79 | 80 | 81 | 82 | {{ header_4 }} 83 | Like magic. 84 | 85 | 86 |
87 |
88 |
89 |
90 |
91 |
92 | -------------------------------------------------------------------------------- /content/includes/try-it-out-mkdocs.html: -------------------------------------------------------------------------------- 1 |
2 |
Try it out
3 |
4 | 5 |
6 |
7 |

8 | Upgrade your documentation with Read the Docs 9 |

10 | 11 |
12 | 13 |
14 |
15 | 16 | {# Stylized code blocks #} 17 | {% call technical.code_block(title=".readthedocs.yaml", icon="fa-file") %} 18 | {% markdown %} 19 | 20 | ```yaml 21 | version: 2 22 | build: 23 | os: ubuntu-22.04 24 | tools: 25 | python: "3.11" 26 | # You can also specify other tool versions: 27 | # nodejs: "16" 28 | 29 | # Build documentation with Mkdocs 30 | mkdocs: 31 | configuration: mkdocs.yml 32 | 33 | # Dependencies required to build your docs 34 | python: 35 | install: 36 | - requirements: requirements.txt 37 | ``` 38 | {% endmarkdown %} 39 | {% endcall %} 40 |
41 |
42 | 43 |
44 |
45 |
46 | 47 | {%- set header_1 = "Create an account" %} 48 | {%- set icon_1 = "fa-square-1" -%} 49 | 50 | 51 | 52 | {{ header_1 }} 53 | 54 | 56 | Sign up 57 | 58 | with GitHub or your email. 59 | 60 | 61 | 62 | 63 | {%- set header_2 = "Import your project" %} 64 | {%- set icon_2 = "fa-square-2" -%} 65 | 66 | 67 | 68 | {{ header_2 }} 69 | Select your existing Git repositories with a 1-click interface. 70 | 71 | 72 | 73 | {%- set header_3 = "Add YAML config" %} 74 | {%- set icon_3 = "fa-square-3" -%} 75 | 76 | 77 | 78 | {{ header_3 }} 79 | Copy this example, it probably does what you want 😉 80 | 81 | 82 | 83 | {%- set header_4 = "Your docs build on every commit" %} 84 | {%- set icon_4 = "fa-square-4" -%} 85 | 86 | 87 | 88 | {{ header_4 }} 89 | Like magic. 90 | 91 | 92 |
93 |
94 |
95 | 96 |
97 |
98 |
-------------------------------------------------------------------------------- /content/includes/try-it-out-pelican.html: -------------------------------------------------------------------------------- 1 |
2 |
Try it out
3 |
4 | 5 |
6 |
7 |

8 | Deploy in 5 minutes and see for yourself 9 |

10 | 11 |
12 | 13 |
14 |
15 | 16 | {# Stylized code blocks #} 17 | {% call technical.code_block(title=".readthedocs.yaml", icon="fa-file") %} 18 | {% markdown %} 19 | 20 | ```yaml 21 | version: 2 22 | build: 23 | os: "ubuntu-22.04" 24 | tools: 25 | python: "3" 26 | commands: 27 | # Install Pelican and its dependencies 28 | - pip install "pelican[markdown]" 29 | # Build the site 30 | - pelican \ 31 | --settings docs/pelicanconf.py \ 32 | --output $READTHEDOCS_OUTPUT/html 33 | ``` 34 | 35 | {% endmarkdown %} 36 | {% endcall %} 37 |
38 |
39 | 40 |
41 |
42 |
43 | 44 | {%- set header_1 = "Create an account" %} 45 | {%- set icon_1 = "fa-square-1" -%} 46 | 47 | 48 | 49 | {{ header_1 }} 50 | Sign up with GitHub or your email. 51 | 52 | 53 | 54 | {%- set header_2 = "Import your project" %} 55 | {%- set icon_2 = "fa-square-2" -%} 56 | 57 | 58 | 59 | {{ header_2 }} 60 | Select a project from your existing Git repositories. 61 | 62 | 63 | 64 | {%- set header_3 = "Add YAML config" %} 65 | {%- set icon_3 = "fa-square-3" -%} 66 | 67 | 68 | 69 | {{ header_3 }} 70 | Save this file as .readthedocs.yaml, and update the commands as necessary 71 | 72 | 73 | 74 | {%- set header_4 = "Your docs build on every commit" %} 75 | {%- set icon_4 = "fa-square-4" -%} 76 | 77 | 78 | 79 | {{ header_4 }} 80 | Like magic. 81 | 82 | 83 |
84 |
85 |
86 |
87 |
88 |
89 | -------------------------------------------------------------------------------- /content/includes/try-it-out.html: -------------------------------------------------------------------------------- 1 |
2 |
Try it out
3 |
4 | 5 |
6 |
7 |

8 | Upgrade your documentation with Read the Docs 9 |

10 | 11 |
12 | 13 |
14 |
15 | 16 | {# Stylized code blocks #} 17 | {% call technical.code_block(title=".readthedocs.yaml", icon="fa-file") %} 18 | {% markdown %} 19 | 20 | ```yaml 21 | version: 2 22 | build: 23 | os: ubuntu-22.04 24 | tools: 25 | python: "3.10" 26 | # You can also specify other tool versions: 27 | # nodejs: "16" 28 | 29 | # Build documentation in the docs/ directory with Sphinx 30 | sphinx: 31 | configuration: docs/conf.py 32 | 33 | # Dependencies required to build your docs 34 | python: 35 | install: 36 | - requirements: docs/requirements.txt 37 | ``` 38 | 39 | {% endmarkdown %} 40 | {% endcall %} 41 |
42 |
43 | 44 |
45 |
46 |
47 | 48 | {%- set header_1 = "Create an account" %} 49 | {%- set icon_1 = "fa-square-1" -%} 50 | 51 | 52 | 53 | {{ header_1 }} 54 | 55 | 57 | Sign up 58 | 59 | with GitHub or your email. 60 | 61 | 62 | 63 | 64 | {%- set header_2 = "Import your project" %} 65 | {%- set icon_2 = "fa-square-2" -%} 66 | 67 | 68 | 69 | {{ header_2 }} 70 | Select your existing Git repositories with a 1-click interface. 71 | 72 | 73 | 74 | {%- set header_3 = "Add YAML config" %} 75 | {%- set icon_3 = "fa-square-3" -%} 76 | 77 | 78 | 79 | {{ header_3 }} 80 | Copy this example, it probably does what you want 😉 81 | 82 | 83 | 84 | {%- set header_4 = "Your docs build on every commit" %} 85 | {%- set icon_4 = "fa-square-4" -%} 86 | 87 | 88 | 89 | {{ header_4 }} 90 | Like magic. 91 | 92 | 93 |
94 |
95 |
96 | 97 |
98 |
99 |
-------------------------------------------------------------------------------- /content/includes/users-jupyter-book.html: -------------------------------------------------------------------------------- 1 | {% import "partials/basic.html" as basic %} 2 | 3 |
4 |
5 | {{ basic.header_icon( 6 | header="Join thousands of happy users", 7 | subheader="", 8 | icon="purple fa-message-lines", 9 | icon_style="--fa-secondary-color: blueviolet;" 10 | ) }} 11 | 57 |
58 |
59 | -------------------------------------------------------------------------------- /content/includes/users-mkdocs.html: -------------------------------------------------------------------------------- 1 | {% import "partials/basic.html" as basic %} 2 | 3 | {# TODO: Turn these into testimonials. #} 4 |
5 |
6 | {{ basic.header_icon( 7 | header="Join thousands of happy users", 8 | subheader="", 9 | icon="purple fa-message-lines", 10 | icon_style="--fa-secondary-color: blueviolet;" 11 | ) }} 12 | 58 |
59 |
60 | -------------------------------------------------------------------------------- /content/includes/users-sphinx.html: -------------------------------------------------------------------------------- 1 | {% import "partials/basic.html" as basic %} 2 | 3 | {# TODO: Turn these into testimonials. #} 4 |
5 |
6 | {{ basic.header_icon( 7 | header="Join thousands of happy users", 8 | subheader="", 9 | icon="purple fa-message-lines", 10 | icon_style="--fa-secondary-color: blueviolet;" 11 | ) }} 12 | 58 |
59 |
60 | -------------------------------------------------------------------------------- /content/pages/choosing-a-platform.rst: -------------------------------------------------------------------------------- 1 | :title: Choosing a platform 2 | :description: Learn more about the differences between Read the Docs community and Read the Docs for Business and which one is right for you. 3 | :template: docutils_page 4 | 5 | .. TODO: Figure out how to reuse substitions 6 | 7 | .. |org_brand| replace:: Read the Docs Community 8 | .. |com_brand| replace:: Read the Docs for Business 9 | 10 | Choosing a platform 11 | =================== 12 | 13 | Users often ask what the differences are between |org_brand| and |com_brand|. 14 | 15 | While many of our features are available on both of these platforms, there 16 | are some key differences between our two platforms. 17 | 18 | Read the Docs Community 19 | ----------------------- 20 | 21 | |org_brand| is exclusively for hosting open source documentation. We support 22 | open source communities by providing free documentation building and hosting 23 | services, for projects of all sizes. 24 | 25 | Important points: 26 | 27 | * Open source project hosting is always free 28 | * All documentation sites include advertising from EthicalAds_ 29 | * Only supports public Git repositories 30 | * All documentation is publicly accessible to the world 31 | * Less build time and fewer build resources (memory & CPU) 32 | * Email support included only for issues with our platform 33 | * Documentation is organized by projects 34 | 35 | .. raw:: html 36 | 37 |
38 | Sign up for a free community account 39 |
40 | 41 | 42 | .. _EthicalAds: https://www.ethicalads.io/ 43 | 44 | Read the Docs for Business 45 | -------------------------- 46 | 47 | |com_brand| is meant for companies and users who have more complex requirements 48 | for their documentation project. This can include commercial projects with 49 | private source code, projects that can only be viewed with authentication, and 50 | even large scale projects that are publicly available. 51 | 52 | Important points: 53 | 54 | * Hosting plans require a paid subscription plan 55 | * There is no advertising on documentation sites 56 | * Allows importing private and public Git repositories 57 | * Supports private versions that require authentication to view 58 | * Supports team authentication, including SSO with Google, GitHub, GitLab, and Bitbucket 59 | * More build time and more build resources (memory & CPU) 60 | * Includes 24x5 email support, with 24x7 SLA support available 61 | * Documentation is organized by organization, giving more control over permissions 62 | 63 | .. raw:: html 64 | 65 |
66 | Start your 30-day free trial 67 |
68 | 69 | Questions? 70 | ---------- 71 | 72 | If you have a question about which platform would be best, 73 | email us at support@readthedocs.org. 74 | 75 | -------------------------------------------------------------------------------- /content/pages/comparisons/index.html: -------------------------------------------------------------------------------- 1 | {# View this page at http://localhost:8080/comparisons/ #} 2 | 3 | 4 | 5 | Read the Docs vs Other Documentation Platforms 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | {% import "partials/basic.html" as basic %} 14 | 15 |
16 | {% call basic.header_lead( 17 | header="Compare Read the Docs with other platforms") 18 | %} 19 |

20 | While there are many options for hosting documentation, 21 | Read the Docs is purpose-built for technical documentation with features that make both documentation authors and readers more productive. 22 |

23 |

24 | Compare Read the Docs with other popular documentation platforms to find the best solution for your needs. 25 |

26 | {% endcall %} 27 |
28 | 29 |
30 |
31 |
32 | 33 | {{ basic.comparison_card( 34 | url="/comparisons/github-pages/", 35 | logo_url="/images/github-logo.svg", 36 | logo_alt="GitHub Pages logo", 37 | title="GitHub Pages", 38 | meta="Static site hosting", 39 | description="GitHub Pages is primarily for static hosting, but lacks documentation-specific features. See how Read the Docs compares." 40 | ) }} 41 | 42 | {{ basic.comparison_card( 43 | url="/comparisons/gitbook/", 44 | logo_url="/images/gitbook-logo.svg", 45 | logo_alt="GitBook logo", 46 | title="GitBook", 47 | meta="Documentation platform", 48 | description="GitBook offers documentation hosting but with limited flexibility. Learn how Read the Docs gives you more control." 49 | ) }} 50 | 51 | {{ basic.comparison_card( 52 | url="/comparisons/cloudflare-pages/", 53 | logo_url="/images/cloudflare-pages-logo.svg", 54 | logo_alt="Cloudflare Pages logo", 55 | title="Cloudflare Pages", 56 | meta="Web hosting platform", 57 | description="Cloudflare Pages is built for SPA hosting and not documentation. See why Read the Docs is better suited for your docs." 58 | ) }} 59 | 60 |
61 |
62 |
63 | 64 |
65 |
66 |
67 |
68 |
69 |
70 |

71 | Ready to get started? 72 |

73 | 74 |

75 | Read the Docs is the all-in-one solution that provides everything you need 76 | for hosting documentation, from authentication to versioning. 77 | Try it today and see the difference! 78 |

79 | 80 |

81 | 84 | 85 | Get started for free 86 | 87 |

88 |
89 |
90 |
91 |
92 |
93 |
94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /content/pages/errors/401.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Unauthorized request 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | {% markdown %} 12 | 13 | You may not be logged in, or your account may not have the necessary permissions to view this page. 14 | Try logging in again or logging in with a different account. 15 | 16 | If this does not help, verify that your account has access to this page. 17 | 18 | {% endmarkdown %} 19 | 20 | {# TODO make this play nicely with two platforms #} 21 | 22 | 23 | Retry log in 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /content/pages/errors/403.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Access restricted 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | {% markdown %} 12 | 13 | Your account may not have the necessary permissions to view this page. 14 | Try logging in again or logging in with a different account. 15 | 16 | If this does not help, verify that your account has access to this page. 17 | 18 | {% endmarkdown %} 19 | 20 | {# TODO make this play nicely with two platforms #} 21 | 22 | 23 | Retry log in 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /content/pages/errors/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Not found 4 | 5 | 6 | {# The path for 404 pages is not flexible and needs to be top-level #} 7 | {# #} 8 | 9 | 10 | 11 | 12 | 13 | 14 | {% markdown %} 15 | 16 | We can't seem to find the resource you're looking for. 17 | You may have followed a link for out-dated or expired content, 18 | or this URL might not be valid. 19 | 20 | {% endmarkdown %} 21 | 22 | 23 | -------------------------------------------------------------------------------- /content/pages/errors/4xx.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Bad request 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | {% markdown %} 12 | 13 | Your request is either unsupported or we didn't understand it. 14 | You may want to wait and try again later, or if this problem persists, 15 | [contact us](/support). 16 | 17 | {% endmarkdown %} 18 | 19 | 20 | -------------------------------------------------------------------------------- /content/pages/errors/504.html: -------------------------------------------------------------------------------- 1 | {# 2 | This is the error for both 504/504 responses from AWS ALB. When we emit this 3 | status, there is a problem with our instances, our load, or a significant 4 | issue with our application code. 5 | #} 6 | 7 | 8 | Service unavailable 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | {% markdown %} 17 | 18 | We have encountered a problem and Read the Docs is currently unavailable. 19 | Try again shortly, or if you continue to notice this error, feel free to 20 | [contact support](/support) 21 | 22 | You can also watch [our status dashboard](https://status.readthedocs.com) 23 | to monitor the status of our services. 24 | 25 | {% endmarkdown %} 26 | 27 | 28 | -------------------------------------------------------------------------------- /content/pages/errors/5xx.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Server error 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | {% markdown %} 12 | 13 | There was an unexpected application error that prevented us from processing 14 | your request. The team has been alerted to the error, but feel free to 15 | [contact support](/support) if you continue to notice this error. 16 | 17 | {% endmarkdown %} 18 | 19 | 20 | -------------------------------------------------------------------------------- /content/partials/comparisons.html: -------------------------------------------------------------------------------- 1 | {# 2 | The SaaS feature comparison table 3 | #} 4 | {% macro feature_table(other_img, other_img_alt) %} 5 | 6 | 7 | {% macro _feature_table_row() %} 8 | 9 | 10 | 13 | 16 | 17 | {% endmacro %} 18 | 19 | 20 | {{ _feature_table_row() }} 21 | 22 | 23 | {{ caller() }} 24 | 25 | 26 | {{ _feature_table_row() }} 27 | 28 |
11 | {{ other_img_alt }} 12 | 14 | Read the Docs 15 |
29 | {% endmacro %} 30 | 31 | {# 32 | Feature row in the feature table 33 | 34 | Similar to plan features list above, each item has an icon, header, and 35 | description line of text. The remaining parameters control what is shown 36 | for each plan. These can be binary values to output check marks, `None` to 37 | be blank, or a string to output text to the plan's cell. 38 | 39 | Again, this supports the `show_community_features` global, until we confirm 40 | this mixed display is not confusing. 41 | #} 42 | {% macro feature_row(name, description, icon, on_other=False, on_readthedocs=True) %} 43 | 44 | 45 |
46 | {% if "fa-osi" in icon %} 47 | 48 | {% else %} 49 | 50 | {% endif %} 51 |
52 | {{ name }} 53 |
54 | {{ description }} 55 |
56 |
57 |
58 | 59 | {{ feature_row_cell(on_other) }} 60 | {{ feature_row_cell(on_readthedocs) }} 61 | 62 | {% endmacro %} 63 | 64 | {# 65 | Feature row cell helper 66 | 67 | This is the logic for each plan's cell for each feature. Values are: 68 | 69 | (value, cell_class_name) 70 | Pass in an optional class name for the cell, ``value`` is processed using 71 | the same rules as a non-tuple ``value``. 72 | 73 | True 74 | Show a check 75 | 76 | Anything truthy 77 | Show the string representation 78 | 79 | False 80 | Show an xmark 81 | #} 82 | {% macro feature_row_cell(value) %} 83 | {% if value is iterable and value is not string and value | length == 2 %} 84 | {% set (value, class_name) = value %} 85 | {% endif %} 86 | {% if value == True %} 87 | 88 | {% elif value %} 89 | {{ value }} 90 | {% else %} 91 | 92 | {% endif %} 93 | {% endmacro %} 94 | -------------------------------------------------------------------------------- /content/partials/features.html: -------------------------------------------------------------------------------- 1 | {# 2 | The header and supporting image for each about section/step 3 | 4 | :param image: Image to use on the right side of the header. Can be `None` to 5 | manually control the column as well. 6 | :param header: Header text 7 | :param icon: Font Awesome icon for the icon header. 8 | :param image_alt: Alt text for the image 9 | #} 10 | {% macro step(image, header, icon=None, image_alt=None) %} 11 |
12 |
13 |
14 | {% if icon %} 15 | 16 | {% endif %} 17 |
18 |
19 |

20 | {{ header }} 21 |

22 | 23 | {{ caller() }} 24 | 25 |
26 |
27 |
28 | 29 | {% if image %} 30 |
31 | {{ image_alt }} 32 |
33 | {% endif %} 34 | {% endmacro %} 35 | 36 | -------------------------------------------------------------------------------- /content/partials/homepage.html: -------------------------------------------------------------------------------- 1 | {# For features list section. A left floated icon and supporting header/text #} 2 | {% macro feature_detail_item(header, icon, paid=False) %} 3 |
4 |
5 |
6 | 7 |
8 |
9 |

10 | {{ header }} 11 | {% if paid %} 12 | 13 | 14 | Paid plan feature 15 | 16 | {% endif %} 17 |

18 |

19 | {{ caller() }} 20 |

21 |
22 |
23 |
24 | {% endmacro %} 25 | 26 | {# For resource/blog post listing at the bottom of the page #} 27 | {% macro resource(title, link, icon, color="primary", image=None) %} 28 |
29 |
30 |
31 | 32 |
33 | 34 |
35 | {% if image %} 36 |

37 | 38 |

39 | {% endif %} 40 | 41 | {{ title }} 42 | 43 |

44 | {{ caller() }} 45 |

46 |
47 |
48 |
49 | {% endmacro %} 50 | -------------------------------------------------------------------------------- /content/partials/marketing.html: -------------------------------------------------------------------------------- 1 | {# 2 | Testimonial quote from a user 3 | 4 | :param name: Name of the person being quoted 5 | :param title: Title of the person being quoted 6 | :param image: Image source URL for avatar 7 | :param company: Name of the company/organization featured 8 | :param link: Optional link to the source of the testimonial 9 | 10 | #} 11 | {% macro testimonial(name, title, image, company, link=None) %} 12 | 13 |
14 | {{ caller() }} 15 |
16 | 17 |
18 | {% if link %} 19 | 20 | {% endif %} 21 | {{ name }}, {{ title }}, {{ company }} 22 |
23 | {{ name }} 24 |
25 | {{ title }}, {{ company }} 26 |
27 |
28 | {% if link %} 29 |
30 | {% endif %} 31 |
32 | {% endmacro %} 33 | 34 | {# 35 | Highlight list is a prominent row of inverted blocks, used to focus the reader 36 | 37 | Usually used in a three column layout. This row will stack on mobile and 38 | tablet, so keep vertical height in mind. See `highlight_list` for more. 39 | 40 | Usage: 41 | 42 | {% call highlight_list() %} 43 | {% call highlight_item(...) %} 44 |

...

45 | {% endcall %} 46 | {% endcall %} 47 | 48 | #} 49 | {% macro highlight_list() %} 50 |
51 |
52 | {{ caller() }} 53 |
54 |
55 | {% endmacro %} 56 | 57 | {# 58 | Highlight items are columns in a highlight list 59 | 60 | :param icon: Font Awesome icon name, plus any other classes to add, such as the icon color 61 | :param header: Header text 62 | :param color: Block background color, default: "primary" 63 | :param icon_style: Inline styles for Font Awesome icon 64 | 65 | .. note:: 66 | The one exclusion allowed for inline styles are styles for Font Awesome 67 | icons. Duotone icons have several CSS attributes for controlling opacity 68 | and color. See https://fontawesome.com/docs/web/style/duotone for more. 69 | 70 | Example: 71 | 72 | {% call highlight_item( 73 | icon="violet fa-display-group", 74 | header="Header", 75 | color="secondary", 76 | icon_style="--fa-secondary-opacity: 1;") %} 77 |

Body text

78 | {% endcall %} 79 | 80 | #} 81 | {% macro highlight_item(icon, header, color="primary", icon_style=None) %} 82 |
83 |
84 | 86 | 87 |

88 | {{ header }} 89 |

90 | 91 | {{ caller() }} 92 | 93 |
94 |
95 | {% endmacro %} 96 | -------------------------------------------------------------------------------- /content/partials/technical.html: -------------------------------------------------------------------------------- 1 | {# 2 | Stylized code block 3 | 4 | :param title: Title for the code block, maybe a filename 5 | :param icon: Icon name for block title 6 | 7 | Example: 8 | 9 | {% call code_block(title=".readthedocs.yaml", icon="fa-file") %} 10 | {% markdown %} 11 | ```yaml 12 | build: 13 | commands: 14 | - true 15 | ``` 16 | {% endmarkdown %} 17 | {% endcall %} 18 | #} 19 | {% macro code_block(title, icon=None) %} 20 |
21 |
22 | {% if icon %} 23 | 24 | {% endif %} 25 | {{ title }} 26 |
27 | {{ caller() }} 28 |
29 | {% endmacro %} 30 | -------------------------------------------------------------------------------- /content/posts/customize-versions-urls.md: -------------------------------------------------------------------------------- 1 | title: Customize the URLs for your versions 2 | date: May 28, 2025 3 | description: Announcing the ability to customize the URLs your versions are served from. 4 | category: Feature announcement 5 | tags: hosting 6 | authors: Santos Gallegos 7 | status: published 8 | image: /images/update-version-slug.png 9 | 10 | Versions are a core part of Read the Docs. 11 | They let you host multiple versions of your documentation. 12 | Each version has its own unique URL identifier (slug), 13 | which is used to access its documentation (`https://docs.example.com/en/my-version/`). 14 | 15 | This identifier is automatically generated from your branch or tag name, 16 | but the resulting identifier may not always be what you want, 17 | or you may want to follow a different naming convention for your documentation. 18 | 19 | Now you can customize the URL identifier for each version of your documentation. 20 | Check [our documentation](https://docs.readthedocs.com/platform/stable/versions.html#version-url-identifier-slug) for more details and limitations. 21 | -------------------------------------------------------------------------------- /content/posts/deprecate-config-files-without-sphinx-or-mkdocs-config.md: -------------------------------------------------------------------------------- 1 | title: Deprecation of projects using Sphinx or MkDocs without an explicit configuration file 2 | date: December 16, 2024 3 | description: Announcing the deprecation of projects using Sphinx or MkDocs without an explicit configuration in their configuration file. 4 | category: Changelog 5 | tags: deprecation, configuration-file 6 | authors: Santos Gallegos 7 | status: published 8 | image: /images/deprecated-config-file-without-sphinx-or-mkdocs-config.jpg 9 | image_credit: Photo by Jernej Graj on Unsplash 10 | 11 | We are announcing the deprecation of projects using Sphinx or MkDocs without an explicit configuration in their `.readthedocs.yaml` configuration file. 12 | 13 | If you are using Sphinx or MkDocs in your project, 14 | and your `.readthedocs.yaml` configuration file doesn't contain a `sphinx.configuration` or `mkdocs.configuration` key, 15 | make sure to add it. For example, for a Sphinx project, your configuration file should look like this: 16 | 17 | ```yaml 18 | version: 2 19 | sphinx: 20 | # Path to your Sphinx configuration file. 21 | configuration: docs/conf.py 22 | ``` 23 | 24 | For a MkDocs project, your configuration file should look like this: 25 | 26 | ```yaml 27 | version: 2 28 | mkdocs: 29 | # Path to your MkDocs configuration file. 30 | configuration: mkdocs.yml 31 | ``` 32 | 33 | We used to automatically try to find the configuration file for your project, 34 | but in order to make builds more explicit and predictable, we are deprecating this behavior. 35 | This will also allows us to better support projects that don't use Sphinx or MkDocs in the near future. 36 | 37 | If you are using the `build.commands` feature, you don't need to make any changes, 38 | as the `sphinx` and `mkdocs` options are not required when using `build.commands`. 39 | 40 | Deprecation timeline 41 | -------------------- 42 | 43 | We will disallow building projects using Sphinx or MkDocs without an explicit Sphinx or MkDocs configuration in their configuration file on the following dates: 44 | 45 | - **Monday, January 6, 2025**: Temporarily disallow building projects for 12 hours, from 00:01 PST to 11:59 PST. 46 | - **Monday, January 13, 2025**:Temporarily disallow building projects for 24 hours, from 00:01 PST to 23:59 PST. 47 | - **Monday, January 20, 2025**: Permanently disallow building projects. 48 | -------------------------------------------------------------------------------- /content/posts/embed-api-v2-deprecated.md: -------------------------------------------------------------------------------- 1 | title: Deprecation and removal of embed API v2 2 | date: November 25, 2024 3 | description: Announcing the deprecation and removal of embed API v2. 4 | category: Changelog 5 | tags: api, deprecation 6 | authors: Santos Gallegos 7 | status: published 8 | image: /images/deprecated-embed-api-v2.jpg 9 | image_credit: Photo by Johannes Plenio on Unsplash 10 | 11 | We are announcing the deprecation and removal of embed API v2. 12 | Our old API has been replaced by [embed API v3](https://docs.readthedocs.io/en/stable/api/v3.html#embed), 13 | which offers the same features, and it works for all types of projects, not just Sphinx. 14 | 15 | If you are using our [sphinx-hoverxref](https://sphinx-hoverxref.readthedocs.io/en/stable/) extension, 16 | please update to the latest version to keep the extension working. 17 | 18 | Deprecation timeline 19 | -------------------- 20 | 21 | - **Monday, December 9, 2024**: Temporarily disable embed API v2 for all users for 12 hours, from 00:01 PST to 11:59 PST. 22 | - **Monday, January 13, 2025**: Temporarily disable embed API v2 for all users for 24 hours, from 00:01 PST to 23:59 PST. 23 | - **Monday, January 20, 2025**: Permanently remove embed API v2 permanently. 24 | -------------------------------------------------------------------------------- /content/posts/introducing-latest-aliases.md: -------------------------------------------------------------------------------- 1 | title: Introducing latest options for operating system and build tools 2 | date: 2024-02-15 3 | category: Changelog 4 | tags: configuration-file, config-file 5 | authors: Santos Gallegos 6 | status: published 7 | image: /images/introducing-latest-aliases.jpg 8 | image_credit: Photo by Ben Allan on Unsplash 9 | 10 | We generally recommend projects pin specific versions of their dependencies, 11 | so that builds are [reproducible](https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html) over time. 12 | However, some projects under active development prefer to use the latest versions available to take advantage of new features and improvements, 13 | without having to update the configuration file every time a new version is available. 14 | 15 | We are happy to announce support for using the latest available version for the 16 | [operating system](https://docs.readthedocs.io/en/stable/config-file/v2.html#build-os) 17 | and [build tools](https://docs.readthedocs.io/en/stable/config-file/v2.html#build-tools) configuration options. 18 | The following new option values are available: 19 | 20 | - `build.os`: `latest` 21 | - `build.tools.python`: `latest`, `miniconda-latest`, `mambaforge-latest` 22 | - `build.tools.nodejs`: `latest` 23 | - `build.tools.ruby`: `latest` 24 | - `build.tools.rust`: `latest` 25 | - `build.tools.golang`: `latest` 26 | 27 | When using these values, **the latest version available on Read the Docs will be used, 28 | which may not match the latest version officially released**. 29 | [Check our documentation](https://docs.readthedocs.io/en/stable/config-file/v2.html) for the list of versions available for each option. 30 | 31 | Versions for operating system and tools will be updated at least once every six months. 32 | **Keep in mind that your builds may break unexpectedly if your project isn't compatible with the newest versions when they are updated on Read the Docs.** 33 | We recommend using specific versions of dependencies for projects that require stability. 34 | -------------------------------------------------------------------------------- /content/posts/mkdocs-yaml-manipulation.md: -------------------------------------------------------------------------------- 1 | title: Build process change: removing changes to mkdocs.yml 2 | date: 2024-03-25 3 | category: Changelog 4 | tags: builders, deprecation, mkdocs, addons 5 | authors: Manuel Kaufmann 6 | status: published 7 | image: /images/mkdocs-yaml-manipulation.jpg 8 | image_credit: Photo by Ferenc Almasi on Unsplash 9 | 10 | 11 | We are announcing the deprecation of the `mkdocs.yml` manipulation done by Read the Docs at build time on **Monday, April 15th, 2024**. 12 | After this date, there will be some changes in build process behavior: 13 | 14 | * MkDocs default theme will be used if your documentation is not defining one on its `mkdocs.yml` file. 15 | If you want to continue using the `readthedocs` theme, read [Choosing your Theme](https://www.mkdocs.org/user-guide/choosing-your-theme/) MkDocs' documentation 16 | to learn how to explicity define it in the configuration file. 17 | * [The new beta Read the Docs Addons](https://blog.readthedocs.com/addons-flyout-menu-beta/) will be enabled by default. 18 | 19 | 20 | We've made this decision to simplify the build process executed on Read the Docs, 21 | allowing our users to get the same results when building their documentation locally and on our platform. 22 | This simplification allows more complex configuration in the YAML by using the special `!!` syntax 23 | [that wasn't previously supported due to security reasons](https://github.com/readthedocs/readthedocs.org/issues/8529). 24 | 25 | 26 | [Contact us](https://app.readthedocs.org/support/) if you have any questions, 27 | and let us know any inconvenient you may have with this change. 28 | -------------------------------------------------------------------------------- /content/posts/newsletter-april-2024.md: -------------------------------------------------------------------------------- 1 | title: Read the Docs Newsletter - April 2024 2 | date: April 9, 2024 3 | description: Company updates and new features from the last month, current focus, and upcoming features. 4 | category: Newsletter 5 | tags: newsletter, community 6 | authors: Eric Holscher 7 | status: published 8 | image: /images/apr-2024.jpg 9 | image_credit: Photo by Jake Weirick on Unsplash 10 | 11 | ## News and updates 12 | 13 | - We shipped our [2023 stats](https://about.readthedocs.com/blog/2024/03/read-the-docs-2023-stats/), which is a tradition we've been doing for over 10 years now. 14 | - Builds that are cancelled for some reason should now be [marked as cancelled](https://github.com/readthedocs/readthedocs.org/pull/11171) on build pages. 15 | - We continue to improve Addons support. We now have [customized version sorting](https://github.com/readthedocs/readthedocs.org/pull/11069), which is a long requested feature. 16 | - On the development side, we've fully adopted [Black code formatting](https://github.com/readthedocs/readthedocs.org/pull/11145) across our codebase. We've been using this for new files for a while, but we've finally rolled it out fully. 17 | - We also worked on a number of other small bug fixes and improvements across notifications, build logs, and other parts of the platform. 18 | 19 | You can always see the latest changes to our platforms in our [changelog 📃](https://docs.readthedocs.io/page/changelog.html). 20 | 21 | ## Upcoming changes 22 | 23 | - We're working on a large project to integrate SAML auth support, which would give us support for Okta and other SAML providers. This will be a great addition for our enterprise users. 24 | - With the public beta of our new dashboards, we are working on the final touches and hope to have it available for all users soon. 25 | - We are getting close to custom event support in Addons, which allows a number of custom integrations on top of the project's data. 26 | 27 | Want to follow along with our development progress? View our [development roadmap 📍️](https://github.com/orgs/readthedocs/projects/156/views/1) 28 | 29 | ## Possible issues 30 | 31 | - We are [removing automatic MkDocs customizations on April 15](https://about.readthedocs.com/blog/2024/03/mkdocs-yaml-manipulation/), so all MkDocs configurations should now be supported. 32 | - We have officially announced removal of support for VCS systems other than Git. [Read our blog post](https://about.readthedocs.com/blog/2024/02/drop-support-for-subversion-mercurial-bazaar/) for more information. 33 | - We have [defaulted traffic analytics off](https://github.com/readthedocs/readthedocs.org/pull/11056) for users of our new Addons. This default is to save on resources for projects that aren't looking at our analytics data. 34 | - Our [beta dashboard](https://beta.readthedocs.org/) continues to be tested in public beta, and new functionality for Addons configuration is only available in that new interface. 35 | 36 | ----- 37 | 38 | Questions? Comments? Ideas for the next newsletter? [Contact us](mailto:hello@readthedocs.org)! 39 | -------------------------------------------------------------------------------- /content/posts/newsletter-august-2024.md: -------------------------------------------------------------------------------- 1 | title: Read the Docs Newsletter - August 2024 2 | date: August 13, 2024 3 | description: Company updates and new features from the last month, current focus, and upcoming features. 4 | category: Newsletter 5 | tags: newsletter, community 6 | authors: Eric Holscher 7 | status: published 8 | image: /images/august-2024.jpg 9 | image_credit: Photo by Padre_moovi on Unsplash 10 | 11 | ## News and updates 12 | 13 | We posted two blog posts this month covering important things: 14 | 15 | * [AI crawlers need to be more respectful](https://about.readthedocs.com/blog/2024/07/ai-crawlers-abuse/) covers our struggle with AI crawlers using a lot of resources on our platform. 16 | * [Read the Docs Addons enabled by default](https://about.readthedocs.com/blog/2024/07/addons-by-default/) covers the rollout of Addons to all all our users on October 7, 2024. 17 | 18 | We also have some updates on our platform: 19 | 20 | * We have a couple new versions of our Sphinx theme coming out, 2.1.0rc1 that [supports Addons](https://github.com/readthedocs/sphinx_rtd_theme/pull/1573), as well as 3.0 to support [Sphinx 8](https://github.com/readthedocs/sphinx_rtd_theme/issues/1582). 21 | * We officially [removed support for Google Analytics](https://github.com/readthedocs/readthedocs.org/pull/11532), which we historically had used for global statistics, but are now able to get good enough stats from CloudFlare and our own Read the Docs analytics. 22 | * [API v3](https://docs.readthedocs.io/en/stable/api/v3.html) now supports unauthenticated requests for many endpoints, which should make it easier to integrate in documentation pages. 23 | * We have marked Addons and Build Customization as generally available, no longer having a Beta label, as we're now confident in their stability and usability. 24 | * Our docs are getting consistent updates to add Addons, and work to improve the way we're explaining our core features like Versioning and Builds. 25 | 26 | You can always see the latest changes to our platforms in our [changelog 📃](https://docs.readthedocs.io/page/changelog.html). 27 | 28 | ## Upcoming changes 29 | 30 | * We're working on a project to make it [easier to understand what files have changed between versions](https://github.com/readthedocs/readthedocs.org/issues/11319), which will allow us to build a number of neat features like Redirect recommendations, and Pull Request page review suggestions. 31 | * Adding Two Factor Auth (2FA) is also currently under design discussion, and we hope to release it in the next few months. 32 | * We are looking at adding functionality similar to our [sphinx-hoverxref extension](https://github.com/readthedocs/sphinx-hoverxref) to our new documentation system, which support popups for cross-references in a single documentation page. This will work for all documentation tools, not just Sphinx. 33 | * We are planning to move our official documentation to https://docs.readthedocs.com to make it more obviously official. This should be a seamless transition for users, but we will be updating links in our documentation and on our website to reflect this change. 34 | 35 | Want to follow along with our development progress? View our [development roadmap 📍️](https://github.com/orgs/readthedocs/projects/156/views/1) 36 | 37 | ## Possible issues 38 | 39 | - As we noted above, we are shipping Addons to all users on October 7, which also means that Sphinx users will be migrated to the new build system. This will have some backwards incompatibilities, so we recommend [reading our blog post](https://about.readthedocs.com/blog/2024/07/addons-by-default/) to understand the changes. 40 | 41 | ----- 42 | 43 | Questions? Comments? Ideas for the next newsletter? [Contact us](mailto:hello@readthedocs.org)! 44 | -------------------------------------------------------------------------------- /content/posts/newsletter-december-2024.md: -------------------------------------------------------------------------------- 1 | title: Read the Docs Newsletter - December 2024 2 | date: December 11, 2024 3 | description: Company updates and new features from the last month, current focus, and upcoming features. 4 | category: Newsletter 5 | tags: newsletter, community 6 | authors: Eric Holscher 7 | status: published 8 | image: /images/december-2024.jpg 9 | image_credit: Photo by Filip Bunkens on Unsplash 10 | 11 | ## News and updates 12 | 13 | * **Our new dashboard is now the default for all users.** This has been a long time coming, and we are excited to have have everyone migrated over. The old dashboard will be [removed on March 11](https://about.readthedocs.com/blog/2024/11/rollout-of-our-new-dashboard/). 14 | * **[Link Previews](https://docs.readthedocs.io/en/stable/link-previews.html)** are now available in Addons. This feature allows you to see a preview of the linked page when you hover over a link in your documentation. This is a re-implementation of our [Sphinx extension](https://sphinx-hoverxref.readthedocs.io/) that works for any documentation tool. 15 | * We're adding additional documentation examples for documentation tools that are supported on Read the Docs. This month we added [Docusarus](https://docs.readthedocs.io/en/stable/intro/docusaurus.html) and [Markdoc](https://docs.readthedocs.io/en/stable/intro/markdoc.html). 16 | * All of our ``build.tools`` were [updated to their latest versions](https://github.com/readthedocs/readthedocs.org/pull/11742). 17 | * We added support for [longer environment variables](https://github.com/readthedocs/readthedocs.org/pull/11748), which some users were running into limits on. 18 | 19 | You can always see the latest changes to our platforms in our [changelog 📃](https://docs.readthedocs.io/page/changelog.html). 20 | 21 | ## Upcoming changes 22 | 23 | * We are working to allow extending default ``build.jobs`` in the new build system. This will allow you to customize the build process more easily, with things like ``build.jobs.build.pdf`` being able to override the PDF build. This is now built, and we're testing it internally before documenting it publicly. 24 | * We are planning to move our official documentation to https://docs.readthedocs.com to make it more obviously official. This should be a seamless transition for users, but we will be updating links in our documentation and on our website to reflect this change. 25 | 26 | Want to follow along with our development progress? View our [development roadmap 📍️](https://github.com/orgs/readthedocs/projects/156/views/1) 27 | 28 | ## Possible issues 29 | 30 | * [Deprecation and removal of embed API v2](https://about.readthedocs.com/blog/2024/11/embed-api-v2-deprecated/). It will be removed on **January 20, 2025**. Please update your integrations to use the new Embed API v3. 31 | 32 | ----- 33 | 34 | Questions? Comments? Ideas for the next newsletter? [Contact us](mailto:hello@readthedocs.org)! 35 | -------------------------------------------------------------------------------- /content/posts/newsletter-february-2024.md: -------------------------------------------------------------------------------- 1 | title: Read the Docs Newsletter - February 2024 2 | date: Feb 1, 2024 3 | description: Company updates and new features from the last month, current focus, and upcoming features. 4 | category: Newsletter 5 | tags: newsletter, community 6 | authors: Eric Holscher 7 | status: published 8 | image: /images/feb-2024.jpg 9 | image_credit: Photo by Kevin Oetiker on Unsplash 10 | 11 | 12 | ## News and updates 13 | 14 | * Forced redirects are now available for all users, but redirects are limited based on plan types. This is an update from our previous newsletter that comes from our redirects refactor. 15 | * We moved our new blog posts to be published on our website, so going forward you can find it [directly on our website](https://about.readthedocs.org/blog/). 16 | * We shipped an update that allows [Sphinx builds to share environments](https://github.com/readthedocs/readthedocs.org/pull/11073). This should make builds of multiple formats faster. 17 | * We shipped a few different security fixes that were found by Santos Gallegos, a member of our team. You can read more about them in our [security advisories](https://github.com/readthedocs/readthedocs.org/security/advisories) 18 | * We shipped an [updated settings page for Addons](https://github.com/readthedocs/readthedocs.org/pull/11031) in our new beta dashboard. This allows enabling and disabling each addon. 19 | * We updated our `build.tools` versions to use the Node.js for latest LTS version (`v20.11.0`) and added support for Go 1.21 and Rust 1.75. 20 | 21 | You can always see the latest changes to our platforms in our [changelog 📃](https://docs.readthedocs.io/page/changelog.html). 22 | 23 | ## Upcoming changes 24 | 25 | - We continue to work on improving Addons. Our goal is to default all projects to using Addons in Q2 of 2024. We are working on improving the user experience, and adding more Addons to make the transition easier. 26 | - Our marketing website continues to get some updates. We are working on improving the user experience and making it easier to find the information you need. 27 | - Our Commercial beta dashboard is almost ready for public beta. We are working on the final touches and hope to have it available for all users soon. 28 | - We continue to work on improvements to our build system, [including support for "latest"](https://github.com/readthedocs/readthedocs.org/issues/8861) versions. 29 | 30 | Want to follow along with our development progress? View our [development roadmap 📍️](https://github.com/orgs/readthedocs/projects/156/views/1) 31 | 32 | ## Possible issues 33 | 34 | - If you are using an old version of our `readthedocs-sphinx-search` extension, you should upgrade it. You can read more in our [security notice](https://github.com/readthedocs/readthedocs-sphinx-search/security/advisories/GHSA-xgfm-fjx6-62mj). 35 | - We are investigating [removing support for VCS systems other than Git](https://github.com/readthedocs/readthedocs.org/issues/8840). We have sent an email to all users who are using other VCS systems for feedback as a first step. 36 | - We have [defaulted traffic analytics off](https://github.com/readthedocs/readthedocs.org/pull/11056) for users of our new Addons. This default is to save on resources for projects that aren't looking at our analytics data. 37 | - Our [beta dashboard](https://beta.readthedocs.org/) continues to be tested in public beta, and new functionality for Addons configuration is only be available in that new interface. 38 | 39 | ----- 40 | 41 | Questions? Comments? Ideas for the next newsletter? [Contact us](mailto:hello@readthedocs.org)! 42 | -------------------------------------------------------------------------------- /content/posts/newsletter-february-2025.md: -------------------------------------------------------------------------------- 1 | title: Read the Docs Newsletter - February 2025 2 | date: February 11, 2025 3 | description: Company updates and new features from the last month, current focus, and upcoming features. 4 | category: Newsletter 5 | tags: newsletter, community 6 | authors: Eric Holscher 7 | status: published 8 | image: /images/feb-2025.jpg 9 | image_credit: Photo by Banff Sunshine Village on Unsplash 10 | 11 | Just a quick note at the top, we have [scheduled database maintenance on February 14, 2025](https://about.readthedocs.com/blog/2025/02/postgres-maint-feb-14/). There may be brief periods of downtime during this maintenance window, but read the post for full details. 12 | 13 | ## News and updates 14 | 15 | * We migrated our official documentation to `docs.readthedocs.com`, with the primary user documentation at . 16 | * We are working to improve the process of changing the slug of a Version. This will make it easier to change the URL of a version without creating a new version. This is currently being tested in production and will be available soon. 17 | * We [added support for changing the flyout position in Addons](https://docs.readthedocs.com/platform/stable/flyout-menu.html#position), which allows you to control where the flyout appears on your documentation site. 18 | * Our [Visual diff](https://docs.readthedocs.io/en/stable/visual-diff.html) feature is getting closer to being widely released. This includes a user-facing UX for seeing what files changed in a PR build, and a way to see the visual diff. 19 | * We [documented Addons customization patterns](https://docs.readthedocs.com/platform/stable/addons.html#addons-data-and-customization) to help you understand how to customize Addons for your project. 20 | 21 | ## Upcoming changes 22 | 23 | * We are working to implement a GitHub Application, which will allow us to provide better integration with GitHub. This enables granular permissions, organization webhooks, and other long-standing feature requests. 24 | * We continue focus on polishing the UX around Addons, trying to make it easier to use and understand how to customize them. 25 | 26 | 27 | ## Possible issues 28 | 29 | * We continue to fight battles with spammers, and now we are getting some phishing attempts happening on the platform. As a result, we have had to increase the strictness of our spam checking. If you see any issues with new projects getting marked as spam, [please let us know](https://docs.readthedocs.com/platform/stable/support.html). 30 | * Our old dashboard will be [removed on March 11](https://about.readthedocs.com/blog/2024/11/rollout-of-our-new-dashboard/). If you haven't already, please switch to the new dashboard. 31 | * [Deprecation of projects using Sphinx or MkDocs without an explicit configuration file](https://about.readthedocs.com/blog/2024/12/deprecate-config-files-without-sphinx-or-mkdocs-config/). This was fully removed on **January 20, 2025**. 32 | 33 | ----- 34 | 35 | Questions? Comments? Ideas for the next newsletter? [Contact us](mailto:hello@readthedocs.org)! 36 | -------------------------------------------------------------------------------- /content/posts/newsletter-january-2024.rst: -------------------------------------------------------------------------------- 1 | :title: Read the Docs Newsletter - January 2024 2 | :date: Jan 10, 2024 3 | :tags: newsletter, python 4 | :category: Newsletter 5 | :author: Eric 6 | :image: /images/jan-2024.jpg 7 | :image_credit: Photo by Glen Carrie on Unsplash 8 | 9 | 10 | Read the Docs newsletter - January 2024 11 | ======================================== 12 | 13 | News and updates 14 | ---------------- 15 | 16 | * We have shipped `new redirects `_, making our redirects much more powerful and flexible. 17 | * We have shipped an `updated approach to notifications `_. Currently there isn't much UX difference, but as we move forward with this project we will be able to provide more context and control to users. 18 | * We continue to work on improving Addons, our new approach to documentation integrations. New documentation and bug fixing continues to happen. 19 | * We shipped version 2.0 of our `Read the Docs Sphinx Theme `_, which adds support for new Sphinx releases and drops support for many old versions of Sphinx and Python. 20 | 21 | You can always see the latest changes to our platforms in our `Read the Docs Changelog `_. 22 | 23 | Upcoming changes 24 | ---------------- 25 | 26 | * Addons will be made more configurable in our new beta dashboard, starting a trend of moving away from the old dashboard for new features. 27 | * Our `beta dashboard `_ continues to be tested in public beta, and new functionality for Addons configuration will only be available in that new interface. 28 | * We continue to work on some business model changes enabled by the new redirects work, including allowing access to Forced Redirects for more users. 29 | 30 | Want to follow along with our development progress? `View our full roadmap 📍️`_ 31 | 32 | .. _View our full roadmap 📍️: https://github.com/orgs/readthedocs/projects/156/views/1 33 | 34 | Possible issues 35 | --------------- 36 | 37 | * Users need to `update their webhooks `_ before **January 31, 2024** if they are configured without a secret. All users who need to take action should have received email and site notifications about this. 38 | * We are discussing removing support for all VCS systems except Git, as our userbase is heavily biased towards Git users and it will simplify maintenance and development of features. We stopped developing features for Mercurial, Subversion, and Bazaar years ago, and we are considering removing support for them entirely. We will be reaching out to these users to get feedback on this change. 39 | 40 | ------- 41 | 42 | Questions? Comments? Ideas for the next newsletter? `Contact us`_! 43 | 44 | .. Keeping this here for now, in case we need to link to ourselves :) 45 | 46 | .. _Contact us: mailto:hello@readthedocs.org 47 | -------------------------------------------------------------------------------- /content/posts/newsletter-january-2025.md: -------------------------------------------------------------------------------- 1 | title: Read the Docs Newsletter - January 2025 2 | date: January 8, 2025 3 | description: Company updates and new features from the last month, current focus, and upcoming features. 4 | category: Newsletter 5 | tags: newsletter, community 6 | authors: Eric Holscher 7 | status: published 8 | image: /images/jan-2025.jpg 9 | image_credit: Photo by Kelly Sikkema on Unsplash 10 | 11 | December was a slow month for us, as we took some time off to rest and recharge. 12 | We're back in full force now, and we're excited to share what we've been working on and what's coming up next. 13 | 14 | ## News and updates 15 | 16 | * We improved our support for [manual created latest and stable versions](https://github.com/readthedocs/readthedocs.org/pull/11823). 17 | * We updated our community builders to a newer instance type, which should improve build times for many projects. We're testing this out and will be rolling it out to Business users soon. 18 | * We're adding additional documentation examples for [popular documentation tools](https://docs.readthedocs.io/en/stable/intro/doctools.html) that are supported on Read the Docs. This month we added [Docusarus](https://docs.readthedocs.io/en/stable/intro/docusaurus.html), [Markdoc](https://docs.readthedocs.io/en/stable/intro/markdoc.html), and [mdBook](https://docs.readthedocs.io/en/stable/intro/mdbook.html). 19 | * We added [documentation for authentication](https://docs.readthedocs.io/en/stable/intro/accounts.html) on the platform, which was previously missing. 20 | * **Our new dashboard is now the default for all users.** This has been a long time coming, and we are excited to have have everyone migrated over. The old dashboard will be [removed on March 11](https://about.readthedocs.com/blog/2024/11/rollout-of-our-new-dashboard/). 21 | 22 | ## Upcoming changes 23 | 24 | * We continue working on [Addons](https://docs.readthedocs.io/en/stable/addons.html), including improving our [Visual diff](https://docs.readthedocs.io/en/stable/visual-diff.html) feature. 25 | * We are working to allow extending default ``build.jobs`` in the new build system. This will allow you to customize the build process more easily, with things like ``build.jobs.build.pdf`` being able to override the PDF build. This is now built, and we're testing it internally before documenting it publicly. 26 | * We are planning to move our official documentation to https://docs.readthedocs.com to make it more obviously official. This should be a seamless transition for users, but we will be updating links in our documentation and on our website to reflect this change. 27 | 28 | ## Possible issues 29 | 30 | * [Deprecation of projects using Sphinx or MkDocs without an explicit configuration file](https://about.readthedocs.com/blog/2024/12/deprecate-config-files-without-sphinx-or-mkdocs-config/). This will be fully removed on **January 20, 2025**. The deprecation includes two temporary disabling periods on January 6 and 13. 31 | 32 | ----- 33 | 34 | Questions? Comments? Ideas for the next newsletter? [Contact us](mailto:hello@readthedocs.org)! 35 | -------------------------------------------------------------------------------- /content/posts/newsletter-july-2024.md: -------------------------------------------------------------------------------- 1 | title: Read the Docs Newsletter - July 2024 2 | date: July 9, 2024 3 | description: Company updates and new features from the last month, current focus, and upcoming features. 4 | category: Newsletter 5 | tags: newsletter, community 6 | authors: Eric Holscher 7 | status: published 8 | image: /images/july-2024.jpg 9 | image_credit: Photo by Diana Yohannes on Unsplash 10 | 11 | We missed a couple of newsletter updates because of travel and other commitments, so we're back with a combined update for the last couple months. 12 | 13 | ## News and updates 14 | 15 | * **New dashboard**: We are close to fully launching our new dashboard, and it's now living at and . The last pieces are swapping over our documentation hosting ("proxito") to the new system, and then we'll update the links on our website to point here, and officially deprecate the old dashboard. 16 | * **SAML SSO**: We continue to work on SAML support, with an initial implementation available for testing. We are planning updates to our login pages to support this new authentication method, which is the last major step before we can release this feature. 17 | * **Addons**: Addons are now fully rolled out to everyone except users of our Sphinx builds. Migration for all Sphinx projects is coming soon, and there will be some backwards incompatibles around the build process. 18 | * **Build process**: Our support for fully custom builds with ``build.commands`` is no longer in beta, and it generally available. We also support ``ubuntu-22.04`` as a ``build.image``, and this will be the ``latest`` image after more testing. 19 | 20 | You can always see the latest changes to our platforms in our [changelog 📃](https://docs.readthedocs.io/page/changelog.html). 21 | 22 | ## Upcoming changes 23 | 24 | * We are working on CSP configuration for our new dashboard, which will help improve security for our users. 25 | * Documentation for Addons is continuing, with a focus on how to use the new system and how to migrate from the old system. 26 | * We are looking at adding functionality similar to our [sphinx-hoverxref extension](https://github.com/readthedocs/sphinx-hoverxref) to our new documentation system, which support popups for cross-references in a single documentation page. This will work for all documentation tools, not just Sphinx. 27 | * We are planning to move our official documentation to https://docs.readthedocs.com to make it more obviously official. This should be a seamless transition for users, but we will be updating links in our documentation and on our website to reflect this change. 28 | 29 | Want to follow along with our development progress? View our [development roadmap 📍️](https://github.com/orgs/readthedocs/projects/156/views/1) 30 | 31 | ## Possible issues 32 | 33 | - Our deprecation of injected Sphinx context is happening soon. A blog post will be coming up with that information. 34 | - We [deprecated all VCS tools except for Git]() in June. We haven't heard much feedback here, but that post has pretty solid workarounds for most users. 35 | 36 | ----- 37 | 38 | Questions? Comments? Ideas for the next newsletter? [Contact us](mailto:hello@readthedocs.org)! 39 | -------------------------------------------------------------------------------- /content/posts/newsletter-march-2022.rst: -------------------------------------------------------------------------------- 1 | Read the Docs newsletter - March 2022 2 | ###################################### 3 | 4 | :date: Mar 10, 2022 5 | :category: News 6 | :tags: newsletter, python, homepage 7 | :authors: Eric Holscher 8 | :description: Company updates and new features from the last month, current focus, and upcoming features. 9 | :status: draft 10 | :image: 11 | :image_credit: 12 | 13 | It's been pretty quiet on the company front in February, 14 | with nothing much to report. 15 | **We're actively working on our latest job description, 16 | which will be a product-focused Python development position.** 17 | If you're interested, please `let us know`_. 18 | 19 | .. _let us know: mailto:hello@readthedocs.org?subject=Job%20Posting 20 | 21 | New features 22 | ------------ 23 | 24 | In February we continued to work on refactors and internal changes. 25 | Among the major user-facing changes: 26 | 27 | - **We now have the CDN on Read the Docs for Business in beta**, with a couple accounts testing it. If you're interested, please `contact us`_. 28 | - You can now `cancel builds `_ via a button in the dashboard. This will save resources, and allow you to ensure that you don't hit concurrency limits if you trigger a few builds at once. 29 | - Projects that are imported via the API are now required to have a VCS repository linked to them, if your organization has `VCS SSO `_ turned on, so that users will be able to access it. 30 | 31 | You can always see the latest changes to our platforms in our `Read the Docs 32 | Changelog _`. 33 | 34 | Upcoming features 35 | ----------------- 36 | 37 | - **We're working on pre and post-build steps**, and hope to have those released in the next week or two. This is a long-requested feature that we're really excited to be able to share with folks. 38 | - We're getting much closer on our landing page update. They are being served from a super secret URL, and will be made our official front page before long... 39 | - We continue to work on tracking 404 pages in our project analytics, 40 | so that projects can easily fix up missing or outdated page links. 41 | - We have `made process on support `_ for multiple projects in a single git repo. 42 | 43 | Possible issues 44 | --------------- 45 | 46 | * We are still watching Sphinx upgrades for possible issues they might cause around the ecosystem. 47 | * We are also tracking the upcoming `/github-git-protocol-deprecation _` to ensure that it will have minimal impact for our users. 48 | 49 | ---- 50 | 51 | Considering using Read the Docs for your next Sphinx or MkDocs project? 52 | Check out `our documentation `_ to get started! 53 | 54 | .. Keeping this here for now, in case we need to link to ourselves :) 55 | 56 | .. _contact us: mailto:hello@readthedocs.org 57 | .. _Ana: https://github.com/nienn 58 | .. _Anthony: https://github.com/agjohnson 59 | .. _Eric: https://github.com/ericholscher 60 | .. _Juan Luis: https://github.com/astrojuanlu 61 | .. _Manuel: https://github.com/humitos 62 | .. _Santos: https://github.com/stsewd 63 | -------------------------------------------------------------------------------- /content/posts/newsletter-march-2024.md: -------------------------------------------------------------------------------- 1 | title: Read the Docs Newsletter - March 2024 2 | date: March 13, 2024 3 | description: Company updates and new features from the last month, current focus, and upcoming features. 4 | category: Newsletter 5 | tags: newsletter, community 6 | authors: Eric Holscher 7 | status: published 8 | image: /images/mar-2024.jpg 9 | image_credit: Photo by Ekaterina Novitskaya on Unsplash 10 | 11 | ## News and updates 12 | 13 | - We added [support for "latest"](https://about.readthedocs.com/blog/2024/02/introducing-latest-aliases/) in all of the build tools, allowing you to always be up to date. 14 | - We added [support for Ruby as a build tool](https://about.readthedocs.com/blog/2024/03/read-the-docs-loves-ruby/), based on feedback from our community. 15 | - We shipped our first official links to our new beta dashboards in our application, linking users to our [much improved build detail page](https://beta.readthedocs.org/projects/test-builds/builds/23655124/). This means both of our beta dashboards are officially in public beta! 16 | - We made [Sphinx builds share their environment between builds](https://github.com/readthedocs/readthedocs.org/pull/11073), which should make builds of multiple formats faster. 17 | - We made some initial structure changes in [our user documentation](https://docs.readthedocs.io/en/stable/), to make it easier to navigate and find the information you need. More changes will be coming here as we onboard a contractor to help with this work. 18 | - Our new Addons flyout was updated to [keep the page when changing versions or languages](https://github.com/readthedocs/addons/pull/242). 19 | - We continue to simplify our settings pages. This month we [combined our Advanced Settings and Settings pages](https://github.com/readthedocs/readthedocs.org/pull/11169). 20 | 21 | You can always see the latest changes to our platforms in our [changelog 📃](https://docs.readthedocs.io/page/changelog.html). 22 | 23 | ## Upcoming changes 24 | 25 | - We continue to work on improving Addons. The next step here is to [ship Addons on Mkdocs projects](https://github.com/readthedocs/readthedocs.org/pull/11206) by default, removing our build process overrides. 26 | - Our marketing website continues to get some updates. We are working on improving the user experience and making it easier to find the information you need. 27 | - With the public beta of our new dashboard, we are working on the final touches and hope to have it available for all users soon. 28 | - We continue to investigate Okta SSO and improve our support for Google SSO. 29 | 30 | Want to follow along with our development progress? View our [development roadmap 📍️](https://github.com/orgs/readthedocs/projects/156/views/1) 31 | 32 | ## Possible issues 33 | 34 | - We have officially announced removal of support for VCS systems other than Git. [Read our blog post](https://about.readthedocs.com/blog/2024/02/drop-support-for-subversion-mercurial-bazaar/) for more information. 35 | - We have [defaulted traffic analytics off](https://github.com/readthedocs/readthedocs.org/pull/11056) for users of our new Addons. This default is to save on resources for projects that aren't looking at our analytics data. 36 | - Our [beta dashboard](https://beta.readthedocs.org/) continues to be tested in public beta, and new functionality for Addons configuration is only be available in that new interface. 37 | 38 | ----- 39 | 40 | Questions? Comments? Ideas for the next newsletter? [Contact us](mailto:hello@readthedocs.org)! 41 | -------------------------------------------------------------------------------- /content/posts/newsletter-november-2024.md: -------------------------------------------------------------------------------- 1 | title: Read the Docs Newsletter - November 2024 2 | date: November 11, 2024 3 | description: Company updates and new features from the last month, current focus, and upcoming features. 4 | category: Newsletter 5 | tags: newsletter, community 6 | authors: Eric Holscher 7 | status: published 8 | image: /images/november-2024.jpg 9 | image_credit: Photo by Doyo Hermann on Unsplash 10 | 11 | 12 | ## News and updates 13 | 14 | * The new **Community dashboard** at https://app.readthedocs.org will be made the default dashboard on November 12. We are still beta testing the Business dashboard, as it effects documentation authentication and requires a bit more testing. We expect to make the Business dashboard the default soon. 15 | * We've added **multi-factor authentication (MFA)** to our platform, and it's now fully released. Give it a try to add an extra layer of security to your account. 16 | * We have added **Python 3.13** as a build option, along with `updating other build tools `_. 17 | * **Addons** continues to get iterative improvements, including allowing more granular configuration of `documentation notifications `_, and fixing bugs in the injection logic for large images. 18 | * Our **file tree diff** feature is now in testing, and will be rolled out into Addons in the near future. This will allow you to see what files have changed between versions of your documentation. 19 | * Similarly, **link previews** when you hover a link is now in testing for Addons, and will be released soon. This will allow you to see a preview of the linked page when you hover over a link in your documentation. 20 | 21 | You can always see the latest changes to our platforms in our [changelog 📃](https://docs.readthedocs.io/page/changelog.html). 22 | 23 | ## Upcoming changes 24 | 25 | * We are working to allow extending default ``build.jobs`` in the new build system. This will allow you to customize the build process more easily, with things like ``build.jobs.build.pdf`` being able to override the PDF build. 26 | * We are planning to move our official documentation to https://docs.readthedocs.com to make it more obviously official. This should be a seamless transition for users, but we will be updating links in our documentation and on our website to reflect this change. 27 | 28 | Want to follow along with our development progress? View our [development roadmap 📍️](https://github.com/orgs/readthedocs/projects/156/views/1) 29 | 30 | ## Possible issues 31 | 32 | We don't have any known issues at the moment. If you are experiencing any problems, please let us know. 33 | 34 | ----- 35 | 36 | Questions? Comments? Ideas for the next newsletter? [Contact us](mailto:hello@readthedocs.org)! 37 | -------------------------------------------------------------------------------- /content/posts/newsletter-september-2024.md: -------------------------------------------------------------------------------- 1 | title: Read the Docs Newsletter - September 2024 2 | date: September 10, 2024 3 | description: Company updates and new features from the last month, current focus, and upcoming features. 4 | category: Newsletter 5 | tags: newsletter, community 6 | authors: Eric Holscher 7 | status: published 8 | image: /images/september-2024.jpg 9 | image_credit: Photo by Les routes sans fin(s) on Unsplash 10 | 11 | ## News and updates 12 | 13 | We posted one other blog post this month: 14 | 15 | * [10 years of sustainable open source](https://about.readthedocs.com/blog/2024/08/10-year-anniversary/), celebrating our 10 year anniversary and reflecting on the sustainability of open source projects. 16 | 17 | We also have some updates on our platform: 18 | 19 | * SAML SSO is now available for public beta testing on Read the Docs Business. If you are interested, reach out to support to get started. 20 | * We continue to improve the UX of importing projects, and now check to see if you have a `.readthedocs.yml` file in your repository, and suggest a starting point if not. 21 | * We've added Multi-Factor Authentication (MFA) to our platform, which is currently in beta testing. It will be fully rolled out in the next month or two as we work a couple kinks out. 22 | * Our [API v3](https://docs.readthedocs.io/en/stable/api/v3.html) now supports anonymous requests for many endpoints, which should make it easier to integrate in documentation pages, and other use cases. 23 | 24 | You can always see the latest changes to our platforms in our [changelog 📃](https://docs.readthedocs.io/page/changelog.html). 25 | 26 | ## Upcoming changes 27 | 28 | * We're working on a project to make it [easier to understand what files have changed between versions](https://github.com/readthedocs/readthedocs.org/issues/11319), which will allow us to build a number of neat features like redirect recommendations, and pull request page review suggestions. 29 | * We are looking at adding functionality similar to our [sphinx-hoverxref extension](https://github.com/readthedocs/sphinx-hoverxref) to Addons, which support popups for cross-references in a single documentation page. This will work for all documentation tools, not just Sphinx. 30 | * We are planning to move our official documentation to https://docs.readthedocs.com to make it more obviously official. This should be a seamless transition for users, but we will be updating links in our documentation and on our website to reflect this change. 31 | 32 | Want to follow along with our development progress? View our [development roadmap 📍️](https://github.com/orgs/readthedocs/projects/156/views/1) 33 | 34 | ## Possible issues 35 | 36 | - **We are shipping Addons to all users by default on October 7**, which also means that Sphinx users will be migrated to the new build system. This will have some backwards incompatibilities, so we recommend [reading our blog post](https://about.readthedocs.com/blog/2024/07/addons-by-default/) to understand the changes. 37 | 38 | ----- 39 | 40 | Questions? Comments? Ideas for the next newsletter? [Contact us](mailto:hello@readthedocs.org)! 41 | -------------------------------------------------------------------------------- /content/posts/override-build-process-with-build-jobs.md: -------------------------------------------------------------------------------- 1 | title: You can now partially or completely override the build process 2 | date: January 20, 2025 3 | description: Announcing support for partially or completely override build steps using the `build.jobs` configuration. 4 | category: Feature announcement 5 | tags: configuration-file 6 | authors: Santos Gallegos 7 | status: published 8 | image: /images/override-build-steps-with-build-jobs.jpg 9 | image_credit: Photo by Ryan Quintal on Unsplash 10 | 11 | We are excited to announce that you can now partially or completely override build steps using the [`build.jobs`](https://docs.readthedocs.io/en/stable/config-file/v2.html#build-jobs) configuration in your `.readthedocs.yaml` configuration file. 12 | This allows you to customize the build process to suit your project's specific requirements. 13 | Find more details and examples in our [documentation](https://docs.readthedocs.io/en/stable/build-customization.html). 14 | 15 | Previously, you could only extend the build process by using any of the `pre_` and `post_` build jobs, 16 | we have now extended this functionality to allow you to override the build process completely. 17 | The following build steps are available for you to override: 18 | 19 | - `create_environment` 20 | - `install` 21 | - `build.html` 22 | - `build.pdf` 23 | - `build.epub` 24 | - `build.htmlzip` 25 | 26 | If you are using Sphinx or MkDocs, but you want to have more control over how a specific step is executed, you can override only that step. 27 | For example, to use the normal build process for HTML and EPUB when building a Sphinx project, 28 | but use [rinohtype](https://www.mos6581.org/rinohtype/master/intro.html#sphinx-builder) for PDF output, you can use the following configuration: 29 | 30 | ```yaml 31 | version: 2 32 | 33 | formats: 34 | - pdf 35 | - epub 36 | 37 | sphinx: 38 | configuration: docs/conf.py 39 | 40 | python: 41 | install: 42 | - requirements: docs/requirements.txt 43 | 44 | build: 45 | os: ubuntu-24.04 46 | tools: 47 | python: "3.13" 48 | jobs: 49 | build: 50 | pdf: 51 | - sphinx-build -b rinoh docs _build/pdf/ 52 | - mkdir --parents $READTHEDOCS_OUTPUT/pdf/ 53 | - mv _build/pdf/*.pdf $READTHEDOCS_OUTPUT/pdf/ 54 | ``` 55 | 56 | If you are using another tool, or you want complete control over the build process, 57 | you can use a similar configuration without specifying a `sphinx` or `mkdocs` configuration to have full control over the build process. 58 | For example, to build using [Markdoc](https://markdoc.dev/) you can use the following configuration: 59 | 60 | ```yaml 61 | version: 2 62 | 63 | build: 64 | os: ubuntu-24.04 65 | tools: 66 | nodejs: "22" 67 | jobs: 68 | install: 69 | - cd docs/ && npm install 70 | build: 71 | html: 72 | - cd docs/ && npm run build 73 | - mkdir --parents $READTHEDOCS_OUTPUT/html/ 74 | - cp --recursive docs/out/* $READTHEDOCS_OUTPUT/html/ 75 | ``` 76 | 77 | You can check [our docs](https://docs.readthedocs.io/en/stable/intro/markdoc.html) for a working example. 78 | 79 | We recommend using [`build.jobs`](https://docs.readthedocs.io/en/stable/config-file/v2.html#build-jobs) over [`build.commands`](https://docs.readthedocs.io/en/stable/config-file/v2.html#build-commands), 80 | as it offers the same functionality as `build.commands`, but in a more structured way that allows you to define different commands for each format, 81 | while also supporting installing system dependencies via `build.apt_packages`. 82 | -------------------------------------------------------------------------------- /content/posts/postgres-maint-feb-14.md: -------------------------------------------------------------------------------- 1 | title: Read the Docs Maintenance Window - February 14 2 | date: 2025-02-04 3 | description: Upcoming upgrade for PostgreSQL to ensure minimal impact for our users. 4 | category: Engineering 5 | tags: aws, rds, postgres, upgrade 6 | authors: Eric Holscher 7 | status: published 8 | image: /images/aws-rds-upgrade.png 9 | image_credit: Photo by Scott Rodgerson on Unsplash 10 | 11 | **Note**: As of 3PM PST, this is now complete. 12 | 13 | We wanted to make you aware that on **Friday, February 14 at 2:00pm PST (5:00pm EST, 22:00 UTC)**, Read the Docs will be having a scheduled downtime of approximately 2 hours. 14 | This will impact both **Read the Docs Community** and **Read the Docs for Business**. 15 | We expect the downtime to only last for 15-30 minutes, but we are scheduling a longer window to account for any unforeseen issues. 16 | 17 | During this maintenance window, public documentation will continue to be online but new documentation builds will not trigger and the Read the Docs dashboard will be unavailable. 18 | New builds and webhooks will begin processing once the maintenance is over. 19 | 20 | To ensure minimal impact for our users, we are performing this upgrade during a Friday afternoon which is one of our lowest usage periods. 21 | This maintenance window is for a required database version upgrade to PostgreSQL from our hosting provider, which we couldn’t perform in place. 22 | While these kinds of things do happen from time to time, we haven’t had a scheduled downtime on Read the Docs in a few years. Doing this helps us ensure that our services perform well and have up-to-date security. 23 | 24 | Thanks for your understanding of this maintenance downtime. 25 | 26 | Read the Docs team 27 | -------------------------------------------------------------------------------- /content/posts/read-the-docs-loves-ruby.md: -------------------------------------------------------------------------------- 1 | title: Read the Docs ❤️ Ruby 2 | date: 2024-03-05 3 | category: Feature announcement 4 | tags: builders, tools 5 | authors: Manuel Kaufmann 6 | status: published 7 | image: /images/read-the-docs-loves-ruby.jpg 8 | image_credit: Photo by Jason D on Unsplash 9 | 10 | 11 | We are happy to announce that **support for Ruby is now available** as an option for our pre-defined building tools ([`build.tools`](https://docs.readthedocs.io/en/stable/config-file/v2.html#build-tools)). 12 | Projects requiring Ruby to build their documentation are officially supported on Read the Docs 🎉 13 | 14 | ## Demo project using Jekyll 15 | 16 | As an example of a project using Ruby, [see a demo of the default Jekyll blog](https://test-builds.readthedocs.io/en/jekyll/) built and hosted on Read the Docs. 17 | The following code is the `.readthedocs.yaml` configuration file used to build it: 18 | 19 | 20 | ```yaml 21 | version: 2 22 | 23 | build: 24 | os: ubuntu-22.04 25 | tools: 26 | ruby: "3.3" 27 | commands: 28 | - gem install bundler 29 | - bundle install 30 | - jekyll build --destination $READTHEDOCS_OUTPUT/html 31 | ``` 32 | 33 | As you can see, it's pretty simple to use Read the Docs with Ruby 34 | and install dependencies with `gem` and `bundle` following the community standard patterns. 35 | 36 | 37 | ## More documentation tools supported 38 | 39 | With the support for Ruby, a new door is opened for projects requiring documentation tools that weren't supported on Read the Docs before, 40 | like [Jekyll](https://jekyllrb.com/), [Asciidoctor](https://asciidoctor.org/), [yard](https://yardoc.org/), [rdoc](https://ruby.github.io/rdoc/), and many others. 41 | 42 | 43 | ## Try it out and give us feedback 44 | 45 | We encourage you to give Read the Docs a try if you are using any of these documentation tools, 46 | and take advantage of the extra features we provide to empower your documentation workflow, 47 | like [pull request previews](https://docs.readthedocs.io/en/stable/pull-requests.html) and [Git-based versioning](https://docs.readthedocs.io/en/stable/versions.html). 48 | 49 | Please [let us know](mailto:support@readthedocs.com) how your experience is with any of these Ruby documentation tools, and how we might improve our support. 50 | -------------------------------------------------------------------------------- /content/posts/readme-html-deprecated.md: -------------------------------------------------------------------------------- 1 | title: Deprecation: Removal of redirect for index documentation URL to "README.html" 2 | date: 2024-05-27 3 | category: Changelog 4 | tags: hosting, deprecation 5 | authors: Manuel Kaufmann 6 | status: published 7 | image: /images/readme-html-deprecated.jpg 8 | image_credit: Photo by Erik Mclean on Unsplash 9 | 10 | We are announcing the **deprecation of redirecting index URLs (ending in `/`) to `/README.html`** 11 | for all the projects that don't output an `index.html` file when building the documentation. 12 | The deprecation date is set on **Monday, July 1st, 2024**. 13 | After this date, projects not outputting an `index.html` file will [fail their builds](https://blog.readthedocs.com/builds-without-index/). 14 | 15 | ### Deprecation timeline 16 | 17 | We understand this change will affect a few hundred of projects, so we have a timeline to communicate this deprecation to our users effectively. 18 | 19 | * **Tuesday, May 28, 2024**: Email project owners using this deprecated feature so they can take action. 20 | * **Monday, June 10, 2024**: Do the first brownout (temporarily enforce this deprecation) for 12 hours: 00:01 PST to 11:59 PST (noon) 21 | * **Monday, June 17, 2024**: Do a second brownout (temporarily enforce this deprecation) for 24 hours: 00:01 PST to 23:59 PST (midnight) 22 | * **Monday, June 24, 2024**: Do a third and final brownout (temporarily enforce this deprecation) for 48 hours: 00:01 PST to 23:59 PST (midnight) 23 | * **Monday, July 1, 2024**: Fully remove of redirecting index URLs to `/README/html` 24 | 25 | We strongly recommend to update your projects before July 1st, 2024 to avoid any downtime. 26 | 27 | ### How to update your project 28 | 29 | There are different approaches that can be followed depending on the configuration of your project. 30 | 31 | 1. Migrate your Sphinx documentation to use `master_doc = "index"` instead of `master_doc = "README"`. 32 | This can be done by re-structuring your documentation or by creating a symlink from of `index.rst -> README.rst`. 33 | 2. Rename the `README.html` as `index.html` once the build has finished using [`build.jobs.post_build`](https://docs.readthedocs.io/en/stable/config-file/v2.html#build-jobs) 34 | 35 | Note these are only two possible ideas, but there may be other ways to achieve the same goal. 36 | 37 | > _**Tip**: you can create a redirect from `/README.html` to `/` to keep links pointing to the deprecated URL working._ 38 | 39 | [Contact us](https://app.readthedocs.org/support/) if you have any questions, 40 | and let us know any inconvenient you may have with this change. 41 | -------------------------------------------------------------------------------- /content/posts/two-factor-authentication.md: -------------------------------------------------------------------------------- 1 | title: Two-factor authentication is here! 2 | date: November 21, 2024 3 | description: We're excited to announce that two-factor authentication is now available for all Read the Docs users. 4 | category: Feature announcement 5 | tags: authentication, security 6 | authors: Santos Gallegos 7 | status: published 8 | image: /images/2fa.jpg 9 | image_credit: Photo by Christian Wiediger on Unsplash 10 | 11 | We're excited to announce that two-factor authentication (2FA) is now available for all Read the Docs users! 12 | 13 | Two-factor authentication adds an extra layer of security to your account by requiring a 6-digit code in addition to your password when you log in. 14 | This helps protect your account from unauthorized access, even if your password is compromised. 15 | You can use an authenticator app like Google Authenticator or Authy to generate the codes. 16 | 17 | You can enable two-factor authentication from our new dashboard at (or for Read the Docs for Business users), 18 | or by following the steps from [our documentation](https://docs.readthedocs.io/en/stable/guides/management/2fa.html). 19 | 20 | We'd like to give a special thanks to the [django-allauth](https://allauth.org/) project for providing the foundation for our authentication system, 21 | and making it easy for us to add two-factor authentication to Read the Docs. 22 | -------------------------------------------------------------------------------- /content/posts/ubuntu-24-04.md: -------------------------------------------------------------------------------- 1 | title: Ubuntu 24.04 LTS available 2 | date: 2024-06-21 3 | description: The latest Ubuntu 24.04 LTS version is available to build documentation projects on Read the Docs. 4 | category: Changelog 5 | tags: builders, docker, images 6 | authors: Manuel Kaufmann 7 | status: published 8 | image: /images/ubuntu-24-04.jpg 9 | image_credit: Photo by Gabriel Heinzer on Unsplash 10 | 11 | We are happy to announce that we added support for the latest Ubuntu 24.04 LTS version released in April 2024. 12 | This new image is available to build documentation projects by using the YAML config `build.os: "ubuntu-24.04"`. 13 | 14 | We plan to update the `build.os: "latest"` alias after some weeks of testing this image. 15 | 16 | [Let us know](https://docs.readthedocs.io/en/stable/support.html) any feedback you may have about this new Ubuntu 24.04 LTS image, 17 | or if your documentation project has special needs that are not covered by Ubuntu images. 18 | -------------------------------------------------------------------------------- /content/posts/website-migration.rst: -------------------------------------------------------------------------------- 1 | Read the Docs website migration 2 | =============================== 3 | 4 | :date: Mar 9, 2023 5 | :category: Engineering 6 | :tags: website, migration 7 | :authors: Eric Holscher 8 | :description: Read the Docs has a new home for website and content pages that were previously part of our application. 9 | :status: published 10 | :image: /images/posts/screenshot-new-website.png 11 | :image_credit: 12 | 13 | Read the Docs is in the process of migrating our primary marketing website to a single site: https://about.readthedocs.com. 14 | The new site offers users more information about our products and their features, 15 | in a combined presentation of what was previously divided between two websites (Read the Docs Community and Read the Docs for Business). 16 | At the same time, the new site will also serve as a single entrypoint for users that are logging in to Read the Docs accounts. 17 | There has been a good deal of confusion around our two sites, 18 | and this change makes it more clear which site you're going to. 19 | 20 | Importantly, 21 | **we are keeping both our Community and Business sites separate for logged in users.** 22 | There are no changes in our commitment to offering free hosting for open source, 23 | or the separation of infrastructure for Business customers. 24 | 25 | Marketing website migration process 26 | ----------------------------------- 27 | 28 | The process that we're taking to migrate our marketing site is as follows: 29 | 30 | #. ✅ The initial work here was creating a proper marketing site, 31 | and deploying it to https://about.readthedocs.com. 32 | This was done in January 2023. 33 | #. ✅ Redirecting *logged out* Business (``readthedocs.com``) users to the new site. 34 | This was done in February 2023, and we've been monitoring the impact of this change. 35 | #. ✅ Redirect *logged out* Community (``readthedocs.org``) users to the new site. 36 | This was done in August 2023, to make sure the experience is smooth for users who are used to our application web pages. 37 | 38 | We're excited about our new website, 39 | because historically we have done a poor job of explaining our products. 40 | Being able to have a single site that explains the features of our various sites, 41 | and the value that Read the Docs brings to the documentation ecosystem is exciting for us. 42 | 43 | Technical details 44 | ----------------- 45 | 46 | Historically, 47 | our marketing pages were generated from our Django application, 48 | and updated only when we deployed a new version of the site. 49 | With our new approach, 50 | our marketing site is actually hosted by Read the Docs itself. 51 | 52 | Self-hosting our marketing website gives us many benefits that our users love about hosting their docs with us: 53 | 54 | * A proper static site generator built for making a website and blog. 55 | * Pull request previews to allow us to review content changes. 56 | * Instant deployment of updates whenever we merge to ``main``. 57 | * All the rest of our features that we offer to our users. 58 | 59 | We're using our new build customization features to build our site with `Pelican `__, 60 | and it's been a really fun way to expand the capabilities of our build system. 61 | 62 | We hope that you'll join us for the next stage of Read the Docs, 63 | where we will continue to provide the best documentation hosting for all software projects. 64 | -------------------------------------------------------------------------------- /dist/js/site.js: -------------------------------------------------------------------------------- 1 | !function(n){function t(t){for(var o,i,f=t[0],c=t[1],l=t[2],a=0,s=[];a 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |

This is an example header

10 | 11 | And big text 12 |
13 | This is a test that would use the Webpack dev server to serve the 14 | development assets. You can also reference the files relatively, but 15 | will lose live reloading. 16 |
17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /examples/mockups/images/callout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/mockups/images/callout.png -------------------------------------------------------------------------------- /examples/mockups/images/continuous-documentation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/mockups/images/continuous-documentation.jpg -------------------------------------------------------------------------------- /examples/mockups/images/infographic-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/mockups/images/infographic-01.png -------------------------------------------------------------------------------- /examples/mockups/images/infographic-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/mockups/images/infographic-02.png -------------------------------------------------------------------------------- /examples/mockups/images/infographic-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/mockups/images/infographic-03.png -------------------------------------------------------------------------------- /examples/mockups/images/infographic-inverted-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/mockups/images/infographic-inverted-01.png -------------------------------------------------------------------------------- /examples/mockups/images/infographic-inverted-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/mockups/images/infographic-inverted-02.png -------------------------------------------------------------------------------- /examples/mockups/images/infographic-inverted-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/mockups/images/infographic-inverted-03.png -------------------------------------------------------------------------------- /examples/mockups/images/logo-light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 29 | 30 | -------------------------------------------------------------------------------- /examples/mockups/images/shutterstock-concept-of-user-manual-1315141181-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/mockups/images/shutterstock-concept-of-user-manual-1315141181-2.jpg -------------------------------------------------------------------------------- /examples/mockups/images/team/ana.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/mockups/images/team/ana.jfif -------------------------------------------------------------------------------- /examples/mockups/images/team/anthony.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/mockups/images/team/anthony.jfif -------------------------------------------------------------------------------- /examples/mockups/images/team/default-avatar.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 10 | 12 | 13 | 14 | 16 | 18 | 20 | 22 | 24 | 27 | 31 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /examples/mockups/images/team/eric.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/mockups/images/team/eric.jfif -------------------------------------------------------------------------------- /examples/mockups/images/team/juanlu.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/mockups/images/team/juanlu.jfif -------------------------------------------------------------------------------- /examples/mockups/images/team/manuel.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/mockups/images/team/manuel.jfif -------------------------------------------------------------------------------- /examples/mockups/images/team/santos.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/mockups/images/team/santos.jfif -------------------------------------------------------------------------------- /examples/mockups/images/tiny-people-with-guide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/mockups/images/tiny-people-with-guide.png -------------------------------------------------------------------------------- /examples/theme/images/avatar/nan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/theme/images/avatar/nan.jpg -------------------------------------------------------------------------------- /examples/theme/images/avatar/tom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/theme/images/avatar/tom.jpg -------------------------------------------------------------------------------- /examples/theme/images/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/theme/images/bg.jpg -------------------------------------------------------------------------------- /examples/theme/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/theme/images/logo.png -------------------------------------------------------------------------------- /examples/theme/images/wireframe/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/theme/images/wireframe/image.png -------------------------------------------------------------------------------- /examples/theme/images/wireframe/paragraph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/theme/images/wireframe/paragraph.png -------------------------------------------------------------------------------- /examples/theme/images/wireframe/square-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/examples/theme/images/wireframe/square-image.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "website", 3 | "version": "1.0.0", 4 | "description": "Read the Docs website", 5 | "main": "src/js/site.js", 6 | "scripts": { 7 | "clean": "npm run clean-assets && npm run clean-html", 8 | "clean-assets": "rm -rfv readthedocs_theme/static/{css,js}; exit 0", 9 | "clean-html": "rm -rfv output/*; exit 0", 10 | "build": "npm run build-assets && npm run build-html", 11 | "build-assets": "npm run clean-assets && webpack --mode=production --progress --colors", 12 | "build-html": "npm run clean-html && uv run pelican content", 13 | "dev": "webpack-dev-server --mode=development", 14 | "livereload": "npm run dev", 15 | "lint": "prettier --check 'src/**' '*.js' '*.json'", 16 | "format": "prettier --write 'src/**' '*.js' '*.json'", 17 | "validate": "npm run build-html && html-validate --formatter codeframe output/", 18 | "test": "jest --silent false src/js/tests/", 19 | "checks": "npm run lint && npm run test && npm run validate" 20 | }, 21 | "repository": { 22 | "type": "git", 23 | "url": "git+https://github.com/readthedocs/website.git" 24 | }, 25 | "author": "Read the Docs, Inc", 26 | "license": "MIT", 27 | "bugs": { 28 | "url": "https://github.com/readthedocs/website/issues" 29 | }, 30 | "homepage": "https://github.com/readthedocs/website#readme", 31 | "engines": { 32 | "node": "<15.0.0", 33 | "npm": "<7.0.0" 34 | }, 35 | "dependencies": { 36 | "prettier": "^2.5.0" 37 | }, 38 | "devDependencies": { 39 | "@babel/core": "^7.16.0", 40 | "@babel/plugin-transform-modules-commonjs": "^7.16.0", 41 | "@babel/preset-env": "^7.16.0", 42 | "@readthedocs/sui-common-theme": "git+https://github.com/readthedocs/sui-common-theme.git#cc51322", 43 | "babel-loader": "^8.1.0", 44 | "create-fomantic-icons": "^1.0.4", 45 | "css-loader": "^3.1.0", 46 | "file-loader": "^3.0.1", 47 | "fomantic-ui-less": "^2.8.8", 48 | "html-validate": "^7.1.2", 49 | "imports-loader": "^0.8.0", 50 | "jest": "^26.4.2", 51 | "jquery": "^3.4.1", 52 | "jquery-address": "^1.6.0", 53 | "lato-font": "^3.0.0", 54 | "less": "git+https://github.com/agjohnson/less.js#64179a24", 55 | "less-loader": "^4.1.0", 56 | "matchdep": "~1.0.1", 57 | "mini-css-extract-plugin": "^0.6.0", 58 | "nodemon-webpack-plugin": "^4.7.0", 59 | "optimize-css-assets-webpack-plugin": "^5.0.3", 60 | "plausible-tracker": "^0.3.8", 61 | "resolve-url-loader": "^2.2.1", 62 | "sanitize-html": "^1.23.0", 63 | "style-loader": "^0.23.1", 64 | "url-loader": "^0.6.2", 65 | "webpack": "^4.43.0", 66 | "webpack-cli": "^3.3.10", 67 | "webpack-dev-server": "^3.10.3", 68 | "webpack-merge": "^4.2.1", 69 | "webpack-shell-plugin": "^0.5.0", 70 | "webpack-watch-files-plugin": "^1.0.3" 71 | }, 72 | "babel": { 73 | "env": { 74 | "test": { 75 | "plugins": [ 76 | "@babel/plugin-transform-modules-commonjs" 77 | ] 78 | } 79 | } 80 | }, 81 | "jest": { 82 | "globals": { 83 | "__webpack_public_path__": null 84 | } 85 | }, 86 | "prettier": { 87 | "overrides": [ 88 | { 89 | "files": [ 90 | "src/**/*.overrides", 91 | "src/**/*.variables", 92 | "src/sui/theme.config" 93 | ], 94 | "options": { 95 | "parser": "less" 96 | } 97 | } 98 | ] 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /pelicanconf.py: -------------------------------------------------------------------------------- 1 | """Read the Docs website Pelican configuration.""" 2 | 3 | import os 4 | 5 | AUTHOR = 'Read the Docs, Inc' 6 | SITENAME = 'Read the Docs' 7 | 8 | # Use relavitve URLs for local development only. 9 | if not os.environ.get("READTHEDOCS"): 10 | RELATIVE_URLS = True 11 | 12 | # Use the correct domain for the site URL (canonical or PR preview), 13 | # this setting is needed to make the RSS/Atom feeds generate correctly 14 | # https://docs.readthedocs.io/en/stable/reference/environment-variables.html. 15 | SITEURL = os.environ.get("READTHEDOCS_CANONICAL_URL", "") 16 | 17 | TIMEZONE = 'US/Pacific' 18 | DEFAULT_LANG = 'en' 19 | DEFAULT_DATE_FORMAT = '%b %-d, %Y' 20 | 21 | THEME = 'readthedocs_theme' 22 | SUMMARY_MAX_LENGTH = 20 # Words 23 | 24 | # Add non-default markdown extensions 25 | MARKDOWN = { 26 | 'extension_configs': { 27 | 'markdown.extensions.codehilite': {'css_class': 'highlight'}, 28 | 'markdown.extensions.extra': {}, 29 | 'markdown.extensions.meta': {}, 30 | # This adds id's to each header, up to second header depth 31 | 'markdown.extensions.toc': {'toc_depth': '2'}, 32 | }, 33 | 'output_format': 'html5', 34 | } 35 | 36 | JINJA_ENVIRONMENT = { 37 | "trim_blocks": True, 38 | "lstrip_blocks": True, 39 | "extensions": [ 40 | 'jinja_markdown.MarkdownExtension' 41 | ] 42 | } 43 | 44 | PLUGINS = ['related_posts', 'jinja2content', 'readthedocs_theme.plugins.html_directive'] 45 | 46 | # Feed (RSS/Atom) settings 47 | FEED_DOMAIN = SITEURL 48 | FEED_ATOM = "feeds/atom.xml" 49 | FEED_MAX_ITEMS = 1 50 | FEED_RSS = None # No rss 51 | FEED_ALL_ATOM = None # No translation 52 | TRANSLATION_FEED_ATOM = None # No translation 53 | AUTHOR_FEED_ATOM = None # No per author feed 54 | AUTHOR_FEED_RSS = None 55 | 56 | # Menu settings 57 | DISPLAY_PAGES_ON_MENU = False 58 | DISPLAY_CATEGORIES_ON_MENU = False 59 | MENUITEMS = [ 60 | ('Blog', '/blog/'), 61 | ] 62 | MENUITEMS_CTA = [] 63 | 64 | # Path settings 65 | PATH = 'content' 66 | PAGE_PATHS = ['pages'] 67 | ARTICLE_PATHS = ['posts'] 68 | STATIC_PATHS = ['images'] 69 | 70 | # URL settings 71 | SLUGIFY_SOURCE = "basename" 72 | PAGE_URL = '{slug}/' 73 | PAGE_SAVE_AS = '{slug}/index.html' 74 | ARTICLE_URL = 'blog/{date:%Y}/{date:%m}/{slug}/' 75 | ARTICLE_SAVE_AS = 'blog/{date:%Y}/{date:%m}/{slug}/index.html' 76 | INDEX_SAVE_AS = 'blog/index.html' 77 | # URLs to skip, we don't use these templates yet, and probably don't need them. 78 | AUTHOR_URL = AUTHOR_SAVE_AS = '' 79 | CATEGORY_URL = CATEGORY_SAVE_AS = 'blog/category/{slug}.html' 80 | TAG_URL = TAG_SAVE_AS = 'blog/tag/{slug}.html' 81 | ARCHIVES_SAVE_AS = '' 82 | AUTHORS_SAVE_AS = '' 83 | CATEGORIES_SAVE_AS = '' 84 | TAGS_SAVE_AS = '' 85 | 86 | # Blogroll 87 | LINKS = () 88 | 89 | # Social widget 90 | SOCIAL = () 91 | 92 | # Posts settings 93 | DEFAULT_PAGINATION = 8 94 | RELATED_POSTS_MAX = 3 95 | -------------------------------------------------------------------------------- /prospector.yml: -------------------------------------------------------------------------------- 1 | common/prospector.yml -------------------------------------------------------------------------------- /publishconf.py: -------------------------------------------------------------------------------- 1 | """ 2 | Read the Docs website Pelican configuration for publishing. 3 | """ 4 | 5 | import os 6 | import sys 7 | 8 | # Trick isort using a code block to avoid resorting this incorrectly. 9 | sys.path.append(os.curdir) 10 | from pelicanconf import * # noqa: F401,F403 11 | 12 | SITEURL = 'https://about.readthedocs.com' 13 | RELATIVE_URLS = False 14 | 15 | # Generate from scratch when building for production 16 | DELETE_OUTPUT_DIRECTORY = True 17 | 18 | # Feed settings 19 | FEED_ALL_ATOM = 'feeds/all.atom.xml' 20 | CATEGORY_FEED_ATOM = 'feeds/{slug}.atom.xml' 21 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "website" 3 | version = "1.0.0" 4 | description = "Read the Docs website" 5 | authors = [ 6 | { name = "Read the Docs, Inc" } 7 | ] 8 | requires-python = ">=3.10" 9 | dependencies = [ 10 | "Jinja2 ~=3.0.3", 11 | "pelican ==4.5.0", 12 | "Markdown ==3.2", 13 | "pelican-related-posts ==1.0.0", 14 | "pre-commit ==2.16.0", 15 | "pelican-jinja2content >=1.0.1", 16 | "jinja-markdown >=1.210911" 17 | ] 18 | 19 | [build-system] 20 | requires = ["setuptools", "wheel"] 21 | build-backend = "setuptools.build_meta" 22 | -------------------------------------------------------------------------------- /readthedocs_theme/plugins/html_directive.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | """ 4 | HTML tags for reStructuredText 5 | ============================== 6 | 7 | This plugin allows you to use HTML tags from within reST documents. 8 | 9 | This module isn't on PyPI, so it got forked from: 10 | 11 | https://github.com/getpelican/pelican-plugins/blob/master/html_rst_directive/html_rst_directive.py 12 | """ 13 | 14 | from __future__ import unicode_literals 15 | from docutils import nodes 16 | from docutils.parsers.rst import directives, Directive 17 | 18 | 19 | class RawHtml(Directive): 20 | required_arguments = 0 21 | optional_arguments = 0 22 | final_argument_whitespace = True 23 | has_content = True 24 | 25 | def run(self): 26 | html = ' '.join(self.content) 27 | node = nodes.raw('', html, format='html') 28 | return [node] 29 | 30 | 31 | 32 | def register(): 33 | directives.register_directive('html', RawHtml) 34 | -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-black-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-black-italic.woff -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-black-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-black-italic.woff2 -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-black.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-black.woff -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-black.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-black.woff2 -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-bold-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-bold-italic.woff -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-bold-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-bold-italic.woff2 -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-bold.woff -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-bold.woff2 -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-hairline-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-hairline-italic.woff -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-hairline-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-hairline-italic.woff2 -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-hairline.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-hairline.woff -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-hairline.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-hairline.woff2 -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-heavy-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-heavy-italic.woff -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-heavy-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-heavy-italic.woff2 -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-heavy.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-heavy.woff -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-heavy.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-heavy.woff2 -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-light-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-light-italic.woff -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-light-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-light-italic.woff2 -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-light.woff -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-light.woff2 -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-medium-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-medium-italic.woff -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-medium-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-medium-italic.woff2 -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-medium.woff -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-medium.woff2 -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-normal-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-normal-italic.woff -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-normal-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-normal-italic.woff2 -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-normal.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-normal.woff -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-normal.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-normal.woff2 -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-semibold-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-semibold-italic.woff -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-semibold-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-semibold-italic.woff2 -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-semibold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-semibold.woff -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-semibold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-semibold.woff2 -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-thin-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-thin-italic.woff -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-thin-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-thin-italic.woff2 -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-thin.woff -------------------------------------------------------------------------------- /readthedocs_theme/static/css/fonts/lato-thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/css/fonts/lato-thin.woff2 -------------------------------------------------------------------------------- /readthedocs_theme/static/img/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/apple-touch-icon.png -------------------------------------------------------------------------------- /readthedocs_theme/static/img/contributors/Abhi-khandelwal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/contributors/Abhi-khandelwal.jpg -------------------------------------------------------------------------------- /readthedocs_theme/static/img/contributors/Blackcipher101.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/contributors/Blackcipher101.jpg -------------------------------------------------------------------------------- /readthedocs_theme/static/img/contributors/Blendify.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/contributors/Blendify.jpg -------------------------------------------------------------------------------- /readthedocs_theme/static/img/contributors/cocobennett.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/contributors/cocobennett.jpg -------------------------------------------------------------------------------- /readthedocs_theme/static/img/contributors/dojutsu-user.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/contributors/dojutsu-user.jpg -------------------------------------------------------------------------------- /readthedocs_theme/static/img/contributors/jessetan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/contributors/jessetan.jpg -------------------------------------------------------------------------------- /readthedocs_theme/static/img/contributors/saadmk11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/contributors/saadmk11.jpg -------------------------------------------------------------------------------- /readthedocs_theme/static/img/contributors/safwanrahman.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/contributors/safwanrahman.jpg -------------------------------------------------------------------------------- /readthedocs_theme/static/img/contributors/tapaswenipathak.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/contributors/tapaswenipathak.jpg -------------------------------------------------------------------------------- /readthedocs_theme/static/img/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/favicon-16x16.png -------------------------------------------------------------------------------- /readthedocs_theme/static/img/favicon-24x24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/favicon-24x24.png -------------------------------------------------------------------------------- /readthedocs_theme/static/img/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/favicon-32x32.png -------------------------------------------------------------------------------- /readthedocs_theme/static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/favicon.ico -------------------------------------------------------------------------------- /readthedocs_theme/static/img/infographic-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/infographic-01.png -------------------------------------------------------------------------------- /readthedocs_theme/static/img/infographic-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/infographic-02.png -------------------------------------------------------------------------------- /readthedocs_theme/static/img/infographic-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/infographic-03.png -------------------------------------------------------------------------------- /readthedocs_theme/static/img/sponsors/aws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/sponsors/aws.png -------------------------------------------------------------------------------- /readthedocs_theme/static/img/sponsors/azure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/sponsors/azure.png -------------------------------------------------------------------------------- /readthedocs_theme/static/img/sponsors/cloudflare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/sponsors/cloudflare.png -------------------------------------------------------------------------------- /readthedocs_theme/static/img/sponsors/elastic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/sponsors/elastic.png -------------------------------------------------------------------------------- /readthedocs_theme/static/img/sponsors/newrelic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/sponsors/newrelic.png -------------------------------------------------------------------------------- /readthedocs_theme/static/img/sponsors/pagerduty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/sponsors/pagerduty.png -------------------------------------------------------------------------------- /readthedocs_theme/static/img/sponsors/sentry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/sponsors/sentry.png -------------------------------------------------------------------------------- /readthedocs_theme/static/img/team/ana.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/team/ana.jfif -------------------------------------------------------------------------------- /readthedocs_theme/static/img/team/anthony.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/team/anthony.jfif -------------------------------------------------------------------------------- /readthedocs_theme/static/img/team/benjamin.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/team/benjamin.jpeg -------------------------------------------------------------------------------- /readthedocs_theme/static/img/team/eric.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/team/eric.jfif -------------------------------------------------------------------------------- /readthedocs_theme/static/img/team/juanlu.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/team/juanlu.jfif -------------------------------------------------------------------------------- /readthedocs_theme/static/img/team/manuel.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/team/manuel.jfif -------------------------------------------------------------------------------- /readthedocs_theme/static/img/team/santos.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/readthedocs/website/9e937fe357804ab55266c181b717d93495dbd2a1/readthedocs_theme/static/img/team/santos.jfif -------------------------------------------------------------------------------- /readthedocs_theme/templates/article.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block html_lang %}{{ article.lang }}{% endblock %} 3 | 4 | {% block title %}{{ article.title|striptags }} - {{ SITENAME }}{% endblock %} 5 | 6 | {% block content %} 7 |
8 |
9 | 10 | 21 | 22 |
23 | {{ article.title }} 24 |
25 | 26 | 53 | 54 |
55 | 56 | {{ article.image_credit|striptags }} 57 | {% if article.image and article.image_credit %} 58 |
59 |

{{ article.image_credit}}

60 |
61 | {% endif %} 62 | 63 |
64 | {{ article.content }} 65 |
66 | 67 | 72 | 73 |
74 |
75 | {% endblock content %} 76 | -------------------------------------------------------------------------------- /readthedocs_theme/templates/category.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | 3 | {% block title%} Category: {{ category }} - Read the Docs {% endblock %} 4 | 5 | {% block content_breadcrumbs %} 6 | 13 | {% endblock content_breadcrumbs %} 14 | 15 | {% block content_title %} 16 |
17 | Blog posts filed under: {{ category }} 18 |
19 | {% endblock %} 20 | -------------------------------------------------------------------------------- /readthedocs_theme/templates/docutils_page.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block html_lang %}{{ page.lang }}{% endblock %} 4 | 5 | {% block title %}{% if page.title %}{{ page.title|striptags }} - {% endif %}{{ SITENAME }}{%endblock%} 6 | 7 | {% block content %} 8 |
9 | {{ page.content }} 10 |
11 | {% endblock content %} 12 | -------------------------------------------------------------------------------- /readthedocs_theme/templates/error.html: -------------------------------------------------------------------------------- 1 | {% extends "page.html" %} 2 | 3 | {% macro page_icon(icon, icon_style="--fa-secondary-opacity: .5;", size="big") %} 4 | 6 | {% endmacro %} 7 | 8 | {% block content %} 9 |
10 |
11 |
12 |
13 |
14 | {{ page_icon(page.icon, page.icon_style) }} 15 |
16 |
17 | {{ page_icon(page.icon, page.icon_style) }} 18 |
19 |
20 |

21 | {{ page.title }} 22 | {% if page.subtitle %} 23 | 24 | {{ page.subtitle }} 25 | 26 | {% endif %} 27 |

28 | 29 | {{ page.content }} 30 | 31 |
32 |
33 |
34 |
35 |
36 | {% endblock content %} 37 | -------------------------------------------------------------------------------- /readthedocs_theme/templates/includes/opengraph.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {%- set og_object = article|default(page)|default(None) %} 4 | {%- set og_title = og_object.title|default("Read the Docs", true)|striptags|escape %} 5 | {%- set og_description = og_object.description|default("")|striptags|escape %} 6 | {%- set og_image = og_object.image|default("/images/logo-opengraph.png") %} 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | {% for tag in og_object.tags %} 17 | 18 | {% endfor %} 19 | {% for author in og_object.authors %} 20 | 21 | {% endfor %} 22 | {% if og_object.date %} 23 | 24 | {% endif %} 25 | -------------------------------------------------------------------------------- /readthedocs_theme/templates/includes/pagination.html: -------------------------------------------------------------------------------- 1 | {% if DEFAULT_PAGINATION %} 2 | 3 |
4 | {% if articles_page.has_previous() %} 5 | 6 | 7 | Newer posts 8 | 9 | {% endif %} 10 | {% if articles_page.has_next() %} 11 | 12 | 13 | Older posts 14 | 15 | {% endif %} 16 |
17 | 18 | {% endif %} 19 | -------------------------------------------------------------------------------- /readthedocs_theme/templates/page.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block html_lang %}{{ page.lang }}{% endblock %} 4 | 5 | {% block title %}{% if page.title %}{{ page.title|striptags }} - {% endif %}{{ SITENAME }}{%endblock%} 6 | 7 | {% block content %} 8 | {{ page.content }} 9 | {% endblock content %} 10 | -------------------------------------------------------------------------------- /readthedocs_theme/templates/tag.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | 3 | {% block title%} Tag: {{ tag }} - Read the Docs {% endblock %} 4 | 5 | {% block content_breadcrumbs %} 6 | 13 | {% endblock content_breadcrumbs %} 14 | 15 | {% block content_title %} 16 |
17 | Blog posts tagged: {{ tag }} 18 |
19 | {% endblock %} 20 | -------------------------------------------------------------------------------- /src/js/tests/site.test.js: -------------------------------------------------------------------------------- 1 | import { jquery } from "../site"; 2 | 3 | test("jQuery plugins installed", () => { 4 | expect(jquery).toBeDefined(); 5 | expect(jquery.fn).toHaveProperty("ajaxStart"); 6 | expect(jquery.fn).toHaveProperty("dropdown"); 7 | expect(jquery.fn.dropdown).toBeInstanceOf(Function); 8 | expect(jquery.fn).not.toHaveProperty("nopers"); 9 | }); 10 | -------------------------------------------------------------------------------- /src/sui/theme.config: -------------------------------------------------------------------------------- 1 | // Global 2 | @site: "rtd-site"; 3 | @reset: "rtd-site"; 4 | 5 | // Elements 6 | @button: "rtd-site"; 7 | @container: "rtd-site"; 8 | @divider: "rtd-site"; 9 | @emoji: "rtd-site"; 10 | @flag: "rtd-site"; 11 | @header: "rtd-site"; 12 | @icon: "rtd-site"; 13 | @image: "rtd-site"; 14 | @input: "rtd-site"; 15 | @label: "rtd-site"; 16 | @list: "rtd-site"; 17 | @loader: "rtd-site"; 18 | @placeholder: "rtd-site"; 19 | @rail: "rtd-site"; 20 | @reveal: "rtd-site"; 21 | @segment: "rtd-site"; 22 | @step: "rtd-site"; 23 | @text: "rtd-site"; 24 | 25 | // Collections 26 | @breadcrumb: "rtd-site"; 27 | @form: "rtd-site"; 28 | @grid: "rtd-site"; 29 | @menu: "rtd-site"; 30 | @message: "rtd-site"; 31 | @table: "rtd-site"; 32 | 33 | // Modules 34 | @accordion: "rtd-site"; 35 | @calendar: "rtd-site"; 36 | @checkbox: "rtd-site"; 37 | @dimmer: "rtd-site"; 38 | @dropdown: "rtd-site"; 39 | @embed: "rtd-site"; 40 | @modal: "rtd-site"; 41 | @nag: "rtd-site"; 42 | @popup: "rtd-site"; 43 | @progress: "rtd-site"; 44 | @slider: "rtd-site"; 45 | @rating: "rtd-site"; 46 | @search: "rtd-site"; 47 | @shape: "rtd-site"; 48 | @sidebar: "rtd-site"; 49 | @sticky: "rtd-site"; 50 | @tab: "rtd-site"; 51 | @toast: "rtd-site"; 52 | @transition: "rtd-site"; 53 | 54 | // Views 55 | @ad: "rtd-site"; 56 | @card: "rtd-site"; 57 | @comment: "rtd-site"; 58 | @feed: "rtd-site"; 59 | @item: "rtd-site"; 60 | @statistic: "rtd-site"; 61 | 62 | // Path to theme packages 63 | @themesFolder: "~fomantic-ui-less/themes"; 64 | 65 | // Path to site override folder, relative to the package path in node_modules. 66 | // This path actually shouldn't be used at all, and instead the individual theme 67 | // paths should be used. 68 | @siteFolder: "../../src/sui/site"; 69 | 70 | // Import theme 71 | @import (multiple) "theme.less"; 72 | -------------------------------------------------------------------------------- /src/sui/theme.less: -------------------------------------------------------------------------------- 1 | // SUI theme.less 2 | // ============== 3 | // 4 | // This file is similar to the base theme.less, but changes the loading order to 5 | // include a separate themes path. We use this to include multiple theme paths 6 | // in our SUI theme sources. 7 | 8 | @theme: @@element; 9 | 10 | // Variable load order 11 | // ------------------- 12 | // 13 | // This load order is altered slightly, as the default theme.less assumes the 14 | // only themes available are the prepacked themes. This load order is used for 15 | // global variables and for per-component variables. 16 | // 17 | // Variables are loaded in the following order: 18 | // 19 | // default theme 20 | // Inherit the global variable definitions from the ``default`` theme first. 21 | // This is the same as the default experience 22 | // 23 | // Our common theme 24 | // The shared based theme is tried next. These variables and rules represent 25 | // shared variables and overrides between our properties. 26 | // 27 | // Our theme globals 28 | // Next, we try an optional load of theme global variables for our themes. 29 | // The default experience is to load ``@site`` globals second, but we aren't 30 | // using ``@site`` variables in the same way. See the default ``theme.less`` 31 | // for a better idea of what is happening here. 32 | // 33 | // Site globals 34 | // This is still the same as the default load order, but we won't be using 35 | // this. Our overrides and variables will come from our themes instead. 36 | 37 | @import "@{themesFolder}/default/globals/site.variables"; 38 | @import (optional) "~@readthedocs/sui-common-theme/globals/site.variables"; 39 | @import (optional) "themes/@{theme}/globals/site.variables"; 40 | @import (optional) "@{siteFolder}/globals/site.variables"; 41 | 42 | @import "@{themesFolder}/default/@{type}s/@{element}.variables"; 43 | @import (optional) 44 | "~@readthedocs/sui-common-theme/@{type}s/@{element}.variables"; 45 | @import (optional) "themes/@{theme}/@{type}s/@{element}.variables"; 46 | @import (optional) "@{siteFolder}/@{type}s/@{element}.variables"; 47 | 48 | // Color map 49 | @import "@{themesFolder}/default/globals/colors.less"; 50 | @import (optional) "~@readthedocs/sui-common-theme/globals/colors.less"; 51 | @import (optional) "themes/@{theme}/globals/colors.less"; 52 | 53 | // Mixins 54 | // ------ 55 | // 56 | // Again, the altered theme path is used here, otherwise these mixins are the 57 | // same as the default theme.less. 58 | 59 | .loadFonts() when (@importGoogleFonts) { 60 | @import (css) 61 | url("@{googleProtocol}fonts.googleapis.com/css2?family=@{googleFontRequest}"); 62 | } 63 | 64 | .loadUIOverrides() { 65 | // Skip the default theme icon overrides file, because this conflicts with 66 | // using Font Awesome directly, and establishes a lot of class definitions 67 | // we'll never use. This requires setting up Font Awesome manually however. 68 | & when not (@element = "icon") { 69 | @import (optional) "@{themesFolder}/default/@{type}s/@{element}.overrides"; 70 | } 71 | @import (optional) 72 | "~@readthedocs/sui-common-theme/@{type}s/@{element}.overrides"; 73 | @import (optional) "themes/@{theme}/@{type}s/@{element}.overrides"; 74 | @import (optional) "@{siteFolder}/@{type}s/@{element}.overrides"; 75 | } 76 | -------------------------------------------------------------------------------- /src/sui/themes/rtd-site/elements/button.overrides: -------------------------------------------------------------------------------- 1 | .ui.stackable.button { 2 | margin-bottom: 0.75em; 3 | } 4 | 5 | .ui.basic.buttons form > .button { 6 | &:last-child { 7 | border-top-right-radius: 0rem; 8 | border-bottom-right-radius: 0rem; 9 | } 10 | 11 | &:hover { 12 | box-shadow: none; 13 | } 14 | 15 | border-left: 0rem; 16 | } 17 | -------------------------------------------------------------------------------- /src/sui/themes/rtd-site/elements/header.overrides: -------------------------------------------------------------------------------- 1 | /* Header after a divider header */ 2 | .ui.header.divider + .ui.header { 3 | margin-top: e(%("calc(-1rem + %d)", @headerLineHeightOffset)); 4 | } 5 | 6 | /* Treat a header in a center aligned column as a block */ 7 | .ui.grid, 8 | .ui.grid > .row { 9 | & > .center.aligned.column .ui.inline.header { 10 | text-align: left; 11 | display: inline-block; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/sui/themes/rtd-site/elements/image.overrides: -------------------------------------------------------------------------------- 1 | .ui.avatar:not(.image) { 2 | white-space: nowrap; 3 | display: inline-block; 4 | padding: @avatarMargin; 5 | } 6 | 7 | .ui.images.overlapping { 8 | padding-left: 12px; 9 | > a, 10 | > img { 11 | margin-left: -12px; 12 | } 13 | } 14 | 15 | img.emojione { 16 | height: 1em; 17 | } 18 | -------------------------------------------------------------------------------- /src/sui/themes/rtd-site/elements/image.variables: -------------------------------------------------------------------------------- 1 | @avatarSize: 1.8em; 2 | -------------------------------------------------------------------------------- /src/sui/themes/rtd-site/elements/label.overrides: -------------------------------------------------------------------------------- 1 | .ui.ribbon.label:after { 2 | border-width: (ceil(@ribbonTriangleSize / 0.8) / 10) @ribbonTriangleSize 3 | (ceil(@ribbonTriangleSize / 0.4) / 10) 0; 4 | border-top-color: inherit; 5 | } 6 | -------------------------------------------------------------------------------- /src/sui/themes/rtd-site/elements/label.variables: -------------------------------------------------------------------------------- 1 | /* Ribbon */ 2 | @ribbonTriangleSize: 0.6em; 3 | -------------------------------------------------------------------------------- /src/sui/themes/rtd-site/elements/segment.overrides: -------------------------------------------------------------------------------- 1 | /* Light */ 2 | .ui.light.segment { 3 | background-color: @offWhite !important; 4 | } 5 | 6 | /* Inverted */ 7 | // by default Semantic does not account for several elements' color inside inverted segments 8 | & when (@variationSegmentInverted) { 9 | .ui.inverted.segments, 10 | .ui.inverted.segment { 11 | // Headers 12 | .ui.header { 13 | color: @white; 14 | } 15 | 16 | // links 17 | a { 18 | color: @white; 19 | opacity: 0.85; 20 | 21 | &:hover, 22 | &:focus, 23 | &:active, 24 | &.active { 25 | opacity: 1; 26 | } 27 | } 28 | 29 | // Lists 30 | .ui.list { 31 | .list > .item .description, 32 | > .item .description { 33 | color: @white; 34 | } 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/sui/themes/rtd-site/globals/site.overrides: -------------------------------------------------------------------------------- 1 | /* Pricing page - tables 2 | * TODO replace this with native SUI, these aren't needed. */ 3 | #pricing #tables { 4 | .ui.header.divider { 5 | margin-top: 42px; 6 | } 7 | 8 | .card .button.fluid { 9 | margin: 25px 0; 10 | } 11 | .card > .content > .description { 12 | margin: 35px 0 20px; 13 | } 14 | .card { 15 | > .extra { 16 | border-top: none !important; // needs !important because SUI already sets this rule with !important 17 | } 18 | } 19 | } 20 | 21 | /* Company page 22 | * TODO native SUI here as well. */ 23 | #company #team { 24 | z-index: 1; 25 | } 26 | #company #resources { 27 | margin-top: -250px; 28 | padding-top: 250px; 29 | } 30 | 31 | // TODO move this to common theme 32 | .ui.ui.ui.inverted.segment > div.highlight { 33 | margin-top: 1rem; 34 | overflow-x: scroll; 35 | } 36 | 37 | // Article styles for docutils reST and Markdown 38 | .ui.docutils.container, 39 | .ui.docutils.segment { 40 | div.section { 41 | margin: (@baseVerticalMargin * 2) 0; 42 | } 43 | 44 | // Code 45 | pre { 46 | background-color: @offWhite; 47 | border: 1px solid @lightGrey; 48 | border-radius: @defaultBorderRadius * 0.75; 49 | padding: @inputPadding; 50 | overflow-x: scroll; 51 | } 52 | code, 53 | tt { 54 | padding: 0.15em 0.25em; 55 | } 56 | 57 | // Lists 58 | dl { 59 | margin: 1em 0; 60 | } 61 | dt { 62 | margin-top: 1em; 63 | font-weight: @bold; 64 | } 65 | dd { 66 | margin: 1em; 67 | } 68 | 69 | // Images 70 | img:not(.ui.image) { 71 | width: 100%; 72 | margin: 20px 0 10px; 73 | } 74 | p > img:not(.ui.image) { 75 | margin-bottom: 0; 76 | } 77 | p + p > img:not(.ui.image) { 78 | margin-top: 10px; 79 | } 80 | figure img:not(.ui.image) { 81 | margin: 0; 82 | display: block; 83 | } 84 | figure { 85 | width: 100%; 86 | margin: 20px 0; 87 | } 88 | figcaption { 89 | margin-top: 20px; 90 | font-style: italic; 91 | text-align: center; 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /src/sui/themes/rtd-site/views/card.overrides: -------------------------------------------------------------------------------- 1 | // Flat card extra content 2 | // 3 | // Don't show the border between the content and extra content. Used in feature 4 | // cards 5 | .ui.cards > .card > .flat.extra.content, 6 | .ui.card > .flat.extra.content { 7 | border-top: none !important; 8 | } 9 | 10 | // Card with icon instead of image 11 | // 12 | // Reuse segments without bottom margin to accomplish a background color 13 | .card > .ui.segment:first-child { 14 | margin-bottom: 0rem; 15 | } 16 | 17 | // Pricing page ribbon 18 | // TODO might not be used anymore 19 | .card .label.ribbon { 20 | margin-top: 10px; 21 | margin-bottom: 30px; 22 | } 23 | .card > .content > .ui.header { 24 | margin: @headerLineHeightOffset 0 0; 25 | } 26 | 27 | // TODO remove, probably not used anymore 28 | .ui.cards > .card:not(.borderless) > .image > img, 29 | .ui.card:not(.borderless) > .image > img { 30 | width: calc(100% + 2px); 31 | margin: -1px; 32 | } 33 | .ui.cards > .card.borderless, 34 | .ui.card.borderless { 35 | box-shadow: none; 36 | 37 | > .content, 38 | > .extra { 39 | border: none !important; 40 | padding-left: 0; 41 | padding-right: 0; 42 | } 43 | } 44 | 45 | .ui.cards > .card .meta, 46 | .ui.card .meta { 47 | line-height: @headerLineHeight; 48 | } 49 | 50 | // TODO remove likely a variable already. 51 | a.card, 52 | a.card:hover { 53 | text-decoration: none; 54 | } 55 | --------------------------------------------------------------------------------