Skip to content

viktorchernev/DescribeCompiler

Repository files navigation

Describe Markup Language

242452146-26dc5f4b-a676-41b8-837a-ac2fad29e556aa3

Maintaining large data lists, made easy

GitHub release (latest by date) License: AGPL v3

Describe is a markup language designed to write and maintain complex data lists that are compiled on demand to various formats, such as html, xml, sql and json. It is simple to use, intuitive and easy to master. Describe is readily extendible - implementing support for new target languages or customizing the transpilation process is straightforward, making it adaptable to a wide range of projects.

Built on the reliable ANTLR 4.13, Describe offers a robust grammar. The Describe Compiler is currently in beta. It is available for free under the AGPL v3 license, but commercial licenses are negotiable as well.

While ANTLR ensures strong grammar handling, please note that the compiler is still under active development, and occasional bugs may occur. We appreciate your patience as we continue to improve the tool.

How to

In order to run the DescribeCompilerCLI.exe you need a Windows PC with DotNet framework version 4.8 or higher. In order to reference the DescribeCompilerAPI.dll in your DotNet projects, you need to target DotNet framework version 4.8 or higher. There are no other dependencies. Also, be sure to check out our wiki for the complete documentation.

0. Set up highlighting

In order to highlight Describe code, you can download the xml files for Notepad++ from the folder Highlighting, or use the instructions provided in said folder to set up your preferred text editor.

1. Write Describe code

Write a title of each list, followed by an arrow -> and the elements, one on a line, separated by comma , and end with a semicolon ;. Add [links] in square brackets, and <tag> items in order to piece lists together. Add additional data as {decorators} in curly brackets or as tilde inversions - ~. For more info visit the documentation/github or explore Describe source codes and test cases in this huge collection/github.

pic1a

Run the CLI compiler by specifying the target folder (or file) as first argument and output file (or folder) as second argument. Add options after that, if needed.

pic2a

3. Result

The final output will depend on the translator used - and you can easily write your own translator, or use the ones that are prebuilt for you. Here we are using a set of particular HTML templates to build a bare-bone website. The JSON translator is one of the particularly usefull ones. With that tanslator you produce JSON that can be consumed from web applications.

pic3a

Get in touch

  • Use GitHub's issue reporter on the right
  • Send me an email vchernev91@abv.bg (might take a few days)
  • You can reach me on Viber as well: +359-885-18-05-86

Releases

We are working on testing the Transpiler v1.0, as it is in alpha - pre release phase. It is finished but contains bugs here and there, and once those have been removed, it will be released.

  • 1.0 (Coming up soon)
  • 0.9.3 (Support for Describe Language v1.0 - Official)
  • 0.9.2 (Added features and bugfixes)
  • 0.9.1 (Refactoring, added features and bugfixes)
  • 0.9 (Initial release - Open beta)

Notes

  • We currently have inbuilt translators for HTML and JSON. If you need to target other languages, you'd have to write your own translator - it is very easy. I will give updates here when more translators are available.