Repository: klaudiosinani/taskbook Branch: master Commit: 49b760a76c5b Files: 39 Total size: 210.3 KB Directory structure: gitextract_zmlwr6tz/ ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ └── pull_request_template.md ├── .gitignore ├── .npmrc ├── .travis.yml ├── _config.yml ├── cli.js ├── code-of-conduct.md ├── contributing.md ├── docs/ │ ├── readme.AL.md │ ├── readme.BG.md │ ├── readme.ES.md │ ├── readme.FR.md │ ├── readme.GER.md │ ├── readme.JP.md │ ├── readme.KR.md │ ├── readme.PL.md │ ├── readme.PT-BR.md │ ├── readme.RU.md │ ├── readme.TR.md │ ├── readme.ZH.md │ └── readme.md ├── index.js ├── license.md ├── package.json ├── readme.md ├── snapcraft.yaml └── src/ ├── config.js ├── directory.js ├── help.js ├── item.js ├── note.js ├── render.js ├── storage.js ├── task.js └── taskbook.js ================================================ FILE CONTENTS ================================================ ================================================ FILE: .editorconfig ================================================ root = true [*] indent_style = space indent_size = 2 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true [*.md] trim_trailing_whitespace = false [*.{json,yml}] indent_style = space indent_size = 2 ================================================ FILE: .gitattributes ================================================ * text=auto *.js text eol=lf ================================================ FILE: .github/ISSUE_TEMPLATE/bug_report.md ================================================ --- name: Bug report about: Create a report to help us improve --- **Describe the bug** A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior. **Expected behavior** A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. **Technical Info (please complete the following information)** - OS: - Node.js Version: - Taskbook Version: **Additional context** Add any other context about the problem here. ================================================ FILE: .github/ISSUE_TEMPLATE/feature_request.md ================================================ --- name: Feature request about: Suggest an idea for this project --- **Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. **Describe the solution you'd like** A clear and concise description of what you want to happen. **Additional context** Add any other context or screenshots about the feature request here. ================================================ FILE: .github/pull_request_template.md ================================================ ================================================ FILE: .gitignore ================================================ # dependencies node_modules yarn.lock # logs *.log # OS .DS_Store # IDE .vscode .idea *.swp *.swo # snap prime snapcraft parts stage snap *.snap ================================================ FILE: .npmrc ================================================ package-lock=false ================================================ FILE: .travis.yml ================================================ language: node_js node_js: - 10 - 8 - 6 before_install: - npm install --global npm@6.4.0 - npm --version ================================================ FILE: _config.yml ================================================ remote_theme: klaudiosinani/re@v0.4.0 plugins: - jekyll-github-metadata - jekyll-remote-theme - jekyll-sitemap re: favicon: https://raw.githubusercontent.com/klaudiosinani/klaudiosinani.github.io/refs/heads/master/public/favicon.png simpleanalytics: enabled: true ================================================ FILE: cli.js ================================================ #!/usr/bin/env node 'use strict'; const meow = require('meow'); const updateNotifier = require('update-notifier'); const help = require('./src/help'); const pkg = require('./package.json'); const taskbook = require('.'); const cli = meow(help, { flags: { help: { type: 'boolean', alias: 'h' }, version: { type: 'boolean', alias: 'v' }, archive: { type: 'boolean', alias: 'a' }, restore: { type: 'boolean', alias: 'r' }, task: { type: 'boolean', alias: 't' }, note: { type: 'boolean', alias: 'n' }, delete: { type: 'boolean', alias: 'd' }, check: { type: 'boolean', alias: 'c' }, begin: { type: 'boolean', alias: 'b' }, star: { type: 'boolean', alias: 's' }, copy: { type: 'boolean', alias: 'y' }, timeline: { type: 'boolean', alias: 'i' }, priority: { type: 'boolean', alias: 'p' }, find: { type: 'boolean', alias: 'f' }, list: { type: 'boolean', alias: 'l' }, edit: { type: 'boolean', alias: 'e' }, move: { type: 'boolean', alias: 'm' }, clear: { type: 'boolean' }, taskbookDir: { type: 'string' } } }); updateNotifier({pkg}).notify(); taskbook(cli.input, cli.flags); ================================================ FILE: code-of-conduct.md ================================================ # Contributor Covenant Code of Conduct ## Our Pledge In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. ## Our Standards Examples of behavior that contributes to creating a positive environment include: * Using welcoming and inclusive language * Being respectful of differing viewpoints and experiences * Gracefully accepting constructive criticism * Focusing on what is best for the community * Showing empathy towards other community members Examples of unacceptable behavior by participants include: * The use of sexualized language or imagery and unwelcome sexual attention or advances * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or electronic address, without explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. ## Scope This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at klaudiosinani@protonmail.ch. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] [homepage]: http://contributor-covenant.org [version]: http://contributor-covenant.org/version/1/4/ ================================================ FILE: contributing.md ================================================ # Contributing to Taskbook Thank you for taking the time to contribute to Taskbook! Please note that this project is released with a [Contributor Code of Conduct](code-of-conduct.md). By participating in this project you agree to abide by its terms. ## How to contribute ### Improve documentation Typo corrections, error fixes, better explanations, more examples etc. Open an issue regarding anything that you think it could be improved! You can use the [`docs` label](https://github.com/klaudiosinani/taskbook/labels/docs) to find out what others have suggested! ### Improve issues Sometimes reported issues lack information, are not reproducible, or are even plain invalid. Help us out to make them easier to resolve. Handling issues takes a lot of time that we could rather spend on fixing bugs and adding features. ### Give feedback on issues We're always looking for more opinions on discussions in the issue tracker. It's a good opportunity to influence the future direction of the project. The [`question` label](https://github.com/klaudiosinani/taskbook/labels/question) is a good place to find ongoing discussions. ### Write code You can use issue labels to discover issues you could help us out with! - [`feature request` issues](https://github.com/klaudiosinani/taskbook/labels/feature%20request) are features we are open to including - [`bug` issues](https://github.com/klaudiosinani/taskbook/labels/bug) are known bugs we would like to fix - [`future` issues](https://github.com/klaudiosinani/taskbook/labels/future) are those that we'd like to get to, but not anytime soon. Please check before working on these since we may not yet want to take on the burden of supporting those features - on the [`help wanted`](https://github.com/klaudiosinani/taskbook/labels/help%20wanted) label you can always find something exciting going on You may find an issue is assigned, or has the [`assigned` label](https://github.com/klaudiosinani/taskbook/labels/assigned). Please double-check before starting on this issue because somebody else is likely already working on it ### Say hi Come over and say hi anytime you feel like on [Gitter](https://gitter.im/klaudiosinani/taskbook). ### Translating Documentation #### Create a Translation - Check the [`index`](https://github.com/klaudiosinani/taskbook/tree/master/docs/readme.md) file to ensure that the document is not already translated in your target language. - Add the name of the language to the document as an extension, e.g: `readme.JP.md` - Place the translated document inside the [`docs`](https://github.com/klaudiosinani/taskbook/tree/master/docs) directory. - Add your github profile and the translated document to the [`index`](https://github.com/klaudiosinani/taskbook/tree/master/docs/readme.md) file. - Create a Pull Request including the language in the title, e.g: `Readme: Japanese Translation` #### Improve a Translation - Include your github profile next to the translation you improved at the [`index`](https://github.com/klaudiosinani/taskbook/tree/master/docs/readme.md) file. - Create a Pull Request that delivers the improvements and include the language in the title, e.g: `Readme: Improvements for the Japanese Translation` ### Submitting an issue - Search the issue tracker before opening an issue - Ensure you're using the latest version of Taskbook - Use a descriptive title - Include as much information as possible; - Steps to reproduce the issue - Error message - Taskbook version - Operating system **etc** ### Submitting a pull request - Non-trivial changes are often best discussed in an issue first, to prevent you from doing unnecessary work - Try making the pull request from a [topic branch](https://github.com/dchelimsky/rspec/wiki/Topic-Branches) if it is of crucial importance - Use a descriptive title for the pull request and commits - You might be asked to do changes to your pull request, you can do that by just [updating the existing one](https://github.com/RichardLitt/docs/blob/master/amending-a-commit-guide.md) > Inspired by project [AVA](https://github.com/avajs/ava/blob/master/contributing.md)'s contributing.md ================================================ FILE: docs/readme.AL.md ================================================

Taskbook

Detyra, panele dhe shënime për mjedisin e linjës së komandës

Boards

Sponsorizuar nga:
Better Stack
Zbulo, Zgjidh dhe Parandaloni Kohën e Pushimit.
## Përshkrimi Duke përdorur një sintaksë përdorimi të thjeshtë dhe minimale, që kërkon një kurbë të sheshtë mësimi, taskbook ju mundëson të menaxhoni në mënyrë efektive detyrat dhe shënimet tuaja nëpër panele të shumta nga brenda terminalit tuaj. Të gjitha të dhënat shkruhen atomikisht në depozitë për të parandaluar korruptimet, dhe nuk ndahen kurrë me askënd ose asgjë. Artikujt e fshirë arkivohen automatikisht dhe mund të inspektohen ose rikthehen në çdo moment. Lexoni këtë dokument në: [English](https://github.com/klaudiosinani/taskbook/blob/master/readme.md), [Polski](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PL.md), [简体中文](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ZH.md), [Русский](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.RU.md), [Français](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.FR.md), [Deutsch](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.GER.md), [Portuguese](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PT-BR.md), [日本語](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.JP.md), [한국어](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.KR.md), [Spanish](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ES.md), [Bulgarian](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.BG.md). Tani mund të mbështetni procesin e zhvillimit përmes [GitHub Sponsors](https://github.com/sponsors/klaudiosinani). Vizitoni [contributing guidelines](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md#translating-documentation) për të mësuar më shumë se si të përktheni këtë dokument në më shumë gjuhë. ## Karakteristikat Kryesore - Organizoni detyrat dhe shënimet në panele - Shikime paneli dhe kronologjie - Mekanizma prioriteti dhe të preferuara - Kërkoni dhe filtroni artikujt - Arkivoni dhe riktheni artikujt e fshirë - I lehtë dhe i shpejtë - Të dhënat shkruhen atomikisht në depozitë - Vendndodhje e personalizuar depozitimi - Përmbledhje e progresit - Sintaksë përdorimi e thjeshtë dhe minimale - Njoftimet e përditësimeve - E konfigurueshme përmes `~/.taskbook.json` - Të dhënat ruhen në skedar JSON në `~/.taskbook/storage` Shihni karakteristikat kryesore në një [taskbook board](https://raw.githubusercontent.com/klaudiosinani/taskbook/master/media/highlights.png). ## Përmbajtja - [Përshkrimi](#përshkrimi) - [Karakteristikat Kryesore](#karakteristikat-kryesore) - [Instalimi](#instalimi) - [Përdorimi](#përdorimi) - [Shikimet](#shikimet) - [Konfigurimi](#konfigurimi) - [Manuali i Fluturimit](#manuali-i-fluturimit) - [Zhvillimi](#zhvillimi) - [Të Lidhura](#të-lidhura) - [Ekipi](#ekipi) - [Sponsorët](#sponsorët) - [Licenca](#licenca) ## Instalimi ### Yarn ```bash yarn global add taskbook ``` ### NPM ```bash npm install --global taskbook ``` ### Snapcraft ```bash snap install taskbook snap alias taskbook tb # set alias ``` **Shënim:** Për shkak të natyrës së rreptë të kufizuar të snap, edhe skedarët e depozitimit edhe ata të konfigurimit do të ruhen nën ndryshoren e mjedisit [`$SNAP_USER_DATA`](https://docs.snapcraft.io/reference/env) në vend të asaj generike `$HOME`. ## Përdorimi ``` $ tb --help Përdorimi $ tb [ ...] Opsionet none Shfaq shikimin e panelit --archive, -a Shfaq artikujt e arkivuar --begin, -b Fillo/ndalo detyrën --check, -c Shëno/hiq shenjën e detyrës --clear Fshij të gjithë artikujt e shënuar --copy, -y Kopjo përshkrimin e artikullit --delete, -d Fshij artikullin --edit, -e Redakto përshkrimin e artikullit --find, -f Kërko për artikuj --help, -h Shfaq mesazhin e ndihmës --list, -l Listo artikujt sipas atributeve --move, -m Lëviz artikullin midis paneleve --note, -n Krijo shënim --priority, -p Përditëso prioritetin e detyrës --restore, -r Rikthe artikujt nga arkiva --star, -s Vlerëso/hiq vlerësimin e artikullit --task, -t Krijo detyrë --timeline, -i Shfaq shikimin e kronologjisë --version, -v Shfaq versionin e instaluar Shembuj $ tb $ tb --archive $ tb --begin 2 3 $ tb --check 1 2 $ tb --clear $ tb --copy 1 2 3 $ tb --delete 4 $ tb --edit @3 Merge PR #42 $ tb --find documentation $ tb --list pending coding $ tb --move @1 cooking $ tb --note @coding Mergesort worse-case O(nlogn) $ tb --priority @3 2 $ tb --restore 4 $ tb --star 2 $ tb --task @coding @reviews Review PR #42 $ tb --task @coding Improve documentation $ tb --task Make some buttercream $ tb --timeline ``` ## Shikimet ### Shikimi i Panelit Thirrja e taskbook pa asnjë opsion do të shfaqë të gjithë artikujt e ruajtur të grupuar në panelet e tyre përkatëse.
Boards
### Shikimi i Kronologjisë Për të shfaqur të gjithë artikujt në një shikim kronologjie, të bazuar në datën e krijimit të tyre, mund të përdoret opsioni `--timeline`/`-i`.
Timeline View
## Konfigurimi Për të konfiguruar taskbook navigoni në skedarin `~/.taskbook.json` dhe modifikoni çdo opsion për t'u përshtatur me preferencën tuaj. Për t'u kthyer në vlerat e parazgjedhura, thjesht fshini skedarin e konfigurimit nga direktoria juaj kryesore. Sa më poshtë ilustron të gjitha opsionet e disponueshme me vlerat e tyre përkatëse të parazgjedhura. ```json { "taskbookDirectory": "~", "displayCompleteTasks": true, "displayProgressOverview": true } ``` ### Në Detaj ##### `taskbookDirectory` - Lloji: `String` - E parazgjedhur: `~` Rruga e sistemit të skedarëve ku do të inicializohet depozitimi, p.sh: `/home/username/the-cloud` ose `~/the-cloud` Nëse lihet e papërcaktuar do të përdoret direktoria kryesore `~` dhe taskbook do të vendoset nën `~/.taskbook/`. ##### `displayCompleteTasks` - Lloji: `Boolean` - E parazgjedhur: `true` Shfaq detyrat që janë shënuar si të përfunduara. ##### `displayProgressOverview` - Lloji: `Boolean` - E parazgjedhur: `true` Shfaq përmbledhjen e progresit poshtë shikimeve të kronologjisë dhe panelit. ## Manuali i Fluturimit Sa më poshtë është një udhëzues i vogël që përmban një grup shembujsh se si të përdorni taskbook. Në rast se zbuluat një gabim ose mendoni se një shembull nuk është mjaftueshëm i qartë dhe duhet përmirësuar më tej, ju lutemi mos hezitoni të hapni një [issue](https://github.com/klaudiosinani/taskbook/issues/new/choose) ose [pull request](https://github.com/klaudiosinani/taskbook/compare). ### Krijoni Detyrë Për të krijuar një detyrë të re përdorni opsionin `--task`/`-t` me përshkrimin e detyrës tuaj që vjen menjëherë pas. ``` $ tb -t Improve documentation ``` ### Krijoni Shënim Për të krijuar një shënim të ri përdorni opsionin `--note`/`-n` me përmbajtjen e shënimit tuaj që vjen menjëherë pas. ``` $ tb -n Mergesort worse-case O(nlogn) ``` ### Krijoni Panel Panelet inicializohen automatikisht kur krijoni një detyrë ose shënim të ri. Për të krijuar një ose më shumë panele, përfshini emrat e tyre, të parapriur nga simboli `@`, në përshkrimin e artikullit që do të krijohet. Si rezultat artikulli i krijuar rishtëm do t'i përkasë të gjithë paneleve të dhëna. Në mënyrë të parazgjedhur, artikujt që nuk përmbajnë asnjë emër paneli në përshkrimin e tyre shtohen automatikisht në qëllimin e përgjithshëm; `My Board`. ``` $ tb -t @coding @docs Update contributing guidelines ``` ### Shëno Detyrën Për të shënuar një detyrë si të përfunduar/të papërfundur, përdorni opsionin `--check`/`-c` të ndjekur nga identifikuesit e detyrave të synuara. Vini re se opsioni do të përditësojë në të kundërtën e tij statusin `complete` të detyrave të dhëna, kështu që shënimi i një detyre të përfunduar do ta bëjë atë në pritje dhe një detyrë në pritje si të përfunduar. Identifikuesit dublikatë filtrohen automatikisht. ``` $ tb -c 1 3 ``` ### Filloni Detyrën Për të shënuar një detyrë si të filluar/në pauzë, përdorni opsionin `--begin`/`-b` të ndjekur nga identifikuesit e detyrave të synuara. Funksionaliteti i këtij opsioni është i njëjtë me atë të opsionit `--check` të përshkruar më lart. ``` $ tb -b 2 3 ``` ### Vlerëso Artikullin Për të shënuar një ose më shumë artikuj si të preferuar, përdorni opsionin `--star`/`-s` të ndjekur nga identifikuesit e artikujve të synuar. Funksionaliteti i këtij opsioni është i njëjtë me atë të opsionit `--check` të përshkruar më lart. ``` $ tb -s 1 2 3 ``` ### Kopjo Përshkrimin e Artikullit Për të kopjuar në clipboard-in e sistemit tuaj përshkrimin e një ose më shumë artikujve, përdorni opsionin `--copy`/`-y` të ndjekur nga identifikuesit e artikujve të synuar. Vini re se opsioni do të përfshijë edhe karakterin e linjës së re si ndarës për çdo çift të përshkrimeve të kopjuara fqinje, duke rezultuar kështu në një grumbull të qartë dhe të lexueshëm frazash në ngjitje. ``` $ tb -y 1 2 3 ``` ### Shfaq Panelet Thirrja e taskbook pa asnjë opsion do të shfaqë të gjithë artikujt e ruajtur të grupuar në panelet e tyre përkatëse. ``` $ tb ``` ### Shfaq Kronologjinë Për të shfaqur të gjithë artikujt në një shikim kronologjie, të bazuar në datën e krijimit të tyre, mund të përdoret opsioni `--timeline`/`-i`. ``` $ tb -i ``` ### Caktoni Prioritetin Për të vendosur një nivel prioriteti për një detyrë gjatë inicializimit të saj, përfshini sintaksën `p:x` në përshkrimin e detyrës, ku x mund të jetë një numër i plotë me vlerë `1`, `2` ose `3`. Vini re se të gjitha detyrat në mënyrë të parazgjedhur krijohen me një prioritet normal - `1`. - `1` - Prioritet normal - `2` - Prioritet mesatar - `3` - Prioritet i lartë ``` $ tb -t @coding Fix issue `#42` p:3 ``` Për të përditësuar nivelin e prioritetit të një detyre specifike pas krijimit të saj, përdorni opsionin `--priority`/`-p` së bashku me identifikuesin e detyrës së synuar, të parapriur nga simboli `@`, dhe një numër të plotë me vlerë `1`, `2` ose `3`. Vini re se rendi në të cilin janë vendosur identifikuesi i synuar dhe niveli i prioritetit nuk është i rëndësishëm. ``` $ tb -p @1 2 ``` ### Lëvizni Artikullin Për të lëvizur një artikull në një ose më shumë panele, përdorni opsionin `--move`/`-m`, të ndjekur nga identifikuesi i artikullit të synuar, i parapriur nga simboli `@`, dhe emri i paneleve të destinacionit. Paneli i parazgjedhur `My board` mund të aksesohet përmes fjalës kyçe `myboard`. Rendi në të cilin janë vendosur identifikuesi i synuar dhe emrat e paneleve nuk është i rëndësishëm. ``` $ tb -m @1 myboard reviews ``` ### Fshij Artikullin Për të fshirë një ose më shumë artikuj, përdorni opsionet `--delete`/`-d` të ndjekura nga identifikuesit e artikujve të synuar. Vini re se artikujt e fshirë arkivohen automatikisht, dhe mund të inspektohen ose rikthehen në çdo moment. Identifikuesit dublikatë filtrohen automatikisht. ``` $ tb -d 1 2 ``` ### Fshij Detyrat e Shënuara Për të fshirë/pastruar të gjitha detyrat e përfunduara njëherësh në të gjitha panelet, përdorni opsionin `--clear`. Vini re se të gjitha detyrat e fshira arkivohen automatikisht, dhe mund të inspektohen ose rikthehen në çdo moment. Për të dekurajuar çdo përdorim të mundshëm aksidental, opsioni `--clear` nuk ka pseudonim më të shkurtër të disponueshëm. ``` $ tb --clear ``` ### Shfaq Arkivën Për të shfaqur të gjithë artikujt e arkivuar, përdorni opsionin `--archive`/`-a`. Vini re se të gjithë artikujt e arkivuar shfaqen në shikimin e kronologjisë, të bazuar në datën e krijimit të tyre. ``` $ tb -a ``` ### Riktheni Artikujt Për të rikthyer një ose më shumë artikuj, përdorni opsionin `--restore`/`-r` të ndjekur nga identifikuesit e artikujve të synuar. Vini re se identifikuesit e të gjithë artikujve të arkivuar mund të shihen kur thirret opsioni `--archive`/`-a`. Identifikuesit dublikatë filtrohen automatikisht. ``` $ tb -r 1 2 ``` ### Listo Artikujt Për të listuar një grup artikujsh ku çdo artikull përputhet me një grup specifik atributesh, përdorni opsionin `--list`/`-l` të ndjekur nga atributet e dëshiruara. Emrat e paneleve së bashku me tiparet e artikujve mund të konsiderohen atribute të vlefshme listimi. Për shembull për të listuar të gjithë artikujt që i përkasin `myboard` të parazgjedhur dhe janë detyra në pritje, mund të përdoret sa vijon; ``` $ tb -l myboard pending ``` Atributet e listimit të mbështetura në mënyrë të parazgjedhur, së bashku me pseudonimet e tyre përkatës, janë si vijon; - `myboard` - Artikuj që i përkasin `My board` - `task`, `tasks`, `todo` - Artikuj që janë detyra. - `note`, `notes` - Artikuj që janë shënime. - `pending`, `unchecked`, `incomplete` - Artikuj që janë detyra në pritje. - `progress`, `started`, `begun` - Artikuj që janë detyra në progres. - `done`, `checked`, `complete` - Artikuj që janë detyra të përfunduara. - `star`, `starred` - Artikuj që janë me vlerësim. ### Kërkoni Artikuj Për të kërkuar për një ose më shumë artikuj, përdorni opsionin `--find`/`-f`, të ndjekur nga termat tuaj të kërkimit. ``` $ tb -f documentation ``` ## Zhvillimi Për më shumë informacion se si të kontribuoni në projekt, ju lutemi lexoni [contributing guidelines](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md). - Bëni fork të repository dhe klonojeni në makinën tuaj - Navigoni në fork-un tuaj lokal: `cd taskbook` - Instaloni varësitë e projektit: `npm install` ose `yarn install` - Kontrolloni kodin për gabime: `npm test` ose `yarn test` ## Të Lidhura - [signale](https://github.com/klaudiosinani/signale) - Utilitet regjistrimi shumë i konfigurueshëm - [qoa](https://github.com/klaudiosinani/qoa) - Porosi minimale interaktive të linjës së komandës - [hyperocean](https://github.com/klaudiosinani/hyperocean) - Temë e thellë blu oqeanike për terminalin Hyper ## Ekipi - Klaudio Sinani [(@klaudiosinani)](https://github.com/klaudiosinani) - Mario Sinani [(@mariosinani)](https://github.com/mariosinani) ## Sponsorët Falëminderit të madh të gjithë njerëzve dhe kompanive që mbështesin punën tonë të Kodit të Hapur: - [Better Stack: Zbulo, Zgjidh dhe Parandaloni Kohën e Pushimit.](https://betterstack.com/) ## Licenca [MIT](https://github.com/klaudiosinani/taskbook/blob/master/license.md) ================================================ FILE: docs/readme.BG.md ================================================

Taskbook

Задачи, табла & бележки за командния ред

Boards

Build Status

## Описание Чрез използване на прост и минимален синтаксис на употреба, който изисква линеен път на обучение, taskbook Ви позволява ефективно да управлявате вашите задачи и бележки сред множество табла, в терминалната среда. Цялата информация бива автоматично записана в хранилището, с цел да предотврати повреди, и никога не бива споделено с никого или други. Изтритите елементи биват автоматично архивирани и могат да бъдат инспектирани или възстановени във всеки един момент. Прочетете този документ на: [Albanian - Shqip](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.AL.md), [Polski](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PL.md), [简体中文](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ZH.md), [Русский](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.RU.md), [Français](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.FR.md), [Deutsch](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.GER.md), [Portuguese](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PT-BR.md), [日本語](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.JP.md), [한국어](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.KR.md), [Spanish](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ES.md). Вие вече можете да подкрепите етапа на разработка чрез [GitHub Sponsors](https://github.com/sponsors/klaudiosinani). Посетете [contributing guidelines](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md#translating-documentation) за да узнаете повече как да преведете този документ на повече езици. ## Акценти - Организирай задания & бележки към табла - Изгледи Табла & времева линия - Механизми за Приоритет & любими - Търси & филтрирай елементи - Архивирай & възстанови изтрити елементи - Лек & бърз - Данните биват атомично записани за съхранение - Персонални местоположения за съхранение - Изглед Прогрес - Елементарен & минимален синтаксис за употреба - Обновяване на известията - Конфигуриране чрез `~/.taskbook.json` - Данните се съхраняват в JSON файл на адрес `~/.taskbook/storage` Вижте акценти в [taskbook board](https://raw.githubusercontent.com/klaudiosinani/taskbook/master/media/highlights.png). ## Съдържание - [Описание](#описание) - [Акценти](#акценти) - [Инсталиране](#инсталиране) - [Употреба](#употреба) - [Изгледи](#изгледи) - [Конфигурация](#конфигурация) - [Ръководство за полети](#ръководство-полети) - [Разработка](#разработка) - [Свързани](#свързани) - [Отбор](#отбор) - [Лиценз](#лиценз) ## Инсталиране ### Yarn ```bash yarn global add taskbook ``` ### NPM ```bash npm install --global taskbook ``` ### Snapcraft ```bash snap install taskbook snap alias taskbook tb # set alias ``` **Note:** Поради специфичната природа на снап пакетите, съхраняваните & конфигурационни данни ще бъдат записвани под [`$SNAP_USER_DATA`](https://docs.snapcraft.io/reference/env) променлива вместо общата `$HOME` такава. ## Употреба ``` $ tb --help Usage $ tb [ ...] Опции none Покажи Изглед табло --archive, -a Покажи архивирани елементи --begin, -b Старт/пауза задача --check, -c Маркирай/Де-маркирай задачи --clear Изтрий всички маркирани елементи --copy, -y Копирай описание на елемент --delete, -d Изтрий елемент --edit, -e Редактирай описание на елемент --find, -f Търси елементи --help, -h Покажи помощно съобщение --list, -l Подреди елементи по атрибути --move, -m Премести елемент между табла --note, -n Създай бележка --priority, -p Обнови приоритет на задача --restore, -r Възстанови елементи от архива --star, -s Сложи звезда/махни звезда --task, -t Създай задача --timeline, -i Покажи Изглед Времева линия --version, -v Покажи инсталирана версия Примери $ tb $ tb --archive $ tb --begin 2 3 $ tb --check 1 2 $ tb --clear $ tb --copy 1 2 3 $ tb --delete 4 $ tb --edit @3 Merge PR #42 $ tb --find documentation $ tb --list pending coding $ tb --move @1 cooking $ tb --note @coding Mergesort worse-case O(nlogn) $ tb --priority @3 2 $ tb --restore 4 $ tb --star 2 $ tb --task @coding @reviews Review PR #42 $ tb --task @coding Improve documentation $ tb --task Make some buttercream $ tb --timeline ``` ## Изгледи ### Изглед табло Извикването на taskbook без каквито и да е аргументи ще покаже всички съхранени елементи, групирани в техните респективни табла.
Boards
### Изглед Времева линия За да покажете всички елементи във времеви изглед, базирано на тяхната дата на създаване, `--timeline`/`-i` трябва да бъде използван.
Timeline View
## Конфигурация За да настройте taskbook навигирайте до `~/.taskbook.json` файлът и модифицирайте всеки от атрибутите според предпочитанията ви. За нулиране до стойности по подразбиране, просто изтрийте конфигурационния файл от домашната ви директория. Следната илюстрация показва нагледно всички налични опции и респективно техните стойности по подразбиране. ```json { "taskbookDirectory": "~", "displayCompleteTasks": true, "displayProgressOverview": true } ``` ### В Детайл ##### `taskbookDirectory` - Type: `String` - Default: `~` Файлов път - системен за инициализиране, напр.: `/home/username/the-cloud` или `~/the-cloud` Ако бъде оставено празно, домашната папка `~` ще бъде зададено и настроено на `~/.taskbook/`. ##### `displayCompleteTasks` - Type: `Boolean` - Default: `true` Покажи изпълнени задачи. ##### `displayProgressOverview` - Type: `Boolean` - Default: `true` Покажи прогреса под времевата линия и изглед табло. ## Изглед за полети Следното е малко въведение, съдържащо редица примери как да използвате програмата. Ако откриете грешка или мислите че определен пример не е достатъчно ясен можете за подадете сигнал за проблем на [issue](https://github.com/klaudiosinani/taskbook/issues/new/choose) или [pull request](https://github.com/klaudiosinani/taskbook/compare). ### Създай задача За създаване на нова задача, ползвай `--task`/`-t` опция с описание следващо веднага след. ``` $ tb -t Improve documentation ``` ### Създай бележка За нова бележкар ползвай `--note`/`-n` опция с тяло на бележката веднага след. ``` $ tb -n Mergesort worse-case O(nlogn) ``` ### Създай табло Таблата биват автоматично инициализирани при създаване на нова задачи или бележка. За 1 или повече табла, добавете техните имена разделени с префикс `@` символ, в описанието на бъдещата задача за създаване. Като резултат ново създадения елемент ще принадлежи към всички описани табла. По подразбиране ако липсва име на табло, ще получите стандартното; `My Board`. ``` $ tb -t @coding @docs Update contributing guidelines ``` ### Провери задача За маркиране на задача като завършена/незавършена, използвай `--check`/`-c` опция последвана от ид на желаната задача. Имайте предвид че опцията ще се обнови до антонима си — статус ‘завършено’, като маркиране на завършена задача ще се преобразува като изчакваща, а тя от своя страна като завършена. Дублиращи се ид се филтрират автоматично. ``` $ tb -c 1 3 ``` ### Започни задача За отбелязване на задача като започната/на пауза, използвайте `--begin`/`-b` опция последвано от ид на желаните задачи. Функционалността на тази опция е същата като горе-споменатата `--check` option. ``` $ tb -b 2 3 ``` ### Сложи звезда За отбелязване на един или повече елемента като любим, използвайте `--star`/`-s` опция последвано от ид на желаните задачи. Функционалността на тази опция е същата като горе-споменатата `--check` option. ``` $ tb -s 1 2 3 ``` ### Копирай описание на елемент За копиране в клипборда използвай `--copy`/`-y` последвана от ид на желаните елемента. Опцията включва също и знакът за нов ред като разделител на всяка двойка описание, което води до изчистен и лесно за прочитане формат при поставяне. ``` $ tb -y 1 2 3 ``` ### Покажи табла Влагането на taskbook без никакви аргументи ще покаже всички съхранени елементи, групирани в своите табла. ``` $ tb ``` ### Покажи времева линия За да видите всички елементи под формата на времеви отрязък, на база дата на създаване, `--timeline`/`-i` опция може да бъде използвана. ``` $ tb -i ``` ### Задай Приоритет За задаване на ниво приоритет, прибавете `p:x` в описанието на задачата, където x може да бъде цяло число със стойност `1`, `2` или `3`. Забележете че всички задачи се създават с приоритет нормално - `1`. - `1` - Нормален приоритет - `2` - Среден приоритет - `3` - Висок приоритет ``` $ tb -t @coding Fix issue `#42` p:3 ``` За обновяване на нивото на приоритет на отделна задача след нейното създаване, използвайте `--priority`/`-p` опция заедно с ид на желаната задача, с префикс `@` символ и цяло число със стойност `1`, `2` or `3`. Имайте предвид че реда на поставяне ид на конкретната задача и нивото на приоритет не са от значение. ``` $ tb -p @1 2 ``` ### Премести елемент За преместване на елемент към един или повече табла, използвайте `--move`/`-m` опция, последвана от ид на желания елемент както и името на борда – дестинация. По подразбиране `My board` може да бъде извикан с ключова дума `myboard`. Редът на ид и името на борда не са от значение. ``` $ tb -m @1 myboard reviews ``` ### Изтриване на елемент За изтриване на един или повече елемента, използвайте `--delete`/`-d` опция последвана от ид на желаните елементи. Имайте предвид че изтритите елементи биват архивирани автоматично и могат да бъдат инспектирани или възстановени във всеки един момент. Дублирани елементи се филтрират автоматично. ``` $ tb -d 1 2 ``` ### Изтриване на маркирани елементи За изтриване/изчистване на завършени задачи наведнъж сред всички табла, използвайте опцията `--clear`. Забележете че всички изтрити задачи се архивират автоматично и могат да бъдат инспектирани или възстановени по-всяко време. За да се избегнат инциденти се използва флаг `--clear` в пълна форма и той няма аналог. ``` $ tb --clear ``` ### Покажи Архив За преглед на всички архивирани елементи, използвайте `--archive`/`-a` опция. Моля имайте предвид че всички архивирани елементи се показват в изглед Времева линия, на базата на датата на създаването им. ``` $ tb -a ``` ### Възстанови елементи За възстановяване на един или повече елемента, използвайте `--restore`/`-r` опция, последвана от ид на желаните елементи. Моля вземете предвид че всички архивирани елементи могат да бъдат видени при вмъкване на `--archive`/`-a` опция. Дублиращи се ид се филтрират автоматично. ``` $ tb -r 1 2 ``` ### Елементи от списъка За да видите списъка с елементи, групирани по даден показател, използвайте опция `--list`/`-l` последвана от желаните атрибути. Имената на таблата, заедно с техните детайли се считат за валидни опции. Например за списък с всички елементи които принадлежат на списъка по-подразбиране `myboard` и техните прилежащи задачи, следното може да се използва; ``` $ tb -l myboard pending ``` Предстоящите представляват атрибути по-подразбиране, заедно с техните опции, както следва; - `myboard` - Елементи които принадлежат към `My board` - `task`, `tasks`, `todo` - Елементи, тип задачи. - `note`, `notes` - Елементи, тип бележки. - `pending`, `unchecked`, `incomplete` - Елементи, които са тип Изчакващи. - `progress`, `started`, `begun` - Елементи, представляващи задачи "В процес на". - `done`, `checked`, `complete` - Елементи, от типа Завършени задачи. - `star`, `starred` - Елементи с звезда „любими„. ### Търси елементи За търсене на един или повече елементи, използвайте `--find`/`-f` опция, последвана от вашият низ за търсене. ``` $ tb -f documentation ``` ## Разработка За детайли как да помогнете на този проект, моля прочетете [contributing guidelines](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md). - Изберете "Форк" за това хранилище и клонирайте към своята машина. - Навигирайте към локалното място на съхранение за проекта: `cd taskbook` - Инсталирайте необходимите зависимости: `npm install` или `yarn install` - Провери кода за грешки: `npm test` или `yarn test` ## Свързани - [signale](https://github.com/klaudiosinani/signale) - Силно конфигурируема помощна програма за регистриране - [qoa](https://github.com/klaudiosinani/qoa) - Минимални интерактивни подкани тип команден прозорец - [hyperocean](https://github.com/klaudiosinani/hyperocean) - Дълбочинно синьо-океанска тема с терминал Хипер ## Отбор - Klaudio Sinani [(@klaudiosinani)](https://github.com/klaudiosinani) - Mario Sinani [(@mariosinani)](https://github.com/mariosinani) ## Лиценз [MIT](https://github.com/klaudiosinani/taskbook/blob/master/license.md) ================================================ FILE: docs/readme.ES.md ================================================

Taskbook

Tareas, tableros y notas para el mundo de líneas de comandos

Boards

Build Status

## Descripción Al utilizar una sintaxis mínima y de uso simple —que requiere una curva de aprendizaje plana—, taskbook te permite administrar, de manera efectiva, tus tareas y notas en múltiples tableros desde tu terminal. Todos los datos se escriben en el almacenamiento, de forma atómica, para prevenir la corrupción de los mismos; y nunca son compartidos con nadie ni con nada. Los elementos eliminados se archivan automáticamente y se pueden inspeccionar o restaurar en cualquier momento. Lee este documento en: [Albanian - Shqip](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.AL.md), [Polski](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PL.md), [English](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.md), [简体中文](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ZH.md), [Русский](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.RU.md), [Français](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.FR.md), [Deutsch](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.GER.md), [Portuguese](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PT-BR.md), [日本語](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.JP.md), [한국어](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.KR.md). Ahora puedes apoyar el proceso de desarrollo a través de [GitHub Sponsors](https://github.com/sponsors/klaudiosinani). Visita la [guía de contribuciones](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md#translating-documentation) para obtener más información sobre cómo traducir este documento a más idiomas. ## Funciones destacadas - Organiza tareas y notas en tableros - Vistas de tablero y línea de tiempo - Mecanismos de prioridad y favoritos - Busca y filtra elementos - Archiva y restaura elementos eliminados - Ligero y rápido - Datos escritos de forma atómica en el almacenamiento - Ubicación personalizada de almacenamiento - Resumen de progreso - Sintaxis de uso simple y mínimo - Notificación de actualizaciones - Configurable mediante `~/.taskbook.json` - Datos almacenados en un archivo JSON en `~/.taskbook/storage` Mira las funciones destacadas en un [tablero de taskbook](https://raw.githubusercontent.com/klaudiosinani/taskbook/master/media/highlights.png). ## Contenido - [Descripción](#descripción) - [Funciones destacadas](#funciones-destacadas) - [Contenido](#contenido) - [Instalación](#instalación) - [Yarn](#yarn) - [NPM](#npm) - [Snapcraft](#snapcraft) - [Uso](#uso) - [Vistas](#vistas) - [Vista de tablero](#vista-de-tablero) - [Vista de línea de tiempo](#vista-de-línea-de-tiempo) - [Configuración](#configuración) - [Configuración detallada](#configuración-detallada) - [`taskbookDirectory`](#taskbookdirectory) - [`displayCompleteTasks`](#displaycompletetasks) - [`displayProgressOverview`](#displayprogressoverview) - [Manual de vuelo](#manual-de-vuelo) - [Crear tarea](#crear-tarea) - [Crear nota](#crear-nota) - [Crear tablero](#crear-tablero) - [Marcar tarea](#marcar-tarea) - [Iniciar tarea](#iniciar-tarea) - [Marcar elemento como favorito](#marcar-elemento-como-favorito) - [Copiar descripción de un elemento](#copiar-descripción-de-un-elemento) - [Mostrar tableros](#mostrar-tableros) - [Mostrar línea de tiempo](#mostrar-línea-de-tiempo) - [Establecer prioridad](#establecer-prioridad) - [Mover elemento](#mover-elemento) - [Eliminar elemento](#eliminar-elemento) - [Eliminar tareas marcadas](#eliminar-tareas-marcadas) - [Ver elementos archivados](#ver-elementos-archivados) - [Restaurar elementos archivados](#restaurar-elementos-archivados) - [Listar elementos](#listar-elementos) - [Artículos de búsqueda](#artículos-de-búsqueda) - [Desarrollo](#desarrollo) - [Relacionado](#relacionado) - [Equipo](#equipo) - [Licencia](#licencia) ## Instalación ### Yarn ```bash yarn global add taskbook ``` ### NPM ```bash npm install --global taskbook ``` ### Snapcraft ```bash snap install taskbook snap alias taskbook tb # set alias ``` **Nota:** Debido a la naturaleza estrictamente confinada de _snap_, tanto los archivos de almacenamiento como los de configuración se guardarán en la variable de entorno [`$SNAP_USER_DATA`](https://docs.snapcraft.io/reference/env), en lugar de la genérica (`$HOME`). ## Uso ``` $ tb --help Usage $ tb [ ...] Options ninguna Mostrar vista de tablero --archive, -a Mostrar elementos archivados --begin, -b Iniciar/pausar tarea --check, -c Marcar/desmarcar tarea --clear Eliminar todos los elementos marcados --copy, -y Copiar descripción de una tarea --delete, -d Eliminar tarea --edit, -e Editar descripción de una tarea --find, -f Buscar tareas --help, -h Mostrar mensaje de ayuda --list, -l Listar tareas por atributos --move, -m Mover tarea entre tableros --note, -n Crear nota --priority, -p Actualizar la prioridad de una tarea --restore, -r Restaurar elementos archivados --star, -s Agregar/remover tarea a/de favoritos --task, -t Crear tarea --timeline, -i Mostrar vista de línea de tiempo --version, -v Mostrar versión instalada Examples $ tb $ tb --archive $ tb --begin 2 3 $ tb --check 1 2 $ tb --clear $ tb --copy 1 2 3 $ tb --delete 4 $ tb --edit @3 Merge PR #42 $ tb --find documentation $ tb --list pending coding $ tb --move @1 cooking $ tb --note @coding Mergesort worse-case O(nlogn) $ tb --priority @3 2 $ tb --restore 4 $ tb --star 2 $ tb --task @coding @reviews Review PR #42 $ tb --task @coding Improve documentation $ tb --task Make some buttercream $ tb --timeline ``` ## Vistas ### Vista de tablero Invocar taskbook sin ninguna opción mostrará todos los elementos guardados agrupados en sus respectivos tableros.
Boards
### Vista de línea de tiempo Para mostrar todos los elementos en una vista de línea de tiempo, según su fecha de creación, puedes usar la opción `--timeline`/`-i`.
Timeline View
## Configuración Para configurar taskbook, localiza el archivo `~/.taskbook.json` y modifica cualquiera de las opciones acorde a tus preferencias. Para restablecer los valores predeterminados, simplemente elimina el archivo de configuración de tu directorio raíz. A continuación, se ilustran todas las opciones disponibles con sus correspondientes valores predeterminados. ```json { "taskbookDirectory": "~", "displayCompleteTasks": true, "displayProgressOverview": true } ``` ### Configuración detallada ##### `taskbookDirectory` - Tipo: `String` - Valor predeterminado: `~` Ruta del sistema de archivos donde se inicializará el almacenamiento, por ejemplo: `/home/username/the-cloud` o `~/the-cloud` Si no se define, se utilizará el directorio raíz `~` y taskbook se configurará en `~/.taskbook/`. ##### `displayCompleteTasks` - Tipo: `Boolean` - Valor predeterminado: `true` Muestra las tareas marcadas como completadas. ##### `displayProgressOverview` - Tipo: `Boolean` - Valor predeterminado: `true` Muestra una descripción general del progreso debajo de las vistas de línea de tiempo y de tablero. ## Manual de vuelo El siguiente es un tutorial sencillo, compuesto de varios ejemplos sobre cómo usar taskbook. En caso de que encuentres un error o consideres que un ejemplo no es lo suficientemente claro y debería mejorarse, no dudes en abrir un [_issue_](https://github.com/klaudiosinani/taskbook/issues/new/choose) o [_pull request_](https://github.com/klaudiosinani/taskbook/compare). ### Crear tarea Para crear una nueva tarea, usa la opción `--task`/`-t` seguida de la descripción de la tarea. ```bash $ tb -t Mejorar documentación ``` ### Crear nota Para crear una nueva nota, usa la opción `--note`/`-n` seguida del contenido de la nota. ```bash $ tb -n Mergesort worse-case O(nlogn) ``` ### Crear tablero Los tableros se inicializan automáticamente al crear una nueva tarea o nota. Para crear uno o más tableros, incluye su(s) nombre(s), precedido(s) por el símbolo `@`, en la descripción del elemento que está a punto de crearse. Como resultado, el elemento recién creado pertenecerá a todos los tableros referenciados. De forma predeterminada, los elementos que no incluyen el nombre de ningún tablero en su descripción, se agregan automáticamente al tablero de uso general: `My Board`. ```bash $ tb -t @coding @docs Actualizar las guías de contribución ``` ### Marcar tarea Para marcar una tarea como completa/incompleta, usa la opción `--check`/`-c` seguida de los identificadores de las tareas a modificar. Ten en cuenta que esta opción actualizará el estado `complete` de las tareas dadas a su valor opuesto, por lo que al usar esta opción con una tarea completa, esta se marcará como pendiente y una tarea pendiente se marcará como completa. Los IDs duplicados se filtran automáticamente. ```bash $ tb -c 1 3 ``` ### Iniciar tarea Para marcar una tarea como iniciada/pausada, usa la opción `--begin`/`-b` seguida de los identificadores de las tareas a marcar. La funcionalidad de esta opción es la misma que la de la opción `--check` descrita anteriormente. ```bash $ tb -b 2 3 ``` ### Marcar elemento como favorito Para marcar uno o más elementos como favoritos, usa la opción `--star`/`-s` seguida de los identificadores de los elementos a marcar. La funcionalidad de esta opción es la misma que la de la opción `--check` descrita anteriormente. ```bash $ tb -s 1 2 3 ``` ### Copiar descripción de un elemento Para copiar al portapapeles de tu sistema la descripción de uno o más elementos, utiliza la opción `--copy`/`-y`, seguida de los identificadores de los elementos a copiar. Ten en cuenta que esta opción también incluirá el caracter de nueva línea como separador de cada par de descripciones copiadas adyacentes, lo que dará como resultado una lista clara y legible de oraciones al pegar. ```bash $ tb -y 1 2 3 ``` ### Mostrar tableros Al invocar taskbook sin ninguna opción, se mostrarán todos los elementos guardados agrupados en sus respectivos tableros. ```bash $ tb ``` ### Mostrar línea de tiempo Para mostrar todos los elementos en una vista de línea de tiempo, según su fecha de creación, puedes usar la opción `--timeline`/`-i`. ```bash $ tb -i ``` ### Establecer prioridad Para establecer el nivel de prioridad de una tarea durante su creación, incluye la sintaxis `p:x` en la descripción de la tarea, donde `x` puede ser un número entero de valor `1`, `2` o `3`. Ten en cuenta que todas las tareas se crean de forma predeterminada con una prioridad normal, es decir, `1`. - `1` - Prioridad normal - `2` - Prioridad media - `3` - Prioridad alta ```bash $ tb -t @coding Fix issue `#42` p:3 ``` Para actualizar la prioridad de una tarea específica después de su creación, usa la opción `--priority`/`-p` junto con el ID de la tarea a actualizar —precedido por el símbolo `@`—, seguida de un número entero de valor `1` , `2` o `3` (como nueva prioridad). Ten en cuenta que el orden en el que se colocan el ID de la tarea a editar y el nuevo nivel de prioridad no es significativo. ```bash $ tb -p @1 2 ``` ### Mover elemento Para mover una elemento a uno o más tableros, usa la opción `--move`/`-m`, junto con el ID del elemento a mover —precedido por el símbolo `@`—, y el nombre de los tableros de destino. Se puede acceder al tablero predeterminado, `My board`, a través de la palabra clave `myboard`. El orden en el que se colocan el ID del elemento a mover y el(los) nombre(s) de l(os) tablero(s) no es significativo. ```bash $ tb -m @1 myboard reviews ``` ### Eliminar elemento Para eliminar uno o más elementos, usa la opción `--delete`/`-d`, seguida de los identificadores de los elementos a eliminar. Ten en cuenta que los elementos eliminados se archivan automáticamente y se pueden inspeccionar o restaurar en cualquier momento. Los IDs duplicados se filtran automáticamente. ```bash $ tb -d 1 2 ``` ### Eliminar tareas marcadas Para eliminar/borrar todas las tareas completas —a la vez— de todos los tableros, usa la opción `--clear`. Ten en cuenta que todas las tareas eliminadas se archivan automáticamente y se pueden inspeccionar o restaurar en cualquier momento. Con el fin de prevenir cualquier posible uso accidental, no existe un alias más corto para la opción `--clear`. ```bash $ tb --clear ``` ### Ver elementos archivados Para ver todos los elementos archivados, usa la opción `--archive`/`-a`. Ten en cuenta que todos los elementos archivados se muestran en la vista de línea de tiempo, según su fecha de creación. ```bash $ tb -a ``` ### Restaurar elementos archivados Para restaurar uno o más elementos, usa la opción `--restore`/`-r` seguida de los identificadores de los elementos a restaurar. Ten en cuenta que los IDs de todos los elementos archivados se pueden ver al invocar la opción `--archive`/`-a`. Los IDs duplicados se filtran automáticamente. ```bash $ tb -r 1 2 ``` ### Listar elementos Para listar un grupo de elementos donde cada uno cumple con un conjunto específico de atributos, usa la opción `--list`/`-l` seguida de los atributos requeridos. Los nombres de los tableros junto con los estados de los elementos a listar, se consideran atributos válidos. Por ejemplo, para listar todos los elementos que pertenecen al tablero predeterminado (`myboard`) y que son tareas pendientes, se podría usar lo siguiente: ```bash $ tb -l myboard pending ``` Los atributos admitidos por defecto, junto con sus respectivos alias, son los siguientes - `myboard` - Tareas que pertencen a `My board`. - `task`, `tasks`, `todo` - Elementos que son tareas. - `note`, `notes` - Elementos que son notas. - `pending`, `unchecked`, `incomplete` - Elementos que son tareas pendientes. - `progress`, `started`, `begun` - Elementos que son tareas en progreso. - `done`, `checked`, `complete` - Elementos que son tareas completadas. - `star`, `starred` - Elementos favoritos. ### Artículos de búsqueda Para buscar uno o más elementos, usa la opción `--find`/`-f`, seguida de tus términos de búsqueda. ```bash $ tb -f documentation ``` ## Desarrollo Para más información sobre cómo contribuir al proyecto, lee las [guías de contribución](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md). - Haz un _fork_ del repositorio y clónalo en tu computadora - Navega a tu _fork_ local: `cd taskbook` - Instala las dependencias del proyecto: `npm install` o `yarn install` - Escanea (_lint_) el código en busca de errores: `npm test` o `yarn test` ## Relacionado - [signale](https://github.com/klaudiosinani/signale) - Utilidad de registro altamente configurable - [qoa](https://github.com/klaudiosinani/qoa) - Indicaciones de línea de comandos interactivas y minimalista - [hyperocean](https://github.com/klaudiosinani/hyperocean) - Deep oceanic blue, tema para el terminal Hyper ## Equipo - Klaudio Sinani [(@klaudiosinani)](https://github.com/klaudiosinani) - Mario Sinani [(@mariosinani)](https://github.com/mariosinani) ## Licencia [MIT](https://github.com/klaudiosinani/taskbook/blob/master/license.md) ================================================ FILE: docs/readme.FR.md ================================================

Taskbook

📓 Tâches, tableaux et notes utilisables dans un invité de commande.

Boards

Build Status

## Présentation En utilisant une syntaxe simple et minimaliste, rendant son apprentissage plus efficace, taskbook vous permet de gérer efficacement vos tâches et vos notes via plusieurs tableaux dans le terminal. Toutes les données sont automatiquement écrites dans un fichier de stockage afin d'éviter toutes corruptions de celles-ci. Elles ne sont jamais partagées à qui que ce soit. Toutes les tâches et notes sont automatiquement archivées et peuvent être consultées ou restaurées à tout moment. Lire la documentation en : [Albanian - Shqip](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.AL.md), [Polski](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PL.md), [简体中文](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ZH.md), [Русский](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.RU.md), [Français](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.FR.md). Vous pouvez visiter le [guide de contribution](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md#translating-documentation) pour en savoir plus sur la traduction de ce document dans d'autres langages. ## Points forts - Organiser des tâches & des notes sur des tableaux - Vues tableau & frise chronologique - Fonctionnalités de priorité & de favori - Recherche & filtre de tâches et de notes - Archivage & restauration des tâches et des notes supprimées - Léger & rapide - Données écrites automatiquement dans l'emplacement de stockage - Emplacement de stockage personnalisable - Vue d'ensemble sur les progrés - Syntaxe simple & minimaliste - Notifications de mise à jour - Configurable via `~/.taskbook.json` - Données stockées dans le fichier JSON `~/.taskbook/storage` Image des points forts dans [tableau taskbook](https://raw.githubusercontent.com/klaudiosinani/taskbook/master/media/highlights.png) en anglais. ## Sommaire - [Présentation](#présentation) - [Points forts](#points-forts) - [Installation](#installation) - [Utilisation](#utilisation) - [Vues](#vues) - [Configuration](#configuration) - [Manuel de vol](#manuel-de-vol) - [Développement](#développement) - [Applications associées](#applications-associées) - [Équipe](#équipe) - [License](#license) ## Installation ### NPM ```bash npm install --global taskbook ``` ### Snapcraft ```bash snap install taskbook snap alias taskbook tb # set alias ``` **Note:** À cause du confinement naturel de snap, les fichiers de stockage et de configuration seront sauvegardés sous la variable d'environnement [`$SNAP_USER_DATA`](https://docs.snapcraft.io/reference/env) à la place du `$HOME` habituel. ## Utilisation ``` $ tb --help Usage $ tb [ ...] Options none Affiche la vue tableau --task, -t Créé une tâche --note, -n Créé une note --timeline, -i Affiche la vue frise chronologique --delete, -d Supprime une tâche ou une note --check, -c Coche/décoche une tâche --star, -s Ajoute aux favoris/Supprime des favoris une tâche ou une note --copy, -y Copie la description d'une tâche ou d'une note --list, -l Liste les tâches et les notes par attributs --find, -f Cherche une tâche ou une note --edit, -e Modifie la description d'une tâche ou d'une note --move, -m Déplace une tâche ou une note entre des tableaux --priority, -p Met à jour la priorité d'une tâche --archive, -a Affiche les tâches et les notes qui sont archivées --restore, -r Restaure les tâches et notes qui sont dans l'archive --clear Supprime toutes les tâches et notes cochées --help, -h Affiche le message d'aide --version, -v Affiche la version de taskbook Examples $ tb $ tb --task Preparer de la creme glacee $ tb --task @coding Ameliorer la documentation $ tb --task @coding @reviews Revue PR #42 $ tb --note @coding Trie avec fusion est dans le pire cas de complexite O(nlogn) $ tb --check 1 2 $ tb --delete 4 $ tb --star 2 $ tb --copy 1 2 3 $ tb --priority @3 2 $ tb --timeline $ tb --edit @3 Fusionner PR #42 $ tb --move @1 cuisinner $ tb --find documentation $ tb --list pending coding $ tb --archive $ tb --restore 4 $ tb --clear ``` ## Vues ### Vue Tableau Appeler taskbook sans option affichera toutes les tâches et notes sauvegardées dans leurs tableaux respectifs.
Boards
### Vue Frise Chronologique Afin d'afficher toutes les tâches et notes dans la vue Frise Chronologique, en se basant sur leurs date de création, utilisez l'option `--timeline`/`-i`.
Timeline View
## Configuration Pour configurer taskbook, il faut se rendre dans le fichier `~/.taskbook.json` et modifier les options afin de s'adapater au mieux à vos préférences. Pour restaurer la configuration par défaut, il suffit de supprimer le fichier de configuration de votre répertoire personnel (home). Le JSON suivant illustre l'ensemble des options existantes avec leurs valeurs par défaut respectives. ```json { "taskbookDirectory": "~", "displayCompleteTasks": true, "displayProgressOverview": true } ``` ### En détail ##### `taskbookDirectory` - Type: `String` - Par défaut: `~` Le chemin dans l'arborescence des fichiers où le stockage sera initialisé sera `/home/username/the-cloud` ou `~/the-cloud` S'il n'est pas défini, le répertoire personnel (home) `~` sera utilisé et taskbook sera installé sous `~/.taskbook/`. ##### `displayCompleteTasks` - Type: `Boolean` - Par défaut: `true` Affiche les tâches qui sont marquées comme completées. ##### `displayProgressOverview` - Type: `Boolean` - Par défaut: `true` Affiche la vue d'ensemble sur la progression en dessous des vues de frise chronologiques et de tableaux. ## Manuel de vol Ce qui va suivre est un guide d'exemple permettant de mieux comprendre comment utiliser taskbook. Dans le cas où vous auriez remarqué une erreur ou que vous pensez que les exemples ne sont pas assez clair, qu'ils devraient être améliorés, alors n'hésitez pas à ouvrir une [issue](https://github.com/klaudiosinani/taskbook/issues/new/choose) ou une [pull request](https://github.com/klaudiosinani/taskbook/compare). ### Créer une tâche Pour créer une nouvelle tâche, utilisez l'option `--task`/`-t` suivi de la description de la tâche. ``` $ tb -t Ameliorer la documentation ``` ### Créer une note Pour créer une nouvelle note, utilisez l'option `--note`/`-n` suivi du contenu de la note. ``` $ tb -n Tri par fusion pire cas O(nlogn) ``` ### Créer un tableau Les tableaux sont automatiquement initialisés lorsque l'on créé une nouvelle tâche ou une nouvelle note. Pour créer un ou plusieurs tableaux, ajoutez leurs noms préfixé du symbole `@`, dans la description de la tâche ou de la note qui va être créée. Par conséquent, la nouvelle tâche ou la nouvelle note appartiendra à l'ensemble des tableaux mentionnés. Par défaut, les tâches ou les notes qui ne possèdent pas de tableau dans leurs descriptions sont automatiquements ajoutés au tableau général `My Board`. ``` $ tb -t @coding @docs Mettre à jour le guide de contribution ``` ### Valider une tâche Pour passer une tâche à complété ou non complété, utilisez l'option `--check`/`-c` suivi par les identifiants des tâches sélectionnées. Il est à noter que l'option va inverser le statut actuel de complétion de la tâche, ainsi une tâche incomplète sera passé à complète et une tâche complète à incomplète. S'il existe des duplicatas d'identifiants, ils seront automatiquement filtrés. ``` $ tb -c 1 3 ``` ### Ajouter une tâche ou une note aux favoris Pour ajouter une ou plusieurs tâches/notes aux favoris, utilisez l'option `--star`/`-s` suivi des identifiants des tâches/notes sélectionnées. Les fonctionnalités de cette option sont les mêmes que celles décrites au dessus pour l'option `--check`. ``` $ tb -s 1 2 3 ``` ### Copier la description d'une tâche ou d'une note Afin de copier dans le presse-papier de votre système d'une ou plusieurs tâches et/ou notes, utilisez l'option `--copy`/`-y` suivi des identifiants des tâches/notes. Il est important de noter que l'option inclut aussi les caractères de retour à la ligne comme séparateurs pour chaque paire de description adjacente, créant ainsi une pile de phrases claire et lisible au moment de coller. ``` $ tb -y 1 2 3 ``` ### Afficher les tableaux Appeler la commande taskbook sans option affichera toutes les tâches et notes sauvegardés dans leurs tableaux respectifs. ``` $ tb ``` ### Afficher la Frise Chronologique Pour afficher toutes les tâches et notes de la vue frise chronologique, en se basant sur leurs dates de création, il faut utiliser l'option `--timeline`/`-i`. ``` $ tb -i ``` ### Choisir un niveau de priorité Afin de donner un niveau de priorité à une tâche lors de son initialisation, ajoutez la syntaxe suivante dans la description de la tâche `p:x`, avec `x` pouvant prendre comme valeurs `1`,`2` ou `3`. Les tâches créées par défaut prennent la priorité `1`. - `1` - Priorité normale - `2` - Priorité moyenne - `3` - Priorité élevée ``` $ tb -t @coding Fix issue `#42` p:3 ``` Pour mettre à jour le niveau de priorété d'un tâche après sa création, utilisez l'option `--priority`/`-p` suivi de l'identifiant de la tâche choisie, préfixé du symbole `@` et un chiffre parmis `1`, `2` ou `3`. Notez que l'ordre entre l'identifiant ou le niveau de priorité n'a pas d'importance. ``` $ tb -p @1 2 ``` ### Déplacer une tâche ou une note Pour déplacer une tâche ou une note sur un ou plusieurs tableaux, utilisez l'option `--move`/`-m` suivi de l'identifiant de la tâche ou de la note sélectionnée, préfixé du symbole `@` et du nom du/des tableau/x de destination. Le tableau par défaut `My board` peut être accédé via le mot clef `myboard`. L'ordre entre l'identifiant de la cible et les noms des tableaux n'a pas d'importance. ``` $ tb -m @1 myboard reviews ``` ### Supprimer une ou plusieurs tâches ou notes Pour supprimer une ou plusieurs tâches ou notes, utilisez l'option `--delete`/`-d` suivi des identifiants des éléments ciblés. Les éléments supprimés sont automatiquement archivés et peuvent être inspéctés ou restaurés à n'importe quel moment. Les duplicatas d'identifiants sont automatiquement filtrés. ``` $ tb -d 1 2 ``` ### Supprimer toutes les tâches validées Afin de supprimer toutes les tâches que vous avez validées au moins une fois sur l'ensemble des tableaux, utilisez l'option `--clear`. Toutes les tâches supprimées sont automatiquement archivées et peuvent être consultées ou restaurées à n'importe quel moment. Afin d'éviter tout accident de suppression, l'option `--clear` n'existe pas dans une forme plus courte. ``` $ tb --clear ``` ### Afficher l'archive Pour afficher toutes les tâches et notes archivées, utilisez l'option `--archive`/`-a`. Toutes les éléments sont affichés en vue frise chronologique en se basant sur leur date de création. ``` $ tb -a ``` ### Restaurer une tâche ou une note Pour restaurer une ou plusieurs tâches/notes, utilisez l'option `--restore`/`-r` suivi des identifiants des tâches ou notes selectionnées. Les identifiants des éléments archivés peuvent être affichés en appelant l'option `--archive`/`-a`. Les duplicatas d'identifiants sont automatiquement filtrés. ``` $ tb -r 1 2 ``` ### Liste de tâches ou de notes Pour lister un groupe d'éléments qui correspondent chacun à un certain nombre d'attributs, utilisez l'option `--list`/`-l` suivi des attributs souhaités. Les noms des tableaux et les caractéristiques d'une tâche ou d'une note sont des attributs valides. Par exemple, pour lister tous les éléments qui correspondent au tableau par défaut `myboard` et qui sont des tâches qui ne sont pas encore validées, le code suivant peut être utilisé. ``` $ tb -l myboard pending ``` La liste des attributs supportés par défaut, avec leurs alias respectifs, est la suivante : - `myboard` - Tâches et notes appartenant à `My board` - `task`, `tasks`, `todo` - Éléments qui sont des tâches. - `note`, `notes` - Éléments qui sont des notes. - `pending`, `unchecked`, `incomplete` - Éléments qui sont des tâches non validées. - `done`, `checked`, `complete` - Éléments qui sont des tâches validées. - `star`, `starred` - Éléments qui sont des favoris. ### Recherche de tâches ou notes Pour chercher un éléments parmis plusieurs, utilisez l'option `--find`/`-f`, suivi par vos mots clés de recherche. ``` $ tb -f documentation ``` ## Développement Pour avoir plus d'informations sur la méthode à respecter pour contribuer au projet, merci de lire le [guide de contribution](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md). - Fork le répertoire et clone le sur ta machine. - Déplacez vous dans votre fork local: `cd taskbook` - Installez les dépendances du projet: `npm install` ou `yarn install` - Vérifiez que le code ne contient pas d'erreurs : `npm test` ou `yarn test` ## Applications associées - [chalk](https://github.com/chalk/chalk) - Coloration des chaînes de caractères dans le terminal - [signale](https://github.com/klaudiosinani/signale) - Affichage console hackable ## Equipe - Klaudio Sinani [(@klaudiosinani)](https://github.com/klaudiosinani) ## License [MIT](https://github.com/klaudiosinani/taskbook/blob/master/license.md) ================================================ FILE: docs/readme.GER.md ================================================

Taskbook

📓 Aufgaben, Boards & Notizen für Kommandozeilen-Enthusiasten

Boards

Build Status

## Beschreibung Durch die Verwendung einer einfachen, leicht zu verwendenden Syntax, die sich schnell erlernen lässt, ermöglicht es Taskbook Aufgaben und Notizen effizient über mehrere "Boards" hinweg zu verwalten - und das alles aus der Kommandozeile. Alle Daten werden automatisch im Speicher gesichert um Korrumpierung zu vermeiden, allerdings werden sie nie mit irgendjemandem/etwas geteilt. Dieses Dokument in: [Albanian - Shqip](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.AL.md), [Polski](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PL.md), [简体中文](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ZH.md), [Deutsch - German](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.GER.md), [Français - French](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.FR.md), [Русский - Russian](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.RU.md) lesen. Lies die [contributing guidelines](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md#translating-documentation) um zu lernen, wie du dieses Dokument in mehr Sprachen übersetzen kannst. Du kannst die Entwicklung dieses Projekts unterstützen und an [GitHub Sponsors](https://github.com/sponsors/klaudiosinani) spenden. ## Höhepunkte - Aufgaben und Notizen in "Boards" organisieren - Board & Zeitverlauf Ansichten - Mechanismen für Prioritäten & Favoriten - Elemente suchen & filtern - Archivieren & gelöschte Elemente wiederherstellen - speicherfreundlich & schnell - Daten werden automatisch gesichert - Speicherort ist einstellbar - Übersicht des Fortschrittes - einfache & leicht zu erlernende Syntax - Benachrichtigungen bei Updates - Konfiguration über `~/.taskbook.json` - Daten werden in JSON-File gesichert `~/.taskbook/storage` Die Höhepunkte in einem [taskbook board](https://raw.githubusercontent.com/klaudiosinani/taskbook/master/media/highlights.png) ansehen. ## Inhalt - [Beschreibung](#beschreibung) - [Höhepunkte](#höhepunkte) - [Installation](#installation) - [Verwendung](#verwendung) - [Ansichten](#ansichten) - [Konfiguration](#konfiguration) - [Anleitung](#anleitung) - [Development](#development) - [Related](#related) - [Team](#team) - [Lizenz](#license) ### Yarn ```bash yarn global add taskbook ``` ### NPM ```bash npm install --global taskbook ``` ### Snapcraft ```bash snap install taskbook snap alias taskbook tb # set alias ``` **Anmerkung:** Die Speicher- & Konfigurations-Dateien werden unter der Umgebungsvariable [`$SNAP_USER_DATA`](https://docs.snapcraft.io/reference/env) statt der `$HOME` Variable gespeichert. ## Verwendung ``` $ tb --help Usage $ tb [ ...] Options none Anzeigen der board Ansicht --archive, -a archivierte Elemente anzeigen --begin, -b einen Task starten/pausieren --check, -c einen Task anhaken/abhaken --clear alle markierten Elemente löschen --copy, -y Beschreibung kopieren --delete, -d Element löschen --edit, -e Beschreibung des Elements anpassen --find, -f nach Elementen suchen --note, -n Notiz erstellen --help, -h Hilfe-Nachricht anzeigen --list, -l Elemente nach Attributen auflisten --move, -m Element zwischen Boards verschieben --note, -n Notiz erstellen --priority, -p die Priorität neu setzen --restore, -r archivierte Elemente wiederherstellen --star, -s ein Sternchen bei einem Element setzen/entfernen --task, -t Task erstellen --timeline, -i Zeitübersicht anzeigen --version, -v Version anzeigen Beispiele $ tb $ tb --archive $ tb --begin 2 3 $ tb --check 1 2 $ tb --clear $ tb --copy 1 2 3 $ tb --delete 4 $ tb --edit @3 Merge PR #42 $ tb --find documentation $ tb --list pending coding $ tb --move @1 cooking $ tb --note @coding Mergesort worse-case O(nlogn) $ tb --priority @3 2 $ tb --restore 4 $ tb --star 2 $ tb --task @coding @reviews Review PR #42 $ tb --task @coding Improve documentation $ tb --task Make some buttercream $ tb --timeline ``` ## Ansichten ### Board Ansicht Wenn man taskbook ohne Optionen aufruft, dann werden alle gespeicherten Elemente gruppiert in den zugeordneten Boards angezeigt.
Boards
### Zeitleisten Ansicht Um alle Elemente in einer Zeitleisten Ansicht, die auf dem Erstelldatum basiert, anzuzeigen kann die `--timeline`/`-i` Option verwendet werden.
Timeline View
## Konfiguration Taskbook kann über das `~/.taskbook.json` File konfiguriert werden, indem man die Optionen anhand der eigenen Vorlieben anpasst. Um die Standardwerte wieder herzustellen, kann die Konfiguration einfach aus dem Home-Ordner gelöscht werden. Nachfolgend werden die verfügbaren Optionen mit ihren default-Werten illustriert: ```json { "taskbookDirectory": "", "displayCompleteTasks": true, "displayProgressOverview": true } ``` ### Im Detail ##### `taskbookDirectory` - Type: `String` - Default: `~` Voller Pfad im Filesystem, wo die Daten gespeichert werden, z.B; `/home/username/the-cloud` Wenn nicht definiert wird das Home-Directory `~` verwendet und taskbook wird unter `~/.taskbook/` aufgesetzt. ##### `displayCompleteTasks` - Type: `Boolean` - Default: `true` Aufgaben anzeigen, die schon vervollständigt sind. ##### `displayProgressOverview` - Type: `Boolean` - Default: `true` Übersicht über den Fortschritt unter den Timeline und Board Ansichten anzeigen. ## Anleitung Es folgt eine oberflächliche Schritt-für-Schritt Beschreibung für taskbook inklusive einiger Beispiele. Wenn ein Fehler gefunden wird oder ein Beispiel nicht klar genug ist, kann jederzeit ein [issue](https://github.com/klaudiosinani/taskbook/issues/new/choose) oder [pull request](https://github.com/klaudiosinani/taskbook/compare) gemacht werden. ### Task anlegen Zum Anlegen eines neuen Tasks verwendet man die `--task`/`-t` Option mit der Beschreibung gleich dahinter. ``` $ tb -t Dokumentation verbessern ``` ### Notiz anlegen Zum Anlegen einer Notiz verwendet man die `--note`/`-n` Option mit der Notiz gleich dahinter ``` $ tb -n Mergesort worse-case O(nlogn) ``` ### Board anlegen Boards werden automatisch angelegt, wenn ein neuer Task oder eine neue Notiz angelegt werden. Um eines oder mehrere Boards anzulegen, muss deren Name mit Prefix `@` in der Beschreibung des Items inkludiert werden. Resultierend wird das angelegte Item in allen angegebenen Boards inkludiert. Standardmäßig werden alle Items,die keinen Boardnamen in der Beschreibung enthalten, zum Board `My Board` hinzugefügt. ``` $ tb -t @coding @docs Update contributing guidelines ``` ### Task abhaken Um einen Task als "abgehakt/offen" zu markeiren, verwendet man die `--check`/`-c` Option gefolgt von den IDs der Ziel-Tasks. Man beachte, dass die Option die Tasks zu ihrem Gegenteil updatet. Doppelte IDs werden herausgefiltert. ``` $ tb -c 1 3 ``` ### Mit einem Task beginnen Um einen Task als begonnen/pausiert zu markeiren, wird die Option `--begin`/`-b` gefolgt von den IDs der Tasks verwendet. Die Funktionalität ist die selbe wie die der oben beschriebenen "check" option. ``` $ tb -b 2 3 ``` ### einem Element ein Sternchen geben Um ein Element als Favorit zu markieren, wird die `--star`/`-s` Option gefolgt von den IDs verwendet. Die Funktionalität gleicht der `--check` Option. ``` $ tb -s 1 2 3 ``` ### Beschreibung eines Elements kopieren Um die Beschreibung eines oder mehrerer Element in die Zwischenablage zu kopieren, wird die Option `--copy`/`-y` gefolgt von den IDs der Elemente verwendet. Die kopierten Beschreibungen werden durch den Newline-Charakter getrennt. ``` $ tb -y 1 2 3 ``` ### Boards anzeigen Taskbook ohne Optionen aufzurufen zeigt alle gespeicherten Elemente gruppiert in die zugehörigen Boards an. ``` $ tb ``` ### Timeline anzeigen Um alle Elemente in einer Zeitleisten-Ansicht basierend auf deren Erstelldatum anzuzeigen kann die `--timeline`/`-i` Option verwendet werden. ``` $ tb -i ``` ### Priorität festlegen Um die Priorität für einen Task beim Initialisieren anzugeben, kann die `p:x` Syntax in der Task-Beschreibung verwendet werden. x kann eine Ganzzahl mit Wert `1`, `2` oder `3` sein. Alle Tasks werden standardmäßig mit Priorität `1`, normal, erzeugt. - `1` - Normale Priorität - `2` - Mittlere Priorität - `3` - Hohe Priorität ``` $ tb -t @coding Fix issue `#42` p:3 ``` Um die Priorität eines Tasks nach dem Anlegen zu aktualisieren, wird die `--priority`/`-p` Option gemeinsam mit der ID des Tasks mit Prefix `@` vewrendet.Es kann eine Ganzzahl mit dem Wert `1`, `2` oder `3` vergeben werden. Die Reihenfolge von Task-ID und Priorität ist nicht von Bedeutung. ``` $ tb -p @1 2 ``` ### Elemente verschieben Um ein Elemente in eines oder mehrere Boards zu verschieben verwendet man die `--move`/`-m` Option, gefolgt von der Ziel-Element-ID, mit einer Prefix `@` Symbol, und dem Namen der Zielboards. Default ist `My board` und kann über das `myboard` Schlüsselwort aufgerufen werden. Die Reihenfolge der Ziel-IDs und Boardsnamen ist nicht relevant. ``` $ tb -m @1 myboard reviews ``` ### Angehakte Tasks löschen Um alle bereits erledigten Tasks in allen Boards auf einen Schlag zu löschen kann die `--clear` Option verwendet werden. Alle gelöschten Tasks werden automatisch archiviert, können also zu einem späteren Zeitpunkt angsehen oder wiederhergestellt werden. Um ein versehentliches Löschen zu verhinder, hat die `--clear` Option keinen kürzeren Alias. ``` $ tb --clear ``` ### Elemente löschen Um eines oder mehrere Elemente zu löschen verwendet man die `--delete`/`-d` Option gefolgt von den ids der Items. Gelöschte Elemente werden automatisch archiviert und können jederzeit angesehen oder wiederhergestellt werden. Duplikate werden automatisch gefiltert. ``` $ tb -d 1 2 ``` ### Archiv anzeigen Um alle archivierten Elemente anzuzeigen kann die `--archive`/`-a` Option verwendet werden. Alle archivierten Elemente werden in einer Zeitleisten-Ansicht angezeigt, die auf deren Erstelldatum basiert. ``` $ tb -a ``` ### Elemente wiederherstellen Um ein oder mehrere Elemente wiederherzustellen wird die `--restore`/`-r` Option gefolgt von den IDs der Elemente verwendet. Die IDs aller archivierten Items können mit der Option `--archive`/`-a` angesehen werden. Duplikate werden automatisch herausgefiltert. ``` $ tb -r 1 2 ``` ### Elemente auflisten Um eine Gruppe von Elemente aufzulisten, wo jedes Element eine bestimmte Anzahl von Attributen hat, kann die Option `--list`/`-l` gefolgt von den gewünschten Attributen verwendet werden. Board Namen und Element-Merkmalen können valide Attribute sein. Um Beispielsweise alle Elemente, die ins `myboard` gehören und noch offen sind aufzulisten kann folgender Befehl verwendet werden: ``` $ tb -l myboard pending ``` Standardmäßig werden die folgenden Attribute zum auflisten unterstützt: - `myboard` - Elemente die ins `My board` gehören - `task`, `tasks`, `todo` - Elemente, die Tasks sind - `note`, `notes` - Elemente, die Notizen sind - `pending`, `unchecked`, `incomplete` - Elemente, die offene Tasks sind - `done`, `checked`, `complete` - Elemente, die abgehakte Tasks sind - `star`, `starred` - Favorisierte Elemente ### Elemente suchen Um eines oder mehrere Elemente zu suchen, kann man die `--find`/`-f` Option gefolgt von den Suchparametern verwenden ``` $ tb -f documentation ``` ## Development Mehr Informationen im Bezug auf Beiträge zum Projekt finden sich in den [contributing guidelines](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md). - Das Repository forken und auf deine Maschine klonen - Zum lokalen Fork navigieren: `cd taskbook` - Die dependencies installieren: `npm install` oder `yarn install` - Den Code für Fehler linten: `npm test` or `yarn test` ## Related - [signale](https://github.com/klaudiosinani/signale) - Highly configurable logging utility - [qoa](https://github.com/klaudiosinani/qoa) - Minimal interactive command-line prompts - [hyperocean](https://github.com/klaudiosinani/hyperocean) - Deep oceanic blue Hyper terminal theme ## Team - Klaudio Sinani [(@klaudiosinani)](https://github.com/klaudiosinani) - Mario Sinani [(@mariosinani)](https://github.com/mariosinani) ## License [MIT](https://github.com/klaudiosinani/taskbook/blob/master/license.md) ================================================ FILE: docs/readme.JP.md ================================================

Taskbook

コマンドライン愛用者のための、タスク / ボード / ノート ツール

Boards

Build Status

## 概要 Taskbookはシンプルで最小限の使い方で、簡単・効率的にターミナル内でタスクやノートを複数のボードで管理することができます。全てのデータは削除されず、自動で保存され、どこでも共有可能です。削除したアイテムは自動的にアーカイブされ、検索・リストアすることが可能です。 この文書は次の言語で読むことができます: [Albanian - Shqip](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.AL.md), [English](https://github.com/klaudiosinani/taskbook/blob/master/readme.md), [Polski](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PL.md), [简体中文](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ZH.md), [Русский](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.RU.md), [Français](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.FR.md), [Deutsch](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.GER.md), [Portuguese](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PT-BR.md), [日本語](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.JP.md), [한국어](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.KR.md), [Spanish](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ES.md), [Bulgarian](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.BG.md). [GitHub Sponsors](https://github.com/sponsors/klaudiosinani)から開発へのサポートも可能です。 翻訳について知りたい場合は[コントリビュートガイダンス](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md#translating-documentation)をご確認ください。 ## 特徴 - タスク・ノートを作成 - ビュー(ボード・タイムライン) - 優先度設定・お気に入り機能 - 検索・フィルタ機能 - アーカイブ・リストア機能 - 軽量・早い - 自動保存 - ストレージのカスタマイズ - 進捗の確認 - 簡単でミニマルな文法 - 更新通知 - `~/.taskbook.json`によるこんフィギュレーション - `~/.taskbook/storage`のJsonでデータの保存 特徴は[taskbook ボード](https://raw.githubusercontent.com/klaudiosinani/taskbook/master/media/highlights.png)で確認することができます。 ## 内容 - [概要](#概要) - [特徴](#特徴) - [インストール](#インストール) - [使い方](#使い方) - [ビュー](#ビュー) - [設定](#設定) - [操作方法](#操作方法) - [開発](#開発) - [関連プロジェクト](#関連プロジェクト) - [開発チーム](#開発チーム) - [ライセンス](#ライセンス) ## インストール ### Yarn ```bash yarn global add taskbook ``` ### NPM ```bash npm install --global taskbook ``` ### Snapcraft ```bash snap install taskbook snap alias taskbook tb # set alias ``` **補足**: snapの厳格で限定的な性質より、ストレージと設定ファイルは`$HOME`配下ではなく環境変数[`$SNAP_USER_DATA`](https://docs.snapcraft.io/reference/env)配下に保存されます。 ## 使い方 ``` $ tb --help Usage $ tb [ ...] Options none ボードを表示 --archive, -a アーカイブしたタスクを表示 --begin, -b タスクのスタート/中断 --check, -c タスクのチェック/チェック解除 --clear チェックしたアイテムの削除 --copy, -y アイテムのコピー --delete, -d アイテムの削除 --edit, -e アイテムの編集 --find, -f アイテムの検索 --help, -h ヘルプメッセージの表示 --list, -l 属性ごとにアイテムのリスト化 --move, -m ボードでのアイテムの移動 --note, -n ノートの作成 --priority, -p タスクの優先度を変更 --restore, -r アーカイブからアイテムを復元 --star, -s アイテムのスター/スター解除 --task, -t タスクの作成 --timeline, -i タイムラインの表示 --version, -v バージョンの表示 Examples $ tb $ tb --archive $ tb --begin 2 3 $ tb --check 1 2 $ tb --clear $ tb --copy 1 2 3 $ tb --delete 4 $ tb --edit @3 Merge PR #42 $ tb --find documentation $ tb --list pending coding $ tb --move @1 cooking $ tb --note @coding Mergesort worse-case O(nlogn) $ tb --priority @3 2 $ tb --restore 4 $ tb --star 2 $ tb --task @coding @reviews Review PR #42 $ tb --task @coding Improve documentation $ tb --task Make some buttercream $ tb --timeline ``` ## ビュー ### ボード オプションなしでtaskbookを起動すると、保存している全てのアイテムをそれぞれのボードに表示します。
Boards
### タイムライン 全てのアイテムをタイムラインに表示するためには、`--timeline`/`-i` オプションを利用することで作成日順に表示されます。
Timeline View
## 設定 `~/.taskbook.json` ファイルを作成し、自身のオプションを設定できます。デフォルト値をリセットしたい場合は、設定ファイルを消すだけです。 以下は利用可能なオプションと、それぞれのデフォルト値となります。 ```json { "taskbookDirectory": "~", "displayCompleteTasks": true, "displayProgressOverview": true } ``` ### 各変数の詳細 ##### `taskbookDirectory` - 型: `String` - 初期値: `~` ストレージを初期化するファイルパス。`/home/username/the-cloud` や `~/the-cloud` などを指定します。 ホームディレクトリを示す `~` を指定すると、 `~/.taskbook/` 配下に作成されます。 ##### `displayCompleteTasks` - 型: `Boolean` - 初期値: `true` 完了したタスクを表示するかどうか指定できます。 ##### `displayProgressOverview` - 型: `Boolean` - 初期値: `true` タイムラインとボートの下に進捗状況を表示するか指定できます。 ## 操作方法 以下は最小限の利用例になります。 エラーやサンプルが不十分で改善が必要な場合は、[イシュー](https://github.com/klaudiosinani/taskbook/issues/new/choose) や [プルリクエスト](https://github.com/klaudiosinani/taskbook/compare) を作成してください。 ### タスクの作成 新たなタスクを作成するためには、 `--task`/`-t` のオプションにタスクの詳細を記載してください。 ``` $ tb -t Improve documentation ``` ### ノートの作成 新たなのノートを作成するためには、 `--note`/`-n` オプションにノートの本文を記載してください。 ``` $ tb -n Mergesort worse-case O(nlogn) ``` ### ボードの作成 ボードはタスクやノートを作成したときに自動的に初期化されます。ボートを作成するためには、 `@` をプレフィックスにつけて名前を指定すれば作成できます。ボードの作成と同時に作成したタスクは作成したボードに含まれます。デフォルトではボードの指定がない場合は、 自動的に `My Board` へ追加されます。 ``` $ tb -t @coding @docs Update contributing guidelines ``` ### タスクのチェック タスクを完了/未完了にするためには、 `--check`/`-c` オプションに対象タスクIDを付与してくだい。このオプションでは指定されたタスクの `complete` ステータスを反対に更新するので、完了していたタスクは遅延したタスクに、遅延していたタスクは完了に切り替わります。重複したIDは自動的に除外されます。 ``` $ tb -c 1 3 ``` ### タスクの開始 タスクを開始/中断するには、 `--begin`/`-b` オプションにタスクIDを指定してください。使い方は `--check` オプションと同様になります。 ``` $ tb -b 2 3 ``` ### アイテムのスター お気に入りとしてマークするには、 `--star`/`-s` オプションにタスクIDを指定してください。使い方は `--check` オプションと変わりません。 ``` $ tb -s 1 2 3 ``` ### アイテム詳細のコピー システムのクリップボードにアイテムをコピーするには、 `--copy`/`-y` オプションにタスクIDを指定してください。コピーされたアイテムの各タスクは改行で区切られているため、貼り付け後に読みやすい状態となっています。 ``` $ tb -y 1 2 3 ``` ### ボードの表示 taskbookをオプションなしで起動すると、ボードごとにグループ化されたアイテムを表示します。 ``` $ tb ``` ### タイムラインの表示 タイムラインビューに全てのアイテムを表示させるには、 `--timeline`/`-i` オプションを利用できます。 ``` $ tb -i ``` ### 優先度の設定 初回登録時にタスクの優先度を設定するには、 `p:x` をタスク詳細に付け加えると可能です。xは `1`, `2` or `3` の数字が入ります。デフォルトでは優先度が `1` となります。 - `1` - Normal priority - `1` - 通常 - `2` - Medium priority - `2` - 中優先 - `3` - High priority - `3` - 高優先 ``` $ tb -t @coding Fix issue `#42` p:3 ``` タスクの作成後に優先度を変更するためには、 `--priority`/`-p` オプションを対象タスクIDに指定し、 `@` をプレフィックスとして、 `1` ・ `2` ・ `3` の数値を指定してください。対象IDや優先度が置かれた順番は重要ではありません。 ``` $ tb -p @1 2 ``` ### アイテムの移動 タスクを1つ、もしくは複数のボードへ移動するためには、 `--move`/`-m` オプションの後に `@` マークをプレフィックスとして対象アイテムIDを指定して、ボード名を指する必要があります。デフォルトの `My board` は `myboard` キーワードで設定できます。対象IDとボード名の順番は重要ではありません。 ``` $ tb -m @1 myboard reviews ``` ### アイテムの削除 アイテムを削除するには、 `--delete`/`-d` オプションに対象アイテムIDを指定する必要があります。削除されたアイテムは自動的にアーカイブされ、いつでも検索やリストアは可能です。重複したIDは自動的に除外されます。 ``` $ tb -d 1 2 ``` ### チェックしたタスクの削除 全てのボードにある完了したタスクを削除/クリアするためには、 `--clear` オプションを利用してください。削除されたタスクは自動的にアーカイブされ、いつでも検索・リストア可能です。残念ですが、 `--clear` の簡略化したオプションはありません。 ``` $ tb --clear ``` ### アーカイブの表示 アーカイブした全てのアイテムを表示するためには、 `--archive`/`-a` オプションを利用してください。アーカイブした全てのアイテムはタイムラインビュー作成日順に表示されます。 ``` $ tb -a ``` ### アイテムのリストア アイテムをリストアするためには、 `--restore`/`-r` オプションで対象アイテムIDを付けて利用してください。アーカイブした全てのタスクは `--archive`/`-a` オプションで見ることがきます。重複したIDは自動的に除外されます。 ``` $ tb -r 1 2 ``` ### アイテムのリスト化 特定の属性でアイテムをまとめてリスト化するためには、 `--list`/`-l` オプションの後に必要な属性を付けてください。有効な属性をもつアイテムでボードが表示されます。例えば、デフォルトの `myboard` にある遅延した全てのアイテムをリスト化するためには、以下のように入力できます。 ``` $ tb -l myboard pending ``` デフォルトでサポートしているリスト化属性は、以下のように特定のエイリアスと一緒に使えます。 - `myboard` - Items that belong to `My board` - `task`, `tasks`, `todo` - タスクのアイテム - `note`, `notes` - ノートのアイテム - `pending`, `unchecked`, `incomplete` - 遅れているタスクのアイテム - `progress`, `started`, `begun` - 進行中タスクのアイテム - `done`, `checked`, `complete` - 完了したタスクのアイテム - `star`, `starred` - スターされたアイテム ### アイテムの検索 アイテムを検索するためには、 `--find`/`-f` オプションに検索ワードを指定してください。 ``` $ tb -f documentation ``` ## 開発 よりプロジェクトへ貢献したい場合は、[contributing guidelines](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md)を読んでください。 - リポジトリのフォーク、もしくはクローンをする - ローカルにリポジトリをインストールし、 `cd taskbook` で移動 - `npm install` もしくは `yarn install` で依存モジュールをインストール - `npm test` もしくは `yarn test` でコードのLintチェックが可能 ## 関連プロジェクト - [signale](https://github.com/klaudiosinani/signale) - 高度に設定可能なロギングツール - [qoa](https://github.com/klaudiosinani/qoa) - ミニマルでインタラクティブなコマンドラインプロンプト - [hyperocean](https://github.com/klaudiosinani/hyperocean) - オーシャンブルーなテーマ ## 開発チーム - Klaudio Sinani [(@klaudiosinani)](https://github.com/klaudiosinani) - Mario Sinani [(@mariosinani)](https://github.com/mariosinani) ## ライセンス [MIT](https://github.com/klaudiosinani/taskbook/blob/master/license.md) ================================================ FILE: docs/readme.KR.md ================================================

Taskbook

커맨드 라인 환경에서의 테스크, board, 노트 관리

Boards

Build Status

## 소개 taskbook은 효율적으로 터미널 내에서 여러 board들을 넘나들며 task와 노트를 관리할 수 있게 해줍니다. 간결한 사용법으로 플랫한 러닝커브를 자랑합니다. 모든 데이터는 변형을 막기위해서 개별적으로 저장되고, 누구와도 공유하지 않습니다. 삭제된 아이템들은 자동으로 아카이빙되고, 언제나 복구 혹은 열람할 수 있습니다. 이 문서를 다음 언어로 읽으실 수 있습니다: [Albanian - Shqip](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.AL.md), [Polski](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PL.md), [简体中文](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ZH.md), [Русский](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.RU.md), [Français](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.FR.md), [Deutsch](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.GER.md), [Portuguese](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PT-BR.md), [日本語](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.JP.md), [한국어](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.KR.md)). [GitHub Sponsors](https://github.com/sponsors/klaudiosinani) 로 개발을 후원해주세요. [contributing guidelines](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md#translating-documentation) 를 보시고 다른 언어로 이 문서에 기여해주세요. ## 핵심 기능 - task와 노트를 board에 정리 - board 뷰 & 타임라인 뷰 - 우선순위 & 즐겨찾기 기능 - 검색 & 필터링 기능 - 삭제된 아이템 아카이빙 & 복구 기능 - 가볍고 빨라요! - 데이터는 개별적(원자적, atomically) 저장 - 저장 장소 커스터마이징 - 전체 진행상황 뷰 - 간결한 사용 문법 - 업데이트 알림 - `~/.taskbook.json` 을 사용해서 설정 가능 - `~/.taskbook/storage` 에 json 형식으로 데이터 저장 [taskbook board](https://raw.githubusercontent.com/klaudiosinani/taskbook/master/media/highlights.png) 에서 핵심 기능을 살펴보세요. ## Contents - [소개](#description) - [핵심 기능](#highlights) - [설치](#install) - [사용법](#usage) - [뷰](#views) - [설정](#configuration) - [간단 메뉴얼](#flight-manual) - [개발](#development) - [관련 작업](#related) - [팀소개](#team) - [라이센스](#license) ## 설치 ### Yarn ```bash yarn global add taskbook ``` ### NPM ```bash npm install --global taskbook ``` ### Snapcraft ```bash snap install taskbook snap alias taskbook tb # alias 설정 ``` **주의:** snap의 제한된 기능때문에, 데이터와 설정 파일은 모두 `$HOME` 대신 [`$SNAP_USER_DATA`](https://docs.snapcraft.io/reference/env) 하위에 저장됩니다. ## 사용법 ``` $ tb --help Usage $ tb [ ...] Options none Display board view --archive, -a Display archived items --begin, -b Start/pause task --check, -c Check/uncheck task --clear Delete all checked items --copy, -y Copy item description --delete, -d Delete item --edit, -e Edit item description --find, -f Search for items --help, -h Display help message --list, -l List items by attributes --move, -m Move item between boards --note, -n Create note --priority, -p Update priority of task --restore, -r Restore items from archive --star, -s Star/unstar item --task, -t Create task --timeline, -i Display timeline view --version, -v Display installed version Examples $ tb $ tb --archive $ tb --begin 2 3 $ tb --check 1 2 $ tb --clear $ tb --copy 1 2 3 $ tb --delete 4 $ tb --edit @3 Merge PR #42 $ tb --find documentation $ tb --list pending coding $ tb --move @1 cooking $ tb --note @coding Mergesort worse-case O(nlogn) $ tb --priority @3 2 $ tb --restore 4 $ tb --star 2 $ tb --task @coding @reviews Review PR #42 $ tb --task @coding Improve documentation $ tb --task Make some buttercream $ tb --timeline ``` ## Views ### board 뷰 아무 옵션도 주지 않고 taskbook을 작동 시키면, 각 board로 그룹된 아이템들이 보여집니다.
Boards
### 타임라인 뷰 타임라인 뷰로 모든 아이템들을 보려면 (생성시간 기준), `--timeline`/`-i` 옵션을 사용하면 됩니다.
Timeline View
## 설정 taskbook 을 설정하려면 `~/.taskbook.json` 파일로 접근하여 취향에 맞게 옵션을 변형해주세요. 디폴트 값으로 리셋하고자 한다면, 그냥 해당 config 파일을 홈디렉토리에서 삭제해주세요. 아래는 디폴트 값을 포함해서, 가능한 옵션들을 표시해놓은 것입니다. ```json { "taskbookDirectory": "~", "displayCompleteTasks": true, "displayProgressOverview": true } ``` ### 상세 ##### `taskbookDirectory` - 타입: `String` - 디폴트: `~` 데이터 저장이 처음 시작되는 파일 경로입니다. 예: `/home/username/the-cloud` 혹은 `~/the-cloud` 이를 설정하기 않으면 `~`가 사용되고, taskbook은 `~/.taskbook/` 하위에 세팅됩니다. ##### `displayCompleteTasks` - 타입: `Boolean` - 디폴트: `true` complete으로 마킹한 task들을 보여줄지 여부를 결정합니다. ##### `displayProgressOverview` - 타입: `Boolean` - 디폴트: `true` 타임라인과 board뷰 아래에 프로그레스 뷰를 보여줄지 여부를 결정합니다. ## 간단 매뉴얼 다음은 taskbook 사용법 예제를 포함한 기초 매뉴얼입니다. 오류를 발견하시거나 예제가 명확하지 않아서 개선되어야한다고 생각하시면, 자유롭게 [이슈](https://github.com/klaudiosinani/taskbook/issues/new/choose)나 [풀리퀘스트](https://github.com/klaudiosinani/taskbook/compare)를 부탁드립니다. ### task 만들기 새로운 task를 만들려면, `--task`/`-t` 옵션을 사용하고 그 뒤에 설명을 적어주세요. ``` $ tb -t Improve documentation ``` ### 노트 만들기 새로운 노트를 만들려면 `--note`/`-n` 옵션을 사용하고 그 뒤에 노트 내용을 적어주세요. ``` $ tb -n Mergesort worse-case O(nlogn) ``` ### Board 만들기 board는 새로운 task나 노트를 만들때 자동으로 초기화 됩니다. 하나 이상의 board를 만들려면, 만들고자하는 아이템을 적을 때 `@` 을 붙여 board 이름을 적어주세요. 새로운 아이템은 주어진 board에 모두 속하게 됩니다. 기본적으로, board 이름을 명시하지 않은 아이템은 `My Board`에 포함됩니다. ``` $ tb -t @coding @docs Update contributing guidelines ``` ### Task 체크하기 task를 완료/미완료로 표시하기 위해서는 `--check`/`-c` 옵션 뒤에 타겟 task의 아이디를 적어주세요. 이 옵션은 상태를 뒤집는 것이므로, 완료된 task를 체크하면 pending(지연중)으로, pending된 task를 체크하면 완료로 설정됩니다. 중복된 아이디를 입력하는 경우 자동으로 필터링 됩니다. ``` $ tb -c 1 3 ``` ### Task 시작하기 task를 시작/일시정지로 표시하기 위해서는 `--begin`/`-b` 옵션 뒤에 타겟 task의 아이디를 적어주세요. 이 옵션의 동작은 `--check` 옵션과 같습니다. ``` $ tb -b 2 3 ``` ### Item에 별표시하기 하나 이상의 아이템을 자주 사용한다고 표시하기 위해서는, `--star`/`-s` 옵션 뒤에 타겟 task의 아이디를 적어주세요. 이 옵션의 동작은 `--check` 옵션과 같습니다. ``` $ tb -s 1 2 3 ``` ### 아이템 설명 복사하기 하나 이상 아이템의 설명을 클립보드에 복사하기 위해서는 `--star`/`-s` 옵션 뒤에 타겟 task의 아이디를 적어주세요. 이 옵션은 개행 문자를 구분자로 사용해서, 붙여 넣을 때에도 명확하고 읽을 수 있는 문장을 저장합니다. ``` $ tb -y 1 2 3 ``` ### Board 표시하기 아무런 옵션없이 taskbook를 작동시키면 모든 저장된 아이템들이 각각 보드에 그룹화되어 보입니다. ``` $ tb ``` ### Timeline 표시하기 모든 아이템을 timeline view로 표시하기 위해서는 `--timeline`/`-i` 옵션을 사용합니다. ``` $ tb -i ``` ### 우선순위 정하기 task 를 만들 때 우선순위를 정하기 위해서는, `p:x` 문법을 task 설명에 포함해주세요. 여기에서 x는 `1`, `2`, `3` 중 하나의 정수 값입니다. 모든 task는 디폴트로 보통 우선순위인 `1` 로 생성됩니다. - `1` - 일반 우선순위 - `2` - 중간 우선순위 - `3` - 최고 우선순위 ``` $ tb -t @coding Fix issue `#42` p:3 ``` 특정 task를 생성한 다음에 우선순위를 조정하고자 할 때는, `--priority`/`-p` 을 사용합니다. 이때 타겟 task 는 @ + 해당 task id로 명시합니다. 타겟의 id와 우선순위 정도가 적힌 순서는 중요하지 않습니다. ``` $ tb -p @1 2 ``` ### 아이템 옮기기 하나의 아이템을 하나이상의 board에 옮기기 위해서는 `--move`/`-m` 옵션을 사용합니다. 이때 타겟 task 는 @ + 해당 task id로 명시하고, 옮겨질 대상 board의 이름을 적습니다. 기본 `My board`는 `myboard`라는 키워드로 접근할 수 있습니다. 타겟 아이디와 board의 이름이 적힌 순서는 중요하지 않습니다. ``` $ tb -m @1 myboard reviews ``` ### 아이템 삭제하기 하나 이상의 아이템을 삭제하기 위해서는 `--delete`/`-d` 옵션 뒤에 해당하는 아이템의 id들을 적습니다. 삭제한 아이템은 자동으로 저장되어 언제든 다시 보거나 복구가능합니다. 중복된 아이디는 자동으로 필터링됩니다. ``` $ tb -d 1 2 ``` ### 체크된 task 삭제하기 모든 board에서 모든 완료된 task를 종료 혹은 비우기 하고 싶을 경우, `--clear` 옵션을 사용하세요. 모든 제거된 task는 자동으로 저장되어 언제든 다시 보거나 복구가능합니다. 실수로 사용하는 경우를 막기 위해서, `--clear` 옵션은 짧은 이름이 존재하지 않습니다. ``` $ tb --clear ``` ### 아카이브를 표시하기 모든 아카이브된 아이템을 보려면, `--archive`/`-a` 옵션을 사용하세요. 모든 아카이브된 아이템은 timeline 뷰에서 생성일 기준으로 표시됩니다. ``` $ tb -a ``` ### 아이템을 복구하기 하나 이상의 아이템을 복구하기 위해서, `--restore`/`-r` 옵션 뒤에 타겟 아이템의 아이디를 적어주세요. `--archive`/`-a` 옵션을 사용하면 모든 아카이브된 아이템의 아이디를 확인 할 수 있습니다. 중복된 아이디는 자동으로 필터링됩니다. ``` $ tb -r 1 2 ``` ### 아이템을 모두 표시하기 특정 속성들을 가진 아이템들을 모두 표시하고 싶을 때, `--list`/`-l` 옵션 뒤에 원하는 속성을 붙여 사용하세요. Board 이름 역시 속성으로 간주됩니다. 예를 들어, 기본 `myboard`에 포함된 모든 pending 아이템을 표시하고 싶다면, 다음과 같이 사용하세요. ``` $ tb -l myboard pending ``` 기본적으로 제공하는 속성을 확인해보세요. - `myboard` - Items that belong to `My board` - `task`, `tasks`, `todo` - Items that are tasks. - `note`, `notes` - Items that are notes. - `pending`, `unchecked`, `incomplete` - Items that are pending tasks. - `progress`, `started`, `begun` - Items that are in-progress tasks. - `done`, `checked`, `complete` - Items that complete tasks. - `star`, `starred` - Items that are starred. ### 아이템을 검색하기 하나 이상의 아이템을 검색하려면, `--find`/`-f` 옵션 뒤에 검색어를 입력하세요. ``` $ tb -f documentation ``` ## 개발 프로젝트에 기여하는 방법에 대해서는 [contributing guidelines](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md)를 읽어주세요. - 레포지토리를 포크해서 개인 머신에 복사합니다. - 로컬 환경 폴더로 이동합니다. `cd taskbook` - 필요한 프로젝트 의존성을 설치합니다. `npm install` 혹은 `yarn install` - 코드를 린트합니다. `npm test` 혹은 `yarn test` ## 관련 작업 - [signale](https://github.com/klaudiosinani/signale) - Highly configurable logging utility - [qoa](https://github.com/klaudiosinani/qoa) - Minimal interactive command-line prompts - [hyperocean](https://github.com/klaudiosinani/hyperocean) - Deep oceanic blue Hyper terminal theme ## 팀소개 - Klaudio Sinani [(@klaudiosinani)](https://github.com/klaudiosinani) - Mario Sinani [(@mariosinani)](https://github.com/mariosinani) ## 라이센스 [MIT](https://github.com/klaudiosinani/taskbook/blob/master/license.md) ================================================ FILE: docs/readme.PL.md ================================================

Taskbook

Zadania, tablice i notatki dla środowiska wiersza poleceń

Zrzut ekranu pokazujący tablicę zadań

Build Status

## Opis Dzięki prostej i minimalistycznej składni, która wymaga szybkiej nauki, TaskBook umożliwia efektywne zarządzanie zadaniami i notatkami na wielu tablicach z poziomu terminala. Wszystkie dane są zapisywane atomowo w pamięci masowej, aby zapobiec ich uszkodzeniu i nigdy nie są udostępniane nikomu ani niczemu. Usunięte elementy są automatycznie archiwizowane i można je przeglądać lub przywracać w dowolnym momencie. Przeczytaj ten dokument również w: [Albanian - Shqip](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.AL.md), [English](https://github.com/klaudiosinani/taskbook/blob/master/readme.md), [简体中文](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ZH.md), [Русский](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.RU.md), [Français](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.FR.md), [Deutsch](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.GER.md), [Portuguese](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PT-BR.md), [日本語](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.JP.md), [한국어](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.KR.md), [Spanish](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ES.md). Możesz wspierać proces rozwoju poprzez [GitHub Sponsors](https://github.com/sponsors/klaudiosinani). Odwiedź [contributing guidelines](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md#translating-documentation) aby dowiedzieć się więcej na temat tłumaczenia tego dokumentu na inne języki. ## Kluczowe funkcje - Organizuj zadania oraz notatki na tablicy - Widok tablicy oraz osi czasu - Mechanizm priorytetów i ulubionych - Wyszukiwanie i filtrowanie elementów - Archiwizacja oraz przywracanie usuniętych dokimentów - Lekki i szybki - Dane zapisane atomowo do pamięci masowej - Niestandardowa lokalizacja pamięci masowej - Przegląd wpisów - Prosra i minimalna składnia - Powiadomienia o aktualizacjach - Konfiguracja przez `~/.taskbook.json` - Dane przechowywane w pliku `~/.taskbook/storage` Sprawdź funkcje [taskbook board](https://raw.githubusercontent.com/klaudiosinani/taskbook/master/media/highlights.png). ## Zawartość - [Opis](#opis) - [Kluczowe funkcje](#kluczowe-funkcje) - [Instalacja](#instalacja) - [Zastosowanie](#zastosowanie) - [Widoki](#widoki) - [Konfiguracja](#konfiguracja) - [Instrukcja lotu](#instrukcja-lotu) - [Rozwój](#rozwoj) - [Powiązania](#powiazania) - [Zespół](#zespol) - [Sponsorzy](#sponsorzy) - [Licencja](#licencja) ## Instalacja ### Yarn ```bash yarn global add taskbook ``` ### NPM ```bash npm install --global taskbook ``` ### Snapcraft ```bash snap install taskbook snap alias taskbook tb # set alias ``` **Uwaga:** Ze względu na ściśle ograniczoną naturę snap-in, zarówno pliki pamięci masowej, jak i konfiguracyjne zostaną zapisane w zmiennej środowiskowej [`$SNAP_USER_DATA`](https://docs.snapcraft.io/reference/env), a nie w ogólnej `$HOME`. ## Stosowanie ``` $ tb --help Stosowanie $ tb [ ...] Opcje none Wyświetl widok tablicy --archive, -a Wyświetl zarchiwizowane zadania --begin, -b Uruchom/wstrzymaj zadanie --check, -c Zaznacz/odznacz zadanie --clear Usuń wszystkie zaznaczone zadania --copy, -y Kopiuj opis zadania --delete, -d Usuń zadanie --edit, -e Edytuj zadanie --find, -f Wyszukaj zadanie --help, -h Wyświetl komunikat pomocy --list, -l Wyświetl zadania według atrybutów --move, -m Przenieś zadania między tablicami --note, -n Utwórz notatkę --priority, -p Aktualizuj ptiotytet zadania --restore, -r Przywróć zadanie z archiwum --star, -s Dodaj/usuń gwiazdkę przy zadaniu --task, -t Utwórz zadanie --timeline, -i Wyświetl widok osi czasu --version, -v Wyświetl zainstalowaną wersję Przykłady $ tb $ tb --archive $ tb --begin 2 3 $ tb --check 1 2 $ tb --clear $ tb --copy 1 2 3 $ tb --delete 4 $ tb --edit @3 nowa_notatka_zadania_nr_3 $ tb --find szukana_nazwa lub id $ tb --list nazwa_tablicy $ tb --move @1 nazwa_tablicy $ tb --note @nazwa_tablicy tresc_mojej_notatki $ tb --priority @3 2 $ tb --restore 4 $ tb --star 2 $ tb --task @tablica_01 @tablica_02 Zadanie utworzy sie w tablica_01 i tablica_02 $ tb --task @tablica_03 Nowe zadanie w tablicy 03 $ tb --task zadanie_z_domyślną_nazwą_tablicy $ tb --timeline ``` ## Wygląd ### Wygląd talicy Wywołanie skoroszytu bez żadnych opcji spowoduje wyświetlenie wszystkich zapisanych elementów pogrupowanych na odpowiednich tablicach.
Obraz przedstawia przykładową listę zdań utworzoną w aplikacji Taskbook
### Widok osi czasu Aby wywietllić wszystkie elementy w widoku osi czasu na podstawie daty utworzenia, można użyć opcji `--timeline`/`-i`.
Timeline View
## Configuration Aby skonfigurować Taskbook, przejdź do pliku `~/.taskbook.json` i zmodyfikuj dowolne opcje zgodnie z własnymi preferencjami. Aby przywrócić wartości domyślne, wystarczy usunąć plik konfiguracyjny z katalogu domowego. Poniżej przedstawiono wszystkie dostępne opcje i ich wartości domyślne. ```json { "taskbookDirectory": "~", "displayCompleteTasks": true, "displayProgressOverview": true } ``` ### Szczegóły ##### `taskbookDirectory` - Type: `String` - Default: `~` Ścieżka systemu plików, w której zostanie zainicjowana pamięć masowa, np.: `/home/username/the-cloud` lub `~/the-cloud` Jeżeli nie zostanie zdefiniowany katalog domowy `~`, Taskbook zostanie skonfigurowany w katlogu domyślnym `~/.taskbook/`. ##### `displayCompleteTasks` - Type: `Boolean` - Default: `true` Wyświetl zadania ozaczone jako. ##### `displayProgressOverview` - Type: `Boolean` - Default: `true` Wyświetl zadania oznaczone jako ukończone. ## Instrukcja lotu Poniżej znajduje się krótki przewodnik zawierający zestaw przypadków korzystania z Taskbook. Jeśli zauważysz błąd lub uważasz, że przykład jest nie wystarczająco jasny i wymaga doptacowania, możesz go ozgłosić [issue](https://github.com/klaudiosinani/taskbook/issues/new/choose) lub wykonąć [pull request](https://github.com/klaudiosinani/taskbook/compare). ### Utwórz zadanie Do utworzenia nowego zadania użyj opcji `--task`/`-t` dodając opis zadania zaraz po niej. ``` $ tb -t Zmienniony opis zadania ``` ### Utwórz notatkę Aby utworzyć notatkę, użyj opcji `--note`/`-n` dodając jej treść zaraz po niej. ``` $ tb -n To jest moja notatka ``` ### Utwórz tablicę Tablice są automatycznie inicjowane podczas tworzenia nowego zadania lub notatki. Aby utworzyć jedną lub więcej tablic, należy dodać ich nazwy poprzedzone symbolem `@` dodając na końcu opis zadania. W rezultacie nowo utworzony element będzie należał do wszystkich podanych tablic. Domyślnie elementy, które nie zawierają nazw tablic w swoim opisie, są automatycznie dodawane do ogólnego przeznaczenia. ``` $ tb -t @coding @docs Mój przykładowy opis zadania ``` ### Zadanie ukończone Aby oznaczyć zadanie jako ukończone/nieukończone, należy użyć opcji `--check/-c` podając identyfikator zadania zaraz po niej. Należy pamiętać, że opcja ta zmieni aktualny stan zadania na przeciwny. W zależności od aktualnego stanu zadaniam, zadanie zmieni swój stan na ukończone lub nieukończone. Zduplikowane identyfikatory są automatycznie filtrowane. ``` $ tb -c 1 3 ``` ### Rozpoczęcie zadania Aby oznaczyć zadanie jako rozpoczęte / nierozpoczętem należy użyć opcji `--begin`/`-b` podając identyfikator zadania. Funkcjonalność opcji jest taka sama jak opisanej powyżej `--check`. ``` $ tb -b 2 3 ``` ### Dodanie gwiazdki Aby oznaczyć jeden lub więcej elementów gwiazdką, użyj opcji `--star`/`-s`, a następnie identyfikator elementów docelowych. Funkcjonalność tej opcji jest taka sama jak opisanej powyższej opcji `--check` option. ``` $ tb -s 1 2 3 ``` ### Kopiowanie opisu zadania Aby skopiować do schowka systemowego opis jednego lub kilku elementów, użyj opcji `--copy/-y`, dodając identyfikator elementów docelowych. Należy pamiętać, że opcja ta będzie również uwzględniać znak nowej linii jako separator dla każdej pary sąsiadujących ze sobą skopiowanych opisów, co pozwoli na uzyskanie przejrzystego i czytelnego stosu zdań po wklejeniu. ``` $ tb -y 1 2 3 ``` ### Wyświetl tablice Wyświetlenie Taskbook bez żadnych opcji spowoduje wyświetlenie wszystkich zapisanych elementów pogrupowanych na odpowiednich tablicach. ``` $ tb ``` ### Wyświetl oś czasu Aby wyświetlić wszystkie elementy w widoku osi czasu na podstawie daty ich utworzenia, można użyć opcji `--timeline`/`-i`. ``` $ tb -i ``` ### Ustawienie priorytetu Aby ustawić poziom priorytetu zadania podczas jego inicjowania, należy uwzględnić składnię `p:x` w opisie zadania, gdzie x może być liczbą całkowitą o wartości 1,2 lub 3. Należy pamiętać, że domyślnie wszystkie zadania są tworzone z normalnym priorytetem 1. - `1` - Normalny priorytet - `2` - Średni priorytet - `3` - Wysoki priorytet ``` $ tb -t @coding Fix issue `#42` p:3 ``` Aby zmienić priorytet określonego zadania po jego utworzeniu, należy użyć opcji `--priority`/`-p` dodając identyfikator elementów docelowych porzedzonym symbolem `@` oraz liczbą całkowitą o wartoścu `1`, `2` lub `3`. Należy pamiętać, że kolejność w jakiej umieszczone są identyfikator docelowy i poziom priorytetu, nie ma znaczenia. ``` $ tb -p @1 2 ``` ### Przemieszczenie elementów Aby przenieść element na jedną lub więcej tablic, użyj opcji `--move/-m`, a następnie identyfikatora elementu docelowego poprzedzonego symbolem `@` oraz nazwy tablic docelowych. Dostęp do domyślnej tablicy `Moja tablica` można uzyskać za pomocą słowa kluczowego `myboard`. Kolejność, w jakiej identyfikator elementu docelowego i nazwy tablic są umieszczane, nie ma znaczenia. ``` $ tb -m @1 myboard reviews ``` ### Usunięcie elementu Aby usunąć jeden lub więcej elementów, użyj opcji `--delete/-d`, dodając identyfikatorów elementów docelowych. Należy pamiętać, że usunięte elementy są automatycznie archiwizowane i można je w dowolnym momencie przejrzeć lub przywrócić. Duplikaty identyfikatorów są automatycznie filtrowane. ``` $ tb -d 1 2 ``` ### Usuń ukończone elementy Aby usunąć/wyczyścić wszystkie ukończone zadania naraz na wszystkich tablicach, użyj opcji `--clear`. Pamiętaj, że wszystkie usunięte zadania są automatycznie archiwizowane i można je w dowolnym momencie przejrzeć lub przywrócić. Aby zapobiec przypadkowemu użyciu, opcja `--clear` nie ma dostępnego krótszego aliasu. ``` $ tb --clear ``` ### Wyąwietlenie archiwum Aby wyświetlić wszystkie zarchiwizowane elementy, użyj opcji `--archive/-a`. Pamiętaj, że wszystkie zarchiwizowane elementy są wyświetlane w widoku osi czasu, na podstawie daty ich utworzenia. ``` $ tb -a ``` ### Przywrócenie Aby przywrócić jeden lub więcej elementów, użyj opcji `--restore/-r`, a następnie identyfikatorów elementów docelowych. Należy pamiętać, że identyfikatory wszystkich zarchiwizowanych elementów można wyświetlić po wywołaniu opcji `--archive/-a`. Duplikaty identyfikatorów są automatycznie filtrowane. ``` $ tb -r 1 2 ``` ### Lista elementów Aby wyświetlić grupę elementów, z których każdy spełnia określony zestaw atrybutów, użyj opcji `--list/-l`, a następnie żądanych atrybutów. Nazwy tablic wraz z cechami elementów można uznać za prawidłowe atrybuty listy. Na przykład, aby wyświetlić wszystkie elementy należące do domyślnej tablicy `myboard` i oczekujące na wykonanie zadania, można użyć następującego `polecenia: ``` $ tb -l myboard pending ``` Domyślnie obsługiwane atrybuty aukcji wraz z ich odpowiednimi aliasami są następujące: - `myboard` - Elementy należące do `My board` - `task`, `tasks`, `todo` - Elementy będące zadaniami. - `note`, `notes` - Elementy będące notatkami. - `pending`, `unchecked`, `incomplete` - Elementy, które są zadaniami oczekującymi. - `progress`, `started`, `begun` - Elementy będące zadaniami w toku. - `done`, `checked`, `complete` - Elementy, które wykonują zadania. - `star`, `starred` - Elementy oznaczone gwiazdką. ### Wyszukaj elementy Aby wyszukać jeden lub więcej elementów, użyj `--find`/`-f`, a następnie wpisz wyszukiwane hasła. ``` $ tb -f documentation ``` ## Rozwój Aby uzyskać więcej informacji na temat tego, jak przyczynić się do projektu, zapoznaj się ze [contributing guidelines](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md). - Rozwidl repozytorium i sklonuj je na swój komputer. - Przejdź do swojego lokalnego forka: `cd taskbook` - Zainstaluj zależności projektu: `npm install` lub `yarn install` - Sprawdź kod pod kątem błędów: `npm test` lub `yarn test` ## Powiązany - [signale](https://github.com/klaudiosinani/signale) - Wysoce konfigurowalne narzędzie do rejestrowania - [qoa](https://github.com/klaudiosinani/qoa) - Minimalne interaktywne monity wiersza poleceń - [hyperocean](https://github.com/klaudiosinani/hyperocean) - Głęboki, oceaniczny, błękitny motyw terminala Hyper ## Zespół - Klaudio Sinani [(@klaudiosinani)](https://github.com/klaudiosinani) - Mario Sinani [(@mariosinani)](https://github.com/mariosinani) ## Sponsors Wielkie podziękowania dla wszystkich osób i firm wspierających naszą działalność Open Source: - [Better Stack: wykrywaj, rozwiązuj i zapobiegaj przestojom.](https://betterstack.com/) ## Licencja [MIT](https://github.com/klaudiosinani/taskbook/blob/master/license.md) ================================================ FILE: docs/readme.PT-BR.md ================================================

Taskbook

Tarefas, quadros & notas para o habitat de linha de comando

Boards

Build Status

## Descrição Utilizando uma sintaxe mínima e simples, que requere uma curva de aprendizado plana, taskbook permite à você gerenciar suas tarefas e notas através de múltiplos quadros de dentro do seu terminal. Todos os dados são salvos automaticamente no armazenamento com o intuito de prevenir corrupções, e não são compartilhados com ninguém. Items deletados são automaticamente arquivados e podem ser inspecionados ou restorados a qualquer momento. Leia este documento em: [Albanian - Shqip](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.AL.md), [Polski](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PL.md), [简体中文](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ZH.md), [Русский](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.RU.md), [Français](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.FR.md), [Deutsch](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.GER.md), [Portuguese](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PT-BR.md). Agora você pode ajudar o processo de desenvolvimento via [GitHub Sponsors](https://github.com/sponsors/klaudiosinani). Visite as [orientações de contribuição](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md#translating-documentation) para mais informações sobre como traduzir este documento para outras línguas. ## Destaques - Organize tarefas & notas em quadros - Visualize suas tarefas/notas em quadros & linha do tempo - Sistema de prioridades & favoritos - Pesquise & filtre itens - Arquive & restaure itens deletados - Leve & rápido - Dados são salvos automaticamente no armazenamento - Local de armazenamento customizável - Visão geral do progresso - Sintaxe de uso mínima & simples - Notificações de atualizações - Configurável atráves de ~/.taskbook.json - Dados são salvos em arquivos JSON no diretório ~/.taskbook/storage Ver destaques em um [quadro no taskbook](https://raw.githubusercontent.com/klaudiosinani/taskbook/master/media/highlights.png). ## Conteúdo - [Descrição](#descrição) - [Destaques](#destaques) - [Instalação](#instalação) - [Uso](#uso) - [Visualizações](#visualizações) - [Configuração](#configuração) - [Manual de vôo](#manual-de-vôo) - [Desenvolvimento](#desenvolvimento) - [Relacionado](#relacionados) - [Time](#time) - [Licença](#licença) ## Instalação ### Yarn ```bash yarn global add taskbook ``` ### NPM ```bash npm install --global taskbook ``` ### Snapcraft ```bash snap install taskbook snap alias taskbook tb # set alias ``` **Nota:** Devido à natureza estritamente confinada do snap, ambos os arquivos de armazanamento e configuração serão salvos sobre variável de ambiente [`$SNAP_USER_DATA`](https://docs.snapcraft.io/reference/env) ao invés da genérica `$HOME` ## Uso ``` $ tb --help Usage $ tb [ ...] Options none Display board view --archive, -a Display archived items --begin, -b Start/pause task --check, -c Check/uncheck task --clear Delete all checked items --copy, -y Copy item description --delete, -d Delete item --edit, -e Edit item description --find, -f Search for items --help, -h Display help message --list, -l List items by attributes --move, -m Move item between boards --note, -n Create note --priority, -p Update priority of task --restore, -r Restore items from archive --star, -s Star/unstar item --task, -t Create task --timeline, -i Display timeline view --version, -v Display installed version Examples $ tb $ tb --archive $ tb --begin 2 3 $ tb --check 1 2 $ tb --clear $ tb --copy 1 2 3 $ tb --delete 4 $ tb --edit @3 Merge PR #42 $ tb --find documentation $ tb --list pending coding $ tb --move @1 cooking $ tb --note @coding Mergesort worse-case O(nlogn) $ tb --priority @3 2 $ tb --restore 4 $ tb --star 2 $ tb --task @coding @reviews Review PR #42 $ tb --task @coding Improve documentation $ tb --task Make some buttercream $ tb --timeline ``` ## Visualizações ### Quadros Invocando taskbook sem nenhuma opção mostrará todos os itens salvos agrupados em seus respectivos quadros.
Boards
### Linha do tempo Afim de listar todos os itens em uma linha do tempo, baseados nas datas de criação, a opção `--timeline/-i` pode ser usada.
Timeline View
## Configuração Para configurar o taskbook navegue até o aquivo `~/.taskbook.json` e modifique qualquer opção para se adequar às suas preferências. Para resetas aos valores iniciais simplesmente delete este arquivo do diretório raiz do seu usuário e um novo será automaticamente criado. Abaixo estão todas as opções disponíveis e seus respectivos valores padrões. ```json { "taskbookDirectory": "~", "displayCompleteTasks": true, "displayProgressOverview": true } ``` ### Em Detalhes ##### `taskbookDirectory` - Type: `String` - Default: `~` Caminho no sistema de aquivos onde o armazenado será inicializado, ex.: `/home/username/the-cloud` ou `~/the-cloud` Se não definido, seu diretório raiz `~` será usado e taskbook será instalado em `~/.taskbook/`. ##### `displayCompleteTasks` - Type: `Boolean` - Default: `true` Mostra tarefas que foram marcadas como completadas. ##### `displayProgressOverview` - Type: `Boolean` - Default: `true` Mostra uma visualização geral do progresso abaixo da linha do tempo e dos quadros. ## Manual de vôo A seguir é apresentado um pequeno passo a passo que contém um conjunto de exemplos de como usar taskbook. No caso de você encontrar algum erro ou achar que um exemplo não está claro o suficiente e que pode ser melhorado, sinta-se livre para abrir uma [issue](https://github.com/klaudiosinani/taskbook/issues/new/choose) ou um [pull-reques](https://github.com/klaudiosinani/taskbook/compare). ### Criar Tarefa Para criar uma nova tarefa use opção `--task`/`-t` seguido da descrição da sua tarefa. ``` $ tb -t Improve documentation ``` ### Criar Nota Para criar uma nova nota use a opção `--note`/`-n` seguido do conteúdo da sua nota. ``` $ tb -n Mergesort worse-case O(nlogn) ``` ### Criar Quadro Quadros são automaticamente inicializados quando uma nova tarefa ou nota é criada. Para criar um ou mais quadros, inclua seus nomes prefixados por um `@` na descrição do item a ser criado. Como resultado, o item criado pertencerá a todos os quadros especificados. Por padrão, itens que não contém nenhum quadro especificado são automaticamente adicionados no quadro geral: `My board`. ``` $ tb -t @coding @docs Update contributing guidelines ``` ### Marcar Tarefa Para marcar uma tarefa como completa/incompleta, use a opção `--check`/`-c` seguido dos ids das tarefas que deseja marcar. Note que esta opção irá atualizar para o oposto do status de `complete` atual das tarefas especificadas, portanto marcando uma tarefa completada irá listá-la como pendente, e uma tarefa pendente como completada. Ids duplicados são automaticamente filtrados. ``` $ tb -c 1 3 ``` ### Começar Tarefa Para marcar uma tarefa como iniciada/pausada use a opção `--begin`/`-b` seguido dos ids das tarefas desejadas. A funcionalidade desta opção é a mesma da opção `--check` descrita acima. ``` $ tb -b 2 3 ``` ### Favoritar Item Para marcar um ou mais itens como favorito, use a opção `--star`/`-s` seguido dos ids dos itens que deseja favoritar. A funcionalidade desta opção é a mesma da opção `--check` descrita acima. ``` $ tb -s 1 2 3 ``` ### Copiar Descrição do Item Para copiar para o clipboard do seu sistema a descrição de um ou mais itens, use a opção `--copy`/`-y` seguido dos ids dos itens desejados. Note que esta opção irá incluir também novas linhas como separador para cada par de descrições adjacentes copiadas, portanto resultando em uma sentença clara e legível. ``` $ tb -y 1 2 3 ``` ### Mostrar Quadros Chamando taskbook sem passar nenhuma opção mostrará todos os itens salvos agrupados em seus respectivos quadros. ``` $ tb ``` ### Mostrar Linha do Tempo Para mostrar todos os itens em uma linha do tempo, baseados na sua data de criação, pode ser usada a opção `--timeline`/`-i`. ``` $ tb -i ``` ### Definir Prioridade Para definir o nível de prioridade de uma tarefa ao criá-la, inclua a sintaxe `p:x` em sua descrição, onde `x` pode ser um número inteiro de valor `1`, `2` ou `3`. Note que todas as tarefas são criadas por padrão com prioridade normal - `1`. - `1` - Prioridade normal - `2` - Prioridade média - `3` - Prioridade alta ``` $ tb -t @coding Fix issue `#42` p:3 ``` Para atualizar o nível de prioridade de uma tarefa específica após sua criação, use a opção `--priority`/`-p` junto com o id da tarefa prefixado com um `@` e um número inteiro de valor `1`, `2` ou `3`. Note que a ordem em que o id da tarefa e o nível de prioridade são colocados não são significantes. ``` $ tb -p @1 2 ``` ### Mover Item Para mover um item para um ou mais quadros, use a opção `--move`/`-m`, seguido dos ids dos itens prefixado com um `@` e o nome dos quadros de destino. O quadro padrão `My board` pode ser acessado pela palavra-chave `myboard`. A ordem em que os ids do itens e os nomes dos quadros são colocados não são significantes. ``` $ tb -m @1 myboard reviews ``` ### Deletar Item Para deletar um ou mais itens, use a opção `--delete`/`-d` seguido dos ids dos itens que deseja deletar. Note que itens deletados são automaticamente arquivados e podem ser inspecionados ou restaurados a qualquer momento. Ids duplicados são automaticamente filtrados. ``` $ tb -d 1 2 ``` ### Deletar Tarefas Completadas Para deletar todas as tarefas completadas de uma vez em todos os quadros, use a opção `--clear`. Note que itens deletados são automaticamente arquivados e podem ser inspecionados ou restaurados a qualquer momento. Esta opção não tem nenhum atalho afim de evitar possíveis acidentes de uso. ``` $ tb --clear ``` ### Mostrar Arquivo Para mostrar todos os itens arquivados, use a opção `--archive`/`-a`. Note que todos os itens arquivados são mostrados em uma linha do tempo, baseados em sua data de criação. ``` $ tb -a ``` ### Restaurar Itens Para restaurar um ou mais itens, use a opção `--restore`/`-r` seguido dos ids dos itens que deseja restaurar. Note que os ids dos itens arquivados podem ser vistos invocando a opção `--archive`/`-a`. Ids duplicados são automaticamente filtrados. ``` $ tb -r 1 2 ``` ### Listar Itens Para listar um grupo de itens onde cada item cumpre com um conjunto de atributos especĩficos, use a opção `--list`/`-l` seguido dos atributos desejados. Nomes de quadros com características dos itens podem ser considerados atributos de listagem válidos. Por exemplo, para listar todos os itens que pertencem ao quadro padrão `myboard` e são tarefas pendentes, o comando a seguir pode ser usado: ``` $ tb -l myboard pending ``` Os atributos de listagem padrão suportados, junto com seus respectivos atalhos, são os seguintes: - `myboard` - Itens que pertencem ao quadro `My board`. - `task`, `tasks`, `todo` - Itens que são tarefas. - `note`, `notes` - Itens que são notas. - `pending`, `unchecked`, `incomplete` - Itens que são tarefas pendentes. - `progress`, `started`, `begun` - Itens que são tarefas em progresso. - `done`, `checked`, `complete` - Itens que são tarefas completadas. - `star`, `starred` - Itens favoritados ### Pesquisar Itens Para pesquisar por um ou mais itens, use a opção `--find`/`-f`, seguido dos termos que deseja pesquisar. ``` $ tb -f documentation ``` ## Desenvolvimento Para mais informações sobre como contribuir com o projeto, por favor leia o [guia de contribução](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md). - Fork o repositório e faça um clone para sua máquina - Navegue até o local do clone: `cd taskbook` - Instale as dependências do projeto: `npm install` or `yarn install` - Teste o código em busca de erros: `npm test` or `yarn test` ## Relacionados - [signale](https://github.com/klaudiosinani/signale) - Highly configurable logging utility - [qoa](https://github.com/klaudiosinani/qoa) - Minimal interactive command-line prompts - [hyperocean](https://github.com/klaudiosinani/hyperocean) - Deep oceanic blue Hyper terminal theme ## Time - Klaudio Sinani [(@klaudiosinani)](https://github.com/klaudiosinani) - Mario Sinani [(@mariosinani)](https://github.com/mariosinani) ## Licença [MIT](https://github.com/klaudiosinani/taskbook/blob/master/license.md) ================================================ FILE: docs/readme.RU.md ================================================

Taskbook

📓 Задачи, разделы и заметки для коммандной строки

Boards

Build Status

## Описание Используя простой и минимальный синтаксис, taskbook позволяет эффективно управлять задачами и заметками из разных разделов в терминале. Все данные атомарно записываются в хранилище для предотвращения повреждений и никому и никуда не передаются. Удаленные записи автоматически сохраняются в архиве и могут быть просмотрены, либо восстановлены в любой момент. Можете прочитать этот документ на: [Albanian - Shqip](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.AL.md), [Polski](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PL.md), [简体中文](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ZH.md), [English](https://github.com/klaudiosinani/taskbook/blob/master/readme.md), [Français](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.FR.md), [Deutsch](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.GER.md), [Portuguese](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PT-BR.md), [日本語](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.JP.md), [한국어](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.KR.md). Зайдите на [contributing guidelines](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md#translating-documentation) для того, чтобы больше узнать о том, как перевести этот документ на другие языки. ## Особенности - Организация задач и заметок в разделах задач - Раздел задач и просмотр хронологии - Механизм для указания приоритетности и добавления в избранное - Поиск и фильтрация записей - Архивация и восстановление удаленных записей - Легкий и быстрый - Данные автоматически записываются в хранилище - Выбор места хранилища - Просмотр прогресса - Простое и минимальное использование синтаксиса - Уведомления об обновлениях - Конфигурируемый через `~/.taskbook.json` - Данные хранятся в формате JSON в `~/.taskbook/storage` Просморите особенности в [разделе taskbook](https://raw.githubusercontent.com/klaudiosinani/taskbook/master/media/highlights.png). ## Содержание - [Описание](#description) - [Особенности](#highlights) - [Установка](#install) - [Использование](#usage) - [Обзоры](#views) - [Конфигурация](#configuration) - [Руководство по полету](#flight-manual) - [Разработка](#development) - [Относится](#related) - [Команда](#team) - [Лицензия](#license) ## Установка ```bash npm install --global taskbook ``` ## Использование ``` $ tb --help Использование $ tb [ ...] Опции none Показать разделы --task, -t Создать задачу --note, -n Создать заметку --timeline, -i Отобразить хронологию --delete, -d Удаление записи --check, -c Поставить/Отменить метку на задаче --star, -s Добавить/Убрать запись в избранное --list, -l Показать элементы списком по атрибутам --find, -f Поиск по записям --edit, -e Редактировать описание записи --move, -m Переместить запись между разделами --priority, -p Обновить приоритет задачи --archive, -a Отобразить архивированные записи --restore, -r Восстановить записи из архива --help, -h Показать текст помощи --version, -v Показать установленную версию Примеры $ tb $ tb --task Сделать сэндвич $ tb --task @кодинг Улучшить документацию $ tb --task @кодинг @обзоры Обзор PR #42 $ tb --note @кодинг Mergesort худший случай O(nlogn) $ tb --check 1 2 $ tb --delete 4 $ tb --star 2 $ tb --priority @3 2 $ tb --timeline $ tb --edit @3 Merge PR #42 $ tb --move @1 готовка $ tb --find документация $ tb --list pending кодинг $ tb --archive $ tb --restore 4 ``` ## Обзоры ### Обзор раздела Запуск taskbook без каких-либо опций покажет все сохраненные записи, сгрупированные по их соответвующим разделам.
Boards
### Обзор хронологии Для просмотра всех записей в хронологическом порядке (по дате создания), может быть использована опция `--timeline`/`-i`.
Timeline View
## Конфигурация Для настройки taskbook, откройте файл `~/.taskbook.json` и измените любые опции под себя. Для восстановления настроек по умолчанию, просто удалите конфигурацинный файл в домашней директории. Ниже показаны все доступные опции и их соответвствующие значения по умолчанию. ```json { "taskbookDirectory": "", "displayCompleteTasks": true, "displayProgressOverview": true } ``` ### Детально ##### `taskbookDirectory` - Тип: `String` - По умолчанию: `~` Полный системный путь, где хранилище будет создано и т.д; `/home/username/the-cloud` Если оставите неопределенным, домашний каталог `~` будет использован и taskbook будет настроен внутри `~/.taskbook/`. ##### `displayCompleteTasks` - Тип: `Boolean` - По умолчанию: `true` Показ задач, которые завершены ##### `displayProgressOverview` - Тип: `Boolean` - По умолчанию: `true` Показ прогресса ниже хронологии и обзора разделов. ## Руководство по полетам Ниже приведено небольшое руководство с примерами по использованию taskbook. В случае, если вы обнаружили ошибку или считаете, что пример недостаточно понятен и может быть объяснен лучше, не стесняйтесь заводить [issue](https://github.com/klaudiosinani/taskbook/issues/new/choose), либо [pull request](https://github.com/klaudiosinani/taskbook/compare). ### Создать задачу Для создания новой задачи используйте опцию `--task`/`-t` следуя с описанием вашей задачи. ``` $ tb -t Улучшить документацию ``` ### Создать заметку Для создания новой заметки используйте опцию `--note`/`-n` с последующим описанием вашей заметки. ``` $ tb -n Mergesort худший случай O(nlogn) ``` ### Создать раздел Разделы создаются автоматически при создании новой задачи, либо новой заметки. Для создания одного и более разделов, укажите их названия с префиксом `@` в описании записей, которые создаются. В конечном результате, новая запись будет создана во всех указанных разделах. Все записи, у которых не указан раздел, автоматически добавляются в раздел по умолчанию; `My Board`. ``` $ tb -t @кодинг @доки Обновление руководста по контрибуции ``` ### Пометить задачу Чтобы пометить задачу как выполненная/невыполненная, используйте опцию `--check`/`-c` c последующими id ваших задач. Заметьте, что данная опция обновит статус `complete` задач на противоположный, поэтому пометка завершенной задачи будет отображатся как в процессе, а та задача, которая в процессе на завершенную. Дублирующиеся id автоматически отфильтровываются. ``` $ tb -c 1 3 ``` ### Добавить запись в избранные Чтобы отметить одну и более задачи, как избранные, используйте опцию `--star`/`-s` с последующими id выбранных записей. Функциональность данной опции такая же, как у опции `--check` описаной выше. ``` $ tb -s 1 2 3 ``` ### Отображение разделов Запуск taskbook без опций отобразит все сохраненные записи, сгруппированные по разделам. ``` $ tb ``` ### Отображение хронологии Для отображения всех записей в хронологическом порядке, основанное на дате создания, может быть использована опция `--timeline`/`-i`. ``` $ tb -i ``` ### Назначение приоритета Чтобы назначить приоритет для задачи по время создания, добавьте синтакс `p:x`в описании задачи, где `x` может быть числом `1`, `2` или `3`. Заметьте, что все задачи по умолчанию создаются с нормальным приоритетом - `1`. - `1` - Нормальный приоритет - `2` - Средний приоритет - `3` - Высокий приоритет ``` $ tb -t @кодинг Исправить проблему `#42` p:3 ``` Чтобы обновить приоритет определенной задачи после создания, используйте опцию `--priority`/`-p` вместе с id задачи c префиком `@` и числом `1`, `2` или `3`. Заметьте, что порядок указания id задачи и приоритета не важен. ``` $ tb -p @1 2 ``` ### Перемещение записи Для того, чтобы переместить записи в один или более разделов, необходимо использовать опцию `--move`/`-m` , с последующим id записи с префиксом @ и названием разделов, в которые вы хотите ее перенести. Раздел по умолчанию `My board` обозначается с помощью ключевого слова `myboard`. Порядок указания id задачи и названия разделов в команде не важен. ``` $ tb -m @1 myboard отзывы ``` ### Удаление записи Для удаления одной и более записей используйте опцию `--delete`/`-d` с последующим id записей. Заметьте, что удаленные записи автоматически архивируются и могут быть просмотрены, либо восстановлены в любой момент. Дублирующиеся id автоматически отфильтровываются. ``` $ tb -d 1 2 ``` ### Отображение архива Для отображения архивированных записей используйте опцию `--archive`/`-a`. Заметьте, что все архивированные записи будут отображаться в хронологическом порядке по дате создания. ``` $ tb -a ``` ### Восстановление записей Для восстановления одной и более записей используйте опцию `--restore`/`-r` с последующим id записей. Заметьте, что id архивированных записей могут быть получены при запуске с опцией `--archive`/`-a`. Дублирующиеся id автоматически отфильтровываются. ``` $ tb -r 1 2 ``` ### Вывести записи списком Чтобы вывести группу записей списком, где каждая запись соответствует указанным атрибутам, используйте опцию `--list`/`-l` вместе с необходимыми атрибутами. Названия разделов вместе со статусом записи могут использоваться в качестве атрибутов. Для примера отображения записей списком, которые относятся к разделу по умолчанию `myboard` и имеют статус `pending` (в ожидании), следующая команда может быть использована; ``` $ tb -l myboard pending ``` Ниже приведены поддерживаемые по-умолчанию атрибуты списка вместе с их псевдонимами; - `myboard` - Записи, которые принадлежат разделу `My board` - `task`, `tasks`, `todo` - Записи, которые являются задачами. - `note`, `notes` - Записи, которые являются заметками. - `pending`, `unchecked`, `incomplete` - Записи, которые находятся в ожидании. - `done`, `checked`, `complete` - Записи, которые являются завершенными. - `star`, `starred` - Записи, добавленные в избранные. ### Поиск записей Для поиска одной и более записей используйте опцию `--find`/`-f`, с последующим словом для поиска. ``` $ tb -f документация ``` ## Разработка Для большей информации о том, как можно способствовать этому проекту, пожалуйста, прочитайте [contributing guidelines](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md). - Форкните данный репозиторий и склонируйте на вашу машину - Перейдите в ваш склонированный проект: `cd taskbook` - Установите зависимости проекта: `npm install` либо `yarn install` - Проверьте код на ошибки: `npm test` либо `yarn test` ## Относится - [chalk](https://github.com/chalk/chalk) - Стилизация строк в терминале - [signale](https://github.com/klaudiosinani/signale) - Автономный консольный логгер ## Команда - Klaudio Sinani [(@klaudiosinani)](https://github.com/klaudiosinani) ## Лицензия [MIT](https://github.com/klaudiosinani/taskbook/blob/master/license.md) ================================================ FILE: docs/readme.TR.md ================================================

Taskbook

Komut satırı ortamı için görevler, panolar ve notlar

Boards

Build Status

## Tanım Düz bir öğrenme eğrisi gerektiren basit ve minimum kullanım sözdizimini kullanan görev kitabı, terminalinizin içinden birden fazla panodaki görevlerinizi ve notlarınızı etkili bir şekilde yönetmenize olanak tanır. Bozulmaların önlenmesi amacıyla tüm veriler atomik olarak depoya yazılır ve hiçbir kimseyle veya hiçbir şeyle paylaşılmaz. Silinen öğeler otomatik olarak arşivlenir ve her an incelenebilir veya geri yüklenebilir. Bu belgeyi şurada okuyun: [Albanian - Shqip](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.AL.md), [Polski](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PL.md), [简体中文](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ZH.md), [Русский](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.RU.md), [Français](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.FR.md), [Deutsch](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.GER.md), [Portuguese](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PT-BR.md), [日本語](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.JP.md), [한국어](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.KR.md), [Spanish](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ES.md), [Bulgarian](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.BG.md), [Türkçe](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.TR.md). Artık geliştirme sürecini şu şekilde destekleyebilirsiniz: [GitHub Sponsors](https://github.com/sponsors/klaudiosinani). Bu belgenin daha fazla dile nasıl çevrileceği hakkında daha fazla bilgi edinmek için [Katkıda bulunma yönergelerini](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md#translating-documentation) ziyaret edin. ## Öne Çıkanlar - Görevleri ve notları panolara düzenleyin - Pano ve zaman çizelgesi görünümleri - Öncelik ve favori mekanizmalar - Öğeleri arayın ve filtreleyin - Silinen öğeleri arşivleyin ve geri yükleyin - Hafif ve hızlı - Veriler atomik olarak depoya yazılır - Özel depolama konumu - İlerlemeye genel bakış - Basit ve minimum kullanım sözdizimi - Bildirimleri güncelle - Şununla yapılandırılabilir: `~/.taskbook.json` - JSON dosyasında saklanan veriler `~/.taskbook/storage` [Görev defteri panosundaki](https://raw.githubusercontent.com/klaudiosinani/taskbook/master/media/highlights.png) öne çıkanları görüntüleyin. ## İçindekiler - [Tanım](#description) - [Öne Çıkanlar](#highlights) - [Kurulum](#install) - [Kullanım](#usage) - [Görüntüleme](#views) - [Yapılandırma](#configuration) - [Uçuş Kılavuzu](#flight-manual) - [Geliştirme](#development) - [İlgili](#related) - [Takım](#team) - [Lisans](#license) ## Kurulum ### Yarn ```bash yarn global add taskbook ``` ### NPM ```bash npm install --global taskbook ``` ### Snapcraft ```bash snap install taskbook snap alias taskbook tb # takma ad belirle ``` **Note:** Snap'in kesinlikle sınırlı doğası nedeniyle, hem depolama hem de yapılandırma dosyaları genel `$HOME` yerine [`$SNAP_USER_DATA`](https://docs.snapcraft.io/reference/env) ortam değişkeni altına kaydedilecektir. ## Kullanım ``` $ tb --help Kullanım $ tb [ ...] Seçenekler none Ekran panosu görünümü --archive, -a Arşivlenen öğeleri görüntüle --begin, -b Görevi başlat/duraklat --check, -c Görevi işaretleyin/işaretini kaldırın --clear İşaretli tüm öğeleri sil --copy, -y Öğe açıklamasını kopyala --delete, -d Öğeyi silmek --edit, -e Öğe açıklamasını düzenle --find, -f Öğeleri ara --help, -h Yardım mesajını görüntüle --list, -l Öğeleri özniteliklere göre listeleme --move, -m Öğeyi panolar arasında taşı --note, -n Not oluştur --priority, -p Görevin önceliğini güncelle --restore, -r Öğeleri arşivden geri yükle --star, -s Öğeye yıldız ekleme/yıldızı kaldırma --task, -t Görev oluştur --timeline, -i Zaman çizelgesi görünümünü görüntüle --version, -v Yüklü sürümü görüntüle Örnekler $ tb $ tb --archive $ tb --begin 2 3 $ tb --check 1 2 $ tb --clear $ tb --copy 1 2 3 $ tb --delete 4 $ tb --edit @3 Merge PR #42 $ tb --find documentation $ tb --list pending coding $ tb --move @1 cooking $ tb --note @coding Mergesort worse-case O(nlogn) $ tb --priority @3 2 $ tb --restore 4 $ tb --star 2 $ tb --task @coding @reviews Review PR #42 $ tb --task @coding Improve documentation $ tb --task Make some buttercream $ tb --timeline ``` ## Görüntüleme ### Pano Görünümü Görev kitabını herhangi bir seçenek olmadan çağırmak, kayıtlı tüm öğeleri ilgili panolarda gruplandırılmış olarak görüntüleyecektir.
Panolar
### Zaman Çizelgesi Görünümü Tüm öğeleri, oluşturulma tarihlerine göre zaman çizelgesi görünümünde görüntülemek için `--timeline` / `-i` seçeneği kullanılabilir.
Zaman Çizelgesi Görünümü
## Yapılandırma Görev kitabını yapılandırmak için "~/.taskbook.json" dosyasına gidin ve seçeneklerden herhangi birini kendi tercihinize uyacak şekilde değiştirin. Varsayılan değerlere sıfırlamak için yapılandırma dosyasını ana dizininizden silmeniz yeterlidir. Aşağıda mevcut tüm seçenekler ilgili varsayılan değerleriyle birlikte gösterilmektedir. ```json { "taskbookDirectory": "~", "displayCompleteTasks": true, "displayProgressOverview": true } ``` ### Detay ##### `taskbookDirectory` - Type: `String` - Default: `~` Depolamanın başlatılacağı dosya sistemi yolu, yani: `/home/kullanici_adi/the-cloud` veya `~/the-cloud` Tanımsız bırakılırsa `~` ana dizini kullanılacak ve görev kitabı `~/.taskbook/` altında ayarlanacaktır. ##### `displayCompleteTasks` - Type: `Boolean` - Default: `true` Tamamlandı olarak işaretlenen görevleri görüntüleyin. ##### `displayProgressOverview` - Type: `Boolean` - Default: `true` Zaman çizelgesi ve pano görünümlerinin altında ilerlemeye genel bakışı görüntüleyin. ## Uçuş Kılavuzu Aşağıda, görev kitabının nasıl kullanılacağına ilişkin bir dizi örnek içeren küçük bir kılavuz bulunmaktadır. Bir hata fark ettiyseniz veya örneğin yeterince açık olmadığını ve daha da geliştirilmesi gerektiğini düşünüyorsanız lütfen bir e-posta adresi açmaktan çekinmeyin. - [Issue](https://github.com/klaudiosinani/taskbook/issues/new/choose) - [Pull Request](https://github.com/klaudiosinani/taskbook/compare) ### Görev Oluştur Yeni bir görev oluşturmak için `--task` / `-t` seçeneğini kullanın ve hemen ardından görevinizin açıklamasını ekleyin. ``` $ tb -t Dokümantasyonu geliştirin ``` ### Not Oluştur Yeni bir not oluşturmak için notunuzun gövdesini hemen takip edecek şekilde `--note` / `-n` seçeneğini kullanın. ``` $ tb -n Mergesort worse-case O(nlogn) ``` ### Pano Oluştur Yeni bir görev veya not oluşturulurken panolar otomatik olarak başlatılır. Bir veya daha fazla pano oluşturmak için, oluşturulacak öğenin açıklamasına bu panoların adlarını "@" simgesinin önüne ekleyerek ekleyin. Sonuç olarak yeni oluşturulan öğe verilen tüm panolara ait olacaktır. Varsayılan olarak, açıklamasında herhangi bir pano adı bulunmayan öğeler otomatik olarak genel amaca eklenir. `My Board` ``` $ tb -t @coding @docs Update contributing guidelines ``` ### Görevi Kontrol Et Bir görevi tamamlandı/tamamlanmadı olarak işaretlemek için `--check` / `-c` seçeneğini ve ardından hedef görevlerin kimliklerini kullanın. Seçeneğin, verilen görevlerin "tamamlandı" durumuna karşıt olarak güncelleneceğini, dolayısıyla tamamlanmış bir görevin kontrol edilmesinin onu beklemede, bekleyen bir görevi de tamamlanmış olarak göstereceğini unutmayın. Yinelenen kimlikler otomatik olarak filtrelenir. ``` $ tb -c 1 3 ``` ### Görevi Başlat Bir görevi başlatıldı/duraklatıldı olarak işaretlemek için `--begin` / `-b` seçeneğini ve ardından hedef görevlerin kimliklerini kullanın. Bu seçeneğin işlevi yukarıda açıklanan '--check' seçeneğiyle aynıdır. ``` $ tb -b 2 3 ``` ### Yıldızlı Öğe Bir veya daha fazla öğeyi favori olarak işaretlemek için `--star` / `-s` seçeneğini ve ardından hedef öğelerin kimliklerini kullanın. Bu seçeneğin işlevi yukarıda açıklanan `--check` seçeneğiyle aynıdır. ``` $ tb -s 1 2 3 ``` ### Öğe Açıklamasını Kopyala Bir veya daha fazla öğenin açıklamasını sisteminizin panosuna kopyalamak için `--copy` / `-y` seçeneğini ve ardından hedef öğelerin kimliklerini kullanın. Bu seçeneğin, her bir bitişik kopyalanan açıklama çiftine ayırıcı olarak yeni satır karakterini de ekleyeceğini, böylece yapıştırıldığında net ve okunabilir bir cümle yığını elde edileceğini unutmayın. ``` $ tb -y 1 2 3 ``` ### Ekran Panoları Görev kitabını herhangi bir seçenek olmadan çağırmak, kayıtlı öğelerin tamamını ilgili panolarda gruplandırarak görüntüleyecektir. ``` $ tb ``` ### Zaman Çizelgesini Görüntüle Tüm öğeleri, oluşturulma tarihlerine göre zaman çizelgesi görünümünde görüntülemek için `--timeline` / `-i` seçeneği kullanılabilir. ``` $ tb -i ``` ### Önceliği Ayarla Bir görevi başlatırken bir öncelik düzeyi ayarlamak için, görevin açıklamasına `p:x` sözdizimini ekleyin; burada x, `1`, `2` veya `3` değerinde bir tamsayı olabilir. Varsayılan olarak tüm görevlerin normal bir öncelikle `1` oluşturulduğunu unutmayın. - `1` - Normal öncelik - `2` - Orta öncelik - `3` - Yüksek öncelik ``` $ tb -t @coding Fix issue `#42` p:3 ``` Belirli bir görevin oluşturulduktan sonra öncelik düzeyini güncellemek için, hedef görevin kimliğiyle birlikte `--priority` / `-p` seçeneğini, önüne `@` sembolü ve `1` değerinde bir tamsayı kullanın. , `2` veya `3`. Hedef kimliğinin ve öncelik düzeyinin yerleştirildiği sıranın önemli olmadığını unutmayın. ``` $ tb -p @1 2 ``` ### Öğeyi Taşı To move an item to one or more boards, use the `--move` / `-m` option, followed by the target item id, prefixed by the `@` symbol, and the name of the destination boards. The default `My board` can be accessed through the `myboard` keyword. The order in which the target id and board names are placed is not significant. ``` $ tb -m @1 myboard reviews ``` ### Öğeyi Sil Bir veya daha fazla öğeyi silmek için `--delete` / `-d` seçeneklerini ve ardından hedef öğelerin kimliklerini kullanın. Silinen öğelerin otomatik olarak arşivlendiğini ve her an incelenebileceğini veya geri yüklenebileceğini unutmayın. Yinelenen kimlikler otomatik olarak filtrelenir. ``` $ tb -d 1 2 ``` ### İşaretli Görevleri Sil Tüm panolardaki tamamlanmış görevlerin tamamını tek seferde silmek/temizlemek için `--clear` seçeneğini kullanın. Silinen tüm görevlerin otomatik olarak arşivlendiğini ve her an incelenebileceğini veya geri yüklenebileceğini unutmayın. Olası kazara kullanımı engellemek için, `--clear` seçeneğinin daha kısa bir takma adı yoktur. ``` $ tb --clear ``` ### Arşivi Görüntüle Arşivlenen tüm öğeleri görüntülemek için `--archive` / `-a` seçeneğini kullanın. Arşivlenen tüm öğelerin, oluşturulma tarihlerine göre zaman çizelgesi görünümünde görüntülendiğini unutmayın. ``` $ tb -a ``` ### Öğeleri Geri Yükle Bir veya daha fazla öğeyi geri yüklemek için `--restore` / `-r` seçeneğini ve ardından hedef öğelerin kimliklerini kullanın. `--archive` / `-a` seçeneği çağrıldığında arşivlenen tüm öğelerin kimliklerinin görülebileceğini unutmayın. Yinelenen kimlikler otomatik olarak filtrelenir. ``` $ tb -r 1 2 ``` ### Öğeleri Listele Her bir öğenin belirli bir nitelik kümesiyle uyumlu olduğu bir öğe grubunu listelemek için `--list` / `-l` seçeneğini ve ardından istenen nitelikleri kullanın. Öğe özellikleriyle birlikte pano adları geçerli listeleme özellikleri olarak kabul edilebilir. Örneğin, varsayılan `myboard`'a ait olan ve bekleyen görevler olan tüm öğeleri listelemek için aşağıdakiler kullanılabilir; ``` $ tb -l myboard pending ``` Varsayılan olarak desteklenen listeleme özellikleri, ilgili takma adlarıyla birlikte aşağıdaki gibidir; - `myboard` - `My board`'a ait öğeler. - `task`, `tasks`, `todo` - Görev olan öğeler. - `note`, `notes` - Not olan öğeler. - `pending`, `unchecked`, `incomplete` - Görev bekleyen öğeler. - `progress`, `started`, `begun` - Devam eden görevler olan öğeler. - `done`, `checked`, `complete` - Görevleri tamamlayan öğeler. - `star`, `starred` - Yıldızlı öğeler. ### Öğeleri Ara Daha fazla öğeden birini aramak için `--find` / `-f` seçeneğini ve ardından arama terimlerinizi kullanın. ``` $ tb -f documentation ``` ## Geliştirme Projeye nasıl katkıda bulunacağınız hakkında daha fazla bilgi için lütfen [katkıda bulunma yönergelerini](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md) okuyun. - Depoyu klonlayın ve makinenize kopyalayın - Yerel klasörünüze gidin: `cd taskbook` - Proje bağımlılıklarını yükleyin: `npm install` or `yarn install` - Hatalar için kontrol edin: `npm test` or `yarn test` ## İlgili - [signale](https://github.com/klaudiosinani/signale) - Son derece yapılandırılabilir günlük kaydı yardımcı programı - [qoa](https://github.com/klaudiosinani/qoa) - Minimal etkileşimli komut satırı istemleri - [hyperocean](https://github.com/klaudiosinani/hyperocean) - Derin okyanus mavisi Hiper terminal teması ## Takım - Klaudio Sinani [(@klaudiosinani)](https://github.com/klaudiosinani) - Mario Sinani [(@mariosinani)](https://github.com/mariosinani) ## Lisans [MIT](https://github.com/klaudiosinani/taskbook/blob/master/license.md) ================================================ FILE: docs/readme.ZH.md ================================================

Taskbook

📓 任务,板块和笔记都在命令行这个栖息地

Boards

Build Status

## 描述 本应用通过使用简单且最小化的语法,以及平坦的学习曲线,使您可以在终端内跨多个板块,有效地管理任务和笔记。所有数据都以原子方式写入存储,以防止损坏,并且永远不会与任何第三方共享。已删除的条目会自动存档,并且可以随时被检查或恢复。 您可以使用以下语言阅读本文档: [Albanian - Shqip](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.AL.md), [English](https://github.com/klaudiosinani/taskbook/blob/master/readme.md), [Polski](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PL.md), [简体中文](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ZH.md), [Русский](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.RU.md), [Français](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.FR.md), [Deutsch](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.GER.md), [Portuguese](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PT-BR.md), [日本語](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.JP.md), [한국어](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.KR.md), [Spanish](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ES.md), [Bulgarian](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.BG.md). 访问[贡献指南](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md#translating-documentation)了解有关如何将此文档翻译成更多语言的更多信息. ## 亮点 - 组织任务和笔记到板块 - 板块和时间表视图 - 优先和喜爱的机制 - 搜索和过滤条目 - 存档并恢复已删除的条目 - 轻巧快速 - 数据以原子方式写入存储 - 自定义存储位置 - 进展概览 - 简单和最小的使用语法 - 更新通知 - 可通过`~/.taskbook.json`实现配置化 - 数据存储在JSON文件中`~/.taskbook/storage` 查看亮点[taskbook 黑板报](https://raw.githubusercontent.com/klaudiosinani/taskbook/master/media/highlights.png). ### 目录 - [描述](#%E6%8F%8F%E8%BF%B0) - [亮点](#%E5%BC%BA%E8%B0%83) - [安装](#%E5%AE%89%E8%A3%85) - [用法](#%E7%94%A8%E6%B3%95) - [查看](#%E6%9F%A5%E7%9C%8B) - [配置](#%E9%85%8D%E7%BD%AE) - [飞行手册](#%E9%A3%9E%E8%A1%8C%E6%89%8B%E5%86%8C) - [开发](#%E5%8F%91%E5%B1%95) - [相关](#%E6%9C%89%E5%85%B3) - [团队](#%E5%9B%A2%E9%98%9F) - [授权协议](#%E6%89%A7%E7%85%A7) ## 安装 ### Yarn ```bash yarn global add taskbook ``` ### NPM ```bash npm install --global taskbook ``` ### Snapcraft ```bash snap install taskbook snap alias taskbook tb # set alias ``` ## 用法 $ tb --help 用法 $ tb [ ...] Options none 显示板块视图 --archive, -a 显示已归档的条目 --begin, -b 开始/暂停 任务 --check, -c 完成/暂停 任务 --clear 删除所有已完成任务 --copy, -y 复制条目描述 --delete, -d 删除条目 --edit, -e 编辑条目描述 --find, -f 搜索条目 --help, -h 显示帮助信息 --list, -l 按属性列出条目 --move, -m 在板块之间移动条目 --note, -n 创建笔记 --priority, -p 更新任务的优先级 --restore, -r 从存档还原条目 --star, -s 收藏/取消收藏 条目 --task, -t 创建任务 --timeline, -i 显示时间线视图 --version, -v 显示已安装的版本 示例 $ tb $ tb --archive $ tb --begin 2 3 $ tb --check 1 2 $ tb --clear $ tb --copy 1 2 3 $ tb --delete 4 $ tb --edit @3 Merge PR #42 $ tb --find documentation $ tb --list pending coding $ tb --move @1 cooking $ tb --note @coding Mergesort worse-case O(nlogn) $ tb --priority @3 2 $ tb --restore 4 $ tb --star 2 $ tb --task @coding @reviews Review PR #42 $ tb --task @coding Improve documentation $ tb --task Make some buttercream $ tb --timeline ## 查看 ### 板块视图 在没有任何选项的情况下调用 taskbook,将显示分组到各自板中的所有条目。
Boards
### 时间线视图 为了显示时间线视图中的所有条目,根据其创建日期,`--timeline`/`-i`选项可以使用。
Timeline View
## 配置 要配置 taskbook ,可定位到`~/.taskbook.json`并根据您的个人喜好修改任何配置选项。如果要重置回默认值,只需从主目录中删除配置文件即可。 以下说明了所有可用选项及其各自的默认值: ```json { "taskbookDirectory": "", "displayCompleteTasks": true, "displayProgressOverview": true } ``` ### 配置细节 ##### `taskbookDirectory` - 类型: `String` - 默认: `~` 初始化存储完成文件的系统路径,比如:`/home/username/the-cloud`或者`~/the-cloud`。 如果未配置本选项,将默认设置为`~/.taskbook/`。 ##### `displayCompleteTasks` - 类型: `Boolean` - 默认: `true` 显示标记为完成的任务. ##### `displayProgressOverview` - 类型: `Boolean` - 默认: `true` 在时间线和任务板视图下方显示进度概述。 ## 飞行手册 以下是一个小练习,其中包含一组有关如何使用 taskbook 的示例。如果您发现错误或认为某个示例不够清晰并且应该进一步改进,请随时打开[issue](https://github.com/klaudiosinani/taskbook/issues/new/choose)或[Pull 请求](https://github.com/klaudiosinani/taskbook/compare)。 ### 创建任务 要创建新任务,请使用`--task`/`-t`并在后面加上任务说明。 $ tb -t Improve documentation ### 创建笔记 要创建新笔记,请使用`--note`/`-n`并在后面加上笔记正文。 $ tb -n Mergesort worse-case O(nlogn) ### 创建板块 如果创建新任务或笔记时,指定的板块不存在,那么会自动新建并初始化板块。 如果想要将新的任务条目指定给新的板块,那么可以在任务描述前,使用`@`作为前缀,并加上新的板块的名称(可以多个板块一并创建)。 此时,新创建的任务条目将属于所有给定的板块。 如果任务条目描述中不包含任何板块名称,那么默认情况下,会自动添加到通用的:`My Board`。 $ tb -t @coding @docs Update contributing guidelines ### 完成任务 要将任务标记为『完成/待处理』,请使用`--check`/`-c`选项后跟目标任务的 ID。 请注意,该选项将自动转换给定任务的`complete/pending`(完成/待处理)状态。因此,『完成状态条目』 -> `-c` -> 『待处理状态』;『待处理状态条目』 -> `-c` -> 『完成状态条目』。 重复的ID会自动过滤掉。 $ tb -c 1 3 ### 开始任务 要将任务标记为『开始/暂停』,请使用`--begin`/`-b`选项后跟目标任务的 ID。该选项的功能对条目状态转换与`--check`选项功能相同。 ### 收藏条目(Star) 要将一个或多个条目标记为收藏,请使用`--star`/`-s`选项后加上目标项的 ID。该选项的功能对条目状态转换与`--check`选项功能相同。 $ tb -s 1 2 3 ### 复制条目描述 要复制一个或多个条目描述到你的系统剪贴板,请使用`--copy`/`-y`选项后加上目标项的 ID。请注意,该选项会使用回车符作为每个描述的分隔符,从而在剪贴板生成清晰可读的格式。 ### 显示板块 在没有任何选项的情况下调用 taskbook 将显示分组到各自板中的所有已保存条目。 $ tb ### 显示时间轴 想要根据其创建日期,来显示时间线视图中的所有条目,可以使用`--timeline`/`-i`选项。 $ tb -i ### 设置优先级 要在初始化任务时设置任务的优先级,请包括`p:x`任务描述中的语法。 其中x可以是值的整数`1`、`2`或`3`。请注意,默认情况下,所有任务都以正常优先级`1`创建。 - `1`- 正常优先 - `2`- 中等优先级 - `3`- 高度优先 $ tb -t @coding Fix issue `#42` p:3 要在创建特定任务后更新特定任务的优先级,请使用`--priority`/`-p`选项,紧接着是`@id`(任务条目的`id`),最后是优先等级。 目标ID和优先级的放置顺序 并不重要. $ tb -p @1 2 ### 移动条目 要将条目移动到一个或多个板块,请使用`--move`/`-m`选项,后跟`@id`(任务条目的`id`),最后是目标板块的名称。 默认板块`My Board`可以通过`myboard`关键词来访问。目标 ID 和任务版块名称的放置顺序并不重要。 $ tb -m @1 myboard reviews ### 删除条目 要删除一个或多个条目,请使用`--delete`/`-d`选项后跟目标条目的 ID。 已删除的条目会自动存档,并且可以随时完成或还原。重复的 ID 会被自动过滤掉。 $ tb -d 1 2 ### 删除已完成任务 要删除所有已完成任务,请使用`--clear`选项。请注意,所有被删除的任务会被自动保存,并且可以在任意时间点查看或还原。为了防止任何可能的意外情况,`--clear`选项没有别名。 ### 显示存档 要显示所有已存档条目,请使用`--archive`/`-a`选项。请注意,所有已存档条目都会根据其创建日期顺序显示在时间轴视图。 $ tb -a ### 还原条目 要恢复一个或多个条目,请使用`--restore`/`-r`选项后跟目标条目的 ID。请注意,该选项调用时可以看到所有已存档条目的 ID。重复的ID会自动过滤掉。 $ tb -r 1 2 ### 列出条目 要列出一组条目,其中每个条目符合特定数量的属性,请使用`--list`/`-l`选项后跟所需的属性。板块名称和条目特征可以被视为有效的列表属性。 例如,列出属于默认值的所有条目`myboard`并且是待定任务,可以使用以下内容: $ tb -l myboard pending 默认支持的列表属性及其各自的别名如下: - `myboard` - 属于`My Board`的条目 - `task`, `tasks`, `todo` - 作为任务的条目 - `note`, `notes` - 作为笔记的条目 - `pending`, `unchecked`, `incomplete` - 待处理的任务条目 - `progress`, `started`, `begun` - 已开始的任务条目 - `done`, `checked`, `complete` - 已完成的任务条目 - `star`, `starred` - 已加星标的条目 ### 搜索条目 要搜索其中一个条目,请使用`--find`/`-f`选项,后跟您的搜索字词。 $ tb -f documentation ## 开发 有关如何为此项目做出贡献的更多信息,请阅读[贡献指南](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md)。 - Fork 此仓库库并将其克隆到您的计算机 - 定位到您的本地 Fork: `cd taskbook` - 安装项目依赖项: `npm install`或`yarn install` - 测试错误代码: `npm test`或`yarn test` ## 相关 - [signale](https://github.com/klaudiosinani/signale) - Hackable console logger - [qoa](https://github.com/klaudiosinani/qoa) - Minimal interactive command-line prompts - [hyperocean](https://github.com/klaudiosinani/hyperocean) - Deep oceanic blue Hyper terminal theme ## 团队 - Klaudio Sinani [(@klaudiosinani)](https://github.com/klaudiosinani) - Mario Sinani [(@mario-sinani)](https://github.com/mario-sinani) ## 授权协议 [MIT](https://github.com/klaudiosinani/taskbook/blob/master/license.md) ================================================ FILE: docs/readme.md ================================================ ## Taskbook Translated Documentation - [Albanian - Shqip](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.AL.md) by [@klaudiosinani](https://github.com/klaudiosinani) - [Polski](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PL.md) by [@luknij-lab](https://github.com/luknij-lab) - [简体中文 - Simplified Chinese](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ZH.md) by [@chinanf-boy](https://github.com/chinanf-boy), [@rosuH](https://github.com/rosuH), [@metauro](https://github.com/metauro) - [Русский - Russian](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.RU.md) by [@zhadyrassyn](https://github.com/zhadyrassyn), [@gebeto](https://github.com/gebeto) - [Français - French](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.FR.md) by [@Maltemo](https://github.com/Maltemo) - [GERMAN](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.GER.md) by [@villabunterkunt](https://github.com/villabunterkunt) - [Portuguese](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PT-BR.md) by [@luanrv](https://github.com/luanrv) - [日本語](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.JP.md) by [@pyohei](https://github.com/pyohei) - [한국어 - Korean](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.KR.md) by [@Junebuug](https://github.com/Junebuug) - [Spanish](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ES.md) by [@spaceinvadev](https://github.com/spaceinvadev) - [Bulgarian](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.BG.md) by [@librafrog](https://github.com/librafrog) - [Türkçe](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.TR.md) by [@mehmetsalihyaldiz](https://github.com/mehmetsalihyaldiz) ## Contributing Visit the [contributing guidelines](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md#translating-documentation) to learn more on how to get involved in the translating process. ## Thanks Tons of thank you to the amazing people that help out with the creation and maintenance of the translations! Your contributions make Taskbook available to everyone around the world! ❤️ ================================================ FILE: index.js ================================================ #!/usr/bin/env node 'use strict'; const Taskbook = require('./src/taskbook'); const taskbookCLI = (input, flags) => { const taskbook = new Taskbook(flags); if (flags.archive) { return taskbook.displayArchive(); } if (flags.task) { return taskbook.createTask(input); } if (flags.restore) { return taskbook.restoreItems(input); } if (flags.note) { return taskbook.createNote(input); } if (flags.delete) { return taskbook.deleteItems(input); } if (flags.check) { return taskbook.checkTasks(input); } if (flags.begin) { return taskbook.beginTasks(input); } if (flags.star) { return taskbook.starItems(input); } if (flags.priority) { return taskbook.updatePriority(input); } if (flags.copy) { return taskbook.copyToClipboard(input); } if (flags.timeline) { taskbook.displayByDate(); return taskbook.displayStats(); } if (flags.find) { return taskbook.findItems(input); } if (flags.list) { taskbook.listByAttributes(input); return taskbook.displayStats(); } if (flags.edit) { return taskbook.editDescription(input); } if (flags.move) { return taskbook.moveBoards(input); } if (flags.clear) { return taskbook.clear(); } taskbook.displayByBoard(); return taskbook.displayStats(); }; module.exports = taskbookCLI; ================================================ FILE: license.md ================================================ MIT License Copyright (c) 2018 - present Klaudio Sinani (klaudiosinani.com) Mario Sinani (mario-sinani.github.io) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: package.json ================================================ { "name": "taskbook", "productName": "Taskbook", "version": "0.3.0", "description": "Tasks, boards & notes for the command-line habitat", "repository": "klaudiosinani/taskbook", "license": "MIT", "author": { "name": "Klaudio Sinani", "email": "klaudiosinani@protonmail.ch", "url": "https://klaudiosinani.com" }, "bin": { "tb": "cli.js" }, "engines": { "node": ">=6" }, "files": [ "src", "cli.js", "index.js" ], "keywords": [ "task", "board", "note", "todo", "notebook", "command", "line", "console", "cli", "app" ], "configuration": { "default": { "taskbookDirectory": "~", "displayCompleteTasks": true, "displayProgressOverview": true } }, "scripts": { "test": "xo" }, "dependencies": { "chalk": "^2.4.1", "clipboardy": "^1.2.3", "meow": "^5.0.0", "signale": "1.4.0", "update-notifier": "^2.5.0" }, "devDependencies": { "xo": "*" }, "xo": { "space": 2 } } ================================================ FILE: readme.md ================================================

Taskbook

Tasks, boards & notes for the command-line habitat

Boards
## Description By utilizing a simple and minimal usage syntax, that requires a flat learning curve, taskbook enables you to effectively manage your tasks and notes across multiple boards from within your terminal. All data are written atomically to the storage in order to prevent corruptions, and are never shared with anyone or anything. Deleted items are automatically archived and can be inspected or restored at any moment. Read this document in: [Albanian - Shqip](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.AL.md), [Polski](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PL.md), [简体中文](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ZH.md), [Русский](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.RU.md), [Français](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.FR.md), [Deutsch](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.GER.md), [Portuguese](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.PT-BR.md), [日本語](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.JP.md), [한국어](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.KR.md), [Spanish](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.ES.md), [Bulgarian](https://github.com/klaudiosinani/taskbook/blob/master/docs/readme.BG.md). You can now support the development process through [GitHub Sponsors](https://github.com/sponsors/klaudiosinani). Visit the [contributing guidelines](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md#translating-documentation) to learn more on how to translate this document into more languages. ## Highlights - Organize tasks & notes to boards - Board & timeline views - Priority & favorite mechanisms - Search & filter items - Archive & restore deleted items - Lightweight & fast - Data written atomically to storage - Custom storage location - Progress overview - Simple & minimal usage syntax - Update notifications - Configurable through `~/.taskbook.json` - Data stored in JSON file at `~/.taskbook/storage` - Data location can be overwritten at runtime View highlights in a [taskbook board](https://raw.githubusercontent.com/klaudiosinani/taskbook/master/media/highlights.png). ## Contents - [Description](#description) - [Highlights](#highlights) - [Install](#install) - [Usage](#usage) - [Views](#views) - [Configuration](#configuration) - [Flight Manual](#flight-manual) - [Development](#development) - [Related](#related) - [Team](#team) - [Sponsors](#sponsors) - [License](#license) ## Install ### Yarn ```bash yarn global add taskbook ``` ### NPM ```bash npm install --global taskbook ``` ### Snapcraft ```bash snap install taskbook snap alias taskbook tb # set alias ``` **Note:** Due to the snap's strictly confined nature, both the storage & configuration files will be saved under the [`$SNAP_USER_DATA`](https://docs.snapcraft.io/reference/env) environment variable instead of the generic `$HOME` one. ## Usage ``` $ tb --help Usage $ tb [ ...] Options none Display board view --archive, -a Display archived items --begin, -b Start/pause task --check, -c Check/uncheck task --clear Delete all checked items --copy, -y Copy item description --delete, -d Delete item --edit, -e Edit item description --find, -f Search for items --help, -h Display help message --list, -l List items by attributes --move, -m Move item between boards --note, -n Create note --priority, -p Update priority of task --restore, -r Restore items from archive --star, -s Star/unstar item --taskbook-dir Define a custom taskbook directory --task, -t Create task --timeline, -i Display timeline view --version, -v Display installed version Examples $ tb $ tb --archive $ tb --begin 2 3 $ tb --check 1 2 $ tb --clear $ tb --copy 1 2 3 $ tb --delete 4 $ tb --edit @3 Merge PR #42 $ tb --find documentation $ tb --list pending coding $ tb --move @1 cooking $ tb --note @coding Mergesort worse-case O(nlogn) $ tb --priority @3 2 $ tb --restore 4 $ tb --star 2 $ tb --taskbook-dir .custom-taskbook-dir $ tb --task @coding @reviews Review PR #42 $ tb --task @coding Improve documentation $ tb --task Make some buttercream $ tb --timeline ``` ## Views ### Board View Invoking taskbook without any options will display all saved items grouped into their respective boards.
Boards
### Timeline View In order to display all items in a timeline view, based on their creation date, the `--timeline`/`-i` option can be used.
Timeline View
## Configuration To configure taskbook navigate to the `~/.taskbook.json` file and modify any of the options to match your own preference. To reset back to the default values, simply delete the config file from your home directory. The following illustrates all the available options with their respective default values. ```json { "taskbookDirectory": "~", "displayCompleteTasks": true, "displayProgressOverview": true } ``` ### In Detail ##### `taskbookDirectory` - Type: `String` - Default: `~` Filesystem path where the storage will be initialized, i.e: `/home/username/the-cloud` or `~/the-cloud` If left undefined the home directory `~` will be used and taskbook will be set-up under `~/.taskbook/`. ##### `displayCompleteTasks` - Type: `Boolean` - Default: `true` Display tasks that are marked as complete. ##### `displayProgressOverview` - Type: `Boolean` - Default: `true` Display progress overview below the timeline and board views. ## Flight Manual The following is a minor walkthrough containing a set of examples on how to use taskbook. In case you spotted an error or think that an example is not to clear enough and should be further improved, please feel free to open an [issue](https://github.com/klaudiosinani/taskbook/issues/new/choose) or [pull request](https://github.com/klaudiosinani/taskbook/compare). ### Create Task To create a new task use the `--task`/`-t` option with your task's description following right after. ``` $ tb -t Improve documentation ``` ### Create Note To create a new note use the `--note`/`-n` option with your note's body following right after. ``` $ tb -n Mergesort worse-case O(nlogn) ``` ### Create Board Boards are automatically initialized when creating a new task or note. To create one or more boards, include their names, prefixed by the `@` symbol, in the description of the about-to-be created item. As a result the newly created item will belong to all of the given boards. By default, items that do not contain any board names in their description are automatically added to the general purpose; `My Board`. ``` $ tb -t @coding @docs Update contributing guidelines ``` ### Check Task To mark a task as complete/incomplete, use the `--check`/`-c` option followed by the ids of the target tasks. Note that the option will update to its opposite the `complete` status of the given tasks, thus checking a complete task will render it as pending and a pending task as complete. Duplicate ids are automatically filtered out. ``` $ tb -c 1 3 ``` ### Begin Task To mark a task as started/paused, use the `--begin`/`-b` option followed by the ids of the target tasks. The functionality of this option is the same as the one of the above described `--check` option. ``` $ tb -b 2 3 ``` ### Star Item To mark one or more items as favorite, use the `--star`/`-s` option followed by the ids of the target items. The functionality of this option is the same as the one of the above described `--check` option. ``` $ tb -s 1 2 3 ``` ### Copy Item Description To copy to your system's clipboard the description of one or more items, use the `--copy`/`-y` option followed by the ids of the target items. Note that the option will also include the newline character as a separator to each pair of adjacent copied descriptions, thus resulting in a clear and readable stack of sentences on paste. ``` $ tb -y 1 2 3 ``` ### Display Boards Invoking taskbook without any options will display all of saved items grouped into their respective boards. ``` $ tb ``` ### Display Timeline In order to display all items in a timeline view, based on their creation date, the `--timeline`/`-i` option can be used. ``` $ tb -i ``` ### Set Priority To set a priority level for a task while initializing it, include the `p:x` syntax in the task's description, where x can be an integer of value `1`, `2` or `3`. Note that all tasks by default are created with a normal priority - `1`. - `1` - Normal priority - `2` - Medium priority - `3` - High priority ``` $ tb -t @coding Fix issue `#42` p:3 ``` To update the priority level of a specific task after its creation, use the `--priority`/`-p` option along with the id the target task, prefixed by the `@` symbol, and an integer of value `1`, `2` or `3`. Note that the order in which the target id and priority level are placed is not significant. ``` $ tb -p @1 2 ``` ### Move Item To move an item to one or more boards, use the `--move`/`-m` option, followed by the target item id, prefixed by the `@` symbol, and the name of the destination boards. The default `My board` can be accessed through the `myboard` keyword. The order in which the target id and board names are placed is not significant. ``` $ tb -m @1 myboard reviews ``` ### Delete Item To delete one or more items, use the `--delete`/`-d` options followed by the ids of the target items. Note that deleted items are automatically archived, and can be inspected or restored at any moment. Duplicate ids are automatically filtered out. ``` $ tb -d 1 2 ``` ### Delete Checked Tasks To delete/clear all complete tasks at once across all boards, use the `--clear` option. Note that all deleted tasks are automatically archived, and can be inspected or restored at any moment. In order to discourage any possible accidental usage, the `--clear` option has no available shorter alias. ``` $ tb --clear ``` ### Display Archive To display all archived items, use the `--archive`/`-a` option. Note that all archived items are displayed in timeline view, based on their creation date. ``` $ tb -a ``` ### Restore Items To restore one or more items, use the `--restore`/`-r` option followed by the ids of the target items. Note that the ids of all archived items can be seen when invoking the `--archive`/`-a` option. Duplicate ids are automatically filtered out. ``` $ tb -r 1 2 ``` ### List Items To list a group of items where each item complies with a specific set of attributes, use the `--list`/`-l` option followed by the desired attributes. Board names along with item traits can be considered valid listing attributes. For example to list all items that belong to the default `myboard` and are pending tasks, the following could be used; ``` $ tb -l myboard pending ``` The by default supported listing attributes, together with their respective aliases, are the following; - `myboard` - Items that belong to `My board` - `task`, `tasks`, `todo` - Items that are tasks. - `note`, `notes` - Items that are notes. - `pending`, `unchecked`, `incomplete` - Items that are pending tasks. - `progress`, `started`, `begun` - Items that are in-progress tasks. - `done`, `checked`, `complete` - Items that complete tasks. - `star`, `starred` - Items that are starred. ### Search Items To search for one of more items, use the `--find`/`-f` option, followed by your search terms. ``` $ tb -f documentation ``` ### Runtime taskbook directory override To override the configured storage location, use the `--taskbook-dir` flag or TASKBOOK_DIR environment variable. While Taskbook is designed to provide a multiple board approach for all of your projects, these options enable alternative use cases. Setup per project storage or run multiple global boards like home and work. Note, if both the flag and environment variable are present Taskbook will use the flag value. ``` $ tb --taskbook-dir .custom-taskbook-dir ``` ``` $ TASKBOOK_DIR=~/hometasks tb ``` ## Development For more info on how to contribute to the project, please read the [contributing guidelines](https://github.com/klaudiosinani/taskbook/blob/master/contributing.md). - Fork the repository and clone it to your machine - Navigate to your local fork: `cd taskbook` - Install the project dependencies: `npm install` or `yarn install` - Lint the code for errors: `npm test` or `yarn test` ## Related - [signale](https://github.com/klaudiosinani/signale) - Highly configurable logging utility - [qoa](https://github.com/klaudiosinani/qoa) - Minimal interactive command-line prompts - [hyperocean](https://github.com/klaudiosinani/hyperocean) - Deep oceanic blue Hyper terminal theme ## Team - Klaudio Sinani [(@klaudiosinani)](https://github.com/klaudiosinani) - Mario Sinani [(@mariosinani)](https://github.com/mariosinani) ## Sponsors A big thank you to all the people and companies supporting our Open Source work: - [Better Stack: Spot, Resolve, and Prevent Downtime.](https://betterstack.com/) ## License [MIT](https://github.com/klaudiosinani/taskbook/blob/master/license.md) ================================================ FILE: snapcraft.yaml ================================================ name: taskbook version: '0.0.0' version-script: git describe --always | cut -c 2- summary: Tasks, boards & notes for the command-line habitat description: | By utilizing a simple and minimal usage syntax, that requires a flat learning curve, taskbook enables you to effectively manage your tasks and notes across multiple boards from within your terminal. grade: stable confinement: strict architectures: - amd64 - i386 - armhf apps: taskbook: command: tb plugs: - home - network - network-control - x11 parts: taskbook: plugin: nodejs node-engine: 10.15.0 node-package-manager: yarn source: . ================================================ FILE: src/config.js ================================================ 'use strict'; const fs = require('fs'); const os = require('os'); const path = require('path'); const pkg = require('../package.json'); const {join} = path; const {default: defaultConfig} = pkg.configuration; class Config { constructor() { this._configFile = join(os.homedir(), '.taskbook.json'); this._ensureConfigFile(); } _ensureConfigFile() { if (fs.existsSync(this._configFile)) { return; } const data = JSON.stringify(defaultConfig, null, 4); fs.writeFileSync(this._configFile, data, 'utf8'); } _formatTaskbookDir(path) { return join(os.homedir(), path.replace(/^~/g, '')); } get() { let config = {}; const content = fs.readFileSync(this._configFile, 'utf8'); config = JSON.parse(content); if (config.taskbookDirectory.startsWith('~')) { config.taskbookDirectory = this._formatTaskbookDir(config.taskbookDirectory); } return Object.assign({}, defaultConfig, config); } } module.exports = new Config(); ================================================ FILE: src/directory.js ================================================ 'use strict'; const fs = require('node:fs'); const os = require('node:os'); const path = require('node:path'); const config = require('./config'); const render = require('./render'); const { join, resolve } = path; class Directory { _taskbookDirectoryName = '.taskbook'; _userHomeDirectory = os.homedir(); get taskbookDirectoryName() { return this._taskbookDirectoryName; } get userConfigTaskbookParentDirectory() { const { taskbookDirectory } = config.get(); return taskbookDirectory; } get environmentVariableTaskbookParentDirectory() { return process.env.TASKBOOK_DIR; } retrieveTaskbookDirectory(options) { const customDirectory = this._resolveCustomTaskbookDirectory(options); if (customDirectory) { return customDirectory; } return this._composeTaskbookDirectory(this._userHomeDirectory); } _resolveCustomTaskbookDirectory(options) { const candidate = this._selectCustomDirectoryCandidate(options); if (!candidate) { return undefined; } const resolvedCandidate = this._parseDirectory(candidate); if (this._isTaskbookDirectoryPath(resolvedCandidate)) { const parentDirectory = path.dirname(resolvedCandidate); this._assertDirectoryExists(parentDirectory, candidate); return resolvedCandidate; } this._assertDirectoryExists(resolvedCandidate, candidate); return this._composeTaskbookDirectory(resolvedCandidate); } _selectCustomDirectoryCandidate(options) { const candidates = [ this._getTaskbookDirFlagCandidate(options), this.environmentVariableTaskbookParentDirectory, this.userConfigTaskbookParentDirectory, ]; return candidates.find(candidate => this._isPresentString(candidate)); } _getTaskbookDirFlagCandidate(options) { if (!Object.hasOwn(options, 'taskbookDir')) { return undefined; } const { taskbookDir } = options; if (!this._isPresentString(taskbookDir)) { render.missingTaskbookDirFlagValue(); process.exit(1); } return taskbookDir; } _isPresentString(value) { return this._isStringType(value) && !this._isEmptyString(value); } _assertDirectoryExists(directory, displayPath = directory) { if (this._isExistingDirectory(directory)) { return; } render.invalidCustomAppDir( this._formatInvalidTaskbookDirectoryCandidate(displayPath), ); process.exit(1); } _composeTaskbookDirectory(parentDirectory) { return join(parentDirectory, this.taskbookDirectoryName); } _isTaskbookDirectoryPath(directory) { return path.basename(directory) === this.taskbookDirectoryName; } _isExistingDirectory(directory) { const parsedDirectory = this._parseDirectory(directory); return fs.existsSync(parsedDirectory); } _formatInvalidTaskbookDirectoryCandidate(candidate) { if (!this._isDefined(candidate) || this._isEmptyString(candidate)) { return '""'; } return candidate; } _parseDirectory(directory) { const expandedDirectory = this._expandDirectory(directory); return resolve(expandedDirectory); } _isDefined(input) { return input !== undefined && input !== null; } _isStringType(input) { return typeof input === 'string'; } _isEmptyString(input) { return typeof input === 'string' && input.trim().length === 0; } _expandDirectory(directory) { return directory.replace(/^~(?=$|[\\/])/, os.homedir()); } } module.exports = new Directory(); ================================================ FILE: src/help.js ================================================ 'use strict'; module.exports = ` Usage $ tb [ ...] Options none Display board view --archive, -a Display archived items --begin, -b Start/pause task --check, -c Check/uncheck task --clear Delete all checked items --copy, -y Copy item description --delete, -d Delete item --edit, -e Edit item description --find, -f Search for items --help, -h Display help message --list, -l List items by attributes --move, -m Move item between boards --note, -n Create note --priority, -p Update priority of task --restore, -r Restore items from archive --star, -s Star/unstar item --taskbook-dir Define a custom taskbook directory --task, -t Create task --timeline, -i Display timeline view --version, -v Display installed version Examples $ tb $ tb --archive $ tb --begin 2 3 $ tb --check 1 2 $ tb --clear $ tb --copy 1 2 3 $ tb --delete 4 $ tb --edit @3 Merge PR #42 $ tb --find documentation $ tb --list pending coding $ tb --move @1 cooking $ tb --note @coding Mergesort worse-case O(nlogn) $ tb --priority @3 2 $ tb --restore 4 $ tb --star 2 $ tb --task @coding @reviews Review PR #42 $ tb --task @coding Improve documentation $ tb --task Make some buttercream $ tb --timeline `; ================================================ FILE: src/item.js ================================================ 'use strict'; const now = new Date(); class Item { constructor(options = {}) { this._id = options.id; this._date = now.toDateString(); this._timestamp = now.getTime(); this.description = options.description; this.isStarred = options.isStarred || false; this.boards = options.boards || []; } } module.exports = Item; ================================================ FILE: src/note.js ================================================ 'use strict'; const Item = require('./item'); class Note extends Item { constructor(options = {}) { super(options); this._isTask = false; } } module.exports = Note; ================================================ FILE: src/render.js ================================================ 'use strict'; const chalk = require('chalk'); const signale = require('signale'); const config = require('./config'); signale.config({displayLabel: false}); const {await: wait, error, log, note, pending, success} = signale; const {blue, green, grey, magenta, red, underline, yellow} = chalk; const priorities = {2: 'yellow', 3: 'red'}; class Render { get _configuration() { return config.get(); } _colorBoards(boards) { return boards.map(x => grey(x)).join(' '); } _isBoardComplete(items) { const {tasks, complete, notes} = this._getItemStats(items); return tasks === complete && notes === 0; } _getAge(birthday) { const daytime = 24 * 60 * 60 * 1000; const age = Math.round(Math.abs((birthday - Date.now()) / daytime)); return (age === 0) ? '' : grey(`${age}d`); } _getCorrelation(items) { const {tasks, complete} = this._getItemStats(items); return grey(`[${complete}/${tasks}]`); } _getItemStats(items) { let [tasks, complete, notes] = [0, 0, 0]; items.forEach(item => { if (item._isTask) { tasks++; if (item.isComplete) { return complete++; } } return notes++; }); return {tasks, complete, notes}; } _getStar(item) { return item.isStarred ? yellow('★') : ''; } _buildTitle(key, items) { const title = (key === new Date().toDateString()) ? `${underline(key)} ${grey('[Today]')}` : underline(key); const correlation = this._getCorrelation(items); return {title, correlation}; } _buildPrefix(item) { const prefix = []; const {_id} = item; prefix.push(' '.repeat(4 - String(_id).length)); prefix.push(grey(`${_id}.`)); return prefix.join(' '); } _buildMessage(item) { const message = []; const {isComplete, description} = item; const priority = parseInt(item.priority, 10); if (!isComplete && priority > 1) { message.push(underline[priorities[priority]](description)); } else { message.push(isComplete ? grey(description) : description); } if (!isComplete && priority > 1) { message.push(priority === 2 ? yellow('(!)') : red('(!!)')); } return message.join(' '); } _displayTitle(board, items) { const {title: message, correlation: suffix} = this._buildTitle(board, items); const titleObj = {prefix: '\n ', message, suffix}; return log(titleObj); } _displayItemByBoard(item) { const {_isTask, isComplete, inProgress} = item; const age = this._getAge(item._timestamp); const star = this._getStar(item); const prefix = this._buildPrefix(item); const message = this._buildMessage(item); const suffix = (age.length === 0) ? star : `${age} ${star}`; const msgObj = {prefix, message, suffix}; if (_isTask) { return isComplete ? success(msgObj) : inProgress ? wait(msgObj) : pending(msgObj); } return note(msgObj); } _displayItemByDate(item) { const {_isTask, isComplete, inProgress} = item; const boards = item.boards.filter(x => x !== 'My Board'); const star = this._getStar(item); const prefix = this._buildPrefix(item); const message = this._buildMessage(item); const suffix = `${this._colorBoards(boards)} ${star}`; const msgObj = {prefix, message, suffix}; if (_isTask) { return isComplete ? success(msgObj) : inProgress ? wait(msgObj) : pending(msgObj); } return note(msgObj); } displayByBoard(data) { Object.keys(data).forEach(board => { if (this._isBoardComplete(data[board]) && !this._configuration.displayCompleteTasks) { return; } this._displayTitle(board, data[board]); data[board].forEach(item => { if (item._isTask && item.isComplete && !this._configuration.displayCompleteTasks) { return; } this._displayItemByBoard(item); }); }); } displayByDate(data) { Object.keys(data).forEach(date => { if (this._isBoardComplete(data[date]) && !this._configuration.displayCompleteTasks) { return; } this._displayTitle(date, data[date]); data[date].forEach(item => { if (item._isTask && item.isComplete && !this._configuration.displayCompleteTasks) { return; } this._displayItemByDate(item); }); }); } displayStats({percent, complete, inProgress, pending, notes}) { if (!this._configuration.displayProgressOverview) { return; } percent = percent >= 75 ? green(`${percent}%`) : percent >= 50 ? yellow(`${percent}%`) : `${percent}%`; const status = [ `${green(complete)} ${grey('done')}`, `${blue(inProgress)} ${grey('in-progress')}`, `${magenta(pending)} ${grey('pending')}`, `${blue(notes)} ${grey(notes === 1 ? 'note' : 'notes')}` ]; if (pending + inProgress + complete + notes === 0) { log({prefix: '\n ', message: 'Type `tb --help` to get started'}); } log({prefix: '\n ', message: grey(`${percent} of all tasks complete.`)}); log({prefix: ' ', message: status.join(grey(' · ')), suffix: '\n'}); } invalidCustomAppDir(path) { const [prefix, suffix] = ['\n', red(path)]; const message = 'Custom app directory was not found on your system:'; error({prefix, message, suffix}); } missingTaskbookDirFlagValue() { const message = 'Please provide a value for --taskbook-dir or remove the flag.'; error({prefix: '\n ', message}); } invalidID(id) { const [prefix, suffix] = ['\n', grey(id)]; const message = 'Unable to find item with id:'; error({prefix, message, suffix}); } invalidIDsNumber() { const prefix = '\n'; const message = 'More than one ids were given as input'; error({prefix, message}); } invalidPriority() { const prefix = '\n'; const message = 'Priority can only be 1, 2 or 3'; error({prefix, message}); } markComplete(ids) { if (ids.length === 0) { return; } const [prefix, suffix] = ['\n', grey(ids.join(', '))]; const message = `Checked ${ids.length > 1 ? 'tasks' : 'task'}:`; success({prefix, message, suffix}); } markIncomplete(ids) { if (ids.length === 0) { return; } const [prefix, suffix] = ['\n', grey(ids.join(', '))]; const message = `Unchecked ${ids.length > 1 ? 'tasks' : 'task'}:`; success({prefix, message, suffix}); } markStarted(ids) { if (ids.length === 0) { return; } const [prefix, suffix] = ['\n', grey(ids.join(', '))]; const message = `Started ${ids.length > 1 ? 'tasks' : 'task'}:`; success({prefix, message, suffix}); } markPaused(ids) { if (ids.length === 0) { return; } const [prefix, suffix] = ['\n', grey(ids.join(', '))]; const message = `Paused ${ids.length > 1 ? 'tasks' : 'task'}:`; success({prefix, message, suffix}); } markStarred(ids) { if (ids.length === 0) { return; } const [prefix, suffix] = ['\n', grey(ids.join(', '))]; const message = `Starred ${ids.length > 1 ? 'items' : 'item'}:`; success({prefix, message, suffix}); } markUnstarred(ids) { if (ids.length === 0) { return; } const [prefix, suffix] = ['\n', grey(ids.join(', '))]; const message = `Unstarred ${ids.length > 1 ? 'items' : 'item'}:`; success({prefix, message, suffix}); } missingBoards() { const prefix = '\n'; const message = 'No boards were given as input'; error({prefix, message}); } missingDesc() { const prefix = '\n'; const message = 'No description was given as input'; error({prefix, message}); } missingID() { const prefix = '\n'; const message = 'No id was given as input'; error({prefix, message}); } successCreate({_id, _isTask}) { const [prefix, suffix] = ['\n', grey(_id)]; const message = `Created ${_isTask ? 'task:' : 'note:'}`; success({prefix, message, suffix}); } successEdit(id) { const [prefix, suffix] = ['\n', grey(id)]; const message = 'Updated description of item:'; success({prefix, message, suffix}); } successDelete(ids) { const [prefix, suffix] = ['\n', grey(ids.join(', '))]; const message = `Deleted ${ids.length > 1 ? 'items' : 'item'}:`; success({prefix, message, suffix}); } successMove(id, boards) { const [prefix, suffix] = ['\n', grey(boards.join(', '))]; const message = `Move item: ${grey(id)} to`; success({prefix, message, suffix}); } successPriority(id, level) { const prefix = '\n'; const message = `Updated priority of task: ${grey(id)} to`; const suffix = level === '3' ? red('high') : (level === '2' ? yellow('medium') : green('normal')); success({prefix, message, suffix}); } successRestore(ids) { const [prefix, suffix] = ['\n', grey(ids.join(', '))]; const message = `Restored ${ids.length > 1 ? 'items' : 'item'}:`; success({prefix, message, suffix}); } successCopyToClipboard(ids) { const [prefix, suffix] = ['\n', grey(ids.join(', '))]; const message = `Copied the ${ids.length > 1 ? 'descriptions of items' : 'description of item'}:`; success({prefix, message, suffix}); } } module.exports = new Render(); ================================================ FILE: src/storage.js ================================================ #!/usr/bin/env node 'use strict'; const crypto = require('crypto'); const fs = require('fs'); const path = require('path'); const directory = require('./directory'); const {basename, join} = path; class Storage { constructor(options = {}) { this._mainAppDir = directory.retrieveTaskbookDirectory(options); this._storageDir = join(this._mainAppDir, 'storage'); this._archiveDir = join(this._mainAppDir, 'archive'); this._tempDir = join(this._mainAppDir, '.temp'); this._archiveFile = join(this._archiveDir, 'archive.json'); this._mainStorageFile = join(this._storageDir, 'storage.json'); this._ensureDirectories(); } _ensureMainAppDir() { if (!fs.existsSync(this._mainAppDir)) { fs.mkdirSync(this._mainAppDir); } } _ensureStorageDir() { if (!fs.existsSync(this._storageDir)) { fs.mkdirSync(this._storageDir); } } _ensureTempDir() { if (!fs.existsSync(this._tempDir)) { fs.mkdirSync(this._tempDir); } } _ensureArchiveDir() { if (!fs.existsSync(this._archiveDir)) { fs.mkdirSync(this._archiveDir); } } _cleanTempDir() { const tempFiles = fs.readdirSync(this._tempDir).map(x => join(this._tempDir, x)); if (tempFiles.length !== 0) { tempFiles.forEach(tempFile => fs.unlinkSync(tempFile)); } } _ensureDirectories() { this._ensureMainAppDir(); this._ensureStorageDir(); this._ensureArchiveDir(); this._ensureTempDir(); this._cleanTempDir(); } _getRandomHexString(length = 8) { return crypto.randomBytes(Math.ceil(length / 2)).toString('hex').slice(0, length); } _getTempFile(filePath) { const randomString = this._getRandomHexString(); const tempFilename = basename(filePath).split('.').join(`.TEMP-${randomString}.`); return join(this._tempDir, tempFilename); } get() { let data = {}; if (fs.existsSync(this._mainStorageFile)) { const content = fs.readFileSync(this._mainStorageFile, 'utf8'); data = JSON.parse(content); } return data; } getArchive() { let archive = {}; if (fs.existsSync(this._archiveFile)) { const content = fs.readFileSync(this._archiveFile, 'utf8'); archive = JSON.parse(content); } return archive; } set(data) { data = JSON.stringify(data, null, 4); const tempStorageFile = this._getTempFile(this._mainStorageFile); fs.writeFileSync(tempStorageFile, data, 'utf8'); fs.renameSync(tempStorageFile, this._mainStorageFile); } setArchive(archive) { const data = JSON.stringify(archive, null, 4); const tempArchiveFile = this._getTempFile(this._archiveFile); fs.writeFileSync(tempArchiveFile, data, 'utf8'); fs.renameSync(tempArchiveFile, this._archiveFile); } } module.exports = Storage; ================================================ FILE: src/task.js ================================================ 'use strict'; const Item = require('./item'); class Task extends Item { constructor(options = {}) { super(options); this._isTask = true; this.isComplete = options.isComplete || false; this.inProgress = options.inProgress || false; this.isStarred = options.isStarred || false; this.priority = options.priority || 1; } } module.exports = Task; ================================================ FILE: src/taskbook.js ================================================ #!/usr/bin/env node 'use strict'; const clipboardy = require('clipboardy'); const Task = require('./task'); const Note = require('./note'); const Storage = require('./storage'); const render = require('./render'); class Taskbook { constructor(options = {}) { this._storage = new Storage(options); } get _archive() { return this._storage.getArchive(); } get _data() { return this._storage.get(); } _arrayify(x) { return Array.isArray(x) ? x : [x]; } _save(data) { this._storage.set(data); } _saveArchive(data) { this._storage.setArchive(data); } _removeDuplicates(x) { return [...new Set(this._arrayify(x))]; } _generateID(data = this._data) { const ids = Object.keys(data).map(id => parseInt(id, 10)); const max = (ids.length === 0) ? 0 : Math.max(...ids); return max + 1; } _validateIDs(inputIDs, existingIDs = this._getIDs()) { if (inputIDs.length === 0) { render.missingID(); process.exit(1); } inputIDs = this._removeDuplicates(inputIDs); inputIDs.forEach(id => { if (existingIDs.indexOf(Number(id)) === -1) { render.invalidID(id); process.exit(1); } }); return inputIDs; } _isPriorityOpt(x) { return ['p:1', 'p:2', 'p:3'].indexOf(x) > -1; } _getBoards() { const {_data} = this; const boards = ['My Board']; Object.keys(_data).forEach(id => { boards.push(..._data[id].boards.filter(x => boards.indexOf(x) === -1)); }); return boards; } _getDates(data = this._data) { const dates = []; Object.keys(data).forEach(id => { if (dates.indexOf(data[id]._date) === -1) { dates.push(data[id]._date); } }); return dates; } _getIDs(data = this._data) { return Object.keys(data).map(id => parseInt(id, 10)); } _getPriority(desc) { const opt = desc.find(x => this._isPriorityOpt(x)); return opt ? opt[opt.length - 1] : 1; } _getOptions(input) { const [boards, desc] = [[], []]; if (input.length === 0) { render.missingDesc(); process.exit(1); } const id = this._generateID(); const priority = this._getPriority(input); input.forEach(x => { if (!this._isPriorityOpt(x)) { return x.startsWith('@') && x.length > 1 ? boards.push(x) : desc.push(x); } }); const description = desc.join(' '); if (boards.length === 0) { boards.push('My Board'); } return {boards, description, id, priority}; } _getStats() { const {_data} = this; let [complete, inProgress, pending, notes] = [0, 0, 0, 0]; Object.keys(_data).forEach(id => { if (_data[id]._isTask) { return _data[id].isComplete ? complete++ : _data[id].inProgress ? inProgress++ : pending++; } return notes++; }); const total = complete + pending + inProgress; const percent = (total === 0) ? 0 : Math.floor(complete * 100 / total); return {percent, complete, inProgress, pending, notes}; } _hasTerms(string, terms) { for (const term of terms) { if (string.toLocaleLowerCase().indexOf(term.toLocaleLowerCase()) > -1) { return string; } } } _filterTask(data) { Object.keys(data).forEach(id => { if (!data[id]._isTask) { delete data[id]; } }); return data; } _filterStarred(data) { Object.keys(data).forEach(id => { if (!data[id].isStarred) { delete data[id]; } }); return data; } _filterInProgress(data) { Object.keys(data).forEach(id => { if (!data[id]._isTask || !data[id].inProgress) { delete data[id]; } }); return data; } _filterComplete(data) { Object.keys(data).forEach(id => { if (!data[id]._isTask || !data[id].isComplete) { delete data[id]; } }); return data; } _filterPending(data) { Object.keys(data).forEach(id => { if (!data[id]._isTask || data[id].isComplete) { delete data[id]; } }); return data; } _filterNote(data) { Object.keys(data).forEach(id => { if (data[id]._isTask) { delete data[id]; } }); return data; } _filterByAttributes(attr, data = this._data) { if (Object.keys(data).length === 0) { return data; } attr.forEach(x => { switch (x) { case 'star': case 'starred': data = this._filterStarred(data); break; case 'done': case 'checked': case 'complete': data = this._filterComplete(data); break; case 'progress': case 'started': case 'begun': data = this._filterInProgress(data); break; case 'pending': case 'unchecked': case 'incomplete': data = this._filterPending(data); break; case 'todo': case 'task': case 'tasks': data = this._filterTask(data); break; case 'note': case 'notes': data = this._filterNote(data); break; default: break; } }); return data; } _groupByBoard(data = this._data, boards = this._getBoards()) { const grouped = {}; if (boards.length === 0) { boards = this._getBoards(); } Object.keys(data).forEach(id => { boards.forEach(board => { if (data[id].boards.includes(board)) { if (Array.isArray(grouped[board])) { return grouped[board].push(data[id]); } grouped[board] = [data[id]]; return grouped[board]; } }); }); return grouped; } _groupByDate(data = this._data, dates = this._getDates()) { const grouped = {}; Object.keys(data).forEach(id => { dates.forEach(date => { if (data[id]._date === date) { if (Array.isArray(grouped[date])) { return grouped[date].push(data[id]); } grouped[date] = [data[id]]; return grouped[date]; } }); }); return grouped; } _saveItemToArchive(item) { const {_archive} = this; const archiveID = this._generateID(_archive); item._id = archiveID; _archive[archiveID] = item; this._saveArchive(_archive); } _saveItemToStorage(item) { const {_data} = this; const restoreID = this._generateID(); item._id = restoreID; _data[restoreID] = item; this._save(_data); } createNote(desc) { const {id, description, boards} = this._getOptions(desc); const note = new Note({id, description, boards}); const {_data} = this; _data[id] = note; this._save(_data); render.successCreate(note); } copyToClipboard(ids) { ids = this._validateIDs(ids); const {_data} = this; const descriptions = []; ids.forEach(id => descriptions.push(_data[id].description)); clipboardy.writeSync(descriptions.join('\n')); render.successCopyToClipboard(ids); } checkTasks(ids) { ids = this._validateIDs(ids); const {_data} = this; const [checked, unchecked] = [[], []]; ids.forEach(id => { if (_data[id]._isTask) { _data[id].inProgress = false; _data[id].isComplete = !_data[id].isComplete; return _data[id].isComplete ? checked.push(id) : unchecked.push(id); } }); this._save(_data); render.markComplete(checked); render.markIncomplete(unchecked); } beginTasks(ids) { ids = this._validateIDs(ids); const {_data} = this; const [started, paused] = [[], []]; ids.forEach(id => { if (_data[id]._isTask) { _data[id].isComplete = false; _data[id].inProgress = !_data[id].inProgress; return _data[id].inProgress ? started.push(id) : paused.push(id); } }); this._save(_data); render.markStarted(started); render.markPaused(paused); } createTask(desc) { const {boards, description, id, priority} = this._getOptions(desc); const task = new Task({id, description, boards, priority}); const {_data} = this; _data[id] = task; this._save(_data); render.successCreate(task); } deleteItems(ids) { ids = this._validateIDs(ids); const {_data} = this; ids.forEach(id => { this._saveItemToArchive(_data[id]); delete _data[id]; }); this._save(_data); render.successDelete(ids); } displayArchive() { render.displayByDate(this._groupByDate(this._archive, this._getDates(this._archive))); } displayByBoard() { render.displayByBoard(this._groupByBoard()); } displayByDate() { render.displayByDate(this._groupByDate()); } displayStats() { render.displayStats(this._getStats()); } editDescription(input) { const targets = input.filter(x => x.startsWith('@')); if (targets.length === 0) { render.missingID(); process.exit(1); } if (targets.length > 1) { render.invalidIDsNumber(); process.exit(1); } const [target] = targets; const id = this._validateIDs(target.replace('@', '')); const newDesc = input.filter(x => x !== target).join(' '); if (newDesc.length === 0) { render.missingDesc(); process.exit(1); } const {_data} = this; _data[id].description = newDesc; this._save(_data); render.successEdit(id); } findItems(terms) { const result = {}; const {_data} = this; Object.keys(_data).forEach(id => { if (!this._hasTerms(_data[id].description, terms)) { return; } result[id] = _data[id]; }); render.displayByBoard(this._groupByBoard(result)); } listByAttributes(terms) { let [boards, attributes] = [[], []]; const storedBoards = this._getBoards(); terms.forEach(x => { if (storedBoards.indexOf(`@${x}`) === -1) { return x === 'myboard' ? boards.push('My Board') : attributes.push(x); } return boards.push(`@${x}`); }); [boards, attributes] = [boards, attributes].map(x => this._removeDuplicates(x)); const data = this._filterByAttributes(attributes); render.displayByBoard(this._groupByBoard(data, boards)); } moveBoards(input) { let boards = []; const targets = input.filter(x => x.startsWith('@')); if (targets.length === 0) { render.missingID(); process.exit(1); } if (targets.length > 1) { render.invalidIDsNumber(); process.exit(1); } const [target] = targets; const id = this._validateIDs(target.replace('@', '')); input.filter(x => x !== target).forEach(x => { boards.push(x === 'myboard' ? 'My Board' : `@${x}`); }); if (boards.length === 0) { render.missingBoards(); process.exit(1); } boards = this._removeDuplicates(boards); const {_data} = this; _data[id].boards = boards; this._save(_data); render.successMove(id, boards); } restoreItems(ids) { ids = this._validateIDs(ids, this._getIDs(this._archive)); const {_archive} = this; ids.forEach(id => { this._saveItemToStorage(_archive[id]); delete _archive[id]; }); this._saveArchive(_archive); render.successRestore(ids); } starItems(ids) { ids = this._validateIDs(ids); const {_data} = this; const [starred, unstarred] = [[], []]; ids.forEach(id => { _data[id].isStarred = !_data[id].isStarred; return _data[id].isStarred ? starred.push(id) : unstarred.push(id); }); this._save(_data); render.markStarred(starred); render.markUnstarred(unstarred); } updatePriority(input) { const level = input.find(x => ['1', '2', '3'].indexOf(x) > -1); if (!level) { render.invalidPriority(); process.exit(1); } const targets = input.filter(x => x.startsWith('@')); if (targets.length === 0) { render.missingID(); process.exit(1); } if (targets.length > 1) { render.invalidIDsNumber(); process.exit(1); } const [target] = targets; const id = this._validateIDs(target.replace('@', '')); const {_data} = this; _data[id].priority = level; this._save(_data); render.successPriority(id, level); } clear() { const ids = []; const {_data} = this; Object.keys(_data).forEach(id => { if (_data[id].isComplete) { ids.push(id); } }); if (ids.length === 0) { return; } this.deleteItems(ids); } } module.exports = Taskbook;