{"id":14235765,"url":"https://github.com/ngirard/org-noweb","last_synced_at":"2025-12-27T12:57:40.357Z","repository":{"id":17798352,"uuid":"20680124","full_name":"ngirard/org-noweb","owner":"ngirard","description":"Easier Literate Programming using Org mode","archived":false,"fork":false,"pushed_at":"2022-09-28T05:40:00.000Z","size":84,"stargazers_count":16,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-13T01:34:33.774Z","etag":null,"topics":["literate-programming","org-babel","org-mode"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ngirard.png","metadata":{"files":{"readme":"README.md","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}},"created_at":"2014-06-10T09:42:55.000Z","updated_at":"2024-04-11T03:33:04.000Z","dependencies_parsed_at":"2023-01-11T19:41:48.820Z","dependency_job_id":null,"html_url":"https://github.com/ngirard/org-noweb","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ngirard/org-noweb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngirard%2Forg-noweb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngirard%2Forg-noweb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngirard%2Forg-noweb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngirard%2Forg-noweb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ngirard","download_url":"https://codeload.github.com/ngirard/org-noweb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngirard%2Forg-noweb/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269813619,"owners_count":24479340,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","org-babel","org-mode"],"created_at":"2024-08-20T21:02:20.261Z","updated_at":"2025-12-27T12:57:40.324Z","avatar_url":"https://github.com/ngirard.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"\u003e Humanity is The Big Story, which, in turn, is broken down into very many sub-Stories. We're Story-oriented. Code so far is not. Code is like networks of tunnels where, for all intents and purposes, most of the tunneling has already collapsed, the tunnel paths mostly unknowable. \n\u003e \n\u003e What makes me so excited about org mode is that it's the first time I've seen literate programming move a tick up into the realm of actually creating a tellable Story.\n\u003e \n\u003e \u0026#x2013; [Lawrence Bottorff, Feb 2014](https://lists.gnu.org/archive/html/emacs-orgmode/2014-02/msg01022.html)\n\n# What is it ?\n\n`org-noweb` is a couple of programs who make [literate programming](http://en.wikipedia.org/wiki/Literate_programming) with [Org](http://orgmode.org) easier.\n\n-   [org-tangle](./org-tangle.md) takes one or several org files as arguments and produces programs\n-   [org-weave](./org-weave) takes an org file as an argument and produces, on standard output, source code for typeset documentation.\n\nOrg already comes \"batteries included\" with (some) literate programming abilities, thanks to Eric Schulte and Dan Davison ; but these features are meant for interactive use, with a running Emacs instance.\n\n`org-noweb` brings these features to the command line, allowing code and documentation to be generated non-interactively. If you care about build automation, that's just what you want.\n\n`org-tangle` and `org-weave` themselves are written in literate Org documents, and this repository is managed using \u003ca href=\"#the-makefile-used\"\u003ethese GNU Makefile rules\u003c/a\u003e:\n\n-   **org-tangle:** [program](./org-tangle) | [documentation](./org-tangle.md) | [source document](./org-tangle.md)\n-   **org-weave:** [program](./org-weave) | [documentation](./org-weave.md) | [source document](./org-weave.md)\n\n## What is Literate Programming ? Why should I care ?\n\nI'd personnaly recommend these two resources:\n\n-   [Literate Programming in the Large](http://daly.axiom-developer.org/TimothyDaly_files/publications/DocConf/LiterateSoftwareTalk.html), a talk presented by [Timothy Daly](http://daly.axiom-developer.org/) at Write The Docs conference (April 2013) ([slides](http://daly.axiom-developer.org/TimothyDaly_files/publications/DocConf/LiterateSoftwareTalk.pdf))\n-   [A nice introductory page](https://github.com/limist/literate-programming-examples) by Kai Wu (March 2014), packed with a collection of literate programming examples using Org.\n\n# How does it work ?\n\nConsider an Org document (`source.org`) containing source code interleaved with documentation:\n\n\u003cimg src=\"./img/source.png\" alt=\"Source code\" style=\"text-align: center; border-width:2px; border-color: black;\"/\u003e\n\nRunning `org-tangle source.org` will extract the source code blocks according to the `:tangle` directives within the `source.org` and generate, for instance:\n\n\u003cimg src=\"./img/tangle.png\" alt=\"Tangled code\" style=\"text-align: center; border-width:2px; border-color: black;\"/\u003e\n\nThen, running `org-weave -f gfm source.org \u003e source.md` will generate documentation in GitHub flavored Markdown.\n\n\u003cimg src=\"./img/weave.png\" alt=\"Generated documentation\" style=\"text-align: center; border-width:2px; border-color: black;\"/\u003e\n\n# How to install it ?\n\n1.  Clone this repository\n    \n    ```sh\n    git clone https://github.com/ngirard/org-noweb\n    ```\n2.  Install `org-tangle` `org-weave` in a directory belonging to your `$PATH`\n    \n    ```sh\n    cd org-noweb\n    install -m 755 org-tangle org-weave /dest/dir\n    ```\n\n`org-weave` currently does nothing else than exporting to GitHub flavored Markdown ; it needs the `ox-gfm` package that was contributed by Lars Tveito. `ox-gfm` [currently doesn't belong](http://permalink.gmane.org/gmane.emacs.orgmode/87366) to the `org` / `org-plus-contrib` packages yet; so until then you'll need to\n\n-   [grab it from Gmane](http://cache.gmane.org//gmane/emacs/orgmode/84702-001.bin) into a directory `dir`;\n-   run `org-weave` using\n    \n    ```sh\n    org-weave -f gfm -O '-Q --batch -L dir' file.org \u003e file.md\n    ```\n\n# The Makefile used\n\n\u003cspan id=\"makefile\"/\u003e\n\nThis is the Makefile file I'm using on my system to manage this repository.\n\n\n```makefile\nPROGRAMS=org-tangle org-weave\nTARGETS=$(PROGRAMS) README.md org-tangle.md org-weave.md\n\nall: $(TARGETS)\n\n%: %.org\n\torg-tangle -l emacs-lisp,org $\u003c\n\n%.md: %.org\n\torg-weave -f gfm -O '-Q --batch -L ~/.emacs.d/local-packages' $\u003c \u003e $@\n\nDESTDIR=/home/soft/bin\ninstall: all\n\tinstall -m 755 $(PROGRAMS) $(DESTDIR)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngirard%2Forg-noweb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fngirard%2Forg-noweb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngirard%2Forg-noweb/lists"}