alpha
Login
or
Join now
flo-bit.dev
/
blog-template
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
[READ-ONLY] Mirror of https://github.com/flo-bit/blog-template. minimalistic astro blog template
flo-bit.dev/blog-template/
astro
blog
template
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
add mathjax, some refactoring
author
Florian
date
1 year ago
(Feb 21, 2025, 5:48 AM +0100)
commit
93b14144
93b141442499cd31ba8bd67ea4ab56dd91d0fe46
parent
832e8166
832e81661b0131f773fb61e1565a1fff131f2b68
+235
-48
16 changed files
Expand all
Collapse all
Unified
Split
astro.config.ts
package-lock.json
package.json
src
components
ThemeToggle.astro
alerts
ErrorAlert.astro
InfoAlert.astro
SuccessAlert.astro
WarningAlert.astro
bluesky
Avatar.svelte
Comment.svelte
Likes.svelte
content
blog
showing-embeds.mdx
embeds
link-card
LinkCard.astro
layouts
BaseLayout.astro
ProseWrapper.astro
todo.md
+9
astro.config.mjs
astro.config.ts
View file
Reviewed
···
1
1
// @ts-check
2
2
import { defineConfig } from "astro/config";
3
3
import { resolve } from "path";
4
4
+
import remarkMath from "remark-math"
5
5
+
import rehypeMathjax from "rehype-mathjax"
4
6
5
7
import mdx from "@astrojs/mdx";
6
8
import sitemap from "@astrojs/sitemap";
···
62
64
transformers: [transformerMetaHighlight(), transformerNotationHighlight()],
63
65
wrap: true
64
66
},
67
67
+
68
68
+
remarkPlugins: [
69
69
+
remarkMath
70
70
+
],
71
71
+
rehypePlugins: [
72
72
+
rehypeMathjax
73
73
+
]
65
74
},
66
75
67
76
prefetch: {
+189
-5
package-lock.json
View file
Reviewed
···
23
23
"astro-custom-embeds": "^0.0.1",
24
24
"astro-og-canvas": "^0.7.0",
25
25
"lite-youtube-embed": "^0.3.3",
26
26
+
"rehype-mathjax": "^7.1.0",
27
27
+
"remark-math": "^6.0.0",
26
28
"svelte": "^5.1.1",
27
29
"tailwind-merge": "^2.5.4",
28
30
"tailwindcss": "^3.4.14",
···
1902
1904
"@types/unist": "*"
1903
1905
}
1904
1906
},
1907
1907
+
"node_modules/@types/katex": {
1908
1908
+
"version": "0.16.7",
1909
1909
+
"resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz",
1910
1910
+
"integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ=="
1911
1911
+
},
1912
1912
+
"node_modules/@types/mathjax": {
1913
1913
+
"version": "0.0.40",
1914
1914
+
"resolved": "https://registry.npmjs.org/@types/mathjax/-/mathjax-0.0.40.tgz",
1915
1915
+
"integrity": "sha512-rHusx08LCg92WJxrsM3SPjvLTSvK5C+gealtSuhKbEOcUZfWlwigaFoPLf6Dfxhg4oryN5qP9Sj7zOQ4HYXINw=="
1916
1916
+
},
1905
1917
"node_modules/@types/mdast": {
1906
1918
"version": "4.0.4",
1907
1919
"resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
···
3262
3274
"url": "https://github.com/sponsors/sindresorhus"
3263
3275
}
3264
3276
},
3277
3277
+
"node_modules/esm": {
3278
3278
+
"version": "3.2.25",
3279
3279
+
"resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
3280
3280
+
"integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==",
3281
3281
+
"engines": {
3282
3282
+
"node": ">=6"
3283
3283
+
}
3284
3284
+
},
3265
3285
"node_modules/esm-env": {
3266
3286
"version": "1.2.2",
3267
3287
"resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz",
···
4143
4163
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz",
4144
4164
"integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg=="
4145
4165
},
4166
4166
+
"node_modules/katex": {
4167
4167
+
"version": "0.16.21",
4168
4168
+
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz",
4169
4169
+
"integrity": "sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A==",
4170
4170
+
"funding": [
4171
4171
+
"https://opencollective.com/katex",
4172
4172
+
"https://github.com/sponsors/katex"
4173
4173
+
],
4174
4174
+
"dependencies": {
4175
4175
+
"commander": "^8.3.0"
4176
4176
+
},
4177
4177
+
"bin": {
4178
4178
+
"katex": "cli.js"
4179
4179
+
}
4180
4180
+
},
4181
4181
+
"node_modules/katex/node_modules/commander": {
4182
4182
+
"version": "8.3.0",
4183
4183
+
"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
4184
4184
+
"integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
4185
4185
+
"engines": {
4186
4186
+
"node": ">= 12"
4187
4187
+
}
4188
4188
+
},
4146
4189
"node_modules/kleur": {
4147
4190
"version": "4.1.5",
4148
4191
"resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
···
4325
4368
"url": "https://github.com/sponsors/wooorm"
4326
4369
}
4327
4370
},
4371
4371
+
"node_modules/mathjax-full": {
4372
4372
+
"version": "3.2.2",
4373
4373
+
"resolved": "https://registry.npmjs.org/mathjax-full/-/mathjax-full-3.2.2.tgz",
4374
4374
+
"integrity": "sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==",
4375
4375
+
"dependencies": {
4376
4376
+
"esm": "^3.2.25",
4377
4377
+
"mhchemparser": "^4.1.0",
4378
4378
+
"mj-context-menu": "^0.6.1",
4379
4379
+
"speech-rule-engine": "^4.0.6"
4380
4380
+
}
4381
4381
+
},
4328
4382
"node_modules/mdast-util-definitions": {
4329
4383
"version": "6.0.0",
4330
4384
"resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-6.0.0.tgz",
···
4486
4540
"devlop": "^1.0.0",
4487
4541
"mdast-util-from-markdown": "^2.0.0",
4488
4542
"mdast-util-to-markdown": "^2.0.0"
4543
4543
+
},
4544
4544
+
"funding": {
4545
4545
+
"type": "opencollective",
4546
4546
+
"url": "https://opencollective.com/unified"
4547
4547
+
}
4548
4548
+
},
4549
4549
+
"node_modules/mdast-util-math": {
4550
4550
+
"version": "3.0.0",
4551
4551
+
"resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz",
4552
4552
+
"integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==",
4553
4553
+
"dependencies": {
4554
4554
+
"@types/hast": "^3.0.0",
4555
4555
+
"@types/mdast": "^4.0.0",
4556
4556
+
"devlop": "^1.0.0",
4557
4557
+
"longest-streak": "^3.0.0",
4558
4558
+
"mdast-util-from-markdown": "^2.0.0",
4559
4559
+
"mdast-util-to-markdown": "^2.1.0",
4560
4560
+
"unist-util-remove-position": "^5.0.0"
4489
4561
},
4490
4562
"funding": {
4491
4563
"type": "opencollective",
···
4638
4710
"node": ">= 8"
4639
4711
}
4640
4712
},
4713
4713
+
"node_modules/mhchemparser": {
4714
4714
+
"version": "4.2.1",
4715
4715
+
"resolved": "https://registry.npmjs.org/mhchemparser/-/mhchemparser-4.2.1.tgz",
4716
4716
+
"integrity": "sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ=="
4717
4717
+
},
4641
4718
"node_modules/micromark": {
4642
4719
"version": "4.0.1",
4643
4720
"resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz",
···
4827
4904
"integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==",
4828
4905
"dependencies": {
4829
4906
"devlop": "^1.0.0",
4907
4907
+
"micromark-factory-space": "^2.0.0",
4908
4908
+
"micromark-util-character": "^2.0.0",
4909
4909
+
"micromark-util-symbol": "^2.0.0",
4910
4910
+
"micromark-util-types": "^2.0.0"
4911
4911
+
},
4912
4912
+
"funding": {
4913
4913
+
"type": "opencollective",
4914
4914
+
"url": "https://opencollective.com/unified"
4915
4915
+
}
4916
4916
+
},
4917
4917
+
"node_modules/micromark-extension-math": {
4918
4918
+
"version": "3.1.0",
4919
4919
+
"resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz",
4920
4920
+
"integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==",
4921
4921
+
"dependencies": {
4922
4922
+
"@types/katex": "^0.16.0",
4923
4923
+
"devlop": "^1.0.0",
4924
4924
+
"katex": "^0.16.0",
4830
4925
"micromark-factory-space": "^2.0.0",
4831
4926
"micromark-util-character": "^2.0.0",
4832
4927
"micromark-util-symbol": "^2.0.0",
···
5393
5488
"node": ">=16 || 14 >=14.17"
5394
5489
}
5395
5490
},
5491
5491
+
"node_modules/mj-context-menu": {
5492
5492
+
"version": "0.6.1",
5493
5493
+
"resolved": "https://registry.npmjs.org/mj-context-menu/-/mj-context-menu-0.6.1.tgz",
5494
5494
+
"integrity": "sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA=="
5495
5495
+
},
5396
5496
"node_modules/mrmime": {
5397
5497
"version": "2.0.1",
5398
5498
"resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz",
···
5956
6056
}
5957
6057
},
5958
6058
"node_modules/prettier": {
5959
5959
-
"version": "2.8.7",
5960
5960
-
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz",
5961
5961
-
"integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==",
6059
6059
+
"version": "3.5.1",
6060
6060
+
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.1.tgz",
6061
6061
+
"integrity": "sha512-hPpFQvHwL3Qv5AdRvBFMhnKo4tYxp0ReXiPn2bxkiohEX6mBeBwEpBSQTkD458RaaDKQMYSp4hX4UtfUTA5wDw==",
5962
6062
"optional": true,
6063
6063
+
"peer": true,
5963
6064
"bin": {
5964
5964
-
"prettier": "bin-prettier.js"
6065
6065
+
"prettier": "bin/prettier.cjs"
5965
6066
},
5966
6067
"engines": {
5967
5967
-
"node": ">=10.13.0"
6068
6068
+
"node": ">=14"
5968
6069
},
5969
6070
"funding": {
5970
6071
"url": "https://github.com/prettier/prettier?sponsor=1"
···
6148
6249
"url": "https://opencollective.com/unified"
6149
6250
}
6150
6251
},
6252
6252
+
"node_modules/rehype-mathjax": {
6253
6253
+
"version": "7.1.0",
6254
6254
+
"resolved": "https://registry.npmjs.org/rehype-mathjax/-/rehype-mathjax-7.1.0.tgz",
6255
6255
+
"integrity": "sha512-mJHNpoqCC5UZ24OKx0wNjlzV18qeJz/Q/LtEjxXzt8vqrZ1Z3GxQnVrHcF5/PogcXUK8cWwJ4U/LWOQWEiABHw==",
6256
6256
+
"dependencies": {
6257
6257
+
"@types/hast": "^3.0.0",
6258
6258
+
"@types/mathjax": "^0.0.40",
6259
6259
+
"hast-util-to-text": "^4.0.0",
6260
6260
+
"hastscript": "^9.0.0",
6261
6261
+
"mathjax-full": "^3.0.0",
6262
6262
+
"unified": "^11.0.0",
6263
6263
+
"unist-util-visit-parents": "^6.0.0",
6264
6264
+
"vfile": "^6.0.0"
6265
6265
+
},
6266
6266
+
"funding": {
6267
6267
+
"type": "opencollective",
6268
6268
+
"url": "https://opencollective.com/unified"
6269
6269
+
}
6270
6270
+
},
6151
6271
"node_modules/rehype-parse": {
6152
6272
"version": "9.0.1",
6153
6273
"resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.1.tgz",
···
6236
6356
"url": "https://opencollective.com/unified"
6237
6357
}
6238
6358
},
6359
6359
+
"node_modules/remark-math": {
6360
6360
+
"version": "6.0.0",
6361
6361
+
"resolved": "https://registry.npmjs.org/remark-math/-/remark-math-6.0.0.tgz",
6362
6362
+
"integrity": "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==",
6363
6363
+
"dependencies": {
6364
6364
+
"@types/mdast": "^4.0.0",
6365
6365
+
"mdast-util-math": "^3.0.0",
6366
6366
+
"micromark-extension-math": "^3.0.0",
6367
6367
+
"unified": "^11.0.0"
6368
6368
+
},
6369
6369
+
"funding": {
6370
6370
+
"type": "opencollective",
6371
6371
+
"url": "https://opencollective.com/unified"
6372
6372
+
}
6373
6373
+
},
6239
6374
"node_modules/remark-mdx": {
6240
6375
"version": "3.1.0",
6241
6376
"resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz",
···
6644
6779
"funding": {
6645
6780
"type": "github",
6646
6781
"url": "https://github.com/sponsors/wooorm"
6782
6782
+
}
6783
6783
+
},
6784
6784
+
"node_modules/speech-rule-engine": {
6785
6785
+
"version": "4.0.7",
6786
6786
+
"resolved": "https://registry.npmjs.org/speech-rule-engine/-/speech-rule-engine-4.0.7.tgz",
6787
6787
+
"integrity": "sha512-sJrL3/wHzNwJRLBdf6CjJWIlxC04iYKkyXvYSVsWVOiC2DSkHmxsqOhEeMsBA9XK+CHuNcsdkbFDnoUfAsmp9g==",
6788
6788
+
"dependencies": {
6789
6789
+
"commander": "9.2.0",
6790
6790
+
"wicked-good-xpath": "1.3.0",
6791
6791
+
"xmldom-sre": "0.1.31"
6792
6792
+
},
6793
6793
+
"bin": {
6794
6794
+
"sre": "bin/sre"
6795
6795
+
}
6796
6796
+
},
6797
6797
+
"node_modules/speech-rule-engine/node_modules/commander": {
6798
6798
+
"version": "9.2.0",
6799
6799
+
"resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz",
6800
6800
+
"integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==",
6801
6801
+
"engines": {
6802
6802
+
"node": "^12.20.0 || >=14"
6647
6803
}
6648
6804
},
6649
6805
"node_modules/sprintf-js": {
···
8267
8423
"node": ">=4"
8268
8424
}
8269
8425
},
8426
8426
+
"node_modules/wicked-good-xpath": {
8427
8427
+
"version": "1.3.0",
8428
8428
+
"resolved": "https://registry.npmjs.org/wicked-good-xpath/-/wicked-good-xpath-1.3.0.tgz",
8429
8429
+
"integrity": "sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw=="
8430
8430
+
},
8270
8431
"node_modules/widest-line": {
8271
8432
"version": "5.0.0",
8272
8433
"resolved": "https://registry.npmjs.org/widest-line/-/widest-line-5.0.0.tgz",
···
8365
8526
"node": ">=8"
8366
8527
}
8367
8528
},
8529
8529
+
"node_modules/xmldom-sre": {
8530
8530
+
"version": "0.1.31",
8531
8531
+
"resolved": "https://registry.npmjs.org/xmldom-sre/-/xmldom-sre-0.1.31.tgz",
8532
8532
+
"integrity": "sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==",
8533
8533
+
"engines": {
8534
8534
+
"node": ">=0.1"
8535
8535
+
}
8536
8536
+
},
8368
8537
"node_modules/xxhash-wasm": {
8369
8538
"version": "1.1.0",
8370
8539
"resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz",
···
8410
8579
},
8411
8580
"optionalDependencies": {
8412
8581
"prettier": "2.8.7"
8582
8582
+
}
8583
8583
+
},
8584
8584
+
"node_modules/yaml-language-server/node_modules/prettier": {
8585
8585
+
"version": "2.8.7",
8586
8586
+
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz",
8587
8587
+
"integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==",
8588
8588
+
"optional": true,
8589
8589
+
"bin": {
8590
8590
+
"prettier": "bin-prettier.js"
8591
8591
+
},
8592
8592
+
"engines": {
8593
8593
+
"node": ">=10.13.0"
8594
8594
+
},
8595
8595
+
"funding": {
8596
8596
+
"url": "https://github.com/prettier/prettier?sponsor=1"
8413
8597
}
8414
8598
},
8415
8599
"node_modules/yaml-language-server/node_modules/request-light": {
+2
package.json
View file
Reviewed
···
25
25
"astro-custom-embeds": "^0.0.1",
26
26
"astro-og-canvas": "^0.7.0",
27
27
"lite-youtube-embed": "^0.3.3",
28
28
+
"rehype-mathjax": "^7.1.0",
29
29
+
"remark-math": "^6.0.0",
28
30
"svelte": "^5.1.1",
29
31
"tailwind-merge": "^2.5.4",
30
32
"tailwindcss": "^3.4.14",
+3
-4
src/components/ThemeToggle.astro
View file
Reviewed
···
1
1
---
2
2
-
import { cn } from "../style-utils";
3
2
import type { HTMLAttributes } from "astro/types";
4
3
5
4
export type Props = HTMLAttributes<"button">;
···
8
7
---
9
8
10
9
<button
11
11
-
class={cn(
10
10
+
class:list={[
12
11
"theme-toggle flex items-center justify-center text-base-950 hover:text-base-600 dark:text-base-50 dark:hover:text-base-400",
13
13
-
className
14
14
-
)}
12
12
+
className,
13
13
+
]}
15
14
data-theme-toggle
16
15
{...props}
17
16
>
+3
-5
src/components/alerts/ErrorAlert.astro
View file
Reviewed
···
1
1
---
2
2
-
import { cn } from "../../style-utils";
3
3
-
4
2
interface Props {
5
3
title: string;
6
4
class?: string;
···
10
8
---
11
9
12
10
<div
13
13
-
class={cn(
11
11
+
class:list={[
14
12
"rounded-xl bg-red-50 dark:bg-red-500/5 p-4 dark:ring-1 dark:ring-red-500/10 not-prose max-w-full",
15
15
-
className
16
16
-
)}
13
13
+
className,
14
14
+
]}
17
15
>
18
16
<div class="flex">
19
17
<div class="flex-shrink-0">
+3
-5
src/components/alerts/InfoAlert.astro
View file
Reviewed
···
1
1
---
2
2
-
import { cn } from "../../style-utils";
3
3
-
4
2
interface Props {
5
3
title: string;
6
4
class?: string;
···
10
8
---
11
9
12
10
<div
13
13
-
class={cn(
11
11
+
class:list={[
14
12
"rounded-xl bg-blue-50 dark:bg-blue-500/5 p-4 dark:ring-1 dark:ring-blue-500/10 not-prose max-w-full",
15
15
-
className
16
16
-
)}
13
13
+
className,
14
14
+
]}
17
15
>
18
16
<div class="flex">
19
17
<div class="flex-shrink-0">
+3
-5
src/components/alerts/SuccessAlert.astro
View file
Reviewed
···
1
1
---
2
2
-
import { cn } from "../../style-utils";
3
3
-
4
2
interface Props {
5
3
title: string;
6
4
class?: string;
···
10
8
---
11
9
12
10
<div
13
13
-
class={cn(
11
11
+
class:list={[
14
12
"rounded-xl bg-green-50 dark:bg-green-500/5 p-4 dark:ring-1 dark:ring-green-500/10 not-prose max-w-full",
15
15
-
className
16
16
-
)}
13
13
+
className,
14
14
+
]}
17
15
>
18
16
<div class="flex">
19
17
<div class="flex-shrink-0">
+3
-5
src/components/alerts/WarningAlert.astro
View file
Reviewed
···
1
1
---
2
2
-
import { cn } from "../../style-utils";
3
3
-
4
2
interface Props {
5
3
title: string;
6
4
class?: string;
···
10
8
---
11
9
12
10
<div
13
13
-
class={cn(
11
11
+
class:list={[
14
12
"rounded-xl bg-amber-50 dark:bg-amber-500/5 p-4 dark:ring-1 dark:ring-amber-500/10 not-prose max-w-full",
15
15
-
className
16
16
-
)}
13
13
+
className,
14
14
+
]}
17
15
>
18
16
<div class="flex">
19
17
<div class="flex-shrink-0">
+2
-4
src/components/bluesky/Avatar.svelte
View file
Reviewed
···
1
1
<script lang="ts">
2
2
-
import { cn } from '../../style-utils';
3
3
-
4
2
type Props = {
5
3
link?: string;
6
4
size?: string;
···
14
12
15
13
{#snippet avatar()}
16
14
<div
17
17
-
class={cn(
15
15
+
class={[
18
16
'overflow-hidden rounded-full border border-base-400/50 bg-base-100 dark:border-base-700 dark:bg-base-800',
19
17
size,
20
18
className
21
21
-
)}
19
19
+
]}
22
20
>
23
21
{#if src}
24
22
<img loading="lazy" class="h-full w-full object-cover" {src} {alt} />
-1
src/components/bluesky/Comment.svelte
View file
Reviewed
···
4
4
renderPostAsHtml,
5
5
numberToHumanReadable,
6
6
} from "./utils";
7
7
-
import { cn } from "src/style-utils";
8
7
import Comment from "./Comment.svelte";
9
8
import Avatar from "./Avatar.svelte";
10
9
import RelativeTime from "./relative-time";
+3
-4
src/components/bluesky/Likes.svelte
View file
Reviewed
···
1
1
<script lang="ts">
2
2
import { onMount } from "svelte";
3
3
-
import { atUriToPostUri, getUserPosts, getLikes, getPost } from "./utils";
4
4
-
import { cn } from "src/style-utils";
3
3
+
import { getUserPosts, getLikes, getPost } from "./utils";
5
4
6
5
const { uri, likesCount, likesData, user, url } = $props();
7
6
···
47
46
{#each postLikesData as user, index}
48
47
<a
49
48
href={`https://bsky.app/profile/${user.actor.handle}`}
50
50
-
class={cn(
49
49
+
class={[
51
50
"relative inline-block size-12 rounded-full overflow-hidden ring-2 ring-base-50 dark:ring-base-900 bg-base-950",
52
51
index === 0 ? "-ml-2" : ""
53
53
-
)}
52
52
+
]}
54
53
target="_blank"
55
54
>
56
55
<img
+5
src/content/blog/showing-embeds.mdx
View file
Reviewed
···
24
24
```
25
25
26
26
https://flo-bit.dev
27
27
+
28
28
+
29
29
+
```js
30
30
+
console.log("test");
31
31
+
```
+4
-5
src/embeds/link-card/LinkCard.astro
View file
Reviewed
···
1
1
---
2
2
-
import { cn } from "../../style-utils";
3
2
import { parseOpenGraph } from "./lib";
4
3
import type { HTMLAttributes } from "astro/types";
5
4
···
43
42
---
44
43
45
44
<article
46
46
-
class={cn(
47
47
-
"group max-w-lg my-6 relative isolate flex flex-col justify-end overflow-hidden not-prose aspect-[1200/630] rounded-xl border border-base-300 dark:border-base-700 bg-base-200/50 dark:bg-base-950/50 p-4",
48
48
-
className
49
49
-
)}
45
45
+
class:list={[
46
46
+
"group max-w-lg my-6 relative isolate flex flex-col justify-end overflow-hidden not-prose aspect-[1200/630] rounded-xl border border-base-400 dark:border-base-700 bg-base-200/50 dark:bg-base-950/50 p-4",
47
47
+
className,
48
48
+
]}
50
49
{...Astro.props}
51
50
>
52
51
{
+3
src/layouts/BaseLayout.astro
View file
Reviewed
···
63
63
.prose mark {
64
64
@apply bg-accent-200 dark:bg-accent-900 text-black dark:text-white;
65
65
}
66
66
+
.MathJax svg {
67
67
+
display: inline !important;
68
68
+
}
66
69
</style>
67
70
</head>
68
71
+3
-4
src/layouts/ProseWrapper.astro
View file
Reviewed
···
1
1
---
2
2
import { colorBaseClasses, colorAccentClasses } from "src/colors";
3
3
import { ACCENT_COLOR, BASE_COLOR } from "../config.json";
4
4
-
import { cn } from "../style-utils";
5
4
---
6
5
7
6
<div
8
8
-
class={cn(
7
7
+
class:list={[
9
8
"prose prose-img:rounded-xl dark:prose-invert prose-a:no-underline",
10
9
"prose-inline-code:bg-base-100 dark:prose-inline-code:bg-base-800 prose-inline-code:p-1 prose-inline-code:rounded-md",
11
10
colorBaseClasses[BASE_COLOR],
12
12
-
colorAccentClasses[ACCENT_COLOR]
13
13
-
)}
11
11
+
colorAccentClasses[ACCENT_COLOR],
12
12
+
]}
14
13
>
15
14
<slot />
16
15
</div>
-1
todo.md
Reviewed
···
1
1
-
- allow custom icons for favicons and header