ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Turn doomscrolling into discovery. A mindful Wikipedia and Wikivoyage reader, built with Astro and Cloudflare Workers.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Turn doomscrolling into discovery. A calm, swipeable reader for Wikipedia and Wikivoyage, with no engagement-driven recommendations. Millions of ready-made cards in 15 languages, served from a library rebuilt every week.
How it works · Engineering notes · Run it yourself · Make it your own
Spare moments can go to an endless stream of reactions and headlines, or to something worth knowing. WikiScroll shows one article at a time: a photo, a title and an introduction trimmed to whole sentences. Read it, save it, open the full article, or move on.
A few deliberate choices shape the experience:
WikiScroll is an independent project. It is not affiliated with or endorsed by the Wikimedia Foundation. Articles belong to their Wikipedia and Wikivoyage authors, and every card links to the original.
Random articles with a photo and a readable introduction.
Community-written travel guides to destinations around the world.
Wikipedia is written by volunteers, and much of it still needs work. Editors mark articles that lack sources, need more citations, are out of date or are only a stub, and those marks put each article into hidden maintenance lists. WikiScroll reads those lists so that curiosity can turn into a small contribution. You may be the reader who knows a good source for the lake you just learned about.
In Settings → Discovery → Help Wikipedia there are three choices:
Help Wikipedia is available for English, German, French and Spanish Wikipedia, the editions whose maintenance lists are large and flat enough to sample reliably. English offers every type; German, French and Spanish offer the types their maintenance categories support. WikiScroll doesn't edit anything itself: improvements happen on Wikipedia, under its own guidelines. Tags come from the weekly library build, so a recently fixed article may still show one for up to a week or so.
English also includes requests for copy editing, clarification and photographs. Photo requests come from Wikipedia's talk-page categories and are linked back to the article; an absent thumbnail by itself is never considered an editing request. Only these articles honors selected topics and the depth setting, and resumes unfinished source lookups after a temporary delay.
The same reader adapts to a portrait screen, with full-page settings and cards that fit without inner scrolling. Swipe right to save, swipe left to skip, and tap the photograph to inspect it.
These demos use the current app and a few real cards from the card library. Desktop uses the right arrow; mobile uses a touch swipe. Saving does not personalize subsequent discovery. The inline previews run at 50 fps; open the videos below for 60 fps playback.
Play desktop demo · 60 fps · Play mobile demo · 60 fps
Press Space on desktop, or long-press a card on a phone, and everything else steps back: the introduction is set in large serif type over a dimmed version of the article's photo. Press Space again or tap anywhere to return. Ambient Mode is enabled by default and can be switched off in Settings.
Settings offers Standard, Large and Larger excerpt text. The introduction refits to the card without scrolling inside it, and the preference also applies to Ambient Mode. Optional image dimming works in dark mode and is off by default. Tap a card image, or focus it and press Enter, to inspect it in a separate viewer; the original article links to its image credits.
Group saved articles into named collections, and share one as a link. The link opens a page on wikiscroll.com where every title, excerpt and image has been checked again against Wikimedia. Recipients can save their own copy, and messaging apps show a generated preview card.
| Topics | Adding to a collection |
|---|---|
| Saved on mobile | Ambient reading on mobile | Light theme on mobile |
|---|---|---|
| Light theme on desktop |
|---|
| Reading | Full-height cards with introductions trimmed to whole sentences that fit the screen. Ambient mode. An occasional "On this day" badge marks people and events tied to today's date. |
| Mature topics | Articles on adult and sensitive subjects are hidden by default. Settings → Mature topics shows them. Library cards are flagged from their categories; live and starter cards from their title and description. |
| Your library | Saved articles (also kept in IndexedDB for offline reading), reading history for the last 50 articles, and named collections, with undo when one is deleted. |
| Sharing | Article links get a proper preview in messaging apps. Collections are shared as a snapshot of up to 30 articles, verified again when the link is opened. |
| Languages | 15 content languages, and the interface translated into all of them. Each reader downloads only their own language. Arabic and Hebrew get a right-to-left layout. |
| Input | Touch swipes, double-tap to save, pull to refresh, two-finger trackpad swipes, and keyboard shortcuts. Desktop text selection and image dragging retain their native behavior. |
| Install and offline | Installable as a Progressive Web App. The app shell and recently viewed images are cached, so saved articles and cached content work offline. A bundled backup pool in every language covers openings with no connection. New discoveries and maps need a connection. |
| Appearance | Dark theme by default, with a light theme. Responsive layouts for phones, tablets and wide desktops. |
| Key | Action |
|---|---|
| ↓ / ↑ | Next / previous card |
| → / ← | Save and continue / skip |
| L | Save or unsave |
| S | Share |
| R | Read the full article |
| M | Map (Wikivoyage) |
| Space | Ambient mode |
| Esc | Close panels and dialogs |
Shortcuts are ignored while a panel or dialog is open, while typing, and when a modifier key is held, so browser shortcuts keep working.
The interface is meant to feel calm and predictable. A lot of that comes from small details:
Intl.Segmenter where available), in cards and in ambient mode, so there is no hidden scrolling and no text cut mid-line.<dialog> modals with Escape and outside-click dismissal, and focus returns to the button that opened them. Closed drawers are made inert; an open drawer takes keyboard focus and gives it back when it closes; and only the card on screen is in the Tab order. The feed is the page's main landmark, and menu buttons announce whether their panel is open. Switches and radio groups use proper ARIA roles and states. Notifications are announced with role="status". Form inputs are at least 16 px, and pinch-zoom is never disabled.prefers-reduced-motion, transitions, card flights, smooth scrolling and map fly-to animations are replaced by instant changes.WikiScroll used to build every card on demand from the Wikipedia API. That worked, but it left the feed at the mercy of an API that can be slow, rate-limited or briefly down. Now the cards are built ahead of time: once a week, a job turns Wikimedia's public data dumps into a ready-made card library, and the browser downloads cards straight from it. The live API is only a fallback.
flowchart LR
subgraph Weekly["Every Monday (GitHub Actions)"]
DUMPS["Wikimedia weekly dumps<br>search index + page tables"]
BUILD["scripts/build-library.mjs<br>cards, sets, place index"]
end
subgraph R2["cards.wikiscroll.com (Cloudflare R2)"]
LIB[("Card library<br>15 languages, shards of 100")]
end
subgraph Browser
UI["public/app.js<br>feed, gestures, library"]
POOL[("Bundled backup pool<br>~11,500 cards, 15 languages")]
end
subgraph Worker["Cloudflare Worker (worker/)"]
API["/api/articles · /api/topics<br>/api/travel · /api/today"]
end
WM["Wikipedia and Wikivoyage APIs"]
DUMPS --> BUILD --> LIB
UI -- "1. random shard for your settings" --> LIB
UI -. "2. if the library can't serve" .-> API
API --> WM
UI -. "3. last resort" .-> POOL
.github/workflows/card-library.yml runs early every Monday, the day after Wikimedia publishes its weekly search-index dump. It reads readership from the dump to sort articles into depths, walks the category tree for topics, reads hidden maintenance categories for Help Wikipedia, and fills photoless travel guides from their page banner or the matching Wikipedia photo. Every set is shuffled and packed into gzipped shards of 100 cards.cards.wikiscroll.com. Each visit draws a shard only once. When a setting runs thin, the next draw borrows the nearest depth from the library; when every card for a setting has been shown, the feed ends on a "You're all caught up" card with Start over and Change settings.Every layer has a fallback, so a reader never sees an empty screen:
A build that comes out thin, misreads a table, or finds too many broken image links fails before anything is uploaded, and the current library keeps serving.
The library is designed to cost nothing to run, with hard guards against a surprise bill:
docs/CARD-LIBRARY.md has the full build, the set names and the one-time setup. docs/ARCHITECTURE.md has a map of the code.
Astro handles the parts that benefit from reusable templates without adding a client framework to every card. The feed remains plain JavaScript, the card library is static files in R2, and the live backend remains a dedicated Cloudflare Worker.
| Layer | Responsibility | Source |
|---|---|---|
| Astro | Static reader and About pages, shared desktop/mobile settings, accessible collection-dialog templates | src/pages/, src/components/ |
| Styles | Ordered CSS modules compiled into one hashed stylesheet | src/styles/reader.css |
| Reader | Card navigation, preloading from the card library, image inspection, maps, languages and on-device libraries | public/ |
| Card library | Weekly build from Wikimedia dumps into sharded sets in R2, with storage and write guards | scripts/build-library.mjs, .github/workflows/card-library.yml |
| Backup pool | Weekly resample of the bundled offline and outage cards from the library | scripts/build-starter.mjs, public/data/starter/ |
| Worker | Live fallback batches, topic/depth/help filtering, travel search, On this day and share previews | worker/ |
| Offline shell | Generated HTML/CSS cache identity, saved reading and cached assets | scripts/astro-offline.mjs, public/sw.js |
| Checks | Regression tests and serialized production builds | test/, scripts/build.mjs |
pnpm build produces dist/ from the maintained source. Cloudflare serves those generated assets alongside the Worker. There is no server-side Astro runtime, hydration layer or client-side router. Generated files, credentials and local working notes are not repository inputs.
The card library removes most of the dependence on live APIs, but the fallback paths still have to be dependable, because they take over exactly when something else has gone wrong:
429 and Retry-After pause only the affected host, in both the Worker and the browser.docs/ENGINEERING.md walks through each of these with code references, and covers what the test suite does and doesn't verify.
You need Node.js 22.22+ and pnpm.
git clone https://github.com/Golps/WikiScroll.git
cd WikiScroll
pnpm install
pnpm dev # wrangler dev at http://localhost:8787
Build the Astro pages and run the tests. After installing the locked dependencies, the checks do not need network access:
pnpm test
[!NOTE] Wikivoyage maps use CARTO basemaps and require a key for your own deployment. The map key is configured on the Worker rather than committed in the source. For a public deployment, add your own domain-restricted key and check CARTO's usage terms. See configuration.
Two ways to host it:
cards.wikiscroll.com only answers wikiscroll.com, so a fork on another domain uses the Worker and live API until it builds its own. docs/CARD-LIBRARY.md covers the bucket, domain and GitHub secrets.pnpm build and serve the generated dist/ folder as plain files. The browser then reads Wikipedia and Wikivoyage directly, and the core reader works: random feeds, depth, languages, saves, collections, ambient mode, maps and offline reading. Worker-only features don't. See Static hosting for the exact list.docs/DEVELOPMENT.md also covers configuration and making it your own.
Astro pages, shared settings and collection-dialog templates live in src/. The ordered styles in src/styles/reader.css compile into one stylesheet; static assets and browser logic stay in public/. Astro builds only the frontend into ignored dist/, including the stylesheet URL in the offline shell. The Worker backend remains in worker/.
This repository contains the source used to deploy wikiscroll.com. It isn't finished, and these limitations are known:
You're welcome to study this code, fork it and build something of your own. The main branch is the source for production, with automated tests and support for Cloudflare Workers Builds. Issues and pull requests may not get a response. CONTRIBUTING.md has more detail, and CHANGELOG.md lists what changed in each release. To report a security problem with wikiscroll.com, follow SECURITY.md instead of opening a public issue.
If WikiScroll is useful to you, a ⭐ on the repository helps others find it.
branding/social-preview.svg.THIRD_PARTY_NOTICES.md has the full list.
The code is released under the MIT License. You're free to use, modify and build on it, as long as you keep the copyright notice.
The license covers the code only. The WikiScroll name and logo are not licensed for reuse, so please give your fork its own name and look. Wikipedia and Wikivoyage content, photos, map data and the bundled font keep their own licenses, listed in THIRD_PARTY_NOTICES.md.