Skip to main content

Nano LP – Literate Programming tool

Project HOME

Documentation

Discussion

ChangeLog

Introduction

It’s very simple, art-of-concept literate programming (LP) tool. Main idea is too avoid processing document (LP source) format, so input document format is supported by it’s traditional external tool. So it’s possible to have favourite workflow: WYSIWYG editing/text processing/converting with you favourite tool/suite (OpenOffice/Markdown tool/TeX/etc.).

General workflow schemes are:

                         local/WEB:
                         ____________
                       +------------+|
                       |            ||
                       | LP Library ||
                       |            |'
     local/WEB:        +------------+
 ------->>---------         /
|                  |      use
|                  v      /
|          some format with  --> 1. extract sources...
^             LP commands    --> 2. cross-references
^                  |         --> 3. use as library
|                  v
|     EXTERNAL TOOL/OFFICE SUITE
|                  |
 -------<<---------

and:

    local/WEB:
    ____________
  +------------+|
  |            ||
  | LP Library ||
  |            |'
  +------------+
        /
      use
      /            READY TO PUBLISH  --> 1. online documentation
'some-lp.html' -->      ON WEB       --> 2. extract sources...
      \                              --> 3. cross-references
       \                             --> 4. use as library
        -- PARSE AND MODIFYING:
             + embeeded Javascript configuration
             + linked 'nanolp-pub.js'
             + linked 'nanolp-pub.css'

So, this kind of LP tool knows about LP input format only how to extract LP commands and code chunks - tangle, weaving is not needed, input format is ready for printing, publishing, reading, etc.

At the moment, supported input formats are:

  • Markdown/MultiMarkdown

  • OpenOffice/LibreOffice

  • Creole

  • reStructuredText

  • TeX/LaTeX

  • Txt2Tags

  • Asciidoc

  • HTML/XML

  • … and any compatible

Main features

  • definition of command (macros) with placeholders in the body (code chunk)

  • variables dictionaries (for substitution of placeholders)

  • pasting command code chunk with substitution of placeholders

  • definition of multiple parts code-chunks (for wrapping, etc.)

  • joining, ‘ending’, etc. several code chunks

  • ‘globbing’ commands when paste

  • including one file to another (library)

  • custom event handlers (filters in chain/pipe manner)

  • supporting URLs in file names (read via HTTP)

  • prepare of HTML files (with LP commands) for Web publishing

  • generating cross-references file

  • auto-detecting of cycles

  • configurable via simple .INI like file

  • works with Python 2.7 - Python 3+

  • works with Unicode (UTF8)

  • extendible

Installation

Install Python (2.7 or 3+) first, then run:

$ python setup.py install

Then run:

$ nlp.py -h

or:

$ python path-to-scripts/nlp.py -h

Metadata

Release files for nanolp 1.0i

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nanolp 1.0i
File Size Uploaded Provenance Actions
nanolp-1.0i.zip 188.1 kB Without provenance Details for nanolp-1.0i.zip

Release files / nanolp-1.0i.zip

Download URL nanolp-1.0i.zip
Size 188.1 kB
Tags Source
SHA-256 checksum
How to use checksums
53a708c3ad1ce5cafd1c4e9fac99dbe805847fc36def54fc117d43761346e488
BLAKE2b-256 checksum
How to use checksums
bc04832c2c2db710ad7f273b53b556ad6ba819c4a39f4e8ae238f4e96eca153a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for nanolp 1.0i

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page