|
| 1 | +# Hydrogram - Telegram MTProto API Client Library for Python |
| 2 | +# Copyright (C) 2023-present Hydrogram <https://hydrogram.org> |
| 3 | +# |
| 4 | +# This file is part of Hydrogram. |
| 5 | +# |
| 6 | +# Hydrogram is free software: you can redistribute it and/or modify |
| 7 | +# it under the terms of the GNU Lesser General Public License as published |
| 8 | +# by the Free Software Foundation, either version 3 of the License, or |
| 9 | +# (at your option) any later version. |
| 10 | +# |
| 11 | +# Hydrogram is distributed in the hope that it will be useful, |
| 12 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 13 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 14 | +# GNU Lesser General Public License for more details. |
| 15 | +# |
| 16 | +# You should have received a copy of the GNU Lesser General Public License |
| 17 | +# along with Hydrogram. If not, see <http://www.gnu.org/licenses/>. |
| 18 | + |
1 | 19 | import datetime |
2 | 20 | import sys |
3 | 21 | from pathlib import Path |
4 | 22 |
|
| 23 | +# Setup path for imports |
5 | 24 | docs_dir = Path(__file__).parent.parent |
6 | 25 | sys.path.insert(0, docs_dir.resolve().as_posix()) |
7 | 26 |
|
8 | 27 | import hydrogram # noqa: E402 |
9 | 28 |
|
| 29 | +# Project information |
10 | 30 | project = "Hydrogram" |
11 | 31 | author = "Hydrogram" |
12 | 32 | copyright = f"{datetime.date.today().year}, {author}" |
13 | 33 | release = hydrogram.__version__ |
14 | 34 |
|
| 35 | +# Sphinx extensions |
15 | 36 | extensions = [ |
16 | 37 | "sphinx.ext.autodoc", |
17 | 38 | "sphinx.ext.viewcode", |
|
22 | 43 | "sphinxcontrib.towncrier.ext", |
23 | 44 | ] |
24 | 45 |
|
| 46 | +# Intersphinx mapping for external documentation |
25 | 47 | intersphinx_mapping = { |
26 | 48 | "python": ("https://docs.python.org/3", None), |
27 | 49 | "aiosqlite": ("https://aiosqlite.omnilib.dev/en/stable/", None), |
28 | 50 | } |
29 | 51 |
|
| 52 | +# Basic configuration |
| 53 | +master_doc = "index" |
| 54 | +source_suffix = ".rst" |
| 55 | +pygments_style = "friendly" |
| 56 | + |
| 57 | +# Documentation generation settings |
| 58 | +autodoc_member_order = "bysource" |
| 59 | +autodoc_typehints = "none" |
30 | 60 | html_use_modindex = False |
31 | 61 | html_use_index = False |
32 | 62 |
|
| 63 | +# Napoleon settings (for Google-style docstrings) |
33 | 64 | napoleon_use_rtype = False |
34 | 65 | napoleon_use_param = False |
35 | 66 |
|
36 | | -master_doc = "index" |
37 | | -source_suffix = ".rst" |
38 | | -autodoc_member_order = "bysource" |
39 | | -autodoc_typehints = "none" |
40 | | - |
| 67 | +# Towncrier settings |
41 | 68 | towncrier_draft_autoversion_mode = "draft" |
42 | 69 | towncrier_draft_include_empty = True |
43 | 70 | towncrier_draft_working_directory = Path(__file__).parent.parent.parent |
44 | 71 |
|
45 | | -pygments_style = "friendly" |
46 | | - |
| 72 | +# HTML theme settings |
47 | 73 | html_theme = "furo" |
48 | 74 | html_title = f"{project} v{release} Documentation" |
49 | 75 | html_last_updated_fmt = ( |
50 | 76 | f"{datetime.datetime.now(tz=datetime.UTC).strftime('%d/%m/%Y, %H:%M:%S')} UTC" |
51 | 77 | ) |
52 | | - |
53 | 78 | html_copy_source = False |
54 | | - |
55 | 79 | html_static_path = ["_static"] |
56 | 80 | html_css_files = [ |
57 | 81 | "css/all.min.css", |
58 | 82 | "css/custom.css", |
59 | 83 | ] |
60 | 84 |
|
| 85 | +# Icons for footer (from https://react-icons.github.io/react-icons) |
| 86 | +TELEGRAM_ICON = ( |
| 87 | + '<svg stroke="currentColor" fill="currentColor" stroke-width="0" ' |
| 88 | + 'viewBox="0 0 16 16" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">' |
| 89 | + '<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8.287 5.906c-.778.324-2.334.994' |
| 90 | + "-4.666 2.01-.378.15-.577.298-.595.442-.03.243.275.339.69.47l.175.055c.408.133." |
| 91 | + "958.288 1.243.294.26.006.549-.1.868-.32 2.179-1.471 3.304-2.214 3.374-2.23.0" |
| 92 | + "5-.012.12-.026.166.016.047.041.042.12.037.141-.03.129-1.227 1.241-1.846 1.81" |
| 93 | + "7-.193.18-.33.307-.358.336a8.154 8.154 0 0 1-.188.186c-.38.366-.664.64.015 1.08" |
| 94 | + "8.327.216.589.393.85.571.284.194.568.387.936.629.093.06.183.125.27.187.331.23" |
| 95 | + "6.63.448.997.414.214-.02.435-.22.547-.82.265-1.417.786-4.486.906-5.751a1.426 " |
| 96 | + "1.426 0 0 0-.013-.315.337.337 0 0 0-.114-.217.526.526 0 0 0-.31-.093c-.3.005-.7" |
| 97 | + '63.166-2.984 1.09z"></path></svg>' |
| 98 | +) |
| 99 | + |
| 100 | +GITHUB_ICON = ( |
| 101 | + '<svg stroke="currentColor" fill="currentColor" stroke-width="0" ' |
| 102 | + 'viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 ' |
| 103 | + "2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.4" |
| 104 | + "9-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23" |
| 105 | + ".82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 " |
| 106 | + "0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.2" |
| 107 | + "7 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.5" |
| 108 | + "1.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 " |
| 109 | + '1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z">' |
| 110 | + "</path></svg>" |
| 111 | +) |
| 112 | + |
| 113 | +WEBSITE_ICON = ( |
| 114 | + '<svg stroke="currentColor" fill="currentColor" stroke-width="0" ' |
| 115 | + 'viewBox="0 0 16 16" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">' |
| 116 | + '<path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8zm7.5-6.923c-.67.204-1.335.82-1.887 ' |
| 117 | + "1.855-.143.268-.276.56-.395.872.705.157 1.472.257 2.282.287V1.077zM4.249 3.53" |
| 118 | + "9c.142-.384.304-.744.481-1.078a6.7 6.7 0 0 1 .597-.933A7.01 7.01 0 0 0 3.051 " |
| 119 | + "3.05c.362.184.763.349 1.198.49zM3.509 7.5c.036-1.07.188-2.087.436-3.008a9.124 " |
| 120 | + "9.124 0 0 1-1.565-.667A6.964 6.964 0 0 0 1.018 7.5h2.49zm1.4-2.741a12.344 " |
| 121 | + "12.344 0 0 0-.4 2.741H7.5V5.091c-.91-.03-1.783-.145-2.591-.332zM8.5 5.09V7.5h" |
| 122 | + "2.99a12.342 12.342 0 0 0-.399-2.741c-.808.187-1.681.301-2.591.332zM4.51 8.5c.03" |
| 123 | + "5.987.176 1.914.399 2.741A13.612 13.612 0 0 1 7.5 10.91V8.5H4.51zm3.99 0v2.409" |
| 124 | + "c.91.03 1.783.145 2.591.332.223-.827.364-1.754.4-2.741H8.5zm-3.282 3.696c.12.31" |
| 125 | + "2.252.604.395.872.552 1.035 1.218 1.65 1.887 1.855V11.91c-.81.03-1.577.13-2.28" |
| 126 | + "2.287zm.11 2.276a6.696 6.696 0 0 1-.598-.933 8.853 8.853 0 0 1-.481-1.079 8.38 " |
| 127 | + "8.38 0 0 0-1.198.49 7.01 7.01 0 0 0 2.276 1.522zm-1.383-2.964A13.36 13.36 0 0 1" |
| 128 | + " 3.508 8.5h-2.49a6.963 6.963 0 0 0 1.362 3.675c.47-.258.995-.482 1.565-.667zm" |
| 129 | + "6.728 2.964a7.009 7.009 0 0 0 2.275-1.521 8.376 8.376 0 0 0-1.197-.49 8.853 " |
| 130 | + "8.853 0 0 1-.481 1.078 6.688 6.688 0 0 1-.597.933zM8.5 11.909v3.014c.67-.204 " |
| 131 | + "1.335-.82 1.887-1.855.143-.268.276-.56.395-.872A12.63 12.63 0 0 0 8.5 11.91zm" |
| 132 | + "3.555-.401c.57.185 1.095.409 1.565.667A6.963 6.963 0 0 0 14.982 8.5h-2.49a1" |
| 133 | + "3.36 13.36 0 0 1-.437 3.008zM14.982 7.5a6.963 6.963 0 0 0-1.362-3.675c-.47.25" |
| 134 | + "8-.995.482-1.565.667.248.92.4 1.938.437 3.008h2.49zM11.27 2.461c.177.334.339.6" |
| 135 | + "94.482 1.078a8.368 8.368 0 0 0 1.196-.49 7.01 7.01 0 0 0-2.275-1.52c.218.283.4" |
| 136 | + "18.597.597.932zm-.488 1.343a7.765 7.765 0 0 0-.395-.872C9.835 1.897 9.17 1.282 " |
| 137 | + '8.5 1.077V4.09c.81-.03 1.577-.13 2.282-.287z"></path></svg>' |
| 138 | +) |
| 139 | + |
| 140 | +# Theme options configuration |
61 | 141 | html_theme_options = { |
62 | 142 | "navigation_with_keys": True, |
| 143 | + # CSS variables |
63 | 144 | "dark_css_variables": { |
64 | 145 | "admonition-title-font-size": "0.95rem", |
65 | 146 | "admonition-font-size": "0.92rem", |
|
68 | 149 | "admonition-title-font-size": "0.95rem", |
69 | 150 | "admonition-font-size": "0.92rem", |
70 | 151 | }, |
| 152 | + # Logo configuration |
71 | 153 | "light_logo": "hydrogram-light.png", |
72 | 154 | "dark_logo": "hydrogram-dark.png", |
73 | | - "footer_icons": [ # all these icons are from https://react-icons.github.io/react-icons |
| 155 | + # Footer icons |
| 156 | + "footer_icons": [ |
74 | 157 | { |
75 | 158 | "name": "Telegram Channel", |
76 | 159 | "url": "https://t.me/HydrogramNews/", |
77 | | - "html": ( |
78 | | - '<svg stroke="currentColor" fill="currentColor" stroke-width="0" ' |
79 | | - 'viewBox="0 0 16 16" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">' |
80 | | - '<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8.287 5.906c-.778.324-2.334.994' |
81 | | - "-4.666 2.01-.378.15-.577.298-.595.442-.03.243.275.339.69.47l.175.055c.408.133." |
82 | | - "958.288 1.243.294.26.006.549-.1.868-.32 2.179-1.471 3.304-2.214 3.374-2.23.0" |
83 | | - "5-.012.12-.026.166.016.047.041.042.12.037.141-.03.129-1.227 1.241-1.846 1.81" |
84 | | - "7-.193.18-.33.307-.358.336a8.154 8.154 0 0 1-.188.186c-.38.366-.664.64.015 1.08" |
85 | | - "8.327.216.589.393.85.571.284.194.568.387.936.629.093.06.183.125.27.187.331.23" |
86 | | - "6.63.448.997.414.214-.02.435-.22.547-.82.265-1.417.786-4.486.906-5.751a1.426 " |
87 | | - "1.426 0 0 0-.013-.315.337.337 0 0 0-.114-.217.526.526 0 0 0-.31-.093c-.3.005-.7" |
88 | | - '63.166-2.984 1.09z"></path></svg>' |
89 | | - ), |
| 160 | + "html": TELEGRAM_ICON, |
90 | 161 | "class": "", |
91 | 162 | }, |
92 | 163 | { |
93 | 164 | "name": "GitHub Organization", |
94 | 165 | "url": "https://github.com/hydrogram/", |
95 | | - "html": ( |
96 | | - '<svg stroke="currentColor" fill="currentColor" stroke-width="0" ' |
97 | | - 'viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 ' |
98 | | - "2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.4" |
99 | | - "9-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23" |
100 | | - ".82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 " |
101 | | - "0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.2" |
102 | | - "7 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.5" |
103 | | - "1.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 " |
104 | | - '1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z">' |
105 | | - "</path></svg>" |
106 | | - ), |
| 166 | + "html": GITHUB_ICON, |
107 | 167 | "class": "", |
108 | 168 | }, |
109 | 169 | { |
110 | 170 | "name": "Hydrogram Website", |
111 | 171 | "url": "https://hydrogram.org/", |
112 | | - "html": ( |
113 | | - '<svg stroke="currentColor" fill="currentColor" stroke-width="0" ' |
114 | | - 'viewBox="0 0 16 16" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">' |
115 | | - '<path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8zm7.5-6.923c-.67.204-1.335.82-1.887 ' |
116 | | - "1.855-.143.268-.276.56-.395.872.705.157 1.472.257 2.282.287V1.077zM4.249 3.53" |
117 | | - "9c.142-.384.304-.744.481-1.078a6.7 6.7 0 0 1 .597-.933A7.01 7.01 0 0 0 3.051 " |
118 | | - "3.05c.362.184.763.349 1.198.49zM3.509 7.5c.036-1.07.188-2.087.436-3.008a9.124 " |
119 | | - "9.124 0 0 1-1.565-.667A6.964 6.964 0 0 0 1.018 7.5h2.49zm1.4-2.741a12.344 " |
120 | | - "12.344 0 0 0-.4 2.741H7.5V5.091c-.91-.03-1.783-.145-2.591-.332zM8.5 5.09V7.5h" |
121 | | - "2.99a12.342 12.342 0 0 0-.399-2.741c-.808.187-1.681.301-2.591.332zM4.51 8.5c.03" |
122 | | - "5.987.176 1.914.399 2.741A13.612 13.612 0 0 1 7.5 10.91V8.5H4.51zm3.99 0v2.409" |
123 | | - "c.91.03 1.783.145 2.591.332.223-.827.364-1.754.4-2.741H8.5zm-3.282 3.696c.12.31" |
124 | | - "2.252.604.395.872.552 1.035 1.218 1.65 1.887 1.855V11.91c-.81.03-1.577.13-2.28" |
125 | | - "2.287zm.11 2.276a6.696 6.696 0 0 1-.598-.933 8.853 8.853 0 0 1-.481-1.079 8.38 " |
126 | | - "8.38 0 0 0-1.198.49 7.01 7.01 0 0 0 2.276 1.522zm-1.383-2.964A13.36 13.36 0 0 1" |
127 | | - " 3.508 8.5h-2.49a6.963 6.963 0 0 0 1.362 3.675c.47-.258.995-.482 1.565-.667zm" |
128 | | - "6.728 2.964a7.009 7.009 0 0 0 2.275-1.521 8.376 8.376 0 0 0-1.197-.49 8.853 " |
129 | | - "8.853 0 0 1-.481 1.078 6.688 6.688 0 0 1-.597.933zM8.5 11.909v3.014c.67-.204 " |
130 | | - "1.335-.82 1.887-1.855.143-.268.276-.56.395-.872A12.63 12.63 0 0 0 8.5 11.91zm" |
131 | | - "3.555-.401c.57.185 1.095.409 1.565.667A6.963 6.963 0 0 0 14.982 8.5h-2.49a1" |
132 | | - "3.36 13.36 0 0 1-.437 3.008zM14.982 7.5a6.963 6.963 0 0 0-1.362-3.675c-.47.25" |
133 | | - "8-.995.482-1.565.667.248.92.4 1.938.437 3.008h2.49zM11.27 2.461c.177.334.339.6" |
134 | | - "94.482 1.078a8.368 8.368 0 0 0 1.196-.49 7.01 7.01 0 0 0-2.275-1.52c.218.283.4" |
135 | | - "18.597.597.932zm-.488 1.343a7.765 7.765 0 0 0-.395-.872C9.835 1.897 9.17 1.282 " |
136 | | - '8.5 1.077V4.09c.81-.03 1.577-.13 2.282-.287z"></path></svg>' |
137 | | - ), |
| 172 | + "html": WEBSITE_ICON, |
138 | 173 | "class": "", |
139 | 174 | }, |
140 | 175 | ], |
|
0 commit comments