|
@@ -0,0 +1,71 @@
|
|
|
|
+{:title "Live Hacking Cljs Web"
|
|
|
|
+ :tags ["video" "live"]
|
|
|
|
+ :layout :video
|
|
|
|
+ :video-yt-id "_UyL81wbxck"
|
|
|
|
+ :video-yt-additional-ids [] ; TODO, add to template.
|
|
|
|
+ :video-description "Live Hacking Reagent - Web Tech"
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+### Notes
|
|
|
|
+
|
|
|
|
+CLJS date parsing behavior with edge case inputs:
|
|
|
|
+
|
|
|
|
+```
|
|
|
|
+dev:uspooge-app.core=> (new js/Date nil)
|
|
|
|
+#inst "1970-01-01T00:00:00.000-00:00"
|
|
|
|
+dev:uspooge-app.core=> (new js/Date "")
|
|
|
|
+#inst "NaN-NaN-NaNTNaN:NaN:NaN.NaN-00:00"
|
|
|
|
+dev:uspooge-app.core=> (new js/Date)
|
|
|
|
+#inst "2018-03-29T18:35:28.244-00:00"
|
|
|
|
+dev:uspooge-app.core=> (new js/Date 0)
|
|
|
|
+#inst "1970-01-01T00:00:00.000-00:00"
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+#### Scripting a table in Cryogen
|
|
|
|
+
|
|
|
|
+Table can be found by iterating siblings from a known header. This is true as of
|
|
|
|
+`[markdown-clj ""]`.
|
|
|
|
+
|
|
|
|
+```
|
|
|
|
+function paintItBlack () {
|
|
|
|
+ var el = document.getElementById('roles_by_project');
|
|
|
|
+ while( el && el.nodeName.toLowerCase() != 'table') {
|
|
|
|
+ el = el.nextSibling;
|
|
|
|
+ console.log('next');
|
|
|
|
+ }
|
|
|
|
+ if (el) {
|
|
|
|
+ el.style.backgroundColor = 'black';
|
|
|
|
+ el.style.color = 'red';
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+Run from console via `paintItBlack()` or via pasting `javascript:paintItBlack()` in the address bar and navigating.
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+Can be made general by giving an ID and using CSS.
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+Interesting selector: `document.querySelector('#roles_by_project + table')`
|
|
|
|
+
|
|
|
|
+* https://css-tricks.com/child-and-sibling-selectors/
|
|
|
|
+
|
|
|
|
+* https://kimblim.dk/css-tests/selectors/examples/preceding.html
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+### Links
|
|
|
|
+
|
|
|
|
+* [Yesterday's Stream](/2018-03-28-live-hacking-reagent.html)
|
|
|
|
+* [http://www.pyco.me/import-clojurescript-into-es6-module/](http://www.pyco.me/import-clojurescript-into-es6-module/))
|
|
|
|
+* [http://javajdk.net/tutorial/calling-clojurescript-from-javascript/](http://javajdk.net/tutorial/calling-clojurescript-from-javascript/)
|
|
|
|
+* [shadow-cljs](http://shadow-cljs.org/)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|