Skip to main content

Literate Programming Tool

Project description

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

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

nanolp-1.0i.zip (188.1 kB view details)

Uploaded Source

File details

Details for the file nanolp-1.0i.zip.

File metadata

  • Download URL: nanolp-1.0i.zip
  • Upload date:
  • Size: 188.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for nanolp-1.0i.zip
Algorithm Hash digest
SHA256 53a708c3ad1ce5cafd1c4e9fac99dbe805847fc36def54fc117d43761346e488
MD5 1b9147f4b6f605a976893773d6d73e22
BLAKE2b-256 bc04832c2c2db710ad7f273b53b556ad6ba819c4a39f4e8ae238f4e96eca153a

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