Skip to main content

Document description language that allows embedded Python to describe document structure

Project description

turnip_text

This is a WIP language that aims to address two gripes I have with LaTeX:

  1. The LaTeX macro engine is horrible to work and program with
  2. LaTeX typesetting output is heavily dependent on how content is laid out in the LaTeX source file
    • i.e. a lack of separation between content and formatting

Key features include:

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Project Structure

Based on the recommended structure from [github.com/PyO3/maturin].

FAQs

Why output LaTeX source code?

Because LaTeX is still in many cases the lingua franca of scientific papers, it is unreasonable to expect to replace it. The TeX typesetting engine is also still great for laying out raw text, and I have no intention of reinventing that wheel. My problem with LaTeX is that it's finnicky, not that it produces bad output. With all this in mind, I'd like this language to create idiomatic LaTeX source files that can then be adjusted manually and passed on to journals.

Why output source code for other text languages, e.g. Markdown?

Recently I had to convert my masters thesis to plain text for a contest submission. I used Pandoc, which is an excellent piece of software, but I ran into issues. First, the LaTeX to Markdown conversion was extremely messy, with Pandoc-specific {:: ::} blocks strewn throughout the code to retain as much information as possible. After cleaning that up I decided to work in Markdown rather than LaTeX, and use Pandoc to convert to plain text and handle footnotes and citations. This was mostly fine, until I realized I wanted to publish the summary on my blog as well.

My blog uses Jekyll and GitHub Pages so it can't handle all of Pandoc's markdown features, particularly citations. I was hoping to get Pandoc to take my Markdown, resolve the footnotes and citations, add a ToC, add section numbering, and save that output to Markdown again. To my knowledge, this is impossible - I ended up having to Pandoc to raw HTML. I would like my language to use the same front-end syntax and output to plain, everything-can-read-it Markdown, plain text, and perhaps more.

Why not use Markdown instead?

I'm not against using Pandoc for some conversions, e.g. I'd be happy to have my language create Markdown which Pandoc turns into HTML, but Markdown isn't a suitable replacement language for LaTeX by itself. Pandoc extensions can make it theoretically possible for Markdown to represent the same documents as LaTeX, but it's too cumbersome to work with directly imo.

Why replace LaTeX macros with Python?

While the LaTeX macro engine is horrible to work with, it is still useful to embed a programming language into text. This allows for e.g. smart citations and collecting TODO messages and notes. The annoyance of LaTeX is that I spend more time figuring out the macro language than I do figuring out any code. With that in mind, I'd like the language to allow embedding a proper programming language like Python or Lua (see notes/code_syntax.md for notes on which languages to embed).

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

