_mapping.py 6.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. # -*- coding: utf-8 -*-
  2. """
  3. pygments.formatters._mapping
  4. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  5. Formatter mapping definitions. This file is generated by itself. Everytime
  6. you change something on a builtin formatter definition, run this script from
  7. the formatters folder to update it.
  8. Do not alter the FORMATTERS dictionary by hand.
  9. :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
  10. :license: BSD, see LICENSE for details.
  11. """
  12. from __future__ import print_function
  13. FORMATTERS = {
  14. 'BBCodeFormatter': ('pygments.formatters.bbcode', 'BBCode', ('bbcode', 'bb'), (), 'Format tokens with BBcodes. These formatting codes are used by many bulletin boards, so you can highlight your sourcecode with pygments before posting it there.'),
  15. 'BmpImageFormatter': ('pygments.formatters.img', 'img_bmp', ('bmp', 'bitmap'), ('*.bmp',), 'Create a bitmap image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'),
  16. 'GifImageFormatter': ('pygments.formatters.img', 'img_gif', ('gif',), ('*.gif',), 'Create a GIF image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'),
  17. 'HtmlFormatter': ('pygments.formatters.html', 'HTML', ('html',), ('*.html', '*.htm'), "Format tokens as HTML 4 ``<span>`` tags within a ``<pre>`` tag, wrapped in a ``<div>`` tag. The ``<div>``'s CSS class can be set by the `cssclass` option."),
  18. 'IRCFormatter': ('pygments.formatters.irc', 'IRC', ('irc', 'IRC'), (), 'Format tokens with IRC color sequences'),
  19. 'ImageFormatter': ('pygments.formatters.img', 'img', ('img', 'IMG', 'png'), ('*.png',), 'Create a PNG image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'),
  20. 'JpgImageFormatter': ('pygments.formatters.img', 'img_jpg', ('jpg', 'jpeg'), ('*.jpg',), 'Create a JPEG image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'),
  21. 'LatexFormatter': ('pygments.formatters.latex', 'LaTeX', ('latex', 'tex'), ('*.tex',), 'Format tokens as LaTeX code. This needs the `fancyvrb` and `color` standard packages.'),
  22. 'NullFormatter': ('pygments.formatters.other', 'Text only', ('text', 'null'), ('*.txt',), 'Output the text unchanged without any formatting.'),
  23. 'RawTokenFormatter': ('pygments.formatters.other', 'Raw tokens', ('raw', 'tokens'), ('*.raw',), 'Format tokens as a raw representation for storing token streams.'),
  24. 'RtfFormatter': ('pygments.formatters.rtf', 'RTF', ('rtf',), ('*.rtf',), 'Format tokens as RTF markup. This formatter automatically outputs full RTF documents with color information and other useful stuff. Perfect for Copy and Paste into Microsoft(R) Word(R) documents.'),
  25. 'SvgFormatter': ('pygments.formatters.svg', 'SVG', ('svg',), ('*.svg',), 'Format tokens as an SVG graphics file. This formatter is still experimental. Each line of code is a ``<text>`` element with explicit ``x`` and ``y`` coordinates containing ``<tspan>`` elements with the individual token styles.'),
  26. 'Terminal256Formatter': ('pygments.formatters.terminal256', 'Terminal256', ('terminal256', 'console256', '256'), (), 'Format tokens with ANSI color sequences, for output in a 256-color terminal or console. Like in `TerminalFormatter` color sequences are terminated at newlines, so that paging the output works correctly.'),
  27. 'TerminalFormatter': ('pygments.formatters.terminal', 'Terminal', ('terminal', 'console'), (), 'Format tokens with ANSI color sequences, for output in a text console. Color sequences are terminated at newlines, so that paging the output works correctly.'),
  28. 'TerminalTrueColorFormatter': ('pygments.formatters.terminal256', 'TerminalTrueColor', ('terminal16m', 'console16m', '16m'), (), 'Format tokens with ANSI color sequences, for output in a true-color terminal or console. Like in `TerminalFormatter` color sequences are terminated at newlines, so that paging the output works correctly.'),
  29. 'TestcaseFormatter': ('pygments.formatters.other', 'Testcase', ('testcase',), (), 'Format tokens as appropriate for a new testcase.')
  30. }
  31. if __name__ == '__main__': # pragma: no cover
  32. import sys
  33. import os
  34. # lookup formatters
  35. found_formatters = []
  36. imports = []
  37. sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..'))
  38. from pygments.util import docstring_headline
  39. for root, dirs, files in os.walk('.'):
  40. for filename in files:
  41. if filename.endswith('.py') and not filename.startswith('_'):
  42. module_name = 'pygments.formatters%s.%s' % (
  43. root[1:].replace('/', '.'), filename[:-3])
  44. print(module_name)
  45. module = __import__(module_name, None, None, [''])
  46. for formatter_name in module.__all__:
  47. formatter = getattr(module, formatter_name)
  48. found_formatters.append(
  49. '%r: %r' % (formatter_name,
  50. (module_name,
  51. formatter.name,
  52. tuple(formatter.aliases),
  53. tuple(formatter.filenames),
  54. docstring_headline(formatter))))
  55. # sort them to make the diff minimal
  56. found_formatters.sort()
  57. # extract useful sourcecode from this file
  58. with open(__file__) as fp:
  59. content = fp.read()
  60. # replace crnl to nl for Windows.
  61. #
  62. # Note that, originally, contributers should keep nl of master
  63. # repository, for example by using some kind of automatic
  64. # management EOL, like `EolExtension
  65. # <https://www.mercurial-scm.org/wiki/EolExtension>`.
  66. content = content.replace("\r\n", "\n")
  67. header = content[:content.find('FORMATTERS = {')]
  68. footer = content[content.find("if __name__ == '__main__':"):]
  69. # write new file
  70. with open(__file__, 'w') as fp:
  71. fp.write(header)
  72. fp.write('FORMATTERS = {\n %s\n}\n\n' % ',\n '.join(found_formatters))
  73. fp.write(footer)
  74. print ('=== %d formatters processed.' % len(found_formatters))