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.1.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

jsx_lexer-2.0.1-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.1.tar.gz.

File metadata

  • Download URL: jsx-lexer-2.0.1.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.5

File hashes

Hashes for jsx-lexer-2.0.1.tar.gz
Algorithm Hash digest
SHA256 0d9aa653e74d7973d74021dde8349896c0df094d8e40349b92b35e0930ed7f71
MD5 f66f62fec033455368da6d33f11040b3
BLAKE2b-256 37888678fcb9f7db1aa7efb338d58f320203b74e865a12583c108291ed9d3df7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jsx_lexer-2.0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 4.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.5

File hashes

Hashes for jsx_lexer-2.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 508a08757764356aa36fd703596fdd59f789104f44b6568c7a14e27e62e57ad4
MD5 15a5aa237763db852bf9fd28fb08fded
BLAKE2b-256 2f2d6369d2f3ce55cee200202e37435601e5e50d575c2f8ffb367129e584f3f5

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