ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Highlight

by n1k0 ST2/ST3

A humble SublimeText package for exporting highlighted code as RTF or HTML

Details

  • 2 2017.03.07.21.01.05
    3 2016.04.02.08.08.33
  • github.​com
  • github.​com
  • 4 months ago
  • 1 hour ago
  • 5 years ago

Installs

  • Total 54K
  • Win 33K
  • OS X 15K
  • Linux 6K
Jun 22 Jun 21 Jun 20 Jun 19 Jun 18 Jun 17 Jun 16 Jun 15 Jun 14 Jun 13 Jun 12 Jun 11 Jun 10 Jun 9 Jun 8 Jun 7 Jun 6 Jun 5 Jun 4 Jun 3 Jun 2 Jun 1 May 31 May 30 May 29 May 28 May 27 May 26 May 25 May 24 May 23 May 22 May 21 May 20 May 19 May 18 May 17 May 16 May 15 May 14 May 13 May 12 May 11 May 10 May 9 May 8
Windows 37 36 29 39 23 23 34 45 43 28 48 25 14 34 39 50 50 29 25 23 30 53 42 34 23 24 25 32 30 42 47 51 29 21 28 36 42 37 50 26 27 46 50 47 41 44
OS X 15 11 9 19 11 8 15 13 15 14 2 7 4 8 16 12 11 6 8 9 11 12 16 11 15 8 6 5 9 13 16 21 8 6 18 10 12 15 5 6 7 12 8 11 16 12
Linux 6 5 9 5 4 3 2 5 4 10 6 2 4 4 3 4 13 8 4 2 5 6 4 7 8 5 3 5 5 2 3 8 3 2 5 4 15 9 8 1 3 5 5 13 7 11

Readme

Source
raw.​githubusercontent.​com

SublimeHighlight

Sublime Text 3 users: a python3 branch is also available. Just git checkout python3 from the root of your package installation to use in in ST3. If you upgrade from a previous ST2 installation or encounter problems with the package, please proceed as detailed below:

  • Remove the package, if installed, using Package Control.
  • Add a repository: https://github.com/n1k0/SublimeHighlight/tree/python3
  • Install SublimeHighlight with Package Control. It should pull the correct branch from Github.
  • Restart Sublime Text 3

This SublimeText2 package allows to highlight & export currently edited code to HTML or RTF using Pygments.

Several commands are added to SublimeText2 when installed:

  • SublimeHighlight: convert to HTML: will convert current code to highlighted HTML in a new SublimeText tab.
  • SublimeHighlight: convert to RTF: will convert current code to highlighted RTF in a new SublimeText tab.
  • SublimeHighlight: view as HTML: will convert current code to highlighted HTML and open it in your default browser.
  • SublimeHighlight: view as RTF: will convert current code to an RTF document and open the generated file with your default program.
  • SublimeHighlight: copy to clipboard as HTML: will convert current code to highlighted HTML and store it into the system clipboard.
  • SublimeHighlight: copy to clipboard as RTF: will convert current code to raw highlighted RTF and store it into the system clipboard.

This latter command, Copy to clipboard as RTF, allows to copy and paste highlighted code from Sublime Tex 2 to other softwares like Powerpoint, Keynotes, Word, etc.

capture

Settings

You can find a dedicated user settings file in the Preferences > Package Settings > SublimeHighlight menu where you can customize Pygments settings:

Sample Settings - User file:

{
    "theme": "monokai",
    "linenos": "inline",
    "noclasses": true,
    "fontface": "Menlo"
}

Check out the available options below.

Themes

You can choose the Pygments theme to use by setting the theme option:

{
    "theme": "vim"
}

Available themes are:

  • autumn
  • borland
  • bw
  • colorful
  • default
  • emacs
  • friendly
  • fruity
  • manni
  • monokai
  • murphy
  • native
  • pastie
  • perldoc
  • rrt
  • tango
  • trac
  • vim
  • vs

Here's a screenshot of what some example code looks like with different themes:

Themes Screenshot

Note: You can add your own pygments files by copying the _theme_.py to Packages/Highlight/pygments/styles, and adding your theme to the STYLES_MAP in SublimeHighlight/pygments/styles/__init__.py. Eg.:

# Maps style names to 'submodule::classname'.
STYLE_MAP = {
    'default':  'default::DefaultStyle',
    'mytheme':  'mytheme::MyThemeStyle',
}

Line numbering

You can add line numbering by setting the linenos option:

{
    "linenos": "inline"
}

Accepted values for the linenos option are table, inline or false — the latter being the default.

Inline styling

You can set the rendered HTML code to use inline styles instead of CSS classes:

{
    "noclasses": true
}

Lexer options

SublimeHighlight supports Pygments lexer options. To set an option for a given lexer, eg. PHP:

{
    "lexer_options": {
        "PHP": {
            "startinline": true
        }
    }
}

Font face

You can set font face used in RTF output by using the fontface setting.

{
    "fontface": "Menlo"
}

Setting up shortcuts

This is a sample key binding for copying RTF highlighted code contents to your clipboard by pressing ctrl + alt + c:

[
    { "keys": ["ctrl+alt+c"],
      "command": "sublime_highlight",
      "args": { "target": "clipboard",
                "output_type": "rtf"
    }},
]

You can combine the target and output_type argument values to achieve the stuff you want. Possible values are:

target:

  • sublime: new Sublime Text 2 tab
  • external: new external file
  • clipboard: system clipboard

output_type:

  • rtf: RTF format
  • html: HTML format

Why this package?

Mostly for toying around with SublimeText2 plugin API (which is great), but also to ease the process of copying/pasting richly formatted code over softwares like Powerpoint, Word, Keynote and shits like that.

License

This software is released under the terms of the MIT license.