doc(ARCHITECTURE): init
This commit is contained in:
parent
e38eafc1ac
commit
effe9c435f
1 changed files with 80 additions and 0 deletions
80
ARCHITECTURE.md
Normal file
80
ARCHITECTURE.md
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
# Architecture of Tiara's Sphinx Theme Reference Implementation
|
||||
|
||||
This document outlines the high-level architecture of Tiara's Sphinx Theming
|
||||
Reference, designed to integrate Tiara's HTML Theming Reference with Sphinx. The
|
||||
project adheres to the principles of modularity, accessibility,
|
||||
frugality, and clarity.
|
||||
|
||||
## Directory Structure Overview
|
||||
|
||||
```
|
||||
├── .git # Version control metadata
|
||||
├── .gitignore # Ignored files for version control
|
||||
├── .gitmodules # Configuration for Git submodules
|
||||
├── .venv # Virtualized environment for isolated builds
|
||||
├── autom4te.cache # Autotools cache files
|
||||
├── babel.cfg # Configuration for Babel (localization)
|
||||
├── config.log # Log from Autoconf configuration
|
||||
├── config.status # Generated configuration settings
|
||||
├── configure # Autoconf-generated build environment script
|
||||
├── configure.ac # Autoconf input script for the build process
|
||||
├── Makefile # GNU Make build system entry point
|
||||
├── Pipfile # Pipenv configuration for development
|
||||
├── Pipfile.lock # Lockfile for Pipenv dependencies
|
||||
├── pyproject.toml # Metadata for build tools (PEP 518)
|
||||
├── README.md # Documentation describing the project
|
||||
├── requirements.txt # Generated Python dependencies for runtime (through pipenv)
|
||||
├── requirements-dev.txt # Generated Python dependencies for development (through pipenv)
|
||||
├── setup.py # Python setup script
|
||||
├── src # Core implementation of the Sphinx theme
|
||||
├── tox.ini # Configuration for Tox (testing)
|
||||
└── vendor # External dependencies and HTML theme sources
|
||||
```
|
||||
|
||||
## Core Components
|
||||
|
||||
### src/
|
||||
|
||||
This directory contains the heart of the project: the modular, standards-driven
|
||||
Sphinx theme implementation. It integrates seamlessly with Tiara's HTML Theming
|
||||
Reference, showcasing accessibility-first and CSS-first design principles.
|
||||
|
||||
### vendor/
|
||||
|
||||
Houses external dependencies, including the Git submodule for the HTML theme.
|
||||
The build artifacts from the HTML theme are dynamically compiled via GNU Make
|
||||
and redirected into the src/ directory to ensure streamlined integration.
|
||||
|
||||
## Key Tools and Workflows
|
||||
|
||||
### Virtualized build environment
|
||||
|
||||
The project utilizes a fully virtualized build environment powered by Python's
|
||||
venv. This ensures consistency across development and runtime environments.
|
||||
|
||||
### Pipenv and Dependency Management
|
||||
|
||||
The project itself is treated as a regular dependency and is added to Pipenv as
|
||||
an editable package, in addtion to development depedencies. Pipenv is then used
|
||||
to generate `requirements.txt` and `requirements-dev.txt`.
|
||||
|
||||
* `Pipfile`: defines an abstract of all dependencies
|
||||
|
||||
* `pyproject.toml`: Defines the dependencies required by the project itself.
|
||||
|
||||
* `requirements.txt`: Generated by Pipenv, it includes both the project’s
|
||||
dependencies and the project as an editable package. This ensures seamless
|
||||
initialization of runtime environments.
|
||||
|
||||
* `requirements-dev.txt`: Contains additional development dependencies needed
|
||||
for contributors working on the project.
|
||||
|
||||
By utilizing Pipenv in this manner, the development environment remains
|
||||
streamlined and virtualized, requiring only Python 3 and the venv module for
|
||||
initialization.
|
||||
|
||||
### Autotools Integration
|
||||
|
||||
GNU Autoconf is leveraged as a unified entry point for initializing the build
|
||||
environment. This setup serves as an orchestrator, extending beyond its
|
||||
traditional use case in compiled languages.
|
||||
Loading…
Add table
Add a link
Reference in a new issue