Pseudocode

The documentation embeds some algorithms written using pseudocode.js whose syntax is mostly compatible with latex package algorithmic.

The documentation and in particular the grammar is here.

Example of the pseudocode for the quicksort algorithm rendered by pseudocode.js

Algorithm 1 Quicksort

procedure Quicksort($A, p, r$)

if $p < r$ then

$q = $ Partition($A, p, r$)

Quicksort($A, p, q - 1$)

Quicksort($A, q + 1, r$)

end if

end procedure

procedure Partition($A, p, r$)

$x = A[r]$

$i = p - 1$

for $j = p$ to $r - 1$ do

if $A[j] < x$ then

$i = i + 1$

exchange $A[i]$ with $A[j]$

end if

exchange $A[i]$ with $A[r]$

end for

end procedure

In order to display it properly you have to use [.pseudocode] on a literal block.
Original code in AsciiDoc
[.pseudocode]
....
% This quicksort algorithm is extracted from Chapter 7, Introduction to Algorithms (3rd edition)
\begin{algorithm}
\caption{Quicksort}
\begin{algorithmic}
\PROCEDURE{Quicksort}{$A, p, r$}
    \IF{$p < r$}
        \STATE $q = $ \CALL{Partition}{$A, p, r$}
        \STATE \CALL{Quicksort}{$A, p, q - 1$}
        \STATE \CALL{Quicksort}{$A, q + 1, r$}
    \ENDIF
\ENDPROCEDURE
\PROCEDURE{Partition}{$A, p, r$}
    \STATE $x = A[r]$
    \STATE $i = p - 1$
    \FOR{$j = p$ \TO $r - 1$}
        \IF{$A[j] < x$}
            \STATE $i = i + 1$
            \STATE exchange
            $A[i]$ with $A[j]$
        \ENDIF
        \STATE exchange $A[i]$ with $A[r]$
    \ENDFOR
\ENDPROCEDURE
\end{algorithmic}
\end{algorithm}
....