How datawhalechina/free-excel works
1. Repository purpose
- This is not an application backend or service; it is a courseware repository for “Free-Excel,” a structured Excel/data-analysis tutorial.
- The main architectural concern is content production and publication, not runtime behavior.
2. Primary content model
- The tutorial is organized into 10 chapters plus front matter, with parallel chapter files such as chap1 through chap10.
- Each chapter combines explanatory text with exercise-oriented examples, aiming at practical Excel usage rather than abstract feature reference.
3. Authoring sources
- The editable source lives mainly in source/ as reStructuredText (.rst) files for Sphinx.
- A second authoring view exists in Markdown/, which mirrors the same course structure in Markdown form.
- These are the human-maintained inputs; everything else is derived or published output.
4. Build and publishing pipeline
- source/conf.py and the source/ tree define a Sphinx documentation project.
- The docs/ directory is the generated static website output from that Sphinx build.
- This means the repository has a clear separation between source content and deployable site artifacts.
5. Web documentation subsystem
- docs/ contains the published HTML site, search index, static assets, and generated source references.
- Chapter pages appear under docs/Content/, with navigation and landing pages at docs/index.html and related localized pages.
- This is the delivery boundary for online reading.
6. Markdown course subsystem
- Markdown/ contains the same course in a Markdown-centric format, including chapter files and supporting pages like homepage and author info.
- This likely serves readers or contributors who prefer Markdown, and may also act as an intermediate or alternate publishing source.
- It is structurally parallel to the Sphinx source, but separate from the generated HTML site.
7. Data asset subsystem
- data/ holds chapter-specific sample files used by the lessons, mostly Excel workbooks plus CSV/TXT files.
- The data is organized by chapter, which suggests each chapter’s examples and exercises depend on a fixed dataset bundle.
- These files are part of the learning inputs rather than application runtime data.
8. Content-to-data coupling
- Chapter narratives refer to corresponding files in data/chapX/, making the learning flow “chapter text → sample dataset → Excel operation.”
- Chapter 1 is notable for having multiple Titanic-format examples (csv, tab-delimited text, special-delimited text, and Excel), showing that data-format teaching is a core theme.
9. Historical version boundary
- 历史版本/V2.0/ preserves an older release of the course, including its own Markdown source and image assets.
- This is a versioned archival subsystem, not part of the active build, but useful for tracking content evolution.
10. Documentation assets and static dependencies
- source/_static/ and docs/_static/ contain Sphinx static resources, theme assets, and supporting CSS/JS.
- docs/_images/, _sources/, and doctrees/ are build artifacts supporting rendering, source linking, and incremental documentation generation.
11. Repository structure at a glance
- Input layer: source/, Markdown/, data/
- Build layer: Sphinx configuration in source/conf.py
- Output layer: docs/
- Archive layer: 历史版本/
- This is the key architectural separation for diagramming the project.
12. External/environment assumptions
- The tutorial is designed around Excel 2016/2019 and optionally WPS for compatibility.
- That spreadsheet application is the real “execution environment” for the course examples, while the repository itself only distributes instructional content and datasets.
13. What matters most in an architecture diagram
- Show two authoring paths feeding a publication pipeline: Markdown and Sphinx/rST content.
- Show chapter-linked sample datasets as supporting inputs to the lessons.
- Show docs/ as the generated website boundary and 历史版本/ as the frozen legacy branch.
Main entry points: chap1.html Chapter pages · chap1.md Markdown chapters · chap1.rst Chapters rST · index.rst Content index
Components 17
Authoring
Human-maintained course sources
- Front matter · Repository landing and publication index
source/index.rst - Content index · Chapter table of contents and ordering
source/Content/index.rst - Chapters rST · Primary chapter narratives in reStructuredText
source/Content/chap1.rst - Markdown home · Markdown course landing page
Markdown/主页.md - Markdown chapters · Parallel Markdown version of the course chapters
Markdown/chap1.md - Guide pages · Auxiliary Markdown pages for author and exercise guidance
Markdown/作者.md
Build
Sphinx configuration and generated artifacts
- Sphinx config · Documentation build configuration
source/conf.py - Source refs · Generated source backreferences for published pages
docs/_sources - Doctrees · Incremental build cache and environment state
docs/doctrees
Delivery
Published website output
- Site index · Published documentation landing page
docs/index.html - Chapter pages · Rendered chapter pages for online reading
docs/Content/chap1.html - Static assets · Theme, CSS, JS, and supporting static files
docs/_static
Data
Lesson datasets and examples
- Chapter 1 data · Sample workbooks and text files for chapter 1
data/chap1 - Chapter data · Chapter-aligned example datasets across the course
data/chap2
Archive
Frozen historical release
- V2.0 archive · Frozen previous course release
历史版本/V2.0 - Legacy chapters · Archived Markdown course content from the older release
历史版本/V2.0/0. 前言.md - Legacy images · Archived chapter image assets
历史版本/V2.0/images
Connections 17
- Front matter → Content index: navigates · Landing page points into the chapter structure
- Content index → Chapters rST: organizes · Chapter ordering is defined by the content index
- Sphinx config → Site index: builds · Sphinx configuration produces the published site
- Chapters rST → Chapter pages: renders · Chapter source is rendered into HTML pages
- Content index → Chapter pages: publishes · Table of contents drives the generated chapter pages
- Site index → Chapter pages: links · The landing page routes readers through the chapter pages
- Chapter pages → Static assets: depends on · Rendered pages rely on shared static assets
- Chapter pages → Source refs: references · Published pages expose generated source references
- Chapter pages → Doctrees: uses · Incremental documentation state supports the build
- Markdown home → Markdown chapters: introduces · Markdown landing content leads into the chapter set
- Guide pages → Markdown chapters: supports · Auxiliary pages accompany the Markdown course path
- Markdown chapters → Chapter 1 data: exercises · Lessons pair with chapter-specific sample files
- Chapters rST → Chapter data: uses · Chapter narratives refer to chapter-aligned datasets
- V2.0 archive → Legacy chapters: contains · Older release preserves its own course sources
- V2.0 archive → Legacy images: contains · Archived release includes its associated image assets
- Chapters rST → Markdown chapters: mirrors · The two authoring paths track the same chapter structure
- Markdown chapters → Legacy chapters: evolves from · Archived release shows an earlier content branch