Skip to content

Rebuilding Sandcastle: Post release tasklist #12894

@jjspace

Description

@jjspace

We recently soft released the new version of Sandcastle. Most of the work for that was tracked in this issue: #12566

That issue has gotten quite large but has a lot of good historical discussion.
I'm opening this new issue to help refocus on the remaining tasks and consolidate extra tasks like those pointed out in the feedback issue: #12857
I would expect this issue to break out into others as needed.

Running Task list

Loosely sorted by a coarse 1-3 priority

  • 1 Content pass on all sandcastles
    • Some work on this was already done in Sandcastle metadata cleanup #12865
    • We may be able to cull a bunch of them. Others may need broken apart into multiple smaller ones
      • Specifically many of the ones under the development directory seem to be old versions or duplicates of others we have and don't need anymore
    • Consider actual categories
    • Convert "Viewerless sandcastle" into a Sandcastle API demo
  • 1 Try the ion sdk setup and identify issues
  • 1 Document and solidify build process from the repo root (related: comment)
  • 1 Add more documentation around building sandcastle itself
    • document desired thumbnail size (also update styles with aspect ratio)
  • 1 build improvements
    • Look at what files we include in the zip download version
    • 2 Verify how we're "building" cesium into the build, maybe we can point at a different path instead of copying built files.
    • 2 finalize eslint config for new package files. First time TS and React is in there
    • 3 Ensure we have a system for building against an arbitrary gallery location
    • 3 Consider if vite is necessary or we'd be better off with esbuild directly
  • 1 Dev sandcastles are being built in prod...
    • this is because we run build-gallery with the build-prod script and it does not check for prod itself
  • 2* In-app technical documentation of features
    • document the keybinds to run a sandcastle
    • document the available snippets
  • 2 Test on a few devices and browsers
  • 2 Highlight editor lines for running sandcastle code and errors
  • 3 Expand Sandcastle API
    • 2 Document the API itself, static page or overlay in Sandcastle?
    • 2 Sliders are commonly needed, refer to stratakit to see if they have a design for this
  • 2 fix error handling in console mirror, getting lots of [object Object]
    • specifically on uncaught errors
  • 2 Follow up from gallery search improvements @ggetz Sandcastle search and filtering updates #12854
    • Document and evaluate tasks that were left unfinished
  • paused 1? search/filter improvements optimizations
    • 1 "All" option for labels
      • when removing the label filter it's not sorted alphabetically as I'd expect
    • 1 Remove label filter when starting search
    • 2 Add a "sort by" option for gallery. alphabetically or "by relevance" using pagefind?
    • re-eval the "fuzziness" factor that we want Help us improve Sandcastle - Feedback thread #12857 (comment)
    • Look into a way to enable exact searches, maybe using "quotes"
    • Look into if there's a way to include api terms in pagefind so we can find exact class names or functions in the code
  • 3 App analytics? Through Google Analytics or other? it'd be nice to have more insights to which sandcastles people are actually using
  • 3 Gallery list focus on mouse hover, this feels really bad
  • 3 add more "tweaks" or snippets to sandcastle
    • camera logging was requested by Jeshurun
    • Other debug helpers requested by Matt, camera position/orientation, distance to an entity
  • 3 broader snippet support
    • Snippet libraries?
    • Easier way to add them without digging into the code?
    • Personal snippet library stored locally?
  • 3 re-review disabling the command palette
  • 3 Drag and drop of specific assets? maybe as a new sandcastle instead of the whole application itself Help us improve Sandcastle - Feedback thread #12857 (comment)
    • this already works in the Viewer
  • 3 Support mobile devices/smaller screens better
  • 3 middle click doesn't work on gallery cards, they really should be anchor tags
  • 3 (reconsider later) Check race condition loading slow sandcastles
    • I noticed this when loading the particle system sandcastles. The fireworks took forever to run so I loaded the Tails one. This seemed to load briefly then the fireworks finished loading or something. Check the order and make sure the "Load demo" function ignores slow async loads if another was started
  • 3 rename directory for sandcastles with a changed title
    • this is going to be a "forever problem" with no super clear solution. Will always just need to line up the ids at the end of the day
  • 3 Investigate incorrect code highlighting and offset cursor noticed by @javagl Help us improve Sandcastle - Feedback thread #12857 (comment)
  • 3 Update stratakit packages
  • 3 Console mirror improvements
  • 3 Add version info to Sandcastle for updates
    • 3 Add "New features" type info panel for important releases? Maybe not necessary if it doesn't change much?
  • 3 Insert snippets at cursor Stratakit css cleanup #12802 (comment)
  • 3 Prevent "Loading" message from jumping around Stratakit css cleanup #12802 (comment)
    • I've tried multiple things to mitigate this but I think it's still down to some sort of FOUC or resizing of the panels on page load or something weird. Might be worth moving the "Loading" message back to the top left so it doesn't rely on styles for positioning
  • 3 Highlight the current sandcastle in the gallery view Help us improve Sandcastle - Feedback thread #12857 (comment)

Future Tasks/Everything else

A list of ideas we've had that could benefit Sandcastle but are not currently a priority. These may get added to the list above but right now just act as a single place to collect all extra ideas.

  • An "embed" version of Sandcastle like CodePen or JSFiddle have that we can use in our documentation. Minimal editor + viewer
  • Full Documentation integration
    • The better intellisense helps a lot but currently don't have a way to open the docs fully like before. Maybe we just recommend a second tab to people?
  • Allow loading multiple CesiumJS versions
  • Expand Gist/Github integrations - re: saving, sharing, commenting, collaborating
  • Can we remove knockout dependency in all sandcastles? it may lead to users depending on it
  • "Value monitor" type helper we can add to avoid spamming thousands of lines when wanting to track something that changes every frame for the console
  • Implement console.debug mirroring (I think this is the only one missing that we'd want to implement other than group and trace)
  • Expand share capabilities, what is saved, what is shared, how do things get shared
    • Is there an alternative "download" we can offer with the files that can be "dropped" back into sandcastle
    • Consider a "one click" option to switch between prod and local environment (maybe only if we detect the local server?)
  • Save previous "successful" runs of a sandcastle to recover from crashes
  • Add a "Whats new" item to the sidebar to include update notes
  • Consider option for "dropdown" or alternative from gallery card to "preview" code and provide more context
  • "Embed" version of sandcastle to put into other pages like you can with CodePens
  • Different layout of the panels, vertical code/viewer? Help us improve Sandcastle - Feedback thread #12857 (comment)
  • Different themes for Monaco
  • Localize the application. Specifically JP has been requested

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions