Add cloud sync & backup with Google Drive#316
Closed
zurillion wants to merge 11 commits intoRoundtableHold:mainfrom
Closed
Add cloud sync & backup with Google Drive#316zurillion wants to merge 11 commits intoRoundtableHold:mainfrom
zurillion wants to merge 11 commits intoRoundtableHold:mainfrom
Conversation
Adds a workflow that runs on every PR and push to main. It installs dependencies, re-runs generate.py, and fails with a clear message if the committed HTML in docs/ differs from what the generator would produce — preventing drift between the YAML source files and the checked-in HTML. https://claude.ai/code/session_01N58bvEvfg7jhcnDJaCpnD5
Instead of failing the PR when HTML is out of sync with YAML, the workflow now runs generate.py and pushes the result back to the PR branch automatically. This makes the workflow safe for agent-authored PRs (Codex, Claude) that may only edit YAML without regenerating the HTML. https://claude.ai/code/session_01N58bvEvfg7jhcnDJaCpnD5
The file was misnamed .gitatttributes (3 t's) so git was never reading it. Renamed to .gitattributes and added linguist-generated attribute for docs/checklists/*.html so GitHub collapses those diffs by default in pull requests. https://claude.ai/code/session_01N58bvEvfg7jhcnDJaCpnD5
…bfkyl2-R7tG0 Claude/review changes mlsgga5of9bfkyl2 r7t g0
Tag the 13 Shadow of the Erdtree cookbook categories with dlc: true at section level (Forager Brood, Igon's, Finger-Weaver's, Greater Potentate's, Ancient Dragon Knight's, Mad Craftsman's, St. Trina Disciple's, Fire Knight's, Loyal Knight's, Battlefield Priest's, Grave Keeper's, Antiquity Scholar's, Tibia's). Add 'cookbooks' to the DLC-aware page set in generate.py so the Show/Base Game/DLC selector is rendered and data-dlc attributes are emitted for every item on the page. Result: 45 DLC items, 59 base game items, all sections are homogeneous so the filter never produces an empty category. https://claude.ai/code/session_01N58bvEvfg7jhcnDJaCpnD5
…bfkyl2-R7tG0 Add DLC filter to Cookbooks page
- New docs/js/sync.js: CloudProvider interface, SyncManager (debounced 5s + periodic 2min + beforeunload), GoogleDriveProvider (appDataFolder, token-based GIS auth), field-level merge with per-item timestamps, local version history (last 10 snapshots), navbar sync indicator injected dynamically on every page. - docs/js/common.js: initialise checklistTimestamps dict in every profile so field-level merge has timestamps from day one. - docs/options.html: new "Cloud Sync & Backup" section with inactive / active states, provider picker modal (Google Drive active; iCloud and GitHub Gist greyed-out "coming soon"), deactivate confirm modal, version history panel, sync.js script tag. - docs/css/main.css: sync-spin keyframe animation + sync-nav-indicator styles for the navbar cloud icon. - generate.py: sync.js added to make_footer() so all regenerated checklist pages load the sync module automatically. To enable Google Drive sync, replace GOOGLE_CLIENT_ID in sync.js with a real OAuth 2.0 Client ID from Google Cloud Console (see setup instructions at the top of that file). https://claude.ai/code/session_01N58bvEvfg7jhcnDJaCpnD5
…bfkyl2-R7tG0 Claude/review changes mlsgga5of9bfkyl2 r7t g0
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
sync.js: SyncManager (debounced 5s + periodic 2min + beforeunload),GoogleDriveProvider via appDataFolder, field-level merge with per-item
timestamps, local version history (10 snapshots), navbar sync indicator
common.js: initialisechecklistTimestampsin every profileoptions.html: Cloud Sync & Backup section, provider picker modal(Google Drive live; iCloud and GitHub Gist greyed-out, coming soon),
deactivate confirm modal, version history panel
main.css: sync-spin animation + navbar indicator stylesgenerate.py:sync.jsadded tomake_footer()for all regenerated pagesTest plan