Repository navigation
Conversation
- html_div emits one `load_scripts` <script> that loads external scripts once per page; NewPlotScript awaits them instead of a <script src> per plot - Compression settings struct: min_length, float_types, rtol - Compressed arrays: IOContext-driven `json` methods, smallest JS typed array within rtol of the data range, strings as zlib'd JSON, browser decoding via DecompressionStream (drops fflate), zlib via Zlib_jll (drops CodecZlib) - show(::Plot) summarizes traces instead of dumping data - Cobweb compat 0.7 only - CI: macOS on aarch64 Claude-Session: https://claude.ai/code/session_01XZMrvgy2C6ao6gFbfuhxQS
Take master's github-actions version bumps (#65); keep this branch's Project.toml (Cobweb 0.7, Zlib_jll instead of CodecZlib). Claude-Session: https://claude.ai/code/session_01XZMrvgy2C6ao6gFbfuhxQS
- json: JS-escape strings via JSON3 and write `<` as < so data can't close the surrounding <script> - compress! only sets `on`; page_scripts adds the decoders whenever compression is on (no duplicates, works via settings/with_settings too) - rand_id uses RandomDevice instead of the global RNG - deploydocs repo -> JuliaPlots; Docs.yml only on v* tags; TagBot pushes tags with DEPLOY_KEY so they trigger the docs build - Document settings.compression Claude-Session: https://claude.ai/code/session_01XZMrvgy2C6ao6gFbfuhxQS
Plots used to render as an empty div when JavaScript was blocked, plotly.js failed to load, or drawing threw. The div now starts with a fallback note, and the plot script replaces it with the failure reason (naming any script that failed to load). JSON3.jl is replaced by JSON.jl, its successor; schema keys are now Strings, so trace-name propertynames convert to Symbol. Claude-Session: https://claude.ai/code/session_01XZMrvgy2C6ao6gFbfuhxQS
joshday
marked this pull request as draft
September 28, 2026 10:55
joshday
marked this pull request as ready for review
September 29, 2026 18:06
Contributor
|
@joshday Were there pending blockers for having this PR merged? Removing deps on JSON3 for PlotlyLight (along EasyConfig JuliaComputing/EasyConfig.jl#12) would be great for ongoing compatibility considerations with the JSON/Parsers/CSV stack. |
Collaborator
Author
|
No blockers! This just has more substantial changes than my last PR that I self-merged, so I wanted to give it some breathing room before merging |
joshday
enabled auto-merge (squash)
October 16, 2026 19:52
Collaborator
Author
|
Automerge is enabled. This will merge as soon as I get windows nightly to go green |
jeremiedb
reviewed
Oct 16, 2026
This branch has not been deployed
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.
Summary
settings.compression::Compression(on,min_length,float_types,rtol). Float arrays use the smallest type whose rounding error stays withinrtolof the data's range (down to Float16); integers use the smallest JS integer type, and values beyond Int32 fall back to floats. String vectors are compressed as JSON.CodecZlib→Zlib_jll(zlib_compress), and the fflate npm package → the browser's built-inDecompressionStream. Decoding now works on pages that load require.js (Documenter, classic Jupyter) and in Pluto.<script src>per plot. A failed non-essential script (e.g. blocked MathJax) no longer blanks every plot.<script>(quotes, newlines and</script>no longer break plots); displaying a plot no longer consumes the global RNG.show(::Plot)andtext/plainsummarize traces instead of dumping data.JSON3→JSON.jl1.x; Cobweb 0.7 only; version 0.14.0.deploydocsrepo; Docs builds only onv*tags; TagBot pushes tags withDEPLOY_KEYso releases publish versioned docs.Developed with the help of Claude Code.