Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/n1k0/SublimeHighlight

A humble SublimeText package for exporting highlighted code as RTF or HTML
https://github.com/n1k0/SublimeHighlight

Last synced: 13 days ago
JSON representation

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

Awesome Lists containing this project

README

        

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](http://www.sublimetext.com/2) package allows to highlight &
export currently edited code to HTML or RTF using [Pygments](http://pygments.org/).

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](http://f.cl.ly/items/0p0w3w3y2V3P2v1H0q1a/SublimeHighlight.png)

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](https://raw.github.com/n1k0/SublimeHighlight/master/themes.png)

**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](http://pygments.org/docs/lexers/). 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:

```json
[
{ "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](http://www.sublimetext.com/docs/2/api_reference.html)
(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](http://en.wikipedia.org/wiki/MIT_License).