jgm / skylighting

A Haskell syntax highlighting library with tokenizers derived from KDE syntax highlighting descriptions
192 stars 62 forks source link

Support for pycon (python interactive snippets) #187

Open mattharrison opened 6 months ago

mattharrison commented 6 months ago

Lots of Python tooling uses doctests and interactive snippets to show code.

i.e:

>>> def add(x, y):
...    return x + y
>>> add(2, 3)
5

The benefit of this is multiple:

Consider this my vote to add syntax highlighting for pycon like pygments does.

BTW, thanks for Pandoc. 🙏 It is a lifesaver. I've migrated most of my custom rst tooling to it. (Still can't use rst to create LibreOffice slides because none of the existing tooling has the features I need. But I digress). Thanks again!

jgm commented 6 months ago

Using python instead of pycon as the syntax name seems to work well...have you tried that?

mattharrison commented 6 months ago

I haven't because my LaTeX pipeline uses pygments to highlight the code and it does a poor job when you specify python instead of pycon

jgm commented 6 months ago

For now you could use a Lua filter to substitute the pycon class with python in CodeBlock elements, when processing with pandoc.

jgm commented 6 months ago

I looked at python.xml and I don't see any explicit support there for this interactive syntax. So it would be good, probably, to add a new pycon.xml. This can "call out" to the highlighter defined in python.xml, so it might be quite simple to design. There are pointers to the documentation in the README.md for this project.