Skip to content

Releases: evanlyu/obsidian-crochet-weaver

1.3.0

Choose a tag to compare

@github-actions github-actions released this 09 Aug 09:15
c29c84e

[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 bare rep; 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*.md has become skills/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ée or 짧은뜨기 rather than sc — 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: japanese in frontmatter, or the new global "Round chart style" setting): draws type: round charts 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 inc is 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. A dec (or scNtog) 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 6 still 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 wa...

Read more

1.2.0

Choose a tag to compare

@github-actions github-actions released this 25 Jul 08:10
796c149

Added

  • Readable pattern text style: the progress tool's row list and the read-only pattern-text panel can now show fully translated, localized stitch names (e.g. 魔術環(短針6)) instead of raw shorthand (6 sc in MR). New global setting "Pattern text style" (Original / Readable), default Original — unchanged behavior unless you opt in. Override per chart with readable: on/off in frontmatter. Covers all 46 supported stitch symbols plus the round anchors (MR, ch ring) in all four supported languages (en/zh-TW/zh-CN/ja); any symbol without a translation falls back to its raw abbreviation instead of failing.
  • "Reset all" button: sits next to the stitch counter's existing "Reset stitch count" button and resets both the round/row progress and the stitch counter in one click — a shortcut for the same full reset already available at the bottom of the tool.
  • Scrollable, drag-to-pan charts: a chart or blank grid that's larger than its note pane no longer gets squeezed down to fit (which made many-round motifs illegible). It now renders at its real, configured size inside a bounded viewport — drag with the mouse, or use native touch/trackpad scrolling, to pan around. A chart that overflows opens centered on its middle instead of the top-left corner.
  • Yarn color changes: a new color <name> step (e.g. color white, color: black, color #ff8800) for marking where a pattern switches yarn — mid-row ("8 sc, color white, 8 sc, color black, 8 sc") or at the start of a row/round. It applies to every stitch from that point on and stays in effect through later rows until another color step changes it, matching how yarn color actually persists. The stitch symbols themselves stay the chart's normal theme color (painting them the literal yarn color would go illegible in a dark or light theme, and would double up with the progress tool's own current-position highlight); instead, the first stitch of each new color gets a small hollow ring in that color, so the switch is legible without covering the stitch underneath it. Also shown as "change to <color>" in the progress tool and pattern-text panels, in both the raw and readable text styles. Documented in the AI pattern-authoring reference (all four languages).
  • AI pattern-authoring reference in four languages: docs/ai-pattern-authoring.md now has 繁體中文 (.zh-TW.md), 简体中文 (.zh-CN.md), and 日本語 (.ja.md) translations alongside the existing English version — syntax tokens and code examples stay untranslated (they're literal syntax), only the explanatory text is translated. New settings-tab section, "Copy AI pattern-authoring instructions", with one button per language that copies that translation straight to the clipboard, ready to paste into an AI chat.

Fixed

  • Flat-chart grid guide misalignment: the background grid guide (grid: on) for type: flat charts assumed row 1 always starts at column 0. Flat rows alternate direction, so a pattern that widens on both edges (e.g. a symmetric increase/decrease motif) could drift left of that assumed start — stitches then rendered outside the guide box instead of inside it. The guide now anchors to the real min/max position of the rendered stitches.
  • Chart drag-panning not working left/right when a chart has an embedded progress tool (tool: on): the chart's flex-row container defaulted to min-width: auto, which silently blocked horizontal overflow/scrolling. Vertical panning was unaffected since it doesn't sit on the flex row's main axis.
  • Progress-tool row text clipped or overlapping the round/stitch-count badges on narrow (portrait phone) widths: a long row's shorthand or readable-style text ran off the edge of the screen instead of wrapping. The stitch-counter and bottom control button rows now wrap onto additional lines when needed. The row list itself (R<n> / step text / stitch count) is rebuilt on CSS Grid instead of flex, so the round badge and stitch count stay in fixed-width columns that can never overlap the step text — a flex-based fix looked correct but still overlapped in practice, particularly since the row is a <button> element. The last missing piece was Obsidian's own base button { white-space: nowrap } rule leaking into the row and blocking all wrapping regardless of the layout — the row now explicitly sets white-space: normal, letting the step text wrap onto extra lines and grow the row's height while the badges stay pinned.
  • npm run lint reporting false-positive "unsafe call" errors on a fresh checkout: unlike test/dev/build, the lint script didn't regenerate src/parser.ts first, so linting without that generated file already present made every call into the parser look untyped.

1.1.0

Choose a tag to compare

@github-actions github-actions released this 20 Jul 12:37
d0c284b

Added

  • Blank drafting grid (crochet-grid block): a new code-block language for sketching a design by hand, independent of any pattern — a blank polar grid (shape: polar, concentric rings + radial spokes sized by rounds/columns) or a rectangular mesh (shape: rect, sized by rows/columns). New global settings (gridDefaultShape, gridDefaultRounds, gridDefaultColumns, gridDefaultRows) and an "Insert blank crochet grid" command that drops in a starter block pre-filled with your defaults.
  • Grid guide overlay on real charts (grid: on): any crochet block can now draw a faint reference guide behind its own stitches, aligned to the chart's real geometry — concentric round guides for type: round/spiral (spokes default to the outer round's stitch count), or a row/column mesh for type: flat. The guide matches the pattern's real extent by default; rounds/rows and columns frontmatter keys let it extend beyond the written pattern (e.g. to preview how many more rounds a design might need) but never shrink below it. New "Show background grid guide" global setting.
  • 32 new stitch symbols, bringing the supported library to 46: picot, rsc (reverse single crochet / crab stitch); N-together decreases sc2tog, sc3tog, hdc2toghdc5tog, dc2togdc5tog; post stitches fpsc, fphdc, fptr, bpsc, bphdc, bptr; crossed stitches xhdc, xdc, xtr; clusters/puffs hdc2cl/3cl/5cl, dc2cl/3cl/5cl, tr2cl/3cl/5cl; and popcorns hdc popcorn, tr popcorn. The highlightIncDec accent now also covers the new N-together decreases.
  • Safety limits for the grid features (max 40 rounds, 72 columns, 40 rows) so a mistyped override can't generate an unbounded SVG, matching the existing pattern-chart budget checks.

Changed

  • Rewrote the stitch-name guidance in the AI pattern-authoring reference (docs/ai-pattern-authoring.md) and the crochet-weaver-pattern skill's fallback cheat sheet: previously both told an assistant to collapse every decrease into dec because dedicated tog/cluster tokens didn't exist yet.
  • The flat-chart row-connector ("S" turning path) line is now more visible (opacity: 0.5, up from 0.2).
  • README.md (and its zh-TW/zh-CN/ja translations): stitch list replaced with a full reference table; new sections documenting the blank grid block and the grid guide overlay; updated Settings and Safety Limits sections.

Notes

  • All additions are backward compatible — existing crochet/crochet-tool blocks render identically; grid, showGrid, and the new stitch names are opt-in.
  • No settings migration needed; new settings default to off/unused until configured.

1.0.1

Choose a tag to compare

@github-actions github-actions released this 19 Jul 14:11
eb9c512

v1.0.1

Fixed

  • Round charts no longer shrink a decrease round's ring back inward. Every round is now placed farther out than the one before it — a decrease just spreads fewer stitches around a same-or-larger ring — so later rounds never overlap or nest inside earlier, larger ones.
  • BLO/FLO loop markers now share the embedded progress tool's current-position highlight with their stitch (same highlight class and color when the tool focuses that row/stitch), instead of rendering with no distinguishing color at all.
  • Removed an unsafe function call flagged by type-aware linting: chart parsing is now centralized through a single, simply-typed parseChart() helper instead of repeating an any-prone cast at each call site.

Added

  • The round-1 anchor (in MR / in ch ring) can now be followed by additional steps on the same row — for example R1: 6 sc in MR, sl st to join round 1 right after starting it.

Removed

  • The "next round marker" feature (the arrow indicator on concentric round charts, plus its settings-tab toggle) has been removed.

1.0.0

Choose a tag to compare

@github-actions github-actions released this 19 Jul 14:11
8d4dad3

initialize project