{"id":15495691,"url":"https://github.com/probablykasper/taskler","last_synced_at":"2025-04-10T20:21:32.965Z","repository":{"id":53077709,"uuid":"107853323","full_name":"probablykasper/taskler","owner":"probablykasper","description":"Simple text editor for your New Tab page","archived":false,"fork":false,"pushed_at":"2022-09-26T05:51:02.000Z","size":9224,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"dev","last_synced_at":"2025-03-24T17:55:28.697Z","etag":null,"topics":["browser-extension","chrome","chrome-extension","editor","extension","firefox","firefox-addon","firefox-extension","notes"],"latest_commit_sha":null,"homepage":"https://taskler.kasper.space","language":"Stylus","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/probablykasper.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-10-22T09:36:25.000Z","updated_at":"2024-04-02T15:53:40.000Z","dependencies_parsed_at":"2023-01-18T23:00:57.804Z","dependency_job_id":null,"html_url":"https://github.com/probablykasper/taskler","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probablykasper%2Ftaskler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probablykasper%2Ftaskler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probablykasper%2Ftaskler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probablykasper%2Ftaskler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/probablykasper","download_url":"https://codeload.github.com/probablykasper/taskler/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248289908,"owners_count":21078922,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser-extension","chrome","chrome-extension","editor","extension","firefox","firefox-addon","firefox-extension","notes"],"created_at":"2024-10-02T08:18:41.698Z","updated_at":"2025-04-10T20:21:32.934Z","avatar_url":"https://github.com/probablykasper.png","language":"Stylus","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://taskler.kasper.space\" title=\"Taskler\"\u003e\u003cimg alt=\"Quill Logo\" src=\"https://raw.githubusercontent.com/SpectralKH/taskler/9363a32916f6f0f7316528c92a7df265a5b53d62/logo/logo.png\" width=\"96\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://chrome.google.com/webstore/detail/jnibmbpjkpfgaefgbnaneldfbfecpjih\"\u003e\n    \u003cimg alt=\"Chrome Web Store\" src=\"https://img.shields.io/chrome-web-store/users/jnibmbpjkpfgaefgbnaneldfbfecpjih?color=yellow\u0026logo=Google%20Chrome\u0026logoColor=white\u0026style=flat-square\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://addons.mozilla.org/addon/taskler\"\u003e\n  \u003cimg alt=\"Mozilla Add-on\" src=\"https://img.shields.io/amo/users/taskler?color=orange\u0026logo=Firefox%20Browser\u0026logoColor=white\u0026style=flat-square\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003e\n  Taskler\n\u003c/h1\u003e\nTaskler is a simple text editor web page. It's available as a \u003ca href='https://taskler.kasper.space'\u003ewebsite\u003c/a\u003e, \u003ca href='https://chrome.google.com/webstore/detail/jnibmbpjkpfgaefgbnaneldfbfecpjih'\u003eChrome extension\u003c/a\u003e and a \u003ca href='https://addons.mozilla.org/addon/taskler'\u003eFirefox extension\u003c/a\u003e.\n\nYou can use shortcuts like cmd+B for \u003cb\u003ebold\u003c/b\u003e, cmd+I for \u003ci\u003eitalics\u003c/i\u003e, cmd+U for \u003cu\u003eunderline\u003c/u\u003e and cmd+K for \u003ca href='https://www.youtube.com/watch?v=LDU_Txk06tM'\u003elinks\u003c/a\u003e.\n\n![Screenshot](https://raw.githubusercontent.com/probablykasper/taskler/master/assets/screenshot3.png)\n\n## Data recovery\nFor some reason, Brave deleted all my localStorage data, including Taskler's. This does not seem to be a problem with Taskler. If you have a backup, Taskler's data can be restored. Brave stores localStorage at in the following folder in my case:\n```\n~/Library/Application Support/BraveSoftware/Brave-Browser/Default/Local Storage/leveldb\n```\nFor Chrome, it's this folder in my case:\n```\n~/Library/Application Support/Google/Chrome/Profile 1/Local Storage/leveldb\n```\nYou should be able to simply restore this folder. Keep in mind that this folder doesn't just contain Taskler's data.\n\nWhat I did to restore my Taskler data was this:\n1. Restore the aforementioned folder into `~/Downloads`\n2. Install [golang](https://golang.org/)\n3. Install [leveldb-tools](https://github.com/rchunping/leveldb-tools) by running `go get github.com/rchunping/leveldb-tools`\n4. Export the database into plaintext format by running `leveldb-tools -dbpath ~/Downloads/leveldb -action export -file ~/Downloads/dumpfile.txt`\n5. Open `~/Downloads/dumpfile.txt` and search for `quill-state`. If there are multiple instances of that, you might be able to tell which one is correct by the text after it.\n6. Select and copy the object that is after `quill-state`, starting with `{` and ending with `}`. Unfortunately you'll have to figure out where that is. In my case, this text came after the object: `KL:=_chrome-extension://jnibmbpjkpfgaefgbnaneldfbfecpjih`.\n7. In Taskler, open the developer tools and go to the `Application` tab. In the sidebar, open the item found inside `Local Storage`.\n8. You'll see a table with `Key` and `Value` columns. Double-click the value of the `quill-state` key and pase in the object.\n\n## Dev Instructions\n\n### Setup\n1. Install Node.js\n2. Run `npm install` to install dependencies\n\n### Commands\n- `npm run dev:website`: Start website dev server\n- `npm run dev:extension`: Build extension and watch for changes\n- `npm run build:website`: Build website\n- `npm run build:extension`: Build extension and create a zip in `/dist`, ready for distribution to stores\n- `npm run format`: Format code and apply code suggestions\n- `npm run check`: Check code\n\n### Publish new version\n1. Run `npm run check`\n2. Update `CHANGELOG.md`\n3. Update version in `manifest.json`\n4. Run `npm run build:extension`\n5. Commit with a tag in format \"v#.#.#\"\n6. Create GitHub release with the extension zip and release notes\n7. Merge `dev` into `prod` to deploy website\n8. Publish to Chrome and Firefox stores\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprobablykasper%2Ftaskler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprobablykasper%2Ftaskler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprobablykasper%2Ftaskler/lists"}