Schedule posts to Bluesky with Cloudflare workers. skyscheduler.work
cf tool bsky-tool cloudflare bluesky schedule bsky service social-media cloudflare-workers

more accessibility

+7 -4
+5 -3
src/layout/helpers/footer.tsx
··· 7 showHomepage?: boolean; 8 showProgressBar?: boolean; 9 showVersion?: boolean; 10 } 11 12 export default function FooterCopyright(props: FooterCopyrightProps) { 13 const newWinAttr = props.inNewWindow ? {"target": '_blank'} : {}; 14 - const projectURL = (<a class="secondary" target="_blank" title="Project source repository" 15 href={APP_REPO}>{APP_NAME}</a>); 16 const homepageURL = (<a class="secondary" title="Homepage" href="/">{APP_NAME}</a>); 17 const progressBarTooltip = `$${PROGRESS_MADE}/$${PROGRESS_TOTAL} for this month`; ··· 21 <progress value={PROGRESS_MADE} max={PROGRESS_TOTAL} /></div> : null} 22 {props.showHomepage ? homepageURL : projectURL} &copy; {new Date().getFullYear()} 23 <span class="credits"> 24 - <a rel="author" target="_blank" title="Project author" href={PROJECT_AUTHOR_SITE}>{PROJECT_AUTHOR}</a><br /> 25 <small> 26 - <a class="secondary" target="_blank" 27 data-tooltip="Tips are not required, the service is free, but if you like this service they are appreciated <3" 28 title="Tip the dev" href="/tip">Tip</a> - 29 <a class="secondary" {...newWinAttr} href="/tos" title="Terms of Service">Terms</a> -
··· 7 showHomepage?: boolean; 8 showProgressBar?: boolean; 9 showVersion?: boolean; 10 + removeExcessTab?: boolean; 11 } 12 13 export default function FooterCopyright(props: FooterCopyrightProps) { 14 const newWinAttr = props.inNewWindow ? {"target": '_blank'} : {}; 15 + const projectURL = (<a class="secondary" tabindex={props.removeExcessTab ? -1 : 0} target="_blank" title="Project source repository" 16 href={APP_REPO}>{APP_NAME}</a>); 17 const homepageURL = (<a class="secondary" title="Homepage" href="/">{APP_NAME}</a>); 18 const progressBarTooltip = `$${PROGRESS_MADE}/$${PROGRESS_TOTAL} for this month`; ··· 22 <progress value={PROGRESS_MADE} max={PROGRESS_TOTAL} /></div> : null} 23 {props.showHomepage ? homepageURL : projectURL} &copy; {new Date().getFullYear()} 24 <span class="credits"> 25 + <a rel="author" target="_blank" title="Project author" tabindex={props.removeExcessTab ? -1 : 0} 26 + href={PROJECT_AUTHOR_SITE}>{PROJECT_AUTHOR}</a><br /> 27 <small> 28 + <a class="secondary" target="_blank" tabindex={props.removeExcessTab ? -1 : 0} 29 data-tooltip="Tips are not required, the service is free, but if you like this service they are appreciated <3" 30 title="Tip the dev" href="/tip">Tip</a> - 31 <a class="secondary" {...newWinAttr} href="/tos" title="Terms of Service">Terms</a> -
+2 -1
src/pages/dashboard.tsx
··· 62 <footer> 63 <LogoutButton /> 64 <hr /> 65 - <FooterCopyright inNewWindow={true} showHomepage={true} showProgressBar={SHOW_SUPPORT_PROGRESS_BAR} showVersion={true} /> 66 </footer> 67 </article> 68 </section>
··· 62 <footer> 63 <LogoutButton /> 64 <hr /> 65 + <FooterCopyright inNewWindow={true} showHomepage={true} showProgressBar={SHOW_SUPPORT_PROGRESS_BAR} 66 + showVersion={true} removeExcessTab={true} /> 67 </footer> 68 </article> 69 </section>