Skip to content
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

feat(generate-examples-index)!: complete overhaul #6

Merged
merged 4 commits into from
Jan 5, 2020

Commits on Jan 2, 2020

  1. 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).
    Thomaash committed Jan 2, 2020
    Configuration menu
    Copy the full SHA
    1fe4f5e View commit details
    Browse the repository at this point in the history

Commits on Jan 3, 2020

  1. Configuration menu
    Copy the full SHA
    346f4e6 View commit details
    Browse the repository at this point in the history
  2. 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.
    Thomaash committed Jan 3, 2020
    Configuration menu
    Copy the full SHA
    6b20fce View commit details
    Browse the repository at this point in the history
  3. 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.
    Thomaash committed Jan 3, 2020
    Configuration menu
    Copy the full SHA
    416aba1 View commit details
    Browse the repository at this point in the history