[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-4998":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":24,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":29,"readmeContent":30,"aiSummary":31,"trendingCount":16,"starSnapshotCount":16,"syncStatus":19,"lastSyncTime":32,"discoverSource":33},4998,"slides","maaslalani\u002Fslides","maaslalani","Terminal based presentation tool","http:\u002F\u002Fmaaslalani.com\u002Fslides\u002F",null,"Go",11536,310,59,52,0,8,30,2,42.48,"MIT License",false,"main",true,[26,27,5,28],"markdown","presentation","terminal","2026-06-12 02:01:07","# Slides\n\nSlides in your terminal.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\".\u002Fassets\u002Fslides-1.gif?raw=true\" alt=\"Slides Presentation\" \u002F>\n\u003C\u002Fp>\n\n### Installation\n[![Homebrew](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdynamic\u002Fjson.svg?url=https:\u002F\u002Fformulae.brew.sh\u002Fapi\u002Fformula\u002Fslides.json&query=$.versions.stable&label=homebrew)](https:\u002F\u002Fformulae.brew.sh\u002Fformula\u002Fslides)\n[![Snapcraft](https:\u002F\u002Fsnapcraft.io\u002Fslides\u002Fbadge.svg)](https:\u002F\u002Fsnapcraft.io\u002Fslides)\n[![AUR](https:\u002F\u002Fimg.shields.io\u002Faur\u002Fversion\u002Fslides?label=AUR)](https:\u002F\u002Faur.archlinux.org\u002Fpackages\u002Fslides)\n\n\u003Cdetails markdown=\"block\">\n\u003Csummary>Instructions\u003C\u002Fsummary>\n\n#### MacOS\n```\nbrew install slides\n```\n#### Arch\n```\nyay -S slides\n```\n#### Nixpkgs (unstable)\n```\nnix-env -iA nixpkgs.slides\n```\n#### Any Linux Distro running `snapd`\n```\nsudo snap install slides\n```\n#### Go\n```\ngo install github.com\u002Fmaaslalani\u002Fslides@latest\n```\nFrom source:\n```\ngit clone https:\u002F\u002Fgithub.com\u002Fmaaslalani\u002Fslides.git\ncd slides\ngo install\n```\n\nYou can also download a binary from the [releases](https:\u002F\u002Fgithub.com\u002Fmaaslalani\u002Fslides\u002Freleases) page.\n\n\u003C\u002Fdetails>\n\n\n### Usage\nCreate a simple markdown file that contains your slides:\n\n````markdown\n# Welcome to Slides\nA terminal based presentation tool\n\n---\n\n## Everything is markdown\nIn fact, this entire presentation is a markdown file.\n\n---\n\n## Everything happens in your terminal\nCreate slides and present them without ever leaving your terminal.\n\n---\n\n## Code execution\n```go\npackage main\n\nimport \"fmt\"\n\nfunc main() {\n  fmt.Println(\"Execute code directly inside the slides\")\n}\n```\n\nYou can execute code inside your slides by pressing `\u003CC-e>`,\nthe output of your command will be displayed at the end of the current slide.\n\n---\n\n## Pre-process slides\n\nYou can add a code block with three tildes (`~`) and write a command to run *before* displaying\nthe slides, the text inside the code block will be passed as `stdin` to the command\nand the code block will be replaced with the `stdout` of the command.\n\n```\n~~~graph-easy --as=boxart\n[ A ] - to -> [ B ]\n~~~\n```\n\nThe above will be pre-processed to look like:\n\n┌───┐  to   ┌───┐\n│ A │ ────> │ B │\n└───┘       └───┘\n\nFor security reasons, you must pass a file that has execution permissions\nfor the slides to be pre-processed. You can use `chmod` to add these permissions.\n\n```bash\nchmod +x file.md\n```\n\n````\n\nCheckout the [example slides](https:\u002F\u002Fgithub.com\u002Fmaaslalani\u002Fslides\u002Ftree\u002Fmain\u002Fexamples).\n\nThen, to present, run:\n```\nslides presentation.md\n```\n\nIf given a file name, `slides` will automatically look for changes in the file and update the presentation live.\n\n`slides` also accepts input through `stdin`:\n```\ncurl http:\u002F\u002Fexample.com\u002Fslides.md | slides\n```\n\nGo to the first slide with the following key sequence:\n* \u003Ckbd>g\u003C\u002Fkbd> \u003Ckbd>g\u003C\u002Fkbd>\n\nGo to the next slide with any of the following key sequences:\n* \u003Ckbd>space\u003C\u002Fkbd>\n* \u003Ckbd>right\u003C\u002Fkbd>\n* \u003Ckbd>down\u003C\u002Fkbd>\n* \u003Ckbd>enter\u003C\u002Fkbd>\n* \u003Ckbd>n\u003C\u002Fkbd>\n* \u003Ckbd>j\u003C\u002Fkbd>\n* \u003Ckbd>l\u003C\u002Fkbd>\n* \u003Ckbd>Page Down\u003C\u002Fkbd>\n* number + any of the above (go forward n slides)\n\nGo to the previous slide with any of the following key sequences:\n* \u003Ckbd>left\u003C\u002Fkbd>\n* \u003Ckbd>up\u003C\u002Fkbd>\n* \u003Ckbd>p\u003C\u002Fkbd>\n* \u003Ckbd>h\u003C\u002Fkbd>\n* \u003Ckbd>k\u003C\u002Fkbd>\n* \u003Ckbd>N\u003C\u002Fkbd>\n* \u003Ckbd>Page Up\u003C\u002Fkbd>\n* number + any of the above (go back n slides)\n\nGo to a specific slide with the following key sequence:\n\n* number + \u003Ckbd>G\u003C\u002Fkbd>\n\nGo to the last slide with the following key:\n\n* \u003Ckbd>G\u003C\u002Fkbd>\n\n### Search\n\nTo quickly jump to the right slide, you can use the search function.\n\nPress \u003Ckbd>\u002F\u003C\u002Fkbd>, enter your search term and press \u003Ckbd>Enter\u003C\u002Fkbd>  \n(*The search term is interpreted as a regular expression. The `\u002Fi` flag causes case-insensitivity.*).\n\nPress \u003Ckbd>ctrl+n\u003C\u002Fkbd> after a search to go to the next search result.\n\n### Code Execution\n\nIf slides finds a code block on the current slides it can execute the code block and display the result as virtual text\non the screen.\n\nPress \u003Ckbd>ctrl+e\u003C\u002Fkbd> on a slide with a code block to execute it and display the result.\n\n### Pre-processing\n\nYou can add a code block with three tildes (`~`) and write a command to run\n*before* displaying the slides, the text inside the code block will be passed\nas `stdin` to the command and the code block will be replaced with the `stdout`\nof the command. Wrap the pre-processed block in three backticks to keep\nproper formatting and new lines.\n\n````\n```\n~~~graph-easy --as=boxart\n[ A ] - to -> [ B ]\n~~~\n```\n````\n\nThe above will be pre-processed to look like:\n\n```\n┌───┐  to   ┌───┐\n│ A │ ────> │ B │\n└───┘       └───┘\n```\n\nFor security reasons, you must pass a file that has execution permissions\nfor the slides to be pre-processed. You can use `chmod` to add these permissions.\n\n```bash\nchmod +x file.md\n```\n\n### Configuration\n\n`slides` allows you to customize your presentation's look and feel with metadata at the top of your `slides.md`.\n\n> This section is entirely optional, `slides` will use sensible defaults if this section or any field in the section is omitted.\n\n```yaml\n---\ntheme: .\u002Fpath\u002Fto\u002Ftheme.json\nauthor: Gopher\ndate: MMMM dd, YYYY\npaging: Slide %d \u002F %d\n---\n```\n\n* `theme`: Path to `json` file containing a [glamour\n  theme](https:\u002F\u002Fgithub.com\u002Fcharmbracelet\u002Fglamour\u002Ftree\u002Fmaster\u002Fstyles), can also\n  be a link to a remote `json` file which slides will fetch before presenting.\n* `author`: A `string` to display on the bottom-left corner of the presentation\n  view. Defaults to the OS current user's full name. Can be empty to hide the author.\n* `date`: A `string` that is used to format today's date in the `YYYY-MM-DD` format. If the date is not a valid\n  format, the string will be displayed. Defaults to `YYYY-MM-DD`.\n* `paging`: A `string` that contains 0 or more `%d` directives. The first `%d`\n  will be replaced with the current slide number and the second `%d` will be\n  replaced with the total slides count. Defaults to `Slide %d \u002F %d`.\n  You will need to surround the paging value with quotes if it starts with `%`.\n\n#### Date format\n\nGiven the date _January 02, 2006_:\n\n| Value  | Translates to |\n|--------|---------------|\n| `YYYY` | 2006          |\n| `YY`   | 06            |\n| `MMMM` | January       |\n| `MMM`  | Jan           |\n| `MM`   | 01            |\n| `mm`   | 1             |\n| `DD`   | 02            |\n| `dd`   | 2             |\n\n### SSH\n\nSlides is accessible over `ssh` if hosted on a machine through the `slides\nserve [file]` command.\n\nOn a machine, run:\n\n```\nslides serve [file]\n```\n\nThen, on another machine (or same machine), `ssh` into the port specified by\nthe `slides serve [file]` command:\n```\nssh 127.0.0.1 -p 53531\n```\n\nYou will be able to access the presentation hosted over SSH! You can use this\nto present with `slides` from a computer that doesn't have `slides` installed,\nbut does have `ssh`. Or, let your viewers have access to the slides on their\nown computer without needing to download `slides` and the presentation file.\n\n### Alternatives\n\n**Credits**: This project was heavily inspired by [`lookatme`](https:\u002F\u002Fgithub.com\u002Fd0c-s4vage\u002Flookatme).\n\n* [`lookatme`](https:\u002F\u002Fgithub.com\u002Fd0c-s4vage\u002Flookatme)\n* [`sli.dev`](https:\u002F\u002Fsli.dev\u002F)\n* [`sent`](https:\u002F\u002Ftools.suckless.org\u002Fsent\u002F)\n* [`presenterm`](https:\u002F\u002Fgithub.com\u002Fmfontanini\u002Fpresenterm)\n\n### Development\nSee the [development documentation](.\u002Fdocs\u002Fdevelopment)\n","Slides 是一个基于终端的演示工具，允许用户使用 Markdown 创建并展示幻灯片。它支持在幻灯片中直接执行代码，并且能够实时更新文件中的更改。此外，通过预处理功能，可以将命令的输出直接嵌入到幻灯片中，增强了演示的灵活性和互动性。适用于需要在命令行环境中进行技术分享、教学或报告的场景，特别是对于偏好简洁工作流的技术人员来说非常实用。","2026-06-11 03:01:58","top_language"]