mirror of
				https://github.com/roc-lang/roc.git
				synced 2025-10-29 20:27:19 +00:00 
			
		
		
		
	 057a18573a
			
		
	
	
		057a18573a
		
			
		
	
	
	
	
		
			
			Implements the new `module` header syntax as described in "module and package changes" [1]: ``` module [Request, Response, req] ``` The old syntax should still work fine, and is automatically upgraded to the new one when running `roc format`. [1] https://docs.google.com/document/d/1E_77fO-44BtoBtXoVeWyGh1xN2KRTWTu8q6i25RNNx0/edit
		
			
				
	
	
		
			271 lines
		
	
	
	
		
			5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			271 lines
		
	
	
	
		
			5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| module [
 | |
|     App,
 | |
|     Html,
 | |
|     Attribute,
 | |
|     renderStatic,
 | |
|     renderStaticWithoutDocType,
 | |
|     translate,
 | |
|     translateStatic,
 | |
|     text,
 | |
|     none,
 | |
|     html,
 | |
|     base,
 | |
|     head,
 | |
|     link,
 | |
|     meta,
 | |
|     style,
 | |
|     title,
 | |
|     body,
 | |
|     address,
 | |
|     article,
 | |
|     aside,
 | |
|     footer,
 | |
|     header,
 | |
|     h1,
 | |
|     h2,
 | |
|     h3,
 | |
|     h4,
 | |
|     h5,
 | |
|     h6,
 | |
|     main,
 | |
|     nav,
 | |
|     section,
 | |
|     blockquote,
 | |
|     dd,
 | |
|     div,
 | |
|     dl,
 | |
|     dt,
 | |
|     figcaption,
 | |
|     figure,
 | |
|     hr,
 | |
|     li,
 | |
|     menu,
 | |
|     ol,
 | |
|     p,
 | |
|     pre,
 | |
|     ul,
 | |
|     a,
 | |
|     abbr,
 | |
|     b,
 | |
|     bdi,
 | |
|     bdo,
 | |
|     br,
 | |
|     cite,
 | |
|     code,
 | |
|     data,
 | |
|     dfn,
 | |
|     em,
 | |
|     i,
 | |
|     kbd,
 | |
|     mark,
 | |
|     q,
 | |
|     rp,
 | |
|     rt,
 | |
|     ruby,
 | |
|     s,
 | |
|     samp,
 | |
|     small,
 | |
|     span,
 | |
|     strong,
 | |
|     sub,
 | |
|     sup,
 | |
|     time,
 | |
|     u,
 | |
|     var,
 | |
|     wbr,
 | |
|     area,
 | |
|     audio,
 | |
|     img,
 | |
|     map,
 | |
|     track,
 | |
|     video,
 | |
|     embed,
 | |
|     iframe,
 | |
|     object,
 | |
|     picture,
 | |
|     portal,
 | |
|     source,
 | |
|     svg,
 | |
|     math,
 | |
|     canvas,
 | |
|     noscript,
 | |
|     script,
 | |
|     del,
 | |
|     ins,
 | |
|     caption,
 | |
|     col,
 | |
|     colgroup,
 | |
|     table,
 | |
|     tbody,
 | |
|     td,
 | |
|     tfoot,
 | |
|     th,
 | |
|     thead,
 | |
|     tr,
 | |
|     button,
 | |
|     datalist,
 | |
|     fieldset,
 | |
|     form,
 | |
|     input,
 | |
|     label,
 | |
|     legend,
 | |
|     meter,
 | |
|     optgroup,
 | |
|     option,
 | |
|     output,
 | |
|     progress,
 | |
|     select,
 | |
|     textarea,
 | |
|     details,
 | |
|     dialog,
 | |
|     summary,
 | |
|     slot,
 | |
|     template,
 | |
| ]
 | |
| 
 | |
| import Html.Internal.Shared
 | |
| import Html.Internal.Server
 | |
| 
 | |
| App state initData : Html.Internal.Shared.App state initData
 | |
| Html state : Html.Internal.Shared.Html state
 | |
| Attribute state : Html.Internal.Shared.Attribute state
 | |
| 
 | |
| element = Html.Internal.Shared.element
 | |
| text = Html.Internal.Shared.text
 | |
| none = Html.Internal.Shared.none
 | |
| 
 | |
| translate = Html.Internal.Shared.translate
 | |
| translateStatic = Html.Internal.Shared.translateStatic
 | |
| 
 | |
| ## Render a static Html node to a string, for saving to disk or sending over a network
 | |
| ##
 | |
| ## The output has no whitespace between nodes, to make it small.
 | |
| ## This is intended for generating full HTML documents, so it
 | |
