-
Notifications
You must be signed in to change notification settings - Fork 1
Description
A few comments regarding HTML <-> Arturo correspondence, based on the official listing (and keeping only the modern, valid HTML5 tags):
| Tag | Description | Top Priority | Naming clashes / Suggested function name | Example function | Possible options | Comments |
|---|---|---|---|---|---|---|
| !DOCTYPE | Defines the document type | could be an option to html? |
||||
| a | Defines a hyperlink | ✅ | ❌ link |
link "text" "href" |
.newWindow -> target="_blank" |
|
| abbr | Defines an abbreviation or an acronym | |||||
| address | Defines contact information for the author/owner of a document | |||||
| area | Defines an area inside an image map | |||||
| article | Defines an article | |||||
| aside | Defines content aside from the page content | |||||
| audio | Defines embedded sound content | |||||
| b | Defines bold text | ✅ | ❌ bold |
bold "text" |
||
| base | Specifies the base URL/target for all relative URLs in a document | |||||
| bdi | Isolates a part of text that might be formatted in a different direction from other text outside it | |||||
| bdo | Overrides the current text direction | |||||
| blockquote | Defines a section that is quoted from another source | |||||
| body | Defines the document's body | ✅ | ✅ | body [ contents ] |
||
| br | Defines a single line break | ✅ | ✅ | br |
||
| button | Defines a clickable button | |||||
| canvas | Used to draw graphics, on the fly, via scripting (usually JavaScript) | |||||
| caption | Defines a table caption | |||||
| cite | Defines the title of a work | |||||
| code | Defines a piece of computer code | |||||
| col | Specifies column properties for each column within a "colgroup" element | |||||
| colgroup | Specifies a group of one or more columns in a table for formatting | |||||
| data | Adds a machine-readable translation of a given content | |||||
| datalist | Specifies a list of pre-defined options for input controls | |||||
| dd | Defines a description/value of a term in a description list | |||||
| del | Defines text that has been deleted from a document | |||||
| details | Defines additional details that the user can view or hide | |||||
| dfn | Specifies a term that is going to be defined within the content | |||||
| dialog | Defines a dialog box or window | |||||
| div | Defines a section in a document | ✅ | ❌ division?? |
division [ contents ] |
||
| dl | Defines a description list | |||||
| dt | Defines a term/name in a description list | |||||
| em | Defines emphasized text | ✅ | ❌ emphasis |
emphasis "text" |
||
| embed | Defines a container for an external application | |||||
| fieldset | Groups related elements in a form | |||||
| figcaption | Defines a caption for a "figure" element | |||||
| figure | Specifies self-contained content | |||||
| footer | Defines a footer for a document or section | |||||
| form | Defines an HTML form for user input | ✅ | ✅ | form [ contents ] |
||
| h1 | Defines HTML headings | ✅ | ✅ | h1 "text" |
||
| h2 | Defines HTML headings | ✅ | ✅ | h2 "text" |
||
| h3 | Defines HTML headings | ✅ | ✅ | h3 "text" |
||
| h4 | Defines HTML headings | ✅ | ✅ | h4 "text" |
||
| h5 | Defines HTML headings | ✅ | ✅ | h5 "text" |
||
| h6 | Defines HTML headings | ✅ | ✅ | h6 "text" |
||
| head | Contains metadata/information for the document | ✅ | ✅ | head [ contents ] |
||
| header | Defines a header for a document or section | |||||
| hgroup | Defines a header and related content | |||||
| hr | Defines a thematic change in the content | ✅ | ✅ | hr |
||
| html | Defines the root of an HTML document | ✅ | ✅ | html [ contents ] |
.html4, xhtml |
|
| i | Defines a part of text in an alternate voice or mood | ✅ | ❌ italic |
italic "text" |
||
| iframe | Defines an inline frame | |||||
| img | Defines an image | ✅ | ✅ | img "src" |
||
| input | Defines an input control | ✅ | ❌ textfield? |
textfield "value" |
||
| ins | Defines a text that has been inserted into a document | |||||
| kbd | Defines keyboard input | |||||
| label | Defines a label for an "input" element | |||||
| legend | Defines a caption for a "fieldset" element | |||||
| li | Defines a list item | ✅ | ❌ item? |
item "text" |
||
| link | Defines the relationship between a document and an external resource (most used to link to style sheets) | ✅ | ❌ stylesheet? |
stylesheet "url" |
.rel: -> rel = ... |
|
| main | Specifies the main content of a document | |||||
| map | Defines an image map | |||||
| mark | Defines marked/highlighted text | |||||
| menu | Defines an unordered list | |||||
| meta | Defines metadata about an HTML document | ✅ | ✅ | meta "name" "content" |
||
| meter | Defines a scalar measurement within a known range (a gauge) | |||||
| nav | Defines navigation links | |||||
| noscript | Defines an alternate content for users that do not support client-side scripts | |||||
| object | Defines a container for an external application | |||||
| ol | Defines an ordered list | ✅ | ❌ listing.ordered |
listing.ordered [ contents ] |
.unordered -> ul (default), .ordered -> ol |
|
| optgroup | Defines a group of related options in a drop-down list | |||||
| option | Defines an option in a drop-down list | ✅ | ✅ | option "value" "text" |
||
| output | Defines the result of a calculation | |||||
| p | Defines a paragraph | ✅ | ❌ par |
par [ contents ] |
||
| param | Defines a parameter for an object | |||||
| picture | Defines a container for multiple image resources | |||||
| pre | Defines preformatted text | |||||
| progress | Represents the progress of a task | |||||
| q | Defines a short quotation | |||||
| rp | Defines what to show in browsers that do not support ruby annotations | |||||
| rt | Defines an explanation/pronunciation of characters (for East Asian typography) | |||||
| ruby | Defines a ruby annotation (for East Asian typography) | |||||
| s | Defines text that is no longer correct | |||||
| samp | Defines sample output from a computer program | |||||
| script | Defines a client-side script | ✅ | ❌ source |
source "url" |
.type: -> type = ..., .async -> async |
|
| search | Defines a search section | |||||
| section | Defines a section in a document | |||||
| select | Defines a drop-down list | ✅ | ❌ dropdown |
dropdown [ contents ] |
||
| small | Defines smaller text | |||||
| source | Defines multiple media resources for media elements | |||||
| span | Defines a section in a document | ✅ | ✅ | span "text" |
||
| strong | Defines important text | ✅ | ✅ | string "text" |
||
| style | Defines style information for a document | ✅ | ✅ | style "css" |
||
| sub | Defines subscripted text | |||||
| summary | Defines a visible heading for a "details" element | |||||
| sup | Defines superscripted text | |||||
| svg | Defines a container for SVG graphics | |||||
| table | Defines a table | ✅ | ✅ | table [ contents ] |
||
| tbody | Groups the body content in a table | ✅ | ✅ | tbody [ contents ] |
||
| td | Defines a cell in a table | ✅ | ❌ cell? |
cell [ contents ] |
||
| template | Defines a container for content that should be hidden when the page loads | |||||
| textarea | Defines a multiline input control (text area) | |||||
| tfoot | Groups the footer content in a table | |||||
| th | Defines a header cell in a table | ✅ | ❌ cell.header? |
cell.header [ contents ] |
||
| thead | Groups the header content in a table | ✅ | ✅ | thead [ contents ] |
||
| time | Defines a specific time (or datetime) | |||||
| title | Defines a title for the document | ✅ | ✅ | title "text" |
||
| tr | Defines a row in a table | ✅ | ❌ row? |
row [ contents ] |
||
| track | Defines text tracks for media elements | |||||
| u | Defines some text that is unarticulated and styled differently from normal text | ✅ | ❌ underline |
underline "text" |
||
| ul | Defines an unordered list | ✅ | ❌ listing.unordered |
listing [ contents ] |
.unordered -> ul (default), .ordered -> ol |
|
| var | Defines a variable | |||||
| video | Defines embedded video content | |||||
| wbr | Defines a possible line-break |
A few more comments:
-
As per the W3C standard, all elements support different global attributes - I'm not sure it makes sense to support all of them (or, at least, right now), but it would make sense to support
.id:and.class:(and perhaps.style:) for - almost - all of the elements above -
Some of them above is obvious that they take a
:stringas a parameter, while others seem like a natural fit for a:block; my experience with the initial module says that - in such case - we should perhaps support both (and if it's a block, we'djoin @[]the contents as a string) -
All name clashes marked above are valid, ofc, if you do allow Arturo code to run within any of that - if we're 100% scope-tight, then we don't have to change anything and use directly the "official" names...
So, so, so... Food for thought! 😄 🚀