[InlineText*] |
- [
- Content +]
|
Content | Paper | Slides | Link | InlineText )* ];; type InlineText = Char | <(`b|`i) {||}>[InlineText*] | Xa | Ximg ;; type Box = Content | Content;; type NavigBox = Content | [];; let fun authors ([Author+] -> String) | [ a ] -> a | [ a1 a2 ] -> a1 @ ", and " @ a2 | [ a; rem ] -> a @ ", " @ authors rem;; let fun content (t : Content) : Flow = transform t with | c -> [ title !(content c) ] |
[ tit aut::Author* com ab ] -> [ (match r with | { file = f } -> tit | _ -> tit ) '. ' !(authors aut) '. ' !com [ 'Abstract:' !(content ab) ] ] |[ tit aut::Author* com ] -> [ tit '. ' !(authors aut) '. ' !com ] | com -> [ title '. ' !com ] | - lis -> [
- x ->
- (content x)) ]
| x -> [ x ];;
let fun main2html (Box -> Flow)
c -> [ [(r.title) !(match r with { subtitle = t } -> [t] | _ -> []) [] !(content c) ] ] | c -> [
- (map lis with