Skip to content
/ choco Public

Choco is a markup language for dialogue systems

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

30bit/choco

Repository files navigation

choco crate choco documentation workflow run status

Choco is a markup language for dialogue systems. It works by emitting signals from text into rust via special @-syntax.

Syntax

Every signal is prefixed with @-character. Signals may contain

  • just a prompt (e.g. @wave)
  • just a parameter (e.g. @{ My important param })
  • both prompt and parameter (e.g. @bookmark{into})
  • or neither (e.g. Pay attention! @).

Three signal prompts are taken by Choco. These are bookmark, choice and style.

Branching

Branching is easy in Choco. @bookmark{bookmark-name} registers a graph node, and @choice{chosen-bookmark-name} creates an edge between bookmark this choice belongs to and chosen bookmark. For example:

@bookmark{greet}
– Hello, you!
@choice{greet}– Come again?
@choice{bye}– Hi!

@bookmark{bye}
– Well, farewell..

Styling

Styling text is done with @style signal. It accepts a mix of shortened to one character style names and prefixes promptless parameter, containing text. For example,

@style{qbp}@{- Hello, you!}

Style names are slightly opinionated, but you decide how to display a mix of them:

Char Style Note
p Panel i.e. block
c Code
q > Quote doesn't have to be block-quote
b Bold
i Italic
s Scratch i.e. strike-through

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Choco is a markup language for dialogue systems

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Languages