| ## automatically adds `<!DOCTYPE html>` to the start of the string.
 | |
| ## See also `renderStaticWithoutDocType`.
 | |
| renderStatic : Html [] -> Str
 | |
| renderStatic = \node ->
 | |
|     buffer = Str.reserve "<!DOCTYPE html>" (Html.Internal.Shared.nodeSize node)
 | |
| 
 | |
|     Html.Internal.Server.appendRenderedStatic buffer node
 | |
| 
 | |
| ## Render a Html node to a static string, without a DOCTYPE
 | |
| renderStaticWithoutDocType : Html [] -> Str
 | |
| renderStaticWithoutDocType = \node ->
 | |
|     buffer = Str.reserve "" (Html.Internal.Shared.nodeSize node)
 | |
| 
 | |
|     Html.Internal.Server.appendRenderedStatic buffer node
 | |
| 
 | |
| html = element "html"
 | |
| base = element "base"
 | |
| head = element "head"
 | |
| link = element "link"
 | |
| meta = element "meta"
 | |
| style = element "style"
 | |
| title = element "title"
 | |
| body = element "body"
 | |
| address = element "address"
 | |
| article = element "article"
 | |
| aside = element "aside"
 | |
| footer = element "footer"
 | |
| header = element "header"
 | |
| h1 = element "h1"
 | |
| h2 = element "h2"
 | |
| h3 = element "h3"
 | |
| h4 = element "h4"
 | |
| h5 = element "h5"
 | |
| h6 = element "h6"
 | |
| main = element "main"
 | |
| nav = element "nav"
 | |
| section = element "section"
 | |
| blockquote = element "blockquote"
 | |
| dd = element "dd"
 | |
| div = element "div"
 | |
| dl = element "dl"
 | |
| dt = element "dt"
 | |
| figcaption = element "figcaption"
 | |
| figure = element "figure"
 | |
| hr = element "hr"
 | |
| li = element "li"
 | |
| menu = element "menu"
 | |
| ol = element "ol"
 | |
| p = element "p"
 | |
| pre = element "pre"
 | |
| ul = element "ul"
 | |
| a = element "a"
 | |
| abbr = element "abbr"
 | |
| b = element "b"
 | |
| bdi = element "bdi"
 | |
| bdo = element "bdo"
 | |
| br = element "br"
 | |
| cite = element "cite"
 | |
| code = element "code"
 | |
| data = element "data"
 | |
| dfn = element "dfn"
 | |
| em = element "em"
 | |
| i = element "i"
 | |
| kbd = element "kbd"
 | |
| mark = element "mark"
 | |
| q = element "q"
 | |
| rp = element "rp"
 | |
| rt = element "rt"
 | |
| ruby = element "ruby"
 | |
| s = element "s"
 | |
| samp = element "samp"
 | |
| small = element "small"
 | |
| span = element "span"
 | |
| strong = element "strong"
 | |
| sub = element "sub"
 | |
| sup = element "sup"
 | |
| time = element "time"
 | |
| u = element "u"
 | |
| var = element "var"
 | |
| wbr = element "wbr"
 | |
| area = element "area"
 | |
| audio = element "audio"
 | |
| img = element "img"
 | |
| map = element "map"
 | |
| track = element "track"
 | |
| video = element "video"
 | |
| embed = element "embed"
 | |
| iframe = element "iframe"
 | |
| object = element "object"
 | |
| picture = element "picture"
 | |
| portal = element "portal"
 | |
| source = element "source"
 | |
| svg = element "svg"
 | |
| math = element "math"
 | |
| canvas = element "canvas"
 | |
| noscript = element "noscript"
 | |
| script = element "script"
 | |
| del = element "del"
 | |
| ins = element "ins"
 | |
| caption = element "caption"
 | |
| col = element "col"
 | |
| colgroup = element "colgroup"
 | |
| table = element "table"
 | |
| tbody = element "tbody"
 | |
| td = element "td"
 | |
| tfoot = element "tfoot"
 | |
| th = element "th"
 | |
| thead = element "thead"
 | |
| tr = element "tr"
 | |
| button = element "button"
 | |
| datalist = element "datalist"
 | |
| fieldset = element "fieldset"
 | |
| form = element "form"
 | |
| input = element "input"
 | |
| label = element "label"
 | |
| legend = element "legend"
 | |
| meter = element "meter"
 | |
| optgroup = element "optgroup"
 | |
| option = element "option"
 | |
| output = element "output"
 | |
| progress = element "progress"
 | |
| select = element "select"
 | |
| textarea = element "textarea"
 | |
| details = element "details"
 | |
| dialog = element "dialog"
 | |
| summary = element "summary"
 | |
| slot = element "slot"
 | |
| template = element "template"
 |