Pygments
The Pygments syntax highlighter can be used
for xhtml11, html5 and bootstrap outputs (set the source-highlighter attribute to pygments).
Until now, AsciiDoc allow only to use Pygments with a default theme that look like to emacs theme.
We have no way to customize this at document build time, unless editing contents of ./stylesheets/pygments.css file.
AsciiDoc-Bootstrap backend introduce in version 3.1.0 the new attribute pygments-style
to change Pygments stylesheet at document build time.
By default, AsciiDoc-Bootstrap used the AsciiDoc pygments theme. To change the style,
set the pygments-style attribute and assign it the alternate style’s name.
To see what pygments styles you have available, open a terminal and type:
$ pygmentize -L styles
It will output the style names and brief descriptions.
Pygments 1.5 provides 19 themes, but only 3 pre-defined stylesheets are available in standard AsciiDoc-Bootstrap backend distribution (default, pastie, monokai).
Here are how to setup other themes. Open a terminal and type:
$ pygmentize -f html -S <theme> -a .highlight
where <theme> is one of those listed by Pygments (-L style).
Copy output to the AsciiDoc-Bootstrap install dir stylesheets folder in a file
named pygments.<theme>.css. (e.g. pygments.tango.css)
In the example document below, we used the monokai style as main theme,
and pastie as local theme to highlight a block of CSS code.
<span> tags will not use CSS classes, but inline styles.
This is not recommended for larger pieces of code since it increases output size by quite a bit.args attribute allows the inclusion of arbitrary
(highlighter dependent) command options.== Alternate Pygments Theme
:source-highlighter: pygments
:pygments-style: monokai
[source,php,numbered]
.Using global theme [label label-default]#{pygments-style}#
----
<?php
use Symfony\Component\Finder\Finder;
$finder = new Finder();
$finder->files()->in(__DIR__);
foreach ($finder as $file) {
// affiche le chemin absolu
print $file->getRealpath()."\n";
// affiche le chemin relatif d'un fichier, sans le nom du fichier
print $file->getRelativePath()."\n";
// affiche le chemin relatif du fichier
print $file->getRelativePathname()."\n";
}
----
:local-css-style: pastie
[args="-O style={local-css-style},noclasses=True"]
[source,css]
.Using local theme [label label-default]#{local-css-style}#
----
/*
|--------------------------------------------------------------------------
| UItoTop jQuery Plugin 1.2
| http://www.mattvarone.com/web-design/uitotop-jquery-plugin/
|--------------------------------------------------------------------------
*/
#toTop {
display:none;
text-decoration:none;
position:fixed;
bottom:10px;
right:10px;
overflow:hidden;
width:51px;
height:51px;
border:none;
text-indent:100%;
background:url(../images/icons/ui.totop.png) no-repeat left top;
}
#toTopHover {
background:url(../images/icons/ui.totop.png) no-repeat left -51px;
width:51px;
height:51px;
display:block;
overflow:hidden;
float:left;
opacity: 0;
-moz-opacity: 0;
filter:alpha(opacity=0);
}
#toTop:active, #toTop:focus {
outline:none;
}
----
Renders
Alternate Pygments Theme
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php
use Symfony\Component\Finder\Finder;
$finder = new Finder();
$finder->files()->in(__DIR__);
foreach ($finder as $file) {
// affiche le chemin absolu
print $file->getRealpath()."\n";
// affiche le chemin relatif d'un fichier, sans le nom du fichier
print $file->getRelativePath()."\n";
// affiche le chemin relatif du fichier
print $file->getRelativePathname()."\n";
}
|
/*
|--------------------------------------------------------------------------
| UItoTop jQuery Plugin 1.2
| http://www.mattvarone.com/web-design/uitotop-jquery-plugin/
|--------------------------------------------------------------------------
*/
#toTop {
display:none;
text-decoration:none;
position:fixed;
bottom:10px;
right:10px;
overflow:hidden;
width:51px;
height:51px;
border:none;
text-indent:100%;
background:url(../images/icons/ui.totop.png) no-repeat left top;
}
#toTopHover {
background:url(../images/icons/ui.totop.png) no-repeat left -51px;
width:51px;
height:51px;
display:block;
overflow:hidden;
float:left;
opacity: 0;
-moz-opacity: 0;
filter:alpha(opacity=0);
}
#toTop:active, #toTop:focus {
outline:none;
}