{"id":13555422,"url":"https://github.com/jaredly/treed","last_synced_at":"2025-04-08T13:07:28.827Z","repository":{"id":15746005,"uuid":"18484645","full_name":"jaredly/treed","owner":"jaredly","description":"Powerful Tree Editor","archived":false,"fork":false,"pushed_at":"2021-09-26T18:35:44.000Z","size":1748,"stargazers_count":1713,"open_issues_count":24,"forks_count":192,"subscribers_count":84,"default_branch":"master","last_synced_at":"2025-04-01T11:06:31.010Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://jaredly.github.io/treed/","language":"JavaScript","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/jaredly.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"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":"2014-04-06T07:10:09.000Z","updated_at":"2025-03-13T03:59:23.000Z","dependencies_parsed_at":"2022-08-07T08:01:18.020Z","dependency_job_id":null,"html_url":"https://github.com/jaredly/treed","commit_stats":null,"previous_names":["jaredly/listless"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredly%2Ftreed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredly%2Ftreed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredly%2Ftreed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaredly%2Ftreed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaredly","download_url":"https://codeload.github.com/jaredly/treed/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247721927,"owners_count":20985083,"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":[],"created_at":"2024-08-01T12:03:12.192Z","updated_at":"2025-04-08T13:07:28.809Z","avatar_url":"https://github.com/jaredly.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","others"],"sub_categories":[],"readme":"# Treed\nA Powerful Tree Editing Component\n\n[![Join the chat at https://gitter.im/jaredly/treed](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/jaredly/treed?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\nTreed wants to be for tree editing what ace is for text editing. Extensible, customizable, powerful, and just plain easy to use. Perhaps that's a little ambitious, but that's the idea.\n\n[Play with a demo](http://jaredly.github.io/treed/)\n\n[![screenshot](docs/screenshot.png)](http://jaredly.github.io/treed/)\n\n## Features\n\n### Keyboard navigation\nI'm a vim user, so there are a lot of vim navigation commands that work out of the box, as well as more normal commands for everyone else.\n\n\u003ctable id=\"bindings\"\u003e\n      \u003cthead\u003e\n        \u003ctr\u003e\n          \u003cth\u003eAction\u003c/th\u003e\n          \u003cth\u003eBindings\u003c/th\u003e\n        \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n        \u003ctr\u003e\u003ctd\u003eNavigation\u003c/td\u003e\u003ctd class=\"binding\"\u003earrow keys, hjkl\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eIndent/Dedent\u003c/td\u003e\u003ctd class=\"binding\"\u003etab, shift tab\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eCollapse/Expand\u003c/td\u003e\u003ctd class=\"binding\"\u003ealt + left/right\u003cbr\u003ealt + h/l\u003cbr\u003ez (toggle)\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eUndo/Redo\u003c/td\u003e\u003ctd class=\"binding\"\u003ectrl + z, ctrl + shift + z, u, R\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eMove Node\u003c/td\u003e\u003ctd class=\"binding\"\u003ectrl + alt + arrow / hjkl\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eEdit mode\u003c/td\u003e\u003ctd class=\"binding\"\u003ereturn, f2, a, A, i, I\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eNormal Mode\u003c/td\u003e\u003ctd class=\"binding\"\u003eescape\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eToggle Done\u003c/td\u003e\u003ctd class=\"binding\"\u003ectrl + return\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eNew Node\u003c/td\u003e\u003ctd class=\"binding\"\u003eo, O (before)\u003cbr\u003ereturn (in insert mode)\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eCut/Copy/Paste\u003c/td\u003e\u003ctd class=\"binding\"\u003ectrl + x / delete, ctrl + c, ctrl + v\u003c/td\u003e\u003c/tr\u003e\n      \u003c/tbody\u003e\n      \u003c/table\u003e\n\nThere are several more as well.\n\n### Modularity\nTreed is constructed using the MVC pattern such that it is simple to, for example, create an entirely different view for the tree.\n\nYou can also create your own \"Node\" class if you wanted to do more than just have a single text input. You could add buttons, more fields, whatever you want.\n\n### Undo/Redo\nIt works. Unlimited undo.\n\n## Drag and Drop\nI'm still tinkering with the interaction on this. Should I let you drop as children of nodes that have no children?\n\n## Still under development\nI made this version in a weekend, so there are still some things to do :)\n\n- multi-line select (cut/copy/paste multiple, not necessarily contiguous)\n- api docs\n- testing (js + browser)\n\n## Future Awesomeness\n\nI want to implement a view layer similar to each of the following services:\n\n- workflowy\n- trello\n- a whiteboard\n- ginko\n- mindmap\n\nAnd hook them all to the same model, allowing you to switch between contexts. And then hook it all up to a database (firebase or hood.ie or pouchdb or leveldb?).\nI think it will be exactly what I've always wanted; we'll see.\n\n# Build instructions\n\nYou will need:\n\n- [nodejs](http://nodejs.org/)\n- [webpack](http://webpack.github.io) `npm install -g webpack`\n\n```\nnpm install\ncd demo\nwebpack --watch\n```\n\nThen open `demo/plugins/index.html` for example in your favorite browser, and\nenjoy!\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaredly%2Ftreed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaredly%2Ftreed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaredly%2Ftreed/lists"}