{"id":13831755,"url":"https://github.com/slott56/py-web-tool","last_synced_at":"2026-01-25T09:35:47.909Z","repository":{"id":37856971,"uuid":"137002241","full_name":"slott56/py-web-tool","owner":"slott56","description":"pyWebTool supports Literate Programming by trying to work with ANY markup language and any programming language","archived":false,"fork":false,"pushed_at":"2025-09-03T20:50:03.000Z","size":4485,"stargazers_count":35,"open_issues_count":5,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-03T22:24:08.363Z","etag":null,"topics":["literate-programming"],"latest_commit_sha":null,"homepage":"https://slott56.github.io/py-web-tool/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/slott56.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-06-12T01:47:42.000Z","updated_at":"2025-09-03T20:49:59.000Z","dependencies_parsed_at":"2024-01-15T16:33:09.245Z","dependency_job_id":"6eaa4a3a-3257-40d4-9c11-078e8b26d708","html_url":"https://github.com/slott56/py-web-tool","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/slott56/py-web-tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slott56%2Fpy-web-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slott56%2Fpy-web-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slott56%2Fpy-web-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slott56%2Fpy-web-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slott56","download_url":"https://codeload.github.com/slott56/py-web-tool/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slott56%2Fpy-web-tool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28750875,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T09:00:19.176Z","status":"ssl_error","status_checked_at":"2026-01-25T09:00:04.131Z","response_time":113,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["literate-programming"],"created_at":"2024-08-04T10:01:39.160Z","updated_at":"2026-01-25T09:35:47.902Z","avatar_url":"https://github.com/slott56.png","language":"HTML","funding_links":[],"categories":["HTML"],"sub_categories":[],"readme":"pyWebLP: In Python, Yet Another Literate Programming Tool\n\nLiterate programming is an attempt to reconcile the opposing needs\nof clear presentation to people with the technical issues of \ncreating code that will work with our current set of tools.\n\nPresentation to people requires extensive and sophisticated typesetting\ntechniques.  Further, the \"narrative arc\" of a presentation may not \nfollow the source code as layed out for the compiler.\n\n**py-web-tool** is a literate programming tool based on Knuth's Web to combine the actions\nof weaving a document with tangling source files.\nIt is independent of any particular document markup or source language.\nIs uses a simple set of markup tags to define chunks of code and \ndocumentation.\n\nThe ``pyweb.w`` file is the source for the various ``pyweb`` module and script files.\nThe various source code files are created by applying a\ntangle operation to the ``.w`` file.  The final documentation is created by\napplying a weave operation to the ``.w`` file.\n\nInstallation\n-------------\n\nThis requires Python 3.10. \n\n::\n\n    python -m pip install py-web-lp\n    \nThis will install the ``pyweb`` module and all of its dependencies. Alternatively, \nyou may better want to install as ``pipx install py-web-lp``.\n\nProduce Documentation\n---------------------\n\nThe supplied documentation uses RST markup; it requires docutils.\n\n::\n\n    python3 -m pip install docutils\n\n::\n\n\tpython3 -m pyweb src/pyweb.w -o src\n\trst2html.py src/pyweb.rst src/pyweb.html\n\nAuthoring\n---------\n\nThe ``pyweb.html`` document describes the markup used to define code chunks\nand assemble those code chunks into a coherent document as well as working code.\nYou'll create a ``.w`` file with documentation and code.\n\nIf you're a JEdit user, the ``jedit`` directory can be used\nto configure syntax highlighting that includes **py-web-lp** and RST.\n\nOperation\n---------\n\nAfter installation and authoring, you can then run **py-web-lp** with the following\ncommand\n\n::\n\n    python3 -m pyweb src/pyweb.w -o src \n\nThis will create the various output files from the source ``.w`` file.\n\n-   ``pyweb.rst`` is the final woven document. This can be run through docutils for publication.\n\n-   ``pyweb.py``, ``tangle.py``, ``weave.py`` are the tangled code files.\n\nAll of the files are produced from a single source.\n\nTesting\n-------\n\nThe ``tests`` directory includes ``pyweb_test.w``, which will create a \ncomplete test suite.\nYou can create this with the following command\n\n::\n\n    python3 -m pyweb tests/pyweb_test.w -o tests \n\nThis weaves a ``tests/pyweb_test.rst`` file. This can be run through docutils for publication.\n\nThis tangles several test modules:  ``test.py``, ``test_tangler.py``, ``test_weaver.py``,\n``test_loader.py``, ``test_unit.py``, and ``test_scripts.py``.  \n\nUse **pytest** to run all the tests.\n\nHere's a typical sequence, used during development:\n\n::\n\n    python3 bootstrap/pyweb.py -xw src/pyweb.w -o src\n    python3 src/pyweb.py tests/pyweb_test.w -o tests\n    PYTHONPATH=${PWD}/src pytest\n    rst2html.py tests/pyweb_test.rst tests/pyweb_test.html\n    mypy --strict src\n\nNote that a previous release, untouched, is saved in the project's ``bootstrap`` directory.\nThis is **not** changed during development, since **py-web-lp** is written with **py-web-lp**.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslott56%2Fpy-web-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslott56%2Fpy-web-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslott56%2Fpy-web-tool/lists"}