◊(Local Yarn Code "Hex Artifact Content")

Artifact ec6e30b53fd2e1ebd680a9a3cbc86cc396a0daee9d5f57471c9e6013fc977171:


0000: 23 6c 61 6e 67 20 72 61 63 6b 65 74 2f 62 61 73  #lang racket/bas
0010: 65 0a 0a 3b 20 53 50 44 58 2d 4c 69 63 65 6e 73  e..; SPDX-Licens
0020: 65 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 42 6c  e-Identifier: Bl
0030: 75 65 4f 61 6b 2d 31 2e 30 2e 30 0a 3b 20 54 68  ueOak-1.0.0.; Th
0040: 69 73 20 66 69 6c 65 20 69 73 20 6c 69 63 65 6e  is file is licen
0050: 73 65 64 20 75 6e 64 65 72 20 74 68 65 20 42 6c  sed under the Bl
0060: 75 65 20 4f 61 6b 20 4d 6f 64 65 6c 20 4c 69 63  ue Oak Model Lic
0070: 65 6e 73 65 20 31 2e 30 2e 30 2e 0a 0a 3b 3b 20  ense 1.0.0...;; 
0080: 46 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 74 61  Functions for ta
0090: 67 73 20 61 6e 64 20 74 65 6d 70 6c 61 74 65 20  gs and template 
00a0: 63 6f 6e 74 65 6e 74 20 75 73 65 64 20 69 6e 20  content used in 
00b0: 61 6c 6c 20 50 6f 6c 6c 65 6e 20 73 6f 75 72 63  all Pollen sourc
00c0: 65 20 66 69 6c 65 73 20 61 6e 64 20 74 65 6d 70  e files and temp
00d0: 6c 61 74 65 73 2e 0a 0a 28 72 65 71 75 69 72 65  lates...(require
00e0: 20 28 66 6f 72 2d 73 79 6e 74 61 78 20 72 61 63   (for-syntax rac
00f0: 6b 65 74 2f 62 61 73 65 0a 20 20 20 20 20 20 20  ket/base.       
0100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61                ra
0110: 63 6b 65 74 2f 73 79 6e 74 61 78 0a 20 20 20 20  cket/syntax.    
0120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0130: 20 73 79 6e 74 61 78 2f 70 61 72 73 65 0a 20 20   syntax/parse.  
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0150: 20 20 20 70 6f 6c 6c 65 6e 2f 73 65 74 75 70 29     pollen/setup)
0160: 29 0a 0a 28 72 65 71 75 69 72 65 20 70 6f 6c 6c  )..(require poll
0170: 65 6e 2f 74 61 67 0a 20 20 20 20 20 20 20 20 20  en/tag.         
0180: 70 6f 6c 6c 65 6e 2f 73 65 74 75 70 0a 20 20 20  pollen/setup.   
0190: 20 20 20 20 20 20 72 61 63 6b 65 74 2f 66 75 6e        racket/fun
01a0: 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 22  ction.         "
01b0: 74 61 67 73 2d 68 74 6d 6c 2e 72 6b 74 22 0a 20  tags-html.rkt". 
01c0: 20 20 20 20 20 20 20 20 22 73 6e 69 70 70 65 74          "snippet
01d0: 73 2d 68 74 6d 6c 2e 72 6b 74 22 0a 20 20 20 20  s-html.rkt".    
01e0: 20 20 20 20 20 22 63 72 79 73 74 61 6c 69 7a 65       "crystalize
01f0: 2e 72 6b 74 22 29 0a 0a 28 70 72 6f 76 69 64 65  .rkt")..(provide
0200: 20 28 61 6c 6c 2d 64 65 66 69 6e 65 64 2d 6f 75   (all-defined-ou
0210: 74 29 0a 20 20 20 20 20 20 20 20 20 28 61 6c 6c  t).         (all
0220: 2d 66 72 6f 6d 2d 6f 75 74 20 22 63 72 79 73 74  -from-out "cryst
0230: 61 6c 69 7a 65 2e 72 6b 74 22 20 22 73 6e 69 70  alize.rkt" "snip
0240: 70 65 74 73 2d 68 74 6d 6c 2e 72 6b 74 22 29 29  pets-html.rkt"))
0250: 0a 0a 28 6d 6f 64 75 6c 65 20 73 65 74 75 70 20  ..(module setup 
0260: 72 61 63 6b 65 74 2f 62 61 73 65 0a 20 20 28 72  racket/base.  (r
0270: 65 71 75 69 72 65 20 73 79 6e 74 61 78 2f 6d 6f  equire syntax/mo
0280: 64 72 65 73 6f 6c 76 65 0a 20 20 20 20 20 20 20  dresolve.       
0290: 20 20 20 20 72 61 63 6b 65 74 2f 72 75 6e 74 69      racket/runti
02a0: 6d 65 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20  me-path.        
02b0: 20 20 20 70 6f 6c 6c 65 6e 2f 73 65 74 75 70 29     pollen/setup)
02c0: 0a 20 20 28 70 72 6f 76 69 64 65 20 28 61 6c 6c  .  (provide (all
02d0: 2d 64 65 66 69 6e 65 64 2d 6f 75 74 29 29 0a 20  -defined-out)). 
02e0: 20 28 64 65 66 69 6e 65 20 70 6f 6c 79 2d 74 61   (define poly-ta
02f0: 72 67 65 74 73 20 27 28 68 74 6d 6c 29 29 0a 20  rgets '(html)). 
0300: 20 28 64 65 66 69 6e 65 20 62 6c 6f 63 6b 2d 74   (define block-t
0310: 61 67 73 20 28 61 70 70 65 6e 64 20 27 28 74 69  ags (append '(ti
0320: 74 6c 65 20 73 74 79 6c 65 20 64 74 20 6e 6f 74  tle style dt not
0330: 65 29 20 64 65 66 61 75 6c 74 2d 62 6c 6f 63 6b  e) default-block
0340: 2d 74 61 67 73 29 29 0a 0a 20 20 28 64 65 66 69  -tags))..  (defi
0350: 6e 65 2d 72 75 6e 74 69 6d 65 2d 70 61 74 68 20  ne-runtime-path 
0360: 74 61 67 73 2d 68 74 6d 6c 2e 72 6b 74 20 20 20  tags-html.rkt   
0370: 20 20 22 74 61 67 73 2d 68 74 6d 6c 2e 72 6b 74    "tags-html.rkt
0380: 22 29 0a 20 20 28 64 65 66 69 6e 65 2d 72 75 6e  ").  (define-run
0390: 74 69 6d 65 2d 70 61 74 68 20 73 6e 69 70 70 65  time-path snippe
03a0: 74 73 2d 68 74 6d 6c 2e 72 6b 74 20 22 73 6e 69  ts-html.rkt "sni
03b0: 70 70 65 74 73 2d 68 74 6d 6c 2e 72 6b 74 22 29  ppets-html.rkt")
03c0: 0a 20 20 28 64 65 66 69 6e 65 2d 72 75 6e 74 69  .  (define-runti
03d0: 6d 65 2d 70 61 74 68 20 64 75 73 74 2e 72 6b 74  me-path dust.rkt
03e0: 20 20 20 20 20 20 20 20 20 20 22 64 75 73 74 2e            "dust.
03f0: 72 6b 74 22 29 0a 20 20 28 64 65 66 69 6e 65 2d  rkt").  (define-
0400: 72 75 6e 74 69 6d 65 2d 70 61 74 68 20 63 72 79  runtime-path cry
0410: 73 74 61 6c 69 7a 65 2e 72 6b 74 20 20 20 20 22  stalize.rkt    "
0420: 63 72 79 73 74 61 6c 69 7a 65 2e 72 6b 74 22 29  crystalize.rkt")
0430: 0a 20 20 28 64 65 66 69 6e 65 20 63 61 63 68 65  .  (define cache
0440: 2d 77 61 74 63 68 6c 69 73 74 0a 20 20 20 20 28  -watchlist.    (
0450: 6d 61 70 20 72 65 73 6f 6c 76 65 2d 6d 6f 64 75  map resolve-modu
0460: 6c 65 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20  le-path.        
0470: 20 28 6c 69 73 74 20 74 61 67 73 2d 68 74 6d 6c   (list tags-html
0480: 2e 72 6b 74 0a 20 20 20 20 20 20 20 20 20 20 20  .rkt.           
0490: 20 20 20 20 73 6e 69 70 70 65 74 73 2d 68 74 6d      snippets-htm
04a0: 6c 2e 72 6b 74 0a 20 20 20 20 20 20 20 20 20 20  l.rkt.          
04b0: 20 20 20 20 20 64 75 73 74 2e 72 6b 74 0a 20 20       dust.rkt.  
04c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 63 72 79               cry
04d0: 73 74 61 6c 69 7a 65 2e 72 6b 74 29 29 29 29 0a  stalize.rkt)))).
04e0: 0a 28 63 61 73 65 20 28 63 75 72 72 65 6e 74 2d  .(case (current-
04f0: 70 6f 6c 79 2d 74 61 72 67 65 74 29 0a 20 20 5b  poly-target).  [
0500: 28 68 74 6d 6c 29 20 28 69 6e 69 74 2d 63 61 63  (html) (init-cac
0510: 68 65 2d 64 62 21 29 5d 29 0a 0a 3b 3b 20 4d 61  he-db!)])..;; Ma
0520: 63 72 6f 20 66 6f 72 20 64 65 66 69 6e 69 6e 67  cro for defining
0530: 20 74 61 67 20 66 75 6e 63 74 69 6f 6e 73 20 74   tag functions t
0540: 68 61 74 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c  hat automaticall
0550: 79 20 62 72 61 6e 63 68 20 62 61 73 65 64 20 6f  y branch based o
0560: 6e 20 74 68 65 20 0a 3b 3b 20 63 75 72 72 65 6e  n the .;; curren
0570: 74 20 6f 75 74 70 75 74 20 66 6f 72 6d 61 74 20  t output format 
0580: 61 6e 64 20 74 68 65 20 6c 69 73 74 20 6f 66 20  and the list of 
0590: 70 6f 6c 79 2d 74 61 72 67 65 74 73 20 69 6e 20  poly-targets in 
05a0: 74 68 65 20 73 65 74 75 70 20 6d 6f 64 75 6c 65  the setup module
05b0: 2e 0a 3b 3b 20 55 73 65 20 74 68 69 73 20 6d 61  ..;; Use this ma
05c0: 63 72 6f 20 77 68 65 6e 20 79 6f 75 20 6b 6e 6f  cro when you kno
05d0: 77 20 79 6f 75 20 77 69 6c 6c 20 6e 65 65 64 20  w you will need 
05e0: 6b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74  keyword argument
05f0: 73 2e 0a 3b 3b 0a 28 64 65 66 69 6e 65 2d 73 79  s..;;.(define-sy
0600: 6e 74 61 78 20 28 70 6f 6c 79 2d 62 72 61 6e 63  ntax (poly-branc
0610: 68 2d 6b 77 61 72 67 73 2d 74 61 67 20 73 74 78  h-kwargs-tag stx
0620: 29 0a 20 20 28 73 79 6e 74 61 78 2d 70 61 72 73  ).  (syntax-pars
0630: 65 20 73 74 78 0a 20 20 20 20 5b 28 5f 20 54 41  e stx.    [(_ TA
0640: 47 3a 69 64 29 0a 20 20 20 20 20 28 77 69 74 68  G:id).     (with
0650: 2d 73 79 6e 74 61 78 20 28 5b 28 28 50 4f 4c 59  -syntax ([((POLY
0660: 2d 54 41 52 47 45 54 20 50 4f 4c 59 2d 46 55 4e  -TARGET POLY-FUN
0670: 43 29 20 2e 2e 2e 29 20 0a 20 20 20 20 20 20 20  C) ...) .       
0680: 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f               (fo
0690: 72 2f 6c 69 73 74 20 28 5b 74 61 72 67 65 74 20  r/list ([target 
06a0: 28 69 6e 2d 6c 69 73 74 20 28 73 65 74 75 70 3a  (in-list (setup:
06b0: 70 6f 6c 79 2d 74 61 72 67 65 74 73 29 29 5d 29  poly-targets))])
06c0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
06d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28                 (
06e0: 6c 69 73 74 20 74 61 72 67 65 74 20 28 66 6f 72  list target (for
06f0: 6d 61 74 2d 69 64 20 73 74 78 20 22 7e 61 2d 7e  mat-id stx "~a-~
0700: 61 22 20 74 61 72 67 65 74 20 23 27 54 41 47 29  a" target #'TAG)
0710: 29 29 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ))].            
0720: 20 20 20 20 20 20 20 5b 44 45 46 41 55 4c 54 2d         [DEFAULT-
0730: 46 55 4e 43 20 28 66 6f 72 6d 61 74 2d 69 64 20  FUNC (format-id 
0740: 73 74 78 20 22 68 74 6d 6c 2d 7e 61 22 20 23 27  stx "html-~a" #'
0750: 54 41 47 29 5d 29 0a 20 20 20 20 20 20 20 23 27  TAG)]).       #'
0760: 28 64 65 66 69 6e 65 2d 74 61 67 2d 66 75 6e 63  (define-tag-func
0770: 74 69 6f 6e 20 28 54 41 47 20 61 74 74 72 69 62  tion (TAG attrib
0780: 75 74 65 73 20 65 6c 65 6d 73 29 0a 20 20 20 20  utes elems).    
0790: 20 20 20 20 20 20 20 28 63 61 73 65 20 28 63 75         (case (cu
07a0: 72 72 65 6e 74 2d 70 6f 6c 79 2d 74 61 72 67 65  rrent-poly-targe
07b0: 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  t).             
07c0: 5b 28 50 4f 4c 59 2d 54 41 52 47 45 54 29 20 28  [(POLY-TARGET) (
07d0: 50 4f 4c 59 2d 46 55 4e 43 20 61 74 74 72 69 62  POLY-FUNC attrib
07e0: 75 74 65 73 20 65 6c 65 6d 73 29 5d 20 2e 2e 2e  utes elems)] ...
07f0: 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 5b   .             [
0800: 65 6c 73 65 20 28 44 45 46 41 55 4c 54 2d 46 55  else (DEFAULT-FU
0810: 4e 43 20 61 74 74 72 69 62 75 74 65 73 20 65 6c  NC attributes el
0820: 65 6d 73 29 5d 29 29 29 5d 29 29 0a 0a 3b 3b 20  ems)])))]))..;; 
0830: 4c 69 6b 65 20 61 62 6f 76 65 2c 20 62 75 74 20  Like above, but 
0840: 75 73 65 73 20 60 64 65 66 69 6e 65 60 20 69 6e  uses `define` in
0850: 73 74 65 61 64 20 6f 66 20 60 64 65 66 69 6e 65  stead of `define
0860: 2d 74 61 67 2d 66 75 6e 63 74 69 6f 6e 60 2e 0a  -tag-function`..
0870: 3b 3b 20 55 73 65 20 74 68 69 73 20 77 68 65 6e  ;; Use this when
0880: 20 79 6f 75 20 6b 6e 6f 77 20 79 6f 75 20 77 69   you know you wi
0890: 6c 6c 20 6e 6f 74 20 6e 65 65 64 20 6b 65 79 77  ll not need keyw
08a0: 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 2e 0a 3b  ord arguments..;
08b0: 3b 0a 28 64 65 66 69 6e 65 2d 73 79 6e 74 61 78  ;.(define-syntax
08c0: 20 28 70 6f 6c 79 2d 62 72 61 6e 63 68 2d 74 61   (poly-branch-ta
08d0: 67 20 73 74 78 29 0a 20 20 28 73 79 6e 74 61 78  g stx).  (syntax
08e0: 2d 70 61 72 73 65 20 73 74 78 0a 20 20 20 20 5b  -parse stx.    [
08f0: 28 5f 20 54 41 47 3a 69 64 29 0a 20 20 20 20 20  (_ TAG:id).     
0900: 28 77 69 74 68 2d 73 79 6e 74 61 78 20 28 5b 28  (with-syntax ([(
0910: 28 50 4f 4c 59 2d 54 41 52 47 45 54 20 50 4f 4c  (POLY-TARGET POL
0920: 59 2d 46 55 4e 43 29 20 2e 2e 2e 29 20 0a 20 20  Y-FUNC) ...) .  
0930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0940: 20 20 28 66 6f 72 2f 6c 69 73 74 20 28 5b 74 61    (for/list ([ta
0950: 72 67 65 74 20 28 69 6e 2d 6c 69 73 74 20 28 73  rget (in-list (s
0960: 65 74 75 70 3a 70 6f 6c 79 2d 74 61 72 67 65 74  etup:poly-target
0970: 73 29 29 5d 29 0a 20 20 20 20 20 20 20 20 20 20  s))]).          
0980: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0990: 20 20 20 20 28 6c 69 73 74 20 74 61 72 67 65 74      (list target
09a0: 20 28 66 6f 72 6d 61 74 2d 69 64 20 73 74 78 20   (format-id stx 
09b0: 22 7e 61 2d 7e 61 22 20 74 61 72 67 65 74 20 23  "~a-~a" target #
09c0: 27 54 41 47 29 29 29 5d 0a 20 20 20 20 20 20 20  'TAG)))].       
09d0: 20 20 20 20 20 20 20 20 20 20 20 20 5b 44 45 46              [DEF
09e0: 41 55 4c 54 2d 46 55 4e 43 20 28 66 6f 72 6d 61  AULT-FUNC (forma
09f0: 74 2d 69 64 20 73 74 78 20 22 68 74 6d 6c 2d 7e  t-id stx "html-~
0a00: 61 22 20 23 27 54 41 47 29 5d 29 0a 20 20 20 20  a" #'TAG)]).    
0a10: 20 20 20 23 27 28 64 65 66 69 6e 65 20 28 54 41     #'(define (TA
0a20: 47 20 2e 20 61 72 67 73 29 0a 20 20 20 20 20 20  G . args).      
0a30: 20 20 20 20 20 28 63 61 73 65 20 28 63 75 72 72       (case (curr
0a40: 65 6e 74 2d 70 6f 6c 79 2d 74 61 72 67 65 74 29  ent-poly-target)
0a50: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 5b 28  .             [(
0a60: 50 4f 4c 59 2d 54 41 52 47 45 54 29 20 28 61 70  POLY-TARGET) (ap
0a70: 70 6c 79 20 50 4f 4c 59 2d 46 55 4e 43 20 61 72  ply POLY-FUNC ar
0a80: 67 73 29 5d 20 2e 2e 2e 0a 20 20 20 20 20 20 20  gs)] ....       
0a90: 20 20 20 20 20 20 5b 65 6c 73 65 20 28 61 70 70        [else (app
0aa0: 6c 79 20 44 45 46 41 55 4c 54 2d 46 55 4e 43 20  ly DEFAULT-FUNC 
0ab0: 61 72 67 73 29 5d 29 29 29 5d 29 29 0a 0a 3b 3b  args)])))]))..;;
0ac0: 20 44 65 66 69 6e 65 20 61 6c 6c 20 74 68 65 20   Define all the 
0ad0: 74 61 67 20 66 75 6e 63 74 69 6f 6e 73 0a 28 70  tag functions.(p
0ae0: 6f 6c 79 2d 62 72 61 6e 63 68 2d 74 61 67 20 72  oly-branch-tag r
0af0: 6f 6f 74 29 0a 20 20 20 20 0a 28 70 6f 6c 79 2d  oot).    .(poly-
0b00: 62 72 61 6e 63 68 2d 74 61 67 20 70 29 0a 28 70  branch-tag p).(p
0b10: 6f 6c 79 2d 62 72 61 6e 63 68 2d 74 61 67 20 69  oly-branch-tag i
0b20: 29 0a 28 70 6f 6c 79 2d 62 72 61 6e 63 68 2d 74  ).(poly-branch-t
0b30: 61 67 20 65 6d 29 0a 28 70 6f 6c 79 2d 62 72 61  ag em).(poly-bra
0b40: 6e 63 68 2d 74 61 67 20 62 29 0a 28 70 6f 6c 79  nch-tag b).(poly
0b50: 2d 62 72 61 6e 63 68 2d 74 61 67 20 73 74 72 6f  -branch-tag stro
0b60: 6e 67 29 0a 28 70 6f 6c 79 2d 62 72 61 6e 63 68  ng).(poly-branch
0b70: 2d 74 61 67 20 73 74 72 69 6b 65 29 0a 3b 28 70  -tag strike).;(p
0b80: 6f 6c 79 2d 62 72 61 6e 63 68 2d 74 61 67 20 63  oly-branch-tag c
0b90: 6f 6c 6f 72 29 0a 28 70 6f 6c 79 2d 62 72 61 6e  olor).(poly-bran
0ba0: 63 68 2d 74 61 67 20 6f 6c 29 0a 28 70 6f 6c 79  ch-tag ol).(poly
0bb0: 2d 62 72 61 6e 63 68 2d 74 61 67 20 75 6c 29 0a  -branch-tag ul).
0bc0: 28 70 6f 6c 79 2d 62 72 61 6e 63 68 2d 74 61 67  (poly-branch-tag
0bd0: 20 69 74 65 6d 29 0a 28 70 6f 6c 79 2d 62 72 61   item).(poly-bra
0be0: 6e 63 68 2d 74 61 67 20 73 75 70 29 0a 28 70 6f  nch-tag sup).(po
0bf0: 6c 79 2d 62 72 61 6e 63 68 2d 74 61 67 20 62 6c  ly-branch-tag bl
0c00: 6f 63 6b 71 75 6f 74 65 29 0a 28 70 6f 6c 79 2d  ockquote).(poly-
0c10: 62 72 61 6e 63 68 2d 74 61 67 20 6e 65 77 74 68  branch-tag newth
0c20: 6f 75 67 68 74 29 0a 28 70 6f 6c 79 2d 62 72 61  ought).(poly-bra
0c30: 6e 63 68 2d 74 61 67 20 63 61 70 73 29 0a 28 70  nch-tag caps).(p
0c40: 6f 6c 79 2d 62 72 61 6e 63 68 2d 74 61 67 20 63  oly-branch-tag c
0c50: 65 6e 74 65 72 29 0a 28 70 6f 6c 79 2d 62 72 61  enter).(poly-bra
0c60: 6e 63 68 2d 74 61 67 20 73 65 63 74 69 6f 6e 29  nch-tag section)
0c70: 0a 28 70 6f 6c 79 2d 62 72 61 6e 63 68 2d 74 61  .(poly-branch-ta
0c80: 67 20 73 75 62 73 65 63 74 69 6f 6e 29 0a 28 70  g subsection).(p
0c90: 6f 6c 79 2d 62 72 61 6e 63 68 2d 74 61 67 20 63  oly-branch-tag c
0ca0: 6f 64 65 29 0a 28 70 6f 6c 79 2d 62 72 61 6e 63  ode).(poly-branc
0cb0: 68 2d 74 61 67 20 64 69 61 6c 6f 67 75 65 29 0a  h-tag dialogue).
0cc0: 28 70 6f 6c 79 2d 62 72 61 6e 63 68 2d 74 61 67  (poly-branch-tag
0cd0: 20 73 61 79 29 0a 28 70 6f 6c 79 2d 62 72 61 6e   say).(poly-bran
0ce0: 63 68 2d 74 61 67 20 73 61 79 6c 69 6e 65 73 29  ch-tag saylines)
0cf0: 0a 28 70 6f 6c 79 2d 62 72 61 6e 63 68 2d 6b 77  .(poly-branch-kw
0d00: 61 72 67 73 2d 74 61 67 20 69 6e 64 65 78 29 0a  args-tag index).
0d10: 28 70 6f 6c 79 2d 62 72 61 6e 63 68 2d 74 61 67  (poly-branch-tag
0d20: 20 66 69 67 75 72 65 29 0a 28 70 6f 6c 79 2d 62   figure).(poly-b
0d30: 72 61 6e 63 68 2d 74 61 67 20 66 69 67 75 72 65  ranch-tag figure
0d40: 2d 40 32 78 29 0a 28 70 6f 6c 79 2d 62 72 61 6e  -@2x).(poly-bran
0d50: 63 68 2d 74 61 67 20 69 6d 61 67 65 2d 6c 69 6e  ch-tag image-lin
0d60: 6b 29 0a 28 70 6f 6c 79 2d 62 72 61 6e 63 68 2d  k).(poly-branch-
0d70: 6b 77 61 72 67 73 2d 74 61 67 20 62 6c 6f 63 6b  kwargs-tag block
0d80: 63 6f 64 65 29 0a 28 70 6f 6c 79 2d 62 72 61 6e  code).(poly-bran
0d90: 63 68 2d 6b 77 61 72 67 73 2d 74 61 67 20 76 65  ch-kwargs-tag ve
0da0: 72 73 65 29 20 20 20 20 20 20 20 20 20 20 3b 20  rse)          ; 
0db0: 5b 23 3a 74 69 74 6c 65 20 22 22 5d 20 5b 23 3a  [#:title ""] [#:
0dc0: 69 74 61 6c 69 63 20 22 6e 6f 22 5d 0a 0a 28 70  italic "no"]..(p
0dd0: 6f 6c 79 2d 62 72 61 6e 63 68 2d 74 61 67 20 6c  oly-branch-tag l
0de0: 69 6e 6b 29 0a 28 70 6f 6c 79 2d 62 72 61 6e 63  ink).(poly-branc
0df0: 68 2d 74 61 67 20 75 72 6c 29 0a 28 70 6f 6c 79  h-tag url).(poly
0e00: 2d 62 72 61 6e 63 68 2d 74 61 67 20 66 6e 29 0a  -branch-tag fn).
0e10: 28 70 6f 6c 79 2d 62 72 61 6e 63 68 2d 74 61 67  (poly-branch-tag
0e20: 20 66 6e 64 65 66 29 0a 0a 28 70 6f 6c 79 2d 62   fndef)..(poly-b
0e30: 72 61 6e 63 68 2d 6b 77 61 72 67 73 2d 74 61 67  ranch-kwargs-tag
0e40: 20 6e 6f 74 65 29 0a 28 70 6f 6c 79 2d 62 72 61   note).(poly-bra
0e50: 6e 63 68 2d 74 61 67 20 62 6c 6f 63 6b 29 0a 0a  nch-tag block)..
0e60: 3b 3b 20 4e 6f 74 20 79 65 74 20 69 6d 70 6c 65  ;; Not yet imple
0e70: 6d 65 6e 74 65 64 0a 3b 20 28 70 6f 6c 79 2d 62  mented.; (poly-b
0e80: 72 61 6e 63 68 2d 74 61 67 20 74 61 62 6c 65 29  ranch-tag table)
0e90: 20 20 20 20 20 20 20 20 20 3b 20 23 3a 63 6f 6c           ; #:col
0ea0: 75 6d 6e 73 20 22 22 0a 3b 20 28 70 6f 6c 79 2d  umns "".; (poly-
0eb0: 62 72 61 6e 63 68 2d 74 61 67 20 69 6e 6c 69 6e  branch-tag inlin
0ec0: 65 2d 6d 61 74 68 29 0a 3b 20 28 70 6f 6c 79 2d  e-math).; (poly-
0ed0: 62 72 61 6e 63 68 2d 74 61 67 20 6d 61 72 67 69  branch-tag margi
0ee0: 6e 2d 6e 6f 74 65 29 0a 3b 20 28 70 6f 6c 79 2d  n-note).; (poly-
0ef0: 62 72 61 6e 63 68 2d 74 61 67 20 6e 6f 75 6e 29  branch-tag noun)
0f00: 0a 3b 20 28 70 6f 6c 79 2d 62 72 61 6e 63 68 2d  .; (poly-branch-
0f10: 66 75 6e 63 20 69 6e 64 65 78 2d 65 6e 74 72 79  func index-entry
0f20: 20 65 6e 74 72 79 29 0a 3b 20 28 70 6f 6c 79 2d   entry).; (poly-
0f30: 62 72 61 6e 63 68 2d 74 61 67 20 73 70 6f 74 2d  branch-tag spot-
0f40: 69 6c 6c 75 73 74 72 61 74 69 6f 6e 29 20 3b 20  illustration) ; 
0f50: 23 3a 73 72 63 20 22 69 6d 67 2d 2d 73 61 6e 73  #:src "img--sans
0f60: 2d 70 61 74 68 2e 70 6e 67 22 20 5b 23 3a 68 61  -path.png" [#:ha
0f70: 73 2d 70 72 69 6e 74 2d 76 65 72 73 69 6f 6e 3f  s-print-version?
0f80: 20 22 79 65 73 22 5d 0a 0a 3b 3b 20 4d 79 20 70   "yes"]..;; My p
0f90: 65 74 20 73 68 6f 72 74 63 75 74 20 66 6f 72 20  et shortcut for 
0fa0: 66 6f 72 2f 73 70 6c 69 63 65 2e 20 47 72 65 61  for/splice. Grea
0fb0: 74 6c 79 20 63 75 74 73 20 64 6f 77 6e 20 6f 6e  tly cuts down on
0fc0: 20 70 61 72 65 6e 74 68 65 73 65 73 20 66 6f 72   parentheses for
0fd0: 20 74 68 65 0a 3b 3b 20 6d 6f 73 74 20 63 6f 6d   the.;; most com
0fe0: 6d 6f 6e 20 75 73 65 20 63 61 73 65 20 28 6c 6f  mon use case (lo
0ff0: 6f 70 69 6e 67 20 74 68 72 6f 75 67 68 20 61 20  oping through a 
1000: 73 69 6e 67 6c 65 20 6c 69 73 74 29 2e 0a 28 64  single list)..(d
1010: 65 66 69 6e 65 2d 73 79 6e 74 61 78 20 28 66 6f  efine-syntax (fo
1020: 72 2f 73 20 73 74 78 29 0a 20 20 28 73 79 6e 74  r/s stx).  (synt
1030: 61 78 2d 63 61 73 65 20 73 74 78 20 28 29 0a 20  ax-case stx (). 
1040: 20 20 20 5b 28 5f 20 74 68 69 6e 67 20 6c 69 73     [(_ thing lis
1050: 74 6f 66 74 68 69 6e 67 73 20 72 65 73 75 6c 74  tofthings result
1060: 2d 65 78 70 72 20 2e 2e 2e 29 0a 20 20 20 20 20  -expr ...).     
1070: 23 27 28 66 6f 72 2f 73 70 6c 69 63 65 20 28 5b  #'(for/splice ([
1080: 74 68 69 6e 67 20 28 69 6e 2d 6c 69 73 74 20 6c  thing (in-list l
1090: 69 73 74 6f 66 74 68 69 6e 67 73 29 5d 29 20 72  istofthings)]) r
10a0: 65 73 75 6c 74 2d 65 78 70 72 20 2e 2e 2e 29 5d  esult-expr ...)]
10b0: 29 29 0a                                         )).