turnip_text-0.0.2.tar.gz (74.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

turnip_text-0.0.2-cp38-abi3-win_amd64.whl (216.9 kB view details)

Uploaded CPython 3.8+Windows x86-64

turnip_text-0.0.2-cp38-abi3-win32.whl (208.2 kB view details)

Uploaded CPython 3.8+Windows x86

turnip_text-0.0.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

turnip_text-0.0.2-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.4 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ s390x

turnip_text-0.0.2-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.3 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ppc64le

turnip_text-0.0.2-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.2 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARMv7l

turnip_text-0.0.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

turnip_text-0.0.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl (1.2 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.5+ i686

turnip_text-0.0.2-cp38-abi3-macosx_11_0_arm64.whl (345.6 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

turnip_text-0.0.2-cp38-abi3-macosx_10_7_x86_64.whl (354.2 kB view details)

Uploaded CPython 3.8+macOS 10.7+ x86-64

File details

Details for the file turnip_text-0.0.2.tar.gz.

File metadata

  • Download URL: turnip_text-0.0.2.tar.gz
  • Upload date:
  • Size: 74.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.1.0

File hashes

Hashes for turnip_text-0.0.2.tar.gz
Algorithm Hash digest
SHA256 84ea1c74f008356b351486b3869da62f3ebe1394398dc2fc6c3f8233679ccfd6
MD5 8ec2d92efe5ff1b81a28fa796a7a2021
BLAKE2b-256 67badd76d89d24699da90d7a7715b0196f36bc096578187fe092931c69c1c5df

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.2-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for turnip_text-0.0.2-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 fef09d8f2dd622a1735274d253d9271cb46aca08ce20d052d40da71b263bb456
MD5 b5821eacbda5577aee6842b3a24e715f
BLAKE2b-256 039806e4f1bcc291aec328b7c13e6d8c509254647d96a559f55fafe52b8b1759

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.2-cp38-abi3-win32.whl.

File metadata

  • Download URL: turnip_text-0.0.2-cp38-abi3-win32.whl
  • Upload date:
  • Size: 208.2 kB
  • Tags: CPython 3.8+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.1.0

File hashes

Hashes for turnip_text-0.0.2-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 44d21b3e2062812efb5fa132fa975f40ccb25af57f72ea5ca60b8e652bb00970
MD5 2e6475655ac78b837683a325477e2d37
BLAKE2b-256 07e5df748c820e7ceba8ee312f5ba2b2eeb93b151de805d25f8d21651bcff3d2

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for turnip_text-0.0.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 de40aac486e4d299d9d527c60cae22e4e47b97dbca060c82a8611bd0ee84fd87
MD5 92e7842cddfd04f10cc631b8b28bca64
BLAKE2b-256 0a12f32e5164920bb743039193c042d1d27bc567d0becf4534845cdbbbd7377d

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.2-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for turnip_text-0.0.2-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 e049ce202cc3a1991cc0fcb76ec1986906dc6f2d699ba8eb3ac888e17022f848
MD5 0f943a8aa6757aacb0a8ee431c6c8d0e
BLAKE2b-256 e96d98aedcbb60a8036078021e88dc52627a7ee6e6223388bcd2c2de26d4fdda

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.2-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for turnip_text-0.0.2-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 5584ed18897a22f5dea4d6264f3d836d6b2e843932d5243575e36c1d8abf4903
MD5 d0865e2fb1d279cc9feb5b5da0a0e63a
BLAKE2b-256 be851944ea286837e253ff715b3d32c3094ab00afa1fd911305522b0ee0b357a

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.2-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for turnip_text-0.0.2-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 2d5098c9fdaabd070bc4e64031be81e8c48c7a51d932d872bee9681c8390e32d
MD5 94f3eee6cec268d2ff9ceb97c2308f69
BLAKE2b-256 3686286f23bfc488d49d2afd7874e1a72cbdb86196725b0d4d505b624b6f7af0

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for turnip_text-0.0.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5933ac7d2978c3dc9eba3ca172c0d8906ac9f9fb80039665e1d9f57415292d89
MD5 beca782f0fca4fb051c29632bdf8eda0
BLAKE2b-256 c7c0b7277bbad26b08d9df2c3b367de456cc3aca29fce39b6c0d02135208e2f7

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for turnip_text-0.0.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 c72c102163ad48c427e630e31215081d7ec623a4247972901adbc3c0ee904ff9
MD5 3cf1e7d0adcc397be138665bf0225851
BLAKE2b-256 3d94278837d854506b07e736f2e629f6047d3276e57d5c885fdfcebd87ec65d9

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.2-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for turnip_text-0.0.2-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 475e07387fd4ce3c6143e231477e62c6b602ffa3c257274b98740b41ebd35aef
MD5 99f902f6d6c494a2f2550ec2a35e03c2
BLAKE2b-256 1c5e4aa11f29b2456ee05afeb2fdfac4c74ed00067f76bb740a1e569d83fc4df

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.2-cp38-abi3-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for turnip_text-0.0.2-cp38-abi3-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 979706f4b90a16fca661d738783e45b879b649f010a97931e8bacc291809d43d
MD5 7a6e767670acdfd2bf4fa72096601bdf
BLAKE2b-256 2dd09c3fa2da504543ce4cef2a79f66e7d1d0229640cd18fd4ee2ae32e65909a

See more details on using hashes here.

Supported by

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