GraphiteEditor / GraphiteEditor/Graphite
Saving, updating, and reading files from disk
- Dominant language
- Rust
- Stars
- 27.2k
- Forks
- 1.3k
- Avg merge
- 20h 5m
- Merged PRs (30d)
- 57
Description
https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API
https://developer.chrome.com/articles/file-system-access/
https://developer.chrome.com/articles/file-handling/
Supported on Chromium and Firefox, but Safari seems to not support writing (or it doesn't support the async version of the API, but it does support the sync WebWorker-only version or something?). So we'll potentially have to tailor the feature experience depending on the browser.
Eventual desired behavior: the document gets auto-saved in real time as the user works (perhaps whenever the history state is updated) to the browser's IndexedDB. If the user hits CtrlS/*File* > *Save*, it saves the file to disk at the existing document location, if that is available. If not, it asks the user to grant permission for a specific folder. We may need to build a file browser UI in that case to let the user pick where to organize the file within the granted folder scope. Unsupported browsers should potentially fall back to the current download-on-save/browse-on-open approach.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the MDN File System Access API and Chrome file-handling articles linked in the issue, then compare the required behavior across supported and unsupported browsers. Define how auto-saving to IndexedDB, saving to an existing or newly granted disk location, and fallback download/open behavior should work before locating the relevant browser UI and document-history entry points. Done means the behavior is specified for each browser case.
Written by the indexing model from the issue text.
Assessment
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100