Static personal publishing, a searchable article archive, and a self-measure journal at nextweb4.github.io.
This repository is the deploy-ready source for the NextWeb4 personal site. It gives readers a home page, three subject modules, an author profile, a full article archive, and local browser search without requiring a framework, package installation, or application server.
The content is primarily a Chinese-language personal publication. about.html adds a Chinese/English interface switch; the three README files provide repository documentation in English, Simplified Chinese, and Japanese.
The 2026-07-18 recursive tree audit found 654 committed files:
| Area | Audited files | Content |
|---|---|---|
article/ |
562 | Individual static article pages |
module/ |
3 | Investment & Thought, Reflections, and Technology & Networking category pages |
data/ |
5 | Article metadata, a combined search index, and three category indexes |
uploads/ |
74 | Images referenced by published articles and site icons |
| Repository root | 10 | Entry pages, shared styles/scripts, README files, and maintenance rules |
These counts describe the audited commit, not a fixed product limit. The live last-commit and repository-size badges update independently as the repository changes.
index.htmlpresents the three content modules, article discovery, global search, and public project entry points.module/pages provide category-specific browsing while retaining the shared article search.article/pages are committed HTML documents, so article reading does not depend on a database or server renderer.about.htmloffers an author profile and persists its Chinese/English interface selection inlocalStorage.- Search suggestions support keyboard focus and combobox/listbox semantics in the audited markup and script.
- A daily Bing wallpaper is progressive enhancement: the site remains usable with a solid-color fallback when the request, storage, or image load fails.
| Path | Responsibility |
|---|---|
index.html |
Homepage, module navigation, global search, and article ranking UI |
about.html |
Author profile and Chinese/English interface dictionary |
article/ |
562 committed article pages in the audited tree |
module/ |
Three category landing pages |
data/articles.json |
Article metadata inventory |
data/search-index.json |
Combined browser search data |
data/search-index/ |
Category-specific search data |
uploads/ |
Repository-owned images used by published pages |
site.css, article.css |
Shared site and article presentation |
site.js |
Wallpaper request, validation, cache, and fallback behavior |
article-search.js |
Search behavior reused by category and article pages |
No dependency installation is required. From the repository root, run:
python -m http.server 8000Open http://localhost:8000/. Use an HTTP origin instead of file:// when testing search because the pages load committed JSON through fetch().
No build, package-manager, automated test, lint, format, or CI command was found. The checked-in HTML, CSS, JavaScript, JSON, and media are already the deployment artifacts.
The homepage and article search normalize the query, limit token expansion, hash tokens with the browser Web Crypto API, and rank title, module, date, and committed Bloom-filter data. Results are computed locally after fetching the same-origin search index; there is no search backend and the query is not sent to a search service.
When article content changes, keep article/, module/, data/articles.json, data/search-index.json, and the relevant data/search-index/ category file synchronized. No committed generator or validation command was found to enforce this relationship automatically.
- Add or update the article HTML under
article/and place referenced media underuploads/. - Update the corresponding category page and metadata/search index records.
- Preview through the local HTTP server and exercise direct links, search, keyboard navigation, and narrow layouts.
- Check path case, URL encoding for non-ASCII titles, missing media, and UTF-8 integrity.
- Commit the deploy-ready files. GitHub Pages publishing is controlled by repository settings outside this tree; confirm the configured source before changing branch or deployment assumptions.
Do not bulk-regenerate article pages or indexes without a verified source mapping and a link check. The repository contains published output but no source generator that can safely reconstruct it.
Normal article content, styles, scripts, images, and search data are repository-local. site.js optionally requests wallpaper metadata from https://bing.biturl.top/, omits credentials and referrer information, enforces a six-second timeout, and accepts returned images only from HTTPS bing.com hosts. It skips the enhancement on constrained connections, caches a validated daily URL in localStorage, and falls back without blocking content.
The About language choice and wallpaper cache are local browser state. No analytics dependency was found in the audited root pages and scripts. README status badges add image requests to img.shields.io; they do not change the published site's runtime.
- Open the homepage, all three category pages, the About page, and representative articles through HTTP.
- Test empty, Chinese, English, date, no-result, keyboard, and rapid-changing search queries.
- Confirm suggestion links resolve and untrusted query text is escaped or assigned safely.
- Check the About language toggle, persistent state, focus styles, reduced motion, and mobile layout.
- Simulate wallpaper API failure, invalid hosts, storage failure, and image failure; content must remain readable.
- Verify changed article metadata, category links, indexes, and uploaded media together.
The repository was active, public, unarchived, and Pages-enabled at the 2026-07-18 audit. Its main maintenance risk is drift among generated-looking article pages and indexes because no generator or automated validation suite is committed. The media directory also increases clone and page-transfer size.
Contributions should preserve UTF-8 paths, semantic and keyboard-accessible markup, safe text handling, the non-blocking wallpaper boundary, and synchronization across all content representations. Keep changes focused; do not introduce a framework or build pipeline without documenting how existing GitHub Pages publishing, content ownership, and rollback would change.
No license file was detected. The published writing and uploaded media may have separate provenance and rights; public availability does not by itself grant reuse permission.