{"id":13678904,"url":"https://github.com/rysana-ai/bundown","last_synced_at":"2025-04-07T15:05:57.694Z","repository":{"id":219431782,"uuid":"747537640","full_name":"rysana-ai/bundown","owner":"rysana-ai","description":"Bundown is a fast all-in-one Markdown runtime and bundler, built on Bun.","archived":false,"fork":false,"pushed_at":"2024-05-25T07:00:54.000Z","size":72,"stargazers_count":202,"open_issues_count":3,"forks_count":9,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-31T14:14:50.016Z","etag":null,"topics":["bun","bundown","cli","javascript","markdown","notebook","runtime","shell","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rysana-ai.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-24T06:04:19.000Z","updated_at":"2025-03-01T05:17:15.000Z","dependencies_parsed_at":"2024-02-22T00:22:41.623Z","dependency_job_id":"95b55018-5233-4449-93da-9f2f3baf2a93","html_url":"https://github.com/rysana-ai/bundown","commit_stats":{"total_commits":33,"total_committers":4,"mean_commits":8.25,"dds":"0.12121212121212122","last_synced_commit":"7ab398c7886fcfacbc1aa24e2fec1c08d6decb6e"},"previous_names":["rysana-ai/bundown"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rysana-ai%2Fbundown","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rysana-ai%2Fbundown/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rysana-ai%2Fbundown/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rysana-ai%2Fbundown/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rysana-ai","download_url":"https://codeload.github.com/rysana-ai/bundown/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247675596,"owners_count":20977376,"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","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":["bun","bundown","cli","javascript","markdown","notebook","runtime","shell","typescript"],"created_at":"2024-08-02T13:00:59.712Z","updated_at":"2025-04-07T15:05:57.674Z","avatar_url":"https://github.com/rysana-ai.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","cli"],"sub_categories":[],"readme":"# \u003cimg alt=\"Bundown\" src='bundown/bundown.svg'\u003e\n\n[![bundown license](https://img.shields.io/npm/l/bundown.svg?colorB=567\u0026label)](https://github.com/rysana-ai/bundown/blob/main/license) [![bundown package version](https://img.shields.io/npm/v/bundown.svg?colorB=284\u0026label)](https://www.npmjs.com/package/bundown) [![bundown source code size](https://img.shields.io/github/languages/code-size/rysana-ai/bundown?colorB=44e\u0026label)](https://github.com/rysana-ai/bundown) [![bundown speed](https://img.shields.io/static/v1?label\u0026message=blazingly%20fast\u0026color=b22)](https://twitter.com/jrysana/status/1754329326600741266)\n\n**Bundown** is a fast all-in-one Markdown runtime and bundler.\n\nYou can install `bundown` (`bd`) globally using [Bun](https://bun.sh):\n\n```sh -t install\nbun i -g bundown\n```\n\nBundown runs TS, JS, and Shell code. It pretty-prints and syncs code in almost any language.\n\n\n\n\n## Links\n\n+ [Usage](#usage)\n+ [Changelog](#changelog)\n+ [Contributing](#contributing)\n+ [Roadmap](#roadmap)\n+ [Scripts](#scripts)\n    + [Format](#format)\n+ [Source](bundown/bundown.ts)\n+ [MIT License](license)\n\n\n\n\n## Usage\n\n+ `bundown run`        to run a Markdown file from a path or URL\n+ `bundown sync`       to pack/unpack code between files and Markdown\n+ `bundown -h`         to view help \n+ `bundown upgrade`    to update Bundown\n\n\n\n\n## Changelog\n\nSee what's planned in [the roadmap.](#roadmap)\n\n### `^0.1.2`\n+ **Improvements**\n    + `bundown --print` uses improved box drawing for run \u0026 sync code printing.\n\n### `^0.1.0`\n+ **Features**\n    + `bundown run \u003cfile\u003e` now aliases `bundown \u003cfile\u003e`.\n    + `bundown sync` synchronizes Markdown codeblocks with actual code files using file tags in the codeblock metadata:\n        + `--file \u003cfile\u003e` (`-f`) in a codeblock meta header sets the corresponding file.\n        + `bundown \u003cfile\u003e` does not run code blocks with a `--file` flag.\n        + `bundown sync \u003cfile\u003e \u003cdir\u003e` (over)writes files in `\u003cdir\u003e` with corresponding codeblocks from `\u003cfile\u003e`.\n        + `bundown sync \u003curl\u003e \u003cdir\u003e` downloads and over(writes) the files in `\u003cdir\u003e` with codeblocks from `\u003curl\u003e`.\n        + `bundown sync --print` (`-p`) pretty-prints the synced files.\n    + `bundown https://example.com/file.md` runs a Markdown file from a URL.\n    + `bundown --tag \u003ctag\u003e \u003cfile\u003e` (`-t`) runs only code blocks with the specified tag.\n        + `--tag \u003ctag\u003e` (`-t`) in a codeblock meta header tags the codeblock with `\u003ctag\u003e`.\n        + `bundown \u003cfile\u003e` does not run code blocks with a `--tag` flag.\n    + `bundown` auto-detects operating system and only runs corresponding codeblocks.\n        + `--os \u003cos\u003e` in a codeblock meta header tags the codeblock with `\u003cos\u003e`.\n        + `linux` and `macos`/`darwin` are supported `\u003cos\u003e` tags.\n    + `bundown \u003cdir\u003e` auto-detects the best potential default file like `readme.md` and runs it.\n+ **Improvements**\n    + `bundown` now has a block-level args parser for advanced features.\n    + `bundown` now uses abstract syntax trees to parse and manipulate Markdown.\n    + `bundown --print` uses syntax highlighting for code blocks and rich text.\n+ **Languages**\n    + `bundown` can print and sync: `c`, `cuda`, `c++`, `c#`, `css`, `diff`, `go`, `graphql`, `.gitignore`, `html`, `arduino`, `java`, `javascript`, `json`, `jsx`, `kotlin`, `less`, `lua`, `makefile`, `markdown`, `objective-c`, `perl`, `php`, `python`, `r`, `ruby`, `rust`, `scss`, `shell`, `sql`, `svg`, `swift`, `toml`, `tsx`, `typescript`, `xml`, `vb.net`, `wasm`, `yaml`, and many aliases for the aforementioned.\n\n### `^0.0.10`\n+ **Improvements**\n    + `bundown upgrade` fixed.\n\n### `^0.0.9`\n+ **Improvements**\n    + `bundown` checks that the user has `bun@^1.0.24` installed and reports a helpful error message if not.\n\n### `^0.0.8`\n+ **Improvements**\n    + `bundown upgrade` upgrades `bundown` to the latest version.\n\n### `^0.0.7`\n+ **Improvements**\n    + `package.json` now lists runtime dependencies.\n\n### `^0.0.6`\n+ **Features**\n    + `bundown --version` (`-v`) prints the version of `bundown` installed.\n    + `bundown --print \u003cfile\u003e` (`-p`) pretty-prints the Markdown and syntax highlighted code blocks.\n    + `bundown --help` (`-h`) prints a help message.\n+ **Improvements**\n    + `bundown` now uses ANSI colors for more helpful usage messages \u0026 pretty-printing.\n\n### `^0.0.5`\n+ **Features**\n    + `bundown` recognizes languages regardless of case, allowing uppercase language names in code blocks.\n+ **Improvements**\n    + `bundown` now uses a single parser loop to run faster in less lines of code.\n\n### `^0.0.4`\n+ **Features**\n    + `bundown` can run multiple instances at once.\n    + `bundown` returns the same exit code as the code it ran.\n\n### `^0.0.3`\n+ **Improvements**\n    + `bundown` has developer tooling including `biome` code formatting via `bundown` and a `.gitignore` file.\n\n### `^0.0.2`\n+ **Improvements**\n    + `bundown` doesn't skip a code block if a supported language is specified in full but has extra whitespace/content on the language line.\n\n### `^0.0.1`\n+ **Features**\n    + `bundown \u003cfile\u003e` runs TypeScript, JavaScript, and Shell code blocks in Markdown files.\n    + `bundown` can be installed globally using `npm`, `bun`, `pnpm`, or `yarn` and run from anywhere.\n\n\n\n\n## Contributing\n\nIf you have any bugs, feature requests, etc. please open a [discussion](https://github.com/rysana-ai/bundown/discussions), [issue](https://github.com/rysana-ai/bundown/issues) or [pull request](https://github.com/rysana-ai/bundown/pulls) as appropriate.\n\nBefore you open a PR, use [this script](#format) to format the code with `biome`. We use an opinionated style guide, aimed at maximizing the intuitive readability of code and minimizing noisy syntax - follow it.\n\nWe also have a [roadmap](#roadmap) of planned features and bugs we'd like to fix if you'd like to pick one up:\n\n\n\n\n## Roadmap\n\nSee what's already been done in [the changelog.](#changelog) Please suggest changes.\n\n+ **Features**\n    + `bundown sync \u003curl\u003e \u003cfile\u003e` downloads and over(writes) the Markdown file from `\u003curl\u003e` into `\u003cfile\u003e`.\n    + `bundown sync \u003cdir\u003e \u003cfile\u003e` (over)writes codeblocks in `\u003cfile\u003e` with corresponding files from `\u003cdir\u003e`.\n        + `--no-new-blocks` does not create new codeblocks in `\u003cfile\u003e` for files in `\u003cdir\u003e` without corresponding codeblocks.\n    + `bundown sync bundown.md .` is used to sync the `bundown` codebase from a single file.\n    + `bundown sync --delete` deletes files/blocks in the destination that don't exist in the source.\n    + `bundown --interactive \u003cfile\u003e` (`-i`) pretty-prints each code block before running with a Y/N prompt to run it.\n    + `bundown` detects potentially unsafe code and prompts the user to run interactively if so.\n    + `bundown` uses source mapping to deliver helpful and traceable error messages when code blocks or individual lines of code fail.\n    + `bundown ai` uses the core runtime, pretty-printing, and safe execution to deliver a great private, local, open-source alternative interface to LLM chat/search/code apps.\n    + `... | bundown` can be used to pipe Markdown into `bundown` instead of using a file path.\n    + `bundown tasks` allows you to view and manage task lists.\n    + `bundown.config.md` allows a user to set a custom color theme for Bundown.\n+ **Improvements**\n    + `bundown` should safely escape the content of Shell code when compiling to TS.\n    + `bundown --print` visually formats Markdown segments (code, links, etc.) beyond just syntax highlighting.\n    + `bundown --print` supports GFM style autolinks.\n    + `bundown --print` supports GFM style task lists.\n    + `bundown --print` supports GFM style tables.\n    + `bundown --print` supports GFM style footnotes.\n    + `bundown --print` converts emoji codes like `:fire:` to actual emojis.\n    + `bundown --print` pretty-prints math e.g. replacing common TeX characters e.g. `\\pi` to `π`.\n+ **Languages**\n    + `bundown` shares variables and functions between code blocks, regardless of language.\n    + `bundown` can print and sync: `sass`, `zig`, `assembly`, `haskell`, `lisp`, `clojure`, `julia`, `brainfuck`, `latex`, and more?\n    + `bundown` can run: `python`, `c#`, `c++`, `c`, `zig`, `rust`, `php`, `go`, `ruby`, `lua`, `assembly`, `wasm`, `lisp`, `clojure`, `julia`, `brainfuck`, and more?\n\n\n\n\n## Scripts\n\nIf you have Bundown installed, you can run any of the following scripts with `bundown -t \u003cscript\u003e`\n\n\n### Format\n\nWe use `biome` to format our code.\n\nTo format all files in the project, make sure you have `biome` installed and run:\n\n```sh -t format\nbun x biome format --write .\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frysana-ai%2Fbundown","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frysana-ai%2Fbundown","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frysana-ai%2Fbundown/lists"}