Skip to main content

A JSX lexer for Pygments

Project description

https://travis-ci.org/fcurella/jsx-lexer.svg?branch=master https://coveralls.io/repos/github/fcurella/jsx-lexer/badge.svg?branch=master

A JSX lexer for Pygments

Installation

$ pip install jsx-lexer

Usage with Sphinx

To use within Sphinx, simply specify jsx for your code-block:

.. code-block:: jsx

    const BlogTitle = ({ children }) => (
      <h3>{children}</h3>
    );
    // class component
    class BlogPost extends React.Component {
      renderTitle(title) {
        return <BlogTitle>{title}</BlogTitle>
      };
      render() {
        return (
        <div className="blog-body">
          {this.renderTitle(this.props.title)}
          <p>{this.props.body}</p>
        </div>
        );
      }
    }

Usage with mkdocs

First, you need to create the CSS for the highlighting:

$ pygmentize -S default -f html -a .codehilite > code/pygments.css

Then, add the following to your mkdocs.yml:

markdown_extensions:
  - codehilite
extra_css: [pygments.css]

Now, you can use jsx in your code blocks:

```jsx
const BlogTitle = ({ children }) => (
  <h3>{children}</h3>
);
// class component
class BlogPost extends React.Component {
  renderTitle(title) {
    return <BlogTitle>{title}</BlogTitle>
  };
  render() {
    return (
    <div className="blog-body">
      {this.renderTitle(this.props.title)}
      <p>{this.props.body}</p>
    </div>
    );
  }
}
```

Usage with Overleaf

First, add the minted package in your main file:

\usepackage{minted}

Then, download the lexer.py file from this project, and place it in your root folder in Overleaf.

Now, you can use {lexer.py:JsxLexer -x} in front of your minted code blocks:

\begin{minted}{lexer.py:JsxLexer -x}
    const BlogTitle = ({ children }) => (
      <h3>{children}</h3>
    );
    // class component
    class BlogPost extends React.Component {
      renderTitle(title) {
        return <BlogTitle>{title}</BlogTitle>
      };
      render() {
        return (
        <div className="blog-body">
          {this.renderTitle(this.props.title)}
          <p>{this.props.body}</p>
        </div>
        );
      }
    }
\end{minted}

You can find an example of the lexer in use on Overleaf here: https://www.overleaf.com/read/xvsytqzkvdjb

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jsx-lexer-2.0.0.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

jsx_lexer-2.0.0-py2.py3-none-any.whl (4.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file jsx-lexer-2.0.0.tar.gz.

File metadata

  • Download URL: jsx-lexer-2.0.0.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

File hashes

Hashes for jsx-lexer-2.0.0.tar.gz
Algorithm Hash digest
SHA256 ca22483ced80a92e45fa1855da7cf99309852c0637842a79a759e10ea57b904d
MD5 f55f230981d663563e43704ab6e9ca35
BLAKE2b-256 b91b8d281d0555fc4c02aded4e190ed43945ea24034a3675d0f88b857d480113

See more details on using hashes here.

File details

Details for the file jsx_lexer-2.0.0-py2.py3-none-any.whl.

File metadata

  • Download URL: jsx_lexer-2.0.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 4.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

File hashes

Hashes for jsx_lexer-2.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 bff51c2a2faa2c682cbc9a0f360b8c65e4153eb1df06988e8dad34373d3f9995
MD5 b3aab8f1acef88a101ac74d2f8a930ae
BLAKE2b-256 47211cc5356dafeb424f9aab2c7e3ab2941b0dfe379c83eb0f00dd4faed584c6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page