mirror of
https://github.com/urbit/shrub.git
synced 2024-09-11 20:27:19 +03:00
Merge branch 'develop' into bm/diary
This commit is contained in:
commit
444644412f
@ -15,7 +15,7 @@
|
||||
/* txt-ford-text %hoon /neo/cod/std/src/imp/ford-text/hoon
|
||||
=>
|
||||
|%
|
||||
++ dev &
|
||||
++ dev |
|
||||
++ mute
|
||||
?: dev same
|
||||
|* *
|
||||
@ -76,7 +76,7 @@
|
||||
=* state -
|
||||
=<
|
||||
%- mute
|
||||
%+ libverb &
|
||||
%+ libverb |
|
||||
%- agent:dbug
|
||||
^- agent:gall
|
||||
|_ =bowl:gall
|
||||
@ -197,13 +197,13 @@
|
||||
++ do-ack
|
||||
|= =ack:neo
|
||||
^- (list card)
|
||||
?: =(p.p.ack sys-pith)
|
||||
?: =(p.ack sys-pith)
|
||||
%. *(list card)
|
||||
?~ q.ack
|
||||
same
|
||||
?- -.u.q.ack
|
||||
%goof (mean leaf/"goof on sys" tang.u.q.ack)
|
||||
%gone (mean leaf/"no dependency {<term.u.q.ack>}" ~)
|
||||
%goof (slog leaf/"goof on sys" tang.u.q.ack)
|
||||
%gone (slog leaf/"no dependency {<term.u.q.ack>}" ~)
|
||||
==
|
||||
=/ src=name:neo (de-pith:name:neo p.p.ack)
|
||||
=/ =wire nack/(pout p.p.ack)
|
||||
@ -272,6 +272,7 @@
|
||||
++ on-move
|
||||
|= =move:neo
|
||||
^+ run
|
||||
%- (slog leaf/"{(en-tape:pith:neo p.move)} -> {(en-tape:pith:neo p.q.move)}: {<-.q.q.move>}" ~)
|
||||
=/ src=name:neo (de-pith:name:neo p.move)
|
||||
=/ dst=name:neo (de-pith:name:neo p.q.move)
|
||||
?> =(src.bowl ship.src)
|
||||
@ -280,13 +281,17 @@
|
||||
(on-move:sys p.move q.move(p t.pith.dst))
|
||||
++ on-ack
|
||||
|= =ack:neo
|
||||
%. run
|
||||
?~ q.ack
|
||||
same
|
||||
?- -.u.q.ack
|
||||
%gone (slog leaf/"Missing dep: {<term.u.q.ack>}" ~)
|
||||
%goof (slog leaf/"nacked on flow {<p.ack>}" tang.u.q.ack)
|
||||
==
|
||||
=/ dst=name:neo (de-pith:name:neo p.p.ack)
|
||||
?> =(src.bowl ship.dst)
|
||||
?: =(sys-pith p.p.ack)
|
||||
%. run
|
||||
?~ q.ack
|
||||
same
|
||||
?- -.u.q.ack
|
||||
%gone (slog leaf/"Missing dep: {<term.u.q.ack>}" ~)
|
||||
%goof (slog leaf/"nacked on flow {<p.ack>}" tang.u.q.ack)
|
||||
==
|
||||
(on-move q.p.ack p.p.ack %poke ack/!>(q.ack))
|
||||
::
|
||||
++ on-dirt-card
|
||||
|= =card:dirt:neo
|
||||
@ -998,9 +1003,10 @@
|
||||
^- form:neo
|
||||
|_ [=bowl:neo =saga:neo]
|
||||
++ poke
|
||||
|= [s=stud:neo vax=^vase]
|
||||
|= =pail:neo
|
||||
^- (quip card:neo pail:neo)
|
||||
`q.saga
|
||||
?> =(p.pail stud)
|
||||
`pail
|
||||
++ init
|
||||
|= pal=(unit pail:neo)
|
||||
^- (quip card:neo pail:neo)
|
||||
@ -1286,6 +1292,11 @@
|
||||
[%update pax]
|
||||
=/ =file:ford:neo
|
||||
~| parsing/pax
|
||||
=; res=(each file:ford:neo tang)
|
||||
?: ?=(%& -.res)
|
||||
p.res
|
||||
(mean p.res)
|
||||
%- mule |.
|
||||
(scan (trip src) (rein:ford:neo [our.bowl (pave:neo (snip pax))]))
|
||||
~& [lib=lib pro=pro]:file
|
||||
=/ has-imports=?
|
||||
@ -1353,7 +1364,7 @@
|
||||
(welp #/cod/grab (stud-to-pith:neo i.pos))
|
||||
?: !=(~ (~(peek plow:aux loam) p/our.bowl pat))
|
||||
$(pos t.pos)
|
||||
=. run (on-dirt-card (do-grow-our pat vase/=>(..zuse !>(|=(~ *vase)))))
|
||||
=. run (on-dirt-card (do-grow-our pat vase/=>(..zuse !>(|=(* *vase)))))
|
||||
$(pos t.pos)
|
||||
::
|
||||
++ build-fars
|
||||
@ -1515,6 +1526,8 @@
|
||||
~| wer
|
||||
=; =vase
|
||||
(make-riff wer vase)
|
||||
%- need
|
||||
%- mole |.
|
||||
=+ vaz=(vang & (pout wer))
|
||||
%+ slap reef
|
||||
(scan (trip txt) (full (ifix [gay gay] tall:vaz)))
|
||||
@ -1577,7 +1590,7 @@
|
||||
|= [par=pith:neo child=pith:neo car=?(%y %z)]
|
||||
^- ?
|
||||
?: =(%y car)
|
||||
=(par (~(parent of:neo tide) child))
|
||||
=(`par (~(parent of:neo tide) child))
|
||||
!=(~ (dif:pith:neo par child))
|
||||
::
|
||||
:: +abduct: check capture
|
||||
@ -1585,21 +1598,26 @@
|
||||
|= [par=pith:neo child=pith:neo]
|
||||
^- ?
|
||||
?~ wav=(~(get of:neo tide) par)
|
||||
::~& bailing-no-wave/[par child]
|
||||
|
|
||||
?~ kids.dock.u.wav
|
||||
::~& bailing-no-kids/[par child]
|
||||
|
|
||||
(seize par child p.u.kids.dock.u.wav)
|
||||
:: +adopt: produce all capturing parents
|
||||
::
|
||||
++ adopt
|
||||
=| here=pith:neo
|
||||
=| res=(set pith:neo)
|
||||
=| here=pith:neo
|
||||
|= =pith:neo
|
||||
=. pith (tail pith)
|
||||
::~& adopting/pith
|
||||
|- ^+ res
|
||||
=? res (abduct here pith)
|
||||
(~(put in res) here)
|
||||
(~(put in res) [p/our.bowl here])
|
||||
=/ nex (dif:pith:neo here pith)
|
||||
?~ nex
|
||||
::~& adopted/res
|
||||
res
|
||||
$(here (snoc here i.nex))
|
||||
::
|
||||
@ -1631,10 +1649,14 @@
|
||||
=. run (add:stop move)
|
||||
arvo
|
||||
|%
|
||||
++ can-ack
|
||||
^- ?
|
||||
!?=([%poke %ack *] q.q.init-move)
|
||||
++ abet
|
||||
^+ run
|
||||
?: =([~ ~] block)
|
||||
=. run (emil `(list card)`(do-ack [p p.q]:init-move err.block))
|
||||
=? run can-ack
|
||||
(emil `(list card)`(do-ack [p p.q]:init-move err.block))
|
||||
=. run (emil (turn up do-move))
|
||||
(dial smut)
|
||||
:: %+ turn ~(tap by change)
|
||||
@ -1644,13 +1666,17 @@
|
||||
~& >>> init
|
||||
=. state old :: XX: is apex only state that is touched?
|
||||
?. =(~ get.block)
|
||||
~& >>> %block
|
||||
(fresh:stop get.block init-move)
|
||||
?> ?=(^ err.block)
|
||||
:: %- (slog u.err.block)
|
||||
%- (slog (print-quit:neo u.err.block))
|
||||
?: ?=([%poke %rely *] q.q.move)
|
||||
~& >>> rely-nack/[src dst]:init
|
||||
run
|
||||
(emil (do-ack [p p.q]:init-move err.block))
|
||||
?: can-ack
|
||||
(emil (do-ack [p p.q]:init-move err.block))
|
||||
~& ack-nack/u.err.block
|
||||
run
|
||||
::
|
||||
++ arvo .
|
||||
++ emit |=(=move:neo arvo(down [move down]))
|
||||
@ -1674,13 +1700,14 @@
|
||||
%+ roll grit
|
||||
|= [=dust:neo by-parent=(jug pith:neo dust:neo)]
|
||||
%- ~(gas ju by-parent)
|
||||
=/ adoptees (adopt pith.dust)
|
||||
(turn ~(tap in (adopt pith.dust)) |=(=pith:neo [pith [(dif:pith:neo pith pith.dust) +.dust]]))
|
||||
:: XX: assert gifts empty
|
||||
=. gifts
|
||||
%+ turn (sort ~(tap in ~(key by by-parent)) sort:pith:neo)
|
||||
|= =pith:neo
|
||||
^- [pith:neo gift:neo]
|
||||
[pith (gas-gift ~(tap in (~(get ju by-parent) pith)))]
|
||||
[(tail pith) (gas-gift ~(tap in (~(get ju by-parent) pith)))]
|
||||
=. smut (welp smut grit)
|
||||
=. grit ~
|
||||
give
|
||||
@ -1885,6 +1912,7 @@
|
||||
=/ =wave:neo (~(got of:neo tide) here)
|
||||
=| cards=(list card:neo)
|
||||
=/ =kook:neo ~(kook husk code.wave)
|
||||
=. dock.wave ~(dock husk code.wave)
|
||||
|%
|
||||
++ su-core .
|
||||
++ su-emil |=(caz=(list card:neo) su-core(cards (welp cards caz)))
|
||||
@ -1950,7 +1978,8 @@
|
||||
++ su-grow
|
||||
|= =pail:neo
|
||||
^+ su-core
|
||||
:: ?>(check-pail) XX: TODO
|
||||
?. (blow state:kook p.pail)
|
||||
(mean leaf/"Returned bad state stud, wanted {<state.kook>}, have {<p.pail>}" ~)
|
||||
=. arvo (grow pail)
|
||||
su-core
|
||||
::
|
||||
@ -1963,6 +1992,15 @@
|
||||
::
|
||||
++ su-poke
|
||||
|= =pail:neo
|
||||
^+ su-core
|
||||
?. (~(has in poke.dock.wave) p.pail)
|
||||
?: ?=(%ack p.pail)
|
||||
%. su-core
|
||||
=+ !<(ack=(unit quit:neo) q.pail)
|
||||
?~ ack
|
||||
same
|
||||
(slog (print-quit:neo u.ack))
|
||||
(mean leaf/"no support for {<p.pail>}" ~)
|
||||
=/ [caz=(list card:neo) new=pail:neo]
|
||||
(poke:su-form pail)
|
||||
=. su-core (su-emil caz)
|
||||
@ -2186,6 +2224,7 @@
|
||||
|= [src=pith:neo dst=pith:neo =note:neo]
|
||||
?> ?=(%poke -.note) :: XX: all shanes should be virtualised and hand deliver acks
|
||||
?+ p.pail.note ~|(bad-eyre-call/p.pail.note !!)
|
||||
%ack run
|
||||
%eyre-req (on-eyre-req !<(req:eyre:neo q.pail.note))
|
||||
%eyre-sign (on-eyre-sign src !<(sign:eyre:neo q.pail.note))
|
||||
==
|
||||
@ -2269,6 +2308,14 @@
|
||||
|
||||
:: |util: utilties
|
||||
+| %util
|
||||
++ blow
|
||||
|= [need=curb:neo have=stud:neo]
|
||||
^- ?
|
||||
?+ -.need ~|(curb-not-supported/-.need !!)
|
||||
%any &
|
||||
%or (lien p.need |=(curb:neo (blow +< have)))
|
||||
?(%pro %only) =(p.need have)
|
||||
==
|
||||
++ puff
|
||||
|= [want=stud:neo role=(unit stud:neo) have=saga:neo]
|
||||
^- (unit idea:neo)
|
||||
@ -2284,9 +2331,15 @@
|
||||
=/ rol=stud:neo
|
||||
(fall role %$)
|
||||
?~ can=(~(get by con.dive) [p.q.have rol want])
|
||||
~& missing-can/[p.q.have rol want]
|
||||
~
|
||||
=/ conv run:~(do con u.can)
|
||||
`[want (slam conv q.q.have)]
|
||||
~| dead-horse/[p.q.have rol want u.can]
|
||||
:+ ~ want
|
||||
%+ slam conv
|
||||
?: =(p.q.have %vase)
|
||||
!>(q.q.have)
|
||||
q.q.have
|
||||
::
|
||||
++ plag
|
||||
=| rol=(unit stud:neo)
|
||||
@ -2311,15 +2364,19 @@
|
||||
`[have ~ q.have]
|
||||
::
|
||||
%not
|
||||
=/ r rol
|
||||
?. =(~ loop(want p.want))
|
||||
~
|
||||
=. rol r
|
||||
loop(want q.want)
|
||||
::
|
||||
%or
|
||||
|-
|
||||
?~ p.want
|
||||
~
|
||||
=/ r rol
|
||||
=/ nex loop(want i.p.want)
|
||||
=. rol r
|
||||
?^ nex
|
||||
`u.nex
|
||||
$(p.want t.p.want)
|
||||
@ -2334,7 +2391,6 @@
|
||||
++ scion
|
||||
|= [want=lads:neo =pith:neo =saga:neo]
|
||||
^- (unit idea:neo)
|
||||
|
||||
?~ pis=(find:peon:neo pith ~(key by want))
|
||||
~
|
||||
=/ =lash:neo (~(got by want) u.pis)
|
||||
@ -2348,24 +2404,25 @@
|
||||
?: ?=($@(~ [~ ~]) pic)
|
||||
~& lost-moor/name
|
||||
~
|
||||
=; [fail=? res=(list (pair pith:neo idea:neo))]
|
||||
?: fail
|
||||
~
|
||||
=; [fail=(set pith:neo) res=(list (pair pith:neo idea:neo))]
|
||||
:: ?. =(~ fail)
|
||||
:: ~& fail-moor/fail
|
||||
:: ~
|
||||
~? !=(~ fail)
|
||||
fail/fail
|
||||
`(gas-lore res)
|
||||
%+ roll ~(tap by ~(tar of:neo u.u.pic))
|
||||
|= [[=pith:neo =saga:neo] [fail=_| res=(list (pair pith:neo idea:neo))]]
|
||||
|= [[=pith:neo =saga:neo] [fail=(set pith:neo) res=(list (pair pith:neo idea:neo))]]
|
||||
^+ +<+
|
||||
?: fail
|
||||
[fail ~]
|
||||
?: =(pith ~)
|
||||
?~ rot=(plag state.p.want saga)
|
||||
&/~
|
||||
|/:_(res [*pith:neo u.rot])
|
||||
[(~(put in fail) pith) res]
|
||||
[fail :_(res [*pith:neo u.rot])]
|
||||
?~ q.want
|
||||
|/res
|
||||
[(~(put in fail) pith) res]
|
||||
?~ ion=(scion q.u.q.want pith saga)
|
||||
&/~
|
||||
|/:_(res [pith u.ion])
|
||||
[(~(put in fail) pith) res]
|
||||
[fail :_(res [pith u.ion])]
|
||||
::
|
||||
++ gas-leaf
|
||||
=| =leaf:neo
|
||||
|
@ -532,4 +532,3 @@
|
||||
:: !! :: ``[q.u.u.pom ever q.p.u.u.pom]
|
||||
--
|
||||
--
|
||||
|
||||
|
@ -44,7 +44,7 @@
|
||||
;button.br1.border.b1.hover
|
||||
=style "padding: 4px 8px;"
|
||||
=type "button"
|
||||
=pith "/{(scow %p our.bowl)}{(en-tape:pith:neo here.bowl)}"
|
||||
=pith "{(en-tape:pith:neo here.bowl)}"
|
||||
=onclick "navigator.clipboard.writeText(this.getAttribute('pith'));"
|
||||
; copy path
|
||||
==
|
||||
|
168
pkg/arvo/neo/cod/std/src/con/accel-conf-htmx.hoon
Normal file
168
pkg/arvo/neo/cod/std/src/con/accel-conf-htmx.hoon
Normal file
@ -0,0 +1,168 @@
|
||||
/@ accel-conf
|
||||
/@ htmx
|
||||
:- [%accel-conf %$ %htmx]
|
||||
|= conf=accel-conf
|
||||
|= =bowl:neo
|
||||
|^ ^- manx
|
||||
::
|
||||
;div.fc.trans-root.grow
|
||||
;form.fc.grow
|
||||
=hx-post "/neo/hawk{(en-tape:pith:neo here.bowl)}?stud=hoon"
|
||||
=hx-trigger "input changed delay:0.4s from:[name='text'], input changed delay:0.4s from:[name='a']"
|
||||
=hx-swap "none"
|
||||
=hx-target "#code-spinner .loading"
|
||||
=hx-target-400 "#error-code-{id}"
|
||||
=hx-indicator "#code-spinner"
|
||||
=row (scow %ud +:x)
|
||||
=col (scow %ud +:y)
|
||||
;div.fc.border.grow.basis-half.wf
|
||||
;+ code-input
|
||||
;+ (spinner "code")
|
||||
==
|
||||
==
|
||||
;div.fc.border
|
||||
;+ conf-header
|
||||
;div.fr
|
||||
;div.fc.p2
|
||||
;form.fr.js.hf
|
||||
=hx-post "/neo/hawk{(en-tape:pith:neo here.bowl)}?stud=add-poke"
|
||||
=hx-swap "none"
|
||||
=hx-indicator "#code-spinner"
|
||||
=hx-target "#code-spinner .loading"
|
||||
;input
|
||||
=type "text"
|
||||
=placeholder "/{(scow %p our.bowl)}/shrub/to/poke"
|
||||
=name "pith"
|
||||
=autocomplete "off"
|
||||
=oninput "this.setAttribute('value', this.value);"
|
||||
;
|
||||
==
|
||||
;input
|
||||
=type "text"
|
||||
=placeholder "%some-type"
|
||||
=name "stud"
|
||||
=autocomplete "off"
|
||||
=oninput "this.setAttribute('value', this.value);"
|
||||
;
|
||||
==
|
||||
;button
|
||||
=type "submit"
|
||||
; Route poke
|
||||
==
|
||||
==
|
||||
==
|
||||
;div.fc.p2
|
||||
::
|
||||
;+ deps
|
||||
;form.fr.js.hf
|
||||
=hx-post "/neo/hawk{(en-tape:pith:neo here.bowl)}?stud=add-dep"
|
||||
=hx-swap "none"
|
||||
=hx-target "#conf-spinner .loading"
|
||||
=hx-target-400 "#error-add-{id}"
|
||||
=hx-indicator "#conf-spinner"
|
||||
=row (scow %ud +:x)
|
||||
=col (scow %ud +:y)
|
||||
;div.fc.grow.basis-half.wf
|
||||
;div.fr
|
||||
;input
|
||||
=type "text"
|
||||
=placeholder "name"
|
||||
=autocomplete "off"
|
||||
=oninput "this.setAttribute('value', this.value);"
|
||||
=name "name"
|
||||
;
|
||||
==
|
||||
;input
|
||||
=type "text"
|
||||
=placeholder "/{(scow %p our.bowl)}/demo/cell/5"
|
||||
=autocomplete "off"
|
||||
=oninput "this.setAttribute('value', this.value);"
|
||||
=name "pith"
|
||||
;
|
||||
==
|
||||
==
|
||||
;button
|
||||
=type "submit"
|
||||
; Add dep
|
||||
==
|
||||
;+ (spinner "conf")
|
||||
==
|
||||
==
|
||||
==
|
||||
==
|
||||
==
|
||||
==
|
||||
++ id
|
||||
^- tape
|
||||
%- zing
|
||||
%+ turn (pout (tail here.bowl))
|
||||
|= smeg=@ta
|
||||
%+ weld "--"
|
||||
(trip smeg)
|
||||
::
|
||||
++ x (rear (snip (snip here.bowl)))
|
||||
++ y (rear (snip here.bowl))
|
||||
++ spinner
|
||||
|= =tape
|
||||
;div.b1.loader.p1.s-2.f2
|
||||
=id (welp tape "-spinner")
|
||||
;span.loaded: saved
|
||||
;span.loading: ---
|
||||
==
|
||||
++ conf-header
|
||||
=/ pit=tape (en-tape:pith:neo (snoc (snip here.bowl) %out))
|
||||
;div.b1.border.fr.jb
|
||||
;span.p1.mono.s-1: {pit}
|
||||
;button.br1.border.b1.hover
|
||||
=style "padding: 4px 8px;"
|
||||
=type "button"
|
||||
=pith pit
|
||||
=onclick "navigator.clipboard.writeText(this.getAttribute('pith'));"
|
||||
; copy path
|
||||
==
|
||||
==
|
||||
++ code-input
|
||||
;textarea#input.wf.p2.pre.mono.grow
|
||||
=name "text"
|
||||
=placeholder "code"
|
||||
=spellcheck "false"
|
||||
=value (trip hoon.conf)
|
||||
=oninput "this.setAttribute('value', this.value);"
|
||||
; {(trip hoon.conf)}
|
||||
==
|
||||
++ deps
|
||||
^- manx
|
||||
?: =(~ crew.conf)
|
||||
;div.fr: No dependencies
|
||||
;div.fc
|
||||
;div.s1.p1: Dependencies
|
||||
;*
|
||||
%+ turn ~(tap by crew.conf)
|
||||
|= [=term =pith:neo]
|
||||
=/ tap (trip term)
|
||||
;label.fr.p1
|
||||
;div.border.wf
|
||||
=name "name"
|
||||
; {tap}
|
||||
==
|
||||
;label.border.wf: {(en-tape:pith:neo pith)}
|
||||
;button.border
|
||||
=hx-post "/neo/sky{(en-tape:pith:neo here.bowl)}?stud=del-dep"
|
||||
; Delete
|
||||
;label.hidden
|
||||
=name "name"
|
||||
=value tap
|
||||
;
|
||||
==
|
||||
==
|
||||
==
|
||||
==
|
||||
++ error
|
||||
|= =tang
|
||||
;div.pre.mono.p2
|
||||
;*
|
||||
%+ turn (scag 25 tang)
|
||||
|= =tank
|
||||
;span: {(of-wall:format (~(win re tank) 0 80))}
|
||||
==
|
||||
--
|
@ -1,5 +1,7 @@
|
||||
/@ accel
|
||||
/@ accel-cell
|
||||
/@ accel-conf
|
||||
/@ htmx
|
||||
:- [%accel %$ %htmx]
|
||||
|= =accel
|
||||
|= =bowl:neo
|
||||
@ -13,7 +15,7 @@
|
||||
++ id
|
||||
^- tape
|
||||
%- zing
|
||||
%+ turn (pout here.bowl)
|
||||
%+ turn (pout (tail here.bowl))
|
||||
|= smeg=@ta
|
||||
%+ weld "--"
|
||||
(trip smeg)
|
||||
@ -38,29 +40,34 @@
|
||||
;*
|
||||
%+ turn (gulf 1 10)
|
||||
|= y=@
|
||||
=/ val=(unit pail:neo) ~::(~(get by kids.bowl) ~[ud/x ud/y])
|
||||
=/ vaf (fall val [%accel-cell !>(*accel-cell)])
|
||||
^- manx
|
||||
=/ pax=pith:neo #/[ud/x]/[ud/y]
|
||||
=/ kid=bowl:neo bowl
|
||||
=. kids.kid [~ ~]
|
||||
=. here.kid :(welp here.bowl pax)
|
||||
=. deps.kid ~
|
||||
=/ in=manx
|
||||
?~ res=(~(get of:neo kids.bowl) (snoc pax %in))
|
||||
*manx
|
||||
=. here.kid (snoc here.kid %in)
|
||||
(!<(htmx q.pail.u.res) kid)
|
||||
=/ out=manx
|
||||
?~ res=(~(get of:neo kids.bowl) (snoc pax %out))
|
||||
*manx
|
||||
=. here.kid (snoc here.kid %out)
|
||||
(!<(htmx q.pail.u.res) kid)
|
||||
;td.border
|
||||
;+
|
||||
=/ cell !<(accel-cell +:vaf)
|
||||
;button.b1.scroll-none.hover.cell-btn.p2.wf.hf
|
||||
=id "cell-{id}-{<x>}-{<y>}"
|
||||
=hx-get "/neo/hawk{(en-tape:pith:neo here.bowl)}/{<x>}/{<y>}"
|
||||
=hx-get "/neo/hawk{(en-tape:pith:neo here.bowl)}/{<x>}/{<y>}/in"
|
||||
=hx-target "#dashboard-{id}"
|
||||
=hx-select ".trans-root"
|
||||
=hx-swap "innerHTML"
|
||||
=morph-retain "class"
|
||||
=onclick "$('.cell-btn').removeClass('toggled');$(this).addClass('toggled');"
|
||||
;+
|
||||
?~ result.cell ;/("")
|
||||
=/ res (need result.cell)
|
||||
?- -.res
|
||||
%.y
|
||||
;div.mono
|
||||
;+
|
||||
;/ (of-wall:format (~(win re (sell +.res)) 0 80))
|
||||
==
|
||||
%.n
|
||||
;span: ERROR
|
||||
;div.mono
|
||||
;+ out
|
||||
==
|
||||
==
|
||||
==
|
||||
@ -69,8 +76,7 @@
|
||||
==
|
||||
==
|
||||
++ dashboard-stub
|
||||
;div.b0.fc
|
||||
=style "grid-area: dashboard;"
|
||||
;div.b0.fr
|
||||
=id "dashboard-{id}"
|
||||
;
|
||||
==
|
||||
@ -91,6 +97,7 @@
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
grid-area: table;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.scroll-none {
|
||||
overflow-x: auto;
|
||||
@ -102,7 +109,7 @@
|
||||
}
|
||||
.accel-top {
|
||||
display: grid;
|
||||
grid-template-rows: 1fr min(auto, 300px);
|
||||
grid-template-rows: 1fr 1fr;
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
"table"
|
||||
|
@ -15,12 +15,15 @@
|
||||
:: manxes
|
||||
++ friends-list
|
||||
^- manx
|
||||
;div.fc.g2
|
||||
;div.fc.g2
|
||||
;*
|
||||
%+ turn
|
||||
%+ turn
|
||||
%+ murn
|
||||
~ ::~(tap in ~(key by kids.bowl))
|
||||
|= =pith ((soft ship) ->:pith)
|
||||
~(tap in ~(key by ~(tar of:neo kids.bowl)))
|
||||
|= =road:neo
|
||||
?. ?=([[%p ship=@] *] road)
|
||||
~
|
||||
`ship.road
|
||||
|= =ship
|
||||
^- manx
|
||||
;div.border.p2.mono.fr.jb
|
||||
|
@ -14,19 +14,22 @@
|
||||
:: <div class="p2" label="Diary">
|
||||
;div.p2
|
||||
=label "Diary"
|
||||
:: <div class="ma fc g2" style="max-width: 650px">
|
||||
;div.ma.fc.g2
|
||||
=style "max-width: 650px;"
|
||||
:: <div class="ma fc g2 mw-page">
|
||||
;div.ma.fc.g2.mw-page
|
||||
:: render the text input for new entries
|
||||
;+ form-put-entry
|
||||
:: compose several link-entry elements generated
|
||||
:: by the +turn gate into one HTMX node
|
||||
;*
|
||||
%+ turn
|
||||
~
|
||||
:: %+ sort ~(tap of:neo kids.bowl)
|
||||
:: |= [a=[=pith *] b=[=pith *]]
|
||||
:: (gth ->.pith.a ->.pith.b)
|
||||
%+ sort
|
||||
%+ murn
|
||||
~(tap of:neo kids.bowl)
|
||||
|= [=pith =idea:neo]
|
||||
?~ pith ~
|
||||
`[pith idea]
|
||||
|= [a=[=pith *] b=[=pith *]]
|
||||
(gth ->.pith.a ->.pith.b)
|
||||
link-entry
|
||||
== :: </div>
|
||||
== :: </div>
|
||||
@ -37,17 +40,17 @@
|
||||
:: class="fc g2"
|
||||
:: style="margin-bottom: 30px"
|
||||
:: head="put-entry"
|
||||
:: hx-post="{(en-tape:pith:neo :(weld /neo/hawk here.bowl))}?stud=diary-diff"
|
||||
:: hx-post="/neo/hawk{(en-tape:pith:neo here.bowl)}?stud=diary-diff"
|
||||
:: hx-on-submit="this.reset()"
|
||||
:: hx-target="this"
|
||||
:: hx-swap="afterend"
|
||||
:: hx-target="find .loading"
|
||||
:: hx-swap="outerHTML"
|
||||
:: >
|
||||
;form.fc.g2
|
||||
=style "margin-bottom: 30px;"
|
||||
=hx-post "{(en-tape:pith:neo :(weld /neo/hawk here.bowl))}?stud=diary-diff"
|
||||
=hx-post "/neo/hawk{(en-tape:pith:neo here.bowl)}?stud=diary-diff"
|
||||
=hx-on-submit "this.reset()"
|
||||
=hx-target "this"
|
||||
=hx-swap "afterend"
|
||||
=hx-target "find .loading"
|
||||
=hx-swap "outerHTML"
|
||||
=head "put-entry"
|
||||
:: <date-now name="id" />
|
||||
;date-now(name "id");
|
||||
@ -82,9 +85,9 @@
|
||||
::
|
||||
:: entry box
|
||||
++ link-entry
|
||||
|= [pax=pith =pail:neo]
|
||||
|= [pax=pith =idea:neo]
|
||||
:: extract information from the given pith and pail:neo
|
||||
=/ tape (trip !<(@t q.pail))
|
||||
=/ tape (trip !<(@t q.pail.idea))
|
||||
=/ subject-end (fall (find [10]~ tape) 56)
|
||||
=/ subject (scag subject-end tape)
|
||||
=/ id (trip (snag 0 (pout pax)))
|
||||
|
@ -1,13 +0,0 @@
|
||||
/@ folder-diff
|
||||
/- feather-icons
|
||||
:- [%folder-diff %$ %htmx]
|
||||
|= =folder-diff
|
||||
|= =bowl:neo
|
||||
;div.loading
|
||||
=hx-get "/neo/hawk{(en-tape:pith:neo here.bowl)}"
|
||||
=hx-target "closest .hawk"
|
||||
=hx-indicator "closest .loader"
|
||||
=hx-swap "innerHTML"
|
||||
=hx-trigger "load"
|
||||
;+ loading.feather-icons
|
||||
==
|
@ -1,686 +0,0 @@
|
||||
:- [%vase %$ %htmx]
|
||||
=/ debug |
|
||||
|= v=vase
|
||||
|= =bowl:neo
|
||||
^- manx
|
||||
=< apex
|
||||
|%
|
||||
++ dprint
|
||||
=>
|
||||
:: dprint-types
|
||||
|%
|
||||
:: $overview: an overview of all named things in the type.
|
||||
::
|
||||
:: each element in the overview list is either a documentation for a sublist
|
||||
:: or an association betwen a term and documentation for it
|
||||
+$ overview (list overview-item)
|
||||
::
|
||||
:: $overview-item: an element of an overview
|
||||
+$ overview-item
|
||||
$% [%header doc=what children=overview]
|
||||
[%item name=tape doc=what]
|
||||
==
|
||||
::
|
||||
:: $item: the part of a type being inspected
|
||||
+$ item
|
||||
$%
|
||||
:: overview of a type
|
||||
::
|
||||
[%view items=overview]
|
||||
:: inspecting a full core
|
||||
$: %core
|
||||
name=tape :: arm that built it
|
||||
docs=what ::
|
||||
sut=type :: [%core *]
|
||||
children=(unit item) :: compiled against
|
||||
==
|
||||
:: inspecting a single arm on a core
|
||||
$: %arm
|
||||
name=tape :: arm name
|
||||
adoc=what :: arm doc
|
||||
pdoc=what :: product doc
|
||||
cdoc=what :: $ arm/prod doc
|
||||
gen=hoon :: arm hoon AST
|
||||
sut=type :: subject of arm
|
||||
==
|
||||
:: inspecting a face and what's behind it
|
||||
$: %face
|
||||
name=tape :: name of face
|
||||
docs=what ::
|
||||
children=(unit item) :: face referent
|
||||
==
|
||||
:: inspecting a single chapter on a core
|
||||
$: %chapter
|
||||
name=tape :: name of chapter
|
||||
docs=what ::
|
||||
sut=type :: [%core *]
|
||||
tom=tome :: tome of chapter
|
||||
==
|
||||
==
|
||||
::
|
||||
--
|
||||
:: dprint
|
||||
::
|
||||
:: core containing doccords search and printing utilities
|
||||
|%
|
||||
:: contains arms used for looking for docs inside of a type
|
||||
::
|
||||
:: the entrypoint for finding docs within a type is +find-item-in-type.
|
||||
+| %searching
|
||||
:: +find-item-in-type: returns the item to print while searching through topic
|
||||
::
|
||||
:: this gate is a thin wrapper around _hunt for usability, since the only entry
|
||||
:: point most users should care about is find-item:hunt
|
||||
::
|
||||
++ find-item-in-type
|
||||
|= [topics=(list term) sut=type]
|
||||
?~ topics !!
|
||||
=/ top=(lest term) topics
|
||||
~(find-item hunt [top sut])
|
||||
::
|
||||
:: +hunt: door used for refining the type while searching for doccords
|
||||
::
|
||||
++ hunt
|
||||
=| gil=(set type)
|
||||
|_ [topics=(lest term) sut=type]
|
||||
+* this .
|
||||
::
|
||||
+| %find
|
||||
::
|
||||
++ find-item
|
||||
~? >> debug %find-item
|
||||
^- (unit item)
|
||||
?- sut
|
||||
%noun ~
|
||||
%void ~
|
||||
[%atom *] ~
|
||||
[%cell *] find-cell
|
||||
[%core *] find-core
|
||||
[%face *] find-face
|
||||
[%fork *] find-fork
|
||||
[%hint *] find-hint
|
||||
[%hold *] find-item:this(sut (~(play ut p.sut) q.sut))
|
||||
==
|
||||
::
|
||||
++ find-cell
|
||||
~? >> debug %find-cell
|
||||
^- (unit item)
|
||||
?> ?=([%cell *] sut)
|
||||
=/ lhs find-item:this(sut p.sut)
|
||||
?~ lhs
|
||||
find-item:this(sut q.sut)
|
||||
lhs
|
||||
::
|
||||
++ find-core
|
||||
~? >> debug %find-core
|
||||
^- (unit item)
|
||||
?> ?=([%core *] sut)
|
||||
?: check-arm
|
||||
?: check-search
|
||||
?: check-arm-core
|
||||
return-arm-core
|
||||
return-arm
|
||||
recurse-arm-core
|
||||
?: check-chap
|
||||
?: check-search
|
||||
return-chap
|
||||
recurse-chap
|
||||
recurse-core
|
||||
::
|
||||
++ find-face
|
||||
~? >> debug %find-face
|
||||
^- (unit item)
|
||||
?> ?=([%face *] sut)
|
||||
?. ?=(term p.sut)
|
||||
::TODO: handle $tune case
|
||||
find-item:this(sut q.sut)
|
||||
?. =(i.topics p.sut)
|
||||
~
|
||||
?~ t.topics
|
||||
return-face
|
||||
find-item:this(sut q.sut, topics t.topics)
|
||||
::
|
||||
++ find-fork
|
||||
~? >> debug %find-fork
|
||||
^- (unit item)
|
||||
?> ?=([%fork *] sut)
|
||||
=/ types=(list type) ~(tap in p.sut)
|
||||
|-
|
||||
?~ types ~
|
||||
=+ res=find-item:this(sut i.types)
|
||||
?~ res
|
||||
$(types t.types)
|
||||
res
|
||||
::
|
||||
++ find-hint
|
||||
~? >> debug %find-hint
|
||||
^- (unit item)
|
||||
|^
|
||||
?> ?=([%hint *] sut)
|
||||
?. ?=([%help *] q.p.sut)
|
||||
find-item:this(sut q.sut)
|
||||
?+ q.sut ~
|
||||
[%cell *] find-cell:this(sut q.sut)
|
||||
[%core *] find-hint-core
|
||||
[%face *] find-hint-face
|
||||
[%fork *] find-fork:this(sut q.sut)
|
||||
[%hint *] find-hint:this(sut q.sut)
|
||||
[%hold *] find-hint:this(q.sut (~(play ut p.q.sut) q.q.sut))
|
||||
==
|
||||
::
|
||||
++ find-hint-core
|
||||
~? >> debug %find-hint-core
|
||||
^- (unit item)
|
||||
?> &(?=([%hint *] sut) ?=([%help *] q.p.sut) ?=([%core *] q.sut))
|
||||
::
|
||||
?. ?& ((sane %tas) summary.crib.p.q.p.sut)
|
||||
=(summary.crib.p.q.p.sut i.topics)
|
||||
==
|
||||
find-core:this(sut q.sut)
|
||||
?~ t.topics
|
||||
return-hint-core
|
||||
find-item:this(sut q.sut, topics t.topics)
|
||||
::
|
||||
++ find-hint-face
|
||||
~? >> debug %find-hint-face
|
||||
^- (unit item)
|
||||
?> &(?=([%hint *] sut) ?=([%help *] q.p.sut) ?=([%face *] q.sut))
|
||||
?: check-face:this(sut q.sut)
|
||||
?~ t.topics
|
||||
return-hint-face
|
||||
find-item:this(sut q.q.sut, topics t.topics)
|
||||
find-item:this(sut q.q.sut)
|
||||
--
|
||||
::
|
||||
::+| %recurse
|
||||
++ recurse-core
|
||||
~? >> debug %recurse-core
|
||||
^- (unit item)
|
||||
?> ?=([%core *] sut)
|
||||
find-item:this(sut p.sut)
|
||||
++ recurse-chap
|
||||
~? >> debug %recurse-chap
|
||||
^- (unit item)
|
||||
?> ?=([%core *] sut)
|
||||
?~ t.topics !!
|
||||
find-item:this(topics t.topics)
|
||||
++ recurse-arm-core
|
||||
~? >> debug %recurse-arm-core
|
||||
^- (unit item)
|
||||
?> ?=([%core *] sut)
|
||||
?~ t.topics !!
|
||||
find-item:this(sut arm-type, topics t.topics)
|
||||
::
|
||||
+| %check
|
||||
::
|
||||
++ check-arm
|
||||
~? >> debug %recurse-core
|
||||
^- ?
|
||||
!=(~ (find ~[i.topics] (sloe sut)))
|
||||
++ check-chap
|
||||
~? >> debug %check-chap
|
||||
^- ?
|
||||
?> ?=([%core *] sut)
|
||||
(~(has by q.r.q.sut) i.topics)
|
||||
++ check-face
|
||||
~? >> debug %check-face
|
||||
^- ?
|
||||
?> ?=([%face *] sut)
|
||||
?. ?=(term p.sut)
|
||||
::TODO: handle $tune case
|
||||
%.n
|
||||
=(p.sut i.topics)
|
||||
++ check-search
|
||||
~? >> debug %check-search
|
||||
^- ?
|
||||
=(~ t.topics)
|
||||
++ check-arm-core
|
||||
~? >> debug %check-arm-core
|
||||
^- ?
|
||||
=+ arm-list=(sloe (~(play ut sut) arm-hoon))
|
||||
&(!=(arm-list ~) !=(arm-list ~[%$]) ?=([%core *] arm-type))
|
||||
::
|
||||
+| %return
|
||||
::
|
||||
++ return-cell
|
||||
~? >>> debug %return-cell
|
||||
^- (unit item)
|
||||
?> ?=([%cell *] sut)
|
||||
(join-items return-item:this(sut p.sut) return-item:this(sut q.sut))
|
||||
::
|
||||
++ return-core
|
||||
~? >>> debug %return-core
|
||||
^- (unit item)
|
||||
?> ?=([%core *] sut)
|
||||
=* compiled-against return-item:this(sut p.sut)
|
||||
`[%core (trip i.topics) *what sut compiled-against]
|
||||
::
|
||||
++ return-face
|
||||
~? >>> debug %return-face
|
||||
^- (unit item)
|
||||
?> ?=([%face *] sut)
|
||||
:: TODO: handle tune case
|
||||
?. ?=(term p.sut)
|
||||
return-item:this(sut q.sut)
|
||||
=* compiled-against return-item:this(sut q.sut)
|
||||
`[%face (trip p.sut) *what compiled-against]
|
||||
::
|
||||
++ return-fork
|
||||
~? >>> debug %return-fork
|
||||
^- (unit item)
|
||||
?> ?=([%fork *] sut)
|
||||
=* types ~(tap in p.sut)
|
||||
=* items (turn types |=(a=type return-item:this(sut a)))
|
||||
(roll items join-items)
|
||||
::
|
||||
++ return-hint
|
||||
~? >>> debug %return-hint
|
||||
^- (unit item)
|
||||
?> ?=([%hint *] sut)
|
||||
=* res return-item:this(sut q.sut)
|
||||
?. ?=([%help *] q.p.sut)
|
||||
~
|
||||
?: ?=([%core *] q.sut)
|
||||
return-hint-core
|
||||
?: ?=([%face *] q.sut)
|
||||
return-hint-face
|
||||
`[%view [%header `crib.p.q.p.sut (item-as-overview res)]~]
|
||||
::
|
||||
++ return-arm
|
||||
~? >>> debug %return-arm
|
||||
^- (unit item)
|
||||
?> ?=([%core *] sut)
|
||||
=+ [adoc pdoc cdoc]=(arm-docs i.topics sut)
|
||||
::TODO: should this p.sut be sut? or the compiled type of the arm?
|
||||
`[%arm (trip i.topics) adoc pdoc cdoc arm-hoon sut]
|
||||
::
|
||||
++ return-chap
|
||||
~? >>> debug %return-chap
|
||||
^- (unit item)
|
||||
?> ?=([%core *] sut)
|
||||
=/ tom=tome (~(got by q.r.q.sut) i.topics)
|
||||
`[%chapter (trip i.topics) p.tom sut (~(got by q.r.q.sut) i.topics)]
|
||||
::
|
||||
++ return-arm-core
|
||||
~? >>> debug %return-arm-core
|
||||
^- (unit item)
|
||||
?> ?=([%core *] sut)
|
||||
=+ [adoc pdoc cdoc]=(arm-docs i.topics sut)
|
||||
=/ dox=what ?~(adoc ?~(pdoc ~ pdoc) adoc)
|
||||
=/ at arm-type
|
||||
?> ?=([%core *] at)
|
||||
=* compiled-against return-item:this(sut p.sut)
|
||||
`[%core (trip i.topics) dox at compiled-against]
|
||||
::
|
||||
++ return-item
|
||||
~? >>> debug %return-item
|
||||
^- (unit item)
|
||||
?- sut
|
||||
%noun ~
|
||||
%void ~
|
||||
[%atom *] ~
|
||||
[%cell *] return-cell
|
||||
[%core *] return-core
|
||||
[%face *] return-face
|
||||
[%fork *] return-fork
|
||||
[%hint *] return-hint
|
||||
[%hold *]
|
||||
?: (~(has in gil) sut)
|
||||
~
|
||||
=< return-item
|
||||
%= this
|
||||
gil (~(put in gil) sut)
|
||||
sut (~(play ut p.sut) q.sut)
|
||||
==
|
||||
==
|
||||
::
|
||||
++ return-hint-core
|
||||
~? >>> debug %return-hint-core
|
||||
^- (unit item)
|
||||
?> &(?=([%hint *] sut) ?=([%core *] q.sut))
|
||||
(apply-hint return-core:this(sut q.sut))
|
||||
::
|
||||
++ return-hint-face
|
||||
~? >>> debug %return-hint-face
|
||||
^- (unit item)
|
||||
?> &(?=([%hint *] sut) ?=([%face *] q.sut))
|
||||
(apply-hint return-face:this(sut q.sut))
|
||||
::
|
||||
++ apply-hint
|
||||
~? >> debug %apply-hint
|
||||
|= uit=(unit item)
|
||||
^- (unit item)
|
||||
?~ uit ~
|
||||
?> &(?=([%hint *] sut) ?=([%help *] q.p.sut))
|
||||
?+ u.uit ~
|
||||
?([%core *] [%face *]) (some u.uit(docs `crib.p.q.p.sut))
|
||||
==
|
||||
::
|
||||
+| %misc
|
||||
++ arm-hoon
|
||||
^- hoon
|
||||
?> ?=([%core *] sut)
|
||||
(^arm-hoon i.topics sut)
|
||||
::
|
||||
++ arm-type
|
||||
^- type
|
||||
?> ?=([%core *] sut)
|
||||
(^arm-type i.topics sut)
|
||||
--
|
||||
::
|
||||
:: +arm-hoon: looks for an arm in a core type and returns its hoon
|
||||
++ arm-hoon
|
||||
|= [nom=term sut=type]
|
||||
^- hoon
|
||||
?> ?=([%core *] sut)
|
||||
=/ tomes=(list [p=term q=tome]) ~(tap by q.r.q.sut)
|
||||
|-
|
||||
?~ tomes !!
|
||||
=+ gen=(~(get by q.q.i.tomes) nom)
|
||||
?~ gen
|
||||
$(tomes t.tomes)
|
||||
u.gen
|
||||
::
|
||||
:: +arm-type: looks for an arm in a core type and returns its type
|
||||
++ arm-type
|
||||
|= [nom=term sut=type]
|
||||
^- type
|
||||
?> ?=([%core *] sut)
|
||||
(~(play ut sut) (arm-hoon nom sut))
|
||||
::
|
||||
:: +hint-doc: returns docs if type is %help $hint w/ matching cuff
|
||||
++ hint-doc
|
||||
|= [=cuff sut=type]
|
||||
^- what
|
||||
?. &(?=([%hint *] sut) ?=([%help *] q.p.sut) =(cuff cuff.p.q.p.sut))
|
||||
~
|
||||
`crib.p.q.p.sut
|
||||
::
|
||||
:: +arm-doc: returns arm doc of an arm
|
||||
::
|
||||
:: we just check if the $cuff is from a ++ or +$ arm but this will
|
||||
:: probably need to be revisited once more sophisticated cuffs are used
|
||||
++ arm-doc
|
||||
|= [nom=term sut=type]
|
||||
^- what
|
||||
?~ (hint-doc [%funk nom]~ sut)
|
||||
(hint-doc [%plan nom]~ sut)
|
||||
(hint-doc [%funk nom]~ sut)
|
||||
::
|
||||
:: +prod-doc: wrapper for +hint-doc with empty cuff
|
||||
++ prod-doc
|
||||
|= sut=type
|
||||
^- what
|
||||
(hint-doc ~ sut)
|
||||
::
|
||||
:: +buc-doc: checks if type is core and returns docs on $ arm if it exists
|
||||
++ buc-doc
|
||||
|= sut=type
|
||||
^- what
|
||||
?. ?=([%core *] sut)
|
||||
~
|
||||
?~ (find [%$]~ (sloe sut))
|
||||
~
|
||||
=/ sat=type (arm-type %$ sut)
|
||||
?~ (arm-doc %$ sat)
|
||||
(prod-doc sat)
|
||||
(arm-doc %$ sat)
|
||||
::
|
||||
:: +arm-docs: grabs the docs for an arm.
|
||||
::
|
||||
:: there are three possible places with relevant docs for an arm:
|
||||
:: docs for the arm itself, docs for the product of the arm, and
|
||||
:: if the arm builds a core, docs for the default arm of that core.
|
||||
::
|
||||
:: .adoc: docs written above the the arm
|
||||
:: .pdoc: docs for the product of the arm
|
||||
:: .cdoc: docs for the default arm of the core produced by the arm
|
||||
++ arm-docs
|
||||
|= [nom=term sut=type]
|
||||
^- [what what what]
|
||||
?> ?=([%core *] sut)
|
||||
=/ sat=type (~(play ut sut) (arm-hoon nom sut))
|
||||
=/ adoc=what (arm-doc nom sat)
|
||||
=/ pdoc=what
|
||||
?~ adoc
|
||||
(prod-doc sat)
|
||||
?> ?=([%hint *] sat)
|
||||
(prod-doc q.sat)
|
||||
=/ cdoc=what
|
||||
?~ adoc
|
||||
?~ pdoc
|
||||
(buc-doc sat)
|
||||
?> ?=([%hint *] sat)
|
||||
(buc-doc q.sat)
|
||||
?~ pdoc
|
||||
?> ?=([%hint *] sat)
|
||||
(buc-doc q.sat)
|
||||
?> &(?=([%hint *] sat) ?=([%hint *] q.sat))
|
||||
(buc-doc q.q.sat)
|
||||
[adoc pdoc cdoc]
|
||||
::
|
||||
:: +arm-and-chapter-overviews: returns an overview of a core's contents
|
||||
::
|
||||
:: returns an overview for arms which are part of unnamed chapters, and
|
||||
:: an overview of the named chapters
|
||||
::
|
||||
++ arm-and-chapter-overviews
|
||||
|= =item
|
||||
^- [overview overview]
|
||||
?> &(?=([%core *] item) ?=([%core *] sut.item))
|
||||
=| [adocs=overview cdocs=overview]
|
||||
=/ tomes ~(tap by q.r.q.sut.item)
|
||||
|-
|
||||
?~ tomes
|
||||
[(sort-overview adocs) (sort-overview cdocs)]
|
||||
?~ p.i.tomes
|
||||
:: chapter has no name. add documentation for its arms to arm-docs
|
||||
=. adocs (weld adocs (tome-as-overview q.i.tomes sut.item))
|
||||
$(tomes t.tomes)
|
||||
:: chapter has a name. add to list of chapters
|
||||
=. cdocs
|
||||
%+ weld cdocs
|
||||
^- overview
|
||||
[%item :(weld "^" name.item "|" (trip -.i.tomes)) p.q.i.tomes]~
|
||||
$(tomes t.tomes)
|
||||
::
|
||||
:: +arms-in-chapter: returns an overview of the arms in a specific chapter
|
||||
++ arms-in-chapter
|
||||
|= [sut=type tom=tome]
|
||||
^- overview
|
||||
(sort-overview (tome-as-overview tom sut))
|
||||
::
|
||||
:: +sort-overview: sort items in an overview in alphabetical order
|
||||
++ sort-overview
|
||||
|= ovr=overview
|
||||
^- overview
|
||||
%+ sort ovr
|
||||
|= [lhs=overview-item rhs=overview-item]
|
||||
(aor (get-overview-name lhs) (get-overview-name rhs))
|
||||
::
|
||||
:: +get-overview-name: returns the name of an overview
|
||||
++ get-overview-name
|
||||
|= ovr=overview-item
|
||||
?- ovr
|
||||
[%header *] ""
|
||||
[%item *] name.ovr
|
||||
==
|
||||
::
|
||||
:: +tome-as-overview: translate a tome into an overview
|
||||
++ tome-as-overview
|
||||
|= [tom=tome sut=type]
|
||||
^- overview
|
||||
%+ turn ~(tap by q.tom)
|
||||
|= ar=(pair term hoon)
|
||||
:* %item
|
||||
::TODO make this distinguish between ++ and +$ arms
|
||||
(weld "+" (trip p.ar))
|
||||
=/ adoc (arm-doc p.ar (~(play ut sut) q.ar))
|
||||
=/ pdoc (prod-doc (~(play ut sut) q.ar))
|
||||
?~ adoc
|
||||
pdoc
|
||||
adoc
|
||||
==
|
||||
::
|
||||
:: +item-as-overview: changes an item into an overview
|
||||
++ item-as-overview
|
||||
|= uit=(unit item)
|
||||
~? >> debug %item-as-overview
|
||||
^- overview
|
||||
?~ uit ~
|
||||
=+ itm=(need uit)
|
||||
?- itm
|
||||
[%view *] items.itm
|
||||
::
|
||||
[%core *]
|
||||
?~ name.itm
|
||||
(item-as-overview children.itm)
|
||||
:- [%item (weld "^" name.itm) docs.itm]
|
||||
(item-as-overview children.itm)
|
||||
::
|
||||
[%arm *]
|
||||
:_ ~
|
||||
::TODO make this distinguish between ++ and +$ arms
|
||||
:* %item (weld "+" name.itm)
|
||||
?~ adoc.itm
|
||||
?~ pdoc.itm
|
||||
cdoc.itm
|
||||
pdoc.itm
|
||||
adoc.itm
|
||||
==
|
||||
::
|
||||
[%chapter *]
|
||||
[%item (weld "|" name.itm) docs.itm]~
|
||||
::
|
||||
[%face *]
|
||||
?~ name.itm
|
||||
~
|
||||
[%item (weld "." name.itm) docs.itm]~
|
||||
==
|
||||
::
|
||||
:: +join-items: combines two (unit items) together
|
||||
++ join-items
|
||||
|= [lhs=(unit item) rhs=(unit item)]
|
||||
^- (unit item)
|
||||
?~ lhs rhs
|
||||
?~ rhs lhs
|
||||
`[%view (weld (item-as-overview lhs) (item-as-overview rhs))]
|
||||
--
|
||||
|
||||
:: XX: non-std
|
||||
++ post-href
|
||||
|= =post:neo
|
||||
^- path
|
||||
?> ?=(@ q.post)
|
||||
=/ dsk
|
||||
/neo/hawk/out/std
|
||||
%+ welp dsk
|
||||
/[p.post]/[q.post]
|
||||
::
|
||||
++ apex
|
||||
;div
|
||||
;+
|
||||
(have v)
|
||||
==
|
||||
++ empty
|
||||
;h4: No build result here
|
||||
++ fallback
|
||||
|= vax=vase
|
||||
;div
|
||||
;*
|
||||
=/ arms (sloe p.vax)
|
||||
%+ turn arms
|
||||
|= a=term
|
||||
^- manx
|
||||
(desc-arm a p.vax)
|
||||
==
|
||||
++ over-to-manx
|
||||
|= ove=overview:dprint
|
||||
^- manx
|
||||
;div
|
||||
;*
|
||||
%+ turn ove
|
||||
|= tem=overview-item:dprint
|
||||
^- manx
|
||||
(over-item-to-manx tem)
|
||||
==
|
||||
++ what-to-manx
|
||||
|= wat=what
|
||||
^- manx
|
||||
?~ wat
|
||||
;div: Nothing here
|
||||
;div.what
|
||||
;h6: {(trip p.u.wat)}
|
||||
;div
|
||||
;* ^- (list manx)
|
||||
%- zing
|
||||
^- (list (list manx))
|
||||
%+ turn q.u.wat
|
||||
|= sec=sect
|
||||
^- (list manx)
|
||||
%+ turn sec
|
||||
|= pic=pica
|
||||
^- manx
|
||||
?: p.pic
|
||||
;div: {(trip q.pic)}
|
||||
;code.pre: {(trip q.pic)}
|
||||
==
|
||||
==
|
||||
++ over-item-to-manx
|
||||
|= tem=overview-item:dprint
|
||||
^- manx
|
||||
?- -.tem
|
||||
%header
|
||||
;div.over-item-head
|
||||
;+ (what-to-manx doc.tem)
|
||||
;+ (over-to-manx children.tem)
|
||||
==
|
||||
::
|
||||
%item
|
||||
;div.over-item-item
|
||||
;h6: {name.tem}
|
||||
;+ (what-to-manx doc.tem)
|
||||
==
|
||||
==
|
||||
++ desc-arm
|
||||
|= [arm=term sut=type]
|
||||
^- manx
|
||||
=/ tem (find-item-in-type:dprint ~[arm] sut)
|
||||
~& tem/tem
|
||||
(over-to-manx (item-as-overview:dprint tem))
|
||||
|
||||
++ have
|
||||
|= vax=vase
|
||||
=/ fim=(unit kook:neo)
|
||||
(mole |.(!<(kook:neo vax)))
|
||||
?> ?=(^ fim)
|
||||
;div.p2.fc.g2
|
||||
;h4: Shrub implementation
|
||||
;h5: State
|
||||
;div.frw.g2
|
||||
;*
|
||||
%+ turn ~(tap in (curt:neo state:u.fim))
|
||||
|= =post:neo
|
||||
^- manx
|
||||
;button.p2.br1.b1.hover
|
||||
=hx-get (spud (post-href post))
|
||||
=hx-target "closest .hawk"
|
||||
=hx-swap "innerHTML"
|
||||
; {<p.post>} {<q.post>}
|
||||
==
|
||||
==
|
||||
;h5: Pokes
|
||||
;div.frw.g2
|
||||
;*
|
||||
%+ turn ~(tap in poke:u.fim)
|
||||
|= =stud:neo
|
||||
^- manx
|
||||
;button.p2.br1.b1.hover
|
||||
=hx-get (spud (post-href %pro stud))
|
||||
=hx-target "closest .hawk"
|
||||
=hx-swap "innerHTML"
|
||||
; {<stud>}
|
||||
==
|
||||
==
|
||||
==
|
||||
--
|
@ -13,7 +13,7 @@
|
||||
++ id
|
||||
^- tape
|
||||
%- zing
|
||||
%+ turn (pout here.bowl)
|
||||
%+ turn (pout (slag 1 here.bowl))
|
||||
|= smeg=@ta
|
||||
%+ weld "--"
|
||||
(trip smeg)
|
||||
@ -28,7 +28,7 @@
|
||||
;
|
||||
==
|
||||
;a.p2.b1.hover.loader.br2.bd1.fr.jc.ac.f3
|
||||
=href "/neo/hawk/sky/settings"
|
||||
=href "/neo/hawk/{<our.bowl>}/sky/settings"
|
||||
;span.loaded
|
||||
;+ settings.feather-icons
|
||||
==
|
||||
|
@ -19,8 +19,7 @@
|
||||
=type "text"
|
||||
=name "text"
|
||||
=value url
|
||||
=is "atom-input"
|
||||
=oninput "this.parentNode.nextElementSibling.src = this.value;"
|
||||
=oninput "$(this).attr('value', this.value); this.parentNode.nextElementSibling.src = this.value;"
|
||||
;
|
||||
==
|
||||
;button.p2.b1
|
||||
|
13
pkg/arvo/neo/cod/std/src/con/node-add-dep.hoon
Normal file
13
pkg/arvo/neo/cod/std/src/con/node-add-dep.hoon
Normal file
@ -0,0 +1,13 @@
|
||||
/@ node
|
||||
/@ add-dep
|
||||
/- manx-utils
|
||||
:- [%node %$ %add-dep]
|
||||
|= nod=node
|
||||
^- add-dep
|
||||
=/ mu ~(. manx-utils nod)
|
||||
::
|
||||
=/ =pith:neo (pave:neo (rash (vol:mu "pith") stap))
|
||||
=/ name=term (vol:mu "name")
|
||||
?> ((sane %tas) name)
|
||||
[name pith]
|
||||
|
12
pkg/arvo/neo/cod/std/src/con/node-add-poke.hoon
Normal file
12
pkg/arvo/neo/cod/std/src/con/node-add-poke.hoon
Normal file
@ -0,0 +1,12 @@
|
||||
/@ node
|
||||
/@ add-poke
|
||||
/- manx-utils
|
||||
:- [%node %$ %add-poke]
|
||||
|= nod=node
|
||||
~& nod/nod
|
||||
^- add-poke
|
||||
=/ mu ~(. manx-utils nod)
|
||||
:- (pave:neo (rash (vol:mu "pith") stap))
|
||||
`@tas`(rash (vol:mu "stud") ;~(pfix cen sym)) :: XX fix
|
||||
|
||||
|
@ -6,4 +6,6 @@
|
||||
^- circle-diff
|
||||
=/ s
|
||||
(slav %p (~(vol manx-utils nod) "ship"))
|
||||
[%add (malt `(list [ship made:neo])`~[[s [%sig ~ ~]]])]
|
||||
=/ =made:neo
|
||||
[%sig `sig/!>(~) ~]
|
||||
[%add (~(gas by *(map ship made:neo)) [s made] ~)]
|
||||
|
11
pkg/arvo/neo/cod/std/src/con/node-del-dep.hoon
Normal file
11
pkg/arvo/neo/cod/std/src/con/node-del-dep.hoon
Normal file
@ -0,0 +1,11 @@
|
||||
/@ node
|
||||
/@ del-dep
|
||||
/- manx-utils
|
||||
:- [%node %$ %del-dep]
|
||||
|= nod=node
|
||||
^- del-dep
|
||||
=/ mu ~(. manx-utils nod)
|
||||
=/ name=term (vol:mu "name")
|
||||
?> ((sane %tas) name)
|
||||
name
|
||||
|
@ -8,8 +8,9 @@
|
||||
=/ mu ~(. manx-utils nod)
|
||||
=/ code
|
||||
=/ raw=tape (need (val:mu "code"))
|
||||
?: =((rear raw) '\0a') (crip (snip raw))
|
||||
(crip raw)
|
||||
?: =(0 (lent raw)) (crip raw)
|
||||
?. =((rear raw) '\0a') (crip raw)
|
||||
(crip (snip raw))
|
||||
=/ class (vol:mu "classes")
|
||||
[code class `(render-udon code)]
|
||||
++ render-udon
|
||||
|
@ -124,7 +124,7 @@
|
||||
=class "fr ac br1 {color}"
|
||||
;button
|
||||
=class "loader p2 tl br1 hover grow {color}"
|
||||
=hx-post "/neo/hawk/sky?stud=sky-diff"
|
||||
=hx-post "/neo/hawk/{<our.bowl>}/sky?stud=sky-diff"
|
||||
=hx-target "find .loading"
|
||||
=hx-swap "outerHTML"
|
||||
=head "maximize"
|
||||
@ -136,7 +136,7 @@
|
||||
==
|
||||
;button
|
||||
=class "loader p2 tl br1 hover {color}"
|
||||
=hx-post "/neo/hawk/sky?stud=sky-diff"
|
||||
=hx-post "/neo/hawk/{<our.bowl>}/sky?stud=sky-diff"
|
||||
=hx-target "find .loading"
|
||||
=hx-swap "outerHTML"
|
||||
=head "close"
|
||||
@ -152,7 +152,7 @@
|
||||
==
|
||||
++ new-tab
|
||||
;button.loader.b2.p2.tc.br1.hover.wfc.s-1
|
||||
=hx-post "/neo/hawk/sky?stud=sky-diff"
|
||||
=hx-post "/neo/hawk/{<our.bowl>}/sky?stud=sky-diff"
|
||||
=hx-target "find .loading"
|
||||
=hx-swap "outerHTML"
|
||||
=type "button"
|
||||
|
14
pkg/arvo/neo/cod/std/src/con/tang-htmx.hoon
Normal file
14
pkg/arvo/neo/cod/std/src/con/tang-htmx.hoon
Normal file
@ -0,0 +1,14 @@
|
||||
/@ htmx
|
||||
:- [%tang %$ %htmx]
|
||||
|= tan=tang
|
||||
|= =bowl:neo
|
||||
=/ =wall (zing (turn tan |=(t=tank (~(win re t) [0 80]))))
|
||||
=/ =tape (zing (join "\0a" wall))
|
||||
;textarea#input.wf.p2.pre.mono.grow
|
||||
=name "text"
|
||||
=placeholder "code"
|
||||
=spellcheck "false"
|
||||
=value tape
|
||||
=oninput "this.setAttribute('value', this.value);"
|
||||
; {tape}
|
||||
==
|
7
pkg/arvo/neo/cod/std/src/con/vase-htmx.hoon
Normal file
7
pkg/arvo/neo/cod/std/src/con/vase-htmx.hoon
Normal file
@ -0,0 +1,7 @@
|
||||
:- [%vase %$ %htmx]
|
||||
|= vax=vase
|
||||
|= =bowl:neo
|
||||
;div.pre.mono.p2
|
||||
;+
|
||||
;/ (of-wall:format (~(win re (sell vax)) 0 80))
|
||||
==
|
108
pkg/arvo/neo/cod/std/src/imp/accel-conf.hoon
Normal file
108
pkg/arvo/neo/cod/std/src/imp/accel-conf.hoon
Normal file
@ -0,0 +1,108 @@
|
||||
/@ accel-conf
|
||||
=>
|
||||
|%
|
||||
++ card card:neo
|
||||
++ build
|
||||
|= [=bowl:neo conf=accel-conf]
|
||||
^- (quip card pail:neo)
|
||||
:_ accel-conf/!>(conf)
|
||||
=/ =term
|
||||
`@tas`(cat 3 'accel-' (scot %t (spat (pout (snip here.bowl)))))
|
||||
=/ =pith:neo
|
||||
#/[p/our.bowl]/cod/std/out/imp/[term]
|
||||
=; =vase
|
||||
[pith %make %ford-riff `vase/vase ~]^~
|
||||
=- !>(-)
|
||||
=> [..zuse neo=neo og=bowl conf=conf]
|
||||
=>
|
||||
|%
|
||||
++ lift-lore
|
||||
|= =lore:neo
|
||||
^- vase
|
||||
q.pail:(~(got of:neo lore) ~)
|
||||
::
|
||||
++ get-prelude
|
||||
|= =bowl:neo
|
||||
^- vase
|
||||
%+ with-faces:ford:neo (slop !>(neo) !>(..zuse))
|
||||
:- bowl/!>(bowl)
|
||||
%+ turn ~(tap by deps.bowl)
|
||||
|= [=term =pith:neo =lore:neo]
|
||||
^- [^term vase]
|
||||
[term (lift-lore lore)]
|
||||
::
|
||||
++ produce
|
||||
|= =bowl:neo
|
||||
^- pail:neo
|
||||
=/ res=(each vase tang)
|
||||
(mule |.((slap (get-prelude bowl) (ream hoon.conf))))
|
||||
?: ?=(%& -.res)
|
||||
vase/p.res
|
||||
tang/!>(p.res)
|
||||
--
|
||||
^- kook:neo
|
||||
|%
|
||||
++ state any/~
|
||||
++ poke (sy %rely ~)
|
||||
++ kids *kids:neo
|
||||
++ deps
|
||||
%- ~(gas by *band:neo)
|
||||
%+ turn ~(tap in ~(key by crew.conf))
|
||||
|= =term
|
||||
^- [_term fief:neo]
|
||||
[term req=& [any/~ ~] ~]
|
||||
++ form
|
||||
^- form:neo
|
||||
|_ [=bowl:neo =aeon:neo =pail:neo]
|
||||
++ poke
|
||||
|= [=stud:neo vax=vase]
|
||||
^- (quip card:neo pail:neo)
|
||||
=/ new=pail:neo (produce bowl)
|
||||
?: =(new pail)
|
||||
`pail
|
||||
:_ pail
|
||||
%+ turn ~(tap by poke.conf)
|
||||
|= [=pith:neo =stud:neo]
|
||||
[pith %poke [stud q.pail]]
|
||||
::
|
||||
++ init
|
||||
|= pal=(unit pail:neo)
|
||||
`(produce bowl)
|
||||
--
|
||||
--
|
||||
--
|
||||
^- kook:neo
|
||||
|%
|
||||
++ state pro/%accel-conf
|
||||
++ poke (sy %hoon %add-dep %del-dep %accel-conf %ack %add-poke %del-poke ~)
|
||||
++ kids *kids:neo
|
||||
++ deps *deps:neo
|
||||
++ form
|
||||
^- form:neo
|
||||
|_ [=bowl:neo =aeon:neo =pail:neo]
|
||||
+* sta !<(conf=accel-conf q.pail)
|
||||
++ poke
|
||||
|= [=stud:neo vax=vase]
|
||||
^- (quip card:neo pail:neo)
|
||||
=+ !<(conf=accel-conf q.pail)
|
||||
%- (slog leaf/"have {<stud>}," (sell vax) ~)
|
||||
=. conf
|
||||
?+ stud !!
|
||||
%hoon conf(ready |, hoon !<(@t vax))
|
||||
%add-dep conf(ready |, crew (~(put by crew.conf) !<([term pith] vax)))
|
||||
%del-dep conf(ready |, crew (~(del by crew.conf) !<(term vax)))
|
||||
%del-poke conf(ready |, poke (~(del by poke.conf) !<(pith:neo vax)))
|
||||
%add-poke conf(ready |, poke (~(put by poke.conf) !<([pith:neo stud:neo] vax)))
|
||||
%accel-conf !<(accel-conf vax)
|
||||
%ack conf(ready &)
|
||||
==
|
||||
?: ready.conf
|
||||
`accel-conf/!>(conf)
|
||||
(build bowl conf)
|
||||
++ init
|
||||
|= old=(unit pail:neo)
|
||||
^- (quip card:neo pail:neo)
|
||||
=+ !<(conf=accel-conf q:(need old))
|
||||
(build bowl conf)
|
||||
--
|
||||
--
|
@ -1,34 +1,58 @@
|
||||
/@ accel
|
||||
/@ accel-diff
|
||||
/@ accel-conf
|
||||
::
|
||||
=>
|
||||
|%
|
||||
+$ kind ?(%in %out %both)
|
||||
++ make-cells
|
||||
|= [=bowl:neo colstart=@ud colend=@ud rowstart=@ud rowend=@ud]
|
||||
|= [=bowl:neo colstart=@ud colend=@ud rowstart=@ud rowend=@ud =kind]
|
||||
^- (list card:neo)
|
||||
%- zing
|
||||
%+ turn (gulf colstart colend)
|
||||
|= col=@ud
|
||||
^- (list card:neo)
|
||||
%- zing
|
||||
%+ turn (gulf rowstart rowend)
|
||||
|= row=@ud
|
||||
[(welp here.bowl #/[ud/col]/[ud/row]) %make %accel-cell `accel-cell/!>(['~' ~ ~ ~ ~]) ~]
|
||||
^- (list card:neo)
|
||||
(make-cell bowl row col *accel-conf kind)
|
||||
::
|
||||
++ make-cell
|
||||
|= [=bowl:neo row=@ud col=@ud conf=accel-conf =kind]
|
||||
^- (list card:neo)
|
||||
=/ =pith:neo (welp here.bowl #/[ud/col]/[ud/row])
|
||||
=/ =stud:neo
|
||||
`@tas`(cat 3 'accel-' (scot %t (spat (pout pith))))
|
||||
=; caz=(list card:neo)
|
||||
?- kind
|
||||
%in (snag 0 caz)^~
|
||||
%out (snag 1 caz)^~
|
||||
%both caz
|
||||
==
|
||||
:~ [`pith:neo`(snoc pith `@tas`%in) %make %accel-conf `accel-conf/!>(conf) ~]
|
||||
[`pith:neo`(snoc pith `@tas`%out) %make stud ~ crew.conf]
|
||||
==
|
||||
|
||||
--
|
||||
::
|
||||
^- kook:neo
|
||||
|%
|
||||
++ state pro/%accel
|
||||
++ poke (sy %accel-diff ~)
|
||||
++ poke (sy %accel-diff %gift ~)
|
||||
++ kids
|
||||
:- ~
|
||||
:- %y
|
||||
%- ~(gas by *lads:neo)
|
||||
:~ :- [|/%ud |/%ud |]
|
||||
[pro/%accel-cell (sy %sig ~)]
|
||||
:~ :- [|/%ud |/%ud &/%in |]
|
||||
[pro/%accel-conf ~]
|
||||
::
|
||||
:- [|/%ud |/%ud &/%out |]
|
||||
[any/~ ~]
|
||||
==
|
||||
++ deps *deps:neo
|
||||
++ form
|
||||
^- form:neo
|
||||
::|_ [=bowl:neo =ever:neo sta=vase *]
|
||||
|_ [=bowl:neo =aeon:neo =pail:neo]
|
||||
++ init
|
||||
|= old=(unit pail:neo)
|
||||
@ -36,44 +60,54 @@
|
||||
=/ width 10
|
||||
=/ height 10
|
||||
:_ accel/!>([width height])
|
||||
(make-cells bowl 1 width 1 height)
|
||||
(make-cells bowl 1 width 1 height %in)
|
||||
::
|
||||
++ poke
|
||||
|= [=stud:neo vax=vase]
|
||||
^- (quip card:neo pail:neo)
|
||||
?> =(%accel-diff stud)
|
||||
=/ state !<(accel q.pail)
|
||||
=/ poke !<(accel-diff vax)
|
||||
?> =(our ship.src):bowl
|
||||
?- -.poke
|
||||
%inc-width
|
||||
=/ new (add 1 width.state)
|
||||
:_ accel/!>([new height.state])
|
||||
(make-cells bowl new new 1 height.state)
|
||||
::
|
||||
%inc-height
|
||||
=/ new (add 1 height.state)
|
||||
:_ accel/!>([width.state new])
|
||||
(make-cells bowl 1 width.state new new)
|
||||
::
|
||||
%new
|
||||
:_ accel/q.pail
|
||||
=; conf
|
||||
:~ :- (welp here.bowl ~[[ud/row.poke] [ud/column.poke]])
|
||||
:* %make
|
||||
%accel-cell
|
||||
`accel-cell/!>([text.poke ~ refa.poke refb.poke target.poke])
|
||||
conf
|
||||
==
|
||||
==
|
||||
:: there has to be a more elegant way to do this
|
||||
?~ refa.poke
|
||||
?~ refb.poke
|
||||
~
|
||||
(malt ~[[%b u.refb.poke]])
|
||||
?~ refb.poke
|
||||
(malt ~[[%a u.refa.poke]])
|
||||
(malt `(list [term pith])`~[[%a u.refa.poke] [%b u.refb.poke]])
|
||||
==
|
||||
|^ ^- (quip card:neo pail:neo)
|
||||
=^ cards=(list card:neo) state
|
||||
?+ stud !!
|
||||
%accel-diff (on-diff !<(accel-diff vax))
|
||||
%gift (on-gift !<(gift:neo vax))
|
||||
==
|
||||
[cards accel/!>(state)]
|
||||
++ on-diff
|
||||
|= poke=accel-diff
|
||||
?> =(our ship.src):bowl
|
||||
?+ -.poke !!
|
||||
%inc-width
|
||||
=/ new (add 1 width.state)
|
||||
=. width.state +(width.state)
|
||||
:_ state
|
||||
=, state
|
||||
(make-cells bowl width width 1 height %in)
|
||||
::
|
||||
%inc-height
|
||||
=/ new (add 1 height.state)
|
||||
=. height.state +(height.state)
|
||||
:_ state
|
||||
=, state
|
||||
(make-cells bowl 1 width new new %in)
|
||||
==
|
||||
++ on-gift
|
||||
|= =gift:neo
|
||||
^- (quip card:neo _state)
|
||||
:_ state
|
||||
=/ changes ~(tap by ~(tar of:neo gift))
|
||||
%- zing
|
||||
%+ turn changes
|
||||
|= [=road:neo =loot:neo]
|
||||
^- (list card:neo)
|
||||
?. ?=([[%ud col=@] [%ud row=@ud] %in ~] road)
|
||||
~
|
||||
?. (~(has of:neo kids.bowl) road)
|
||||
~
|
||||
=+ !<(conf=accel-conf q.pail:(~(got of:neo kids.bowl) road))
|
||||
?. ready.conf
|
||||
~
|
||||
(make-cell bowl row.road col.road conf %out)
|
||||
--
|
||||
--
|
||||
--
|
||||
|
@ -2,9 +2,9 @@
|
||||
/@ diff=circle-diff
|
||||
^- kook:neo
|
||||
|%
|
||||
++ state pro/%sig
|
||||
++ state pro/%circle
|
||||
++ poke (sy %circle-diff ~)
|
||||
++ kids
|
||||
++ kids
|
||||
:+ ~ %y
|
||||
%- ~(gas by *lads:neo)
|
||||
:~ [[|/%p |] pro/%sig ~]
|
||||
@ -19,7 +19,7 @@
|
||||
=+ !<(=diff vax)
|
||||
:_ pail
|
||||
?- -.diff
|
||||
%add
|
||||
%add
|
||||
%+ turn ~(tap by p.diff)
|
||||
|= [=ship =made:neo]
|
||||
[(snoc here.bowl p/ship) %make made]
|
||||
@ -31,6 +31,6 @@
|
||||
==
|
||||
++ init
|
||||
|= pal=(unit pail:neo)
|
||||
`sig/!>(~)
|
||||
`circle/!>(~)
|
||||
--
|
||||
--
|
||||
|
@ -1,5 +1,16 @@
|
||||
/@ folder
|
||||
/@ folder-diff
|
||||
=>
|
||||
|%
|
||||
++ default-pails
|
||||
%- malt
|
||||
^- (list [stud:neo pail:neo])
|
||||
:~
|
||||
[%iframe iframe/!>('')]
|
||||
[%txt txt/!>('')]
|
||||
[%sail sail/!>(['' '' ~])]
|
||||
==
|
||||
--
|
||||
^- kook:neo
|
||||
|%
|
||||
++ state pro/%folder
|
||||
@ -26,7 +37,7 @@
|
||||
?- -.poke
|
||||
%make
|
||||
:_ folder/!>([name.poke this])
|
||||
:~ [(snoc here.bowl name.poke) %make stud.poke ~ ~]
|
||||
:~ [(snoc here.bowl name.poke) %make stud.poke (~(get by default-pails) stud.poke) ~]
|
||||
==
|
||||
::
|
||||
%tomb
|
||||
|
@ -1,174 +1,189 @@
|
||||
/@ htmx
|
||||
/@ htmx-type=htmx
|
||||
/- feather-icons
|
||||
/- serv=server
|
||||
/- serv=sky-server
|
||||
/> htmx
|
||||
/< node
|
||||
=>
|
||||
|%
|
||||
++ main
|
||||
^- curb:neo
|
||||
[%or rol/[%ui-main pro/%htmx] pro/%htmx ~]
|
||||
:: rol/[%ui-main pro/%htmx]
|
||||
++ kids-curb
|
||||
^- curb:neo
|
||||
any/~
|
||||
:: rol/[%ui-list pro/%htmx]
|
||||
++ manx-to-octs
|
||||
|= man=manx
|
||||
(as-octt:mimes:html (en-xml:html man))
|
||||
::
|
||||
++ render
|
||||
|= [main=manx kids=marl]
|
||||
;div
|
||||
;+ main
|
||||
|%
|
||||
++ manx-to-octs
|
||||
|= man=manx
|
||||
(as-octt:mimes:html (en-xml:html man))
|
||||
++ eyre-cards
|
||||
|= [eyre-id=@ta =bowl:neo status=@ud =manx]
|
||||
^- (list card:neo)
|
||||
=/ =pith:neo #/[p/our.bowl]/$/eyre
|
||||
=/ head=sign:eyre:neo [eyre-id %head [status [['content-type' 'text/html'] ~]]]
|
||||
=/ data=sign:eyre:neo [eyre-id %data `(manx-to-octs manx)]
|
||||
=/ done=sign:eyre:neo [eyre-id %done ~]
|
||||
:~ [pith %poke eyre-sign/!>(head)]
|
||||
[pith %poke eyre-sign/!>(data)]
|
||||
[pith %poke eyre-sign/!>(done)]
|
||||
[here.bowl %cull ~]
|
||||
==
|
||||
++ default-refresher
|
||||
|= =pith
|
||||
=/ tath (en-tape:pith:neo pith)
|
||||
;div
|
||||
=hx-get "/neo/hawk{tath}"
|
||||
=hx-target "closest .hawk"
|
||||
=hx-select ".hawk"
|
||||
=hx-trigger "load once"
|
||||
=hx-swap "outerHTML"
|
||||
;
|
||||
==
|
||||
++ hawk
|
||||
|_ [here=pith main=manx raw=manx has-app=?]
|
||||
++ id *@da
|
||||
++ our-tape
|
||||
=/ f (snag 0 here)
|
||||
?@(f (trip f) (scow f))
|
||||
++ idt `tape`(zing (scan +:(scow %da id) (most dot (star ;~(less dot prn)))))
|
||||
++ slot 0 :: XX fix sky positional saving
|
||||
++ lift
|
||||
^- manx
|
||||
;div.hawk.fc.wf.hf
|
||||
=id "hawk-{idt}"
|
||||
=hx-params "id,slot"
|
||||
=hx-vals "\{\"id\": \"{<id>}\", \"slot\": \"{<slot>}\"}"
|
||||
;+ header
|
||||
;div
|
||||
;* kids
|
||||
=class "raw p-page wf hf b0 scroll-y scroll-x {(trip ?:(has-app 'hidden' ''))}"
|
||||
;+ raw
|
||||
==
|
||||
;div
|
||||
=class "rendered wf hf b0 scroll-y scroll-x {(trip ?:(has-app '' 'hidden'))}"
|
||||
=id "hawk-rendered-{idt}"
|
||||
=morph-retain "class"
|
||||
;+ main
|
||||
==
|
||||
==
|
||||
++ hawk
|
||||
|_ [here=pith main=manx raw=manx]
|
||||
++ id *@da
|
||||
++ idt `tape`(zing (scan +:(scow %da id) (most dot (star ;~(less dot prn)))))
|
||||
++ has-app %.y :: XX : switch on it. make it real. etc
|
||||
++ lift
|
||||
;div.hawk.fc.wf.hf
|
||||
=id "hawk-{idt}"
|
||||
=hx-params "id,slot"
|
||||
=hx-vals "\{\"id\": \"{<id>}\", \"slot\": \"{<0>}\"}"
|
||||
;+ header
|
||||
::;+ raw
|
||||
;div
|
||||
=class "rendered wf hf b0 scroll-y scroll-x {(trip ?:(has-app '' 'hidden'))}"
|
||||
=id "hawk-rendered-{idt}"
|
||||
=morph-retain "class"
|
||||
;+ main
|
||||
==
|
||||
++ header
|
||||
;header.b2.p1.frw.g1.ac
|
||||
=id "hawk-header-{idt}"
|
||||
=style "border: 2px solid var(--b2);"
|
||||
;button
|
||||
=class "p1 hover b2 br1 bd0 {(trip ?:(has-app '' 'toggled'))}"
|
||||
=onclick
|
||||
"""
|
||||
$(this).toggleClass('toggled');
|
||||
$(this).closest('.hawk').find('.raw').toggleClass('hidden');
|
||||
$(this).closest('.hawk').find('.rendered').toggleClass('hidden');
|
||||
$(this).closest('header').children('.hawk-tog').toggleClass('hidden');
|
||||
"""
|
||||
;+ outline:feather-icons
|
||||
==
|
||||
++ header
|
||||
;header.b2.p1.frw.g1.ac
|
||||
=id "hawk-header-{idt}"
|
||||
=style "border: 2px solid var(--b2);"
|
||||
;button
|
||||
=class "p1 hover b2 br1 bd0 {(trip ?:(has-app '' 'toggled'))}"
|
||||
=onclick
|
||||
"""
|
||||
$(this).toggleClass('toggled');
|
||||
$(this).closest('.hawk').find('.raw').toggleClass('hidden');
|
||||
$(this).closest('.hawk').find('.rendered').toggleClass('hidden');
|
||||
$(this).closest('header').children('.hawk-tog').toggleClass('hidden');
|
||||
"""
|
||||
;+ outline:feather-icons
|
||||
==
|
||||
;div
|
||||
=class "hawk-tog frw g1 ac grow {(trip ?:(has-app '' 'hidden'))}"
|
||||
;*
|
||||
=< p
|
||||
%^ spin here
|
||||
0
|
||||
|= [=iota a=@]
|
||||
:_ +(a)
|
||||
;div.fr.ac.g1
|
||||
;div
|
||||
=class "hawk-tog frw g1 ac grow {(trip ?:(has-app '' 'hidden'))}"
|
||||
;*
|
||||
=< p
|
||||
%^ spin here
|
||||
0
|
||||
|= [=iota a=@]
|
||||
:_ +(a)
|
||||
;div.fr.ac.g1
|
||||
=style "height: 2rem;"
|
||||
;div.f4.s-1: >
|
||||
;a.hover.b2.br1.p-1.s0.loader.fc.ac.jc
|
||||
=style "height: 2rem;"
|
||||
;div.f4.s-1: >
|
||||
;a.hover.b2.br1.p-1.s0.loader.fc.ac.jc
|
||||
=style "height: 2rem;"
|
||||
=hx-vals "\{\"id\": \"{<id>}\", \"slot\": \"{<slot>}\"}"
|
||||
=href "/neo/hawk{(en-tape:pith:neo (scag +(a) here))}"
|
||||
;span.loaded
|
||||
;+ ;/
|
||||
?: =(a 0) "/"
|
||||
(trip ?@(iota iota (scot iota)))
|
||||
==
|
||||
;span.loading
|
||||
;+ loading.feather-icons
|
||||
==
|
||||
=hx-vals "\{\"id\": \"{<id>}\", \"slot\": \"{<slot>}\"}"
|
||||
=href "/neo/hawk{(en-tape:pith:neo (scag +(a) here))}"
|
||||
;span.loaded
|
||||
;+ ;/
|
||||
?: =(a 0) "/"
|
||||
(trip ?@(iota iota (scot iota)))
|
||||
==
|
||||
==
|
||||
;div.grow;
|
||||
==
|
||||
;form
|
||||
=class "hawk-tog grow fr m0 relative {(trip ?:(has-app 'hidden' ''))}"
|
||||
=style "height: 2rem;"
|
||||
=hx-get "/neo/hawk"
|
||||
=hx-target "closest .hawk"
|
||||
;div.absolute
|
||||
=style "top: 0.5rem; right: 0.5rem;"
|
||||
;div.loader
|
||||
;div.loaded(style "opacity: 0"): ---
|
||||
;div.loading
|
||||
;+ loading:feather-icons
|
||||
;span.loading
|
||||
;+ loading.feather-icons
|
||||
==
|
||||
==
|
||||
==
|
||||
;input.p-1.br1.b1.wf.s0.loaded.grow.bd0
|
||||
=style "margin-left: 5px;"
|
||||
=type "text"
|
||||
=value (en-tape:pith:neo here)
|
||||
=oninput
|
||||
"""
|
||||
$(this).attr('value', this.value);
|
||||
$(this).parent().attr('hx-get', '/neo/hawk'+this.value);
|
||||
htmx.process(document.body);
|
||||
"""
|
||||
;
|
||||
;div.grow;
|
||||
==
|
||||
;form
|
||||
=class "hawk-tog grow fr m0 relative {(trip ?:(has-app 'hidden' ''))}"
|
||||
=style "height: 2rem;"
|
||||
=hx-get "/neo/hawk"
|
||||
=hx-target "closest .hawk"
|
||||
;div.absolute
|
||||
=style "top: 0.5rem; right: 0.5rem;"
|
||||
;div.loader
|
||||
;div.loaded(style "opacity: 0"): ---
|
||||
;div.loading
|
||||
;+ loading:feather-icons
|
||||
==
|
||||
==
|
||||
==
|
||||
;div.fr.ac.jc.g1.hawk-actions
|
||||
=id "hawk-actions-{idt}"
|
||||
;button.p1.hover.b2.br1.loader.s-1
|
||||
=id "hawk-slide-up-{idt}"
|
||||
=hx-post "/neo/hawk/sky?stud=sky-diff"
|
||||
=hx-target "find .loading"
|
||||
=hx-swap "outerHTML"
|
||||
=head "slide-up"
|
||||
=hawk-slot "{<slot>}"
|
||||
;span.loaded
|
||||
;+ chevron-left:feather-icons
|
||||
==
|
||||
;span.loading
|
||||
;+ loading.feather-icons
|
||||
==
|
||||
==
|
||||
;button.p1.hover.b2.br1.loader.s-1
|
||||
=id "hawk-slide-down-{idt}"
|
||||
=hx-post "/neo/hawk/sky?stud=sky-diff"
|
||||
=hx-target "find .loading"
|
||||
=hx-swap "outerHTML"
|
||||
=head "slide-down"
|
||||
=hawk-slot "{<slot>}"
|
||||
;span.loaded
|
||||
;+ chevron-right:feather-icons
|
||||
==
|
||||
;span.loading
|
||||
;+ loading.feather-icons
|
||||
==
|
||||
==
|
||||
;button.p1.hover.b2.br1.loader.s-1
|
||||
=id "hawk-close-{idt}"
|
||||
=hx-post "/neo/hawk/sky?stud=sky-diff"
|
||||
=hx-target "find .loading"
|
||||
=hx-swap "outerHTML"
|
||||
=head "minimize"
|
||||
=hawk-slot "{<slot>}"
|
||||
;span.loaded
|
||||
;+ minimize:feather-icons
|
||||
==
|
||||
;span.loading
|
||||
;+ loading.feather-icons
|
||||
==
|
||||
==
|
||||
;style
|
||||
;+ ;/ %- trip
|
||||
'''
|
||||
@media(max-width: 900px) {
|
||||
.hawk-actions {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
'''
|
||||
==
|
||||
;input.p-1.br1.b1.wf.s0.loaded.grow.bd0
|
||||
=style "margin-left: 5px;"
|
||||
=type "text"
|
||||
=value (en-tape:pith:neo here)
|
||||
=oninput
|
||||
"""
|
||||
$(this).attr('value', this.value);
|
||||
$(this).parent().attr('hx-get', '/neo/hawk'+this.value);
|
||||
htmx.process(document.body);
|
||||
"""
|
||||
;
|
||||
==
|
||||
==
|
||||
--
|
||||
;div.fr.ac.jc.g1.hawk-actions
|
||||
=id "hawk-actions-{idt}"
|
||||
;button.p1.hover.b2.br1.loader.s-1
|
||||
=id "hawk-slide-up-{idt}"
|
||||
=hx-post "/neo/hawk/{our-tape}/sky?stud=sky-diff"
|
||||
=hx-target "find .loading"
|
||||
=hx-swap "outerHTML"
|
||||
=head "slide-up"
|
||||
=hawk-slot "{<slot>}"
|
||||
;span.loaded
|
||||
;+ chevron-left:feather-icons
|
||||
==
|
||||
;span.loading
|
||||
;+ loading.feather-icons
|
||||
==
|
||||
==
|
||||
;button.p1.hover.b2.br1.loader.s-1
|
||||
=id "hawk-slide-down-{idt}"
|
||||
=hx-post "/neo/hawk/{our-tape}/sky?stud=sky-diff"
|
||||
=hx-target "find .loading"
|
||||
=hx-swap "outerHTML"
|
||||
=head "slide-down"
|
||||
=hawk-slot "{<slot>}"
|
||||
;span.loaded
|
||||
;+ chevron-right:feather-icons
|
||||
==
|
||||
;span.loading
|
||||
;+ loading.feather-icons
|
||||
==
|
||||
==
|
||||
;button.p1.hover.b2.br1.loader.s-1
|
||||
=id "hawk-close-{idt}"
|
||||
=hx-post "/neo/hawk/{our-tape}/sky?stud=sky-diff"
|
||||
=hx-target "find .loading"
|
||||
=hx-swap "outerHTML"
|
||||
=head "minimize"
|
||||
=hawk-slot "{<slot>}"
|
||||
;span.loaded
|
||||
;+ minimize:feather-icons
|
||||
==
|
||||
;span.loading
|
||||
;+ loading.feather-icons
|
||||
==
|
||||
==
|
||||
;style
|
||||
;+ ;/ %- trip
|
||||
'''
|
||||
@media(max-width: 900px) {
|
||||
.hawk-actions {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
'''
|
||||
==
|
||||
==
|
||||
==
|
||||
--
|
||||
--
|
||||
^- kook:neo
|
||||
|%
|
||||
++ state pro/%eyre-task
|
||||
@ -183,12 +198,12 @@
|
||||
^- fief:neo
|
||||
:- req=|
|
||||
^- quay:neo
|
||||
:- [main ~]
|
||||
:- [[%or rol/[%ui-main pro/%htmx] pro/%htmx ~] ~]
|
||||
^- (unit port:neo)
|
||||
:+ ~ %y
|
||||
%- ~(gas by *lads:neo)
|
||||
:~ :- &
|
||||
`lash:neo`[kids-curb ~]
|
||||
`lash:neo`[[%or pro/%htmx any/~ ~] ~]
|
||||
==
|
||||
==
|
||||
::
|
||||
@ -200,33 +215,99 @@
|
||||
`pail
|
||||
++ init
|
||||
|= pal=(unit pail:neo)
|
||||
^- (quip card:neo pail:neo)
|
||||
=/ [=stud:neo =vase] (need pal)
|
||||
=+ !<([eyre-id=@ta req=inbound-request:eyre] vase)
|
||||
:_ [stud vase]
|
||||
=/ =pith:neo #/[p/our.bowl]/$/eyre
|
||||
=; =manx
|
||||
=/ head=sign:eyre:neo [eyre-id %head [200 [['content-type' 'text/html'] ~]]]
|
||||
=/ data=sign:eyre:neo [eyre-id %data `(manx-to-octs manx)]
|
||||
=/ done=sign:eyre:neo [eyre-id %done ~]
|
||||
:~ [pith %poke eyre-sign/!>(head)]
|
||||
[pith %poke eyre-sign/!>(data)]
|
||||
[pith %poke eyre-sign/!>(done)]
|
||||
[here.bowl %cull ~]
|
||||
==
|
||||
::XX revive when auth
|
||||
::?. authenticated.req
|
||||
:: %: eyre-cards
|
||||
:: eyre-id
|
||||
:: bowl
|
||||
:: 403
|
||||
:: ;div: 403
|
||||
:: ==
|
||||
?~ src=(~(get by deps.bowl) %src)
|
||||
;div: 404
|
||||
=/ root=idea:neo (~(got of:neo q.u.src) /)
|
||||
?> =(%htmx p.pail.root)
|
||||
=/ bol *bowl:neo
|
||||
=. here.bol p.u.src
|
||||
=. our.bol our.bowl
|
||||
=. now.bol now.bowl
|
||||
=. eny.bol eny.bowl
|
||||
=. kids.bol q.u.src
|
||||
:: XX src.bowl
|
||||
=/ main (!<(htmx q.pail.root) bol)
|
||||
=/ raw *manx
|
||||
~(lift hawk here.bol main raw)
|
||||
=/ main=manx
|
||||
;div.wf.hf.fc.jc.ac: nothing here
|
||||
=/ raw
|
||||
;div.wf.hf.fc.jc.ac: raw view
|
||||
%: eyre-cards
|
||||
eyre-id
|
||||
bowl
|
||||
200
|
||||
~(lift hawk #/[p/our.bowl] main raw |)
|
||||
==
|
||||
=/ here p.u.src
|
||||
^- (list card:neo)
|
||||
?+ method.request.req ~|(%unsupported-http-method !!)
|
||||
%'GET'
|
||||
=/ root=idea:neo (~(got of:neo q.u.src) /)
|
||||
?> =(%htmx p.pail.root)
|
||||
=/ bol *bowl:neo
|
||||
=. here.bol here
|
||||
=. our.bol our.bowl
|
||||
=. now.bol now.bowl
|
||||
=. eny.bol eny.bowl
|
||||
=. kids.bol q.u.src
|
||||
:: XX src.bowl
|
||||
=/ main (!<(htmx-type q.pail.root) bol)
|
||||
=/ raw
|
||||
;div.wf.hf.fc.jc.ac: raw view
|
||||
%: eyre-cards
|
||||
eyre-id
|
||||
bowl
|
||||
200
|
||||
~(lift hawk here.bol main raw &)
|
||||
==
|
||||
::
|
||||
%'POST'
|
||||
=/ purl (parse-url:serv request.req)
|
||||
=/ body (parse-body:serv request.req)
|
||||
=/ poke-stud
|
||||
^- stud:neo
|
||||
~| %no-stud-specified
|
||||
(~(got by pam.purl) 'stud')
|
||||
=/ mul (mule |.((node [poke-stud body])))
|
||||
?- -.mul
|
||||
%.n
|
||||
%: eyre-cards
|
||||
eyre-id
|
||||
bowl
|
||||
400
|
||||
;div
|
||||
;*
|
||||
%+ turn (tang p.mul)
|
||||
|= =tank
|
||||
;div: {(of-wall:format (~(win re tank) 0 55))}
|
||||
==
|
||||
==
|
||||
::
|
||||
%.y
|
||||
=/ =pail:neo [poke-stud p.mul]
|
||||
=/ bol *bowl:neo
|
||||
=. here.bol here
|
||||
=. our.bol our.bowl
|
||||
=. now.bol now.bowl
|
||||
=. eny.bol eny.bowl
|
||||
=/ =manx
|
||||
?~ converter=(mole |.((htmx pail)))
|
||||
(default-refresher here)
|
||||
=/ mul
|
||||
%- mule
|
||||
|.((u.converter bol))
|
||||
?- -.mul
|
||||
%.y p.mul
|
||||
%.n ;div: error
|
||||
==
|
||||
:- [here %poke pail]
|
||||
%: eyre-cards
|
||||
eyre-id
|
||||
bowl
|
||||
200
|
||||
manx
|
||||
==
|
||||
==
|
||||
==
|
||||
--
|
||||
--
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
/@ eyre-reqs
|
||||
/- serv=server
|
||||
/- serv=sky-server
|
||||
^- kook:neo
|
||||
|%
|
||||
++ state pro/%eyre-reqs
|
||||
++ state pro/%sig
|
||||
++ poke (sy %eyre-task ~)
|
||||
++ kids
|
||||
:+ ~ %y
|
||||
@ -21,25 +21,12 @@
|
||||
%eyre-task
|
||||
=+ !<(=task:eyre:neo vax)
|
||||
=/ [eyre-id=@ta req=inbound-request:eyre] task
|
||||
=/ lin (parse-request-line:serv url.request.req)
|
||||
=/ inner=pith:neo (pave:neo (slag 2 site.lin))
|
||||
?. ?=([[%p @] *] inner)
|
||||
=/ =manx
|
||||
;div: 400
|
||||
=/ =pith:neo #/[p/our.bowl]/$/eyre
|
||||
=/ head=sign:eyre:neo [eyre-id %head [200 [['content-type' 'text/html'] ~]]]
|
||||
=/ data=sign:eyre:neo [eyre-id %data `(manx-to-octs:serv manx)]
|
||||
=/ done=sign:eyre:neo [eyre-id %done ~]
|
||||
:_ sig/!>(~)
|
||||
:~ [pith %poke eyre-sign/!>(head)]
|
||||
[pith %poke eyre-sign/!>(data)]
|
||||
[pith %poke eyre-sign/!>(done)]
|
||||
[here.bowl %cull ~]
|
||||
==
|
||||
=/ args (~(gas by *(map @t @t)) args.lin)
|
||||
=/ purl (parse-url:serv request.req)
|
||||
=/ inner=pith:neo (pave:neo pax.purl)
|
||||
=/ =crew:neo (~(gas by *crew:neo) src/inner ~)
|
||||
=/ =made:neo [%hawk-eyre-handler `[stud vax] crew]
|
||||
:_ sig/!>(~)
|
||||
:~ [(welp here.bowl #/[uv/eny.bowl]) %make %hawk-eyre-handler `[stud vax] crew]
|
||||
:~ [(welp here.bowl #/[uv/eny.bowl]) %make made]
|
||||
==
|
||||
==
|
||||
++ init
|
||||
@ -52,4 +39,3 @@
|
||||
==
|
||||
--
|
||||
--
|
||||
|
||||
|
@ -16,7 +16,6 @@
|
||||
[#/[p/our.bowl]/home/tasks %make %task `task/!>(['' | ~]) ~]
|
||||
[#/[p/our.bowl]/home/sail %make %sail `sail/!>(['' 'prose p3' ~]) ~]
|
||||
[#/[p/our.bowl]/home/accel %make %accel ~ ~]
|
||||
[#/[p/our.bowl]/home/iframes/wiki %make %iframe `iframe/!>('https://docs.urbit.org') ~]
|
||||
[#/[p/our.bowl]/home/circle %make %circle ~ ~]
|
||||
[#/[p/our.bowl]/home/files %make %folder ~ ~]
|
||||
[#/[p/our.bowl]/home/planner %make %planner ~ ~]
|
||||
|
@ -1,9 +1,6 @@
|
||||
/@ htmx
|
||||
/- serv=server
|
||||
/- feather-icons
|
||||
/* date-now
|
||||
/* atom-input
|
||||
/* multiline-input
|
||||
/* a-i-r
|
||||
/* feather
|
||||
/* reset
|
||||
@ -12,245 +9,245 @@
|
||||
/* htmx-js
|
||||
/* htmx-response-targets
|
||||
/* htmx-idiomorph
|
||||
=>
|
||||
=<
|
||||
^- kook:neo
|
||||
|%
|
||||
++ main
|
||||
^- curb:neo
|
||||
[%or rol/[%ui-main pro/%htmx] pro/%htmx ~]
|
||||
:: rol/[%ui-main pro/%htmx]
|
||||
++ kids-curb
|
||||
^- curb:neo
|
||||
any/~
|
||||
:: rol/[%ui-list pro/%htmx]
|
||||
++ manx-to-octs
|
||||
|= man=manx
|
||||
%- as-octt:mimes:html
|
||||
%+ welp "<!DOCTYPE html>"
|
||||
(en-xml:html man)
|
||||
++ state pro/%eyre-task
|
||||
++ poke *(set stud:neo)
|
||||
++ kids
|
||||
:+ ~ %y
|
||||
%- ~(gas by *lads:neo)
|
||||
~
|
||||
++ deps
|
||||
%- ~(gas by *band:neo)
|
||||
:~ :- %src
|
||||
^- fief:neo
|
||||
:- req=|
|
||||
^- quay:neo
|
||||
:- [pro/%htmx ~]
|
||||
^- (unit port:neo)
|
||||
:+ ~ %y
|
||||
%- ~(gas by *lads:neo)
|
||||
:~ :- &
|
||||
`lash:neo`[any/~ ~]
|
||||
==
|
||||
==
|
||||
::
|
||||
++ render
|
||||
|= [main=manx kids=marl]
|
||||
;div
|
||||
;+ main
|
||||
;div
|
||||
;* kids
|
||||
==
|
||||
==
|
||||
++ icon-url
|
||||
^~
|
||||
%- trip
|
||||
%^ cat
|
||||
3
|
||||
'data:image/png;base64,'
|
||||
%- ~(en base64:mimes:html & |)
|
||||
(as-octs:mimes:html hawk-icon)
|
||||
++ favicon
|
||||
^~
|
||||
=; m m(a.g [[%href icon-url] a.g.m])
|
||||
^- manx
|
||||
;link
|
||||
=rel "icon"
|
||||
=type "image/png"
|
||||
;
|
||||
==
|
||||
++ manifest-url
|
||||
^~
|
||||
%- trip
|
||||
%^ cat
|
||||
3
|
||||
'data:application/json;utf-8,'
|
||||
%- en:json:html
|
||||
%- pairs:enjs:format
|
||||
:~
|
||||
['name' s+'sky']
|
||||
['description' s+'an urbit namespace viewer']
|
||||
['start_url' s+'http://localhost/neo/sky'] :: XX
|
||||
['display' s+'standalone']
|
||||
['background_color' s+'black']
|
||||
:+ 'icons' %a
|
||||
:~
|
||||
%- pairs:enjs:format
|
||||
:~
|
||||
['src' s+(crip icon-url)]
|
||||
['sizes' s+'196x196']
|
||||
['type' s+'image/png']
|
||||
++ form
|
||||
|_ [=bowl:neo =aeon:neo =pail:neo]
|
||||
++ poke
|
||||
|= [=stud:neo vax=vase]
|
||||
^- (quip card:neo pail:neo)
|
||||
`pail
|
||||
++ init
|
||||
|= pal=(unit pail:neo)
|
||||
=/ [=stud:neo =vase] (need pal)
|
||||
=+ !<([eyre-id=@ta req=inbound-request:eyre] vase)
|
||||
:_ [stud vase]
|
||||
=/ =pith:neo #/[p/our.bowl]/$/eyre
|
||||
=; =manx
|
||||
=/ head=sign:eyre:neo [eyre-id %head [200 [['content-type' 'text/html'] ~]]]
|
||||
=/ data=sign:eyre:neo [eyre-id %data `(manx-to-octs manx)]
|
||||
=/ done=sign:eyre:neo [eyre-id %done ~]
|
||||
:~ [pith %poke eyre-sign/!>(head)]
|
||||
[pith %poke eyre-sign/!>(data)]
|
||||
[pith %poke eyre-sign/!>(done)]
|
||||
[here.bowl %cull ~]
|
||||
==
|
||||
==
|
||||
==
|
||||
++ manifest
|
||||
^~
|
||||
=; m m(a.g [[%href manifest-url] a.g.m])
|
||||
^- manx
|
||||
;link
|
||||
=rel "manifest"
|
||||
;
|
||||
==
|
||||
++ htmx-extensions
|
||||
:: htmx extension which encodes the request
|
||||
:: as the serialized HTML of the calling element
|
||||
%- trip
|
||||
'''
|
||||
htmx.defineExtension('html-enc', {
|
||||
onEvent: function (name, evt) {
|
||||
if (name === "htmx:configRequest") {
|
||||
evt.detail.headers['Content-Type'] = "text/html";
|
||||
}
|
||||
},
|
||||
encodeParameters : function(xhr, parameters, elt) {
|
||||
xhr.overrideMimeType('text/html');
|
||||
let xmls = new XMLSerializer();
|
||||
return (xmls.serializeToString(elt));
|
||||
}
|
||||
});
|
||||
Idiomorph.defaults.ignoreActive = true;
|
||||
Idiomorph.defaults.callbacks.beforeAttributeUpdated = (name, node, type) => {
|
||||
if (node.hasAttribute('morph-retain')) {
|
||||
let ribs = node.getAttribute('morph-retain').split(',').map(t => t.trim());
|
||||
if (ribs.includes(name)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Idiomorph.defaults.callbacks.beforeNodeMorphed = (oldNode, newNode) => {
|
||||
if (oldNode?.nodeName !== "#text") {
|
||||
if (oldNode.hasAttribute('morph-no-swap') && oldNode.id === newNode.id) {
|
||||
return false;
|
||||
}
|
||||
else if (
|
||||
newNode.hasAttribute('morph-if-class') &&
|
||||
!oldNode.classList.contains(newNode.getAttribute('morph-if-class'))
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
'''
|
||||
::
|
||||
++ lift
|
||||
|= in=manx
|
||||
^- manx
|
||||
;html
|
||||
;head
|
||||
;meta(charset "UTF-8");
|
||||
;title: s k y
|
||||
;script: {(trip jquery)}
|
||||
;script: {(trip htmx-js)}
|
||||
;script: {(trip htmx-response-targets)}
|
||||
;script: {(trip htmx-idiomorph)}
|
||||
;script: {htmx-extensions}
|
||||
;meta
|
||||
=name "viewport"
|
||||
=content
|
||||
"""
|
||||
width=device-width,
|
||||
initial-scale=1.0,
|
||||
maximum-scale=1.0
|
||||
"""
|
||||
;
|
||||
==
|
||||
;meta
|
||||
=name "htmx-config"
|
||||
=content (trip '{"ignoreTitle":"true"}')
|
||||
;
|
||||
==
|
||||
::;style
|
||||
:: ;+ ;/ %- trip
|
||||
:: '''
|
||||
:: @font-face {
|
||||
:: font-family: 'Urbit Sans';
|
||||
:: src: url("https://media.urbit.org/fonts/UrbitSans/UrbitSansVFWeb-Regular.woff2") format("woff2");
|
||||
:: font-style: normal;
|
||||
:: font-weight: 100 700;
|
||||
:: }
|
||||
:: '''
|
||||
::==
|
||||
;style: {(trip reset)}
|
||||
;style: {(trip feather)}
|
||||
;script
|
||||
;+ ;/
|
||||
"""
|
||||
window.log=function()\{if(this.console)\{console.log(Array.prototype.slice.call(arguments));}};
|
||||
jQuery.fn.log=function (msg)\{console.log(msg, this); return this;};
|
||||
jQuery.fn.emit=function (name)\{(this[0]).dispatchEvent(new Event(name, \{ bubbles: true, cancelable: true, composed: true })); return this;};
|
||||
"""
|
||||
==
|
||||
;script: {(trip a-i-r)}
|
||||
;+ favicon
|
||||
;+ manifest
|
||||
==
|
||||
;body
|
||||
=hx-ext "html-enc,response-targets,morph"
|
||||
=hx-swap "innerHTML"
|
||||
=hx-boost "true"
|
||||
=hx-history "false"
|
||||
=hx-replace-url "/neo/sky"
|
||||
=hx-target "closest .hawk"
|
||||
=style
|
||||
"""
|
||||
background-color: var(--b1);
|
||||
background-image: var(--sky-bg-url);
|
||||
background-size: var(--sky-bg-size);
|
||||
background-repeat: var(--sky-bg-repeat);
|
||||
"""
|
||||
;+ in
|
||||
==
|
||||
==
|
||||
?~ src=(~(get by deps.bowl) %src)
|
||||
;div: 404
|
||||
=/ root=idea:neo (~(got of:neo q.u.src) /)
|
||||
?> =(%htmx p.pail.root)
|
||||
=/ bol *bowl:neo
|
||||
=. here.bol p.u.src
|
||||
=. our.bol our.bowl
|
||||
=. now.bol now.bowl
|
||||
=. eny.bol eny.bowl
|
||||
=. kids.bol q.u.src
|
||||
:: XX src.bowl
|
||||
(lift (!<(htmx q.pail.root) bol))
|
||||
--
|
||||
--
|
||||
^- kook:neo
|
||||
|%
|
||||
++ state pro/%eyre-task
|
||||
++ poke *(set stud:neo)
|
||||
++ kids
|
||||
:+ ~ %y
|
||||
%- ~(gas by *lads:neo)
|
||||
~
|
||||
++ deps
|
||||
%- ~(gas by *band:neo)
|
||||
:~ :- %src
|
||||
^- fief:neo
|
||||
:- req=|
|
||||
^- quay:neo
|
||||
:- [main ~]
|
||||
^- (unit port:neo)
|
||||
:+ ~ %y
|
||||
%- ~(gas by *lads:neo)
|
||||
:~ :- &
|
||||
`lash:neo`[kids-curb ~]
|
||||
==
|
||||
==
|
||||
++ manx-to-octs
|
||||
|= man=manx
|
||||
%- as-octt:mimes:html
|
||||
%+ welp "<!DOCTYPE html>"
|
||||
(en-xml:html man)
|
||||
::
|
||||
++ form
|
||||
|_ [=bowl:neo =aeon:neo =pail:neo]
|
||||
++ poke
|
||||
|= [=stud:neo vax=vase]
|
||||
^- (quip card:neo pail:neo)
|
||||
`pail
|
||||
++ init
|
||||
|= pal=(unit pail:neo)
|
||||
=/ [=stud:neo =vase] (need pal)
|
||||
=+ !<([eyre-id=@ta req=inbound-request:eyre] vase)
|
||||
:_ [stud vase]
|
||||
=/ =pith:neo #/[p/our.bowl]/$/eyre
|
||||
=; =manx
|
||||
=/ head=sign:eyre:neo [eyre-id %head [200 [['content-type' 'text/html'] ~]]]
|
||||
=/ data=sign:eyre:neo [eyre-id %data `(manx-to-octs manx)]
|
||||
=/ done=sign:eyre:neo [eyre-id %done ~]
|
||||
:~ [pith %poke eyre-sign/!>(head)]
|
||||
[pith %poke eyre-sign/!>(data)]
|
||||
[pith %poke eyre-sign/!>(done)]
|
||||
[here.bowl %cull ~]
|
||||
++ icon-url
|
||||
^~
|
||||
%- trip
|
||||
%^ cat
|
||||
3
|
||||
'data:image/png;base64,'
|
||||
%- ~(en base64:mimes:html & |)
|
||||
(as-octs:mimes:html hawk-icon)
|
||||
++ favicon
|
||||
^~
|
||||
=; m m(a.g [[%href icon-url] a.g.m])
|
||||
^- manx
|
||||
;link
|
||||
=rel "icon"
|
||||
=type "image/png"
|
||||
;
|
||||
==
|
||||
++ manifest-url
|
||||
^~
|
||||
%- trip
|
||||
%^ cat
|
||||
3
|
||||
'data:application/json;utf-8,'
|
||||
%- en:json:html
|
||||
%- pairs:enjs:format
|
||||
:~
|
||||
['name' s+'sky']
|
||||
['description' s+'an urbit namespace viewer']
|
||||
['start_url' s+'http://localhost/neo/sky'] :: XX
|
||||
['display' s+'standalone']
|
||||
['background_color' s+'black']
|
||||
:+ 'icons' %a
|
||||
:~
|
||||
%- pairs:enjs:format
|
||||
:~
|
||||
['src' s+(crip icon-url)]
|
||||
['sizes' s+'196x196']
|
||||
['type' s+'image/png']
|
||||
==
|
||||
?~ src=(~(get by deps.bowl) %src)
|
||||
;div: 404
|
||||
=/ root=idea:neo (~(got of:neo q.u.src) /)
|
||||
?> =(%htmx p.pail.root)
|
||||
=/ bol *bowl:neo
|
||||
=. here.bol p.u.src
|
||||
=. our.bol our.bowl
|
||||
=. now.bol now.bowl
|
||||
=. eny.bol eny.bowl
|
||||
=. kids.bol q.u.src
|
||||
:: XX src.bowl
|
||||
(lift (!<(htmx q.pail.root) bol))
|
||||
--
|
||||
==
|
||||
==
|
||||
++ manifest
|
||||
^~
|
||||
=; m m(a.g [[%href manifest-url] a.g.m])
|
||||
^- manx
|
||||
;link
|
||||
=rel "manifest"
|
||||
;
|
||||
==
|
||||
++ htmx-extensions
|
||||
:: htmx extension which encodes the request
|
||||
:: as the serialized HTML of the calling element
|
||||
%- trip
|
||||
'''
|
||||
htmx.defineExtension('html-enc', {
|
||||
onEvent: function (name, evt) {
|
||||
if (name === "htmx:configRequest") {
|
||||
evt.detail.headers['Content-Type'] = "text/html";
|
||||
}
|
||||
},
|
||||
encodeParameters : function(xhr, parameters, elt) {
|
||||
xhr.overrideMimeType('text/html');
|
||||
let xmls = new XMLSerializer();
|
||||
return (xmls.serializeToString(elt));
|
||||
}
|
||||
});
|
||||
Idiomorph.defaults.ignoreActive = true;
|
||||
Idiomorph.defaults.callbacks.beforeAttributeUpdated = (name, node, type) => {
|
||||
if (node.hasAttribute('morph-retain')) {
|
||||
let ribs = node.getAttribute('morph-retain').split(',').map(t => t.trim());
|
||||
if (ribs.includes(name)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Idiomorph.defaults.callbacks.beforeNodeMorphed = (oldNode, newNode) => {
|
||||
if (oldNode?.nodeName !== "#text") {
|
||||
if (oldNode.hasAttribute('morph-no-swap') && oldNode.id === newNode.id) {
|
||||
return false;
|
||||
}
|
||||
else if (
|
||||
newNode.hasAttribute('morph-if-class') &&
|
||||
!oldNode.classList.contains(newNode.getAttribute('morph-if-class'))
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
'''
|
||||
::
|
||||
++ lift
|
||||
|= in=manx
|
||||
^- manx
|
||||
;html
|
||||
;head
|
||||
;meta(charset "UTF-8");
|
||||
;title: s k y
|
||||
;script: {(trip jquery)}
|
||||
;script: {(trip htmx-js)}
|
||||
;script: {(trip htmx-response-targets)}
|
||||
;script: {(trip htmx-idiomorph)}
|
||||
;script: {htmx-extensions}
|
||||
;meta
|
||||
=name "viewport"
|
||||
=content
|
||||
"""
|
||||
width=device-width,
|
||||
initial-scale=1.0,
|
||||
maximum-scale=1.0
|
||||
"""
|
||||
;
|
||||
==
|
||||
;meta
|
||||
=name "htmx-config"
|
||||
=content (trip '{"ignoreTitle":"true"}')
|
||||
;
|
||||
==
|
||||
::;style
|
||||
:: ;+ ;/ %- trip
|
||||
:: '''
|
||||
:: @font-face {
|
||||
:: font-family: 'Urbit Sans';
|
||||
:: src: url("https://media.urbit.org/fonts/UrbitSans/UrbitSansVFWeb-Regular.woff2") format("woff2");
|
||||
:: font-style: normal;
|
||||
:: font-weight: 100 700;
|
||||
:: }
|
||||
:: '''
|
||||
::==
|
||||
;style: {(trip reset)}
|
||||
;style: {(trip feather)}
|
||||
;script
|
||||
;+ ;/ %- trip
|
||||
'''
|
||||
window.log = function() {
|
||||
if (this.console) {
|
||||
console.log(Array.prototype.slice.call(arguments));
|
||||
}
|
||||
};
|
||||
jQuery.fn.log = function (msg) {
|
||||
console.log(msg, this);
|
||||
return this;
|
||||
};
|
||||
jQuery.fn.emit = function (name) {
|
||||
(this[0]).dispatchEvent(
|
||||
new Event(
|
||||
name,
|
||||
{ bubbles: true, cancelable: true, composed: true }
|
||||
)
|
||||
);
|
||||
return this;
|
||||
};
|
||||
'''
|
||||
==
|
||||
;script: {(trip a-i-r)}
|
||||
;script: {(trip date-now)}
|
||||
;+ favicon
|
||||
;+ manifest
|
||||
==
|
||||
;body
|
||||
=hx-ext "html-enc,response-targets,morph"
|
||||
=hx-swap "innerHTML"
|
||||
=hx-boost "true"
|
||||
=hx-history "false"
|
||||
=hx-replace-url "/neo/sky"
|
||||
=hx-target "closest .hawk"
|
||||
=style
|
||||
"""
|
||||
background-color: var(--b1);
|
||||
background-image: var(--sky-bg-url);
|
||||
background-size: var(--sky-bg-size);
|
||||
background-repeat: var(--sky-bg-repeat);
|
||||
"""
|
||||
;+ in
|
||||
==
|
||||
==
|
||||
--
|
||||
|
@ -2,13 +2,13 @@
|
||||
/- serv=server
|
||||
^- kook:neo
|
||||
|%
|
||||
++ state pro/%eyre-reqs
|
||||
++ state pro/%sig
|
||||
++ poke (sy %eyre-task ~)
|
||||
++ kids
|
||||
:+ ~ %y
|
||||
%- ~(gas by *lads:neo)
|
||||
~
|
||||
++ deps
|
||||
++ deps
|
||||
%- ~(gas by *band:neo)
|
||||
~
|
||||
::
|
||||
@ -21,12 +21,11 @@
|
||||
%eyre-task
|
||||
=+ !<(=task:eyre:neo vax)
|
||||
=/ [eyre-id=@ta req=inbound-request:eyre] task
|
||||
=/ lin (parse-request-line:serv url.request.req)
|
||||
=/ inner=pith:neo #/[p/our.bowl]/sky
|
||||
=/ args (~(gas by *(map @t @t)) args.lin)
|
||||
=/ =crew:neo (~(gas by *crew:neo) src/inner ~)
|
||||
=/ =made:neo [%sky-eyre-handler `[stud vax] crew]
|
||||
:_ sig/!>(~)
|
||||
:~ [(welp here.bowl #/[uv/eny.bowl]) %make %sky-eyre-handler `[stud vax] crew]
|
||||
:~ [(welp here.bowl #/[uv/eny.bowl]) %make made]
|
||||
==
|
||||
==
|
||||
++ init
|
||||
@ -39,4 +38,3 @@
|
||||
==
|
||||
--
|
||||
--
|
||||
|
||||
|
@ -25,7 +25,7 @@
|
||||
?+ -.poke !!
|
||||
%new-tab
|
||||
:- ~
|
||||
=. hawks.this [[now.bowl /home] hawks.this]
|
||||
=. hawks.this [[now.bowl #/[p/our.bowl]/home] hawks.this]
|
||||
=. open.this (min 4 +(open.this))
|
||||
sky/!>(this)
|
||||
%move-tab
|
||||
@ -42,6 +42,7 @@
|
||||
==
|
||||
=. open.this (dec open.this)
|
||||
sky/!>(this)
|
||||
::
|
||||
%maximize
|
||||
:- ~
|
||||
=. hawks.this
|
||||
|
@ -165,4 +165,18 @@
|
||||
^- simple-payload:http
|
||||
[[307 ['location' redirect]~] ~]
|
||||
--
|
||||
++ neo
|
||||
|_ eyre=pith:^neo
|
||||
++ respond
|
||||
|= [eyre-id=@ta pay=simple-payload:http]
|
||||
^- (list card:^neo)
|
||||
=/ head=sign:eyre:^neo [eyre-id %head response-header.pay]
|
||||
=/ data=sign:eyre:^neo [eyre-id %data data.pay]
|
||||
=/ done=sign:eyre:^neo [eyre-id %done ~]
|
||||
:~ [eyre %poke eyre-sign/!>(head)]
|
||||
[eyre %poke eyre-sign/!>(data)]
|
||||
[eyre %poke eyre-sign/!>(done)]
|
||||
==
|
||||
--
|
||||
|
||||
--
|
||||
|
20
pkg/arvo/neo/cod/std/src/lib/sky-server.hoon
Normal file
20
pkg/arvo/neo/cod/std/src/lib/sky-server.hoon
Normal file
@ -0,0 +1,20 @@
|
||||
|%
|
||||
++ parse-url
|
||||
|= =request:http
|
||||
^- [pax=path pam=(map @t @t)]
|
||||
=/ parsed
|
||||
%+ rash url.request
|
||||
;~ plug
|
||||
;~(pfix fas (more fas smeg:de-purl:html))
|
||||
yque:de-purl:html
|
||||
==
|
||||
:: strip first 2 segments (/neo/hawk)
|
||||
:- (slag 2 -.parsed)
|
||||
(malt +.parsed)
|
||||
++ parse-body
|
||||
|= =request:http
|
||||
^- manx
|
||||
%+ fall
|
||||
(de-xml:html q:(fall body.request [p=0 q='']))
|
||||
*manx
|
||||
--
|
5
pkg/arvo/neo/cod/std/src/pro/accel-conf.hoon
Normal file
5
pkg/arvo/neo/cod/std/src/pro/accel-conf.hoon
Normal file
@ -0,0 +1,5 @@
|
||||
$: hoon=_'~'
|
||||
=crew:neo
|
||||
ready=_|
|
||||
poke=(map pith:neo stud:neo)
|
||||
==
|
1
pkg/arvo/neo/cod/std/src/pro/add-dep.hoon
Normal file
1
pkg/arvo/neo/cod/std/src/pro/add-dep.hoon
Normal file
@ -0,0 +1 @@
|
||||
,[=term =pith:neo]
|
1
pkg/arvo/neo/cod/std/src/pro/add-poke.hoon
Normal file
1
pkg/arvo/neo/cod/std/src/pro/add-poke.hoon
Normal file
@ -0,0 +1 @@
|
||||
,[=pith:neo =stud:neo]
|
1
pkg/arvo/neo/cod/std/src/pro/del-dep.hoon
Normal file
1
pkg/arvo/neo/cod/std/src/pro/del-dep.hoon
Normal file
@ -0,0 +1 @@
|
||||
,term
|
1
pkg/arvo/neo/cod/std/src/pro/del-poke.hoon
Normal file
1
pkg/arvo/neo/cod/std/src/pro/del-poke.hoon
Normal file
@ -0,0 +1 @@
|
||||
,pith:neo
|
9
pkg/arvo/neo/cod/std/src/pro/node-del-poke.hoon
Normal file
9
pkg/arvo/neo/cod/std/src/pro/node-del-poke.hoon
Normal file
@ -0,0 +1,9 @@
|
||||
/@ node
|
||||
/@ del-poke
|
||||
/- manx-utils
|
||||
:- [%node %$ %del-poke]
|
||||
|= nod=node
|
||||
^- del-poke
|
||||
=/ mu ~(. manx-utils nod)
|
||||
(pave:neo (rash (vol:mu "pith") stap))
|
||||
|
1
pkg/arvo/neo/cod/std/src/pro/tang.hoon
Normal file
1
pkg/arvo/neo/cod/std/src/pro/tang.hoon
Normal file
@ -0,0 +1 @@
|
||||
tang
|
@ -877,6 +877,13 @@
|
||||
$% [%gone =term] :: injected a bad dependency
|
||||
[%goof =tang] :: crash
|
||||
==
|
||||
++ print-quit
|
||||
|= q=quit
|
||||
^- tang
|
||||
?- -.q
|
||||
%goof tang.q
|
||||
%gone ~[leaf/"No dependency at {<term>}"]
|
||||
==
|
||||
+$ ack (pair flow (unit quit))
|
||||
::
|
||||
:: $flow: Call direction
|
||||
@ -1416,7 +1423,8 @@
|
||||
|- ^+ a
|
||||
?~ a b
|
||||
?~ b a
|
||||
?> =(i.a i.b)
|
||||
?. =(i.a i.b)
|
||||
a
|
||||
$(a t.a, b t.b)
|
||||
++ sub
|
||||
|= [from=$ del=$]
|
||||
@ -2018,6 +2026,11 @@
|
||||
+$ dare ?(%y %z)
|
||||
+$ port (pair dare lads)
|
||||
+$ kids (unit port)
|
||||
+$ tear
|
||||
$% [%only wan=curb hav=stud]
|
||||
[%not not=curb hav=stud]
|
||||
==
|
||||
|
||||
:: $dude: virtual namespace binding
|
||||
::
|
||||
+$ dude
|
||||
|
Loading…
Reference in New Issue
Block a user