---
# System prepended metadata

title: Concise Mode Modifications

---

# 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_.