anchor.diff:  This project uses {uri-opal}[Opal] to transpile http://asciidoctor.org[Asciidoctor], a modern implementation of AsciiDoc, from Ruby to JavaScript to produce _asciidoctor.js_.
   The _asciidoctor.js_ script can be run on any JavaScript platform, including Node.js, Nashorn and, of course, a web browser.
   
  -== Introduction
  +## Introduction
   
   You can use Asciidoctor.js either for back-end development using {uri-nodejs}[Node.js] or front-end development using a browser.
   
  -== Front-end development
  +## Front-end development
   
  -[source, bash]
   .Installing Asciidoctor.js with Bower
  -----
  -$ bower install asciidoctor.js --save
  -----
  +
  +    $ bower install asciidoctor.js --save
   
   Once the package installed, you can add the following `script` tag to your HTML page:
   
  -[source,html]
  -----
  +```html
   <script src="bower_components/asciidoctor.js/dist/asciidoctor-all.min.js"></script>
   <!-- If you need docbook backends -->
   <script src="bower_components/asciidoctor.js/dist/asciidoctor-docbook.min.js"></script>
  -----
  +```
   
   If you don't want to use *extensions*, you can load files separately :
   
  -[source,html]
  -----
  +```html
   <script src="bower_components/opal/opal/current/opal.min.js"></script>
   <script src="bower_components/asciidoctor.js/dist/asciidoctor-core.min.js"></script>
   <!-- If you need docbook backends -->
   <script src="bower_components/asciidoctor.js/dist/asciidoctor-docbook.min.js"></script>
  -----
  +```
   
   Here is a simple example that converts AsciiDoc to HTML5 using the `doctype: 'inline'` option and `showtitle` attribute:
   
   .sample.js
  -[source,javascript]
  -----
  +
  +```javascript
   var content = "http://asciidoctor.org[*Asciidoctor*] " +
       "running on http://opalrb.org[_Opal_] " +
       "brings AsciiDoc to the browser!";
   var options = Opal.hash({doctype: 'inline', attributes: ['showtitle']});
   var html = Opal.Asciidoctor.$convert(content, options); // <1>
   console.log(html); // <2>
  -----
  +```
  +
   <1> Convert AsciiDoc content to HTML5 using Asciidoctor.js
   <2> Print the HTML5 output to the console
   
  -== Back-end development
  +## Back-end development
   
  -[source, bash]
   .Installing Asciidoctor.js with npm
  -----
  -$ npm install asciidoctor.js --save
  -----
  +
  +    $ npm install asciidoctor.js --save
   
   Once the package is installed, the first thing to do is to load the `asciidoctor.js` module using `require`, then you're ready to start using the API:
   
   .sample.js
  -[source,javascript]
  -----
  +
  +```javascript
   var asciidoctor = require('asciidoctor.js')(); // <1>
   var opal = asciidoctor.Opal; // <2>
   
  
positive.code: <a href="http://asciidoctor.org"><strong>Asciidoctor</strong></a> running on <a href="http://opalrb.org"><em>Opal</em></a> brings AsciiDoc to Node.js!</p>
  ....
  
  == Advanced topics
  
  If you want to know more about _Asciidoctor.js_, please read the {uri-user-manual}[User Manual].
  
  == Contributing
  
  In the spirit of {uri-freesoftware}[free software], _everyone_ is encouraged to help improve this project.
  If you discover errors or omissions in the source code, documentation, or website content, please don't hesitate to submit an issue or open a pull request with a fix.
  
negative.code: var options = opal.hash({doctype: 'inline', attributes: ['showtitle']});
  var html = processor.$convert(content, options); // <5>
  console.log(html); // <6>
  ```
  
  <1> Load the Asciidoctor.js library
  <2> Retrieve and alias the top-level Opal namespace
  <3> Instantiate Asciidoctor with extensions enabled
  