Skip to content

Commit c6b370d

Browse files
committed
docs: switch to Zensical
1 parent 666c9d1 commit c6b370d

8 files changed

Lines changed: 365 additions & 300 deletions

File tree

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
persist-credentials: false
3737

3838
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
39-
- run: uv run mkdocs build --strict
39+
- run: uv run zensical build --strict
4040

4141
- name: Upload artifact
4242
uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,6 @@ docs/_build/
7373

7474
# mypy
7575
.mypy_cache/
76+
77+
# Zensical
78+
site/

docs/api-reference.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# API Reference
2+
13
!!! note
24
This library will only ever raise the errors explicitly documented for each method. If you encounter any other error, please consider it a bug and report it.
35

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# atomicwriter
1+
# AtomicWriter
22

33
[![Tests](https://img.shields.io/github/actions/workflow/status/Ravencentric/atomicwriter/tests.yml?label=tests)](https://github.com/Ravencentric/atomicwriter/actions/workflows/tests.yml)
44
[![Build](https://img.shields.io/github/actions/workflow/status/Ravencentric/atomicwriter/release.yml?label=build)](https://github.com/Ravencentric/atomicwriter/actions/workflows/release.yml)

mkdocs.yml

Lines changed: 0 additions & 81 deletions
This file was deleted.

pyproject.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,8 @@ dev = [
3535
{ include-group = "lint" },
3636
]
3737
docs = [
38-
"mkdocs-autorefs>=1.4.0",
39-
"mkdocs-material>=9.6.7",
4038
"mkdocstrings[python]>=0.28.2",
39+
"zensical>=0.0.38",
4140
]
4241
lint = [
4342
"mypy>=1.15.0",

uv.lock

Lines changed: 98 additions & 215 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

zensical.toml

Lines changed: 259 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,259 @@
1+
[project]
2+
site_name = "AtomicWriter"
3+
site_description = "Cross-platform atomic file writer for all-or-nothing operations."
4+
site_author = "Ravencentric"
5+
site_url = "https://ravencentric.cc/atomicwriter/"
6+
repo_url = "https://github.com/Ravencentric/atomicwriter"
7+
repo_name = "Ravencentric/atomicwriter"
8+
copyright = """
9+
Copyright © 2025-present Ravencentric
10+
"""
11+
nav = [
12+
{ "Home" = "index.md" },
13+
{ "API Reference" = "api-reference.md" },
14+
]
15+
16+
[project.theme]
17+
language = "en"
18+
features = [
19+
# Zensical includes an announcement bar. This feature allows users to
20+
# dismiss it when they have read the announcement.
21+
# https://zensical.org/docs/setup/header/#announcement-bar
22+
"announce.dismiss",
23+
24+
# If you have a repository configured and turn on this feature, Zensical
25+
# will generate an edit button for the page. This works for common
26+
# repository hosting services.
27+
# https://zensical.org/docs/setup/repository/#content-actions
28+
"content.action.edit",
29+
30+
# If you have a repository configured and turn on this feature, Zensical
31+
# will generate a button that allows the user to view the Markdown
32+
# code for the current page.
33+
# https://zensical.org/docs/setup/repository/#content-actions
34+
"content.action.view",
35+
36+
# Code annotations allow you to add an icon with a tooltip to your
37+
# code blocks to provide explanations at crucial points.
38+
# https://zensical.org/docs/authoring/code-blocks/#code-annotations
39+
"content.code.annotate",
40+
41+
# This feature turns on a button in code blocks that allow users to
42+
# copy the content to their clipboard without first selecting it.
43+
# https://zensical.org/docs/authoring/code-blocks/#code-copy-button
44+
"content.code.copy",
45+
46+
# Code blocks can include a button to allow for the selection of line
47+
# ranges by the user.
48+
# https://zensical.org/docs/authoring/code-blocks/#code-selection-button
49+
"content.code.select",
50+
51+
# Zensical can render footnotes as inline tooltips, so the user can read
52+
# the footnote without leaving the context of the document.
53+
# https://zensical.org/docs/authoring/footnotes/#footnote-tooltips
54+
"content.footnote.tooltips",
55+
56+
# If you have many content tabs that have the same titles (e.g., "Python",
57+
# "JavaScript", "Cobol"), this feature causes all of them to switch to
58+
# at the same time when the user chooses their language in one.
59+
# https://zensical.org/docs/authoring/content-tabs/#linked-content-tabs
60+
"content.tabs.link",
61+
62+
# With this feature enabled users can add tooltips to links that will be
63+
# displayed when the mouse pointer hovers the link.
64+
# https://zensical.org/docs/authoring/tooltips/#improved-tooltips
65+
"content.tooltips",
66+
67+
# With this feature enabled, Zensical will automatically hide parts
68+
# of the header when the user scrolls past a certain point.
69+
# https://zensical.org/docs/setup/header/#automatic-hiding
70+
# "header.autohide",
71+
72+
# Turn on this feature to expand all collapsible sections in the
73+
# navigation sidebar by default.
74+
# https://zensical.org/docs/setup/navigation/#navigation-expansion
75+
# "navigation.expand",
76+
77+
# This feature turns on navigation elements in the footer that allow the
78+
# user to navigate to a next or previous page.
79+
# https://zensical.org/docs/setup/footer/#navigation
80+
"navigation.footer",
81+
82+
# When section index pages are enabled, documents can be directly attached
83+
# to sections, which is particularly useful for providing overview pages.
84+
# https://zensical.org/docs/setup/navigation/#section-index-pages
85+
"navigation.indexes",
86+
87+
# When instant navigation is enabled, clicks on all internal links will be
88+
# intercepted and dispatched via XHR without fully reloading the page.
89+
# https://zensical.org/docs/setup/navigation/#instant-navigation
90+
"navigation.instant",
91+
92+
# With instant prefetching, your site will start to fetch a page once the
93+
# user hovers over a link. This will reduce the perceived loading time
94+
# for the user.
95+
# https://zensical.org/docs/setup/navigation/#instant-prefetching
96+
"navigation.instant.prefetch",
97+
98+
# In order to provide a better user experience on slow connections when
99+
# using instant navigation, a progress indicator can be enabled.
100+
# https://zensical.org/docs/setup/navigation/#progress-indicator
101+
#"navigation.instant.progress",
102+
103+
# When navigation paths are activated, a breadcrumb navigation is rendered
104+
# above the title of each page
105+
# https://zensical.org/docs/setup/navigation/#navigation-path
106+
"navigation.path",
107+
108+
# When pruning is enabled, only the visible navigation items are included
109+
# in the rendered HTML, reducing the size of the built site by 33% or more.
110+
# https://zensical.org/docs/setup/navigation/#navigation-pruning
111+
#"navigation.prune",
112+
113+
# When sections are enabled, top-level sections are rendered as groups in
114+
# the sidebar for viewports above 1220px, but remain as-is on mobile.
115+
# https://zensical.org/docs/setup/navigation/#navigation-sections
116+
"navigation.sections",
117+
118+
# When tabs are enabled, top-level sections are rendered in a menu layer
119+
# below the header for viewports above 1220px, but remain as-is on mobile.
120+
# https://zensical.org/docs/setup/navigation/#navigation-tabs
121+
#"navigation.tabs",
122+
123+
# When sticky tabs are enabled, navigation tabs will lock below the header
124+
# and always remain visible when scrolling down.
125+
# https://zensical.org/docs/setup/navigation/#sticky-navigation-tabs
126+
#"navigation.tabs.sticky",
127+
128+
# A back-to-top button can be shown when the user, after scrolling down,
129+
# starts to scroll up again.
130+
# https://zensical.org/docs/setup/navigation/#back-to-top-button
131+
"navigation.top",
132+
133+
# When anchor tracking is enabled, the URL in the address bar is
134+
# automatically updated with the active anchor as highlighted in the table
135+
# of contents.
136+
# https://zensical.org/docs/setup/navigation/#anchor-tracking
137+
"navigation.tracking",
138+
139+
# When search highlighting is enabled and a user clicks on a search result,
140+
# Zensical will highlight all occurrences after following the link.
141+
# https://zensical.org/docs/setup/search/#search-highlighting
142+
"search.highlight",
143+
144+
# When anchor following for the table of contents is enabled, the sidebar
145+
# is automatically scrolled so that the active anchor is always visible.
146+
# https://zensical.org/docs/setup/navigation/#anchor-following
147+
# "toc.follow",
148+
149+
# When navigation integration for the table of contents is enabled, it is
150+
# always rendered as part of the navigation sidebar on the left.
151+
# https://zensical.org/docs/setup/navigation/#navigation-integration
152+
#"toc.integrate",
153+
]
154+
155+
# ----------------------------------------------------------------------------
156+
# In the "font" subsection you can configure the fonts used. By default, fonts
157+
# are loaded from Google Fonts, giving you a wide range of choices from a set
158+
# of suitably licensed fonts. There are options for a normal text font and for
159+
# a monospaced font used in code blocks.
160+
# ----------------------------------------------------------------------------
161+
#[project.theme.font]
162+
#text = "Inter"
163+
#code = "Jetbrains Mono"
164+
165+
# ----------------------------------------------------------------------------
166+
# In the "palette" subsection you can configure options for the color scheme.
167+
# You can configure different color schemes, e.g., to turn on dark mode,
168+
# that the user can switch between. Each color scheme can be further
169+
# customized.
170+
#
171+
# Read more:
172+
# - https://zensical.org/docs/setup/colors/
173+
# ----------------------------------------------------------------------------
174+
# Palette toggle for automatic mode
175+
[[project.theme.palette]]
176+
media = "(prefers-color-scheme)"
177+
toggle.icon = "lucide/sun-moon"
178+
toggle.name = "Switch to light mode"
179+
180+
# Palette toggle for light mode
181+
[[project.theme.palette]]
182+
media = "(prefers-color-scheme: light)"
183+
scheme = "default"
184+
toggle.icon = "lucide/sun"
185+
toggle.name = "Switch to dark mode"
186+
187+
# Palette toggle for dark mode
188+
[[project.theme.palette]]
189+
media = "(prefers-color-scheme: dark)"
190+
scheme = "slate"
191+
toggle.icon = "lucide/moon"
192+
toggle.name = "Switch to system preference"
193+
194+
# ----------------------------------------------------------------------------
195+
# In this section you can configure the Markdown extensions that are used when
196+
# rendering your documentation. We enable the most useful extensions by default,
197+
# but you can customize this list to your needs.
198+
#
199+
# Read more:
200+
# - https://zensical.org/docs/setup/extensions/
201+
# ----------------------------------------------------------------------------
202+
[project.markdown_extensions.abbr]
203+
[project.markdown_extensions.admonition]
204+
[project.markdown_extensions.attr_list]
205+
[project.markdown_extensions.def_list]
206+
[project.markdown_extensions.footnotes]
207+
[project.markdown_extensions.md_in_html]
208+
[project.markdown_extensions.toc]
209+
permalink = true
210+
[project.markdown_extensions.pymdownx.arithmatex]
211+
generic = true
212+
[project.markdown_extensions.pymdownx.betterem]
213+
[project.markdown_extensions.pymdownx.caret]
214+
[project.markdown_extensions.pymdownx.details]
215+
[project.markdown_extensions.pymdownx.emoji]
216+
emoji_generator = "zensical.extensions.emoji.to_svg"
217+
emoji_index = "zensical.extensions.emoji.twemoji"
218+
[project.markdown_extensions.pymdownx.highlight]
219+
anchor_linenums = true
220+
line_spans = "__span"
221+
pygments_lang_class = true
222+
[project.markdown_extensions.pymdownx.inlinehilite]
223+
[project.markdown_extensions.pymdownx.keys]
224+
[project.markdown_extensions.pymdownx.magiclink]
225+
[project.markdown_extensions.pymdownx.mark]
226+
[project.markdown_extensions.pymdownx.smartsymbols]
227+
[project.markdown_extensions.pymdownx.superfences]
228+
custom_fences = [
229+
{ name = "mermaid", class = "mermaid", format = "pymdownx.superfences.fence_code_format" }
230+
]
231+
[project.markdown_extensions.pymdownx.tabbed]
232+
alternate_style = true
233+
combine_header_slug = true
234+
[project.markdown_extensions.pymdownx.tasklist]
235+
custom_checkbox = true
236+
[project.markdown_extensions.pymdownx.tilde]
237+
238+
# ----------------------------------------------------------------------------
239+
# https://zensical.org/docs/setup/extensions/mkdocstrings/
240+
# ----------------------------------------------------------------------------
241+
[project.plugins.mkdocstrings.handlers.python]
242+
inventories = ["https://docs.python.org/3/objects.inv"]
243+
paths = ["python"]
244+
245+
[project.plugins.mkdocstrings.handlers.python.options]
246+
members_order = "source"
247+
allow_inspection = false
248+
docstring_style = "numpy"
249+
show_root_heading = true
250+
show_root_full_path = false
251+
show_signature_annotations = true
252+
separate_signature = true
253+
show_symbol_type_heading = true
254+
show_symbol_type_toc = true
255+
signature_crossrefs = true
256+
merge_init_into_class = true
257+
filters = ["!^_", "^__init__$"]
258+
find_stubs_package = true
259+
show_source = false

0 commit comments

Comments
 (0)