Code Monkey home page Code Monkey logo

asciidoc-grammar-prototype's Introduction

Asciidoctor Grammar Prototype

This repository contains an ANTLR4 grammar for AsciiDoc.

Note

This is a work in progress project in an early stage.

Feel free to change anything you need and send a PR.

Hacking

The project uses Gradle as a build tool with the antlr plugin.

Just clone the repo

$ git clone https://github.com/asciidoctor/asciidoc-grammar-prototype

Import it in your preferred IDE and check the available tasks

$ gradlew tasks

Gradle tasks

To offer some help the following Gradle tasks are included:

  • generateGrammarSource: (added by antlr) parses the grammar file to generate the Java parsing classes.

  • downloadExamples: downloads a set of readme.adoc files from GitHub repositories into src/test/resources to be used for testing.

  • inspectTree-*: uses antlr’s TestRig tool to parse a *.adoc file and show the resulting parsed tree in a separate window (see image below). A task will be created for each *.adoc file found in the src/test/resources folder.

TestRig example

Helper classes

The class org.asciidoctor.parser.antlr.AntlrParser provides some methods to interact with the antlr’s API.

Note that it depends on the generated Java parsing classes, expect some IDE complains about missing classes during parser generation.

IDE support

Both Intellij and Eclipse have plugins with features like grammar syntax highlighting. Check http://www.antlr.org/tools.html for more details.

References

Here is a list of interesting links about the syntax and the state of this project:

Contributing

We want you! Yes, you.

Anyone can contribute to an Asciidoctor project. If you have a specialty, or just some creativity to share, we need your participation. We have big aspirations for the project and we need an assortment of skill sets in order to reach them. Make no mistake, contributing is not just for developers.

Of course, we’ll always need help with the code as it’s the basis of the project. But code isn’t going to make the project successful alone. We also need documentation, automation, design, marketing, communication, advocacy and more for it to make an impact.

Here are just a few of the ways you can contribute to the project:

  • Reporting bugs (The easiest way to get started!)

  • Sharing ideas on http://discuss.asciidoctor.org

  • Suggesting new feature or improvements in the issue tracker

  • Speaking about the technology

  • Advocating for the technology

  • Assisting with design and/or UX (stylesheets, themes, logos, etc)

  • Conducting user studies and collecting feedback

  • Automating system administration tasks (releases, changelog, announcements, hosting, etc)

  • Writing, editing or maintaining the documentation

  • Organizing the content (information architecture & content strategy)

  • Using or extending the software in a creative way

  • Testing a prerelease, a pull request or master

  • Reviewing or providing feedback on pull requests

  • Writing code (No patch is too small!)

    • Fixing typos

    • Adding or revising comments or API docs

    • Fixing issues

    • Writing tests

    • Refactoring the code

  • Something we haven’t suggested…​seriously!

The best way to get involved is just to show up and express your interest. We have a very friendly and encouraging culture. Harassment or offensive behavior is simply not tolerated. We are positive, even when being critical. We also strive to lift others up and help them be successful. We want your choice to participate in an Asciidoctor project be the start of an exciting and rewarding journey. So thanks for showing up!

asciidoc-grammar-prototype's People

Contributors

abelsromero avatar jirutka avatar

Watchers

James Cloos avatar Venkat Peri avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.