mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-12-01 11:33:41 +03:00
misc untrackeditude
This commit is contained in:
parent
11b024858f
commit
19fd175abe
14
base/mar/atom/door.hook
Normal file
14
base/mar/atom/door.hook
Normal file
@ -0,0 +1,14 @@
|
||||
::
|
||||
:::: /hook/door/atom/mar
|
||||
::
|
||||
/? 314
|
||||
!:
|
||||
:::: A minimal atom mark
|
||||
|_ ato=@
|
||||
++ grab |%
|
||||
++ noun ,@
|
||||
++ mime |=([^ p=octs] q.p)
|
||||
--
|
||||
++ grow |%
|
||||
++ mime [/aplication/x-urb-unknown (taco ato)]
|
||||
-- --
|
29
base/mar/markdown/door.hook
Normal file
29
base/mar/markdown/door.hook
Normal file
@ -0,0 +1,29 @@
|
||||
::
|
||||
:::: /hoon/core/markdown/pro
|
||||
::
|
||||
/? 314
|
||||
::
|
||||
|_ mud=@t
|
||||
++ garb [%down ~]
|
||||
++ grow
|
||||
|%
|
||||
++ mime [/text/x-markdown (taco mud)]
|
||||
++ md mud
|
||||
++ txt
|
||||
(lore (cat 3 mud '\0a'))
|
||||
--
|
||||
++ grab
|
||||
|%
|
||||
++ mime |=([p=mite q=octs] q.q)
|
||||
++ noun ,@t
|
||||
++ md |=(@t +<)
|
||||
++ txt
|
||||
|= wan=wain
|
||||
=+ (role wan)
|
||||
(end 3 (dec (met 3 -)) -)
|
||||
--
|
||||
++ grad
|
||||
|%
|
||||
++ sted %txt
|
||||
--
|
||||
--
|
1570
base/pub/doc/reference/u3.md
Normal file
1570
base/pub/doc/reference/u3.md
Normal file
File diff suppressed because it is too large
Load Diff
170
base/pub/match/hymn.hook
Normal file
170
base/pub/match/hymn.hook
Normal file
@ -0,0 +1,170 @@
|
||||
:: Subtree match finder
|
||||
::
|
||||
:::: /hook/hymn/match
|
||||
::
|
||||
/= gas /$ fuel :: get request info
|
||||
/= src /: /%/ /hook/ :: current source file
|
||||
::
|
||||
:::: ~sondel-forsut
|
||||
::
|
||||
|%
|
||||
++ conv $& [conv conv]
|
||||
[%0 @ub]
|
||||
::
|
||||
++ expr $| @tas
|
||||
(list expr)
|
||||
--
|
||||
::
|
||||
::::
|
||||
::
|
||||
=+ `nock`*conv :: extraneous typecheck
|
||||
|%
|
||||
++ build-from
|
||||
|= [hay=expr man=expr]
|
||||
=| axe=(list ?(%0 %1)) :: axis acummulator
|
||||
|- ^- (unit conv)
|
||||
?: =(man hay)
|
||||
[~ u=[%0 (join axe)]]
|
||||
?@ hay ~ :: fail if hay is atom
|
||||
=+ top=$(hay -.hay, axe [%0 axe])
|
||||
?^ top
|
||||
top :: cell is success
|
||||
=+ bot=$(hay +.hay, axe [%1 axe])
|
||||
?^ bot
|
||||
bot
|
||||
?@ man :: descend unless atom
|
||||
~
|
||||
=+ car=$(man -.man)
|
||||
?~ car
|
||||
~ :: lost head is failure
|
||||
=+ cdr=$(man +.man)
|
||||
?~ cdr
|
||||
~
|
||||
[~ u=[u.car u.cdr]]
|
||||
::
|
||||
++ join
|
||||
|= axe=(list ?(%0 %1))
|
||||
^- axis
|
||||
%+ reel axe |= [a=?(%0 %1) b=_1]
|
||||
(add a (lsh 0 1 b))
|
||||
::
|
||||
++ fetch :: (unit expr) by term
|
||||
;~ biff
|
||||
~(get by qix.gas) :: get from query string
|
||||
slay :: parse as coin
|
||||
|= con=coin
|
||||
^- (unit expr)
|
||||
?- -.con
|
||||
%$ :: single atom
|
||||
?. ?=(%tas p.p.con) ~
|
||||
[~ u=q.p.con] :: (some) if is term
|
||||
%blob :: noun literal, ignore
|
||||
~
|
||||
%many :: list of coin
|
||||
(zl:jo (turn p.con ..$)) :: when-for
|
||||
==
|
||||
==
|
||||
++ print |=(a=expr ~(ram re (rend a)))
|
||||
++ rend
|
||||
|= a=expr
|
||||
^- tank
|
||||
?~ a [%leaf "()"]
|
||||
?@ a [%leaf (trip a)]
|
||||
[%rose [" " "(" ")"] (turn `(list expr)`a ..$)]
|
||||
--
|
||||
!:
|
||||
::::
|
||||
::
|
||||
^- manx
|
||||
=+ hay=(fall (fetch %hay) %bad-expr)
|
||||
=+ man=(fall (fetch %man) %bad-expr)
|
||||
=+ res=(build-from hay man)
|
||||
;html
|
||||
;head
|
||||
;title: Match
|
||||
;* =- (turn `wall`- |=(a=tape ;script(type "text/javascript", src a);))
|
||||
:~ "//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"
|
||||
"//cdnjs.cloudflare.com/ajax/libs/codemirror/4.3.0/codemirror.js"
|
||||
"/home/lib/syntax/hoon.js"
|
||||
==
|
||||
;link(rel "stylesheet", href "//cdnjs.cloudflare.com/ajax/libs/".
|
||||
"codemirror/4.3.0/codemirror.min.css");
|
||||
;style:'''
|
||||
.CodeMirror {
|
||||
height: 100%
|
||||
}
|
||||
.cm-s-default .cm-atom {color: #70f}
|
||||
.cm-s-default .cm-operator {color: #097}
|
||||
|
||||
#err {
|
||||
background: #fdd;
|
||||
display: none;
|
||||
}
|
||||
'''
|
||||
==
|
||||
;body
|
||||
;h3: Tree transform generator
|
||||
;p
|
||||
; Problem and solution found
|
||||
;a/"http://michaelblume.tumblr.com/post/97793328216": here
|
||||
==
|
||||
;pre
|
||||
; .= ';{input#man(onchange "change()", value (print man))}
|
||||
; .* ';{input#hay(onchange "change()", value (print hay))}
|
||||
;- ?~ res "!! :: no route"
|
||||
<u.res>
|
||||
==
|
||||
;p#err
|
||||
; Malformed expression: a-z and - in identifiers, whitespace, and
|
||||
; matched () are allowed
|
||||
==
|
||||
;script(type "text/ls") ;- %- trip
|
||||
'''
|
||||
encode = (exp)->
|
||||
pars = (lev, str)->
|
||||
| str is /^\s+/ => pars lev, str - /^\s+/
|
||||
| str is /^[a-z-]+/
|
||||
tail = pars lev, str - (term = /^[a-z-]+/)
|
||||
if tail => {tail, tail.rest, lev, atom: str.match term .0 }
|
||||
| str is /^\(/
|
||||
head = pars lev+1, str - /./
|
||||
if head?rest?
|
||||
tail = pars lev, head.rest
|
||||
if tail => {head, tail, tail.rest, lev}
|
||||
| str is /^\)/ and lev > 0 => {lev, rest: str - /./}
|
||||
| str is '' and lev is 0 => true
|
||||
| _ => null
|
||||
|
||||
esc = (lev)->
|
||||
unless lev > 1 => '_'
|
||||
else '~' * (2 ^ (lev - 2)) + '-'
|
||||
enc = (obj)->
|
||||
cab = esc obj?lev
|
||||
cabb = esc obj?lev + 1
|
||||
switch
|
||||
| !obj => ''
|
||||
| !obj.tail => cab
|
||||
| obj.atom => obj.atom + cab + enc obj.tail
|
||||
| obj.head => '.' + cabb + (enc obj.head) + cab + enc obj.tail
|
||||
|
||||
(enc pars 0 exp) - /__$/
|
||||
|
||||
@change = ->
|
||||
hav = (encode hay.value); mav = (encode man.value)
|
||||
if hav and mav
|
||||
$ err .slideUp!
|
||||
window.location =
|
||||
(window.location + '') - /\?.*/ + "?hay=#hav&man=#mav"
|
||||
else $ err .slideDown!
|
||||
'''
|
||||
==
|
||||
;script(src "//cdnjs.cloudflare.com/ajax/libs/".
|
||||
"livescript/1.2.0/livescript.min.js");
|
||||
:: ;button(onclick "$(err).slideUp()");
|
||||
;h3: Demo source
|
||||
;textarea#src: {(trip src)}
|
||||
;script:'''
|
||||
CodeMirror.fromTextArea(src, {lineNumbers:true, readOnly:true})
|
||||
'''
|
||||
==
|
||||
==
|
Loading…
Reference in New Issue
Block a user