Skip to content

feat!: add Tableau.MDExExtension - #193

Open
mhanberg wants to merge 3 commits into
mainfrom
mdex-as-package
Open

mhanberg wants to merge 3 commits into
mainfrom
mdex-as-package

Conversation

@mhanberg

@mhanberg mhanberg commented Oct 11, 2026 •

Copy link
Copy Markdown
Collaborator

This changes the MDEx integration from being a converter to being its
own extension.

The main goal of this is to make mdex an optional dependency for
Tableau, so a Tableau release is not required when mdex updates or makes
breaking changes.

  • Adds a convert callback to Tableau.Extension
  • Adds a Tableau.Converter.convert function for extensions to use
  • Post and Page extensions now will copy all files in the respective
    directory, and will convert them if there is a matching converter for
    that extension. Frontmatter is still required.

Breaking Changes

  • mdex is an optional dependency, so you must add it to your deps yourself.
  • If you use the lumis syntax highlighter with mdex, you must also add that as a dep yourself.
  • MDex and converter options are now set by their extension module
    instead of the :config key.
  • The contract for Tableau.Converter.convert now just takes content
    and opts.
  • Tableau.Converter is no longer a behaviour.
  • Converters now are extensions that implement the convert callback.
  • Tableau.markdown is removed. Use Tableau.Converter instead.

This changes the MDEx integration from being a converter to being its
own extension.

The main goal of this is to make mdex an optional dependency for
Tableau, so a Tableau release is not required when mdex updates or makes
breaking changes.

- Adds a `convert` callback to `Tableau.Extension`
- Adds a `Tableau.Converter.convert` function for extensions to use
- Post and Page extensions now will copy all files in the respective
  directory, and will convert them if there is a matching converter for
  that extension. Frontmatter is still required.

- MDex and converter options are now set by their extension module
  instead of the `:config` key.
- The contract for `Tableau.Converter.convert` now just takes content
  and opts.
- `Tableau.Converter` is no longer a behaviour.
- Converters now are extensions that implement the `convert` callback.
- `Tableau.markdown` is removed. Use `Tableau.Converter` instead.
@mhanberg

mhanberg commented Oct 11, 2026 •

Copy link
Copy Markdown
Collaborator Author

@halostatue thank you for your earlier updates to mdex, but I've decided to decouple tableau from mdex a bit more. If you get some time, could you try out this branch? I believe I've called out all the important breaking changes, but I should probably also put in some migration tips "change this to this" etc.

edit: you might also have to install the tableau_dev_server package from github as i havent published that yet i dont think.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant