From b9f52249f3ff694ac6e8f6c390ce1dbc0c1e59eb Mon Sep 17 00:00:00 2001 From: Hsiaoming Yang <me@lepture.com> Date: Sun, 25 Jun 2023 21:38:52 +0900 Subject: [PATCH] chore: update docs for shibuya theme --- .readthedocs.yaml | 13 ++ Makefile | 4 +- docs/_static/custom.css | 36 ++++ docs/_static/dark-logo.svg | 1 + docs/_static/favicon.ico | Bin 15086 -> 0 bytes docs/_static/icon.svg | 1 + docs/_static/light-logo.svg | 1 + docs/_static/sponsors.css | 77 -------- docs/_static/sponsors.js | 42 ---- docs/_templates/partials/globaltoc-above.html | 11 ++ docs/changelog.rst | 56 +++--- docs/client/oauth2.rst | 2 +- docs/community/funding.rst | 22 +-- docs/conf.py | 184 ++++++------------ docs/jose/index.rst | 13 ++ docs/jose/jwe.rst | 7 + docs/jose/jwk.rst | 8 +- docs/jose/jws.rst | 8 + docs/jose/jwt.rst | 7 + .../requirements.txt | 7 +- serve.py | 6 + 21 files changed, 217 insertions(+), 289 deletions(-) create mode 100644 .readthedocs.yaml create mode 100644 docs/_static/custom.css create mode 100644 docs/_static/dark-logo.svg delete mode 100644 docs/_static/favicon.ico create mode 100644 docs/_static/icon.svg create mode 100644 docs/_static/light-logo.svg delete mode 100644 docs/_static/sponsors.css delete mode 100644 docs/_static/sponsors.js create mode 100644 docs/_templates/partials/globaltoc-above.html rename requirements-docs.txt => docs/requirements.txt (57%) create mode 100644 serve.py diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 00000000..e88e6c7a --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,13 @@ +version: 2 + +build: + os: ubuntu-22.04 + tools: + python: "3.11" + +sphinx: + configuration: docs/conf.py + +python: + install: + - requirements: docs/requirements.txt diff --git a/Makefile b/Makefile index a3bc6bdb..936f6d21 100644 --- a/Makefile +++ b/Makefile @@ -27,5 +27,5 @@ clean-docs: clean-tox: @rm -rf .tox/ -docs: - @$(MAKE) -C docs html +build-docs: + @sphinx-build docs build/_html -a diff --git a/docs/_static/custom.css b/docs/_static/custom.css new file mode 100644 index 00000000..b71de1c2 --- /dev/null +++ b/docs/_static/custom.css @@ -0,0 +1,36 @@ +:root { + --syntax-light-pre-bg: #e8f3ff; + --syntax-light-cap-bg: #d6e7fb; + --syntax-dark-pre-bg: #1a2b3e; + --syntax-dark-cap-bg: #223e5e; +} + +.site-sponsors { + margin-bottom: 2rem; +} + +.site-sponsors > .sponsor { + display: flex; + align-items: center; + background: var(--sy-c-bg-weak); + border-radius: 6px; + padding: 0.5rem; + margin-bottom: 0.5rem; +} + +.site-sponsors .image { + flex-shrink: 0; + display: block; + width: 32px; + margin-right: 0.8rem; +} + +.site-sponsors .text { + font-size: 0.86rem; + line-height: 1.2; +} + +.site-sponsors .text a { + color: var(--sy-c-link); + border-color: var(--sy-c-link); +} diff --git a/docs/_static/dark-logo.svg b/docs/_static/dark-logo.svg new file mode 100644 index 00000000..5b1adfa8 --- /dev/null +++ b/docs/_static/dark-logo.svg @@ -0,0 +1 @@ +<svg width="2337" height="560" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="280" cy="280" r="280" fill="#3E7FCB"/><circle cx="280" cy="280" r="260" fill="#fff"/><circle cx="280" cy="280" r="240" fill="#000"/><path d="M366.969 420c-14.339 0-26.922-9.092-31.314-22.625l-15.971-48.723h-79.896l-14.84 48.279c-4.479 13.796-17.158 23.031-31.571 23.031-3.46 0-6.897-.548-10.216-1.626-17.227-5.179-27.008-23.744-21.73-41.362l67.438-213.879C233.247 149.49 246.139 140 260.221 140h35.859c14.161 0 27.051 9.328 31.345 22.686l70.922 213.798c5.671 17.48-3.72 36.244-20.922 41.851A33.792 33.792 0 0 1 366.969 420z" fill="#fff" stroke="#3E7FCB" stroke-width="5.363"/><path d="m784.549 333.125 5.034-12.5h42.709l5.034 12.5h-52.777zm-9.723 25 4.861-12.5h62.327l5.382 12.5h-72.57zm-9.722 25 4.861-12.5h81.945l5.208 12.5h-92.014zM663.542 417.5H650L763.715 130h13.542l113.542 287.5h-13.368L770.486 146.84 663.542 417.5zm108.507-240.972 7.118 15.972-88.889 225H676.91l95.139-240.972zm13.888 32.986 6.598 17.187L717.361 417.5h-13.542l82.118-207.986zm13.195 34.375 6.597 17.535L744.097 417.5h-13.368l68.403-173.611zM971.528 417.5h-13.542L844.444 130h13.368l113.716 287.5zM830.903 130l113.715 287.5H931.25L817.535 130h13.368zm-26.91 0 113.715 287.5h-13.541L790.625 130h13.368zM1157.47 306.736V167.5h12.5v139.236c0 13.195-5.1 24.537-15.28 34.028-10.07 9.491-22.22 14.236-36.46 14.236-14.24 0-26.45-4.745-36.63-14.236-10.07-9.491-15.11-20.833-15.11-34.028V167.5h12.5v139.236c0 9.838 3.82 18.287 11.46 25.347 7.76 6.945 17.02 10.417 27.78 10.417 10.76 0 19.96-3.472 27.6-10.417 7.76-7.06 11.64-15.509 11.64-25.347zm25 0V167.5h12.5v139.236c0 20.255-7.53 37.558-22.57 51.91-15.05 14.236-33.11 21.354-54.17 21.354-21.07 0-39.12-7.118-54.17-21.354-15.04-14.352-22.57-31.655-22.57-51.91V167.5h12.5v139.236c0 16.783 6.25 31.134 18.75 43.056 12.62 11.805 27.78 17.708 45.49 17.708 17.59 0 32.7-5.903 45.31-17.708 12.62-11.922 18.93-26.273 18.93-43.056zm25 0V167.5h12.5v139.236c0 17.708-4.58 34.144-13.72 49.306-9.14 15.046-21.53 26.967-37.15 35.764-15.63 8.796-32.58 13.194-50.87 13.194s-35.24-4.398-50.87-13.194c-15.62-8.797-28.01-20.718-37.15-35.764-9.15-15.162-13.72-31.598-13.72-49.306V167.5h12.5v139.236c0 15.394 4 29.688 11.98 42.882 7.99 13.195 18.81 23.669 32.47 31.424 13.77 7.639 28.7 11.458 44.79 11.458s30.96-3.819 44.62-11.458c13.77-7.755 24.65-18.229 32.64-31.424 7.98-13.194 11.98-27.488 11.98-42.882zm25 0V167.5h12.5v139.236c0 16.667-3.36 32.639-10.07 47.917-6.72 15.162-15.74 28.241-27.09 39.236-11.34 10.995-24.82 19.734-40.45 26.215-15.62 6.597-32 9.896-49.13 9.896-17.13 0-33.51-3.299-49.13-9.896-15.63-6.481-29.11-15.22-40.45-26.215-11.35-10.995-20.37-24.074-27.09-39.236-6.71-15.278-10.067-31.25-10.067-47.917V167.5h12.497v139.236c0 19.908 5.1 38.368 15.28 55.382 10.3 17.014 24.19 30.498 41.67 40.451 17.59 9.954 36.69 14.931 57.29 14.931s39.64-4.977 57.12-14.931c17.59-9.953 31.48-23.437 41.66-40.451 10.3-17.014 15.46-35.474 15.46-55.382zM1320.66 236.771h12.5V417.5h-12.5V236.771zm-50-56.771v-12.5h187.5V180h-187.5zm0 25v-12.5h187.5V205h-187.5zm0 25v-12.5h187.5V230h-187.5zm125 6.771h12.5V417.5h-12.5V236.771zm-25 0h12.5V417.5h-12.5V236.771zm-25 0h12.5V417.5h-12.5V236.771zM1735.94 167.5h12.5v250h-12.5v-250zm-250.18 0h12.5v250h-12.5v-250zm225.18 0h12.5v250h-12.5v-250zm-25 0h12.5v250h-12.5v-250zm-25 0h12.5v250h-12.5v-100h-87.68v100h-12.5v-250h12.5V255h87.68v-87.5zm-125.18 0h12.5v250h-12.5v-250zm-25 0h12.5v250h-12.5v-250zM1660.94 305v-12.5h-87.68V305h87.68zm0-25v-12.5h-87.68V280h87.68zM1781.25 167.5h12.5v250h-12.5v-250zm75 0h12.5V355h92.19v12.5h-92.19V380h92.19v12.5h-92.19V405h92.19v12.5h-104.69v-250zm-25 0h12.5v250h-12.5v-250zm-25 0h12.5v250h-12.5v-250zM2063.54 167.5h12.5v250h-12.5v-250zm-25 0h12.5v250h-12.5v-250zm-25 0h12.5v250h-12.5v-250zm-25 0h12.5v250h-12.5v-250zM2304.51 291.111c-.11 0-.17.058-.17.174 5.56 5.671 10.19 12.673 13.89 21.007 3.7 8.333 5.55 16.782 5.55 25.347 0 18.634-6.42 34.317-19.27 47.049-12.73 12.615-28.01 18.923-45.83 18.923h-78.99v12.5h78.99c14.12 0 26.97-3.067 38.54-9.201 11.69-6.135 21.12-15.22 28.3-27.257 7.18-12.153 10.76-26.158 10.76-42.014 0-16.551-4.97-31.713-14.93-45.486 9.96-13.31 14.93-29.225 14.93-47.743 0-13.542-3.53-26.216-10.59-38.021-7.06-11.921-16.6-21.354-28.64-28.299-11.92-7.06-24.71-10.59-38.37-10.59h-150v250h12.5V180h137.5c17.59 0 32.81 6.424 45.66 19.271 12.96 12.731 19.44 27.778 19.44 45.139 0 18.287-6.53 33.796-19.61 46.528l.34.173zm-45.83 62.5c4.28 0 7.87-1.389 10.76-4.167 2.9-2.777 4.34-6.713 4.34-11.805 0-4.167-1.56-7.87-4.68-11.111-3.01-3.241-6.48-4.861-10.42-4.861h-79.17v-12.5h79.17c7.29 0 13.72 2.893 19.27 8.68 5.56 5.672 8.33 12.269 8.33 19.792 0 8.68-2.72 15.625-8.16 20.833-5.32 5.093-11.8 7.639-19.44 7.639h-78.99v-12.5h78.99zm0 25c11 0 20.43-3.819 28.3-11.458 7.87-7.639 11.8-17.477 11.8-29.514 0-10.88-4.05-20.428-12.15-28.646-7.98-8.218-17.3-12.326-27.95-12.326h-78.99v-12.5h78.99c11 0 20.43-3.704 28.3-11.111 7.87-7.524 11.8-17.072 11.8-28.646 0-10.417-4.05-19.56-12.15-27.431-7.98-7.986-17.3-11.979-27.95-11.979h-112.5v212.5h-12.5v-225h125c14.12 0 26.39 5.208 36.81 15.625 10.53 10.301 15.79 22.396 15.79 36.285 0 10.185-2.6 19.386-7.81 27.604-5.09 8.102-11.86 14.352-20.31 18.75 8.45 4.63 15.22 11.227 20.31 19.792 5.21 8.449 7.81 17.476 7.81 27.083 0 15.162-5.2 27.893-15.62 38.194-10.3 10.186-22.63 15.278-36.98 15.278h-78.99v-12.5h78.99zm0-119.444c4.28 0 7.87-1.273 10.76-3.82 2.9-2.546 4.34-6.192 4.34-10.937 0-3.704-1.56-7.003-4.68-9.896-3.01-3.009-6.48-4.514-10.42-4.514h-87.5v187.5h-12.5v-200h100c7.29 0 13.72 2.72 19.27 8.16 5.56 5.44 8.33 11.69 8.33 18.75 0 8.333-2.66 14.988-7.98 19.965-5.33 4.861-11.86 7.292-19.62 7.292h-78.99v-12.5h78.99z" fill="#fff"/></svg> \ No newline at end of file diff --git a/docs/_static/favicon.ico b/docs/_static/favicon.ico deleted file mode 100644 index d275da7b64f80726b0cc0541c155db10f727c1b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 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 Gnf?O^rkCvi diff --git a/docs/_static/icon.svg b/docs/_static/icon.svg new file mode 100644 index 00000000..974ed8fa --- /dev/null +++ b/docs/_static/icon.svg @@ -0,0 +1 @@ +<svg width="560" height="560" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="280" cy="280" r="280" fill="#3E7FCB"/><circle cx="280" cy="280" r="260" fill="#fff"/><circle cx="280" cy="280" r="240" fill="#3E7FCB"/><path d="M366.969 420c-14.339 0-26.922-9.092-31.314-22.625l-15.971-48.723h-79.896l-14.84 48.279c-4.479 13.796-17.158 23.031-31.571 23.031-3.46 0-6.897-.548-10.216-1.626-17.227-5.179-27.008-23.744-21.73-41.362l67.438-213.879C233.247 149.49 246.139 140 260.221 140h35.859c14.161 0 27.051 9.328 31.345 22.686l70.922 213.798c5.671 17.48-3.72 36.244-20.922 41.851A33.792 33.792 0 0 1 366.969 420z" fill="#fff" stroke="#3E7FCB" stroke-width="5.363"/></svg> \ No newline at end of file diff --git a/docs/_static/light-logo.svg b/docs/_static/light-logo.svg new file mode 100644 index 00000000..f0cfb076 --- /dev/null +++ b/docs/_static/light-logo.svg @@ -0,0 +1 @@ +<svg width="2337" height="560" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="280" cy="280" r="280" fill="#3E7FCB"/><circle cx="280" cy="280" r="260" fill="#fff"/><circle cx="280" cy="280" r="240" fill="#3E7FCB"/><path d="M366.969 420c-14.339 0-26.922-9.092-31.314-22.625l-15.971-48.723h-79.896l-14.84 48.279c-4.479 13.796-17.158 23.031-31.571 23.031-3.46 0-6.897-.548-10.216-1.626-17.227-5.179-27.008-23.744-21.73-41.362l67.438-213.879C233.247 149.49 246.139 140 260.221 140h35.859c14.161 0 27.051 9.328 31.345 22.686l70.922 213.798c5.671 17.48-3.72 36.244-20.922 41.851A33.792 33.792 0 0 1 366.969 420z" fill="#fff" stroke="#3E7FCB" stroke-width="5.363"/><path d="m784.549 333.125 5.034-12.5h42.709l5.034 12.5h-52.777zm-9.723 25 4.861-12.5h62.327l5.382 12.5h-72.57zm-9.722 25 4.861-12.5h81.945l5.208 12.5h-92.014zM663.542 417.5H650L763.715 130h13.542l113.542 287.5h-13.368L770.486 146.84 663.542 417.5zm108.507-240.972 7.118 15.972-88.889 225H676.91l95.139-240.972zm13.888 32.986 6.598 17.187L717.361 417.5h-13.542l82.118-207.986zm13.195 34.375 6.597 17.535L744.097 417.5h-13.368l68.403-173.611zM971.528 417.5h-13.542L844.444 130h13.368l113.716 287.5zM830.903 130l113.715 287.5H931.25L817.535 130h13.368zm-26.91 0 113.715 287.5h-13.541L790.625 130h13.368zM1157.47 306.736V167.5h12.5v139.236c0 13.195-5.1 24.537-15.28 34.028-10.07 9.491-22.22 14.236-36.46 14.236-14.24 0-26.45-4.745-36.63-14.236-10.07-9.491-15.11-20.833-15.11-34.028V167.5h12.5v139.236c0 9.838 3.82 18.287 11.46 25.347 7.76 6.945 17.02 10.417 27.78 10.417 10.76 0 19.96-3.472 27.6-10.417 7.76-7.06 11.64-15.509 11.64-25.347zm25 0V167.5h12.5v139.236c0 20.255-7.53 37.558-22.57 51.91-15.05 14.236-33.11 21.354-54.17 21.354-21.07 0-39.12-7.118-54.17-21.354-15.04-14.352-22.57-31.655-22.57-51.91V167.5h12.5v139.236c0 16.783 6.25 31.134 18.75 43.056 12.62 11.805 27.78 17.708 45.49 17.708 17.59 0 32.7-5.903 45.31-17.708 12.62-11.922 18.93-26.273 18.93-43.056zm25 0V167.5h12.5v139.236c0 17.708-4.58 34.144-13.72 49.306-9.14 15.046-21.53 26.967-37.15 35.764-15.63 8.796-32.58 13.194-50.87 13.194s-35.24-4.398-50.87-13.194c-15.62-8.797-28.01-20.718-37.15-35.764-9.15-15.162-13.72-31.598-13.72-49.306V167.5h12.5v139.236c0 15.394 4 29.688 11.98 42.882 7.99 13.195 18.81 23.669 32.47 31.424 13.77 7.639 28.7 11.458 44.79 11.458s30.96-3.819 44.62-11.458c13.77-7.755 24.65-18.229 32.64-31.424 7.98-13.194 11.98-27.488 11.98-42.882zm25 0V167.5h12.5v139.236c0 16.667-3.36 32.639-10.07 47.917-6.72 15.162-15.74 28.241-27.09 39.236-11.34 10.995-24.82 19.734-40.45 26.215-15.62 6.597-32 9.896-49.13 9.896-17.13 0-33.51-3.299-49.13-9.896-15.63-6.481-29.11-15.22-40.45-26.215-11.35-10.995-20.37-24.074-27.09-39.236-6.71-15.278-10.067-31.25-10.067-47.917V167.5h12.497v139.236c0 19.908 5.1 38.368 15.28 55.382 10.3 17.014 24.19 30.498 41.67 40.451 17.59 9.954 36.69 14.931 57.29 14.931s39.64-4.977 57.12-14.931c17.59-9.953 31.48-23.437 41.66-40.451 10.3-17.014 15.46-35.474 15.46-55.382zM1320.66 236.771h12.5V417.5h-12.5V236.771zm-50-56.771v-12.5h187.5V180h-187.5zm0 25v-12.5h187.5V205h-187.5zm0 25v-12.5h187.5V230h-187.5zm125 6.771h12.5V417.5h-12.5V236.771zm-25 0h12.5V417.5h-12.5V236.771zm-25 0h12.5V417.5h-12.5V236.771zM1735.94 167.5h12.5v250h-12.5v-250zm-250.18 0h12.5v250h-12.5v-250zm225.18 0h12.5v250h-12.5v-250zm-25 0h12.5v250h-12.5v-250zm-25 0h12.5v250h-12.5v-100h-87.68v100h-12.5v-250h12.5V255h87.68v-87.5zm-125.18 0h12.5v250h-12.5v-250zm-25 0h12.5v250h-12.5v-250zM1660.94 305v-12.5h-87.68V305h87.68zm0-25v-12.5h-87.68V280h87.68zM1781.25 167.5h12.5v250h-12.5v-250zm75 0h12.5V355h92.19v12.5h-92.19V380h92.19v12.5h-92.19V405h92.19v12.5h-104.69v-250zm-25 0h12.5v250h-12.5v-250zm-25 0h12.5v250h-12.5v-250zM2063.54 167.5h12.5v250h-12.5v-250zm-25 0h12.5v250h-12.5v-250zm-25 0h12.5v250h-12.5v-250zm-25 0h12.5v250h-12.5v-250zM2304.51 291.111c-.11 0-.17.058-.17.174 5.56 5.671 10.19 12.673 13.89 21.007 3.7 8.333 5.55 16.782 5.55 25.347 0 18.634-6.42 34.317-19.27 47.049-12.73 12.615-28.01 18.923-45.83 18.923h-78.99v12.5h78.99c14.12 0 26.97-3.067 38.54-9.201 11.69-6.135 21.12-15.22 28.3-27.257 7.18-12.153 10.76-26.158 10.76-42.014 0-16.551-4.97-31.713-14.93-45.486 9.96-13.31 14.93-29.225 14.93-47.743 0-13.542-3.53-26.216-10.59-38.021-7.06-11.921-16.6-21.354-28.64-28.299-11.92-7.06-24.71-10.59-38.37-10.59h-150v250h12.5V180h137.5c17.59 0 32.81 6.424 45.66 19.271 12.96 12.731 19.44 27.778 19.44 45.139 0 18.287-6.53 33.796-19.61 46.528l.34.173zm-45.83 62.5c4.28 0 7.87-1.389 10.76-4.167 2.9-2.777 4.34-6.713 4.34-11.805 0-4.167-1.56-7.87-4.68-11.111-3.01-3.241-6.48-4.861-10.42-4.861h-79.17v-12.5h79.17c7.29 0 13.72 2.893 19.27 8.68 5.56 5.672 8.33 12.269 8.33 19.792 0 8.68-2.72 15.625-8.16 20.833-5.32 5.093-11.8 7.639-19.44 7.639h-78.99v-12.5h78.99zm0 25c11 0 20.43-3.819 28.3-11.458 7.87-7.639 11.8-17.477 11.8-29.514 0-10.88-4.05-20.428-12.15-28.646-7.98-8.218-17.3-12.326-27.95-12.326h-78.99v-12.5h78.99c11 0 20.43-3.704 28.3-11.111 7.87-7.524 11.8-17.072 11.8-28.646 0-10.417-4.05-19.56-12.15-27.431-7.98-7.986-17.3-11.979-27.95-11.979h-112.5v212.5h-12.5v-225h125c14.12 0 26.39 5.208 36.81 15.625 10.53 10.301 15.79 22.396 15.79 36.285 0 10.185-2.6 19.386-7.81 27.604-5.09 8.102-11.86 14.352-20.31 18.75 8.45 4.63 15.22 11.227 20.31 19.792 5.21 8.449 7.81 17.476 7.81 27.083 0 15.162-5.2 27.893-15.62 38.194-10.3 10.186-22.63 15.278-36.98 15.278h-78.99v-12.5h78.99zm0-119.444c4.28 0 7.87-1.273 10.76-3.82 2.9-2.546 4.34-6.192 4.34-10.937 0-3.704-1.56-7.003-4.68-9.896-3.01-3.009-6.48-4.514-10.42-4.514h-87.5v187.5h-12.5v-200h100c7.29 0 13.72 2.72 19.27 8.16 5.56 5.44 8.33 11.69 8.33 18.75 0 8.333-2.66 14.988-7.98 19.965-5.33 4.861-11.86 7.292-19.62 7.292h-78.99v-12.5h78.99z" fill="#000"/></svg> \ No newline at end of file diff --git a/docs/_static/sponsors.css b/docs/_static/sponsors.css deleted file mode 100644 index e70e7692..00000000 --- a/docs/_static/sponsors.css +++ /dev/null @@ -1,77 +0,0 @@ -.ethical-fixedfooter { display:none } -.fund{ - z-index: 1; - position: relative; - bottom: 0; - right: 0; - float: right; - padding: 0 0 20px 30px; - width: 150px; -} -.fund a { border:0 } -#carbonads { - background: #EDF2F4; - padding: 5px 10px; - border-radius: 3px; -} -#carbonads span { - display: block; -} - -#carbonads a { - color: inherit; - text-decoration: none; -} - -#carbonads a:hover { - color: inherit; -} - -#carbonads span { - position: relative; - display: block; - overflow: hidden; -} - -.carbon-img img { - display: block; - width: 130px; -} - -#carbonads .carbon-text { - display: block; - margin-top: 4px; - font-size: 13px; - text-align: left; -} - -#carbonads .carbon-poweredby { - color: #aaa; - font-size: 10px; - letter-spacing: 0.8px; - text-transform: uppercase; - font-weight: normal; -} - -#bsa .native-box { - display: flex; - align-items: center; - padding: 10px; - margin: 16px 0; - border: 1px solid #e2e8f0; - border-radius: 4px; - background-color: #f8fafc; - text-decoration: none; - color: rgba(0, 0, 0, 0.68); -} - -#bsa .native-sponsor { - background-color: #447FD7; - color: #fff; - border-radius: 3px; - text-transform: uppercase; - padding: 5px 12px; - margin-right: 10px; - font-weight: 500; - font-size: 12px; -} diff --git a/docs/_static/sponsors.js b/docs/_static/sponsors.js deleted file mode 100644 index d6cd49f0..00000000 --- a/docs/_static/sponsors.js +++ /dev/null @@ -1,42 +0,0 @@ -(function() { - function carbon() { - var h1 = document.querySelector('.t-body h1'); - if (!h1) return; - - var div = document.createElement('div'); - div.className = 'fund'; - h1.parentNode.insertBefore(div, h1.nextSibling); - - var s = document.createElement('script'); - s.async = 1; - s.id = '_carbonads_js'; - s.src = 'https://cdn.carbonads.com/carbon.js?serve=CE7DKK3W&placement=authliborg'; - div.appendChild(s); - } - - function bsa() { - var pagination = document.querySelector('.t-pagination'); - if (!pagination) return; - var div = document.createElement('div'); - div.id = 'bsa'; - pagination.parentNode.insertBefore(div, pagination); - - var s = document.createElement('script'); - s.async = 1; - s.src = 'https://m.servedby-buysellads.com/monetization.js'; - s.onload = function() { - if(typeof window._bsa !== 'undefined' && window._bsa) { - _bsa.init('custom', 'CE7DKK3M', 'placement:authliborg', { - target: '#bsa', - template: '<a href="##link##" class="native-box"><div class="native-sponsor">Sponsor</div><div class="native-text"><strong>##company##</strong> - ##description##</div></a>' - }); - } - } - document.body.appendChild(s); - } - - document.addEventListener('DOMContentLoaded', function() { - carbon(); - setTimeout(bsa, 5000); - }); -})(); diff --git a/docs/_templates/partials/globaltoc-above.html b/docs/_templates/partials/globaltoc-above.html new file mode 100644 index 00000000..4f214fbf --- /dev/null +++ b/docs/_templates/partials/globaltoc-above.html @@ -0,0 +1,11 @@ +<div class="site-sponsors"> + <div class="sponsor"> + <a class="image" href="https://authlib.org/plans?utm_source=docs"><img src="https://authlib.org/assets/logo-blue.svg" alt="Authlib"></a> + <div class="text">Get a commercial license at <a href="https://authlib.org/plans?utm_source=docs">authlib.org</a></div> + </div> + <div class="sponsor"> + <a class="image" href="https://auth0.com/overview?utm_source=authlib&utm_medium=devsponsor&utm_campaign=authlib"><img src="https://user-images.githubusercontent.com/290496/39297078-89d00928-497d-11e8-8119-0c53afe14cd0.png" alt="Sponsor"></a> + <div class="text">The new way to solve Identity. Sponsored by <a href="https://auth0.com/overview?utm_source=authlib&utm_medium=devsponsor&utm_campaign=authlib">auth0.com</a></div> + </div> +</div> +<div class="js-carbon" data-carbon-code="CE7DKK3W" data-carbon-placement="authliborg"></div> diff --git a/docs/changelog.rst b/docs/changelog.rst index 994ba603..377e2b42 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -9,21 +9,21 @@ Here you can see the full list of changes between each Authlib release. Version x.x.x ------------- -- Removed ``has_client_secret`` method and documentation, via :gh:`PR#513` +- Removed ``has_client_secret`` method and documentation, via :PR:`513` - Removed ``request_invalid`` and ``token_revoked`` remaining occurences - and documentation. :gh:`PR514` -- Fixed RFC7591 ``grant_types`` and ``response_types`` default values, via :gh:`PR#509`. + and documentation. :PR:`514` +- Fixed RFC7591 ``grant_types`` and ``response_types`` default values, via :PR:`509`. Version 1.2.0 ------------- **Released on Dec 6, 2022** -- Not passing ``request.body`` to ``ResourceProtector``, via :gh:`issue#485`. -- Use ``flask.g`` instead of ``_app_ctx_stack``, via :gh:`issue#482`. -- Add ``headers`` parameter back to ``ClientSecretJWT``, via :gh:`issue#457`. -- Always passing ``realm`` parameter in OAuth 1 clients, via :gh:`issue#339`. -- Implemented RFC7592 Dynamic Client Registration Management Protocol, via :gh:`PR#505`. +- Not passing ``request.body`` to ``ResourceProtector``, via :issue:`485`. +- Use ``flask.g`` instead of ``_app_ctx_stack``, via :issue:`482`. +- Add ``headers`` parameter back to ``ClientSecretJWT``, via :issue:`457`. +- Always passing ``realm`` parameter in OAuth 1 clients, via :issue:`339`. +- Implemented RFC7592 Dynamic Client Registration Management Protocol, via :PR:`505`. - Add ``default_timeout`` for requests ``OAuth2Session`` and ``AssertionSession``. - Deprecate ``jwk.loads`` and ``jwk.dumps`` @@ -34,9 +34,9 @@ Version 1.1.0 This release contains breaking changes and security fixes. -- Allow to pass ``claims_options`` to Framework OpenID Connect clients, via :gh:`PR#446`. -- Fix ``.stream`` with context for HTTPX OAuth clients, via :gh:`PR#465`. -- Fix Starlette OAuth client for cache store, via :gh:`PR#478`. +- Allow to pass ``claims_options`` to Framework OpenID Connect clients, via :PR:`446`. +- Fix ``.stream`` with context for HTTPX OAuth clients, via :PR:`465`. +- Fix Starlette OAuth client for cache store, via :PR:`478`. **Breaking changes**: @@ -54,11 +54,11 @@ Version 1.0.1 **Released on Apr 6, 2022** -- Fix authenticate_none method, via :gh:`issue#438`. -- Allow to pass in alternative signing algorithm to RFC7523 authentication methods via :gh:`PR#447`. -- Fix ``missing_token`` for Flask OAuth client, via :gh:`issue#448`. -- Allow ``openid`` in any place of the scope, via :gh:`issue#449`. -- Security fix for validating essential value on blank value in JWT, via :gh:`issue#445`. +- Fix authenticate_none method, via :issue:`438`. +- Allow to pass in alternative signing algorithm to RFC7523 authentication methods via :PR:`447`. +- Fix ``missing_token`` for Flask OAuth client, via :issue:`448`. +- Allow ``openid`` in any place of the scope, via :issue:`449`. +- Security fix for validating essential value on blank value in JWT, via :issue:`445`. Version 1.0.0 @@ -120,14 +120,14 @@ Version 0.15.3 **Released on Jan 15, 2021.** -- Fixed `.authorize_access_token` for OAuth 1.0 services, via :gh:`issue#308`. +- Fixed `.authorize_access_token` for OAuth 1.0 services, via :issue:`308`. Version 0.15.2 -------------- **Released on Oct 18, 2020.** -- Fixed HTTPX authentication bug, via :gh:`issue#283`. +- Fixed HTTPX authentication bug, via :issue:`283`. Version 0.15.1 @@ -135,7 +135,7 @@ Version 0.15.1 **Released on Oct 14, 2020.** -- Backward compatible fix for using JWKs in JWT, via :gh:`issue#280`. +- Backward compatible fix for using JWKs in JWT, via :issue:`280`. Version 0.15 @@ -152,9 +152,9 @@ implementations and did some refactors for JOSE: We also fixed bugs for integrations: - Fixed support for HTTPX>=0.14.3 -- Added OAuth clients of HTTPX back via :gh:`PR#270` +- Added OAuth clients of HTTPX back via :PR:`270` - Fixed parallel token refreshes for HTTPX async OAuth 2 client -- Raise OAuthError when callback contains errors via :gh:`issue#275` +- Raise OAuthError when callback contains errors via :issue:`275` **Breaking Change**: @@ -167,12 +167,12 @@ Version 0.14.3 **Released on May 18, 2020.** -- Fix HTTPX integration via :gh:`PR#232` and :gh:`PR#233`. +- Fix HTTPX integration via :PR:`232` and :PR:`233`. - Add "bearer" as default token type for OAuth 2 Client. - JWS and JWE don't validate private headers by default. - Remove ``none`` auth method for authorization code by default. -- Allow usage of user provided ``code_verifier`` via :gh:`issue#216`. -- Add ``introspect_token`` method on OAuth 2 Client via :gh:`issue#224`. +- Allow usage of user provided ``code_verifier`` via :issue:`216`. +- Add ``introspect_token`` method on OAuth 2 Client via :issue:`224`. Version 0.14.2 @@ -181,8 +181,8 @@ Version 0.14.2 **Released on May 6, 2020.** - Fix OAuth 1.0 client for starlette. -- Allow leeway option in client parse ID token via :gh:`PR#228`. -- Fix OAuthToken when ``expires_at`` or ``expires_in`` is 0 via :gh:`PR#227`. +- Allow leeway option in client parse ID token via :PR:`228`. +- Fix OAuthToken when ``expires_at`` or ``expires_in`` is 0 via :PR:`227`. - Fix auto refresh token logic. - Load server metadata before request. @@ -207,9 +207,9 @@ for clients. - Fix HTTPX integrations due to HTTPX breaking changes - Fix ES algorithms for JWS -- Allow user given ``nonce`` via :gh:`issue#180`. +- Allow user given ``nonce`` via :issue:`180`. - Fix OAuth errors ``get_headers`` leak. -- Fix ``code_verifier`` via :gh:`issue#165`. +- Fix ``code_verifier`` via :issue:`165`. **Breaking Change**: drop sync OAuth clients of HTTPX. diff --git a/docs/client/oauth2.rst b/docs/client/oauth2.rst index 1a518059..a4623ccf 100644 --- a/docs/client/oauth2.rst +++ b/docs/client/oauth2.rst @@ -203,7 +203,7 @@ These two methods are defined by RFC7523 and OpenID Connect. Find more in :ref:`jwt_oauth2session`. There are still cases that developers need to define a custom client -authentication method. Take :gh:`issue#158` as an example, the provider +authentication method. Take :issue:`158` as an example, the provider requires us put ``client_id`` and ``client_secret`` on URL when sending POST request:: diff --git a/docs/community/funding.rst b/docs/community/funding.rst index 1af91f65..83863d9b 100644 --- a/docs/community/funding.rst +++ b/docs/community/funding.rst @@ -49,15 +49,15 @@ we are going to add. Funding Goal: $500/month ~~~~~~~~~~~~~~~~~~~~~~~~ -* :badge:`done` setup a private PyPI -* :badge:`todo` A running demo of loginpass services -* :badge:`todo` Starlette integration of loginpass +* :bdg-success:`done` setup a private PyPI +* :bdg-warning:`todo` A running demo of loginpass services +* :bdg-warning:`todo` Starlette integration of loginpass Funding Goal: $2000/month ~~~~~~~~~~~~~~~~~~~~~~~~~ -* :badge:`todo` A simple running demo of OIDC provider in Flask +* :bdg-warning:`todo` A simple running demo of OIDC provider in Flask When the demo is complete, source code of the demo will only be available to our insiders. @@ -66,19 +66,19 @@ Funding Goal: $5000/month In Authlib v2.0, we will start working on async provider integrations. -* :badge:`todo` Starlette (FastAPI) OAuth 1.0 provider integration -* :badge:`todo` Starlette (FastAPI) OAuth 2.0 provider integration -* :badge:`todo` Starlette (FastAPI) OIDC provider integration +* :bdg-warning:`todo` Starlette (FastAPI) OAuth 1.0 provider integration +* :bdg-warning:`todo` Starlette (FastAPI) OAuth 2.0 provider integration +* :bdg-warning:`todo` Starlette (FastAPI) OIDC provider integration Funding Goal: $9000/month ~~~~~~~~~~~~~~~~~~~~~~~~~ In Authlib v3.0, we will add built-in support for SAML. -* :badge:`todo` SAML 2.0 implementation -* :badge:`todo` RFC7522 (SAML) 2.0 Profile for OAuth 2.0 Client Authentication and Authorization Grants -* :badge:`todo` CBOR Object Signing and Encryption -* :badge:`todo` A complex running demo of OIDC provider +* :bdg-warning:`todo` SAML 2.0 implementation +* :bdg-warning:`todo` RFC7522 (SAML) 2.0 Profile for OAuth 2.0 Client Authentication and Authorization Grants +* :bdg-warning:`todo` CBOR Object Signing and Encryption +* :bdg-warning:`todo` A complex running demo of OIDC provider Our Sponsors ------------ diff --git a/docs/conf.py b/docs/conf.py index 70cd76f2..1b609f03 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,138 +1,76 @@ -import os -import sys -sys.path.insert(0, os.path.abspath('..')) - import authlib -import sphinx_typlog_theme - -extensions = ['sphinx.ext.autodoc'] -templates_path = ['_templates'] - -source_suffix = '.rst' -master_doc = 'index' project = u'Authlib' -copyright = u'2017, Hsiaoming Ltd' +copyright = u'© 2017, Hsiaoming Ltd' author = u'Hsiaoming Yang' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. version = authlib.__version__ -# The full version, including alpha/beta/rc tags. release = version -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = 'en' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This patterns also effect to html_static_path and html_extra_path -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -html_theme = 'sphinx_typlog_theme' -html_favicon = '_static/favicon.ico' -html_theme_path = [sphinx_typlog_theme.get_path()] -html_theme_options = { - 'logo': 'authlib.svg', - 'color': '#3E7FCB', - 'description': ( - 'The ultimate Python library in building OAuth and OpenID Connect ' - 'servers. JWS, JWE, JWK, JWA, JWT are included.' - ), - 'github_user': 'lepture', - 'github_repo': 'authlib', - 'twitter': 'authlib', - 'og_image': 'https://authlib.org/logo.png', - 'meta_html': ( - '<link rel="apple-touch-icon" sizes="180x180" ' - 'href="https://authlib.org/apple-touch-icon.png">' - ) -} - -html_context = {} - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -_sidebar_templates = [ - 'logo.html', - 'github.html', - 'sponsors.html', - 'globaltoc.html', - 'links.html', - 'searchbox.html', - 'tidelift.html', -] -if '.dev' in release: - version_warning = ( - 'This is the documentation of the development version, check the ' - '<a href="/en/stable/">Stable Version</a> documentation.' - ) - html_theme_options['warning'] = version_warning - -html_sidebars = { - '**': _sidebar_templates -} - -# -- Options for HTMLHelp output ------------------------------------------ - -# Output file base name for HTML help builder. -htmlhelp_basename = 'Authlibdoc' - - -# -- Options for LaTeX output --------------------------------------------- - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (master_doc, 'Authlib.tex', u'Authlib Documentation', - u'Hsiaoming Yang', 'manual'), -] - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, 'authlib', u'Authlib Documentation', [author], 1) +templates_path = ["_templates"] +html_static_path = ["_static"] +html_css_files = [ + 'custom.css', ] +html_theme = "shibuya" +html_copy_source = False +html_show_sourcelink = False -# -- Options for Texinfo output ------------------------------------------- +language = 'en' -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ( - master_doc, 'Authlib', u'Authlib Documentation', - author, 'Authlib', 'One line description of project.', - 'Miscellaneous' - ), +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.extlinks", + "sphinx_copybutton", + "sphinx_design", ] -html_css_files = [ - 'sponsors.css', -] -html_js_files = [ - 'sponsors.js', -] +extlinks = { + 'issue': ('https://github.com/lepture/authlib/issues/%s', 'issue #%s'), + 'PR': ('https://github.com/lepture/authlib/issues/%s', 'pull request #%s'), +} +intersphinx_mapping = { + "python": ("https://docs.python.org/3", None), +} +html_favicon = '_static/icon.svg' +html_theme_options = { + 'og_image_url': 'https://authlib.org/logo.png', + "light_logo": "_static/light-logo.svg", + "dark_logo": "_static/dark-logo.svg", + "light_css_variables": { + "--sy-rc-theme": "62,127,203", + }, + "dark_css_variables": { + "--sy-rc-theme": "102,173,255", + }, + "twitter_site": "authlib", + "twitter_creator": "lepture", + "twitter_url": "https://twitter.com/authlib", + "github_url": "https://github.com/lepture/authlib", + "nav_links": [ + { + "title": "Projects", + "children": [ + { + "title": "Authlib", + "url": "https://authlib.org/", + "summary": "OAuth, JOSE, OpenID, etc." + }, + { + "title": "JOSE RFC", + "url": "https://jose.authlib.org/", + "summary": "JWS, JWE, JWK, and JWT." + }, + { + "title": "OTP Auth", + "url": "https://otp.authlib.org/", + "summary": "One time password, HOTP/TOTP.", + }, + ] + }, + {"title": "Sponsor me", "url": "https://github.com/sponsors/lepture"}, + ] +} -def setup(app): - sphinx_typlog_theme.add_badge_roles(app) - sphinx_typlog_theme.add_github_roles(app, 'lepture/authlib') +html_context = {} diff --git a/docs/jose/index.rst b/docs/jose/index.rst index 4335ba93..19216134 100644 --- a/docs/jose/index.rst +++ b/docs/jose/index.rst @@ -12,6 +12,16 @@ It includes: 4. JSON Web Algorithm (JWA) 5. JSON Web Token (JWT) +.. important:: + + We are splitting the ``jose`` module into a separated package. You may be + interested in joserfc_. + +.. _joserfc: https://jose.authlib.org/ + +Usage +----- + A simple example on how to use JWT with Authlib:: from authlib.jose import jwt @@ -23,6 +33,9 @@ A simple example on how to use JWT with Authlib:: header = {'alg': 'RS256'} s = jwt.encode(header, payload, key) +Guide +----- + Follow the documentation below to find out more in detail. .. toctree:: diff --git a/docs/jose/jwe.rst b/docs/jose/jwe.rst index 9a771a9c..49925543 100644 --- a/docs/jose/jwe.rst +++ b/docs/jose/jwe.rst @@ -9,6 +9,13 @@ JSON Web Encryption (JWE) JSON Web Encryption (JWE) represents encrypted content using JSON-based data structures. +.. important:: + + We are splitting the ``jose`` module into a separated package. You may be + interested in joserfc_. + +.. _joserfc: https://jose.authlib.org/en/latest/guide/jwe/ + There are two types of JWE Serializations: 1. JWE Compact Serialization diff --git a/docs/jose/jwk.rst b/docs/jose/jwk.rst index 7d8ecf4f..d847029e 100644 --- a/docs/jose/jwk.rst +++ b/docs/jose/jwk.rst @@ -3,10 +3,12 @@ JSON Web Key (JWK) ================== -.. versionchanged:: v0.15 +.. important:: - This documentation is updated for v0.15. Please check "v0.14" documentation for - Authlib v0.14. + We are splitting the ``jose`` module into a separated package. You may be + interested in joserfc_. + +.. _joserfc: https://jose.authlib.org/en/latest/guide/jwk/ .. module:: authlib.jose :noindex: diff --git a/docs/jose/jws.rst b/docs/jose/jws.rst index f359cd2f..9f913f5e 100644 --- a/docs/jose/jws.rst +++ b/docs/jose/jws.rst @@ -10,6 +10,14 @@ JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. +.. important:: + + We are splitting the ``jose`` module into a separated package. You may be + interested in joserfc_. + +.. _joserfc: https://jose.authlib.org/en/latest/guide/jws/ + + There are two types of JWS Serializations: 1. JWS Compact Serialization diff --git a/docs/jose/jwt.rst b/docs/jose/jwt.rst index e4b8f1bd..6b374783 100644 --- a/docs/jose/jwt.rst +++ b/docs/jose/jwt.rst @@ -3,6 +3,13 @@ JSON Web Token (JWT) ==================== +.. important:: + + We are splitting the ``jose`` module into a separated package. You may be + interested in joserfc_. + +.. _joserfc: https://jose.authlib.org/en/latest/guide/jwt/ + .. module:: authlib.jose :noindex: diff --git a/requirements-docs.txt b/docs/requirements.txt similarity index 57% rename from requirements-docs.txt rename to docs/requirements.txt index 0b928c41..cdf3ad8c 100644 --- a/requirements-docs.txt +++ b/docs/requirements.txt @@ -6,5 +6,8 @@ SQLAlchemy requests httpx>=0.18.2 starlette -Sphinx==4.3.0 -sphinx-typlog-theme==0.8.0 + +sphinx==6.2.1 +sphinx-design==0.4.1 +sphinx-copybutton==0.5.2 +shibuya diff --git a/serve.py b/serve.py new file mode 100644 index 00000000..f2bea479 --- /dev/null +++ b/serve.py @@ -0,0 +1,6 @@ +from livereload import Server, shell + +app = Server() +# app.watch("src", shell("make build-docs"), delay=2) +app.watch("docs", shell("make build-docs"), delay=2) +app.serve(root="build/_html")