github iwe-org/iwe iwe-v0.26.0
v0.26.0

latest releases: iwec-v0.26.0, iwes-v0.26.0
3 hours ago

Writes now leave your links the way you wrote them: links to directories like [docs](docs/) stay pointed at the directory, and code spans and emphasis inside link text survive normalization. Markdown edited with the editor tools in a Claude Code session is also no longer rewritten behind your back, so project files such as README.md keep their formatting.

iwe

Changed

  • A markdown document edited with the editor tools in a Claude Code session is no longer rewritten into canonical form behind the edit; only writes through iwe normalize on the way in (previously the whole file was rewritten in place, which broke links and reformatted project markdown such as README.md). The schema check on such an edit is unchanged.

Fixed

  • iwe normalize and every other document write keep a link to a directory as written: [docs](docs/) no longer becomes [docs](docs.md), and [up](..) no longer becomes [up](...md), both of which pointed at a file that does not exist.
  • Inline formatting inside link text survives a write: [`iwe` tool](setup.md) and [the **setup** guide](setup.md) keep their code spans and emphasis (previously the link text was flattened to plain words).

iwes

Fixed

  • Formatting keeps a link to a directory as written ([docs](docs/) no longer becomes [docs](docs.md)) and keeps code spans and emphasis inside link text instead of flattening them to plain words.

iwec

Fixed

  • Every tool that writes a document keeps a link to a directory as written ([docs](docs/) no longer becomes [docs](docs.md)) and keeps code spans and emphasis inside link text instead of flattening them to plain words.
Library crates (liwe, diwe)

liwe

Added

  • is_document_url in liwe::model — true for a relative link that names a document, false for an external URL or a directory path (ending in /, or whose last segment is . or ..).

Changed

  • Reference stores the link text as written in an inlines field (code spans, emphasis and the like) instead of a plain text string; text() now derives the plain form from the inlines, and Reference::plain builds one from a plain string. GraphNode::new_ref takes the inlines where it took the text, and GraphBuilder::reference_with_text is now reference_with_inlines.
  • A link whose target is a directory (ends in /, or is . or ..) is no longer turned into a reference: it stays an Inline::Link and is written back unchanged.

Fixed

  • Code spans and emphasis inside link text survive a round trip through the graph (previously flattened to plain words).

Don't miss a new iwe release

NewReleases is sending notifications on new releases.