Skip to content

Commit 548e3c7

Browse files
committed
🏗️ insert ssr index.html with a vite plugin
1 parent 12b0c61 commit 548e3c7

File tree

3 files changed

+79
-22
lines changed

3 files changed

+79
-22
lines changed

.github/workflows/main.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ jobs:
2020
- run: bunx vite build --base yAR-htzee
2121
env:
2222
VITE_XR8_API_KEY: ${{ secrets.VITE_XR8_API_KEY }}
23-
- run: bun build-index-html.ts
2423
- run: cp doc/* ./dist/
2524
- uses: actions/upload-pages-artifact@v3
2625
with:

build-index-html.ts

Lines changed: 0 additions & 21 deletions
This file was deleted.

vite.config.ts

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
import type { UserConfig } from "vite";
2+
import { execSync } from "child_process";
3+
4+
export default () =>
5+
({
6+
server: {
7+
// https: { key, cert }, // uncomment for https server
8+
},
9+
plugins: [
10+
{
11+
name: "html-insert-ssr",
12+
transformIndexHtml(html) {
13+
const content = execSync(`bun --print '\
14+
import { renderToString } from "react-dom/server"; \
15+
import { createElement } from "react"; \
16+
import { App } from "./src/App/App"; \
17+
renderToString(createElement(App)) \
18+
'`).toString();
19+
20+
return html.replace(
21+
`<div id="overlay"></div>`,
22+
`<div id="overlay">${content}</div>`
23+
);
24+
},
25+
},
26+
],
27+
} satisfies UserConfig);
28+
29+
const key = `
30+
-----BEGIN PRIVATE KEY-----
31+
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDaH7i3vwYOnz4d
32+
l9yZiPIeia8BDiaHmh0lqV4kbAB/utEG4fpdVcLWJdHvWwivAuR+pghNK7B06MpD
33+
v/meKEvwSzfg1ZTC5d29eCc94lWvS0I3HYJVAXe7TqlJ/GTzpj2uwFqwZeVj2Nof
34+
vvVFG8pJUuS1RNYUHcP2Zs70CmsCJnnjVBCMJzivjS/bvrdNIjU14Cp7IumFNN+5
35+
lJhGXLik8MYnbSWgQcjArDJZFVV7aBfxhrVx//oxhkhGpPrCr8iOREtUNsC3Gfr3
36+
xo5MF7v5JOxJ3Et6s4U0pbbn2f3bD4DojCZ8X9NoeyAnQahnvatxS3umBsNv8V3U
37+
0mu8jhAxAgMBAAECggEABNQWb/TZ0rmKM7gAoWJzb6MfHWAdkLtj4UlMRPSiFzHA
38+
vk0C0I2dNEXejZSfjtY6ziXpQaIRtCjSD2lgwnREaBOWL1MzCZRykebmwXsw5+I7
39+
20H7OFwBtUMCwtlEN9OKgoOODmEXEJyEiZbd0ZORqQldeDjHn2bgR2RTuPnBEClU
40+
66GLcp2aRADh63oSgRTRUKJX0PecAQAavvPNIdaf6pP+FjfAg9+5HH9TjJRvb6SN
41+
kbW2uFA1zTcNPdB9KGmByam3BF2WKMsK0LdgVAifzNdXdTgpPFrFbnB6dtw9def0
42+
wU+OAkZTOYKlkifd9VmIo6zvWfMnLRzZK07wzHxAFQKBgQDs0fkeQ2/j5ghr/Sbo
43+
4dRw781nqp8+tYXdxwYYBZZuzfoqHMYQ0mDrQF/TpBI5m+n0AI0HYMQta702Z0D7
44+
+ipFDkEqVmjn7Kpdy7Yn2Yee9eSlmCGYIl1IXsTK66ZrIS4nfARTrW0DgAlQuBaz
45+
XSwn2ln40Iy2NPFKW+LgHPsrvQKBgQDryh2RguUkxW8S8tfdZCT6f+ynfyKTMLe+
46+
OIPPaj3W7ZxG3MHctjDN7wnKwvSMTwSFkNe5RI1CngT8XjmbAyphdRI6hRY8P1l+
47+
PvSk15hNz2QLeyNOL7SjO8zpGh6bIFSMrsfpEo/n+tGzw8qiPjqFXIWZy0kPyU+y
48+
vpL5FgOjhQKBgAule+HgISWND4b4CSzUxlTThj995Zz44l94xTTzOWWznYTqq1by
49+
ca/AF7ZZ0EejAktsp4LgYGV3cfO1+j0qHWAOBmhlnX0iZ3J7bTbifMf1gcwfAi/w
50+
KLRBbN4p3qJQHGv2rmPLGJxedJbSptMlVuGS3G/fGbxwOBmXET5CTpvlAoGALyrR
51+
W2hp2j88hvfZQspjs1Cf0KnYCsW2G/FGPNmt4S7LEkna5gH0JV3qAYuaS+8KooVl
52+
AgS6lVby/GEE+QNbGP/IU7iHyCmMB3skiU0vhHE2PC231E4qvnSZ+w9ki/edsj7M
53+
cs1pyCgehu1lvarhHghyGV/XD7dfoAwLbpR+ydkCgYAFrp9bXGXqIGJEhXQ0gdKE
54+
nclJa28j+HfD9jnWRbOVUXC6FIN2Np+NfuZZKK3irthNrsw+xCzrzeznBzpPs2gz
55+
GxmFJizT4H/QXtu49sBI0UiW2xEZ37gKFmnVlqLTgRIb8NWKtHagwrdnJr0z3m5k
56+
8tJ6Xq4vutsZey/+p/iX7g==
57+
-----END PRIVATE KEY-----
58+
`;
59+
const cert = `
60+
-----BEGIN CERTIFICATE-----
61+
MIIDETCCAfkCFCC85ljW9Q9cQIOUeFHkzgO+i4rpMA0GCSqGSIb3DQEBCwUAMEUx
62+
CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl
63+
cm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMjUwMzE0MTIzMDA5WhcNMjYwMzE0MTIz
64+
MDA5WjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UE
65+
CgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOC
66+
AQ8AMIIBCgKCAQEA2h+4t78GDp8+HZfcmYjyHomvAQ4mh5odJaleJGwAf7rRBuH6
67+
XVXC1iXR71sIrwLkfqYITSuwdOjKQ7/5nihL8Es34NWUwuXdvXgnPeJVr0tCNx2C
68+
VQF3u06pSfxk86Y9rsBasGXlY9jaH771RRvKSVLktUTWFB3D9mbO9AprAiZ541QQ
69+
jCc4r40v2763TSI1NeAqeyLphTTfuZSYRly4pPDGJ20loEHIwKwyWRVVe2gX8Ya1
70+
cf/6MYZIRqT6wq/IjkRLVDbAtxn698aOTBe7+STsSdxLerOFNKW259n92w+A6Iwm
71+
fF/TaHsgJ0GoZ72rcUt7pgbDb/Fd1NJrvI4QMQIDAQABMA0GCSqGSIb3DQEBCwUA
72+
A4IBAQA13HNJe7G6pcrEeatIOU1uofuPRcx2czpAxV01sPwLPQewyhgCjdIGZhhy
73+
MN/8J6+AzfSzo3JDosTuAGyKM258RvnYmkwXnwj5PeUwXbKDs33Sx3uh6UL+N7e7
74+
p6zS3CELTDXuHxNOcw67v10jwzMB8p6zjd1j4J+yPuexh9MOuujPFLUYSipE2ONg
75+
z4rVkSvh2v4a7GeMiZ5TqhMaPdv7Bzj3Ckr/P1sE0CRPdbXrbZcvjcXo6XLawuDk
76+
wwvjm+uF6TFOkefLdcZXF57rD6JsOHKYPxQQuJzvuadeXDZ2LpmXDFbliopDxJw5
77+
bUP6q7uiyBFQTdlgZ3IxFUfNv3pm
78+
-----END CERTIFICATE-----
79+
`;

0 commit comments

Comments
 (0)