Merge remote-tracking branch 'origin/master' into HEAD

Conflicts:
	arvo/eyre.hoon
	lib/twitter.hoon
This commit is contained in:
Philip C Monk 2016-04-20 20:06:52 -04:00
commit f75d1e7ad6
14 changed files with 731 additions and 456 deletions

View File

@ -1296,7 +1296,12 @@
$delta p.q $delta p.q
$direct p.q $direct p.q
== ==
++ lobe-to-silk :: XX maybe move hoo{n,k} stuff here ++ page-to-silk :: %hoon bootstrapping
|= a/page
?. ?=($hoon p.a) [%volt a]
[%$ p.a [%atom %t ~] q.a]
::
++ lobe-to-silk
|= {pax/path lob/lobe} |= {pax/path lob/lobe}
^- silk ^- silk
=+ ^- hat/(map path lobe) =+ ^- hat/(map path lobe)
@ -1311,9 +1316,9 @@
[%$ p.-] [%$ p.-]
=+ bol=(~(got by lat.ran) lob) =+ bol=(~(got by lat.ran) lob)
?- -.bol ?- -.bol
$direct [%volt q.bol] $direct (page-to-silk q.bol)
$delta ~| delta+q.q.bol $delta ~| delta+q.q.bol
[%pact $(lob q.q.bol) [%volt r.bol]] [%pact $(lob q.q.bol) (page-to-silk r.bol)]
== ==
:: ::
++ page-to-lobe |=(page (shax (jam +<))) ++ page-to-lobe |=(page (shax (jam +<)))
@ -2529,8 +2534,8 @@
[%$ +:(need fil.ank:(descend-path:(zu ank:(need alh)) pax))] [%$ +:(need fil.ank:(descend-path:(zu ank:(need alh)) pax))]
=+ bol=(~(got by lat.ran) lob) =+ bol=(~(got by lat.ran) lob)
?- -.bol ?- -.bol
$direct [%volt q.bol] $direct (page-to-silk q.bol)
$delta [%pact $(lob q.q.bol) [%volt r.bol]] $delta [%pact $(lob q.q.bol) (page-to-silk r.bol)]
== ==
:: ::
++ reduce-merge-points ++ reduce-merge-points

View File

@ -71,6 +71,10 @@
$filter-response :: ++res use result $filter-response :: ++res use result
$receive-auth-response :: ++bak auth response $receive-auth-response :: ++bak auth response
$receive-auth-query-string :: ++in handle code $receive-auth-query-string :: ++in handle code
$out
$res
$bak
$in
== :: == ::
-- :: -- ::
|% :: models |% :: models
@ -447,7 +451,7 @@
}) })
} }
urb.away = function(){req("/~/auth.json?DELETE", {}, urb.away = function(){req("/~/auth.json?DELETE", {},
function(){document.getElementById("c").innerHTML = "" } function(){document.body.innerHTML = "" }
)} )}
''' '''
-- --
@ -461,7 +465,7 @@
:: ::
++ login-page ++ login-page
%+ titl 'Sign in - Urbit' %+ titl 'Sign in - Urbit'
;= ;div.container ;= ;div.container.top
;div.row ;div.row
;div.col-md-4 ;div.col-md-4
;h1.sign: Sign in ;h1.sign: Sign in
@ -511,17 +515,11 @@
:: ::
++ logout-page ++ logout-page
%+ titl 'Log out' %+ titl 'Log out'
;= ;div.container ;= ;div.container.top
;div.row ;div.row
;div.col-md-4 ;div.col-md-10
;h1.sign: Bye! ;h1.sign: Bye!
== ;button#act(onclick "urb.away()"): Log out
;div.col-md-8#c
;p.ship
;label.sig: ~
;span#ship;
==
;button#act(onclick "urb.away()"): Go
;pre:code#err; ;pre:code#err;
;script@"/~/at/~/auth.js"; ;script@"/~/at/~/auth.js";
== ==
@ -556,7 +554,7 @@
;link(rel "stylesheet", href "/lib/css/fonts.css"); ;link(rel "stylesheet", href "/lib/css/fonts.css");
;link(rel "stylesheet", href "/lib/css/bootstrap.css"); ;link(rel "stylesheet", href "/lib/css/bootstrap.css");
== ==
;body:div#c:"*{b}" ;body:"*{b}"
== ==
-- --
-- --
@ -1075,14 +1073,15 @@
^- (each perk httr) ^- (each perk httr)
|^ =+ hit=as-magic-filename |^ =+ hit=as-magic-filename
?^ hit [%| u.hit] ?^ hit [%| u.hit]
?: is-spur =+ hem=as-aux-request
[%& %spur (flop q.pok)] ?^ hem
?. check-oryx
~|(%bad-oryx ~|([grab-oryx vew.cyz:for-client] !!))
[%& u.hem]
=+ bem=as-beam =+ bem=as-beam
?^ bem [%& %beam u.bem] ?^ bem [%& %beam u.bem]
?. check-oryx ?: is-spur
~|(%bad-oryx ~|([grab-oryx vew.cyz:for-client] !!)) [%& %spur (flop q.pok)]
=+ hem=as-aux-request
?^ hem [%& u.hem]
~|(strange-path+q.pok !!) ~|(strange-path+q.pok !!)
:: ::
++ as-magic-filename ++ as-magic-filename
@ -1102,16 +1101,17 @@
== ==
== ==
:: ::
++ is-spur |(?~(q.pok & ((sane %tas) i.q.pok))) ++ is-spur |(?~(q.pok & ((sane %ta) i.q.pok)))
++ as-beam ++ as-beam :: /~sipnym/desk/3/...
^- (unit beam) ^- (unit beam)
?~ q.pok ~ =+ =< tyk=(zl:jo (turn q.pok .)) :: a path whose elements
=+ ^- (unit {@ dez/desk rel/?}) :: /=desk/, /=desk=/ |=(a/knot `(unit tyke)`(rush a gasp:vast)) :: are in /=foo==/=bar
(rush i.q.pok ;~(plug tis sym ;~(pose (cold | tis) (easy &)))) ?~ tyk ~ :: syntax
?~ - (tome q.pok) :: /~ship/desk/case/... =+ %- posh:(vang & (tope top)) :: that the base path
:+ ~ [our dez.u r.top] [[~ (zing u.tyk)] ~] :: can interpolate into
?. rel.u (flop t.q.pok) ?~ - ~ ::
(weld (flop t.q.pok) s.top) :: /=desk/... as hoon /=desk%/... =+ (plex:vast %conl u) :: staticly, and make a
(biff - tome) :: valid beam
:: ::
++ as-aux-request :: /~/... req parser ++ as-aux-request :: /~/... req parser
^- (unit perk) ^- (unit perk)
@ -1764,8 +1764,8 @@
++ get-thou ++ get-thou
|= {wir/whir-se hit/httr} |= {wir/whir-se hit/httr}
?+ wir !! ?+ wir !!
$receive-auth-query-string (call %receive-auth-response httr+!>(hit)) ?($receive-auth-query-string $in) (call %receive-auth-response httr+!>(hit))
$filter-request ?($filter-request $out)
?. (has-arm %filter-response) (fin-httr !>(hit)) ?. (has-arm %filter-response) (fin-httr !>(hit))
(call %filter-response httr+!>(hit)) (call %filter-response httr+!>(hit))
== ==
@ -1775,10 +1775,10 @@
?: ?=($core wir) (update dep res) ?: ?=($core wir) (update dep res)
%. res %. res
?- wir ?- wir
$filter-request res-out ?($filter-request $out) res-out
$filter-response res-res ?($filter-response $res) res-res
$receive-auth-response res-bak ?($receive-auth-response $bak) res-bak
$receive-auth-query-string res-in ?($receive-auth-query-string $in) res-in
== ==
:: ::
++ update ++ update

View File

