Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(generate-examples-index)!: complete overhaul (#6)
* feat(generate-examples-index)!: complete overhaul BREAKING CHANGE: The API differs a lot. Vuepress compatible Markdown output. I would like all of the stuff to be a part of Vuepress so that we don't have different design for each thing like we do now. I hope you won't protest against this. Styles and playground data are now separated from HTML. This decreased the size of index.html by an order of magnitude (from about 1 MiB to less than 100 KiB in Vis Network). Previously all the code (JS, HTML and CSS) for each example was in the index itself twice (once for JSFiddle and once for CodePen). This wasn't that big of a deal for browsers (what is a megabyte here or there nowadays) but it made Vuepress crash. The problem was that it interpreted only a part of the attributes containing the code and tried to interpret the remainder as Markdown/HTML and ended with errors because the remainder wasn't valid. This way a static page with code only for one example is opened and a form button in it is automatically clicked by JS to open the playground. The generated HTML is generally simplyfied with only small tweaks to design. These include playground links being first instead of last and the images having blue background when they fail to load instead of being transparent. More information is logged to the console for easier debugging and just to give better idea about what is going on. The directory structure of generated files is now more finely configurable. This is necessary for Vuepress compatibility. Configuration can now be saved in a JSON file instead of an awkwardly long argument list in package.json. Internally it is now modular instead of monolithic. This is important for HTML and Markdown coexistence as well as general maintainability (it turned out much bigger than I originally expected). * test(generate-examples-index): add pinning tests * docs(generate-examples-index): various changes Mostly added docs and other comments explaining what's going on in the code. There is also some minor refactoring and other small changes that don't affect the functionality. * fix(generate-examples-index): produce the same hash everywhere The support files use path hashes for unique identification. The absolute path was used which resulted in CI tests failing because the path was different on each computer. This should resolve the issue. Also since it is the same for all URLs related to the same example it is now generated only once for each example and reused rather than regenerated for each URL again.
- Loading branch information