feat: declare vendored modules and check the document schema - #45
Merged
Conversation
mcanouil
marked this pull request as ready for review
September 6, 2026 21:36
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The five shared Lua modules move from
_modules/to_vendor/quarto-lua-modules/, and_dependencies.ymlnow names the release each one came from, so every file can be checked against its source.The entry point is repointed accordingly and nothing is left under
_modules/.The extension also checks the document configuration against
_schema.ymland reports what the schema does not accept.The check runs from the shortcode handler, because the extension contributes a shortcode and no filter.
It only reports: it never alters the document and never stops a render.
The documentation render is clean and exits 0, with no missing module and no error.
One thing is worth a look before this is released.
The validation reports six warnings per page on this site, of the form
1: is not a recognised key and was ignored., one per entry of the badge array.The cause is a mismatch between where
_schema.ymlsays the options live and where the extension reads them.The schema declares
badgeandbadge-overridesas options of the extension, which places them atextensions.badge.badgeandextensions.badge.badge-overrides.The extension instead reads
extensions.badgeas the badge array itself, andbadge-overridesfrom the top level or fromextensions.badge-overrides.The validator therefore walks the array and treats each numeric index as an unknown option key.
The warnings are accurate about the schema as it stands, so they are left in place rather than silenced.
Correcting the schema is separate work and is not part of this branch.