Move to custom SSG instead of eleventy.
This commit is contained in:
204
docs/pages/index.tce
Normal file
204
docs/pages/index.tce
Normal file
@@ -0,0 +1,204 @@
|
||||
layout layout.njk
|
||||
title Terrace - A simple structured data language
|
||||
description
|
||||
A simple structured data syntax for configuration, content authoring, and DSLs.
|
||||
Terrace gets out of your way to let you just write
|
||||
|
||||
Section light
|
||||
class pt-24 flex flex-col gap-16 md:flex-row lg:gap-48
|
||||
Block
|
||||
class flex flex-col gap-8 w-full items-start
|
||||
Logo light
|
||||
class hidden lg:flex
|
||||
|
||||
Markdown
|
||||
class prose-ul:list-none
|
||||
A simple structured data syntax for
|
||||
- **Configuration**
|
||||
- **Content authoring**
|
||||
- **DSLs**
|
||||
|
||||
Terrace gets out of your way to let you
|
||||
- **just write**
|
||||
Button primary
|
||||
href /docs/javascript/#getting-started
|
||||
Get Started
|
||||
|
||||
CodeExample
|
||||
height 350px
|
||||
terrace
|
||||
title Terrace - A simple structured data language
|
||||
description
|
||||
A simple structured data syntax for configuration, content authoring, and DSLs.
|
||||
Terrace gets out of your way to let you just write
|
||||
markdown
|
||||
A simple structured data syntax for
|
||||
- **Configuration**
|
||||
- **Content authoring**
|
||||
- **DSLs**
|
||||
|
||||
Terrace gets out of your way to let you
|
||||
- **just write**
|
||||
json
|
||||
{
|
||||
"title": "Terrace - A simple structured data language",
|
||||
"description": "A simple structured data syntax for configuration, content authoring, and DSLs.\nTerrace gets out of your way to let you just write",
|
||||
"markdown": "A simple structured data syntax for\n - **Configuration**\n - **Content authoring**\n - **DSLs**\n\nTerrace gets out of your way to let you\n - **just write**"
|
||||
}
|
||||
yaml
|
||||
title: Terrace - A simple structured data language
|
||||
description: |
|
||||
A simple structured data syntax for configuration, content authoring, and DSLs.
|
||||
Terrace gets out of your way to let you just write
|
||||
markdown: |
|
||||
A simple structured data syntax for
|
||||
- **Configuration**
|
||||
- **Content authoring**
|
||||
- **DSLs**
|
||||
|
||||
Terrace gets out of your way to let you
|
||||
- **just write**
|
||||
toml
|
||||
title = "Terrace - A simple structured data language"
|
||||
description = """
|
||||
A simple structured data syntax for configuration, content authoring, and DSLs.
|
||||
Terrace gets out of your way to let you just write"""
|
||||
markdown = """
|
||||
A simple structured data syntax for
|
||||
- **Configuration**
|
||||
- **Content authoring**
|
||||
- **DSLs**
|
||||
|
||||
Terrace gets out of your way to let you
|
||||
- **just write**"""
|
||||
|
||||
Section dark
|
||||
Heading 2 Uses
|
||||
|
||||
Block
|
||||
class flex flex-col space-between gap-16 md:flex-row lg:gap-48
|
||||
|
||||
Block
|
||||
class max-w-prose
|
||||
Block
|
||||
class flex gap-4 items-center mb-4
|
||||
Icon settings
|
||||
Heading 3 Configuration
|
||||
class mb-0
|
||||
Markdown
|
||||
Terrace’s concise syntax (or lack thereof)
|
||||
makes it a great fit for configuration files.
|
||||
Less verbose than JSON without the wild unpredictability and hidden syntax pitfalls that come with YAML.
|
||||
|
||||
If you wish, you can build in your own input validation and type casting while parsing configuration files.
|
||||
|
||||
Block
|
||||
class max-w-prose
|
||||
Block
|
||||
class flex gap-4 items-center mb-4
|
||||
Icon feather
|
||||
Heading 3 Content Authoring
|
||||
class mb-0
|
||||
Markdown
|
||||
An unopinionated, indent-based syntax allows fulls blocks of plain-text or markup languages (such as markdown) to be embedded inside of Terrace documents.
|
||||
|
||||
This enables effortless mixing of data, prose, and functional blocks in human-written documents. No more need for clumsy frontmatter or custom Markdown extensions!
|
||||
|
||||
Block
|
||||
class max-w-prose
|
||||
Block
|
||||
class flex gap-4 items-center mb-4
|
||||
Icon code
|
||||
Heading 3 Domain-Specific Languages
|
||||
class mb-0
|
||||
Markdown
|
||||
Terrace documents, at their core, are effectively their own AST (Abstract Syntax Tree). Every time you parse a Terrace document you’ve essentially parsed your own DSL.
|
||||
|
||||
The core libraries are designed with this in mind, exposing ergonomic tools while getting out of your way as much as possible, so you can make Terrace your own.
|
||||
|
||||
Button primary
|
||||
class inline-block mt-8
|
||||
See Examples
|
||||
|
||||
Section light
|
||||
Heading 2 Core
|
||||
|
||||
Block
|
||||
class flex flex-col space-between gap-16 md:flex-row lg:gap-48
|
||||
|
||||
Block
|
||||
Heading 3 Tiny - <strong>Really Tiny</strong>
|
||||
class mb-4
|
||||
Markdown
|
||||
The C version of the core parser is ~30 lines. Most other implementations are of comparable size.
|
||||
|
||||
Heading 3 Easy to Implement
|
||||
class mb-4 mt-16
|
||||
Markdown
|
||||
Need to use Terrace in another runtime? The tiny core and reliance on rudimentary control structures makes that a cinch!
|
||||
|
||||
Block
|
||||
Heading 3 Zero Dependencies
|
||||
class mb-4
|
||||
Markdown
|
||||
All Terrace implementations rely only on the built-ins of their language. The header-only C core has no dependencies, not even libc.
|
||||
|
||||
Heading 3 No Dynamic Memory
|
||||
class mb-4 mt-16
|
||||
Markdown
|
||||
Terrace allocates no dynamic memory of its own, working entirely on the stack. A great fit for resource-constrained environments.
|
||||
|
||||
Block
|
||||
Heading 3 Unopinionated
|
||||
class mb-4
|
||||
Markdown
|
||||
Terrace makes as few assumptions as possible about how you intend to use it, leaving you with the tools you need to use it as you see fit.
|
||||
|
||||
Heading 3 Available in 3+ languages
|
||||
class mb-4 mt-16
|
||||
Markdown
|
||||
At launch, Terrace has a reference C implementation, a TypeScript/JavaScript implementation, and a Python version available as well. We’ll be adding more as time permits!
|
||||
|
||||
Button primary
|
||||
class inline-block mt-8
|
||||
Add a Language
|
||||
|
||||
Section dark
|
||||
Heading 2 Learn More
|
||||
|
||||
Block
|
||||
class flex flex-col space-between gap-16 md:flex-row lg:gap-48
|
||||
|
||||
Block
|
||||
class max-w-prose
|
||||
Block
|
||||
class flex gap-4 items-center mb-4
|
||||
Icon info
|
||||
Heading 3 About
|
||||
href /about/
|
||||
class mb-0
|
||||
Markdown
|
||||
Why does Terrace exist? What is it based on? What are the development goals?
|
||||
|
||||
Block
|
||||
class max-w-prose
|
||||
Block
|
||||
class flex gap-4 items-center mb-4
|
||||
Icon file-text
|
||||
Heading 3 Documentation
|
||||
href /docs/javascript/
|
||||
class mb-0
|
||||
Markdown
|
||||
Setup instructions, API documentation, and recipes for how to perform common tasks with Terrace.
|
||||
|
||||
Block
|
||||
class max-w-prose
|
||||
Block
|
||||
class flex gap-4 items-center mb-4
|
||||
Icon users
|
||||
Heading 3 Contribute
|
||||
class mb-0
|
||||
Markdown
|
||||
Join the community! Help out by answering issues, expanding documentation, or building additional language implementations!
|
||||
|
||||
Footer
|
||||
Reference in New Issue
Block a user