# Concise Mode Modifications ## Text inside a tag ### Current Syntax: ``` div -- Hello World p -- This is a bunch of text inside a paragraph ``` #### Pros: - Nice multiline #### Cons: - Not familiar to newcomers ### Proposal 1: ``` p `Hello World` div ` This is a bunch of text inside a paragraph ` ``` #### Pros: - Familiar to newcomers - It is usually clear when a text node ends with whitespace #### Cons: - Multiline looks kind of gross - The end of the text node must be marked - <code>\`</code> must be escaped when used in a text node - It isn't clear what should happen here: ``` p `there is some ` b `bold ` `text ` `in this paragraph.` ``` ## Semicolon as newline/indentation ### Current behavior: ``` div; p // => error div; // comment // => no error ``` ### Proposal 1: ``` div; p // => p inside div div; // comment // => no error ``` ### Proposal 2: ``` div; p // => p next to div div > p // => p inside div ``` Extra benefit: `if` and `for` can be used directly instead of with directives, which Luke thinks is more obvious at a glance ``` let/val = "" input #value=val // with directives button #if=val onClick() { val = "" } -- clear // with new syntax if=val > button onClick() { val = "" } -- clear ``` ## Attributes in array ### Current Behavior: ``` my-tag=default [ attr1=false attr2="" ] ``` #### Pros: - No need for commas - Beginning and end are clearly marked - If modifications are made to current parsing, this is kind of nice: ``` div [class="red"] p -- nested `p` on same line ``` #### Cons: - Luke doesn't like it ### Proposal 1: ``` my-tag=default, attr1=false, attr2="" /****** OR ******/ my-tag=default ,attr1=false ,attr2="" /****** OR ******/ my-tag=default ,attr1=false attr2="" ``` #### Pros: - Basically already exists - Easy to describe #### Cons: - May be harder to read - Every newline needs a comma ### Proposal 2: ``` my-tag: =default attr1=false attr2=""; ``` #### Pros: - Attribute block is clearly defined #### Cons: - Default attribute is controversial - Especially with `:=` ### CURRENT FAVORITE: - Use proposal 1 with commas, but lighten rules - comma is completely optional _unless_ it is before or after a newline ## Text Tag Body Content For `<script>`, `<style>`, `<textarea>`, `<html-comment>` we shouldn't require `--` inside the body of concise mode. HOWEVER, it would be a breaking change to treat `--` as a _part_ of the text so it is now _optional_.