Skip to content

Commit 0e632fa

Browse files
authored
feat: stable kaamiki release (14.2.2026) (#170)
* build: theme name is now official * chore: add pause on hover * refactor: doc-search is now fully deprecated * refactor: remove deprecated code * style: remove doc-search * refactor(kaamiki): modernise styles Signed-off-by: Akshay Mestry <xa@mes3.dev>
1 parent 717d0d4 commit 0e632fa

28 files changed

Lines changed: 1061 additions & 1850 deletions

.github/workflows/cd.yml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#
44
# Author: Akshay Mestry <xa@mes3.dev>
55
# Created on: 26 August, 2025
6-
# Last updated on: 02 November, 2025
6+
# Last updated on: 15 February, 2026
77

88
name: Continuous Deployment
99
run-name: Started ${{ github.workflow }} (CD) workflow
@@ -17,13 +17,10 @@ on:
1717
default: "production"
1818

1919
env:
20-
ARTIFACT_NAME: xa-pages
20+
ARTIFACT_NAME: webpages
2121
OUTPUT_DIR: docs/build/
2222
SOURCE_DIR: docs/source/
23-
PYTHON_VERSION: "3.13.2"
24-
DOCSEARCH_APP_ID: ${{ secrets.DOCSEARCH_APP_ID }}
25-
DOCSEARCH_API_KEY: ${{ secrets.DOCSEARCH_API_KEY }}
26-
DOCSEARCH_INDEX_NAME: ${{ secrets.DOCSEARCH_INDEX_NAME }}
23+
PYTHON_VERSION: "3.13.7"
2724

2825
permissions:
2926
contents: write

.github/workflows/ci.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#
44
# Author: Akshay Mestry <xa@mes3.dev>
55
# Created on: 26 August, 2025
6-
# Last updated on: 02 November, 2025
6+
# Last updated on: 14 February, 2026
77

88
name: Continuous Integration
99
run-name: Started ${{ github.workflow }} (CI) workflow
@@ -21,10 +21,7 @@ on:
2121
env:
2222
OUTPUT_DIR: docs/build/
2323
SOURCE_DIR: docs/source/
24-
PYTHON_VERSION: "3.13.2"
25-
DOCSEARCH_APP_ID: ${{ secrets.DOCSEARCH_APP_ID }}
26-
DOCSEARCH_API_KEY: ${{ secrets.DOCSEARCH_API_KEY }}
27-
DOCSEARCH_INDEX_NAME: ${{ secrets.DOCSEARCH_INDEX_NAME }}
24+
PYTHON_VERSION: "3.13.7"
2825

2926
concurrency:
3027
group: ${{ github.workflow }}-${{ github.ref }}

README.rst

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
.. Author: Akshay Mestry <xa@mes3.dev>
22
.. Created on: 21 February, 2025
3-
.. Last updated on: 14 January, 2026
3+
.. Last updated on: 15 February, 2026
44
5-
Akshay's Corner (Website + Sphinx Theme)
5+
Akshay's Corner (Website + Kaamiki Sphinx Theme)
66
===============================================================================
77

8-
This repository holds the code (custom
9-
`Sphinx <https://www.sphinx-doc.org/en/master/index.html>`_ Theme) and content
10-
for my personal portfolio website, `Akshay's Corner <https://xa.mes3.dev>`_,
8+
This repository holds the code for custom
9+
`Sphinx <https://www.sphinx-doc.org/en/master/index.html>`_ Theme, Kaamiki and
10+
the content for my personal portfolio website,
11+
`Akshay's Corner <https://xa.mes3.dev>`_,
1112
which I intend to use as my primary source of teaching and sharing thoughts and
1213
experiments.
1314

@@ -23,9 +24,9 @@ To learn more about this, visit `here <https://xa.mes3.dev>`_.
2324
Contributions
2425
-------------------------------------------------------------------------------
2526

26-
Contributions and/or suggestions are welcome! If you find a bug, have a
27-
feature request, or want to contribute improvements, please open an issue or
28-
submit a pull request on GitHub.
27+
Contributions and/or suggestions for improving Kaamiki (theme) and content are
28+
welcomed! If you find a bug, or want to contribute/suggest improvements,
29+
please open an issue or submit a pull request on GitHub.
2930

3031
License
3132
-------------------------------------------------------------------------------
@@ -35,6 +36,5 @@ This project is dual-licensed under:
3536
- `MIT License`_ for source code and the
3637
- `CC BY 4.0`_ for all the educational content and blog posts.
3738

38-
.. _MIT License: https://github.com/xames3/xa/blob/main/LICENSE-CODE
39-
.. _CC BY 4.0: https://github.com/xames3/xa/blob/main/LICENSE
40-
39+
.. _MIT License: https://github.com/xames3/website/blob/main/LICENSE-CODE
40+
.. _CC BY 4.0: https://github.com/xames3/website/blob/main/LICENSE

docs/Makefile

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ help: ## Show this help and list available targets.
6969
sort | \
7070
awk 'BEGIN {FS = ":.*## *"} {printf " $(COLOUR_BLUE)%-$(TARGET_PADDING)s$(COLOUR_RESET) %s\n", $$1, $$2}'
7171
@echo "\n$(COLOUR_DIM)For executing a particular target, run 'make <target>'.$(COLOUR_RESET)"
72-
@echo "$(COLOUR_DIM)Read complete documentation at: https://github.com/xames3/xa.$(COLOUR_RESET)"
72+
@echo "$(COLOUR_DIM)Read complete documentation at: https://github.com/xames3/website.$(COLOUR_RESET)"
7373

7474
clean: ## Remove build artifacts and temporary directories.
7575
@printf "$(COLOUR_YELLOW)[CLEAN]$(COLOUR_RESET) Removing $(OUTPUT_DIR) directory... "
@@ -78,7 +78,6 @@ clean: ## Remove build artifacts and temporary directories.
7878
(printf "$(COLOUR_RED)FAILED!$(COLOUR_RESET)\n" && exit 1)
7979

8080
check: ## Perform linting checks and report issues, if any.
81-
@$(MAKE) loadenv --no-print-directory
8281
@printf "$(COLOUR_ORANGE)[CHECK]$(COLOUR_RESET) Running linter... "
8382
@$(SPHINX_LINT) $(SPHINX_LINT_FLAGS) $(SOURCE_DIR) >/dev/null && \
8483
printf "$(COLOUR_GREEN)OK!$(COLOUR_RESET)\n" || \
@@ -121,11 +120,3 @@ devserver:
121120
echo "Open $(PROTOCOL)://$(LOCALHOST):$(PORT) in your browser.") && \
122121
printf "$(COLOUR_GREEN)OK!$(COLOUR_RESET)\n" || \
123122
(printf "$(COLOUR_RED)FAILED!$(COLOUR_RESET)\n" && exit 1)
124-
125-
loadenv:
126-
@printf "$(COLOUR_DIM)[VALUE]$(COLOUR_RESET) Loading environment variables... " && \
127-
printf "$(COLOUR_GREEN)OK!$(COLOUR_RESET)\n" || \
128-
(printf "$(COLOUR_RED)FAILED!$(COLOUR_RESET)\n" && exit 1)
129-
-include ../env.bak
130-
export
131-

