{"id":27257,"library":"prose","title":"prose","description":"An experimental literate programming toolkit that reads markdown files and extracts code blocks to produce executable JavaScript programs. Current version 0.0.1 is a proof-of-concept released in 2013 with no further updates. It uses marked for markdown parsing and focuses on embedding code in markdown using shebang language declarations. Unlike other literate programming tools (e.g., Org-mode, Jupyter), prose is minimal and language-agnostic but limited to JavaScript/altJS compilation. It has no active maintenance or releases.","status":"abandoned","version":"0.0.1","language":"javascript","source_language":"en","source_url":"https://github.com/Gozala/prose","tags":["javascript","prose","Literate programming"],"install":[{"cmd":"npm install prose","lang":"bash","label":"npm"},{"cmd":"yarn add prose","lang":"bash","label":"yarn"},{"cmd":"pnpm add prose","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core dependency for parsing markdown into tokens, used to extract code blocks.","package":"marked","optional":true}],"imports":[{"note":"Package only supports CommonJS; no ESM exports. The module exports a single function `main` via `module.exports = main`.","wrong":"import main from 'prose'","symbol":"main","correct":"const main = require('prose')"},{"note":"transpile is not exported; it's internal to the module. Only `main` is exported.","wrong":"","symbol":"transpile","correct":"const { transpile } = require('prose')"}],"quickstart":{"code":"const prose = require('prose');\nconst fs = require('fs');\n\n// Create a simple markdown input with code blocks\nconst input = '# Hello\\n\\nThis is a sample program:\\n\\n    #!/usr/bin/env javascript\\n    console.log(\"Hello, world!\");\\n\\nThe end.';\n\nconst inputStream = fs.createReadStream(); // not practical; typical usage is stdin\n// Instead, run as CLI:\n// echo -e '# Example\\n\\n    #!/usr/bin/env javascript\\n    console.log(\"Hello\");' | node prose\n// Or capture output via shell.\nconsole.log('See CLI usage.');","lang":"javascript","description":"Demonstrates invoking prose as a module (only exports main) or CLI tool to transpile markdown to JavaScript."},"warnings":[{"fix":"Avoid using in production. Consider alternatives like literate-programming or org-mode.","message":"Package is unmaintained since 2013; may have security vulnerabilities in marked dependency.","severity":"deprecated","affected_versions":"0.0.1"},{"fix":"Check source: no transpilation logic for other languages exists.","message":"Only JavaScript (via shebang) is actually supported despite claims of compiling any altJS language.","severity":"gotcha","affected_versions":"0.0.1"},{"fix":"Run with no arguments to trigger stdin mode; otherwise provide a path to load a module.","message":"CLI usage: if arguments provided, it loads a module instead of transpiling stdin. This is undocumented.","severity":"gotcha","affected_versions":"0.0.1"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run `npm install marked` in your project.","cause":"marked is listed as a dependency but not installed automatically; missing from package.json dependencies (only devDependencies).","error":"Error: Cannot find module 'marked'"},{"fix":"Patch source to add `const path = require('path')` at top.","cause":"The module uses `path` without requiring it (in `path.resolve`) when loading a module via CLI argument.","error":"ReferenceError: path is not defined"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}