design_page
Copy page mockups into real Noteful ink pages by specifying each block, text, colour, and drawing; draw items at matching positions and sizes for accurate recreations.
Instructions
Write pages that copy page designs (mockups) in real ink. pages: one spec per page. Either title (a new notebook) or path (add to that notebook after after_page, 1-based; live notebooks too). Copy a page design into real ink. Workflow: design_mockup (or any picture of a page the user gives) -> mockup_grid to read coordinates -> design_page with one spec per page -> render_page to compare with the mockup and fix what is off. In the spec list every block of the mockup in its own pixels: text lines with the CORRECT words (image models garble body text; the layout, sizes and colours are what you copy), cards, bands, highlighter, sticky notes, arrows, circled numbers; trace the drawings straight from the mockup (erase their labels and write the labels as text). Match each text's 'h' (cap height) and 'w' (line length) to the mockup. Spec format: Copy a page design (an image model's mockup) into real Noteful ink.
The agent looks at the mockup and lists what is on it, in the mockup's own pixels; this module draws each item at the same place and size: text as handwriting (the agent supplies the correct words, so the mockup's typos never reach the page), cards, colour bands, highlighter, sticky notes, arrows and circled numbers as pen and highlighter strokes, and drawings traced straight out of the mockup (trace.py) so they keep its quality.
Spec (JSON): {"size": [896, 1200], "theme": "light", "mockup": "", "items": [ {...}, ... ]} items are drawn in order; colours are "#rrggbb" or "auto" (sampled from the mockup at that spot) text {"t": "text", "x", "y" (baseline), "h" (cap height), "text", "color", "pen" (line weight, default 1.15), "w" (fit width), "align": left|center|right, "lh" (line spacing, for several lines split by \n), "wmax" (shrink only if wider)} inline: {#e9573f:PHOT} colours a run, ==ATP== highlights it ({hl:#ffd27a} first to pick the colour), CO_2 and C_6H_{12} are subscripts, T^4 superscripts rect {"t": "rect", "x", "y", "w", "h", "fill", "stroke", "r" (corner radius), "pen", "dots" (dotted inner border colour), "angle" (degrees)} band {"t": "band", "y", "h", "fill"} full-width colour zone hl {"t": "hl", "x", "y", "w", "h", "color"} highlighter swipe sticky {"t": "sticky", "x", "y", "w", "h", "fill", "angle", "tape": "#c9b9a0", "text": [text items, placed relative to the page as usual]} line {"t": "line", "pts": [[x, y], ...], "color", "pen", "head": none|open|hollow|block, "size" (head length), "width" (block arrow)} circle {"t": "circle", "cx", "cy", "r", "color", "pen", "fill", "text", "h"}; "rx"/"ry" make it an ellipse (around a chosen answer) any item may carry "g": the group its strokes belong to (design_groups) lines {"t": "lines", "x", "y" (first baseline), "h", "lh" (baseline step), "lines": [...], plus any text keys} a paragraph or list, one text item per line trace {"t": "trace", "box": [x, y, w, h], "erase": [[x, y, w, h], ...] (labels to drop, in mockup pixels), "colors": 8}
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| pages | Yes | ||
| title | No | ||
| after_page | No | ||
| open_in_noteful | No |