<commit_before>## Catalan HyperText Markup Language
An attempt to make HTML easier to write in simple text editors using brackets.
The name comes from the [Catalan numbers](https://en.wikipedia.org/wiki/Catalan_number),
as the design is based around brackets.

### Basic idea
Instead of 
```html
<div>
    <p class="silly">Hello, World!</p>
</div>
```
users should only have to type something like
```html
(div
  (p class: silly; 'Hello, World!')
)
```
Or, for the power user, something like `(div [p class:silly; 'Hello, World!'])`
(i.e. using interchangeable `(.)`s and `[.]`s).
### Implementation
The program will be a Python script that will output `.html` files, just like Markdown.
The inverse should be possible to: any `.html` should be easily translated to 
`.chtml` (or perhaps `.cht` for short) for working.

### Possible (plausible?) features
- flag to dot `.cht` files when compiling `.html` files<commit_msg>Wrote up potential problems.<commit_after>## Catalan HyperText Markup Language
An attempt to make HTML easier to write in simple text editors using brackets.
The name comes from the [Catalan numbers](https://en.wikipedia.org/wiki/Catalan_number),
as the design is based around brackets.

### Basic idea
Instead of 
```html
<div>
    <p class="silly">Hello, World!</p>
</div>
```
users should only have to type something like
```html
(div
  (p class: silly; Hello, World!)
)
```
Or, for the power user, something like `(div [p class:silly; Hello, World!])`
(i.e. using interchangeable `(.)`s and `[.]`s).
### Implementation
The program will be a Python script that will output `.html` files, just like Markdown.
The inverse should be possible to: any `.html` should be easily translated to 
`.chtml` (or perhaps `.cht` for short) for working.

#### Syntactic elements
The general form will be something like `<a href="x">link</a>` → `(a href: x; link)`. 
A possible alternate canonical form would be something like `a(href: x; link)`, so the
scope of the element is very clear. This would yield
```html
div(
   p(class: silly; Hello, World!)
)
```
- A problem with this is if there are elements that are not part of the normal namespace, the parser
will freak out.
- A problem might also be that special characters cause the compiler to end the group (as they're
called in regexes) prematurely.
- Another possible problem is that the class might be a little unclear. For instance,
`<p class="silly, fancy">text</p>` → `(p class: silly, fancy; text)` renders it a little less clear,
as there is no delimiter between the list of classes and the actual contents. Perhaps this is
mitigated by enclosing the text in quotation marks, e.g. `(p class: silly, fancy; 'text')`, or
more experimental solutions such as `(p class: silly, fancy; | text)` which is quite pleasing
to the eye, though might yield other problems with keyboards other than US qwerty.


### Possible (plausible?) features
- flag to dot `.cht` files when compiling `.html` files
{'fraction_non_alphanumeric': 0.11482607227288079, 'fraction_numerical': 0.0, 'mean_word_length': 4.485185185185185, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5149212', 'n_tokens_mistral': 896, 'n_tokens_neox': 847, 'n_words': 430}