Repository navigation
Conversation
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.
|
@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. |
|
Apologies — I completely missed this tag. I'll try it tonight, but it might take a bit of time to be certain because I have several plugins which use the tight integration. It could be that #175 can be resolved with something like this, as well. |
No worries at all. Thanks for taking a look! |
|
I've run this on my site and extensions; it produces identical results to the last time I ran this with the outstanding MDEx upgrade. I will need to update a couple of extensions and I needed to make some changes to my site, but it works. BTW, this doesn't solve #175 cleanly unless #175 (comment) is addressed (add |
|
A couple of notes from the agent that I used on Prosody to fix things:
|
elixir-tools/tableau#193 changes Tableau from having a Converter behaviour to using a converter extension (`Tableau.MDExExtension`). This checks for the configuration there, otherwise it tries to get the configuration from the location _before_ the change. In the unlikely event that _both_ exist, the newer configuration option take precedence. Signed-off-by: Austin Ziegler <austin@zieglers.ca> Assisted-by: Kiro (auto)
elixir-tools/tableau#193 changes Tableau from having a Converter behaviour to using a converter extension (`Tableau.MDExExtension`). This checks for the configuration there, otherwise it tries to get the configuration from the location _before_ the change. In the unlikely event that _both_ exist, the newer configuration option take precedence. Signed-off-by: Austin Ziegler <austin@zieglers.ca> Assisted-by: Kiro (auto)
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.
convertcallback toTableau.ExtensionTableau.Converter.convertfunction for extensions to usedirectory, and will convert them if there is a matching converter for
that extension. Frontmatter is still required.
Breaking Changes
mdexis an optional dependency, so you must add it to your deps yourself.lumissyntax highlighter with mdex, you must also add that as a dep yourself.instead of the
:configkey.Tableau.Converter.convertnow just takes contentand opts.
Tableau.Converteris no longer a behaviour.convertcallback.Tableau.markdownis removed. UseTableau.Converterinstead.