{"id":28412368,"url":"https://github.com/chunqiuyiyu/qov","last_synced_at":"2025-07-27T02:34:11.789Z","repository":{"id":57332264,"uuid":"158000404","full_name":"chunqiuyiyu/qov","owner":"chunqiuyiyu","description":"The terminal presentation tool.","archived":false,"fork":false,"pushed_at":"2022-03-29T15:38:34.000Z","size":230,"stargazers_count":154,"open_issues_count":0,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-28T20:23:18.374Z","etag":null,"topics":["ascii","cli","presentation-slides","terminal"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/chunqiuyiyu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"chunqiuyiyu","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":"https://www.paypal.me/chunqiuyiyu"}},"created_at":"2018-11-17T15:58:24.000Z","updated_at":"2025-05-14T04:20:40.000Z","dependencies_parsed_at":"2022-09-15T12:31:24.583Z","dependency_job_id":null,"html_url":"https://github.com/chunqiuyiyu/qov","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chunqiuyiyu/qov","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chunqiuyiyu%2Fqov","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chunqiuyiyu%2Fqov/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chunqiuyiyu%2Fqov/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chunqiuyiyu%2Fqov/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chunqiuyiyu","download_url":"https://codeload.github.com/chunqiuyiyu/qov/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chunqiuyiyu%2Fqov/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264099615,"owners_count":23557426,"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":["ascii","cli","presentation-slides","terminal"],"created_at":"2025-06-02T21:17:14.344Z","updated_at":"2025-07-27T02:34:11.784Z","avatar_url":"https://github.com/chunqiuyiyu.png","language":"JavaScript","funding_links":["https://ko-fi.com/chunqiuyiyu","https://www.paypal.me/chunqiuyiyu"],"categories":[],"sub_categories":[],"readme":"# Qov \u0026middot; [![Build Status](https://img.shields.io/travis/chunqiuyiyu/qov.svg?style=flat-square)](https://travis-ci.org/chunqiuyiyu/qov) [![npm](https://img.shields.io/npm/v/qov.svg?style=flat-square)](https://www.npmjs.com/package/qov) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/chunqiuyiyu/qov/blob/master/LICENSE)\n\n\u003e The terminal presentation tool.\n\n![preivew](./preview.gif)\n\n## Features\n* No third-party dependencies\n* Tagged template literals\n* Styled characters\n* Fragments support\n* Customized keyBinding\n* Auto-sliding\n* Easy to work with other libraries\n\n## Getting started\n\n```shell\nnpm install qov\n```\n\nPrepare texts for rendering slides.\n\n```js\nconst Qov = require('qov')\nconst qov = new Qov()\n\nqov.section`Section One`            \nqov.section`Section Two`           \n\n// Expression interpolation\nqov.section`Section ${() =\u003e 'Three'}` \n\n// Render slides\nqov.render()\n```\nCheck [demo](./demo/index.js) for more details.\n\n## APIs\n\n### Constructor\n\n```js\nconst qov = new Qov({ step?, keymap? })\n```\n\nstep: milliseconds between auto-sliding, default is 2000.\nkeymap: customize keyBindings by yourself, defalut keymap is [here](./lib/keymap.js).\n\n### Styles\n\n```js\nqov.styles.\u003cStyle\u003e(str)\n```\n\nStyle: style name, possiable value is blod, faint, italic, underline, slowBlink, rapidBlink, reverse or crossedOut.\n\nstr: characters which you want to render.\n\n### Colors\nUse `paint()` functon to render characters with color and backgroundColor.\n\n```js\nqov.colors.\u003cColor\u003e(str, isBg?)\nqov.colors.paint(bgColor, fgColor, str)\n```\nColor, bgColor, fgColor: color name(black, red, green, yellow, blue, magenta, cyan, white).\n\nisBg: render characters by backgroundColor or not, default is false.\n\n## Much more\nvia [Tagged template literals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_templates), you can use other JS packages in Qov slides.**The only requirement is that package needs to return a string.**\n\n## License\n\n[MIT](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchunqiuyiyu%2Fqov","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchunqiuyiyu%2Fqov","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchunqiuyiyu%2Fqov/lists"}