{"id":15048569,"url":"https://github.com/foxfriends/paper-terminal","last_synced_at":"2025-04-05T17:08:43.033Z","repository":{"id":38240424,"uuid":"179898056","full_name":"foxfriends/paper-terminal","owner":"foxfriends","description":"Print Markdown to a paper in your terminal","archived":false,"fork":false,"pushed_at":"2025-03-26T23:50:46.000Z","size":326,"stargazers_count":45,"open_issues_count":2,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-29T16:11:08.796Z","etag":null,"topics":["ansi","bash","color","console","document","markdown","md","paper","pretty","print","render","terminal","viewer"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/foxfriends.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"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},"funding":{"github":"foxfriends","patreon":null,"open_collective":null,"ko_fi":"foxfriends","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2019-04-06T23:34:40.000Z","updated_at":"2025-03-26T23:50:49.000Z","dependencies_parsed_at":"2025-01-20T05:37:13.959Z","dependency_job_id":null,"html_url":"https://github.com/foxfriends/paper-terminal","commit_stats":{"total_commits":82,"total_committers":4,"mean_commits":20.5,"dds":0.4390243902439024,"last_synced_commit":"c8f352f5b813ead2bd25015fcae32da193927318"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foxfriends%2Fpaper-terminal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foxfriends%2Fpaper-terminal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foxfriends%2Fpaper-terminal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foxfriends%2Fpaper-terminal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/foxfriends","download_url":"https://codeload.github.com/foxfriends/paper-terminal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247369952,"owners_count":20927928,"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":["ansi","bash","color","console","document","markdown","md","paper","pretty","print","render","terminal","viewer"],"created_at":"2024-09-24T21:14:07.332Z","updated_at":"2025-04-05T17:08:42.986Z","avatar_url":"https://github.com/foxfriends.png","language":"Rust","funding_links":["https://github.com/sponsors/foxfriends","https://ko-fi.com/foxfriends"],"categories":[],"sub_categories":[],"readme":"[syncat]: https://github.com/foxfriends/syncat\n[syncat stylesheets]: https://github.com/foxfriends/syncat-themes\n[foxfriends/paper-terminal]: https://github.com/foxfriends/paper-terminal\n[ttscoff/mdless]: https://github.com/ttscoff/mdless\n[lunaryorn/mdcat]: https://github.com/lunaryorn/mdcat\n\n# Paper terminal\n\n[![dependency status](https://deps.rs/repo/github/foxfriends/paper-terminal/status.svg)](https://deps.rs/repo/github/foxfriends/paper-terminal)\n\n\u003c!-- Here's a comment --\u003e\n\nSee [paper.png](./paper.png) to see what this looks like!\n\nWrites a file to a paper in your terminal. *Especially* if that file is Markdown! Features supported\ninclude:\n\n1.  The usual text, and paragraphs with automatic line-wrapping. You can manually wrap with\n    hard breaks as expected.\n\n    Otherwise, paragraphs will be nicely spaced.\n2.  Headings\n3.  __Bold__ / *Italic* / *__Bold and Italic__* / ~~Strikethrough~~\n4.  Lists\n    *   Ordered\n    *   Unordered\n        *   Nested\n\n    Definition\n    : This is a definition\n\n5.  Rules\n6.  `Inline code`\n7.  Code blocks, with [syncat][] integration for syntax highlighting. Note that you must install\n    syncat and make the syncat executable available on your path for this to work.\n    ```rust\n    fn main() {\n        println!(\"Hello world\");\n    }\n    ```\n8.  Blockquotes\n\n    \u003e   Blockquotes\n    \u003e   \u003e  And even nested block quotes\n\n\u003e [!IMPORTANT]\n\u003e Also alert blockquotes\n\n9.  And even images! Here's a photo of my cat\n\n    ![My cat. His name is Cato](./cato.png)\n\n10. Task lists:\n    - [x] Easy\n    - [ ] Hard\n11. Footnotes[^ft]\n\n    [^ft]: This is the footnote!\n\n12. Tables\n\n## Comparison with other command line Markdown renderers\n\nNot a very good comparison... this is more of an example of a table!\n\n| Tool                 | CommonMark | Paper | Paging | Wrapping | Syntax     | Images    | Tables | Looks good\\* |\n| :------------------- | :--------- | :---- | :----- | :------- | :--------- | :-------- | :----- | :----------- |\n| [foxfriends/paper-terminal][] | Yes        | Yes   | No     | Yes      | syncat     | Pixelated | Yes    | Yes          |\n| [ttscoff/mdless][]   | Yes        | No    | Yes    | No       | pygmentize | Sometimes | Yes    | No           |\n| [lunaryorn/mdcat][]  | Yes        | No    | No     | No       | syntect    | Sometimes | No     | No           |\n\n\\* subjective\n\n## Styling\n\nPaper uses [syncat stylesheets][] to allow full customization of styling. See the default stylesheet (`src/default.syncat`)\nas an example of how this works. To override the default styles, create `paper.syncat` in your active syncat theme.\n\n*   Different scopes are represented as nodes, inspired by the corresponding HTML tag names.\n\n    *   `h1` through `h6`\n    *   `strong`\n    *   `emphasis`\n    *   `strikethrough`\n    *   `code`\n    *   `blockquote` (alert style blockquotes are represented separately, using the custom tags `note-blockquote`, `tip-blockquote`, `important-blockquote`, `warning-blockquote`, and `caution-blockquote`)\n    *   `ul`, `ol`, `li`\n    *   `dl`, `dt`, `dd`\n    *   `footnote-ref`, `footnote-def`, `footnote`\n    *   `table`\n    *   `caption`\n    *   `link`\n\n*   The paper and shadow can be matched with `paper` and `shadow`. Styles applied to `paper` are applied to everything.\n*   The `\"prefix\"` and `\"suffix\"` tokens can be used to match the decorations\n    *   List item bullets\n    *   Blockquote (and alert) markers\n    *   Code block margins\n*   The `\"lang-tag\"` token matches the language name written in the bottom corner of the code block\n*   You can apply styles to code blocks with a specific language by using the language name as the token\n\nFor now, the prefix/suffix contents are not customizable, but this may be added in future if it is desired.\n\n## Installation\n\nPaper can be installed from crates.io using Cargo:\n\n```bash\ncargo install paper-terminal\n```\n\n## Usage\n\n```bash\n# Print the help\npaper --help\n\n# Render README.md\npaper README.md\n\n# Render README.md, with syntax highlighting\npaper README.md -s\n```\n\n```\nPrints papers in your terminal\n\nUsage: paper [OPTIONS] [FILE]...\n\nArguments:\n  [FILE]...  Files to print\n\nOptions:\n  -m, --margin \u003cMARGIN\u003e            Margin (shortcut for horizontal and vertical margin set to the same value) [default: 6]\n      --h-margin \u003cH_MARGIN\u003e        Horizontal margin (overrides --margin)\n      --v-margin \u003cV_MARGIN\u003e        Vertical margin (overrides --margin)\n  -w, --width \u003cWIDTH\u003e              The width of the paper (including the space used for the margin) [default: 92]\n  -p, --plain                      Don't parse as Markdown, just render the plain text on a paper\n  -t, --tab-length \u003cTAB_LENGTH\u003e    The length to consider tabs as [default: 4]\n  -U, --hide-urls                  Hide link URLs\n  -I, --no-images                  Disable drawing images\n  -l, --left                       Position paper on the left edge of the terminal, instead of centred\n  -r, --right                      Position paper on the right edge of the terminal, instead of centred\n  -s, --syncat                     Use syncat to highlight code blocks. Requires you have syncat installed\n      --dev                        Print in debug mode\n      --completions \u003cCOMPLETIONS\u003e  Generate shell completions [possible values: bash, elvish, fish, powershell, zsh]\n  -h, --help                       Print help\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoxfriends%2Fpaper-terminal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffoxfriends%2Fpaper-terminal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoxfriends%2Fpaper-terminal/lists"}