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
$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}
^- silk
=+ ^- hat/(map path lobe)
@ -1311,9 +1316,9 @@
[%$ p.-]
=+ bol=(~(got by lat.ran) lob)
?- -.bol
$direct [%volt q.bol]
$direct (page-to-silk 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 +<)))
@ -2529,8 +2534,8 @@
[%$ +:(need fil.ank:(descend-path:(zu ank:(need alh)) pax))]
=+ bol=(~(got by lat.ran) lob)
?- -.bol
$direct [%volt q.bol]
$delta [%pact $(lob q.q.bol) [%volt r.bol]]
$direct (page-to-silk q.bol)
$delta [%pact $(lob q.q.bol) (page-to-silk r.bol)]
==
::
++ reduce-merge-points

View File

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

View File

@ -156,7 +156,7 @@
(rap 3 |-([i.a ?~(t.a ~ ['-' $(a t.a)])]))
::
++ 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))))
::
++ za :: per event
@ -608,21 +608,37 @@
~/ %fame
|= {cof/cafe bem/beam}
^- (bolt beam)
%+ cope
?~ s.bem (flue cof)
=+ opt=`(list term)`(fall (tear i.s.bem) ~)
?~ opt (flue cof)
|- ^- (bolt (unit beam))
=. i.s.bem (tack opt)
=^ pax bem [(flop s.bem) bem(s ~)]
|^ (cope opts (flux |=(a/(unit beam) (fall a bem))))
::
++ opts :: search unless done
^- (bolt (unit beam))
?^ pax (wide(pax t.pax) (tear i.pax))
%+ cope (lima cof %hoon bem)
|= {cof/cafe vax/(unit vase)} ^- (bolt (unit beam))
?^ vax (fine cof `bem)
?~ t.opt (flue cof)
%+ cope ^$(opt t.opt, t.s.bem :_(t.s.bem i.opt), cof cof)
|= {cof/cafe bem/(unit beam)} ^- (bolt (unit beam))
?^ bem (fine cof bem)
^$(opt :_(t.t.opt (tack i.opt i.t.opt ~)), cof cof)
(flux |=(a/(unit beam) (fall a bem)))
(flux |=(a/(unit vase) ?~(a ~ `bem)))
::
++ wide :: match segments
|= sub/(list term) ^- (bolt (unit beam))
?: =(~ sub) opts
=- (cope - flat)
%^ lash cof 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
|= {cof/cafe for/mark} ^- (bolt vase)
@ -642,6 +658,7 @@
[~ u=(^case a)]
nuck:so
::
++ mota ;~(pfix pat mota:vez) :: atom odor
++ hath (sear plex (stag %conl poor)):vez :: hood path
++ have (sear tome ;~(pfix fas hath)) :: hood beam
++ hith :: static path
@ -716,7 +733,7 @@
(stag %lin ;~(pfix pam lin:read))
(stag %man ;~(pfix tar man: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 %see ;~(pfix col see:read))
(stag %sic ;~(pfix ket sic:read))
@ -770,6 +787,10 @@
=< ;~(sfix (star (sear . day)) gap duz)
|= a/^horn ^- (unit {term ^horn})
?+(-.a ~ $dub `[p.a q.a])
::
++ now
%+ rail ;~((glue cab) mota day)
;~(pfix gap ;~(plug mota day))
::
++ saw
%+ rail
@ -898,11 +919,17 @@
++ keel :: apply mutations
|= {cof/cafe suh/vase yom/(list (pair wing vase))}
^- (bolt vase)
%+ cool =< |.(leaf+"ford: keel {<(murn yom +)>}")
|= {a/wing b/span *}
=+ c=p:(slap suh wing+a)
?: (~(nest ut c) | b) ~
(some [a c b])
%+ cool
=< |. ^- tank
:+ %palm [" " ~ ~ ~]
~[leaf+"ford: keel" rose+[" " ~ ~]^(murn yom +)]
|= {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
%+ slop suh
|- ^- vase
@ -941,27 +968,23 @@
%+ cool |.(leaf+"ford: load {<for>} {<(tope bem)>}")
=. s.bem [for s.bem]
%+ cope (liar cof bem)
|= {cof/cafe cay/cage}
|= {cof/cafe cay/cage} ^- (bolt vase)
?. =(for p.cay)
(flaw cof leaf+"unexpected mark {<p.cay>}" ~)
((lake for) cof q.cay)
(fine cof q.cay)
::
++ lake :: check+coerce
|= for/mark
|= {fit/? for/mark}
|= {cof/cafe sam/vase}
^- (bolt vase)
%+ 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)
|= {cof/cafe tux/vase}
=+ typ=p:(slot 6 tux)
=. typ ?+(-.typ typ $face q.typ)
?: (~(nest ut typ) | p.sam)
(fine cof typ q.sam)
?. fit (flaw cof [%leaf "ford: invalid type: {<p.sam>}"]~)
?. (slob %grab p.tux)
(flaw cof [%leaf "ford: no grab: {<[for bek]>}"]~)
=+ gab=(slap tux [%limb %grab])
@ -982,11 +1005,6 @@
?~ von [p=cof q=[%1 [%c %w bem ~] ~ ~]]
(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
|= {cof/cafe typ/span gen/twig}
%+ (cowl cof) (mule |.((~(play ut typ) gen)))
@ -1085,7 +1103,7 @@
:: %+ cool |.(leaf+"ford: link {<too>} {<for>} {<p.vax>}")
?: =(too for) (fine cof vax)
?: |(=(%noun for) =(%$ for))
((lake too) cof vax)
((lake & too) cof vax)
%+ cope (fang cof for)
|= {cof/cafe pro/vase} ^- (bolt vase)
?: :: =< $ ~% %limb-grow link-jet ~ |.
@ -1230,8 +1248,6 @@
::
$bunt
%+ cool |.(leaf+"ford: bunt {<p.kas>}")
?: ?=($hoon p.kas)
(fine cof %& p.kas [%atom %t ~] '')
%+ cope (fang cof p.kas)
|= {cof/cafe tux/vase}
=+ [typ=p val=q]:(slot 6 tux)
@ -1346,7 +1362,7 @@
::
$vale
%+ 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]))
::
$volt
@ -1559,6 +1575,10 @@
$now
%+ cope (chad cof bax %da p.hon)
(flux |=(a/vase noun+a))
::
$nod
%+ cope (chad cof bax p.hon q.hon)
(flux |=(a/vase noun+a))
::
$nap
%+ cope (chai cof bax p.hon)
@ -1599,7 +1619,7 @@
%+ cope (fade cof %hoon how)
|= {cof/cafe hyd/hood}
%+ 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
@ -1713,12 +1733,6 @@
|=({cof/cafe p/silk q/silk} (cope (make cof q) furl))
==
|= {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)
|= {cof/cafe pro/vase}
?. (slab %grad p.pro)

View File

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

View File

@ -2235,7 +2235,8 @@
{$lin p/(list mark) q/horn} :: /& translates
{$man p/(map knot horn)} :: /* hetero 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
{$see p/hops q/horn} :: /: relative to
{$sic p/twig q/horn} :: /^ cast

View File

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

View File

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

View File

@ -2,7 +2,7 @@
:::: /hoon/comments/tree/ren
::
/? 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
plan: y
title: Home
---
<div class="mini-module">
<p>Stream:</p>
<script src="/~/at/lib/js/urb.js"/>
<script src="https://cdn.rawgit.com/seatgeek/react-infinite/0.8.0/dist/react-infinite.js"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.2/moment-with-locales.js"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.1/moment-timezone.js"/>
<script src="/talk/main.js"/>
<link href="/talk/main.css" rel="stylesheet" />
<talk readonly="" chrono="reverse" station="public" />
<div class="above">
<div class="container panel stack">
<panel></panel>
</div>
<div class="container plan stack">
<div class="col-md-9">
<plan></plan>
</div>
</div>
</div>

View File

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

View File

@ -23,7 +23,7 @@ div.logo {
border-radius: 50%;
vertical-align: middle;
margin-top: -.8rem;
background-color: #0500F0; }
background-color: #000; }
div.logo:before {
content: "~";
@ -97,21 +97,32 @@ div.logo.inverse:before {
.loading.state-3:before {
content: "\25D0"; }
@media (min-width: 544px) {
#head {
width: 576px; } }
@media (min-width: 768px) {
#head {
width: 720px; } }
.ctrl {
width: 180px; }
.ctrl.open,
.ctrl:hover {
max-width: 360px;
min-width: 180px;
width: auto; } }
@media (min-width: 992px) {
#head {
width: 940px; } }
.ctrl {
width: 235px; }
.ctrl.open,
.ctrl:hover {
max-width: 470px;
min-width: 235px;
width: auto; } }
@media (min-width: 1200px) {
#head {
width: 1140px; } }
.ctrl {
width: 285px; }
.ctrl.open,
.ctrl:hover {
max-width: 570px;
min-width: 285px;
width: auto; } }
#head .loading {
display: none; }
@ -188,12 +199,6 @@ div.logo.inverse:before {
border: 0;
text-transform: none; }
.ctrl.open,
.ctrl:hover {
max-width: 33.33333%;
min-width: 16.66667%;
width: auto; }
.ctrl.navbar.open,
.ctrl.navbar:hover {
max-width: none;
@ -426,65 +431,63 @@ div.logo.inverse:before {
line-height: 1rem;
margin-bottom: 1rem; } }
.urbit.navbar.ctrl .icon .home {
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 #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;
.urbit.navbar.ctrl {
margin-top: 1rem; }
.urbit.navbar.ctrl,
.urbit.navbar.ctrl .items {
height: 3rem; }
.urbit.navbar.ctrl .subnav ul.nav .btn a {
line-height: 3rem; }
.urbit.navbar.ctrl .icon .home {
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 {
opacity: 0;
@ -534,6 +537,16 @@ div.logo.inverse:before {
color: #64DE79;
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 {
padding-bottom: 0; }
@ -551,12 +564,12 @@ div.logo.inverse:before {
height: 6rem;
margin: 1rem 0 0 1rem; }
.h-arrow h1 {
color: #0500F0;
color: #000;
display: inline-block;
line-height: 4rem; }
.h-arrow h1 code {
background-color: transparent;
color: #0500F0; }
color: #000; }
.footer {
margin-top: 6rem;
@ -570,12 +583,12 @@ div.logo.inverse:before {
.body[data-path^='/docs'] h1,
.body[data-path^='/work'] h1 {
color: #0500F0; }
color: #000; }
.body[data-path^='/docs'] h1 code,
.body[data-path^='/work'] h1 code {
background-color: transparent;
color: #0500F0;
color: #000;
padding: 0; }
.body[data-path^='/docs'] .book h2,
@ -584,25 +597,25 @@ div.logo.inverse:before {
.body[data-path^='/docs'] .book h2 code,
.body[data-path^='/work'] .book h2 code {
color: #0500F0;
color: #000;
background-color: transparent; }
.body[data-path^='/docs'] .book h2 a,
.body[data-path^='/work'] .book h2 a {
color: #0500F0; }
color: #000; }
.body[data-path^='/docs'] .book hr,
.body[data-path^='/work'] .book hr {
margin-bottom: 3rem; }
.body[data-path^='/work'] h2 {
color: #0500F0; }
color: #000; }
.body[data-path^='/docs/system/hoon/runes/'] h1 {
color: #B1B7BD; }
.body[data-path^='/docs/system/hoon/runes/basic'] h1 {
color: #0500F0; }
color: #000; }
.body[data-path^='/docs/system/hoon/library/'] h3 {
font-size: 1.5rem; }
@ -614,8 +627,11 @@ div.logo.inverse:before {
padding-top: 0;
margin-bottom: 0; }
.body .urbit .logo {
background-color: #fff; }
.body .urbit h1 {
color: #0500F0;
color: #000;
line-height: 4rem; }
.body .urbit a.green:hover {
@ -623,6 +639,9 @@ div.logo.inverse:before {
.body .urbit .container.stack {
margin-bottom: 3rem; }
.body .urbit .container.stack p {
font-size: 1.2rem;
line-height: 2rem; }
.body .urbit .container.stack.six {
margin-top: 12rem;
@ -637,7 +656,7 @@ div.logo.inverse:before {
.body .urbit button.submit:hover,
.body .urbit .btn.black:hover {
background-color: #0500F0;
background-color: #000;
color: #fff; }
.body .urbit .front {
@ -784,6 +803,104 @@ div.logo.inverse:before {
.body .urbit .slide .pair .image.right {
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 {
0% {
visibility: hidden; }
@ -905,7 +1022,7 @@ div.logo.inverse:before {
text-decoration: none; }
.body[data-path^='/docs'] .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 h1 {
@ -916,40 +1033,37 @@ div.logo.inverse:before {
.body[data-path^='/work'] .list.main h1 {
border-width: 4px; }
.body[data-path^='/docs'] .list.runes {
margin-top: 3rem; }
.body[data-path^='/docs'] .list.runes li {
height: 3rem; }
.body[data-path^='/docs'] .list.runes a h1,
.body[data-path^='/docs'] .list.runes a div,
.body[data-path^='/docs'] .list.runes a p {
display: inline; }
.body[data-path^='/docs'] .list.runes a {
text-decoration: none; }
.body[data-path^='/docs'] .list.runes a,
.body[data-path^='/docs'] .list.runes a h1 code {
color: #000; }
.body[data-path^='/docs'] .list.runes a h1 code {
margin-right: 1rem;
background-color: transparent;
color: #55595c; }
.body[data-path^='/docs'] .list.runes a code {
background-color: #eceeef; }
.body[data-path^='/docs'] .list.runes a code {
padding: .3rem; }
.body[data-path^='/docs'] .list.runes a:after {
content: "▶";
width: 1rem;
font-size: .6rem;
vertical-align: middle;
padding: .3rem;
padding-top: .4rem;
line-height: 1rem;
margin-left: 1rem;
background-color: #B1B7BD;
color: #fff; }
.body[data-path^='/docs'] .list.runes a:hover:after {
background-color: #0500F0; }
.body[data-path^='/docs'] .list.runes a h1,
.body[data-path^='/docs'] .list.runes a div,
.body[data-path^='/docs'] .list.runes a p {
display: inline-block; }
.body[data-path^='/docs'] .list.runes a p {
font-weight: 300; }
.body[data-path^='/docs'] .list.runes a {
text-decoration: none; }
.body[data-path^='/docs'] .list.runes a,
.body[data-path^='/docs'] .list.runes a h1 code {
color: #000; }
.body[data-path^='/docs'] .list.runes a h1 {
display: block;
margin-bottom: .3rem;
height: 1.8rem; }
.body[data-path^='/docs'] .list.runes a h1 code {
background-color: transparent;
font-weight: 500;
font-size: 1.2rem;
padding: 0; }
.body[data-path^='/docs'] .list.runes a code {
background-color: #eceeef; }
.body[data-path^='/docs'] .list.runes a code {
padding: .3rem; }
.urbit ul.blog {
list-style-type: none;
@ -1048,16 +1162,13 @@ div.logo.inverse:before {
.sections ul li a,
.sections ul li h1 span {
color: #55595c;
height: 2rem; }
margin-bottom: 1rem;
line-height: 1.5rem; }
.sections .kids > div {
display: inline-block;
vertical-align: top;
margin-right: 3rem;
margin-top: 2rem;
min-width: 14rem;
margin-bottom: 3rem;
padding: 0;
float: none; }
.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){
var TreeActions, TreeStore, _load, code, div, recl, ref, span;
},{"../dispatcher/Dispatcher.coffee":22,"../persistence/TreePersistence.coffee":24}],2:[function(require,module,exports){
var TreeActions, TreeStore, _load, code, div, fragsrc, recl, ref, span, util;
util = require('../utils/util.coffee');
_load = require('./LoadComponent.coffee');
@ -114,6 +116,19 @@ recl = React.createClass;
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) {
if (load == null) {
load = _load;
@ -129,8 +144,12 @@ module.exports = function(queries, Child, load) {
}
},
getPath: function() {
var path, ref1;
path = (ref1 = this.props.dataPath) != null ? ref1 : TreeStore.getCurr();
var base, path, ref1, ref2;
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) === "/") {
return path.slice(0, -1);
} 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){
var Comments, Plan, TreeActions, TreeStore, a, clas, div, extras, h1, h3, img, input, load, p, query, reactify, recl, ref, rele, util;
},{"../actions/TreeActions.coffee":1,"../stores/TreeStore.coffee":25,"../utils/util.coffee":27,"./LoadComponent.coffee":11}],3:[function(require,module,exports){
var Comments, TreeActions, TreeStore, a, clas, div, extras, h1, h3, img, input, load, p, query, reactify, recl, ref, rele, util;
clas = require('classnames');
@ -272,8 +291,6 @@ TreeStore = require('../stores/TreeStore.coffee');
Comments = require('./CommentsComponent.coffee');
Plan = require('./PlanComponent.coffee');
util = require('../utils/util.coffee');
recl = React.createClass;
@ -355,7 +372,6 @@ extras = {
}, this.props.author);
}
}),
plan: Plan,
next: query({
path: 't',
kids: {
@ -454,6 +470,7 @@ module.exports = query({
if ((_.keys(props)).length === 0) {
props[name] = _this.props.meta[name];
}
props.key = name;
return React.createElement(extras[name], props);
}
};
@ -462,7 +479,7 @@ module.exports = query({
body: true
};
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;
}
if (this.props.meta.navmode === 'navbar' && this.props.meta.container !== 'false') {
@ -474,7 +491,7 @@ module.exports = query({
parts = [
extra('spam'), extra('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,
curr: this.props.name
}), extra('comments'), extra('footer', {
@ -505,13 +522,13 @@ module.exports = query({
render: function() {
return div({
id: 'body',
className: "col-md-offset-3 col-md-10"
className: "col-md-offset-3 col-md-9"
}, 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;
recl = React.createClass;
@ -613,12 +630,10 @@ module.exports = query({
});
return div({}, div({
className: "add-comment"
}, [
form({
ref: "in",
onSubmit: this.onSubmit
}, [textarea(textareaAttr), input(inputAttr)])
]), (this.state.loading === true ? rele(load) : ""), div({
}, form({
ref: "in",
onSubmit: this.onSubmit
}, textarea(textareaAttr), input(inputAttr))), (this.state.loading === true ? rele(load) : ""), div({
className: "comments"
}, this.props.comt.map(function(props, key) {
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;
recl = React.createClass;
@ -645,6 +660,8 @@ module.exports = {
email: require('./EmailComponent.coffee'),
module: require('./ModuleComponent.coffee'),
script: require('./ScriptComponent.coffee'),
plan: require('./PlanComponent.coffee'),
panel: require('./PanelComponent.coffee'),
lost: recl({
render: function() {
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;
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;
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;
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({
kids: {
body: 'r',
meta: 'j'
meta: 'j',
path: 't'
}
}, recl({
displayName: "Kids",
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;
keyed = {};
ref1 = this.props.kids;
@ -871,12 +889,15 @@ module.exports = query({
for (i = 0, len = keys.length; i < len; i++) {
k = keys[i];
elem = (ref5 = this.props.kids[keyed[k]]) != null ? ref5 : "";
body = reactify(elem.body, k, {
basePath: elem.path
});
results.push([
div({
key: keyed[k],
id: keyed[k],
className: kidClas
}, reactify(elem.body)), hr({})
}, body), hr({})
]);
}
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;
clas = require('classnames');
@ -1027,45 +1048,47 @@ module.exports = query({
};
parts.push(image);
}
if (this.props.dataPreview) {
if (!elem.meta.preview) {
parts.push.apply(parts, elem.snip.c.slice(0, 2));
} else {
if (elem.meta.preview) {
preview = {
gn: 'p',
ga: {
className: 'preview'
},
c: [elem.meta.preview]
};
} else {
preview = elem.snip;
}
parts.push(preview);
}
if (elem.meta.author) {
author = {
gn: 'h3',
}
if (this.props.dataPreview) {
if (!elem.meta.preview) {
parts.push.apply(parts, elem.snip.c.slice(0, 2));
} else {
if (elem.meta.preview) {
preview = {
gn: 'p',
ga: {
className: 'author'
className: 'preview'
},
c: [elem.meta.author]
c: [elem.meta.preview]
};
parts.push(author);
} else {
preview = elem.snip;
}
cont = {
gn: 'a',
ga: {
className: 'btn continue',
href: href
},
c: ['Continue reading']
};
parts.push(cont);
linked = true;
parts.push(preview);
}
}
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({
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;
recl = React.createClass;
@ -1261,7 +1284,6 @@ Nav = React.createFactory(query({
});
navClas = {
navbar: this.props.meta.navmode === 'navbar',
'col-md-2': this.props.meta.navmode !== 'navbar',
ctrl: true,
open: this.state.open === true
};
@ -1328,7 +1350,7 @@ Nav = React.createFactory(query({
},
render: function() {
return div({
className: "col-md-2 ctrl",
className: "ctrl",
"data-path": this.props.dataPath,
key: "nav-loading"
}, div({
@ -1354,7 +1376,7 @@ module.exports = query({
name: 't',
meta: 'j'
}, recl({
displayName: "Anchor",
displayName: "Nav",
stateFromStore: function() {
return TreeStore.getNav();
},
@ -1392,6 +1414,10 @@ module.exports = query({
if (href && !/^https?:\/\//i.test(href)) {
e.preventDefault();
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) !== "/") {
url.pathname += "/";
}
@ -1410,12 +1436,16 @@ module.exports = query({
}
},
setTitle: function() {
var ref1, title;
var path, ref1, title;
title = $('#body h1').first().text() || this.props.name;
if ((ref1 = this.props.meta) != null ? ref1.title : void 0) {
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() {
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,
slice = [].slice;
@ -1504,14 +1590,18 @@ Grid = function() {
var _td, _tr, props, rows;
props = arguments[0], rows = 2 <= arguments.length ? slice.call(arguments, 1) : [];
_td = function(x) {
return td({}, x);
return div({
className: "td"
}, x);
};
_tr = function(x) {
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({
@ -1574,12 +1664,13 @@ module.exports = query({
};
} else if (this.state.edit) {
editButton = button({
className: 'edit',
onClick: (function(_this) {
return function() {
return _this.saveInfo();
};
})(this)
}, "save");
}, "Save");
editable = (function(_this) {
return function(ref, val, placeholder) {
return input({
@ -1598,6 +1689,7 @@ module.exports = query({
})(this);
} else {
editButton = button({
className: 'edit',
onClick: (function(_this) {
return function() {
return _this.setState({
@ -1605,7 +1697,7 @@ module.exports = query({
});
};
})(this)
}, "edit");
}, "Edit");
editable = (function(_this) {
return function(ref, val, placeholder) {
var ref6, ref7;
@ -1622,9 +1714,13 @@ module.exports = query({
}
return div({
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"
}, ["Location:", editable('loc', loc, "unknown")], ["Issued by:", issuedBy], [
}, ["Location:", editable('loc', loc, "Unknown")], ["Issued by:", issuedBy], [
"Immutable link:", a({
href: beak + "/web" + path
}, beak)
@ -1635,19 +1731,20 @@ module.exports = query({
for (key in acc) {
ref6 = acc[key], usr = ref6.usr, url = ref6.url;
results.push(div({
key: key
key: key,
className: 'service'
}, url == null ? key + "/" + usr : a({
href: url
}, key + "/" + usr)));
}
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;
recl = React.createClass;
@ -1706,26 +1803,34 @@ Virtual = recl({
return TreeStore.removeChangeListener(this._onChangeStore);
},
render: function() {
var components;
var basePath, components;
components = this.state.components;
basePath = this.props.basePath;
return walk(this.props.manx, function() {
return load({}, "");
}, function(str) {
return str;
}, function(arg, key) {
var c, ga, gn, ref1;
var c, ga, gn, props, ref1;
gn = arg.gn, ga = arg.ga, c = arg.c;
return rele((ref1 = components[gn]) != null ? ref1 : gn, _.extend({
props = {
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, {
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;
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,
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;
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,
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;
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(), {
handleServerAction: function(action) {
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;
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;
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;
EventEmitter = require('events').EventEmitter.EventEmitter;
@ -2591,7 +2696,7 @@ TreeStore.dispatchToken = MessageDispatcher.register(function(p) {
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;
scroll = {
@ -2685,7 +2790,7 @@ scroll.init();
module.exports = scroll;
},{}],26:[function(require,module,exports){
},{}],27:[function(require,module,exports){
var _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.
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.
//
// Permission is hereby granted, free of charge, to any person obtaining a
@ -3084,4 +3189,4 @@ function isUndefined(arg) {
return arg === void 0;
}
},{}]},{},[22]);
},{}]},{},[23]);