[1.3.0]
Added
-
A walkthrough for having an AI write the pattern, in all four READMEs, up front rather than buried in the developer notes: copy the skill from Settings, paste it into a chat, paste your pattern, paste the block back into a note, and check the counts the progress panel reports against the source's own "(N)". With a worked example, and what to do when the assistant says something cannot be converted.
-
Eight more worked examples in
examples/demo.md: the three round styles drawn side by side from the same rounds; a whole amigurumi ball, increases through decreases, and a flat triangle; the same round in single and double crochet, showing how the ring grows with the stitch; a granny square; post, popcorn, cluster and crossed stitches each in context, plus a picot edging and a crab-stitch border; mid-round color changes; the three repeat forms including a barerep; and what to do with a closed 3D shape that cannot be read as one chart. Every block in the READMEs and the demo is parsed and laid out as part of checking this release. -
The AI reference is now a skill.
docs/ai-pattern-authoring*.mdhas becomeskills/crochet-weaver-pattern/SKILL.md(plus.zh-TW,.zh-CN,.ja): the same reference, reshaped as a skill — YAML frontmatter naming it and saying when to use it, a short "when to use" and "how to work through it" up front, then the full syntax reference and checklist. Paste it into a chat, point an agent at it, or drop the folder into.claude/skills/for Claude Code; it needs nothing else from the repo. The settings row is now "Copy the pattern skill", and the bundled copy is generated (npm run generate-skill) from the files rather than kept in step by hand, with a test that fails on a stale bundle. -
Four more interface languages: 한국어, Deutsch, Français and Español, alongside the existing English, 繁體中文, 简体中文 and 日本語. Every string is translated in all eight — including all 46 stitch names, so the readable pattern text reads as
punto bajo,feste Masche,maille serréeor짧은뜨기rather thansc— and Obsidian's own language is followed automatically where it is one of them. The AI pattern-authoring reference stays in the original four; the other four are handed the English one, which is what an AI reads best anyway. -
Somewhere to say something: the settings page ends with a "Questions and feedback" row — a button that opens the plugin's GitHub issues, one that starts an email to
crochet@kiyudesign.com, and one that copies that address for anywhere without a mail client. The address is in the row's description too, and is searchable from Obsidian's settings search. -
Traditional Japanese round charts (
style: japanesein frontmatter, or the new global "Round chart style" setting): drawstype: roundcharts the way Japanese pattern books do — one continuous spiral guide winds through the rounds (real crochet-in-the-round is a single spiralling line, not stacked closed rings), stepping out to the next round at each starting seam, and each round numbered in red at that seam, which drifts diagonally with the increases exactly like a printed chart.The seam is room of its own, kept clear of stitches: from the side the round closes on it holds the slip stitch that joined it, then the step out to the next round, then the round number, then the chain that opens the next round — each with its own slot, and the round's stitches spaced to leave the whole of it free. So the number always sits just to the opening side of the step (its left, on a seam near the top of the chart), never with a symbol drawn over it, and never nudged out of line to dodge one. The step itself is measured in px of arc rather than in degrees and anchored on its own round's seam at both ends, so it stays a short near-radial jog — about 80° to the ring at every radius, instead of flattening toward a slant on the outer rounds. Both of its corners are rounded off, so a round change reads as one S — a bend off the band, a straight run across, a bend onto the next — rather than two hard turns.
What the seam has to hold includes what the round's shaping reaches out to. A decrease is drawn down onto the stitches it closed over, and those sit either side of the one it makes — so a round that opens or closes with a decrease draws its ∧ out past its own first or last stitch. That reach is measured from where the round below really is and asked for along with everything else, both when the ring is sized and when the gap is reserved, so the mark can no longer be drawn across the round number or the step.
And that room stays one width all the way out. A round number does not get bigger as a chart does, so the seam has no reason to either — but ancestry hands a round the angles of the round below, seam gap and all, and the same wedge of the turn is more and more arc the further out it is drawn: the seam fanned open into a widening corridor, a stitch wide at the middle of a chart and three or four at its edge. Each round now spreads its stitches into that surplus instead, measured from the point opposite the seam (which does not move) so the stitches beside the seam give way and the ones away from it keep the angle their ancestry gave them. A chart's seam reads as one channel from the center out, and its round numbers as one straight line beside it.
The cost is a fifth of a stitch: that is how far a round may slide against the one below it to close its seam, on top of what it may already move to even out crowding. It is spent beside the seam and nowhere else, it decays to nothing over a run of plain rounds (a hundredth of a stitch per round on a straight-sided tube), and it never accumulates into a stitch sitting off the one it is worked into.
-
Increases and decreases you can read stitch by stitch, in traditional Japanese round charts. The chart is now built on a stitch graph: every stitch has an identity and records which previous-round stitch(es) it is worked into, taken from the pattern's own operations rather than guessed back from stitch counts (6 stitches becoming 7 says an increase happened, not where). Everything downstream follows from that graph:
-
Shaping is drawn as printed charts draw it: a symbol of its own round, in line with the plain stitches, never a mark floating in the gap between two rounds. An
incis a V whose point sits on its round's inner edge, in line with the stitch it is worked into, and whose two arms open out to the round's outer edge — one per stitch it makes, where the next round is worked. Adec(orscNtog) is the ∧: feet on each stitch it closed over, point standing above them. Nothing is a stock glyph — each mark is sized to its round's band and leans toward the stitches it belongs to — it opens far enough to reach across the stitches it belongs to but never so far that it stops reading as a V, and a mark whose round can't follow its ancestry can't spike off to one side. -
A round is positioned from its ancestry, not spread out on its own: plain stitches sit over their parent, an increase's pair straddles the stitch below them, and a decrease sits between the stitches it merged (across the 0°/360° seam too, where averaging two raw angles would put it on the opposite side of the chart). Working order is a hard constraint — no spacing pass may ever reorder stitches — followed by a minimum gap so symbols can't collide; whatever slack is left over is shared between the plain stitches near the shaping, which is what lets a lopsided round gradually even itself out over the rounds above it instead of all at once.
An increase's two stitches take less room than two spread stitches would — that closeness is what makes the V read as one symbol worked into one place — so the gaps beside them are wider, and ancestry alone hands that unevenness on to every round above unchanged. Each round now closes it up a little instead: its stitches drift toward the midpoint of their neighbours, by at most a fifth of a stitch per round, so the wide gap after an increase shrinks over the rounds above it and the columns lean back to even. A stitch is held exactly where its ancestry put it whenever its position is what carries the correspondence — one an increase or decrease of its own round produced, and one the next round works shaping into, since the V or ∧ drawn there is aimed at where the stitch sits.
-
Increase/decrease highlighting (
highlight: on) accents the shaping symbol itself, since the stitches an increase makes are ordinary single crochets. -
Ordinary one-to-one stitches are not arbitrarily grouped or packed: every stitch prefers the stitch below it. A round written as
[2 sc, inc] x 6still reads as six wedges because its six increases follow the six stitches they are worked into, not because the chart bunches each repeat up. A round that neither writes repeats nor shapes follows the round below stitch for stitch. When fixed-spacing clearance requires a minimum-movement projection, corrected bearings reconcile inward only through ancestry that covers every preceding-round source exactly once; a deliberately partial or repeatedly used source is a boundary, so the current round clears itself without pulling an earlier stitch or V out of shape. -
The mapping is complete and checkable in both directions: the first round records the center ring it is worked into (rather than "no source"), every stitch records the next-round stitches worked into it, and
validateStitchGraph()reports skipped or twice-used stitches, stitches worked into nothing, and stitches no later round picks up — as facts about the pattern, found before anything is drawn, instead of a chart that just looks odd. Free-form rounds keep those recorded sources as preferred targets rather than replacing them with an unrelated evenly spaced ring.
-
-
Writing a round the way patterns actually write it. The pattern language now reads several forms it used to reject outright:
rep:[2 sc, inc] rep 6,rep6,x6andx 6all mean the same thing. A barerep— what a written pattern means by "around" / "to end of round" — repeats until the round below is used up, worked out from that round rather than from a number you have to compute yourself (R2: ch, [2 sc, inc] rep, slstover a 6-stitch round is 2 repeats, since each go works into 3). A decrease inside the repeat counts as the two stitches it works into. If the round below doesn't divide evenly by one repeat, or a barerephas no round before it, the chart says so with the numbers involved instead of guessing a count and drawing a wrong chart.- The chain a round opens with:
R2: ch, 6 sc, sl stused to fail to parse. The leadingchis now kept in the pattern and drawn at the round's seam, and so is amrwritten as a step (R1: mr, ch, sc6, slst) rather than as anin MRanchor. Neither they nor the closingsl stcount toward the round's stitch total, and the next round works into neither — they're instructions, not stitches of the fabric. A chain or slip stitch in the middle of a round is still a real stitch and still counts. - A stitch count on either side of the name:
6 sc,sc6andsc 6are the same. Names that contain digits (dc2tog,tr5cl) are still read as one stitch, anddc12is still twelve doubles. - Every spelling of a slip stitch:
sl st,slst,sl-standsl_stall normalize to the one stitch.
-
"Increase and decrease color" setting: the accent color used when increase/decrease highlighting is on (
highlight: on, or the global setting) is now configurable instead of fixed, next to the existing chart-marker color. -
A third round-chart style,
continuous(style: continuous, or the "Round chart style" setting), sharing the Japanese style's layout but spelling the correspondence out instead of printing it: every stitch keeps its own symbol — including both stitches an increase makes — and lines are drawn from an increase's or decrease's stitches to the stitch below they are worked into, each end landing on a real stitch. Handy for checking a pattern, or for reading a chart without already knowing the printed symbols. Anhdc2tog/dc2tog-family decrease keeps its own printed symbol in both styles, and incontinuousgains a line to each stitch it closed over — which the symbol alone can't tell you.The default
radialstyle still spreads each round's stitches evenly and draws the stockinc/decglyphs, unchanged. -
Pattern-book lace motifs and direct written-note forms. Multiline round bodies, trailing punctuation, counted and non-counting beginning chains, written joins, slip-stitch repositioning, current-round
turn, typed targets such asnext ch-1 spandcenter dc of next 5-dc shell, quantity motifs, implicit skips, picots, V spaces, and prior-round/range repeats can now be represented without first rewriting the source into artificial shorthand. Chain spaces and shell children remain real, targetable graph positions, while progress totals follow their written stitch-count weight.lace: onhides structural round guides and numbers, enlarges symbols, and opens chain runs into lace geometry;sectorcan print a wedge, withwholeRoundskeeping selected center rounds complete.
Changed
-
The three round-chart styles are named for what they draw, in the frontmatter
stylekey and in the settings dropdown:radial(放射式 — each round's stitches spread evenly from the centre, the oldstandard),japanese(傳統日式 — the traditional pattern-book chart, the oldbook), andcontinuous(連續式 — the same layout with every stitch drawn and joined to the round below, the oldlinked). Charts and saved settings written with the old names keep working and keep meaning the same thing; nothing needs editing. -
The settings page is grouped and ordered by what each setting changes, with a short note at the top saying that everything there is a default a chart can override for itself. The groups run from what changes every chart to what is set once and left alone: chart appearance (round style, scale, stroke, ring spacing, background grid), highlights and colors, the progress tool and its panels, blank-grid defaults, and general (the plugin's language, and the AI pattern-authoring reference to copy) last. The pre-1.13 fallback renderer now builds its rows from the same definitions the declarative settings API is given, so the two can no longer disagree about wording, options or order.
-
Every chart is sized from the symbols it draws, not from its stitch count. A stitch used to be assumed to take one fixed slot wherever it appeared, which is true of a single crochet and of nothing taller: a round of doubles was drawn on a ring shorter than the symbols on it needed, a three-chain turn was squeezed into the room one chain takes, and both came out overlapping. Now every size is measured from what is actually on the chart:
- A round's ring is as long as its own symbols plus what its seam holds, so
12 dc in MRgets a bigger ring than12 sc in MRand a round opening withch 3gets room for three chains. - A flat chart's stitch pitch and row height follow its widest and tallest symbol (one pitch per chart, so its columns still line up); a spiral advances by each step's own symbols, so a
(5 dc)shell moves it five stitches on rather than one. - A group's stitches fan out by their own widths at the radius they are drawn on, instead of by a fixed angle that was too tight on a small round and too loose on a large one.
- The seam's slots come from the same place: a chain takes a chain's width, a slip stitch a slip stitch's, and the round number as much room as its digits need —
10more than1. - A shaping V or ∧ opens at most as wide as the stitches it spans really are, so a 3-together may open wider than a 2-together, and neither sprawls.
- The first round, the innermost guide line and a chain-ring center are placed off each other rather than off fixed radii, so nothing is drawn over the ring the first round is worked into.
Charts of single crochet — most amigurumi — are unchanged, since a single crochet is what the old fixed sizes were tuned for.
- A round's ring is as long as its own symbols plus what its seam holds, so
-
Round-chart symbols always face outward, and the "Symbol rotation" setting is gone. It offered a choice between rotating symbols with the round and keeping them upright, but only one of those reads correctly: a stitch's symbol has a top (where the next round is worked) and a bottom (where it is worked into), and on a round chart that means facing away from the center. Upright symbols made BLO/FLO in particular point the wrong way for most of the chart — the loop bar is drawn on the side of the stitch the loop is on, so it has to turn with the stitch. Existing charts need no change; the
rotationfrontmatter key is ignored. -
Progress counts now use written stitch-count weight. Counted beginning-chain replacements contribute their replacement stitch, ordinary mid-round chains contribute each written chain, and joins, repositioning, turns, skips, picot embellishments, and non-counting setup chains contribute zero. Existing saved positions that exceed a recalculated row total are clamped safely while completed-row progress is retained.
Fixed
-
Dense fixed-spacing round charts no longer overlap, hide, or resize stitches. An explicit
spacingremains the exact distance between every pair of rounds, and every round keeps the symbol size resolved from the user's setting. The chart measures all rounds before placement and, when a later round needs more circumference, raises only the first round's absolute radius enough to fit the densest configured-size symbols, joins, and seam packet. Clearance uses deterministic minimum movement and never drops a stitch. -
Increase/decrease ancestry remains aligned after collision correction. Increase children stay balanced around their real parent and produce readable V marks; decreases remain between all of their sources. Corrections propagate inward only across complete one-to-one source coverage, so free-form partial placement, repeated sources, grouped motifs, and extreme later rounds cannot stretch earlier shaping into spikes or detach later stitches from the displayed V endpoints.
-
Japanese seams and round numbers stay clear at every radius and in partial charts. The number/separator packet uses measured digit, join, chain, and symbol footprints, keeps at least 10px side clearance when geometry permits, follows only a continuously collision-free path, and stops before the final stitch and closing join. Charts beginning at R4, R16, or any other round keep their numbers on the opening side of the separator rather than assuming the chart begins at the center.
-
Japanese centers and first rounds are compact and correctly oriented. The first stitch worked into the center stays at twelve o'clock, an all-increase second round opens into near-isosceles V marks, and the seam uses available room without rotating those stitches away from their parents. A Japanese magic-ring center is rendered as
わ; an explicit chain ring remains a ring of chain symbols rather than the unverified abbreviationち.