Skip to content

Releases: arnodel/whynot

whynot 1.0.0-rc.3

whynot 1.0.0-rc.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Oct 13:24
7b631fd

whynot 1.0.0-rc.3

This is a pre-release, so Homebrew still installs the latest
release. To try it, download the archive for your platform below,
unzip it, and run whynot (or whynot some-file.md).

Building from source instead:

go install github.com/arnodel/whynot/browser/cmd/whynot@latest

Changelog

Features

  • bfe29bc feat: a Scroll event, and ScrollToEnd on a growing document (#122)

Bug Fixes

  • 7b631fd fix: ScrollToAnchor finds headings that arrived since the last draw (#123)

Other Changes

  • 718aa0b refactor: move the viewers into a browser module (#120)

Full Changelog: v1.0.0-rc.2...v1.0.0-rc.3

whynot 1.0.0-rc.2

whynot 1.0.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Oct 10:14
bbdfa58

whynot 1.0.0-rc.2

This is a pre-release, so Homebrew still installs the latest
release. To try it, download the archive for your platform below,
unzip it, and run whynot (or whynot some-file.md).

Building from source instead:

go install github.com/arnodel/whynot/cmd/whynot@v1.0.0-rc.2

Changelog

Features

  • bbdfa58 feat: View.DocumentBounds and ScrollWithin (#111)
  • 8efc5f3 feat: View.ScrollToEnd, to show the end of a document (#106)
  • 0a9a928 feat: front matter isn't shown, and is available raw (#108)
  • e245c9e feat: hard line breaks (#102)
  • 3b6cc8a feat: progressive documents, which grow as their Markdown arrives (#103)
  • aeb822c feat: syntax highlighting for inline code, by document-wide language (#99)

Bug Fixes

  • 34200f8 fix: a heading's text keeps glued words together (#109)

Full Changelog: v1.0.0-rc.1...v1.0.0-rc.2

whynot 1.0.0-rc.1

whynot 1.0.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Oct 20:23
ce33e36

whynot 1.0.0-rc.1

This is a release candidate, so Homebrew still installs the latest
release. To try it, download the archive for your platform below, unzip
it, and run whynot (or whynot some-file.md).

Building from source instead:

go install github.com/arnodel/whynot/cmd/whynot@v1.0.0-rc.1

Changelog

Breaking Changes

  • 416126b feat!: NewView's fonts and stylesheet are options, with defaults (#89)
  • 2675279 feat!: package fetch replaces images; images are resolved at Parse (#92)

Features

  • a924206 feat: nicer simpletheme presets; every Theme field documented (#94)
  • 487b00f feat: the viewers load documents through a registry, with -root (#93)

Bug Fixes

Full Changelog: v0.6.0...v1.0.0-rc.1

whynot 0.6.0

Choose a tag to compare

@github-actions github-actions released this 04 Oct 14:52
0b444be

whynot 0.6.0

On macOS:

brew install arnodel/tap/whynot

Otherwise, download the archive for your platform below, unzip it,
and run whynot (or whynot some-file.md).

Building from source instead:

go install github.com/arnodel/whynot/cmd/whynot@v0.6.0

Changelog

Breaking Changes

  • f40b411 feat!: "#id" links scroll by default; OnAnchorClick replaces AnchorScrolling (#56)
  • aa33adb feat!: AsyncImage.Fetch takes a context.Context (#58)
  • c5901ca feat!: Controller and the input package replace Interaction (#50)
  • 091e489 feat!: Frame returns events; the hovered link is a View query (#59)
  • 997009c feat!: View keeps position primitives; the Controller scrolls on command (#54)
  • b800992 feat!: a View has a scale and a zoom, like a Panel (#74)
  • 6982926 feat!: a View is a window onto the canvas's coordinates (#55)
  • 249dcae feat!: built-in vertical scrollbar, defined by the style (#52)
  • 0b7b370 feat!: systemfont's Register methods return an error (#75)
  • 67109f6 feat!: wheel deltas are logical pixels, scaled by the Controller (#70)
  • 070df64 feat!: whynot.Panel is a concrete, backend-agnostic type (#53)
  • f2c1505 refactor!: Margins is internal; simpletheme declares its own (#39)
  • 3315462 refactor!: View.HitTest returns a rectangle; Document.Root removed (#40)
  • 61f27aa refactor!: backends/giobackend is its own module (#62)
  • 04c617e refactor!: browser and PointerState are internal to the apps (#49)
  • 3971a12 refactor!: codeblocks package: one plugin kind, token classes on nodes (#43)
  • db4be0e refactor!: ebitenrenderer becomes backends/ebitenbackend (#60)
  • 233bdd3 refactor!: giorenderer becomes backends/giobackend, with the Gio programs (#61)
  • 977aa3c refactor!: image contract in a public images package; cache to internal/imagecache (#33)
  • 4500722 refactor!: kroki.Renderer becomes kroki.Plugin (#69)
  • 2ebb73c refactor!: make stylesheets opaque, made by theme packages under styles/ (#31)
  • 81acc50 refactor!: move Canvas into a public canvas package (#34)
  • afe0821 refactor!: move fonts into a public fonts package; SelectFace takes a dpi (#32)
  • a93b6f9 refactor!: move layout and drawing into internal/engine (#37)

Features

  • 70e84fb feat: backends' input readers are input.Sources (#51)
  • ab2ef96 feat: the welcome page shows the commit a build came from (#72)

Bug Fixes

  • 8b3eb84 fix: SetView reports that the hovered link is gone (#57)

Other Changes

  • cd5487b refactor: engine is the pipeline; View owns position and scroll state (#41)
  • cefe2d6 refactor: move the Markdown compiler to internal/markdown (#45)
  • 2e970a8 refactor: trim the engine's exported surface (#42)

Full Changelog: v0.5.0...v0.6.0

whynot 0.5.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 20:50
b8a659d

whynot 0.5.0

On macOS:

brew install arnodel/tap/whynot

Otherwise, download the archive for your platform below, unzip it,
and run whynot (or whynot some-file.md).

Building from source instead:

go install github.com/arnodel/whynot/cmd/whynot@v0.5.0

What's new

  • Gio backend and app. giorenderer renders whynot with Gio, alongside the existing Ebitengine backend. cmd/giowhynot is a full viewer built on it, with an editable address bar. Both apps share their navigation, history and loading logic through the new browser package. The Gio app is live on the web next to the Ebitengine one; this release ships binaries for whynot only.
  • Table of contents for the current document, from the toolbar.
  • Mermaid diagrams: ```mermaid code blocks render as diagrams (via Kroki).
  • Horizontal scrolling for code blocks and tables wider than the window. On desktop: trackpad, Shift+wheel, or a scrollbar that appears while you scroll or point at the block. On touch: swipe sideways, with momentum; vertical swipes still scroll the page. A fade at the edge shows there's more.
  • Web apps: links to web pages open in a new tab. The Gio web app is now the right size on phones, and its touch scrolling has momentum.

Fixes

  • Ordered lists now start from their own number (3. used to render as 1.).
  • List items no longer wrap one space too early.

Breaking changes (library)

  • Parse returns a *Document, and NewView takes it instead of source bytes: NewView(whynot.Parse(source), faceSelector, ...). Highlighting and code-block plugins are Parse options: WithSyntaxHighlighter, WithCodeBlockPlugin. The NewView options WithHighlighter and WithCodeBlockPlugins are gone. Title and TOCEntries moved from View to Document.
  • Canvas has a new method, Clip(r image.Rectangle) Canvas: custom Canvas implementations need to add it.
  • Interaction.AccumulateMomentum is replaced by TouchStart/TouchDrag/TouchEnd.
  • A RenderingContext with no ImageCache no longer loads images, and shows their alt text instead. NewView always sets one.

Changelog

Features

  • 8af63cd feat: add a Gio-based rendering backend (giorenderer), v1 static Canvas (#9)
  • 38dc3fc feat: add a table of contents to the document browsers (#14)
  • 165e16d feat: add cmd/giowhynot, a Gio-based whynot app (#11)
  • abc797c feat: editable address bar for cmd/giowhynot (#12)
  • b65b82f feat: extract browser package, migrate cmd/whynot onto it (#10)
  • 9b4a4d7 feat: open web page links in a new tab in the web apps (#24)
  • 71732df feat: pan wide code blocks and tables sideways by touch (#27)
  • fbbd026 feat: publish cmd/giowhynot's wasm build to GitHub Pages (#13)
  • 84dd82b feat: scroll code blocks sideways when wider than the view (#26)
  • 6e99a1b Render mermaid fenced code blocks as diagrams via Kroki (#15)

Bug Fixes

  • 5e6e779 fix: Gio web app is too small on phones and touch flings stop dead (#23)
  • 79c2b43 fix: a touch leaves nothing hovered in the Gio app (#28)
  • b8a659d fix: sideways scrollbar shows only while scrolling or pointing, then fades (#29)

Other Changes

  • 98c2637 refactor: make View render a parsed Document (#17)
  • 1b9b01b refactor: move View's scroll and height-estimate state into documentStack (#18)
  • b545d2b refactor: place inline parts once and store their positions on LineBox (#19)
  • 3692824 refactor: remove repetition from the Markdown compiler (#21)
  • af4c27c refactor: stop Blocks creating their own ImageCache during layout (#20)

Full Changelog: v0.4.0...v0.5.0

whynot 0.4.0

Choose a tag to compare

@github-actions github-actions released this 22 Sep 19:22
ea37f4c

whynot 0.4.0

On macOS:

brew install arnodel/tap/whynot

Otherwise, download the archive for your platform below, unzip it,
and run whynot (or whynot some-file.md).

Building from source instead:

go install github.com/arnodel/whynot/cmd/whynot@v0.4.0

Changelog

Features

  • b8e049b feat: add a minimal WASM/browser example (#5)
  • 8f134a1 feat: enable goldmark's Typographer extension for smart quotes/dashes (#4)
  • ea37f4c feat: momentum scrolling after a touch drag ends (#8)
  • 6bdd755 feat: run cmd/whynot itself in the browser, live on GitHub Pages (#6)
  • b74fb62 feat: touch support for scrolling, links, and toolbar buttons (#7)

Full Changelog: v0.3.1...v0.4.0

whynot 0.3.1

Choose a tag to compare

@github-actions github-actions released this 21 Sep 19:31

whynot 0.3.1

On macOS:

brew install arnodel/tap/whynot

Otherwise, download the archive for your platform below, unzip it,
and run whynot (or whynot some-file.md).

Building from source instead:

go install github.com/arnodel/whynot/cmd/whynot@v0.3.1

Changelog

Other Changes

  • f651dc8 Fix soft/hard line breaks gluing words together with no space
  • fef8fc1 Stop inserting spaces/breaks between adjacent inline elements; add non-breaking space support (#3)

Full Changelog: v0.3.0...v0.3.1

whynot 0.3.0

Choose a tag to compare

@github-actions github-actions released this 21 Sep 12:08
af2481d

whynot 0.3.0

On macOS:

brew install arnodel/tap/whynot

Otherwise, download the archive for your platform below, unzip it,
and run whynot (or whynot some-file.md).

Building from source instead:

go install github.com/arnodel/whynot/cmd/whynot@v0.3.0

Changelog

Other Changes

  • a15ee12 Add CustomFontFaceSelector for loading custom TTF/OTF fonts
  • 9149f1f Add StyleSheet.LineHeight for comfortable line spacing within a paragraph
  • af2481d Add opt-in syntax highlighting for code blocks (#2)
  • c279580 Add systemfont: resolve fonts by name from the host's installed fonts
  • e8a4d8e CustomFontFaceSelector: collection-aware registration API
  • 657598c CustomFontFaceSelector: default fallback to GoFontFaceSelector
  • 9ab1561 Render task list checkboxes as real boxes, not □/■ text (#1)
  • 140f2e9 cmd/whynot: use the platform's own fonts for document text
  • 822761d ebitenrenderer: fix baseline misalignment when mixing font faces
  • a2bcafe examples/customfont: bundle Pacifico as the default font
  • 968fdfd examples/customfont: render at the display's real device scale
  • a8cf815 examples/systemfont: also register a monospace system font
  • 926b906 examples/systemfont: default to Helvetica/Courier, not Arial/Courier New
  • 1aa80e1 examples/systemfont: demonstrate bold/italic from a registered collection
  • 977b11e systemfont: add RegisterPreferredFont, no font name required
  • 3ae69c8 systemfont: log which role each font decision was for

Full Changelog: v0.2.0...v0.3.0

whynot 0.2.0

Choose a tag to compare

@arnodel arnodel released this 20 Sep 09:02

New Panel ebiten helper

Full Changelog: v0.1.3...v0.2.0

whynot 0.1.3

Choose a tag to compare

@arnodel arnodel released this 19 Sep 15:14

Tweaks to docs / welcome page

Full Changelog: v0.1.2...v0.1.3