blob: 2a28bdb1d3d36a29cdbcda107157786db6399c0e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
NAME
====
Pygments - Wrapper to python pygments library.
SYNOPSIS
========
Printing some code with a terminal formatter.
use Pygments;
my $code = q:to/ENDCODE/;
grammar Parser {
rule TOP { I <love> <lang> }
token love { '♥' | love }
token lang { < Perl Rust Go Python Ruby > }
}
say Parser.parse: 'I ♥ Perl';
# OUTPUT: 「I ♥ Perl」 love => 「♥」 lang => 「Perl」
say Parser.parse: 'I love Rust';
# OUTPUT: 「I love Rust」 love => 「love」 lang => 「Rust」
ENDCODE
# Format a full html with line numbers and theme `manni`
Pygments.highlight(
$code, "perl6", :formatter<terminal>,
:linenos(True)
).say;
Also it can be used with `Pod::To::HTML`:
use Pygments;
# Set the pod code callback to use pygments before *use* it
my %*POD2HTML-CALLBACKS;
%*POD2HTML-CALLBACKS<code> = sub (:$node, :&default) {
Pygments.highlight($node.contents.join('\n'), "perl6",
:style(Pygments.style('emacs')),
:full)
};
use Pod::To::HTML;
use Pod::Load;
pod2html(load('some.pod6'.IO)).say
DESCRIPTION
===========
Pygments is a wrapper for the [pygments](http://pygments.org) python library.
METHODS
=======
There's no need to instantiate the `Pygments` class. All the methods can be called directly.
highlight
---------
method highlight(Str $code, $lexer, :$formatter = 'html', *%options)
Highlight the `$code` with the lexer passed by paramenter. If no lexer is provided, pygments will try to guess the lexer that will use.
style
-----
method style(Str $name = 'default')
Get a single style with name `$name`
styles
------
method styles
Return a list of all the available themes.
AUTHOR
======
Matias Linares <matiaslina@gmail.com>
COPYRIGHT AND LICENSE
=====================
Copyright 2019 Matias Linares
This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.
|