Plan
Where Sitez is and what comes next, in order. Finished work gets a line or two, newest first.
The detail lives in design.md, sitez.md, elementz.md, the
code's @prose, the tests and git log.
Where it is
Sitez is a Vite plugin that builds amitkaps.github.io, whose next branch deploys
next.amitkaps.com from it. The latest release is 0.4.0, on npm as @amitkaps/sitez and as a
GitHub release tarball. In it an element is one file and a site runs Vite+, which
amitkaps.github.io hasn't moved to yet.
0.4.0
- A Vite+ plugin. A site runs
vp dev,vp buildandvp preview, and installsvite-plusin place ofvite, which is Sitez's peer dependency now. Sitez imports Vite's API from it, so a site needs no override. A site'snode_modulesgrows from 31 MB to 158 MB, for one toolchain everywhere (sitez.md). - Markz 0.4.0, and the standard's toolchain. Text keeps the quotes and dashes as typed, so
There'sstays straight. Markz skips a value YAML reads differently, likedraft: yes, with a warning, and Sitez still fails the build on one in a key it reads. Vite+ 1.1.0, TypeScript 7, and thefixandverifyscripts, as ship has them. - Markz 0.3.0 and prose 0.4.0. Prose reads an
.htmlfile part by part, so an element's@prosein its<script>and<style>is found. Markz closes a quote after a single quote. - One file per element. An element is
@name.html, and its code issrc/elementz/, which imports nothing from the rest of Sitez. Each part is a module on the file's own lines. Element CSS ships once, in@layer elements.setup(el, { signal })replaces the class, and rendering is synchronous. The slot's fallback shows only when there is no content, and Sitez 0.3's names fail, saying where their code goes. - What Data Portraits showed. Its nine charts became elements drawn with d3 at build time, and the port found three gaps, listed under Next.
- One file per element, designed. An element is
@name.html, with a template the build writes, its CSS and itssetup(elementz.md). Sitez is the top of four layers, markz, elementz, pagez and sitez (sitez.md). - The docs split by layer. The old design.md became sitez.md and elementz.md, idea.md's rules (now design.md) describe one file, and pagez.md keeps Pagez's idea in step.
0.3.0
- Pages from
code/index.html. The frame is a complete HTML page with one<slot>, and Sitez writes only the head tags that follow from metadata (sitez.md). - Explicit metadata. A page gives its own
titleanddescription, and nothing is filled in from its text. The sitemap, the feed and the reset went. - Names for when code runs.
.html,.html.jsand.browser.js, with elements global and_names skipped in every folder. - A Vite plugin. The CLI,
check,previewanddeploywent. A site'snode_moduleswent from 137 MB to 31 MB, and a page's script to 0.3 KB, one class per element with behavior.
0.2.0
- Svelte goes. A spike of amitkaps.github.io's
/teaching/loaded 2 KB of JavaScript against 206 KB (spike/). Sitez was rewritten around it:text/,code/anddata/,htmlwith its own renderer, elements named incode/, and live elements in one script. - Redirects. A page lists its old URLs, and the build writes a page at each.
- The real site. amitkaps.github.io was ported, and a release on npm is staged for approval.
0.1.0
- Sitez on Svelte (
v0.1.0). Islands hydrated from the server render. Its discovery, links, head, report and error fixtures carried over.
Next, in order
- amitkaps.github.io on one file per element. It moves its ten element files, their CSS
and its classes to
setup, and addselementsto its layer order. Its pages match before and after in a headless browser. Then Sitez releases 0.4.0. - What Data Portraits showed.
- An element that throws names the page and the tag that called it, not only its file.
url()in astyleattribute an element writes is checked, as a stylesheet's is.- The report says what each element adds to the script, such as
notes-treemap 2.1 KB.
- Docs for users. A guide: install, the folders, a page, an element, deploying, and every error with its fix. It's written once the element settles, and rendered by prose or by Sitez.
Later
- Pagez (its design), in its own repository now, with its own plan. Sitez renders its pages through Pagez once it's built.
- Writing. Writing is the real block, more than building. An editor view, or a separate
package (
editz), would make a page easy to write. - A feed for short ideas. A feed fits short, dated notes better than essays. It waits on the editor.
- Markz fix found by the port:
\as a line break. It goes to markz.
Open questions
- Rendered bodies in
pages. Each entry could carry its page's HTML as well as its metadata, for a feed with full posts or an index with excerpts. It waits until a site needs more. - The rest are in sitez.md and elementz.md.