ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
PoliTost의 인터랙티브 교과서, 챕터·양식·풀이 포함 시험문제 무료, 브라우저만 있으면 계정 필요 없음
I libri di testo interattivi di PoliTost: capitoli, formulario, esercizi con soluzione e prove d'esame. Gratis, nel browser, senza account.
교육HTML · TypeScriptGitHub @SuperTost100온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Web reader for interactive textbooks: chapters, numbered formulas, worked exercises, a Python lab and graphs.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A smartbook is a course book written in Markdown with numbered formulas, exercises, exam questions, Python snippets and graphs, packed into a .ptsb file. Smart Builder writes them, and this reader shows them in the browser.
Read chapters. Formulas render with KaTeX and carry numbers like a printed book. Hovering a reference such as (2.1) shows the formula without leaving the page.
Study from the formula sheet. It collects every numbered formula from the chapters. Exercises and past exam questions come with hints and step-by-step solutions.
Run code and plot. The lab runs Python in the browser through Pyodide, with numpy and matplotlib, and MATLAB scripts through numbl, a MATLAB-compatible interpreter. Graphs are computed on the device. Neither sends code to a server.
Print. Chapters, the formula sheet, exercises and exams each have a print preview, with hints and solutions shown.
Import a book. Drop a .ptsb file on the home page. It stays in that browser and isn't uploaded anywhere.
The interface is in Italian, with light and dark themes. This repository ships only the example book ("Guida di esempio"). The public copy at politost.it/reader also lists the free books from politost-books.
You need Node.js 22.22.2 or newer on the 22 line, or 24.15 or newer. CI uses 24.
git clone https://github.com/SuperTost100/politost-smartbook.git
cd politost-smartbook
npm ci # also copies the Pyodide runtime into public/pyodide/
npm run dev # opens on http://localhost:5173
Choose "Guida di esempio" to open the example book.
The default build needs no backend, account or database. npm run build writes a static site to dist/, which you can host anywhere with an SPA fallback. Self-hosting has the details.
Everything the reader keeps lives in your browser, under the site's origin:
.ptsb files and the copies of catalog books you opened are in the IndexedDB database politost-smartbook.politost-theme, politost-last-read, pwa-install-snooze-until).smartbook-static-v4.There is no export. To back up an imported book, keep its .ptsb file and import it again when you need it. "Rimuovi da questo dispositivo" on an imported book's card deletes the book and its reading position. To clear everything, including catalog copies, delete the site's data in your browser settings.
Importing a book, running code in the lab and plotting graphs send nothing anywhere. The Pyodide runtime is served from the app's own origin. These are the actions that do talk to a server:
VITE_BOOKS_URL. The reader fetches catalog.json from that site. politost.it points it at books.politost.it, and a build without it makes no such request..ptsb from the same site once, checks its size and sha256, and keeps a copy in IndexedDB. Later visits open it from that copy, offline.VITE_PLATFORM_ENABLED=true). Sign-in, registration, terms consent, license keys, book access checks and the opening of a licensed chapter go to the API at VITE_API_URL. It is off by default and the public reader doesn't use it.The public reader has no analytics or telemetry.
All settings are optional. Set them in the environment or copy .env.example to .env.local:
| Variable | Default | What it does |
|---|---|---|
VITE_BASE_PATH | / | Serves the app from a subfolder, such as /reader |
VITE_BOOKS_URL | empty | Books site with a catalog.json. The home page lists its books |
VITE_PLATFORM_ENABLED | false | Turns on sign-in, licenses and cloud books |
VITE_API_URL | empty | Platform API address, required when the platform is on |
All four are read at build time. The platform API and its course books live in a separate private repository.
npm run lint
npm run test:content # content-core parser tests plus the reader's content tests
npm run test:unit
npm run build
npm run test:e2e # installs Playwright's Chromium on first run
CI runs all five on every pull request and on main. Auth tests run only with VITE_PLATFORM_ENABLED=true.
The app renders in the browser, so a crawler that doesn't run JavaScript would see an empty page. On politost.it the Worker in deploy/politost/worker.js fixes that. For the library, each chapter, the formulario, the exercises and the exams, it sends the app's index.html with the page already in it: title, description, canonical, JSON-LD and the text. politost-books renders that text at build time and publishes it under books.politost.it/pages/, so a merged book change shows up without a reader deploy. In the browser the app replaces it with its own view.
Path under /reader | What the Worker sends |
|---|---|
/ | The library, with every published book and its chapters |
/libro/<id> | A 301 to the first chapter |
/libro/<id>/capitolo/<chapter>, formulario, esercizi, esami | The page, ready to index. A chapter also answers Accept: text/markdown with its Markdown |
/libro/<id>/laboratorio, grafici, stampa/... | The app with noindex |
/libro/<id> for a book that isn't published, such as an upload | The app with noindex |
/sitemap.xml | Every indexable page, built from the catalog |
| Any other unknown path | The app with status 404 |
When books.politost.it doesn't answer, the Worker sends the plain app, which loads its books the usual way.
| Read this | To learn |
|---|---|
| Reader guide | How to use the reader, in Italian. Also served at /docs |
| Reader architecture | Routes, components and how a book loads |
| Design system | Tokens, type, icons and the logo |
| PTSB format | What a .ptsb file contains |
| Content format | The Markdown syntax books are written in |
| Self-hosting | Building and serving the static site |
| Repository sync | Which repository owns what since the monorepo split |
packages/content-core/, MIT) and ptsb-pack (Python CLI that packs books into .ptsb files)..ptsb files.The archived politost-builder is withdrawn. Don't copy code from it.
AGPL-3.0. The bundled content-core package has its own MIT license. Books you open with the reader are not covered by this license.