@ -156,7 +156,7 @@
(rap 3 |-([i.a ?~(t.a ~ ['-' $(a t.a)])])) (rap 3 |-([i.a ?~(t.a ~ ['-' $(a t.a)])]))
:: ::
++ tear :: split term ++ tear :: split term
=- |=(a/term (rush a (most hep sym))) =- |=(a/term `(list term)`(rash a (most hep sym)))
sym=(cook crip ;~(plug low (star ;~(pose low nud)))) sym=(cook crip ;~(plug low (star ;~(pose low nud))))
:: ::
++ za :: per event ++ za :: per event
@ -608,21 +608,37 @@
~/ %fame ~/ %fame
|= {cof/cafe bem/beam} |= {cof/cafe bem/beam}
^- (bolt beam) ^- (bolt beam)
%+ cope =^ pax bem [(flop s.bem) bem(s ~)]
?~ s.bem (flue cof) |^ (cope opts (flux |=(a/(unit beam) (fall a bem))))
=+ opt=`(list term)`(fall (tear i.s.bem) ~) ::
?~ opt (flue cof) ++ opts :: search unless done
|- ^- (bolt (unit beam)) ^- (bolt (unit beam))
=. i.s.bem (tack opt) ?^ pax (wide(pax t.pax) (tear i.pax))
%+ cope (lima cof %hoon bem) %+ cope (lima cof %hoon bem)
|= {cof/cafe vax/(unit vase)} ^- (bolt (unit beam)) (flux |=(a/(unit vase) ?~(a ~ `bem)))
?^ vax (fine cof `bem) ::
?~ t.opt (flue cof) ++ wide :: match segments
%+ cope ^$(opt t.opt, t.s.bem :_(t.s.bem i.opt), cof cof) |= sub/(list term) ^- (bolt (unit beam))
|= {cof/cafe bem/(unit beam)} ^- (bolt (unit beam)) ?: =(~ sub) opts
?^ bem (fine cof bem) =- (cope - flat)
^$(opt :_(t.t.opt (tack i.opt i.t.opt ~)), cof cof) %^ lash cof bem
(flux |=(a/(unit beam) (fall a bem))) |= {cof/cafe dir/knot} ^- (bolt (unit beam))
=+ sus=(tear dir)
?. =(sus (scag (lent sus) sub))
(flue cof)
%_ ^$
cof cof
sub (slag (lent sus) sub)
s.bem [dir s.bem]
==
::
++ flat :: at most one
|= {cof/cafe opt/(map term beam)} ^- (bolt (unit beam))
?~ opt (flue cof)
?: ?=({^ $~ $~} opt) (fine cof `q.n.opt)
=+ all=(~(run by `(map term beam)`opt) tope)
(flaw cof leaf+"fame: fork {<all>}" ~)
--
:: ::
++ fang :: protocol door ++ fang :: protocol door
|= {cof/cafe for/mark} ^- (bolt vase) |= {cof/cafe for/mark} ^- (bolt vase)
@ -642,6 +658,7 @@
[~ u=(^case a)] [~ u=(^case a)]
nuck:so nuck:so
:: ::
++ mota ;~(pfix pat mota:vez) :: atom odor
++ hath (sear plex (stag %conl poor)):vez :: hood path ++ hath (sear plex (stag %conl poor)):vez :: hood path
++ have (sear tome ;~(pfix fas hath)) :: hood beam ++ have (sear tome ;~(pfix fas hath)) :: hood beam
++ hith :: static path ++ hith :: static path
@ -716,7 +733,7 @@
(stag %lin ;~(pfix pam lin:read)) (stag %lin ;~(pfix pam lin:read))
(stag %man ;~(pfix tar man:read)) (stag %man ;~(pfix tar man:read))
(stag %nap ;~(pfix cab day:read)) (stag %nap ;~(pfix cab day:read))
(stag %now ;~(pfix pat day:read)) (stag %nod ;~(pfix cab now:read))
(stag %saw ;~(pfix sem saw:read)) (stag %saw ;~(pfix sem saw:read))
(stag %see ;~(pfix col see:read)) (stag %see ;~(pfix col see:read))
(stag %sic ;~(pfix ket sic:read)) (stag %sic ;~(pfix ket sic:read))
@ -770,6 +787,10 @@
=< ;~(sfix (star (sear . day)) gap duz) =< ;~(sfix (star (sear . day)) gap duz)
|= a/^horn ^- (unit {term ^horn}) |= a/^horn ^- (unit {term ^horn})
?+(-.a ~ $dub `[p.a q.a]) ?+(-.a ~ $dub `[p.a q.a])
::
++ now
%+ rail ;~((glue cab) mota day)
;~(pfix gap ;~(plug mota day))
:: ::
++ saw ++ saw
%+ rail %+ rail
@ -898,11 +919,17 @@
++ keel :: apply mutations ++ keel :: apply mutations
|= {cof/cafe suh/vase yom/(list (pair wing vase))} |= {cof/cafe suh/vase yom/(list (pair wing vase))}
^- (bolt vase) ^- (bolt vase)
%+ cool =< |.(leaf+"ford: keel {<(murn yom +)>}") %+ cool
|= {a/wing b/span *} =< |. ^- tank
=+ c=p:(slap suh wing+a) :+ %palm [" " ~ ~ ~]
?: (~(nest ut c) | b) ~ ~[leaf+"ford: keel" rose+[" " ~ ~]^(murn yom +)]
(some [a c b]) |= {a/wing b/span *} ^- (unit tank)
=+ typ=(mule |.(p:(slap suh wing+a)))
?: ?=($| -.typ)
(some (show [%c %pull] %l a))
?: (~(nest ut p.typ) | b) ~
%^ some %palm ["." ~ ~ ~]
~[(show [%c %mute] %l a) >[p.typ b]<]
%^ maim cof %^ maim cof
%+ slop suh %+ slop suh
|- ^- vase |- ^- vase
@ -941,27 +968,23 @@
%+ cool |.(leaf+"ford: load {<for>} {<(tope bem)>}") %+ cool |.(leaf+"ford: load {<for>} {<(tope bem)>}")
=. s.bem [for s.bem] =. s.bem [for s.bem]
%+ cope (liar cof bem) %+ cope (liar cof bem)
|= {cof/cafe cay/cage} |= {cof/cafe cay/cage} ^- (bolt vase)
?. =(for p.cay) ?. =(for p.cay)
(flaw cof leaf+"unexpected mark {<p.cay>}" ~) (flaw cof leaf+"unexpected mark {<p.cay>}" ~)
((lake for) cof q.cay) (fine cof q.cay)
:: ::
++ lake :: check+coerce ++ lake :: check+coerce
|= for/mark |= {fit/? for/mark}
|= {cof/cafe sam/vase} |= {cof/cafe sam/vase}
^- (bolt vase) ^- (bolt vase)
%+ cool |.(leaf+"ford: check {<[for bek `@p`(mug q.sam)]>}") %+ cool |.(leaf+"ford: check {<[for bek `@p`(mug q.sam)]>}")
?: ?=($hoon for)
=+ mas=((soft @t) q.sam)
?~ mas
(flaw cof [leaf+"ford: bad hoon: {<[for bek]>}"]~)
(fine cof [%atom %t ~] u.mas)
%+ cope (fang cof for) %+ cope (fang cof for)
|= {cof/cafe tux/vase} |= {cof/cafe tux/vase}
=+ typ=p:(slot 6 tux) =+ typ=p:(slot 6 tux)
=. typ ?+(-.typ typ $face q.typ) =. typ ?+(-.typ typ $face q.typ)
?: (~(nest ut typ) | p.sam) ?: (~(nest ut typ) | p.sam)
(fine cof typ q.sam) (fine cof typ q.sam)
?. fit (flaw cof [%leaf "ford: invalid type: {<p.sam>}"]~)
?. (slob %grab p.tux) ?. (slob %grab p.tux)
(flaw cof [%leaf "ford: no grab: {<[for bek]>}"]~) (flaw cof [%leaf "ford: no grab: {<[for bek]>}"]~)
=+ gab=(slap tux [%limb %grab]) =+ gab=(slap tux [%limb %grab])
@ -982,11 +1005,6 @@
?~ von [p=cof q=[%1 [%c %w bem ~] ~ ~]] ?~ von [p=cof q=[%1 [%c %w bem ~] ~ ~]]
(fine cof bem(r [%ud ((hard @) +.+:(need u.von))])) (fine cof bem(r [%ud ((hard @) +.+:(need u.von))]))
:: ::
++ lave :: validate
|= {cof/cafe for/mark som/*}
^- (bolt vase)
((lake for) cof [%noun som])
::
++ lane :: span infer ++ lane :: span infer
|= {cof/cafe typ/span gen/twig} |= {cof/cafe typ/span gen/twig}
%+ (cowl cof) (mule |.((~(play ut typ) gen))) %+ (cowl cof) (mule |.((~(play ut typ) gen)))
@ -1085,7 +1103,7 @@
:: %+ cool |.(leaf+"ford: link {<too>} {<for>} {<p.vax>}") :: %+ cool |.(leaf+"ford: link {<too>} {<for>} {<p.vax>}")
?: =(too for) (fine cof vax) ?: =(too for) (fine cof vax)
?: |(=(%noun for) =(%$ for)) ?: |(=(%noun for) =(%$ for))
((lake too) cof vax) ((lake & too) cof vax)
%+ cope (fang cof for) %+ cope (fang cof for)
|= {cof/cafe pro/vase} ^- (bolt vase) |= {cof/cafe pro/vase} ^- (bolt vase)
?: :: =< $ ~% %limb-grow link-jet ~ |. ?: :: =< $ ~% %limb-grow link-jet ~ |.
@ -1230,8 +1248,6 @@
:: ::
$bunt $bunt
%+ cool |.(leaf+"ford: bunt {<p.kas>}") %+ cool |.(leaf+"ford: bunt {<p.kas>}")
?: ?=($hoon p.kas)
(fine cof %& p.kas [%atom %t ~] '')
%+ cope (fang cof p.kas) %+ cope (fang cof p.kas)
|= {cof/cafe tux/vase} |= {cof/cafe tux/vase}
=+ [typ=p val=q]:(slot 6 tux) =+ [typ=p val=q]:(slot 6 tux)
@ -1346,7 +1362,7 @@
:: ::
$vale $vale
%+ cool |.(leaf+"ford: vale {<p.kas>} {<`@p`(mug q.kas)>}") %+ cool |.(leaf+"ford: vale {<p.kas>} {<`@p`(mug q.kas)>}")
%+ cope (lave cof p.kas q.kas) %+ cope ((lake & p.kas) cof [%noun q.kas])
(flux |=(vax/vase `gage`[%& p.kas vax])) (flux |=(vax/vase `gage`[%& p.kas vax]))
:: ::
$volt $volt
@ -1559,6 +1575,10 @@
$now $now
%+ cope (chad cof bax %da p.hon) %+ cope (chad cof bax %da p.hon)
(flux |=(a/vase noun+a)) (flux |=(a/vase noun+a))
::
$nod
%+ cope (chad cof bax p.hon q.hon)
(flux |=(a/vase noun+a))
:: ::
$nap $nap
%+ cope (chai cof bax p.hon) %+ cope (chai cof bax p.hon)
@ -1599,7 +1619,7 @@
%+ cope (fade cof %hoon how) %+ cope (fade cof %hoon how)
|= {cof/cafe hyd/hood} |= {cof/cafe hyd/hood}
%+ cope (abut:(meow how arg) cof hyd) %+ cope (abut:(meow how arg) cof hyd)
;~(cope (lake q.hon) (flux |=(a/vase [q.hon a]))) ;~(cope (lake | q.hon) (flux |=(a/vase [q.hon a])))
== ==
:: ::
++ head :: consume structures ++ head :: consume structures
@ -1713,12 +1733,6 @@
|=({cof/cafe p/silk q/silk} (cope (make cof q) furl)) |=({cof/cafe p/silk q/silk} (cope (make cof q) furl))
== ==
|= {cof/cafe cay/cage coy/cage} ^- (bolt gage) |= {cof/cafe cay/cage coy/cage} ^- (bolt gage)
?: ?=($hoon p.cay)
?. ?=($txt-diff p.coy)
(flaw cof leaf+"{<p.cay>} mark with bad diff type: {<p.coy>}" ~)
%+ cope (maul cof !>(pact-hoon) (slop q.cay q.coy))
(flux |=(vax/vase:cord [%& p.cay vax]))
::
%+ cope (fang cof p.cay) %+ cope (fang cof p.cay)
|= {cof/cafe pro/vase} |= {cof/cafe pro/vase}
?. (slab %grad p.pro) ?. (slab %grad p.pro)

View File

@ -1088,7 +1088,7 @@
|- ^- @ |- ^- @
=+ c=(fnv (mix p.b (fnv q.b))) =+ c=(fnv (mix p.b (fnv q.b)))
=+ d=(mix (rsh 0 31 c) (end 0 31 c)) =+ d=(mix (rsh 0 31 c) (end 0 31 c))
?. =(0 c) c ?. =(0 d) d
$(q.b +(q.b)) $(q.b +(q.b))
=+ b=2.166.136.261 =+ b=2.166.136.261
|- ^- @ |- ^- @
@ -7269,7 +7269,9 @@
:+ %per [%name %v %$ 1] :: => v=. :+ %per [%name %v %$ 1] :: => v=.
:+ %pin :+ %name %a :: =+ ^= a :+ %pin :+ %name %a :: =+ ^= a
[%per [%limb %v] p.gen] :: =>(v {p.gen}) [%per [%limb %v] p.gen] :: =>(v {p.gen})
:+ %pin [%name %b [%per [%limb %v] q.gen]] :: =+ b==>(v {q.gen}) :+ %pin
:+ %name %b :: =+ ^= b
[%cast [%base %noun] [%per [%limb %v] q.gen]] :: =+ `*`=>(v {q.gen})
:+ %pin :: =+ c=(a b) :+ %pin :: =+ c=(a b)
[%name %c [%call [%limb %a] [%limb %b] ~]] :: [%name %c [%call [%limb %a] [%limb %b] ~]] ::
[%sure [%same [%limb %c] [%limb %b]] [%limb %c]] :: ?>(=(c b) c) [%sure [%same [%limb %c] [%limb %b]] [%limb %c]] :: ?>(=(c b) c)
@ -7733,8 +7735,6 @@
=- [p.tez (doge q.p.tez q.tez)] =- [p.tez (doge q.p.tez q.tez)]
^= tez ^= tez
^- {p/{p/(map span @) q/(map @ wine)} q/wine} ^- {p/{p/(map span @) q/(map @ wine)} q/wine}
?: (~(meet ut sut) -:!>(*span))
[dex %span]
?- sut ?- sut
$noun [dex sut] $noun [dex sut]
$void [dex sut] $void [dex sut]
@ -7783,7 +7783,9 @@
?^(p.sut yad [p.yad [%face p.sut q.yad]]) ?^(p.sut yad [p.yad [%face p.sut q.yad]])
:: ::
{$fork *} {$fork *}
=+ yed=(~(tap in p.sut)) ?: (~(meet ut sut) -:!>(*span))
[dex %span]
=+ yed=(sort (~(tap in p.sut)) aor)
=- [p [%pick q]] =- [p [%pick q]]
|- ^- {p/{p/(map span @) q/(map @ wine)} q/(list wine)} |- ^- {p/{p/(map span @) q/(map @ wine)} q/(list wine)}
?~ yed ?~ yed
@ -10560,6 +10562,7 @@
== :: == ::
++ wire path :: event pretext ++ wire path :: event pretext
++ sloy ++ sloy
!:
|= sod/slyd |= sod/slyd
^- slyt ^- slyt
|= {ref/* raw/*} |= {ref/* raw/*}

View File

@ -2235,7 +2235,8 @@
{$lin p/(list mark) q/horn} :: /& translates {$lin p/(list mark) q/horn} :: /& translates
{$man p/(map knot horn)} :: /* hetero map {$man p/(map knot horn)} :: /* hetero map
{$nap p/horn} :: /_ homo map {$nap p/horn} :: /_ homo map
{$now p/horn} :: /@ list by @da {$now p/horn} :: DEPRECATED
{$nod p/term q/horn} :: /_ @ list by odor
{$saw p/twig q/horn} :: /; operate on {$saw p/twig q/horn} :: /; operate on
{$see p/hops q/horn} :: /: relative to {$see p/hops q/horn} :: /: relative to
{$sic p/twig q/horn} :: /^ cast {$sic p/twig q/horn} :: /^ cast

View File

@ -6,7 +6,6 @@
:: ::
:::: ~fyr :::: ~fyr
:: ::
=< into-url
|% |%
++ parse-url ++ parse-url
|= a/$@(cord:purl purl) ^- purl |= a/$@(cord:purl purl) ^- purl

View File

@ -51,11 +51,16 @@
:: ::
++ user-url ++ user-url
|= a/scr ^- purf |= a/scr ^- purf
(url:interpolate "https://twitter.com/:scr" scr+a ~) :_ ~
%^ into-url:interpolate 'https://twitter.com/:scr'
~
~[scr+a]
:: ::
++ post-url ++ post-url
|= {a/scr b/tid} ^- purf |= {a/scr b/tid} ^- purf
%+ url:interpolate "https://twitter.com/:scr/status/:tid" :_ ~
%^ into-url:interpolate 'https://twitter.com/:scr/status/:tid'
~
~[scr+a tid+(tid:print b)] ~[scr+a tid+(tid:print b)]
-- --
++ parse :: json reparsers ++ parse :: json reparsers

View File

@ -2,7 +2,7 @@
:::: /hoon/comments/tree/ren :::: /hoon/comments/tree/ren
:: ::
/? 310 /? 310
/: /%/comments /@ /&elem&/md/ :: XX descend horn /: /%/comments /_ @da /&elem&/md/
:: ::
:::: ::::
:: ::

22
web.md
View File

@ -1,15 +1,17 @@
--- ---
container: false
layout: plan
anchor: none anchor: none
plan: y title: Home
--- ---
<div class="mini-module"> <div class="above">
<p>Stream:</p> <div class="container panel stack">
<script src="/~/at/lib/js/urb.js"/> <panel></panel>
<script src="https://cdn.rawgit.com/seatgeek/react-infinite/0.8.0/dist/react-infinite.js"/> </div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.2/moment-with-locales.js"/> <div class="container plan stack">
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.1/moment-timezone.js"/> <div class="col-md-9">
<script src="/talk/main.js"/> <plan></plan>
<link href="/talk/main.css" rel="stylesheet" /> </div>
<talk readonly="" chrono="reverse" station="public" /> </div>
</div> </div>

View File

@ -328,7 +328,7 @@ html {
body { body {
font-family: "bau", "Helvetica Neue", Helvetica, Arial, sans-serif; font-family: "bau", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 1rem; font-size: 1rem;
line-height: 2; line-height: 1.5;
color: #373a3c; color: #373a3c;
background-color: #fff; background-color: #fff;
} }
@ -646,7 +646,7 @@ mark,
.blockquote-footer { .blockquote-footer {
display: block; display: block;
font-size: 80%; font-size: 80%;
line-height: 2; line-height: 1.5;
color: #b1b7bd; color: #b1b7bd;
} }
@ -682,7 +682,7 @@ mark,
max-width: 100%; max-width: 100%;
height: auto; height: auto;
padding: .25rem; padding: .25rem;
line-height: 2; line-height: 1.5;
background-color: #fff; background-color: #fff;
border: 1px solid #ddd; border: 1px solid #ddd;
border-radius: .25rem; border-radius: .25rem;
@ -741,7 +741,7 @@ pre {
margin-top: 0; margin-top: 0;
margin-bottom: 1rem; margin-bottom: 1rem;
font-size: 90%; font-size: 90%;
line-height: 2; line-height: 1.5;
color: #373a3c; color: #373a3c;
} }
@ -1679,7 +1679,7 @@ pre code {
.table th, .table th,
.table td { .table td {
padding: .75rem; padding: .75rem;
line-height: 2; line-height: 1.5;
vertical-align: top; vertical-align: top;
border-top: 1px solid #eceeef; border-top: 1px solid #eceeef;
} }
@ -1875,7 +1875,7 @@ pre code {
width: 100%; width: 100%;
padding: .375rem .75rem; padding: .375rem .75rem;
font-size: 1rem; font-size: 1rem;
line-height: 2; line-height: 1.5;
color: #55595c; color: #55595c;
background-color: #fff; background-color: #fff;
background-image: none; background-image: none;
@ -1936,7 +1936,7 @@ pre code {
input[type="time"].form-control, input[type="time"].form-control,
input[type="datetime-local"].form-control, input[type="datetime-local"].form-control,
input[type="month"].form-control { input[type="month"].form-control {
line-height: 2.75rem; line-height: 2.25rem;
} }
input[type="date"].input-sm, input[type="date"].input-sm,
.input-group-sm input[type="date"].form-control, .input-group-sm input[type="date"].form-control,
@ -1967,7 +1967,7 @@ pre code {
} }
.form-control-static { .form-control-static {
min-height: 2.75rem; min-height: 2.25rem;
padding-top: .375rem; padding-top: .375rem;
padding-bottom: .375rem; padding-bottom: .375rem;
margin-bottom: 0; margin-bottom: 0;
@ -2074,9 +2074,9 @@ input[type="checkbox"].disabled {
.form-control-danger { .form-control-danger {
padding-right: 2.25rem; padding-right: 2.25rem;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center right .6875rem; background-position: center right .5625rem;
-webkit-background-size: 1.7875rem 1.7875rem; -webkit-background-size: 1.4625rem 1.4625rem;
background-size: 1.7875rem 1.7875rem; background-size: 1.4625rem 1.4625rem;
} }
.has-success .text-help, .has-success .text-help,
@ -2089,21 +2089,21 @@ input[type="checkbox"].disabled {
.has-success.checkbox label, .has-success.checkbox label,
.has-success.radio-inline label, .has-success.radio-inline label,
.has-success.checkbox-inline label { .has-success.checkbox-inline label {
color: #02d124; color: #64de79;
} }
.has-success .form-control { .has-success .form-control {
border-color: #02d124; border-color: #64de79;
} }
.has-success .input-group-addon { .has-success .input-group-addon {
color: #02d124; color: #64de79;
background-color: #a1feb0; background-color: white;
border-color: #02d124; border-color: #64de79;
} }
.has-success .form-control-feedback { .has-success .form-control-feedback {
color: #02d124; color: #64de79;
} }
.has-success .form-control-success { .has-success .form-control-success {
@ -2228,7 +2228,7 @@ input[type="checkbox"].disabled {
padding: .375rem 1rem; padding: .375rem 1rem;
font-size: 1rem; font-size: 1rem;
font-weight: normal; font-weight: normal;
line-height: 2; line-height: 1.5;
text-align: center; text-align: center;
white-space: nowrap; white-space: nowrap;
vertical-align: middle; vertical-align: middle;
@ -2271,28 +2271,28 @@ fieldset[disabled] a.btn {
.btn-primary { .btn-primary {
color: #fff; color: #fff;
background-color: #0500f0; background-color: #000;
border-color: #0500f0; border-color: #000;
} }
.btn-primary:hover { .btn-primary:hover {
color: #fff; color: #fff;
background-color: #0400bd; background-color: black;
border-color: #0400b3; border-color: black;
} }
.btn-primary:focus, .btn-primary.focus { .btn-primary:focus, .btn-primary.focus {
color: #fff; color: #fff;
background-color: #0400bd; background-color: black;
border-color: #0400b3; border-color: black;
} }
.btn-primary:active, .btn-primary.active, .btn-primary:active, .btn-primary.active,
.open > .btn-primary.dropdown-toggle { .open > .btn-primary.dropdown-toggle {
color: #fff; color: #fff;
background-color: #0400bd; background-color: black;
background-image: none; background-image: none;
border-color: #0400b3; border-color: black;
} }
.btn-primary:active:hover, .btn-primary:active:focus, .btn-primary:active.focus, .btn-primary.active:hover, .btn-primary.active:focus, .btn-primary.active.focus, .btn-primary:active:hover, .btn-primary:active:focus, .btn-primary:active.focus, .btn-primary.active:hover, .btn-primary.active:focus, .btn-primary.active.focus,
@ -2300,18 +2300,18 @@ fieldset[disabled] a.btn {
.open > .btn-primary.dropdown-toggle:focus, .open > .btn-primary.dropdown-toggle:focus,
.open > .btn-primary.dropdown-toggle.focus { .open > .btn-primary.dropdown-toggle.focus {
color: #fff; color: #fff;
background-color: #030099; background-color: black;
border-color: #020071; border-color: black;
} }
.btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary:disabled:focus, .btn-primary:disabled.focus { .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary:disabled:focus, .btn-primary:disabled.focus {
background-color: #0500f0; background-color: #000;
border-color: #0500f0; border-color: #000;
} }
.btn-primary.disabled:hover, .btn-primary:disabled:hover { .btn-primary.disabled:hover, .btn-primary:disabled:hover {
background-color: #0500f0; background-color: #000;
border-color: #0500f0; border-color: #000;
} }
.btn-secondary { .btn-secondary {
@ -2406,28 +2406,28 @@ fieldset[disabled] a.btn {
.btn-success { .btn-success {
color: #fff; color: #fff;
background-color: #02d124; background-color: #64de79;
border-color: #02d124; border-color: #64de79;
} }
.btn-success:hover { .btn-success:hover {
color: #fff; color: #fff;
background-color: #029e1b; background-color: #3ad555;
border-color: #01941a; border-color: #32d34d;
} }
.btn-success:focus, .btn-success.focus { .btn-success:focus, .btn-success.focus {
color: #fff; color: #fff;
background-color: #029e1b; background-color: #3ad555;
border-color: #01941a; border-color: #32d34d;
} }
.btn-success:active, .btn-success.active, .btn-success:active, .btn-success.active,
.open > .btn-success.dropdown-toggle { .open > .btn-success.dropdown-toggle {
color: #fff; color: #fff;
background-color: #029e1b; background-color: #3ad555;
background-image: none; background-image: none;
border-color: #01941a; border-color: #32d34d;
} }
.btn-success:active:hover, .btn-success:active:focus, .btn-success:active.focus, .btn-success.active:hover, .btn-success.active:focus, .btn-success.active.focus, .btn-success:active:hover, .btn-success:active:focus, .btn-success:active.focus, .btn-success.active:hover, .btn-success.active:focus, .btn-success.active.focus,
@ -2435,18 +2435,18 @@ fieldset[disabled] a.btn {
.open > .btn-success.dropdown-toggle:focus, .open > .btn-success.dropdown-toggle:focus,
.open > .btn-success.dropdown-toggle.focus { .open > .btn-success.dropdown-toggle.focus {
color: #fff; color: #fff;
background-color: #017b15; background-color: #29c244;
border-color: #01530e; border-color: #22a038;
} }
.btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success:disabled:focus, .btn-success:disabled.focus { .btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success:disabled:focus, .btn-success:disabled.focus {
background-color: #02d124; background-color: #64de79;
border-color: #02d124; border-color: #64de79;
} }
.btn-success.disabled:hover, .btn-success:disabled:hover { .btn-success.disabled:hover, .btn-success:disabled:hover {
background-color: #02d124; background-color: #64de79;
border-color: #02d124; border-color: #64de79;
} }
.btn-warning { .btn-warning {
@ -2540,31 +2540,31 @@ fieldset[disabled] a.btn {
} }
.btn-primary-outline { .btn-primary-outline {
color: #0500f0; color: #000;
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
border-color: #0500f0; border-color: #000;
} }
.btn-primary-outline:focus, .btn-primary-outline.focus, .btn-primary-outline:active, .btn-primary-outline.active, .btn-primary-outline:focus, .btn-primary-outline.focus, .btn-primary-outline:active, .btn-primary-outline.active,
.open > .btn-primary-outline.dropdown-toggle { .open > .btn-primary-outline.dropdown-toggle {
color: #fff; color: #fff;
background-color: #0500f0; background-color: #000;
border-color: #0500f0; border-color: #000;
} }
.btn-primary-outline:hover { .btn-primary-outline:hover {
color: #fff; color: #fff;
background-color: #0500f0; background-color: #000;
border-color: #0500f0; border-color: #000;
} }
.btn-primary-outline.disabled:focus, .btn-primary-outline.disabled.focus, .btn-primary-outline:disabled:focus, .btn-primary-outline:disabled.focus { .btn-primary-outline.disabled:focus, .btn-primary-outline.disabled.focus, .btn-primary-outline:disabled:focus, .btn-primary-outline:disabled.focus {
border-color: #5b57ff; border-color: #333;
} }
.btn-primary-outline.disabled:hover, .btn-primary-outline:disabled:hover { .btn-primary-outline.disabled:hover, .btn-primary-outline:disabled:hover {
border-color: #5b57ff; border-color: #333;
} }
.btn-secondary-outline { .btn-secondary-outline {
@ -2624,31 +2624,31 @@ fieldset[disabled] a.btn {
} }
.btn-success-outline { .btn-success-outline {
color: #02d124; color: #64de79;
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
border-color: #02d124; border-color: #64de79;
} }
.btn-success-outline:focus, .btn-success-outline.focus, .btn-success-outline:active, .btn-success-outline.active, .btn-success-outline:focus, .btn-success-outline.focus, .btn-success-outline:active, .btn-success-outline.active,
.open > .btn-success-outline.dropdown-toggle { .open > .btn-success-outline.dropdown-toggle {
color: #fff; color: #fff;
background-color: #02d124; background-color: #64de79;
border-color: #02d124; border-color: #64de79;
} }
.btn-success-outline:hover { .btn-success-outline:hover {
color: #fff; color: #fff;
background-color: #02d124; background-color: #64de79;
border-color: #02d124; border-color: #64de79;
} }
.btn-success-outline.disabled:focus, .btn-success-outline.disabled.focus, .btn-success-outline:disabled:focus, .btn-success-outline:disabled.focus { .btn-success-outline.disabled:focus, .btn-success-outline.disabled.focus, .btn-success-outline:disabled:focus, .btn-success-outline:disabled.focus {
border-color: #3cfd5c; border-color: #b8f0c2;
} }
.btn-success-outline.disabled:hover, .btn-success-outline:disabled:hover { .btn-success-outline.disabled:hover, .btn-success-outline:disabled:hover {
border-color: #3cfd5c; border-color: #b8f0c2;
} }
.btn-warning-outline { .btn-warning-outline {
@ -2857,7 +2857,7 @@ input[type="button"].btn-block {
padding: 3px 20px; padding: 3px 20px;
clear: both; clear: both;
font-weight: normal; font-weight: normal;
line-height: 2; line-height: 1.5;
color: #373a3c; color: #373a3c;
text-align: inherit; text-align: inherit;
white-space: nowrap; white-space: nowrap;
@ -2874,7 +2874,7 @@ input[type="button"].btn-block {
.dropdown-item.active, .dropdown-item.active:focus, .dropdown-item.active:hover { .dropdown-item.active, .dropdown-item.active:focus, .dropdown-item.active:hover {
color: #fff; color: #fff;
text-decoration: none; text-decoration: none;
background-color: #0500f0; background-color: #000;
outline: 0; outline: 0;
} }
@ -2912,7 +2912,7 @@ input[type="button"].btn-block {
display: block; display: block;
padding: 3px 20px; padding: 3px 20px;
font-size: .875rem; font-size: .875rem;
line-height: 2; line-height: 1.5;
color: #b1b7bd; color: #b1b7bd;
white-space: nowrap; white-space: nowrap;
} }
@ -3482,7 +3482,7 @@ input[type="button"].btn-block {
.nav-pills .nav-item.open .nav-link:hover { .nav-pills .nav-item.open .nav-link:hover {
color: #fff; color: #fff;
cursor: default; cursor: default;
background-color: #0500f0; background-color: #000;
} }
.nav-stacked .nav-item { .nav-stacked .nav-item {
@ -3736,13 +3736,13 @@ input[type="button"].btn-block {
} }
.card-primary { .card-primary {
background-color: #0500f0; background-color: #000;
border-color: #0500f0; border-color: #000;
} }
.card-success { .card-success {
background-color: #02d124; background-color: #64de79;
border-color: #02d124; border-color: #64de79;
} }
.card-info { .card-info {
@ -3762,7 +3762,7 @@ input[type="button"].btn-block {
.card-primary-outline { .card-primary-outline {
background-color: transparent; background-color: transparent;
border-color: #0500f0; border-color: #000;
} }
.card-secondary-outline { .card-secondary-outline {
@ -3777,7 +3777,7 @@ input[type="button"].btn-block {
.card-success-outline { .card-success-outline {
background-color: transparent; background-color: transparent;
border-color: #02d124; border-color: #64de79;
} }
.card-warning-outline { .card-warning-outline {
@ -3922,8 +3922,8 @@ input[type="button"].btn-block {
z-index: 2; z-index: 2;
color: #fff; color: #fff;
cursor: default; cursor: default;
background-color: #0500f0; background-color: #000;
border-color: #0500f0; border-color: #000;
} }
.page-item.disabled .page-link, .page-item.disabled .page-link:focus, .page-item.disabled .page-link:hover { .page-item.disabled .page-link, .page-item.disabled .page-link:focus, .page-item.disabled .page-link:hover {
@ -3938,7 +3938,7 @@ input[type="button"].btn-block {
float: left; float: left;
padding: .5rem .75rem; padding: .5rem .75rem;
margin-left: -1px; margin-left: -1px;
line-height: 2; line-height: 1.5;
color: #000; color: #000;
text-decoration: none; text-decoration: none;
background-color: #fff; background-color: #fff;
@ -4058,19 +4058,19 @@ a.label:focus, a.label:hover {
} }
.label-primary { .label-primary {
background-color: #0500f0; background-color: #000;
} }
.label-primary[href]:focus, .label-primary[href]:hover { .label-primary[href]:focus, .label-primary[href]:hover {
background-color: #0400bd; background-color: black;
} }
.label-success { .label-success {
background-color: #02d124; background-color: #64de79;
} }
.label-success[href]:focus, .label-success[href]:hover { .label-success[href]:focus, .label-success[href]:hover {
background-color: #029e1b; background-color: #3ad555;
} }
.label-info { .label-info {
@ -4334,16 +4334,16 @@ a.label:focus, a.label:hover {
} }
.progress-success[value]::-webkit-progress-value { .progress-success[value]::-webkit-progress-value {
background-color: #02d124; background-color: #64de79;
} }
.progress-success[value]::-moz-progress-bar { .progress-success[value]::-moz-progress-bar {
background-color: #02d124; background-color: #64de79;
} }
@media screen and (min-width: 0\0) { @media screen and (min-width: 0\0) {
.progress-success .progress-bar { .progress-success .progress-bar {
background-color: #02d124; background-color: #64de79;
} }
} }
@ -4516,8 +4516,8 @@ button.list-group-item:hover {
.list-group-item.active, .list-group-item.active:focus, .list-group-item.active:hover { .list-group-item.active, .list-group-item.active:focus, .list-group-item.active:hover {
z-index: 2; z-index: 2;
color: #fff; color: #fff;
background-color: #0500f0; background-color: #000;
border-color: #0500f0; border-color: #000;
} }
.list-group-item.active .list-group-item-heading, .list-group-item.active .list-group-item-heading,
@ -4531,7 +4531,7 @@ button.list-group-item:hover {
} }
.list-group-item.active .list-group-item-text, .list-group-item.active:focus .list-group-item-text, .list-group-item.active:hover .list-group-item-text { .list-group-item.active .list-group-item-text, .list-group-item.active:focus .list-group-item-text, .list-group-item.active:hover .list-group-item-text {
color: #bebdff; color: #666;
} }
.list-group-item-success { .list-group-item-success {
@ -4823,7 +4823,7 @@ button.close {
.modal-title { .modal-title {
margin: 0; margin: 0;
line-height: 2; line-height: 1.5;
} }
.modal-body { .modal-body {
@ -4888,7 +4888,7 @@ button.close {
font-size: .875rem; font-size: .875rem;
font-style: normal; font-style: normal;
font-weight: normal; font-weight: normal;
line-height: 2; line-height: 1.5;
text-align: left; text-align: left;
text-align: start; text-align: start;
text-decoration: none; text-decoration: none;
@ -4988,7 +4988,7 @@ button.close {
font-size: .875rem; font-size: .875rem;
font-style: normal; font-style: normal;
font-weight: normal; font-weight: normal;
line-height: 2; line-height: 1.5;
text-align: left; text-align: left;
text-align: start; text-align: start;
text-decoration: none; text-decoration: none;
@ -5558,19 +5558,19 @@ button.close {
} }
.text-primary { .text-primary {
color: #0500f0 !important; color: #000 !important;
} }
a.text-primary:focus, a.text-primary:hover { a.text-primary:focus, a.text-primary:hover {
color: #0400bd; color: black;
} }
.text-success { .text-success {
color: #02d124 !important; color: #64de79 !important;
} }
a.text-success:focus, a.text-success:hover { a.text-success:focus, a.text-success:hover {
color: #029e1b; color: #3ad555;
} }
.text-info { .text-info {
@ -5608,20 +5608,20 @@ a.text-danger:focus, a.text-danger:hover {
.bg-primary { .bg-primary {
color: #fff !important; color: #fff !important;
background-color: #0500f0 !important; background-color: #000 !important;
} }
a.bg-primary:focus, a.bg-primary:hover { a.bg-primary:focus, a.bg-primary:hover {
background-color: #0400bd; background-color: black;
} }
.bg-success { .bg-success {
color: #fff !important; color: #fff !important;
background-color: #02d124 !important; background-color: #64de79 !important;
} }
a.bg-success:focus, a.bg-success:hover { a.bg-success:focus, a.bg-success:hover {
background-color: #029e1b; background-color: #3ad555;
} }
.bg-info { .bg-info {
@ -6004,6 +6004,10 @@ ul {
padding: 0 1rem; padding: 0 1rem;
} }
b, strong {
font-weight: 500;
}
hr { hr {
width: 66.666667%; width: 66.666667%;
height: 1px; height: 1px;
@ -6042,7 +6046,7 @@ h3 code,
h4 code, h4 code,
h5 code, h5 code,
h6 code { h6 code {
font-weight: 600; font-weight: 400;
} }
.even, .even,
@ -6052,6 +6056,38 @@ h1:first-of-type {
margin-bottom: 0; margin-bottom: 0;
} }
h1.first,
h2.first,
h3.first {
padding-top: 0;
padding-bottom: 2rem;
}
h1.child,
h2.child,
h3.child {
padding-bottom: 0;
}
blockquote {
padding-left: 1rem;
font-style: italic;
color: #55595c;
border-left: 3px solid #b1b7bd;
}
.gray {
color: #55595c;
}
.gray-light {
color: #b1b7bd;
}
.gray-lighter {
color: #eceeef;
}
@media (max-width: 767px) { @media (max-width: 767px) {
h1 { h1 {
font-size: 2rem; font-size: 2rem;
@ -6064,10 +6100,13 @@ h1:first-of-type {
code, code,
pre { pre {
padding-left: .3rem;
background-color: #f7f7f7; background-color: #f7f7f7;
} }
p code {
padding: .2rem .1rem;
}
pre code { pre code {
padding-left: 0; padding-left: 0;
margin-left: 0; margin-left: 0;
@ -6086,9 +6125,8 @@ textarea:focus {
border-color: #000; border-color: #000;
} }
.container { .container.top {
padding-top: 3rem; padding-top: 3rem;
padding-bottom: 9rem;
} }
.lead { .lead {
@ -6120,7 +6158,7 @@ textarea:focus {
} }
.btn-primary { .btn-primary {
color: #0500f0; color: #000;
} }
.red { .red {
@ -6128,7 +6166,7 @@ textarea:focus {
} }
.green { .green {
color: #02d124; color: #64de79;
} }
.yellow { .yellow {
@ -6150,7 +6188,7 @@ textarea:focus {
} }
.inverse.green { .inverse.green {
background-color: #02d124; background-color: #64de79;
} }
.inverse.yellow { .inverse.yellow {
@ -6249,13 +6287,11 @@ button#act {
.lead .logo { .lead .logo {
display: inline-block; display: inline-block;
width: 5rem; width: 3rem;
height: 5rem; height: 3rem;
margin-right: 3rem; margin-right: 1rem;
font-size: 4.4rem;
line-height: 5rem;
text-align: center; text-align: center;
border-radius: 5rem; border-radius: 50%;
} }
@media (max-width: 991px) { @media (max-width: 991px) {

6
web/lib/css/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -283,28 +283,16 @@ window.urb.util = {
spur = spur || '' spur = spur || ''
if(spur === '/') spur = '' if(spur === '/') spur = ''
pathname = pathname || window.location.pathname pathname = pathname || window.location.pathname
if(pathname[0] == '/') pathname = pathname.slice(1)
pathname = pathname.split("/") base = ""
if(pathname.indexOf("/~~") == 0)
base = "/~~"
if(pathname.indexOf("/~/as/") == 0)
base = "/~/as/"+pathname.split("/")[3]
if(pathname.indexOf("/~/away") == 0)
base = "/~/away"
var pref, pred, prec, base = ""
while(pref = pathname.shift(), pathname.length>0){
if(pref[0] != '~' && pref[0] != '=') break;
base += "/"+pref;
if(pref === "~~") continue;
base += "/"+(pred = pathname.shift())
if(/[a-z\-]+/.test(pref.slice(1))){
base += "/"+(prec = pathname.shift())
if(prec == null) throw "Bad basepath."
break;
}
if(pref !== "~") throw "Bad basepath /"+pref
if(pred === "as"){
base += "/"+(prec = pathname.shift())
if(prec == null) throw "Bad basepath."
continue;
}
throw "Bad basepath /~/"+pred
}
return base+spur return base+spur
} }
} }

View File

@ -23,7 +23,7 @@ div.logo {
border-radius: 50%; border-radius: 50%;
vertical-align: middle; vertical-align: middle;
margin-top: -.8rem; margin-top: -.8rem;
background-color: #0500F0; } background-color: #000; }
div.logo:before { div.logo:before {
content: "~"; content: "~";
@ -97,21 +97,32 @@ div.logo.inverse:before {
.loading.state-3:before { .loading.state-3:before {
content: "\25D0"; } content: "\25D0"; }
@media (min-width: 544px) {
#head {
width: 576px; } }
@media (min-width: 768px) { @media (min-width: 768px) {
#head { .ctrl {
width: 720px; } } width: 180px; }
.ctrl.open,
.ctrl:hover {
max-width: 360px;
min-width: 180px;
width: auto; } }
@media (min-width: 992px) { @media (min-width: 992px) {
#head { .ctrl {
width: 940px; } } width: 235px; }
.ctrl.open,
.ctrl:hover {
max-width: 470px;
min-width: 235px;
width: auto; } }
@media (min-width: 1200px) { @media (min-width: 1200px) {
#head { .ctrl {
width: 1140px; } } width: 285px; }
.ctrl.open,
.ctrl:hover {
max-width: 570px;
min-width: 285px;
width: auto; } }
#head .loading { #head .loading {
display: none; } display: none; }
@ -188,12 +199,6 @@ div.logo.inverse:before {
border: 0; border: 0;
text-transform: none; } text-transform: none; }
.ctrl.open,
.ctrl:hover {
max-width: 33.33333%;
min-width: 16.66667%;
width: auto; }
.ctrl.navbar.open, .ctrl.navbar.open,
.ctrl.navbar:hover { .ctrl.navbar:hover {
max-width: none; max-width: none;
@ -426,65 +431,63 @@ div.logo.inverse:before {
line-height: 1rem; line-height: 1rem;
margin-bottom: 1rem; } } margin-bottom: 1rem; } }
.urbit.navbar.ctrl .icon .home { .urbit.navbar.ctrl {
border-color: #B1B7BD; margin-top: 1rem; }
background-color: #B1B7BD; .urbit.navbar.ctrl,
width: 3rem; .urbit.navbar.ctrl .items {
height: 3rem;
margin: 0 4rem 0 0; }
.urbit.navbar.ctrl .icon .home:before {
content: "~";
color: #fff;
font-size: 2.6rem;
line-height: 2.6rem;
text-align: center;
width: 2.4rem;
display: inline-block; }
.urbit.navbar.ctrl ul.nav li {
height: 3rem;
vertical-align: middle; }
.urbit.navbar.ctrl ul.nav li a {
text-decoration: none;
color: #B1B7BD;
font-weight: 500;
font-size: 1rem;
line-height: 3rem; }
.urbit.navbar.ctrl ul.nav .btn {
border: 3px solid #0500F0;
margin-top: -3px;
height: 3rem;
padding: 0rem; }
.urbit.navbar.ctrl ul.nav .btn a {
font-size: 1rem;
color: #0500F0;
letter-spacing: 0; }
.urbit.navbar.ctrl ul.nav .btn.selected,
.urbit.navbar.ctrl ul.nav .btn:hover {
background-color: #0500F0; }
.urbit.navbar.ctrl ul.nav .btn.selected a,
.urbit.navbar.ctrl ul.nav .btn:hover a {
color: #fff; }
.urbit.navbar.ctrl ul.nav li a:hover,
.urbit.navbar.ctrl ul.nav li.selected a {
color: #0500F0; }
.urbit.navbar.ctrl .subnav ul.nav {
height: 1.5rem; }
.urbit.navbar.ctrl .subnav ul.nav li {
height: 1.5rem; }
.urbit.navbar.ctrl .subnav ul.nav li a {
line-height: 1.5rem; }
.urbit.navbar.ctrl .subnav ul.nav .btn {
position: relative;
height: 3rem; } height: 3rem; }
.urbit.navbar.ctrl .subnav ul.nav .btn a { .urbit.navbar.ctrl .icon .home {
line-height: 3rem; } border-color: #B1B7BD;
background-color: #B1B7BD;
width: 3rem;
height: 3rem;
margin: 0 4rem 0 0; }
.urbit.navbar.ctrl .icon .home:before {
content: "~";
color: #fff;
font-size: 2.6rem;
line-height: 2.6rem;
text-align: center;
width: 2.4rem;
display: inline-block; }
.urbit.navbar.ctrl ul.nav li {
height: 3rem;
vertical-align: middle; }
.urbit.navbar.ctrl ul.nav li a {
text-decoration: none;
color: #B1B7BD;
font-weight: 500;
font-size: 1rem;
line-height: 3rem; }
.urbit.navbar.ctrl ul.nav .btn {
border: 3px solid #000;
margin-top: -3px;
height: 3rem;
padding: 0rem; }
.urbit.navbar.ctrl ul.nav .btn a {
font-size: 1rem;
color: #000;
letter-spacing: 0; }
.urbit.navbar.ctrl ul.nav .btn.selected,
.urbit.navbar.ctrl ul.nav .btn:hover {
background-color: #000; }
.urbit.navbar.ctrl ul.nav .btn.selected a,
.urbit.navbar.ctrl ul.nav .btn:hover a {
color: #fff; }
.urbit.navbar.ctrl ul.nav li a:hover,
.urbit.navbar.ctrl ul.nav li.selected a {
color: #000; }
.urbit.navbar.ctrl .subnav ul.nav {
height: 1.5rem; }
.urbit.navbar.ctrl .subnav ul.nav li {
height: 1.5rem; }
.urbit.navbar.ctrl .subnav ul.nav li a {
line-height: 1.5rem; }
.urbit.navbar.ctrl .subnav ul.nav .btn {
position: relative;
height: 3rem; }
.urbit.navbar.ctrl .subnav ul.nav .btn a {
line-height: 3rem; }
.urbit.home.navbar.ctrl .icon .home { .urbit.home.navbar.ctrl .icon .home {
opacity: 0; opacity: 0;
@ -534,6 +537,16 @@ div.logo.inverse:before {
color: #64DE79; color: #64DE79;
line-height: 1.5rem; } } line-height: 1.5rem; } }
#tree > div > .container {
padding-top: 3rem;
padding-bottom: 6rem; }
@media (max-width: 767px) {
#tree > div > .container {
padding-top: 0; }
#body {
padding-top: 4rem; } }
.lead h1:first-of-type { .lead h1:first-of-type {
padding-bottom: 0; } padding-bottom: 0; }
@ -551,12 +564,12 @@ div.logo.inverse:before {
height: 6rem; height: 6rem;
margin: 1rem 0 0 1rem; } margin: 1rem 0 0 1rem; }
.h-arrow h1 { .h-arrow h1 {
color: #0500F0; color: #000;
display: inline-block; display: inline-block;
line-height: 4rem; } line-height: 4rem; }
.h-arrow h1 code { .h-arrow h1 code {
background-color: transparent; background-color: transparent;
color: #0500F0; } color: #000; }
.footer { .footer {
margin-top: 6rem; margin-top: 6rem;
@ -570,12 +583,12 @@ div.logo.inverse:before {
.body[data-path^='/docs'] h1, .body[data-path^='/docs'] h1,
.body[data-path^='/work'] h1 { .body[data-path^='/work'] h1 {
color: #0500F0; } color: #000; }
.body[data-path^='/docs'] h1 code, .body[data-path^='/docs'] h1 code,
.body[data-path^='/work'] h1 code { .body[data-path^='/work'] h1 code {
background-color: transparent; background-color: transparent;
color: #0500F0; color: #000;
padding: 0; } padding: 0; }
.body[data-path^='/docs'] .book h2, .body[data-path^='/docs'] .book h2,
@ -584,25 +597,25 @@ div.logo.inverse:before {
.body[data-path^='/docs'] .book h2 code, .body[data-path^='/docs'] .book h2 code,
.body[data-path^='/work'] .book h2 code { .body[data-path^='/work'] .book h2 code {
color: #0500F0; color: #000;
background-color: transparent; } background-color: transparent; }
.body[data-path^='/docs'] .book h2 a, .body[data-path^='/docs'] .book h2 a,
.body[data-path^='/work'] .book h2 a { .body[data-path^='/work'] .book h2 a {
color: #0500F0; } color: #000; }
.body[data-path^='/docs'] .book hr, .body[data-path^='/docs'] .book hr,
.body[data-path^='/work'] .book hr { .body[data-path^='/work'] .book hr {
margin-bottom: 3rem; } margin-bottom: 3rem; }
.body[data-path^='/work'] h2 { .body[data-path^='/work'] h2 {
color: #0500F0; } color: #000; }
.body[data-path^='/docs/system/hoon/runes/'] h1 { .body[data-path^='/docs/system/hoon/runes/'] h1 {
color: #B1B7BD; } color: #B1B7BD; }
.body[data-path^='/docs/system/hoon/runes/basic'] h1 { .body[data-path^='/docs/system/hoon/runes/basic'] h1 {
color: #0500F0; } color: #000; }
.body[data-path^='/docs/system/hoon/library/'] h3 { .body[data-path^='/docs/system/hoon/library/'] h3 {
font-size: 1.5rem; } font-size: 1.5rem; }
@ -614,8 +627,11 @@ div.logo.inverse:before {
padding-top: 0; padding-top: 0;
margin-bottom: 0; } margin-bottom: 0; }
.body .urbit .logo {
background-color: #fff; }
.body .urbit h1 { .body .urbit h1 {
color: #0500F0; color: #000;
line-height: 4rem; } line-height: 4rem; }
.body .urbit a.green:hover { .body .urbit a.green:hover {
@ -623,6 +639,9 @@ div.logo.inverse:before {
.body .urbit .container.stack { .body .urbit .container.stack {
margin-bottom: 3rem; } margin-bottom: 3rem; }
.body .urbit .container.stack p {
font-size: 1.2rem;
line-height: 2rem; }
.body .urbit .container.stack.six { .body .urbit .container.stack.six {
margin-top: 12rem; margin-top: 12rem;
@ -637,7 +656,7 @@ div.logo.inverse:before {
.body .urbit button.submit:hover, .body .urbit button.submit:hover,
.body .urbit .btn.black:hover { .body .urbit .btn.black:hover {
background-color: #0500F0; background-color: #000;
color: #fff; } color: #fff; }
.body .urbit .front { .body .urbit .front {
@ -784,6 +803,104 @@ div.logo.inverse:before {
.body .urbit .slide .pair .image.right { .body .urbit .slide .pair .image.right {
margin-top: 2rem; } } margin-top: 2rem; } }
@media (max-width: 767px) {
#body.plan {
padding-top: 0; } }
.body .plan .above {
background-color: #000; }
.body .plan .above .mono,
.body .plan .above h6 {
font-size: 1.2rem; }
.body .plan .above h6 {
padding-top: 0; }
.body .plan .above .mono {
font-weight: 200; }
.body .plan .above > .container {
padding-top: 6rem;
padding-bottom: 6rem; }
.body .plan .above .home {
border-radius: 50%;
height: 2.4rem;
width: 2.4rem;
border: 4px solid #fff;
display: inline-block;
float: left;
margin-left: -4.4rem;
margin-top: 1rem; }
.body .plan .above .edit {
background-color: transparent;
border: 0;
padding: 0;
font-weight: 500;
border-bottom: 3px solid #fff;
line-height: 1rem;
padding-top: 2rem; }
.body .plan .above .grid .tr .td {
font-family: 'scp'; }
.body .plan .above .grid .tr .td:first-child {
font-family: 'bau'; }
.body .plan .above input {
background-color: #373a3c;
border: none; }
.body .plan .above .panel a {
text-decoration: none;
border-bottom: 2px solid #55595c;
font-weight: 500;
color: #55595c; }
.body .plan .above .panel a:hover {
border-color: #fff;
color: #fff; }
.body .plan .panel.stack {
padding-top: 0;
padding-bottom: 0; }
.body .plan .plan.stack {
padding-top: 4rem; }
.body .plan .pull-right {
float: right; }
.body .plan .above,
.body .plan .above a {
color: #fff; }
.body .plan .service {
white-space: nowrap; }
.body .plan .service:before {
content: " ";
display: inline-block;
border-radius: 50%;
height: .5rem;
width: .5rem;
background-color: #64DE79;
margin-right: .6rem; }
.body .plan .grid .td {
display: table-cell; }
.body .plan .grid .tr .td:first-child {
min-width: 9rem;
margin-right: 2rem;
letter-spacing: 1px;
color: #B1B7BD; }
.stream .mini-module {
margin-top: 3rem; }
.stream h6 {
color: #55595c;
font-size: 1rem;
margin-bottom: 2rem; }
@media (max-width: 767px) {
.grid .td {
display: block; }
.tr .td:first-child {
margin-top: 1rem; } }
@keyframes menu-open { @keyframes menu-open {
0% { 0% {
visibility: hidden; } visibility: hidden; }
@ -905,7 +1022,7 @@ div.logo.inverse:before {
text-decoration: none; } text-decoration: none; }
.body[data-path^='/docs'] .list h1, .body[data-path^='/docs'] .list h1,
.body[data-path^='/work'] .list h1 { .body[data-path^='/work'] .list h1 {
border-bottom: 2px solid #55595c; } border-bottom: 2px solid #000; }
.body[data-path^='/work'] .list.main a, .body[data-path^='/work'] .list.main a,
.body[data-path^='/work'] .list.main h1 { .body[data-path^='/work'] .list.main h1 {
@ -916,40 +1033,37 @@ div.logo.inverse:before {
.body[data-path^='/work'] .list.main h1 { .body[data-path^='/work'] .list.main h1 {
border-width: 4px; } border-width: 4px; }
.body[data-path^='/docs'] .list.runes { .body[data-path^='/docs'] .list.runes a h1,
margin-top: 3rem; } .body[data-path^='/docs'] .list.runes a div,
.body[data-path^='/docs'] .list.runes li { .body[data-path^='/docs'] .list.runes a p {
height: 3rem; } display: inline-block; }
.body[data-path^='/docs'] .list.runes a h1,
.body[data-path^='/docs'] .list.runes a div, .body[data-path^='/docs'] .list.runes a p {
.body[data-path^='/docs'] .list.runes a p { font-weight: 300; }
display: inline; }
.body[data-path^='/docs'] .list.runes a { .body[data-path^='/docs'] .list.runes a {
text-decoration: none; } text-decoration: none; }
.body[data-path^='/docs'] .list.runes a,
.body[data-path^='/docs'] .list.runes a h1 code { .body[data-path^='/docs'] .list.runes a,
color: #000; } .body[data-path^='/docs'] .list.runes a h1 code {
.body[data-path^='/docs'] .list.runes a h1 code { color: #000; }
margin-right: 1rem;
background-color: transparent; .body[data-path^='/docs'] .list.runes a h1 {
color: #55595c; } display: block;
.body[data-path^='/docs'] .list.runes a code { margin-bottom: .3rem;
background-color: #eceeef; } height: 1.8rem; }
.body[data-path^='/docs'] .list.runes a code {
padding: .3rem; } .body[data-path^='/docs'] .list.runes a h1 code {
.body[data-path^='/docs'] .list.runes a:after { background-color: transparent;
content: "▶"; font-weight: 500;
width: 1rem; font-size: 1.2rem;
font-size: .6rem; padding: 0; }
vertical-align: middle;
padding: .3rem; .body[data-path^='/docs'] .list.runes a code {
padding-top: .4rem; background-color: #eceeef; }
line-height: 1rem;
margin-left: 1rem; .body[data-path^='/docs'] .list.runes a code {
background-color: #B1B7BD; padding: .3rem; }
color: #fff; }
.body[data-path^='/docs'] .list.runes a:hover:after {
background-color: #0500F0; }
.urbit ul.blog { .urbit ul.blog {
list-style-type: none; list-style-type: none;
@ -1048,16 +1162,13 @@ div.logo.inverse:before {
.sections ul li a, .sections ul li a,
.sections ul li h1 span { .sections ul li h1 span {
color: #55595c; color: #55595c;
height: 2rem; } margin-bottom: 1rem;
line-height: 1.5rem; }
.sections .kids > div { .sections .kids > div {
display: inline-block; display: inline-block;
vertical-align: top; vertical-align: top;
margin-right: 3rem;
margin-top: 2rem;
min-width: 14rem;
margin-bottom: 3rem; margin-bottom: 3rem;
padding: 0;
float: none; } float: none; }
.sections .kids > div p { .sections .kids > div p {

View File

@ -101,8 +101,10 @@ module.exports = {
}; };
},{"../dispatcher/Dispatcher.coffee":21,"../persistence/TreePersistence.coffee":23}],2:[function(require,module,exports){ },{"../dispatcher/Dispatcher.coffee":22,"../persistence/TreePersistence.coffee":24}],2:[function(require,module,exports){
var TreeActions, TreeStore, _load, code, div, recl, ref, span; var TreeActions, TreeStore, _load, code, div, fragsrc, recl, ref, span, util;
util = require('../utils/util.coffee');
_load = require('./LoadComponent.coffee'); _load = require('./LoadComponent.coffee');
@ -114,6 +116,19 @@ recl = React.createClass;
ref = React.DOM, div = ref.div, span = ref.span, code = ref.code; ref = React.DOM, div = ref.div, span = ref.span, code = ref.code;
fragsrc = function(src, basePath) {
var base, pathname;
if (src != null) {
basePath = util.basepath(basePath);
if (basePath.slice(-1) !== "/") {
basePath += "/";
}
base = new URL(basePath, document.location);
pathname = new URL(src, base).pathname;
return util.fragpath(pathname);
}
};
module.exports = function(queries, Child, load) { module.exports = function(queries, Child, load) {
if (load == null) { if (load == null) {
load = _load; load = _load;
@ -129,8 +144,12 @@ module.exports = function(queries, Child, load) {
} }
}, },
getPath: function() { getPath: function() {
var path, ref1; var base, path, ref1, ref2;
path = (ref1 = this.props.dataPath) != null ? ref1 : TreeStore.getCurr(); path = this.props.dataPath;
base = (ref1 = this.props.basePath) != null ? ref1 : TreeStore.getCurr();
if (path == null) {
path = (ref2 = fragsrc(this.props.src, base)) != null ? ref2 : base;
}
if (path.slice(-1) === "/") { if (path.slice(-1) === "/") {
return path.slice(0, -1); return path.slice(0, -1);
} else { } else {
@ -255,8 +274,8 @@ module.exports = function(queries, Child, load) {
}; };
},{"../actions/TreeActions.coffee":1,"../stores/TreeStore.coffee":24,"./LoadComponent.coffee":11}],3:[function(require,module,exports){ },{"../actions/TreeActions.coffee":1,"../stores/TreeStore.coffee":25,"../utils/util.coffee":27,"./LoadComponent.coffee":11}],3:[function(require,module,exports){
var Comments, Plan, TreeActions, TreeStore, a, clas, div, extras, h1, h3, img, input, load, p, query, reactify, recl, ref, rele, util; var Comments, TreeActions, TreeStore, a, clas, div, extras, h1, h3, img, input, load, p, query, reactify, recl, ref, rele, util;
clas = require('classnames'); clas = require('classnames');
@ -272,8 +291,6 @@ TreeStore = require('../stores/TreeStore.coffee');
Comments = require('./CommentsComponent.coffee'); Comments = require('./CommentsComponent.coffee');
Plan = require('./PlanComponent.coffee');
util = require('../utils/util.coffee'); util = require('../utils/util.coffee');
recl = React.createClass; recl = React.createClass;
@ -355,7 +372,6 @@ extras = {
}, this.props.author); }, this.props.author);
} }
}), }),
plan: Plan,
next: query({ next: query({
path: 't', path: 't',
kids: { kids: {
@ -454,6 +470,7 @@ module.exports = query({
if ((_.keys(props)).length === 0) { if ((_.keys(props)).length === 0) {
props[name] = _this.props.meta[name]; props[name] = _this.props.meta[name];
} }
props.key = name;
return React.createElement(extras[name], props); return React.createElement(extras[name], props);
} }
}; };
@ -462,7 +479,7 @@ module.exports = query({
body: true body: true
}; };
if (this.props.meta.anchor !== 'none' && this.props.meta.navmode !== 'navbar') { if (this.props.meta.anchor !== 'none' && this.props.meta.navmode !== 'navbar') {
innerClas['col-md-10'] = true; innerClas['col-md-9'] = true;
innerClas['col-md-offset-3'] = true; innerClas['col-md-offset-3'] = true;
} }
if (this.props.meta.navmode === 'navbar' && this.props.meta.container !== 'false') { if (this.props.meta.navmode === 'navbar' && this.props.meta.container !== 'false') {
@ -474,7 +491,7 @@ module.exports = query({
parts = [ parts = [
extra('spam'), extra('logo', { extra('spam'), extra('logo', {
color: this.props.meta.logo color: this.props.meta.logo
}), extra('plan'), reactify(this.props.body), extra('next', { }), reactify(this.props.body, 'body'), extra('next', {
dataPath: this.props.sein, dataPath: this.props.sein,
curr: this.props.name curr: this.props.name
}), extra('comments'), extra('footer', { }), extra('comments'), extra('footer', {
@ -505,13 +522,13 @@ module.exports = query({
render: function() { render: function() {
return div({ return div({
id: 'body', id: 'body',
className: "col-md-offset-3 col-md-10" className: "col-md-offset-3 col-md-9"
}, rele(load)); }, rele(load));
} }
})); }));
},{"../actions/TreeActions.coffee":1,"../stores/TreeStore.coffee":24,"../utils/util.coffee":26,"./Async.coffee":2,"./CommentsComponent.coffee":5,"./LoadComponent.coffee":11,"./PlanComponent.coffee":14,"./Reactify.coffee":15,"classnames":27}],4:[function(require,module,exports){ },{"../actions/TreeActions.coffee":1,"../stores/TreeStore.coffee":25,"../utils/util.coffee":27,"./Async.coffee":2,"./CommentsComponent.coffee":5,"./LoadComponent.coffee":11,"./Reactify.coffee":16,"classnames":28}],4:[function(require,module,exports){
var div, recl, ref, textarea; var div, recl, ref, textarea;
recl = React.createClass; recl = React.createClass;
@ -613,12 +630,10 @@ module.exports = query({
}); });
return div({}, div({ return div({}, div({
className: "add-comment" className: "add-comment"
}, [ }, form({
form({ ref: "in",
ref: "in", onSubmit: this.onSubmit
onSubmit: this.onSubmit }, textarea(textareaAttr), input(inputAttr))), (this.state.loading === true ? rele(load) : ""), div({
}, [textarea(textareaAttr), input(inputAttr)])
]), (this.state.loading === true ? rele(load) : ""), div({
className: "comments" className: "comments"
}, this.props.comt.map(function(props, key) { }, this.props.comt.map(function(props, key) {
return rele(Comment, _.extend({ return rele(Comment, _.extend({
@ -629,7 +644,7 @@ module.exports = query({
})); }));
},{"../actions/TreeActions.coffee":1,"../utils/util.coffee":26,"./Async.coffee":2,"./LoadComponent.coffee":11,"./Reactify.coffee":15,"classnames":27}],6:[function(require,module,exports){ },{"../actions/TreeActions.coffee":1,"../utils/util.coffee":27,"./Async.coffee":2,"./LoadComponent.coffee":11,"./Reactify.coffee":16,"classnames":28}],6:[function(require,module,exports){
var div, recl; var div, recl;
recl = React.createClass; recl = React.createClass;
@ -645,6 +660,8 @@ module.exports = {
email: require('./EmailComponent.coffee'), email: require('./EmailComponent.coffee'),
module: require('./ModuleComponent.coffee'), module: require('./ModuleComponent.coffee'),
script: require('./ScriptComponent.coffee'), script: require('./ScriptComponent.coffee'),
plan: require('./PlanComponent.coffee'),
panel: require('./PanelComponent.coffee'),
lost: recl({ lost: recl({
render: function() { render: function() {
return div({}, "<lost(", this.props.children, ")>"); return div({}, "<lost(", this.props.children, ")>");
@ -653,7 +670,7 @@ module.exports = {
}; };
},{"./CodeMirror.coffee":4,"./EmailComponent.coffee":8,"./KidsComponent.coffee":9,"./ListComponent.coffee":10,"./ModuleComponent.coffee":12,"./ScriptComponent.coffee":16,"./SearchComponent.coffee":17,"./TocComponent.coffee":19}],7:[function(require,module,exports){ },{"./CodeMirror.coffee":4,"./EmailComponent.coffee":8,"./KidsComponent.coffee":9,"./ListComponent.coffee":10,"./ModuleComponent.coffee":12,"./PanelComponent.coffee":14,"./PlanComponent.coffee":15,"./ScriptComponent.coffee":17,"./SearchComponent.coffee":18,"./TocComponent.coffee":20}],7:[function(require,module,exports){
var a, div, recl, ref, util; var a, div, recl, ref, util;
util = require('../utils/util.coffee'); util = require('../utils/util.coffee');
@ -711,7 +728,7 @@ module.exports = recl({
}); });
},{"../utils/util.coffee":26}],8:[function(require,module,exports){ },{"../utils/util.coffee":27}],8:[function(require,module,exports){
var button, div, input, p, reactify, recl, ref; var button, div, input, p, reactify, recl, ref;
reactify = require('./Reactify.coffee'); reactify = require('./Reactify.coffee');
@ -797,7 +814,7 @@ module.exports = recl({
}); });
},{"./Reactify.coffee":15}],9:[function(require,module,exports){ },{"./Reactify.coffee":16}],9:[function(require,module,exports){
var a, clas, div, hr, li, query, reactify, recl, ref, ul; var a, clas, div, hr, li, query, reactify, recl, ref, ul;
clas = require('classnames'); clas = require('classnames');
@ -813,12 +830,13 @@ ref = React.DOM, div = ref.div, a = ref.a, ul = ref.ul, li = ref.li, hr = ref.hr
module.exports = query({ module.exports = query({
kids: { kids: {
body: 'r', body: 'r',
meta: 'j' meta: 'j',
path: 't'
} }
}, recl({ }, recl({
displayName: "Kids", displayName: "Kids",
render: function() { render: function() {
var _k, d, elem, k, keyed, keys, kidClas, kidsClas, ref1, ref2, ref3, ref4, sorted, str, v; var _k, body, d, elem, k, keyed, keys, kidClas, kidsClas, ref1, ref2, ref3, ref4, sorted, str, v;
sorted = true; sorted = true;
keyed = {}; keyed = {};
ref1 = this.props.kids; ref1 = this.props.kids;
@ -871,12 +889,15 @@ module.exports = query({
for (i = 0, len = keys.length; i < len; i++) { for (i = 0, len = keys.length; i < len; i++) {
k = keys[i]; k = keys[i];
elem = (ref5 = this.props.kids[keyed[k]]) != null ? ref5 : ""; elem = (ref5 = this.props.kids[keyed[k]]) != null ? ref5 : "";
body = reactify(elem.body, k, {
basePath: elem.path
});
results.push([ results.push([
div({ div({
key: keyed[k], key: keyed[k],
id: keyed[k], id: keyed[k],
className: kidClas className: kidClas
}, reactify(elem.body)), hr({}) }, body), hr({})
]); ]);
} }
return results; return results;
@ -885,7 +906,7 @@ module.exports = query({
})); }));
},{"./Async.coffee":2,"./Reactify.coffee":15,"classnames":27}],10:[function(require,module,exports){ },{"./Async.coffee":2,"./Reactify.coffee":16,"classnames":28}],10:[function(require,module,exports){
var a, clas, div, h1, li, pre, query, reactify, recl, ref, span, ul, util; var a, clas, div, h1, li, pre, query, reactify, recl, ref, span, ul, util;
clas = require('classnames'); clas = require('classnames');
@ -1027,45 +1048,47 @@ module.exports = query({
}; };
parts.push(image); parts.push(image);
} }
if (this.props.dataPreview) { }
if (!elem.meta.preview) { if (this.props.dataPreview) {
parts.push.apply(parts, elem.snip.c.slice(0, 2)); if (!elem.meta.preview) {
} else { parts.push.apply(parts, elem.snip.c.slice(0, 2));
if (elem.meta.preview) { } else {
preview = { if (elem.meta.preview) {
gn: 'p', preview = {
ga: { gn: 'p',
className: 'preview'
},
c: [elem.meta.preview]
};
} else {
preview = elem.snip;
}
parts.push(preview);
}
if (elem.meta.author) {
author = {
gn: 'h3',
ga: { ga: {
className: 'author' className: 'preview'
}, },
c: [elem.meta.author] c: [elem.meta.preview]
}; };
parts.push(author); } else {
preview = elem.snip;
} }
cont = { parts.push(preview);
gn: 'a',
ga: {
className: 'btn continue',
href: href
},
c: ['Continue reading']
};
parts.push(cont);
linked = true;
} }
} }
if (this.props.dataType === 'post') {
if (elem.meta.author) {
author = {
gn: 'h3',
ga: {
className: 'author'
},
c: [elem.meta.author]
};
parts.push(author);
}
cont = {
gn: 'a',
ga: {
className: 'btn continue',
href: href
},
c: ['Continue reading']
};
parts.push(cont);
linked = true;
}
} }
node = reactify({ node = reactify({
gn: 'div', gn: 'div',
@ -1088,7 +1111,7 @@ module.exports = query({
})); }));
},{"../utils/util.coffee":26,"./Async.coffee":2,"./Reactify.coffee":15,"classnames":27}],11:[function(require,module,exports){ },{"../utils/util.coffee":27,"./Async.coffee":2,"./Reactify.coffee":16,"classnames":28}],11:[function(require,module,exports){
var div, recl, ref, span; var div, recl, ref, span;
recl = React.createClass; recl = React.createClass;
@ -1261,7 +1284,6 @@ Nav = React.createFactory(query({
}); });
navClas = { navClas = {
navbar: this.props.meta.navmode === 'navbar', navbar: this.props.meta.navmode === 'navbar',
'col-md-2': this.props.meta.navmode !== 'navbar',
ctrl: true, ctrl: true,
open: this.state.open === true open: this.state.open === true
}; };
@ -1328,7 +1350,7 @@ Nav = React.createFactory(query({
}, },
render: function() { render: function() {
return div({ return div({
className: "col-md-2 ctrl", className: "ctrl",
"data-path": this.props.dataPath, "data-path": this.props.dataPath,
key: "nav-loading" key: "nav-loading"
}, div({ }, div({
@ -1354,7 +1376,7 @@ module.exports = query({
name: 't', name: 't',
meta: 'j' meta: 'j'
}, recl({ }, recl({
displayName: "Anchor", displayName: "Nav",
stateFromStore: function() { stateFromStore: function() {
return TreeStore.getNav(); return TreeStore.getNav();
}, },
@ -1392,6 +1414,10 @@ module.exports = query({
if (href && !/^https?:\/\//i.test(href)) { if (href && !/^https?:\/\//i.test(href)) {
e.preventDefault(); e.preventDefault();
url = new URL(this.href); url = new URL(this.href);
if (urb.util.basepath("", url.pathname) !== urb.util.basepath("", document.location.pathname)) {
document.location = this.href;
return;
}
if (url.pathname.substr(-1) !== "/") { if (url.pathname.substr(-1) !== "/") {
url.pathname += "/"; url.pathname += "/";
} }
@ -1410,12 +1436,16 @@ module.exports = query({
} }
}, },
setTitle: function() { setTitle: function() {
var ref1, title; var path, ref1, title;
title = $('#body h1').first().text() || this.props.name; title = $('#body h1').first().text() || this.props.name;
if ((ref1 = this.props.meta) != null ? ref1.title : void 0) { if ((ref1 = this.props.meta) != null ? ref1.title : void 0) {
title = this.props.meta.title; title = this.props.meta.title;
} }
return document.title = title + " - " + this.props.path; path = this.props.path;
if (path === "") {
path = "/";
}
return document.title = title + " - " + path;
}, },
pullPath: function() { pullPath: function() {
var l, path; var l, path;
@ -1482,7 +1512,63 @@ module.exports = query({
})); }));
},{"../actions/TreeActions.coffee":1,"../stores/TreeStore.coffee":24,"../utils/util.coffee":26,"./Async.coffee":2,"./BodyComponent.coffee":3,"./DpadComponent.coffee":7,"./Reactify.coffee":15,"./SibsComponent.coffee":18,"classnames":27}],14:[function(require,module,exports){ },{"../actions/TreeActions.coffee":1,"../stores/TreeStore.coffee":25,"../utils/util.coffee":27,"./Async.coffee":2,"./BodyComponent.coffee":3,"./DpadComponent.coffee":7,"./Reactify.coffee":16,"./SibsComponent.coffee":19,"classnames":28}],14:[function(require,module,exports){
var a, li, nav, recl, ref, rele, ul;
recl = React.createClass;
rele = React.createElement;
ref = React.DOM, nav = ref.nav, ul = ref.ul, li = ref.li, a = ref.a;
module.exports = recl({
render: function() {
if (urb.user !== urb.ship) {
return nav({
className: "navbar panel"
}, [
ul({
className: "nav navbar-nav"
}, [
li({
className: 'nav-item pull-right'
}, a({
href: "/~~"
}, "Log in"))
])
]);
} else {
return nav({
className: "navbar panel"
}, [
ul({
className: "nav navbar-nav"
}, [
li({
className: "nav-item"
}, a({
href: "/~~/talk"
}, "Talk")), li({
className: "nav-item"
}, a({
href: "/~~/dojo"
}, "Dojo")), li({
className: "nav-item"
}, a({
href: "/~~/static"
}, "Static")), li({
className: 'nav-item pull-right'
}, a({
href: "/~/away"
}, "Log out"))
])
]);
}
}
});
},{}],15:[function(require,module,exports){
var Grid, TreeActions, a, button, code, div, h6, input, load, query, recl, ref1, ref2, rele, span, table, tbody, td, textarea, tr, var Grid, TreeActions, a, button, code, div, h6, input, load, query, recl, ref1, ref2, rele, span, table, tbody, td, textarea, tr,
slice = [].slice; slice = [].slice;
@ -1504,14 +1590,18 @@ Grid = function() {
var _td, _tr, props, rows; var _td, _tr, props, rows;
props = arguments[0], rows = 2 <= arguments.length ? slice.call(arguments, 1) : []; props = arguments[0], rows = 2 <= arguments.length ? slice.call(arguments, 1) : [];
_td = function(x) { _td = function(x) {
return td({}, x); return div({
className: "td"
}, x);
}; };
_tr = function(x) { _tr = function(x) {
if (x != null) { if (x != null) {
return tr.apply(null, [{}].concat(slice.call(x.map(_td)))); return div.apply(null, [{
className: "tr"
}].concat(slice.call(x.map(_td))));
} }
}; };
return table(props, tbody.apply(null, [{}].concat(slice.call(rows.map(_tr))))); return div.apply(null, [props].concat(slice.call(rows.map(_tr))));
}; };
module.exports = query({ module.exports = query({
@ -1574,12 +1664,13 @@ module.exports = query({
}; };
} else if (this.state.edit) { } else if (this.state.edit) {
editButton = button({ editButton = button({
className: 'edit',
onClick: (function(_this) { onClick: (function(_this) {
return function() { return function() {
return _this.saveInfo(); return _this.saveInfo();
}; };
})(this) })(this)
}, "save"); }, "Save");
editable = (function(_this) { editable = (function(_this) {
return function(ref, val, placeholder) { return function(ref, val, placeholder) {
return input({ return input({
@ -1598,6 +1689,7 @@ module.exports = query({
})(this); })(this);
} else { } else {
editButton = button({ editButton = button({
className: 'edit',
onClick: (function(_this) { onClick: (function(_this) {
return function() { return function() {
return _this.setState({ return _this.setState({
@ -1605,7 +1697,7 @@ module.exports = query({
}); });
}; };
})(this) })(this)
}, "edit"); }, "Edit");
editable = (function(_this) { editable = (function(_this) {
return function(ref, val, placeholder) { return function(ref, val, placeholder) {
var ref6, ref7; var ref6, ref7;
@ -1622,9 +1714,13 @@ module.exports = query({
} }
return div({ return div({
className: "plan" className: "plan"
}, editButton, code({}, "~" + urb.ship), (who != null) || this.state.edit ? h6({}, editable('who', who)) : void 0, Grid({ }, div({
className: "home"
}, ""), div({
className: "mono"
}, "~" + urb.ship), (who != null) || this.state.edit ? h6({}, editable('who', who, "Sun Tzu")) : void 0, Grid({
className: "grid" className: "grid"
}, ["Location:", editable('loc', loc, "unknown")], ["Issued by:", issuedBy], [ }, ["Location:", editable('loc', loc, "Unknown")], ["Issued by:", issuedBy], [
"Immutable link:", a({ "Immutable link:", a({
href: beak + "/web" + path href: beak + "/web" + path
}, beak) }, beak)
@ -1635,19 +1731,20 @@ module.exports = query({
for (key in acc) { for (key in acc) {
ref6 = acc[key], usr = ref6.usr, url = ref6.url; ref6 = acc[key], usr = ref6.usr, url = ref6.url;
results.push(div({ results.push(div({
key: key key: key,
className: 'service'
}, url == null ? key + "/" + usr : a({ }, url == null ? key + "/" + usr : a({
href: url href: url
}, key + "/" + usr))); }, key + "/" + usr)));
} }
return results; return results;
})()) })())
] : void 0)); ] : void 0), editButton);
} }
})); }));
},{"../actions/TreeActions.coffee":1,"./Async.coffee":2,"./LoadComponent.coffee":11}],15:[function(require,module,exports){ },{"../actions/TreeActions.coffee":1,"./Async.coffee":2,"./LoadComponent.coffee":11}],16:[function(require,module,exports){
var TreeStore, Virtual, div, load, reactify, recl, ref, rele, span, walk; var TreeStore, Virtual, div, load, reactify, recl, ref, rele, span, walk;
recl = React.createClass; recl = React.createClass;
@ -1706,26 +1803,34 @@ Virtual = recl({
return TreeStore.removeChangeListener(this._onChangeStore); return TreeStore.removeChangeListener(this._onChangeStore);
}, },
render: function() { render: function() {
var components; var basePath, components;
components = this.state.components; components = this.state.components;
basePath = this.props.basePath;
return walk(this.props.manx, function() { return walk(this.props.manx, function() {
return load({}, ""); return load({}, "");
}, function(str) { }, function(str) {
return str; return str;
}, function(arg, key) { }, function(arg, key) {
var c, ga, gn, ref1; var c, ga, gn, props, ref1;
gn = arg.gn, ga = arg.ga, c = arg.c; gn = arg.gn, ga = arg.ga, c = arg.c;
return rele((ref1 = components[gn]) != null ? ref1 : gn, _.extend({ props = {
key: key key: key
}, ga), c.length ? c : void 0); };
if (components[gn]) {
props.basePath = basePath;
}
return rele((ref1 = components[gn]) != null ? ref1 : gn, _.extend(props, ga), c.length ? c : void 0);
}); });
} }
}); });
reactify = function(manx, key) { reactify = function(manx, key, arg) {
var basePath;
basePath = (arg != null ? arg : {}).basePath;
return rele(Virtual, { return rele(Virtual, {
manx: manx, manx: manx,
key: key key: key,
basePath: basePath
}); });
}; };
@ -1735,7 +1840,7 @@ module.exports = _.extend(reactify, {
}); });
},{"../stores/TreeStore.coffee":24,"./LoadComponent.coffee":11}],16:[function(require,module,exports){ },{"../stores/TreeStore.coffee":25,"./LoadComponent.coffee":11}],17:[function(require,module,exports){
var appendNext, recl, rele, waitingScripts; var appendNext, recl, rele, waitingScripts;
recl = React.createClass; recl = React.createClass;
@ -1782,7 +1887,7 @@ module.exports = recl({
}); });
},{}],17:[function(require,module,exports){ },{}],18:[function(require,module,exports){
var a, div, input, query, reactify, recl, ref, var a, div, input, query, reactify, recl, ref,
slice = [].slice; slice = [].slice;
@ -1920,7 +2025,7 @@ module.exports = query({
})); }));
},{"./Async.coffee":2,"./Reactify.coffee":15}],18:[function(require,module,exports){ },{"./Async.coffee":2,"./Reactify.coffee":16}],19:[function(require,module,exports){
var a, clas, li, query, reactify, recl, ref, ul, util; var a, clas, li, query, reactify, recl, ref, ul, util;
util = require('../utils/util.coffee'); util = require('../utils/util.coffee');
@ -2005,7 +2110,7 @@ module.exports = query({
})); }));
},{"../utils/util.coffee":26,"./Async.coffee":2,"./Reactify.coffee":15,"classnames":27}],19:[function(require,module,exports){ },{"../utils/util.coffee":27,"./Async.coffee":2,"./Reactify.coffee":16,"classnames":28}],20:[function(require,module,exports){
var div, query, reactify, recl, var div, query, reactify, recl,
slice = [].slice; slice = [].slice;
@ -2142,7 +2247,7 @@ module.exports = query({
})); }));
},{"./Async.coffee":2,"./Reactify.coffee":15}],20:[function(require,module,exports){ },{"./Async.coffee":2,"./Reactify.coffee":16}],21:[function(require,module,exports){
var body, clas, div, head, query, recf, recl; var body, clas, div, head, query, recf, recl;
query = require('./Async.coffee'); query = require('./Async.coffee');
@ -2185,7 +2290,7 @@ module.exports = query({
})); }));
},{"./Async.coffee":2,"./BodyComponent.coffee":3,"./NavComponent.coffee":13,"classnames":27}],21:[function(require,module,exports){ },{"./Async.coffee":2,"./BodyComponent.coffee":3,"./NavComponent.coffee":13,"classnames":28}],22:[function(require,module,exports){
module.exports = _.extend(new Flux.Dispatcher(), { module.exports = _.extend(new Flux.Dispatcher(), {
handleServerAction: function(action) { handleServerAction: function(action) {
return this.dispatch({ return this.dispatch({
@ -2202,7 +2307,7 @@ module.exports = _.extend(new Flux.Dispatcher(), {
}); });
},{}],22:[function(require,module,exports){ },{}],23:[function(require,module,exports){
var rend; var rend;
rend = ReactDOM.render; rend = ReactDOM.render;
@ -2231,7 +2336,7 @@ $(function() {
}); });
},{"./actions/TreeActions.coffee":1,"./components/Components.coffee":6,"./components/TreeComponent.coffee":20,"./utils/scroll.coffee":25,"./utils/util.coffee":26}],23:[function(require,module,exports){ },{"./actions/TreeActions.coffee":1,"./components/Components.coffee":6,"./components/TreeComponent.coffee":21,"./utils/scroll.coffee":26,"./utils/util.coffee":27}],24:[function(require,module,exports){
var dedup, pending, util, waspWait; var dedup, pending, util, waspWait;
util = require('../utils/util.coffee'); util = require('../utils/util.coffee');
@ -2317,7 +2422,7 @@ module.exports = {
}; };
},{"../utils/util.coffee":26}],24:[function(require,module,exports){ },{"../utils/util.coffee":27}],25:[function(require,module,exports){
var EventEmitter, MessageDispatcher, QUERIES, TreeStore, _curr, _data, _nav, _tree, _virt, clog; var EventEmitter, MessageDispatcher, QUERIES, TreeStore, _curr, _data, _nav, _tree, _virt, clog;
EventEmitter = require('events').EventEmitter.EventEmitter; EventEmitter = require('events').EventEmitter.EventEmitter;
@ -2591,7 +2696,7 @@ TreeStore.dispatchToken = MessageDispatcher.register(function(p) {
module.exports = TreeStore; module.exports = TreeStore;
},{"../dispatcher/Dispatcher.coffee":21,"events":28}],25:[function(require,module,exports){ },{"../dispatcher/Dispatcher.coffee":22,"events":29}],26:[function(require,module,exports){
var scroll; var scroll;
scroll = { scroll = {
@ -2685,7 +2790,7 @@ scroll.init();
module.exports = scroll; module.exports = scroll;
},{}],26:[function(require,module,exports){ },{}],27:[function(require,module,exports){
var _basepath; var _basepath;
_basepath = window.urb.util.basepath("/"); _basepath = window.urb.util.basepath("/");
@ -2734,7 +2839,7 @@ module.exports = {
}; };
},{}],27:[function(require,module,exports){ },{}],28:[function(require,module,exports){
/*! /*!
Copyright (c) 2016 Jed Watson. Copyright (c) 2016 Jed Watson.
Licensed under the MIT License (MIT), see Licensed under the MIT License (MIT), see
@ -2784,7 +2889,7 @@ module.exports = {
} }
}()); }());
},{}],28:[function(require,module,exports){ },{}],29:[function(require,module,exports){
// Copyright Joyent, Inc. and other Node contributors. // Copyright Joyent, Inc. and other Node contributors.
// //
// Permission is hereby granted, free of charge, to any person obtaining a // Permission is hereby granted, free of charge, to any person obtaining a
@ -3084,4 +3189,4 @@ function isUndefined(arg) {
return arg === void 0; return arg === void 0;
} }
},{}]},{},[22]); },{}]},{},[23]);