docs/source/assets/html/contributed.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,7 @@
152152
border: 0;
153153
}
154154

155-
.contributed-at-scroller[data-animated="true"]
156-
.contributed-at-scroller__list:hover {
155+
.contributed-at-scroller[data-animated="true"] .contributed-at-scroller__list:hover {
157156
animation-play-state: paused;
158157
}
159158

docs/source/conf.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
55
Author: Akshay Mestry <xa@mes3.dev>
66
Created on: 22 February, 2025
7-
Last updated on: 10 February, 2026
7+
Last updated on: 14 February, 2026
88
99
This file contains the configuration settings for building my static
1010
website using Sphinx, a popular Python documentation tool. Sphinx is a
@@ -76,14 +76,13 @@
7676

7777
from theme import version as theme_version
7878

79-
8079
if t.TYPE_CHECKING:
8180
from collections.abc import Sequence
8281

8382
project: t.Final[str] = "Akshay's Corner"
8483
author: t.Final[str] = "Akshay Mestry"
8584
project_copyright: str = f"© 2025-{dt.now().year} {author}."
86-
source: t.Final[str] = "https://github.com/xames3/xa"
85+
source: t.Final[str] = "https://github.com/xames3/website"
8786
email: t.Final[str] = "xa@mes3.dev"
8887
version: str = theme_version
8988

@@ -104,7 +103,7 @@
104103
exclude_patterns: Sequence[str] = ["_build"]
105104
smartquotes: bool = False
106105

107-
html_theme: t.Final[str] = "theme"
106+
html_theme: t.Final[str] = "kaamiki"
108107
html_title: str = "amestry"
109108
html_baseurl: t.Final[str] = "https://xa.mes3.dev/"
110109
html_context: dict[str, t.Any] = {
@@ -143,7 +142,6 @@
143142
},
144143
"secondary_toctree_title": "On this page",
145144
"show_breadcrumbs": True,
146-
"show_docsearch": True,
147145
"show_feedback": True,
148146
"show_last_updated_on": True,
149147
"show_previous_next_pages": True,
@@ -153,7 +151,7 @@
153151
"sidebar_buttons": {
154152
"Check my availability": {
155153
"link": "#",
156-
"icon": Markup('<i class="fas far fa-video"></i>'),
154+
"icon": Markup('<i class="far fa-video"></i>'),
157155
"extras": Markup(
158156
'data-cal-link="xames3/quick-chat"'
159157
'data-cal-namespace="quick-chat" '
@@ -162,7 +160,7 @@
162160
},
163161
"Sponsor on GitHub": {
164162
"link": "https://github.com/sponsors/xames3",
165-
"icon": Markup('<i class="fas far fa-heart"></i>'),
163+
"icon": Markup('<i class="far fa-heart"></i>'),
166164
},
167165
},
168166
}

pyproject.toml

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ requires = [ "setuptools", "setuptools-scm" ]
33
build-backend = "setuptools.build_meta"
44

55
[project]
6-
name = "theme"
6+
name = "kaamiki"
77
dynamic = [ "dependencies", "version" ]
88
authors = [
99
{ name = "Akshay Mestry", email = "xa@mes3.dev" }
@@ -21,18 +21,19 @@ classifiers = [
2121
"Operating System :: OS Independent",
2222
"Programming Language :: Python",
2323
"Programming Language :: Python :: 3.13",
24+
"Programming Language :: Python :: 3.14",
2425
"Topic :: Documentation",
2526
"Topic :: Software Development :: Documentation"
2627
]
2728

2829
[project.urls]
29-
homepage = "https://github.com/xames3/xa/"
30-
documentation = "https://github.com/xames3/xa/"
31-
repository = "https://github.com/xames3/xa"
32-
issues = "https://github.com/xames3/xa/issues"
30+
homepage = "https://github.com/xames3/website/"
31+
documentation = "https://github.com/xames3/website/"
32+
repository = "https://github.com/xames3/website"
33+
issues = "https://github.com/xames3/website/issues"
3334

3435
[project.entry-points."sphinx.html_themes"]
35-
theme = "theme"
36+
kaamiki = "theme"
3637

3738
[tool.setuptools]
3839
packages = ["theme"]
@@ -189,13 +190,10 @@ ban-relative-imports = "all"
189190
case-sensitive = true
190191
combine-as-imports = true
191192
force-single-line = true
192-
force-sort-within-sections = false
193193
known-first-party = ["theme"]
194-
lines-after-imports = 2
195194
order-by-type = true
196195
relative-imports-order = "closest-to-furthest"
197196
required-imports = ["from __future__ import annotations"]
198-
single-line-exclusions = ["typing", "collections.abc"]
199197
split-on-trailing-comma = true
200198

201199
[tool.ruff.lint.mccabe]
@@ -259,10 +257,15 @@ warn_unreachable = true
259257
warn_unused_configs = true
260258
warn_unused_ignores = true
261259
disable_error_code = [
260+
"arg-type",
262261
"assignment",
263262
"attr-defined",
263+
"call-overload",
264+
"index",
264265
"method-assign",
266+
"misc",
265267
"name-defined",
268+
"no-any-return",
266269
"operator",
267270
"override",
268271
"union-attr",

theme/__init__.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
55
Author: Akshay Mestry <xa@mes3.dev>
66
Created on: 21 February, 2025
7-
Last updated on: 13 February, 2026
7+
Last updated on: 14 February, 2026
88
99
This module serves as the primary entry point for the Akshay's Corner
1010
Sphinx Theme. It is responsible for initialising the theme, configuring
@@ -27,7 +27,7 @@
2727
[1] Override styles for `sphinx_design` extension by using a
2828
custom CSS.
2929
[2] Override styles for `sphinx_docsearch` extension by using a
30-
custom CSS.
30+
custom CSS (deprecated, removed in February 2026).
3131
3232
.. versionchanged:: 27.8.2025
3333
@@ -51,6 +51,10 @@
5151
instead of `base`, like before. This allows to make the
5252
development simple and easy to follow by keeping the templates
5353
(html/jinja2 templates) separate then the styling components.
54+
.. versionchanged:: 14.2.2026
55+
56+
[1] This theme now has a name, `Kaamiki`.
57+
[2] Officially dropped support for `DocSearch`.
5458
"""
5559

5660
from __future__ import annotations
@@ -74,7 +78,6 @@
7478
from theme.extensions.utils import env_before_read_docs
7579
from theme.extensions.utils import last_updated_date
7680

77-
7881
if t.TYPE_CHECKING:
7982
import types
8083

@@ -83,16 +86,15 @@
8386

8487
logger = logging.getLogger(__name__)
8588

86-
version: str = "14.01.2026"
87-
theme_name: t.Final[str] = "theme"
89+
version: str = "14.02.2026"
90+
theme_name: t.Final[str] = "kaamiki"
8891
theme_path = p.join(p.abspath(p.dirname(__file__)), "base", "templates")
8992
supported_extensions: t.Sequence[str] = (
9093
"sphinx_carousel.carousel",
9194
"sphinx_design",
9295
"sphinxext.opengraph",
9396
)
9497

95-
9698
unmodified = StandaloneHTMLBuilder.copy_theme_static_files
9799

98100

@@ -180,7 +182,6 @@ def setup(app: Sphinx) -> dict[str, str | bool]:
180182
app.setup_extension(extension)
181183
app.add_html_theme(theme_name, theme_path)
182184
app.add_css_file("sphinx-design.css", priority=800)
183-
app.add_css_file("doc-search.css", priority=800)
184185
app.add_js_file("base.js", loading_method="defer")
185186
app.add_js_file("theme.js", loading_method="defer")
186187
for role in inspect.getmembers(roles, inspect.isfunction):

0 commit comments

Comments
 (0)