Implements web components on top of the component registry.
State lives at ::state
in the db, and has:
::class->fields-index
;; Mapping of all prop name variations -> writable JS property name
;; for element classes.
::css-link-elements
;; A set of all CSS <link>
elements managed by this plugin. Used
;; for quick access when we need to override the hrefs during hot
;; reload. Only populated when hot reload is enabled.
::css-stylesheet-objects
;; A map of normalized URL -> constructed style sheet
, so we can
;; reuse them. Entries never expire.
::href-overrides
;; When shadow-cljs (or figwheel I presume) detects an FS change of
;; some stylesheet linked at the top level of the document, it'll force
;; the browser to reload it be appending some arbitrary 'version'
;; to the href's query string. The plugin watches for those changes, and:
;; 1. Keeps track of the new HREF, so it can be used in newly created links
;; and constructed stylesheets.
;; 2. Replaces the HREF in all matching ::css-link-elements
.
;; 3. Reloads all matching ::css-stylehseet-objects
with the new URL.
;;
;; Only populated when hot reload is enabled.
Implements web components on top of the component registry. State lives at `::state` in the db, and has: ::class->fields-index ;; Mapping of `all prop name variations -> writable JS property name` ;; for element classes. ::css-link-elements ;; A set of all CSS `<link>` elements managed by this plugin. Used ;; for quick access when we need to override the hrefs during hot ;; reload. Only populated when hot reload is enabled. ::css-stylesheet-objects ;; A map of `normalized URL -> constructed style sheet`, so we can ;; reuse them. Entries never expire. ::href-overrides ;; When shadow-cljs (or figwheel I presume) detects an FS change of ;; some stylesheet linked at the top level of the document, it'll force ;; the browser to reload it be appending some arbitrary 'version' ;; to the href's query string. The plugin watches for those changes, and: ;; 1. Keeps track of the new HREF, so it can be used in newly created links ;; and constructed stylesheets. ;; 2. Replaces the HREF in all matching `::css-link-elements`. ;; 3. Reloads all matching `::css-stylehseet-objects` with the new URL. ;; ;; Only populated when hot reload is enabled.
(listen lk !db target listener-fun)
(unlisten lk !db target)
(install! !db
doc
cer
&
{:keys [hot-reload? disable-tags? preproc-vnode after-render
before-render]
:as opts})
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close