<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vega/examples/todo.aup, branch master</title>
<subtitle>Surface runtime projecting Pure views across pixel, terminal, CLI, and web.
</subtitle>
<id>http://git.yeowoo.org/vega/atom?h=master</id>
<link rel='self' href='http://git.yeowoo.org/vega/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/vega/'/>
<updated>2026-09-30T14:29:20Z</updated>
<entry>
<title>Show a bool as true or false, and make the examples' flags bools</title>
<updated>2026-09-30T14:29:20Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-30T14:29:20Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/vega/commit/?id=72ecae6b6eb1365e722bd6d45acae8a5ccb74b23'/>
<id>urn:sha1:72ecae6b6eb1365e722bd6d45acae8a5ccb74b23</id>
<content type='text'>
aup and Pure now have a bool (Pure 016): a view or column may be one.
vega_text writes it as true or false, as a string's interpolation does, so
every surface shows the same words: the CLI, the TUI's cells, speech and
the web surface's JSON (a value's text) and page. An app that wants other
words picks them with a conditional (if t.done { "done" } else { "" }).

The flags of the examples are bools: todo's done and urgent, today's done,
the stopwatch's running. vega.when takes the bool as it took the number.

bools checks a bool field and a bool column on the CLI, the TUI, speech
and the web surface: true and false, never 1 and 0.
</content>
</entry>
<entry>
<title>Count the open tasks in the todo example</title>
<updated>2026-09-26T10:23:52Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-26T10:23:52Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/vega/commit/?id=3b3e4a221fa47d0109c6ab99be65b5ba48bae254'/>
<id>urn:sha1:3b3e4a221fa47d0109c6ab99be65b5ba48bae254</id>
<content type='text'>
The left field said how many tasks there were; it now says how many are
still open, "2 of 3", with aup's count(t in tasks where !t.done), which
Pure runs as a fold over the list on every surface. The reference model
counts the same, and in the browser the field follows a task marked done.

</content>
</entry>
<entry>
<title>Add the first component and three surfaces</title>
<updated>2026-09-25T14:24:05Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-25T14:24:05Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/vega/commit/?id=12c377ea70c8928f96d02d0885744bd6818c10c6'/>
<id>urn:sha1:12c377ea70c8928f96d02d0885744bd6818c10c6</id>
<content type='text'>
Vega reads a verified Pure module by convention: a table view with a
label column is a list (with optional badge, detail and tone), any other
table is a table, &lt;table&gt;_focus is its focused row, a title view is the
title and other views are fields. lib/vega.aup gives aup apps the tones,
which say what a row means; each surface decides how it looks or sounds.

vega tui draws the screen in a terminal, keeps the focused row in view
and evaluates only the cells on screen; vega cli prints plain lines for
pipes; vega say speaks the screen and each focus change as sentences.
Display width handles Hangul, CJK, emoji, combining marks and controls.

tests/check.py compares the CLI and NUI output with a reference model of
examples/todo.aup line for line, checks 9,600 TUI frames for scrolling,
focus, badge alignment and the number of cells evaluated, drives the
interactive TUI on a pseudo-terminal, and runs every aup example on every
surface.

</content>
</entry>
</feed>
