Skip to content

Releases

MdlibPure.Blazor 0.2.0

Choose a tag to compare

@MichelePolo MichelePolo released this 02 Nov 10:03
b1c613b

MdlibPure.Blazor 0.2.0, the Blazor wrapper of mdlib-pure.

Added

  • OnValueCommit on MarkdownEditor (EventCallback<string?>) and PodcastEditor (EventCallback<PodcastEpisode>): the user left the editor, with the value at that moment; a pending ValueChanged is raised first. Interactive render modes. The counterpart of the Angular wrapper's valueCommit.

Changed

  • The bundled <mdlib-podcast-editor> dispatches change only when focus leaves the editor (moves inside it, such as text area → toolbar or a dialog, do not count), like <mdlib-editor> and native inputs. Before, it followed every typing pause. @bind-Value is unaffected (it uses input).
  • The podcast element is now shared with the Angular wrapper (templates/podcast/element.js): same behavior in both.

Install (until it is on nuget.org)

Requires .NET 10. Download MdlibPure.Blazor.0.2.0.nupkg below into a folder, then:

dotnet nuget add source /path/to/folder --name mdlib-local
dotnet add package MdlibPure.Blazor --version 0.2.0

Setup, parameters, PodcastEditor, render modes and security notes: bindings/blazor/README.md.

Notes

  • Bundles mdlib-pure 0.1.1 (unchanged). Third-party code bundled in the package (KaTeX, Mermaid and their dependencies, all permissively licensed) is listed in THIRD-PARTY-NOTICES.txt inside the package.
  • All people and content in the podcast sample are fictional.
  • Built from b1c613b. SHA-256 of the .nupkg: 27babaed7f245a6006fb621285deb3e232fc68b97c96ba8b35128b5fdccbc1bd

ngx-mdlib-pure 0.2.0 (npm tarball)

Choose a tag to compare

@MichelePolo MichelePolo released this 02 Nov 10:03
b1c613b

ngx-mdlib-pure 0.2.0, the Angular wrapper of mdlib-pure, as an npm tarball. Neither it nor mdlib-pure is on the npm registry yet: install both by URL.

npm install https://github.com/MichelePolo/mdlib-pure/releases/download/mdlib-pure-v0.1.1/mdlib-pure-0.1.1.tgz \
  https://github.com/MichelePolo/mdlib-pure/releases/download/angular-v0.2.0/ngx-mdlib-pure-0.2.0.tgz
npm install katex mermaid   # optional: math and diagrams

Added

  • ngx-mdlib-pure/podcast, a secondary entry point: PodcastEditor, the rundown editor of mdlib-pure's podcast sample as <mdlib-podcast-editor> (the component's host is the element).
    • [(value)] of a typed PodcastEpisode (source, documents, activeDocument, durationCentiseconds), podcastEpisode({ … }) for defaults; a ControlValueAccessor for [formControl], formControlName, [(ngModel)].
    • Inputs participants, view, delay, label, name, disabled, grammar, tagColors, tasks, documents, readOnly, compact, currentLine, runningTimer; outputs valueCommit (focus left the editor), taskToggle, openDocument, activeDocumentChange. The same options as the Blazor wrapper's PodcastEditor.
    • Defined on first use in the browser; on the server it renders empty with its attributes (SSR, ngSkipHydration). Markup and styles in a shadow root; theme it through ::part(editor).

MarkdownEditor, MarkdownViewer, provideMdlibPure() and MarkdownService are unchanged. Peer dependencies unchanged: @angular/core, @angular/common, @angular/forms ^21.0.0 || ^22.0.0, mdlib-pure ^0.1.1.

Guide: bindings/angular/README.md · on the site: https://michelepolo.github.io/mdlib-pure/docs/angular/

All people and content in the podcast sample are fictional. Built from b1c613b with npm run angular:pack. SHA-256 of ngx-mdlib-pure-0.2.0.tgz: 6619d80b048f7c8b8cdfb528477ed646bc18b74066ac893a2a3ed527b686d439

ngx-mdlib-pure 0.1.1 (npm tarball)

Choose a tag to compare

@MichelePolo MichelePolo released this 02 Nov 07:55
9481e31

ngx-mdlib-pure 0.1.1, the Angular wrapper of mdlib-pure, as an npm tarball. Neither it nor mdlib-pure is on the npm registry yet: install both by URL.

npm install https://github.com/MichelePolo/mdlib-pure/releases/download/mdlib-pure-v0.1.1/mdlib-pure-0.1.1.tgz \
  https://github.com/MichelePolo/mdlib-pure/releases/download/angular-v0.1.1/ngx-mdlib-pure-0.1.1.tgz
npm install katex mermaid   # optional: math and diagrams

