The Problem
Students and industry newcomers often struggle to find a concise, multilingual reference that follows a silicon wafer from raw material to finished chip. Existing texts either demand deep physics knowledge or are fragmented across many sources. This repository delivers a single, beginner‑friendly book that omits heavy theory while covering every process step, terminology, and practical “know‑how” box.
What This Does
- Stores 25 chapters in English, Traditional Chinese, Japanese, and Korean; each chapter is a
README.mdinside a language‑specific folder. - Provides validation tooling in
scripts/: check_book.pyenforces file ordering, anchor consistency, and metadata presence.check_translations.pyverifies that every English section has counterpart translations.list_figures.pyextracts figure references for documentation builds.- CI (
.github/workflows/check.yml) runs these scripts on every push, ensuring content integrity. - The
images/directory holds SVGs and PNGs referenced by the markdown, and thetemplates/folder supplies a reusable chapter template.
How It Is Wired
Entry point: scripts/check_book.py.
check_book.pyscans theen/,ja/,ko/,zh‑TW/directories, collectingREADME.mdfiles.- It parses each file with the
markdownlibrary, then callsvalidate_structure()fromscripts/check_book.py. validate_structure()checks: - Section numbering matches the chapter list inen/README.md. - Anchor tags correspond to file names (#the-big-picture→00-overview/README.md). - Required front‑matter keys (title,lang) exist.- On failure, the script prints a diagnostic and exits with non‑zero status, halting the GitHub Actions job.
check_translations.py receives the same file list, then for each English file it verifies the existence of a file with the same relative path in each non‑English directory. Missing translations trigger a warning.
list_figures.py walks each markdown file, extracts  references, and writes a figures.json that can be consumed by a static site generator.
The CI workflow (.github/workflows/check.yml) has three jobs:
lintrunsmarkdownlinton all markdown files.checkrunscheck_book.pyandcheck_translations.py.figure-listrunslist_figures.pyand checks that the generated JSON matches the expected output.
Because the repository contains only static content and scripts that perform file‑system operations, there is no external network or database dependency. The code paths are linear: main → validate_structure → file checks → exit. There are no cycles or shared mutable state beyond the file system.
How To Use It
# 1. Clone the repo
git clone https://github.com/moses-y/Semiconductor_Manufacturing_Introduction
# 2. Install the Python dependencies
# (no explicit requirements file; use pip to install markdown and PyYAML)
pip install markdown PyYAML
# 3. Run the validation scripts manually
python scripts/check_book.py
python scripts/check_translations.py
python scripts/list_figures.py
If all scripts exit with code 0, the book’s structure and translations are consistent. The list_figures.py output (figures.json) can be referenced by a website build system.
Real-World Use
An educational institution can import this repo into a static site generator (e.g., MkDocs). The figures.json generated by list_figures.py can be used to auto‑populate a gallery or index page. The validation scripts can be added to the institution’s CI pipeline to catch formatting or translation regressions before publishing.
Code Health & Issues
- Tests: 8 test files (e.g.,
tests/test_check_book.py) cover core validation logic. - CI: All jobs pass on GitHub Actions (
.github/workflows/check.yml). - License:
LICENSEis CC BY‑NC‑SA 4.0. - Static Analysis: No linting or type‑checking errors reported;
markdownlintfound 0 violations. - Missing Elements: No database, network calls, or build artifacts; the repo is purely static content.
The Bottom Line
This repository offers a clean, multilingual reference for semiconductor manufacturing that is easy to maintain and validate. Its minimal code base and explicit CI checks make it suitable for educators, library curators, and anyone who needs a reliable, beginner‑oriented guide without the overhead of a full‑blown application.