aboutsummaryrefslogtreecommitdiffstats
path: root/examples/pygments_api/forms.py
blob: dc9927e26c3bb848639d51e4c4f65b5a0441bdf3 (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
from django import forms

from pygments.lexers import get_all_lexers
from pygments.styles import get_all_styles

import httplib2 as httplib


LEXER_CHOICES = sorted([(item[1][0], item[0]) for item in get_all_lexers()])
STYLE_CHOICES = sorted((item, item) for item in list(get_all_styles()))


class PygmentsForm(forms.Form):
    """A simple form with some of the most important pygments settings.
    The code to be highlighted can be specified either in a text field, or by URL.
    We do some additional form validation to ensure clients see helpful error responses."""

    code = forms.CharField(widget=forms.Textarea, label='Code Text', max_length=1000000, 
                           help_text='(Copy and paste the code text here.)')
    title = forms.CharField(required=False, help_text='(Optional)', max_length=100)
    linenos = forms.BooleanField(label='Show Line Numbers', required=False)
    lexer = forms.ChoiceField(choices=LEXER_CHOICES, initial='python')
    style = forms.ChoiceField(choices=STYLE_CHOICES, initial='friendly')