Changed

  • Peer dependency mdlib-pure is now ^0.1.1, so apps get the <mdlib-editor> fixes of mdlib-pure 0.1.1: a value set as a property before the element is connected or defined is no longer lost, and missing form APIs (jsdom) no longer throw. Also its theme fixes under Tailwind's preflight.
  • The packaged README installs the 0.1.1 tarballs.

The components, provideMdlibPure() and MarkdownService are the same as in 0.1.0: no API change.

Peer dependencies: @angular/core, @angular/common, @angular/forms ^21.0.0 || ^22.0.0, mdlib-pure ^0.1.1.

Guide: bindings/angular/README.md · on the site: https://michelepolo.github.io/mdlib-pure/docs/angular/

Built from 9481e31 with npm run angular:pack. SHA-256 of ngx-mdlib-pure-0.1.1.tgz: 8a055c0792e731057f171d94bbbb01515bc0ba2efd1e82b57bc91a5749501506

MdlibPure.Blazor 0.1.1

Choose a tag to compare

@MichelePolo MichelePolo released this 01 Nov 01:28
f6e579a

MdlibPure.Blazor 0.1.1 adds <PodcastEditor>, the podcast rundown editor of the public sample, as a Blazor component.

  • <PodcastEditor @bind-Value="Episode" Participants="People" />: the whole episode is bound as a typed C# PodcastEpisode (rundown source, supporting documents, active document, planned duration).
  • Configurable participants (@name completion and highlighting), supporting documents, planned durations and the planned total.
  • Same parser, controller, toolbar and styles as the site sample; JavaScript and CSS load automatically, no Node build in your app. Saving is up to the app (ValueChanged or @bind-Value:after); the wrapper uses no localStorage.
  • Static SSR (the episode is posted as JSON), Interactive Server, WebAssembly and Auto, tested end to end in Chromium, including enhanced navigation.
  • Bundles mdlib-pure 0.1.1 (element value set before connection, Tailwind preflight fix).

<Markdown>, <MarkdownEditor> and IMarkdownService are unchanged from 0.1.0.

Install (until it is on nuget.org)

Requires .NET 10. Download MdlibPure.Blazor.0.1.1.nupkg below into a folder, then:

dotnet nuget add source /path/to/folder --name mdlib-local
dotnet add package MdlibPure.Blazor --version 0.1.1
// Program.cs
builder.Services.AddMdlibPure();
@* _Imports.razor *@
@using MdlibPure.Blazor

Setup, parameters, PodcastEditor, render modes, AST service and security notes: bindings/blazor/README.md. Podcast example guide: docs/podcast.md.

Notes

  • Third-party code bundled in the package (KaTeX, Mermaid and their dependencies, all permissively licensed) is listed in THIRD-PARTY-NOTICES.txt inside the package.
  • All people and content in the podcast sample are fictional.
  • SHA-256 of the .nupkg: aed8cf2efc4467ce9a901634d910cec140ee5145df938088cdb3f659d01bc8c4

mdlib-pure 0.1.1 (npm tarball)

Choose a tag to compare

@MichelePolo MichelePolo released this 31 Oct 08:29

mdlib-pure only, as the npm tarball of the GitHub release mdlib-pure-v0.1.1
(still not on the npm registry). ngx-mdlib-pure 0.1.0 works with it
unchanged; MdlibPure.Blazor 0.1.0 still bundles the 0.1.0 elements and theme.

