Skip to content

Commit e46a86c

Browse files
committed
docs: initialize documentation
1 parent 3bc02dc commit e46a86c

File tree

10 files changed

+527
-0
lines changed

10 files changed

+527
-0
lines changed

.github/workflows/docs.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Documentation
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- main
8+
paths:
9+
- 'docs/**'
10+
- '.github/workflows/docs.yml'
11+
12+
permissions:
13+
contents: read
14+
pages: write
15+
id-token: write
16+
17+
jobs:
18+
deploy:
19+
environment:
20+
name: github-pages
21+
url: ${{ steps.deployment.outputs.page_url }}
22+
runs-on: ubuntu-latest
23+
steps:
24+
- uses: actions/configure-pages@v5
25+
26+
- uses: actions/checkout@v5
27+
28+
- uses: actions/setup-python@v5
29+
with:
30+
python-version: 3.x
31+
32+
- run: pip install zensical
33+
working-directory: docs/
34+
35+
- run: zensical build --clean
36+
working-directory: docs/
37+
38+
- uses: actions/upload-pages-artifact@v4
39+
with:
40+
path: docs/site
41+
42+
- uses: actions/deploy-pages@v4

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
coverage/
44

5+
docs/.venv/
6+
docs/site/
7+
58

69
### Rust template
710
# Generated by Cargo

docs/.python-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.12
324 KB
Loading

docs/docs/index.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
icon: lucide/home
3+
---
4+
5+
# About ReplicaT4
6+
7+
An **S3-compatible proxy server that intercepts and replicates object storage operations across multiple
8+
backends** simultaneously. Supports any S3-compatible storage (AWS S3, MinIO, Backblaze B2, etc.) as
9+
replication targets

docs/docs/motivation.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
icon: lucide/circle-question-mark
3+
---
4+
5+
# Motivation
6+
7+
8+
![](./assets/imgs/aws-redundancy.png)
9+

docs/pyproject.toml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[project]
2+
name = "docs"
3+
version = "0.1.0"
4+
description = "ReplicaT4 Documentation"
5+
readme = "../README.md"
6+
requires-python = ">=3.12"
7+
dependencies = [
8+
"zensical>=0.0.9",
9+
]

docs/uv.lock

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

docs/zensical.toml

