{"id":19537256,"url":"https://github.com/rnkn/binder","last_synced_at":"2025-05-12T03:31:38.573Z","repository":{"id":76984624,"uuid":"196922624","full_name":"rnkn/binder","owner":"rnkn","description":"Emacs global minor mode facilitating multi-file writing projects","archived":true,"fork":false,"pushed_at":"2024-10-03T00:52:28.000Z","size":1194,"stargazers_count":142,"open_issues_count":0,"forks_count":9,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-03-19T00:22:15.371Z","etag":null,"topics":["emacs","project-management","writing"],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rnkn.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-15T04:15:38.000Z","updated_at":"2024-12-23T01:46:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"b94ad523-0c9f-49e8-9307-88449c424375","html_url":"https://github.com/rnkn/binder","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rnkn%2Fbinder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rnkn%2Fbinder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rnkn%2Fbinder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rnkn%2Fbinder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rnkn","download_url":"https://codeload.github.com/rnkn/binder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253668046,"owners_count":21944967,"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":["emacs","project-management","writing"],"created_at":"2024-11-11T02:27:06.756Z","updated_at":"2025-05-12T03:31:38.105Z","avatar_url":"https://github.com/rnkn.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Binder has moved to https://codeberg.org/divyaranjan/binder/\n\nBinder\n======\n\n[![MELPA Stable](https://stable.melpa.org/packages/binder-badge.svg)][1]\n[![MELPA](https://melpa.org/packages/binder-badge.svg)][2]\n\n![screenshot](screenshots/01.png)\n\nBinder is global minor mode to facilitate working on a writing project\nin multiple files. It is heavily inspired by the binder feature in the\n[macOS writing app Scrivener][3].\n\nThe rationale behind working this way is to split a large writing\nproject into smaller pieces.\n\n\nFeatures\n--------\n\nPrimarily, Binder provides a global minor mode `binder-mode`. This\nallows working with files in the current `binder-project-directory`.\nData concerning these files is saved in a `.binder.el` file in the\nproject directory.\n\nA project can be thought of an ordered list of files with associated\nnotes and tags.\n\n\nNavigation\n----------\n\nAt the most basic level, you can navigate back and forth through the\nfiles in a project:\n\n - `binder-next (C-c ])` visits the next file in the project\n - `binder-previous (C-c [)` visits the previous\n\nCalling these commands activates a transient map so that each command\ncan be repeated without the prefix key.\n\n\nSidebar\n-------\n\nYou'll mostly interact with the project structure via the sidebar.\n\n - `binder-toggle-sidebar (C-c ')` toggles the visibility of the binder\n   sidebar\n - `binder-reveal-in-sidebar (C-c ;)` finds the current file in the\n   sidebar\n\nEach project item is a file reference relative to the project directory.\n\nProject items are displayed in a linear ordered list. Calling\n`binder-sidebar-find-file (RET)` or `binder-sidebar-find-file-other-window (o)`\nwill visit the corresponding file.\n\nEach item in the sidebar displays the following information:\n\n 1. `*` denotes that this item has some notes (see **Notes** below),\n    or...\n 2. `?` denotes that the item's corresponding file cannot be found\n 3. either the file relative to the project directory, or an arbitrary\n    display name\n 4. `#tag1 #tag2 ...` arbitrary item tags (see **Tags** below)\n\nAn item's display name can be changed with `binder-sidebar-rename (r)`.\nIf a file cannot be found, relocate with `binder-sidebar-relocate (R)`.\n\nCalling `binder-sidebar-find-file (RET)` will visit the corresponding\nfile.\n\nTo add an existing file, call `binder-sidebar-add-file (a)` or add all\nfiles in directory with `binder-sidebar-add-all-files (A)`.\n\nAdd a new file with `binder-sidebar-new-file (M-RET)`. This prompts for a\nfile-name and adds this (possibly non-existent) file to the project\nafter the current file's index. If no file-name extension is provided,\nuse `binder-default-file-extension`.\n\n \u003e Hint: you can use an alternate default file extension for different\n \u003e projects by setting a directory local variable.\n\nFiles can also be added to a project from outside the sidebar with\n`binder-add-file (C-c :)`.\n\nItems can be reordered with `binder-sidebar-shift-up (M-p | M-up)` and\n`binder-sidebar-shift-down (M-n | M-down)`.\n\nRemove items with `binder-sidebar-remove (d)` -- this *does not delete\nthe files*, only removes them from the project, but it *does* delete the\ncorresponding notes and tags.\n\nHide item file extensions by setting the `binder-sidebar-hide-file-extensions`\noption. This can be toggled with `binder-sidebar-toggle-file-extensions (E)`.\n\nThe sidebar can be resized with `binder-sidebar-shrink-window ({)` and\n`binder-sidebar-enlarge-window (})`. The window size is changed by the\nnumber of columns specified in option `binder-sidebar-resize-window-step`.\n\nYou can customize how the sidebar window is displayed by setting\n`binder-sidebar-display-alist` option.\n\n\nNotes\n-----\n\nTo open the notes buffer from the sidebar, call either\n`binder-sidebar-open-notes (z)` to open and select the notes window, or\n`binder-sidebar-toggle-notes (i)` to toggle the window.\n\nTo open a project file's notes from outside the sidebar, call\n`binder-toggle-notes (C-c \")`.\n\nYou need to call either `binder-notes-save (C-x C-s)` or\n`binder-notes-save-and-quit-window (C-c C-c)` to save notes to the\nproject file.\n\nCalling `quit-window (C-c C-q | C-c C-k)` or `binder-toggle-sidebar`\ndoes not save notes.\n\nYou can embiggen the notes window, to pop it out from the sidebar and\nedit like a regular buffer window, with `binder-notes-expand-window (C-c\nC-l)`.\n\nYou can customize how the notes window is displayed by setting\n`binder-notes-display-alist` option.\n\n\nTags\n----\n\nTags can help organize a project. An item can have any number of tags.\n\nAdd a tag to an item with `binder-sidebar-add-tag (t)`. Remove a tag\nfrom an item with `binder-sidebar-remove-tag (T)`. You can tag/untag\nmultiple items at once by using marks (see **Marking** below).\n\nItems in the sidebar can be narrowed to only show items with a certain\ntag with `binder-sidebar-narrow-by-tag (/)` and/or only show items\nwithout a certain tag with `binder-sidebar-exclude-by-tag (\\)`. Each of\nthese commands can be called multiple times with additional tags.\n\nClear the sidebar filters with `binder-sidebar-clear-filters (|)`.\n\n\nMarking\n-------\n\nMultiple items can be marked to add tags, toggle include state or\ndelete. Call `binder-sidebar-mark (m)` to mark an item or\n`binder-sidebar-unmark (u)` to unmark an item.\n\nTo unmark all sidebar items, call `binder-sidebar-unmark-all (U)`.\n\n\nRequirements\n------------\n\n - Emacs 24.4\n - seq 2.20 (part of Emacs 25 and later)\n\n\nInstallation\n------------\n\nThe latest stable release of Binder is available via [MELPA-stable][1].\nFirst, add MELPA-stable to your package archives:\n\n    M-x customize-option RET package-archives RET\n    \nInsert an entry named `melpa-stable` with URL:\nhttps://stable.melpa.org/packages/\n\nYou can then find the latest stable version of `binder` in the list\nreturned by:\n\n    M-x list-packages RET\n\nIf you prefer the latest but perhaps unstable version, do the above\nusing [MELPA][2].\n\n\nAdvanced Installation\n---------------------\n\nDownload the latest tagged release, move this file into your `load-path`\nand add to your `init.el` file:\n\n    (require 'binder)\n    (require 'binder-tutorial)  ;; optional\n\nIf you wish to contribute to or alter Binder's code, clone the\nrepository into your load-path and require as above:\n\n    git clone https://github.com/rnkn/binder.git\n\n\nBugs and Feature Requests\n-------------------------\n\nSend me an email (address in the package header). For bugs, please\nensure you can reproduce with:\n\n    $ emacs -Q -l binder.el\n\nKnown issues are tracked with `FIXME` comments in the source.\n\n\nTutorial\n--------\n\nBinder comes with a tutorial. Calling `M-x binder-tutorial` will prompt\nfor an empty directory in which to generate the tutorial files.\n\n\n[1]: https://stable.melpa.org/#/binder\n[2]: https://melpa.org/#/binder\n[3]: https://www.literatureandlatte.com/scrivener/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frnkn%2Fbinder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frnkn%2Fbinder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frnkn%2Fbinder/lists"}