Fixed

  • <mdlib-editor>: a value set as a property before the element was
    connected (React 19, Vue) was replaced by the missing attribute, so the
    editor started empty; a value set before defineElements() hid the
    setter. Both now work (#1).
  • <mdlib-editor> in test DOMs: no TypeError where ElementInternals
    has no setFormValue() (jsdom 29) or attachInternals() is missing.
  • theme.css under Tailwind's preflight: list markers, link underlines and
    inline images are kept, so .md looks the same with or without Tailwind.
  • theme.css: code blocks are 14px as intended (they were 11.4px: the
    browser's bare monospace shrinks em sizes); footnote references no
    longer stretch their line; task-list checkboxes line up with the indent.

Install

npm install https://github.com/MichelePolo/mdlib-pure/releases/download/mdlib-pure-v0.1.1/mdlib-pure-0.1.1.tgz

Validation

  • npm run verify and all 652 CommonMark examples pass.
  • All 30 Chromium tests pass.
  • npm run site:build passes, including internal links.
  • The attached tarball installs offline; every public JavaScript entry point imports and all 652 CommonMark examples pass against the installed package.

SHA-256 (mdlib-pure-0.1.1.tgz): e48c62f3156a94da616f611bba52fbbe7a2089d03bced6d92291ee48e964d90a

mdlib-pure 0.1.0 (npm tarball)

Choose a tag to compare

@MichelePolo MichelePolo released this 29 Oct 08:43

The npm package of mdlib-pure 0.1.0, as a tarball. It is not on the npm registry yet (npm install mdlib-pure does not work): install it by URL.

npm install https://github.com/MichelePolo/mdlib-pure/releases/download/mdlib-pure-v0.1.0/mdlib-pure-0.1.0.tgz

npm records the URL in package.json and the checksum in package-lock.json, so npm ci works on CI and for your colleagues. Imports are the same as from the registry: import { createMarkdown } from 'mdlib-pure'.

  • CommonMark 0.31.2 (652/652 spec examples), GitHub Flavored Markdown as a plugin (54/54), ~11 KB gzip core, zero dependencies, linear time on any input.
  • Entry points: gfm, headings, container, math, mermaid, deflist, mark, frontmatter, adapter (React/Preact/Vue), element (the <mdlib-markdown> and <mdlib-editor> Web Components), entities; theme.css, editor.css, tailwind.css.
  • Docs, samples and playground: https://michelepolo.github.io/mdlib-pure/ · changes: CHANGELOG.md

Framework wrappers: Angular (npm tarball), Blazor (.nupkg).

Built from 59bcab7 with npm pack. SHA-256 of mdlib-pure-0.1.0.tgz: c41a4c0b7b1a403cad62ab51d55fe4b328583c9e92a20715a3dae59a8cb13ac7

MdlibPure.Blazor 0.1.0

Choose a tag to compare

@MichelePolo MichelePolo released this 29 Oct 06:58

First release of MdlibPure.Blazor, the Blazor wrapper of mdlib-pure: an editor with live preview and a Markdown viewer for every Blazor render mode.

  • <MarkdownEditor @bind-Value="text" />: toolbar, Ctrl+B/I/K, split / write / preview views, live preview rendered in the browser on every keystroke; works with EditForm and in Static SSR forms.
  • <Markdown Value="text" />: the viewer.
  • IMarkdownService (builder.Services.AddMdlibPure()): typed AST, table of contents, HTML.
  • All plugins: GFM, headings, math (KaTeX), Mermaid, containers, definition lists, mark, front matter. KaTeX and Mermaid are bundled and loaded only when a document uses them.
  • Static SSR, Interactive Server, WebAssembly and Auto, tested end to end in Chromium.

Install (until it is on nuget.org)

Requires .NET 10. Download MdlibPure.Blazor.0.1.0.nupkg below into a folder, then:

dotnet nuget add source /path/to/folder --name mdlib-local
dotnet add package MdlibPure.Blazor --version 0.1.0
// Program.cs
builder.Services.AddMdlibPure();
@* _Imports.razor *@
@using MdlibPure.Blazor

Setup, parameters, render-mode behavior, AST service, named configs, styling and security notes: bindings/blazor/README.md.

Notes

  • Third-party code bundled in the package (KaTeX, Mermaid and their dependencies, all permissively licensed) is listed in THIRD-PARTY-NOTICES.txt inside the package.
  • Not tested yet: standalone WebAssembly hosting, legacy _Host.cshtml, strict Content-Security-Policy.
  • SHA-256 of the .nupkg: d3f6e2705b135328db94cbf9e5c9a39a80994aedd6dc474d2ce2fad811028879

ngx-mdlib-pure 0.1.0 (npm tarball)

Choose a tag to compare

@MichelePolo MichelePolo released this 29 Oct 08:43

ngx-mdlib-pure 0.1.0, the Angular wrapper of mdlib-pure, as an npm tarball. Neither it nor mdlib-pure is on the npm registry yet: install both by URL.

npm install https://github.com/MichelePolo/mdlib-pure/releases/download/mdlib-pure-v0.1.0/mdlib-pure-0.1.0.tgz \
  https://github.com/MichelePolo/mdlib-pure/releases/download/angular-v0.1.0/ngx-mdlib-pure-0.1.0.tgz
npm install katex mermaid   # optional: math and diagrams
  • Angular 21 and 22: standalone MarkdownEditor (<mdlib-editor [(value)]>, a ControlValueAccessor for ngModel and reactive forms) and MarkdownViewer (<mdlib-markdown [source]>), no CUSTOM_ELEMENTS_SCHEMA.
  • provideMdlibPure({ loaders, configs }); MarkdownService for the AST, the table of contents and HTML, also on the server.
  • SSR with hydration (@angular/ssr), zoneless.
  • Peer dependencies: @angular/core, @angular/common, @angular/forms ^21.0.0 || ^22.0.0, mdlib-pure ^0.1.0.

Guide: bindings/angular/README.md · on the site: https://michelepolo.github.io/mdlib-pure/docs/angular/

Built from 59bcab7 with npm run angular:pack. SHA-256 of ngx-mdlib-pure-0.1.0.tgz: 3699b1cda9e1c7eac06dde99235595546e6025a249cf23affe21ebfdb9c4a03b