-
Notifications
You must be signed in to change notification settings - Fork 150
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Custom template override #123
Comments
I feel like the templates are not stable enough to warrant good extension points. Are there specific overrides you have in mind? |
The big thing I wanted was the ability to do more with the README.md I have my branch nearly finished for the enhancements I mentioned. Once I got in there and started hacking away I did end up also changing lib/schema.js. I'm not a GitHub guru by any means so maybe you can help explain something; When I do |
What about the stability is concerning? |
Thanks for the use case, that makes a lot of sense. Maybe we should start with a method to set prefix and suffix for the generated
I would not consider any of the template files parts of a defined and reliable API, but rather an implementation detail. If we decide to change anything, i.e. #126 or #125 your customizations won't work anymore.
We are using |
Thanks for the clarifications. I'll set up a script to generate the README.md for now. |
# [4.0.0](v3.3.1...v4.0.0) (2019-12-16) ### Bug Fixes * **i18n:** use correct file name format ([43a74f4](43a74f4)) * **markdown:** constraint values can be zero now ([2e057fd](2e057fd)) * **markdown:** handle null as a constant value ([e652e11](e652e11)) * **proxy:** remove logging statements ([616a1d9](616a1d9)) * **schemas:** remove references going nowhere ([2186142](2186142)) ### Build System * **dependencies:** remove unused dependencies ([dbc9192](dbc9192)) ### Code Refactoring * **cli:** remove bluebird, lodash, simplify arg parsing ([b6b1822](b6b1822)) ### Continuous Integration * **test:** require node 10 ([ba4a947](ba4a947)) ### Documentation * **changelog:** mention changes for v4 ([4dfe90c](4dfe90c)), closes [#126](#126) [#174](#174) [#72](#72) [#73](#73) [#94](#94) [#52](#52) [#20](#20) [#125](#125) [#177](#177) [#34](#34) [#123](#123) ### Features * **cli:** generate JSON schema output ([dd18f3b](dd18f3b)), closes [#176](#176) * **formats:** add support for formats: json-pointer, relative-json-pointer, regex, and uri-template ([689c158](689c158)) * **i18n:** new internationalization system ([1a664de](1a664de)) * **i18n:** provide complete en_US translation ([5eb0c89](5eb0c89)) * **markdown:** add header surpression ([6225b9f](6225b9f)) * **markdown:** add support for `default` keyword ([72a0fde](72a0fde)) * **markdown:** add support for comments ([07bb52f](07bb52f)) * **markdown:** add YAML frontmatter support ([4df92e6](4df92e6)) * **markdown:** create and write markdown ([e521541](e521541)) * **markdown:** generate additional detail ([cc07df2](cc07df2)) * **markdown:** generate header again ([011427c](011427c)) * **markdown:** generate some property details ([fa34cf1](fa34cf1)) * **markdown:** generate type details ([c9f19e1](c9f19e1)) * **markdown:** highlight keyword usage for documentation ([d35e4ed](d35e4ed)), closes [#100](#100) * **markdown:** list nested schemas in README ([608674b](608674b)) * **markdown:** list nested schemas in README ([87e8489](87e8489)) * **markdown:** show examples ([c8e8dfa](c8e8dfa)) * **markdown:** show extensibility and abstraction in header ([90a9a8e](90a9a8e)) * **markdown:** show id and status in header ([08e1923](08e1923)) * **markdown:** show id and status in header ([b6fcf53](b6fcf53)) * **markdown:** show join types ([12af018](12af018)) * **markdown:** show some info about properties, switch i18n library ([f8a32df](f8a32df)) * **markdown:** show type, link, additional and custom properties in header ([eff129a](eff129a)) * **markdown:** show value constraints ([515969c](515969c)) * **markdown:** support item arrays and additionalItems ([c9fbcdf](c9fbcdf)), closes [#31](#31) * **markdown:** support patternProperties and additionalProperties ([1386ee3](1386ee3)), closes [#95](#95) [#180](#180) * **proxy:** generate meta information ([ac65ac6](ac65ac6)) * **proxy:** generate slugs ([eacbf38](eacbf38)) * **proxy:** resolve references ([4cea068](4cea068)) * **readme:** generate readme again ([d6b9e5e](d6b9e5e)) * **readme:** mention the most common schema version ([fc583d7](fc583d7)) * **schema:** add full support for "A Vocabulary for the Contents of String-Encoded Data" ([96ca3a6](96ca3a6)) * **schema:** add support for keyword `$defs` ([70b63c8](70b63c8)) * **schema:** add support for keyword `deprecated` ([934b856](934b856)) * **schema:** add support for readOnly and writeOnly schemas and properties ([7452882](7452882)) ### BREAKING CHANGES * **changelog:** * **i18n:** The file format for the i18n files has changed You can now specify the language to use using `-l` and `jsonschema2md` will pick up the correct language configuration. * **test:** Node 8 is no longer supported * **dependencies:** Removes the JSON schema validation feature entirely * **cli:** Repaces lodash with ferrum, removed bluebird, changes the meaning of `--schema-out` or `-x` to be no longer relative to output dir The `--schema-out` or `-x` command line option is no longer relative to the output path (specified with `-o` or `--out`)
🎉 This issue has been resolved in version 4.0.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
I think it would be a good idea to be able to override templates.
I propose adding an option
-t --template path to directory containing Embedded JavaScript (ejs) templates
jsonschema2md -o docs/reference -t docs/templates
The module would look first for the template ejs file in the given directory and fallback to the default template found in
@adobe\jsonschema2md\templates\md
.This would provide the ability to override specific template includes giving users more control over their documentation.
I believe this would require some changes to the following
The two lib files would be strait forward modifications. For the ejs files Wrapping the
include()
function to handle the search might be a good approach, imo.The text was updated successfully, but these errors were encountered: