A fork of Woomarks that saves to pds
at main 4.6 kB view raw
1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 <meta charset="UTF-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 7 <title>boomarks</title> 8 <link 9 href="https://fonts.googleapis.com/css2?family=Doto&family=Alfa+Slab+One&family=Bebas+Neue&family=Bree+Serif&family=Caveat&family=Courier+Prime&family=Dosis&family=EB+Garamond&family=Permanent+Marker&family=Sedan+SC&family=Ultra&display=swap" 10 rel="stylesheet" 11 /> 12 <link rel="icon" href="favicon.svg" type="image/svg+xml" /> 13 <link rel="stylesheet" href="style.css" /> 14 </head> 15 16 <body> 17 <!-- Login Modal --> 18 <dialog id="loginDialog" class="param-dialog"> 19 <form method="dialog" class="param-form"> 20 <h2>Connect to AT Protocol</h2> 21 <div class="param-group"> 22 <label for="handleInput" class="param-label">Handle</label> 23 <input 24 type="text" 25 id="handleInput" 26 class="param-input" 27 placeholder="user.bsky.social" 28 /> 29 </div> 30 <menu class="param-menu"> 31 <button id="loginBtn" type="button" class="param-btn dark">Login</button> 32 <button id="guestViewBtn" type="button" class="param-btn">View Bookmarks</button> 33 </menu> 34 </form> 35 </dialog> 36 37 <div class="topbar"> 38 <div style="flex-grow: 1"> 39 <b><a id="headerTitle" href="">boomarks</a></b> 40 <img id="userAvatar" class="user-avatar" style="display: none;" /> 41 <button id="logoutBtn" class="param-btn">Login</button> 42 <span id="viewingUser" class="viewing-user" style="display: none;"></span> 43 </div> 44 <img id="searchedUserAvatar" class="searched-user-avatar" style="display: none;" /> 45 <input 46 type="text" 47 id="userSearchInput" 48 placeholder="user.bsky.social" 49 title="View another user's bookmarks" 50 style="display: none; margin-right: 0.5vw;" 51 /> 52 <button id="openEmptyDialogBtn" data-umami-event="Open creation modal" class="param-btn"><span class="btn-text">Add</span></button> 53 54 <button id="viewToggleBtn" class="param-btn"><span class="btn-text">Grid</span></button> 55 <button id="sortToggleBtn" data-umami-event="Sort" class="param-btn"><span class="btn-text">Sort</span></button> 56 <input 57 type="text" 58 id="searchInput" 59 placeholder="'demo' '#books'" 60 data-umami-event="Search" 61 /> 62 </div> 63 64 <div class="containers"></div> 65 66 <!-- LEAVE THIS THIS LINE --> 67 <div class="footer">Made with <a href="https://github.com/earlyriser/woomarks">woomarks</a>.</div> 68 69 <dialog id="paramDialog" class="param-dialog"> 70 <form method="dialog" class="param-form"> 71 <div class="param-group"> 72 <label for="paramTitle" class="param-label">Title</label> 73 <input 74 type="text" 75 id="paramTitle" 76 name="paramTitle" 77 class="param-input" 78 /> 79 </div> 80 81 <div class="param-group"> 82 <label for="paramUrl" class="param-label">URL</label> 83 <input 84 type="text" 85 id="paramUrl" 86 name="paramUrl" 87 class="param-input" 88 /> 89 </div> 90 91 <div class="param-group"> 92 <label for="tagsInput" class="param-label" 93 >Tags (comma-separated)</label 94 > 95 <input 96 id="tagsInput" 97 type="text" 98 class="param-input" 99 placeholder="e.g. work, music" 100 /> 101 </div> 102 103 <p id="paramDialogCount" class="param-count"></p> 104 105 <menu class="param-menu"> 106 <div class="menu-right"> 107 <button 108 id="cancelBtn" 109 type="button" 110 value="cancel" 111 class="param-btn cancel" 112 > 113 Cancel 114 </button> 115 <button 116 id="saveBtn" 117 type="button" 118 value="default" 119 class="param-btn dark" 120 data-umami-event="Add bookmark" 121 > 122 Add bookmark 123 </button> 124 </div> 125 </menu> 126 </form> 127 </dialog> 128 </body> 129 <script type="module"> 130 import { AtpAgent, Agent } from 'https://esm.sh/@atproto/api'; 131 import { BrowserOAuthClient } from 'https://esm.sh/@atproto/oauth-client-browser'; 132 window.AtpAgent = AtpAgent; 133 window.Agent = Agent; 134 window.BrowserOAuthClient = BrowserOAuthClient; 135 </script> 136 <script async src="./script.js"></script> 137</html>