dalet/README.md

140 lines
2.7 KiB
Markdown
Raw Normal View History

2024-07-22 19:43:20 +03:00
<div align="center">
2024-07-23 19:00:02 +03:00
![Dalet](https://github.com/TxtDot/.github/blob/main/imgs/dalet.png?raw=true)
2024-07-22 19:43:20 +03:00
# Dalet
2024-07-22 19:43:20 +03:00
</div>
Markup language ecosystem сombining small file size, big number of possibilities for describing the interface and readability.
2024-07-22 20:58:07 +03:00
[Specification](./specification/main.md).
2024-08-02 19:49:33 +03:00
[Rust implementation](https://github.com/TxtDot/dalet-rs)
2024-07-22 20:58:07 +03:00
2024-07-23 12:45:41 +03:00
> [!WARNING]
2024-07-27 17:44:34 +03:00
> Specification is not complete and very unstable.
2024-07-23 12:45:41 +03:00
2024-07-22 20:58:07 +03:00
## Concept
2024-07-23 19:00:02 +03:00
This is Daleth (high level language that compiles to Daletl).
2024-07-22 20:58:07 +03:00
```yaml
2024-08-07 15:54:57 +03:00
# tag syntax
#
# tag: text body
# tag (multiline text body)
2024-07-23 17:39:24 +03:00
# body text always trimmed
2024-08-07 15:54:57 +03:00
#
# tag { multiple tags body }
#
# Arguments
# tag[argument]
#
# Tags without body and argument also supported
meta[title]: Daleth syntax concept
meta[description]: This document describes Daleth syntax and some tags
h[1]: TxtDot revolution
2024-07-22 20:58:07 +03:00
p: TxtDot is a cool project
2024-08-07 15:54:57 +03:00
# If no tag is specified, then the 'paragraph' tag is placed
# () for block of text
(
Check Dalet too
This is one paragraph
)
This is another paragraph
2024-08-07 15:54:57 +03:00
br
# [ ] for argument
2024-08-07 15:54:57 +03:00
row[center] {
link[https://github.com/txtdot/txtdot]: Homepage
2024-08-07 15:54:57 +03:00
btn[https://example.com/donate] {
# tag without body
img[https://example.com/donate.png]
Donate
}
}
2024-07-22 20:58:07 +03:00
# {} for multiple objects
2024-08-07 15:54:57 +03:00
row {
2024-07-22 20:58:07 +03:00
{
h[2]: Features
2024-07-22 20:58:07 +03:00
2024-08-07 15:54:57 +03:00
ul {
2024-07-22 20:58:07 +03:00
Server-side page simplification
Media proxy
Image compression with Sharp
Rendering client-side apps (Vanilla, React, Vue, etc) with webder
Search with SearXNG
Handy API endpoints
No client JavaScript
Some kind of Material Design 3
Customization with plugins, see @txtdot/sdk and @txtdot/plugins
}
}
{
h[2]: Running
2024-07-22 20:58:07 +03:00
{
h[3]: Dev
2024-07-22 20:58:07 +03:00
# () for multiline strings, indent is automatically trimmed
2024-08-07 15:54:57 +03:00
code (
2024-07-22 20:58:07 +03:00
npm install
npm run dev
)
# (~n Text) n is number of minimum spaces
2024-08-07 15:54:57 +03:00
code[markdown] (~4
this is codeblock
)
# (# Text) Text after "(# " not modified
2024-08-07 15:54:57 +03:00
code[markdown] (# this is codeblock)
2024-07-22 20:58:07 +03:00
}
{
h[3]: Production
2024-07-22 20:58:07 +03:00
2024-08-07 15:54:57 +03:00
code (
2024-07-22 20:58:07 +03:00
npm install
npm run build
npm run start
2024-07-22 21:08:37 +03:00
)
2024-07-22 20:58:07 +03:00
}
{
h[3]: Docker
2024-07-22 20:58:07 +03:00
code: docker compose up -d
}
}
}
2024-07-23 17:39:24 +03:00
# Table has custom format if text used
2024-08-07 15:54:57 +03:00
# +| cells | - primary column
# | cells | - secondary column
# | Element | Description | - converts to
# tcol {
# Element
# Description
# }
2024-08-07 15:54:57 +03:00
table (
+| Element | Description |
| h | Heading |
| p | Paragraph |
| img | Image |
| link | Link |
| btn | Button |
| ul | Unordered list |
| br | Line break |
+| quantity | 7 |
)
2024-07-22 20:58:07 +03:00
```