Notes about what currently breaks 💥 and what could be better tomorrow.
- Lists spacing is broken
- Nested lists are not formatted correctly
- Errors are global, but should be local
- Printing a var
- Switch to fast serialization using Nippy
- Store results as CAS files, only write when needed
- Don't thaw result if it's already in memory
- Don't cache things that are fast to evaluate
- Handle conditional read in cljc files
- Add README
- Markdown should support Nextjournal Flavored Markdown including:
- TODO lists 😹
- Inline Formulas
$E^2=m^2+\vec{p}^2$ - Fix analyzer error for aliases requires w/o ns (e.g. in viewers notebooks)
- Make viewer api open with predicates
- Make viewer registration local on namespace
- Make js-only viewers like plotly & vega work
- Fix maps
- Sort maps
- Lazy seqs
- Fix Rule 30 maps
- Drop vector brackets when lazy load map element
- Review viewer registration api
- Simplify viewer api (drop
view-as
& change argument order inwith-viewer
/s
) - Fix seeing map with blob-id in Rule 30 notebook
- Turn
with-viewers
into a macro and make it take same unquoted form asset-viewers!
- Consistently use
Fn+Form
to carry viewer functions - Make map-viewer pass down options to select map-entry renderer for children and remove viewer from Rule 30
- Drop lazy loading attempts in plotly + vega viewers
- Keep expanded state when lazy loading
- Move update opts fn to viewer map
- Restrict string length + enable lazy loading
- Let the viewer opt into pagination
- A browser refresh is currently needed to reset a viewer override like in
notebooks/rule_30.clj
, otherwise it will carry over the viewer override to other notebooks that do no specify an override - Evaluation error messages are poorly formatted
-
first-generation
innotebooks/rule_30.clj
renders incorrectly because of pagination type coercion from vector to list -
(def r (range 100))
innotebooks/pagination.clj
shows incorrectcount
- Printing of very large values
- Binary / Hex
- Image
- Move to non-jit compiled tailwind stylesheet, purging doesn't work nicely with custom viewers
- Make static build work
- Review caching api
- Change
:clerk/no-cache
to:nextjournal.clerk/no-cache
- Move public viewer api to
nextjournal.clerk
and use(:require [nextjournal.clerk :as clerk])
in all example notebooks
- Allow to pin notebook
- Release to maven & invite contributors
- Fix error when describing Datomic entities
- Limit description to make large datasets work
- Debug & fix extra calls to inspect / rendering
- Setup up static builds
- Fix link style when code cell uses markdown viewer
- Do pass over README
- Add CHANGELOG
- Release 0.2
- Make github repo public
- Let consumers (SICMUitls) extend sci ns by putting it into an atom
- Support setting
:nextjournal.clerk/no-cache
on namespaces as well - Datafy or Metadata viewer via
:transform-fn
- Persist viewer expansion state across reloads
- Show eval error in overlay to persist scroll state when it disappears
- Improve feedback when viewer errors
- Verify viewer caching behaviour
- Fix dark mode for string viewer
- Release 0.6
- Make code cells scroll horizontally scrollable and add minimum width of 80 chars
- Extend reach of viewer api to whole notebook (including the root node)
- Make viewer api more functional
- Let
:transform-fn
act on wrapped-value and use it to also replace:fetch-fn
- Try using
:update-viewers-fn
for markdown node - Minimize re-rendering when updating notebook
- Throw on re-definitions
- Throw when referencing no longer available / deleted var
- Allow multiple defs per top-level forms
- Restore
*ns*
after hashing / eval - Support setting
:nextjournal.clerk/cache
forms to control caching behaviour - Add
clerk/image
(name tbd) viewer supporting links and embedded images - Derefenced Clojure atoms should get value semantics in dependency graph
- Support evaluating
(quote 'code 'in 'backticks)
in markdown - Make it more obvious that results can be expanded
- Set expanded state depending on shape (width) of the data
- Allow to control viewer expansion state programmatically
- Support cherry as alternative js evaluator
- Make
doc-url
work in live app usingv/clerk-eval
with homepage, 404 and symbol links - Build static build on CI
- Hook up new table viewer
- Status log
- Rename
:nextjournal.clerk/opts
to:nextjournal.clerk/render-opts
- Improve page load performance of large documents like book (probably by evaluating each
:render-fn
only once) - Introduce window/session concept to support opening concurrent documents
- Introduce per-session/connection state for sync
- Make clerk sync recomputations more granular (only recompute deps of changed atom)
- Global config with consistent inheritance to ns, expression
- Tap & eval viewer window
- Add multiviewer to default viewers
- Make stacktraces clickable
- Mark uncacheable results in browser window including explanation
- Add CAS storage option for static builds
- Improve performance of analysis & presentation
- Explain
render-opts
andviewer-opts
in book - Add sync atoms to book
- Add tap inspector to book
- Add customizing clerk: markdown backtick eval example to book
- Add example for cross-document table of contents
- Hook up distributed caching using CAS + cloud bucket