Lines changed: 304 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,304 @@
1+
# ============================================================================
2+
#
3+
# The configuration produced by default is meant to highlight the features
4+
# that Zensical provides and to serve as a starting point for your own
5+
# projects.
6+
#
7+
# ============================================================================
8+
9+
[project]
10+
11+
# The site_name is shown in the page header and the browser window title
12+
#
13+
# Read more: https://zensical.org/docs/setup/basics/#site_name
14+
site_name = "ReplicaT4 Documentation"
15+
16+
# The site_description is included in the HTML head and should contain a
17+
# meaningful description of the site content for use by search engines.
18+
#
19+
# Read more: https://zensical.org/docs/setup/basics/#site_description
20+
site_description = "Documentation for ReplicaT4 S3 Proxy"
21+
22+
# The site_author attribute. This is used in the HTML head element.
23+
#
24+
# Read more: https://zensical.org/docs/setup/basics/#site_author
25+
site_author = "Diego Barreiro Perez"
26+
27+
# The site_url is the canonical URL for your site. When building online
28+
# documentation you should set this.
29+
# Read more: https://zensical.org/docs/setup/basics/#site_url
30+
site_url = "https://barreeeiroo.github.io/replicat4/"
31+
32+
# The copyright notice appears in the page footer and can contain an HTML
33+
# fragment.
34+
#
35+
# Read more: https://zensical.org/docs/setup/basics/#copyright
36+
copyright = """
37+
Copyright © 2025 Diego Barreiro Perez
38+
"""
39+
40+
# Zensical supports both implicit navigation and explicitly defined navigation.
41+
# If you decide not to define a navigation here then Zensical will simply
42+
# derive the navigation structure from the directory structure of your
43+
# "docs_dir". The definition below demonstrates how a navigation structure
44+
# can be defined using TOML syntax.
45+
#
46+
# Read more: https://zensical.org/docs/setup/navigation/
47+
# nav = [
48+
# { "Get started" = "index.md" },
49+
# { "Markdown in 5min" = "markdown.md" },
50+
# ]
51+
52+
# With the "extra_css" option you can add your own CSS styling to customize
53+
# your Zensical project according to your needs. You can add any number of
54+
# CSS files.
55+
#
56+
# The path provided should be relative to the "docs_dir".
57+
#
58+
# Read more: https://zensical.org/docs/customization/#additional-css
59+
#
60+
#extra_css = ["assets/stylesheets/extra.css"]
61+
62+
# With the `extra_javascript` option you can add your own JavaScript to your
63+
# project to customize the behavior according to your needs.
64+
#
65+
# The path provided should be relative to the "docs_dir".
66+
#
67+
# Read more: https://zensical.org/docs/customization/#additional-javascript
68+
#extra_javascript = ["assets/javascript/extra.js"]
69+
70+
# ----------------------------------------------------------------------------
71+
# Section for configuring theme options
72+
# ----------------------------------------------------------------------------
73+
[project.theme]
74+
75+
# change this to "classic" to use the traditional Material for MkDocs look.
76+
#variant = "classic"
77+
78+
# Zensical allows you to override specific blocks, partials, or whole
79+
# templates as well as to define your own templates. To do this, uncomment
80+
# the custom_dir setting below and set it to a directory in which you
81+
# keep your template overrides.
82+
#
83+
# Read more:
84+
# - https://zensical.org/docs/customization/#extending-the-theme
85+
#
86+
#custom_dir = "overrides"
87+
88+
# With the "favicon" option you can set your own image to use as the icon
89+
# browsers will use in the browser title bar or tab bar. The path provided
90+
# must be relative to the "docs_dir".
91+
#
92+
# Read more:
93+
# - https://zensical.org/docs/setup/logo-and-icons/#favicon
94+
# - https://developer.mozilla.org/en-US/docs/Glossary/Favicon
95+
#
96+
#favicon = "assets/images/favicon.png"
97+
98+
# Zensical supports more than 60 different languages. This means that the
99+
# labels and tooltips that Zensical's templates produce are translated.
100+
# The "language" option allows you to set the language used. This language
101+
# is also indicated in the HTML head element to help with accessibility
102+
# and guide search engines and translation tools.
103+
#
104+
# The default language is "en" (English). It is possible to create
105+
# sites with multiple languages and configure a language selector. See
106+
# the documentation for details.
107+
#
108+
# Read more:
109+
# - https://zensical.org/docs/setup/language/
110+
#
111+
language = "en"
112+
113+
# Zensical provides a number of feature toggles that change the behavior
114+
# of the documentation site.
115+
features = [
116+
# Zensical includes an announcement bar. This feature allows users to
117+
# dismiss it then they have read the announcement.
118+
# https://zensical.org/docs/setup/header/#announcement-bar
119+
"announce.dismiss",
120+
121+
# If you have a repository configured and turn feature this on, Zensical
122+
# will generate an edit button for the page. This works for common
123+
# repository hosting services.
124+
# https://zensical.org/docs/setup/repository/#code-actions
125+
#"content.action.edit",
126+
127+
# If you have a repository configured and turn feature this on, Zensical
128+
# will generate a button that allows the user to view the Markdown
129+
# code for the current page.
130+
# https://zensical.org/docs/setup/repository/#code-actions
131+
#"content.action.view",
132+
133+
# Code annotations allow you to add an icon with a tooltip to your
134+
# code blocks to provide explanations at crucial points.
135+
# https://zensical.org/docs/authoring/code-blocks/#code-annotations
136+
"content.code.annotate",
137+
138+
# This feature turns on a button in code blocks that allow users to
139+
# copy the content to their clipboard without first selecting it.
140+
# https://zensical.org/docs/authoring/code-blocks/#code-copy-button
141+
"content.code.copy",
142+
143+
# Code blocks can include a button to allow for the selection of line
144+
# ranges by the user.
145+
# https://zensical.org/docs/authoring/code-blocks/#code-selection-button
146+
"content.code.select",
147+
148+
# Zensical can render footnotes as inline tooltips, so the user can read
149+
# the footnote without leaving the context of the document.
150+
# https://zensical.org/docs/authoring/footnotes/#footnote-tooltips
151+
"content.footnote.tooltips",
152+
153+
# If you have many content tabs that have the same titles (e.g., "Python",
154+
# "JavaScript", "Cobol"), this feature causes all of them to switch to
155+
# at the same time when the user chooses their language in one.
156+
# https://zensical.org/docs/authoring/content-tabs/#linked-content-tabs
157+
"content.tabs.link",
158+
159+
# TODO: not sure I understand this one? Is there a demo of this in the docs?
160+
# https://zensical.org/docs/authoring/tooltips/#improved-tooltips
161+
"content.tooltips",
162+
163+
# With this feature enabled, Zensical will automatically hide parts
164+
# of the header when the user scrolls past a certain point.
165+
# https://zensical.org/docs/setup/header/#automatic-hiding
166+
# "header.autohide",
167+
168+
# Turn on this feature to expand all collapsible sections in the
169+
# navigation sidebar by default.
170+
# https://zensical.org/docs/setup/navigation/#navigation-expansion
171+
# "navigation.expand",
172+
173+
# This feature turns on navigation elements in the footer that allow the
174+
# user to navigate to a next or previous page.
175+
# https://zensical.org/docs/setup/footer/#navigation
176+
"navigation.footer",
177+
178+
# When section index pages are enabled, documents can be directly attached
179+
# to sections, which is particularly useful for providing overview pages.
180+
# https://zensical.org/docs/setup/navigation/#section-index-pages
181+
"navigation.indexes",
182+
183+
# When instant navigation is enabled, clicks on all internal links will be
184+
# intercepted and dispatched via XHR without fully reloading the page.
185+
# https://zensical.org/docs/setup/navigation/#instant-navigation
186+
"navigation.instant",
187+
188+
# With instant prefetching, your site will start to fetch a page once the
189+
# user hovers over a link. This will reduce the perceived loading time
190+
# for the user.
191+
# https://zensical.org/docs/setup/navigation/#instant-prefetching
192+
"navigation.instant.prefetch",
193+
194+
# In order to provide a better user experience on slow connections when
195+
# using instant navigation, a progress indicator can be enabled.
196+
# https://zensical.org/docs/setup/navigation/#progress-indicator
197+
#"navigation.instant.progress",
198+
199+
# When navigation paths are activated, a breadcrumb navigation is rendered
200+
# above the title of each page
201+
# https://zensical.org/docs/setup/navigation/#navigation-path
202+
"navigation.path",
203+
204+
# When pruning is enabled, only the visible navigation items are included
205+
# in the rendered HTML, reducing the size of the built site by 33% or more.
206+
# https://zensical.org/docs/setup/navigation/#navigation-pruning
207+
#"navigation.prune",
208+
209+
# When sections are enabled, top-level sections are rendered as groups in
210+
# the sidebar for viewports above 1220px, but remain as-is on mobile.
211+
# https://zensical.org/docs/setup/navigation/#navigation-sections
212+
"navigation.sections",
213+
214+
# When tabs are enabled, top-level sections are rendered in a menu layer
215+
# below the header for viewports above 1220px, but remain as-is on mobile.
216+
# https://zensical.org/docs/setup/navigation/#navigation-tabs
217+
#"navigation.tabs",
218+
219+
# When sticky tabs are enabled, navigation tabs will lock below the header
220+
# and always remain visible when scrolling down.
221+
# https://zensical.org/docs/setup/navigation/#sticky-navigation-tabs
222+
#"navigation.tabs.sticky",
223+
224+
# A back-to-top button can be shown when the user, after scrolling down,
225+
# starts to scroll up again.
226+
# https://zensical.org/docs/setup/navigation/#back-to-top-button
227+
"navigation.top",
228+
229+
# When anchor tracking is enabled, the URL in the address bar is
230+
# automatically updated with the active anchor as highlighted in the table
231+
# of contents.
232+
# https://zensical.org/docs/setup/navigation/#anchor-tracking
233+
"navigation.tracking",
234+
235+
# When search highlighting is enabled and a user clicks on a search result,
236+
# Zensical will highlight all occurrences after following the link.
237+
# https://zensical.org/docs/setup/search/#search-highlighting
238+
"search.highlight",
239+
240+
# When anchor following for the table of contents is enabled, the sidebar
241+
# is automatically scrolled so that the active anchor is always visible.
242+
# https://zensical.org/docs/setup/navigation/#anchor-following
243+
# "toc.follow",
244+
245+
# When navigation integration for the table of contents is enabled, it is
246+
# always rendered as part of the navigation sidebar on the left.
247+
# https://zensical.org/docs/setup/navigation/#navigation-integration
248+
#"toc.integrate",
249+
]
250+
251+
# ----------------------------------------------------------------------------
252+
# In the "palette" subsection you can configure options for the color scheme.
253+
# You can configure different color # schemes, e.g., to turn on dark mode,
254+
# that the user can switch between. Each color scheme can be further
255+
# customized.
256+
#
257+
# Read more:
258+
# - https://zensical.org/docs/setup/colors/
259+
# ----------------------------------------------------------------------------
260+
[[project.theme.palette]]
261+
scheme = "default"
262+
toggle.icon = "lucide/sun"
263+
toggle.name = "Switch to dark mode"
264+
265+
[[project.theme.palette]]
266+
scheme = "slate"
267+
toggle.icon = "lucide/moon"
268+
toggle.name = "Switch to light mode"
269+
270+
# ----------------------------------------------------------------------------
271+
# In the "font" subsection you can configure the fonts used. By default, fonts
272+
# are loaded from Google Fonts, giving you a wide range of choices from a set
273+
# of suitably licensed fonts. There are options for a normal text font and for
274+
# a monospaced font used in code blocks.
275+
# ----------------------------------------------------------------------------
276+
#[project.theme.font]
277+
#text = "Inter"
278+
#code = "Jetbrains Mono"
279+
280+
# ----------------------------------------------------------------------------
281+
# You can configure your own logo to be shown in the header using the "logo"
282+
# option in the "icons" subsection. The logo can be a path to a file in your
283+
# "docs_dir" or it can be a path to an icon.
284+
#
285+
# Likewise, you can customize the logo used for the repository section of the
286+
# header. Zensical derives the default logo for this from the repository URL.
287+
# See below...
288+
#
289+
# There are other icons you can customize. See the documentation for details.
290+
#
291+
# Read more:
292+
# - https://zensical.org/docs/setup/logo-and-icons
293+
# - https://zensical.org/docs/authoring/icons-emojis/#search
294+
# ----------------------------------------------------------------------------
295+
#[project.theme.icon]
296+
#logo = "lucide/smile"
297+
#repo = "lucide/smile"
298+
299+
# ----------------------------------------------------------------------------
300+
# The "extra" section contains miscellaneous settings.
301+
# ----------------------------------------------------------------------------
302+
#[[project.extra.social]]
303+
#icon = "fontawesome/brands/github"
304+
#link = "https://github.com/user/repo"

mise.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
[tools]
2+
python = "3.12"
23
rust = "1.91"

0 commit comments

Comments
 (0)