root/PyLucidPlugins/SelfDocu/pygments_info.py

Revision 784, 2.1 KB (checked in by JensDiemer, 4 years ago)

SelfDocu? update

Line 
1#!/usr/bin/python
2# -*- coding: UTF-8 -*-
3
4"""
5
6Last commit info:
7----------------------------------
8$LastChangedDate:$
9$Rev:$
10$Author: jensdiemer $
11
12Created by Jens Diemer
13
14license:
15    GNU General Public License v2 or above
16    http://www.opensource.org/licenses/gpl-license.php
17"""
18
19from pygments.formatters import HtmlFormatter
20from pygments.lexers import get_all_lexers
21from pygments.styles import get_all_styles, get_style_by_name
22
23def lexer_list(request, response):
24    """
25    Liste alle vorhandener pygments Lexer erstellen
26    """
27    lexers = []
28    no = 0
29    for longname, aliases, patterns, mimetypes in get_all_lexers():
30        no += 1
31        lexers.append({
32            "no"        : no,
33            "longname"  : longname,
34            "aliases"   : aliases,
35            "patterns"  : patterns,
36            "mimetypes" : mimetypes,
37        })
38    context = {
39        "lexers": lexers,
40        "menu_link": request.URLs.actionLink("menu"),
41    }
42    #~ response.page_msg(context)
43    request.templates.write("pygments_lexer_list", context, debug=False)
44
45#_____________________________________________________________________________
46
47def style_info(request, response, function_info):
48    """
49    Listet alle Stylesheet-Namen auf und zwigt die jeweiligen Styles an.
50    """
51    style_list = list(get_all_styles())
52
53    selected_style = None
54    if function_info!=None:
55        selected_style = function_info[0]
56        if not selected_style in style_list:
57            self.page_msg.red("Name Error!")
58            selected_style = None
59
60    context = {
61        "styles": style_list,
62        "selected_style": selected_style,
63        "menu_link": request.URLs.actionLink("menu"),
64    }
65    request.templates.write("pygments_css", context, debug=False)
66
67    if selected_style == None:
68        # Es wurde kein Style ausgewählt
69        return
70
71    # CSS zum Style anzeigen
72    stylesheet = HtmlFormatter(style=selected_style)
73    stylesheet = stylesheet.get_style_defs('.pygments_code')
74
75    request.render.highlight(
76        ".css", stylesheet, pygments_style=selected_style
77    )
78
79
80
81
82
83
84
85
86
87
88
89
Note: See TracBrowser for help on using the browser.