Ryouiki
Self-hosted domain communication service

Pages

Pages are structured, interactive documents optionally served along side the client application. When serving non-API content over HTTP, the domain's pages are converted to HTML and JavaScript.

@Page Format {
    Name    :sequence
    Program :Container
}

@Page Content {
    Name :sequence
    Text :sequence
}

Page {
    Name    :sequence
    Path    :sequence
    Format  :natural
    Content :list{Content}
}

Format

Structure

Page structure is composed using a custom configuration of Suzu.

Structure primarily consists of Containers, which may be Columns, Rows, or Blocks.

Container formats are based on HTML flex elements.

document = Column.{
    Content:[
        Row.{
            Id: "header"
            Content:[
                Row.{
                    Id: "title"
                    Content:["Title"]
                }

                Row.{
                    Id: "hotbar"
                    Content: |=|Button {
                        |Text |Action |
                        |"⚙" |       |
                    }
                }
            ]
        }

        Row.{
            Content:[
                Column.{
                    Id: "nav"
                    Content: |=|Button {
                        |Text |Action |
                        |""   |       |
                    }
                }
                Column.{
                    Id: "main"
                    Content: Main
                }
            ]
        }
    ]
}

Content

Page content is formatted with GitHub Flavored Markdown.

Components

Components are built-in interface elements with special formatting and behavior.

Actions

Actions are behaviors activated through interaction with components.