···1+export PATH := "./node_modules/.bin:" + env_var('PATH')
2+3+# lots of just -> yarn, but this lets us chain yarn command deps
4+5+[group('dist')]
6+dist-build-web: intl build-web
7+8+[group('dist')]
9+dist-build-android-sideload: intl build-android-sideload
10+11+[group('build')]
12+intl:
13+ yarn intl:build
14+15+[group('build')]
16+prebuild-android:
17+ expo prebuild -p android
18+19+[group('build')]
20+build-web: && postbuild-web
21+ yarn build-web
22+23+[group('build')]
24+build-android-sideload: prebuild-android
25+ eas build --local --platform android --profile sideload-android
26+27+[group('build')]
28+postbuild-web:
29+ # build system outputs some srcs and hrefs like src="static/"
30+ # need to rewrite to be src="/static/" to handle non root pages
31+ sed -i 's/\(src\|href\)="static/\1="\/static/g' web-build/index.html
32+33+ # we need to copy the static iframe html to support youtube embeds
34+ cp -r bskyweb/static/iframe/ web-build/iframe
35+36+ # copy our static pages over!
37+ cp -r deer-static-about web-build/about
38+39+[group('dev')]
40+dev-android-setup: prebuild-android
41+ yarn android
42+43+[group('dev')]
44+dev-web:
45+ yarn web
46+47+[group('dev')]
48+dev-web-functions: build-web
49+ wrangler pages dev ./web-build
50+51+[group('lint')]
52+typecheck:
53+ yarn typecheck
54+
+4-11
pages_build.sh
···1#!/usr/bin/env bash
23-yarn intl:build
4-yarn build-web
056-# build system outputs some srcs and hrefs like src="static/"
7-# need to rewrite to be src="/static/" to handle non root pages
8-sed -i 's/\(src\|href\)="static/\1="\/static/g' web-build/index.html
9-10-# we need to copy the static iframe html to support youtube embeds
11-cp -r bskyweb/static/iframe/ web-build/iframe
12-13-# copy our static pages over!
14-cp -r deer-static-about web-build/about
···2<html>
3 <head>
4 <meta charset="utf-8">
5- <meta name="theme-color">
6 <!--
7 This viewport works for phones with notches.
8 It's optimized for gestures by disabling global zoom.
···92 </head>
9394 <body>
95- <!--
96- A generic no script element with a reload button and a message.
97- Feel free to customize this however you'd like.
98- -->
99- <noscript>
100- <form
101- action=""
102- style="
103- background-color: #fff;
104- position: fixed;
105- top: 0;
106- left: 0;
107- right: 0;
108- bottom: 0;
109- z-index: 9999;
110- "
111- >
112- <div
113- style="
114- font-size: 18px;
115- font-family: Helvetica, sans-serif;
116- line-height: 24px;
117- margin: 10%;
118- width: 80%;
119- "
120- >
121- <p lang="en">Oh no! It looks like JavaScript is not enabled in your browser.</p>
122- <p lang="en" style="margin: 20px 0;">
123- <button
124- type="submit"
125- style="
126- background-color: #4630eb;
127- border-radius: 100px;
128- border: none;
129- box-shadow: none;
130- color: #fff;
131- cursor: pointer;
132- font-weight: bold;
133- line-height: 20px;
134- padding: 6px 16px;
135- "
136- >
137- Reload
138- </button>
139- </p>
140- </div>
141- </form>
142- </noscript>
143144 <!-- The root element for your Expo app. -->
145 <div id="root">
···2<html>
3 <head>
4 <meta charset="utf-8">
5+ <meta name="theme-color" content="#4b9b6c">
6 <!--
7 This viewport works for phones with notches.
8 It's optimized for gestures by disabling global zoom.
···92 </head>
9394 <body>
95+ <noscript style="
96+ background-color: #fff;
97+ position: fixed;
98+ top: 0;
99+ left: 0;
100+ right: 0;
101+ bottom: 0;
102+ z-index: 9999;
103+ margin: 1em;
104+ ">
105+ <h1 lang="en">JavaScript Required</h1>
106+ <p lang="en">This is a heavily interactive web application, and JavaScript is required. Simple HTML interfaces are possible, but that is not what this is.
107+ <p lang="en">Learn more about Bluesky at <a href="https://bsky.social">bsky.social</a> and <a href="https://atproto.com">atproto.com</a>, or this fork at <a href="https://github.com/a-viv-a/deer-social">github.com/a-viv-a/deer.social</a>.
108+ </noscript>
0000000000000000000000000000000000109110 <!-- The root element for your Expo app. -->
111 <div id="root">