~repos /website

#astro#js#html#css

git clone https://pyrossh.dev/repos/website.git

木 Personal website of pyrossh. Built with astrojs, shiki, vite.


831f1f7f pyrossh

6 months ago
fix readmes
astro.config.mjs CHANGED
@@ -13,6 +13,7 @@ export default defineConfig({
13
13
  sitemap(),
14
14
  ],
15
15
  experimental: {
16
+ // csp: true,
16
17
  fonts: [{
17
18
  provider: fontProviders.google(),
18
19
  name: "Roboto",
bun.lock CHANGED
@@ -5,10 +5,10 @@
5
5
  "name": "my-astro-project-using-bun",
6
6
  "dependencies": {
7
7
  "@appzic/astro-reset-css": "^1.2.0",
8
- "@astrojs/mdx": "^4.2.5",
8
+ "@astrojs/mdx": "^4.3.0",
9
- "@astrojs/rss": "^4.0.11",
9
+ "@astrojs/rss": "^4.0.12",
10
- "@astrojs/sitemap": "^3.3.1",
10
+ "@astrojs/sitemap": "^3.4.1",
11
- "astro": "^5.7.5",
11
+ "astro": "^5.9.0",
12
12
  "simple-git": "^3.27.0",
13
13
  "timeago.js": "^4.0.2",
14
14
  },
@@ -22,21 +22,21 @@
22
22
  "packages": {
23
23
  "@appzic/astro-reset-css": ["@appzic/astro-reset-css@1.2.0", "", {}, "sha512-Q5o0gZ4tb2TfRp3bkhbdXzq/wTRHMqRmzjqo5CQcz+V7Jb7WbP5NJGl4s6Lvpef/eseJSoslM8WY6BxAITQv5A=="],
24
24
 
25
- "@astrojs/compiler": ["@astrojs/compiler@2.11.0", "", {}, "sha512-zZOO7i+JhojO8qmlyR/URui6LyfHJY6m+L9nwyX5GiKD78YoRaZ5tzz6X0fkl+5bD3uwlDHayf6Oe8Fu36RKNg=="],
25
+ "@astrojs/compiler": ["@astrojs/compiler@2.12.0", "", {}, "sha512-7bCjW6tVDpUurQLeKBUN9tZ5kSv5qYrGmcn0sG0IwacL7isR2ZbyyA3AdZ4uxsuUFOS2SlgReTH7wkxO6zpqWA=="],
26
26
 
27
27
  "@astrojs/internal-helpers": ["@astrojs/internal-helpers@0.6.1", "", {}, "sha512-l5Pqf6uZu31aG+3Lv8nl/3s4DbUzdlxTWDof4pEpto6GUJNhhCbelVi9dEyurOVyqaelwmS9oSyOWOENSfgo9A=="],
28
28
 
29
- "@astrojs/markdown-remark": ["@astrojs/markdown-remark@6.3.1", "", { "dependencies": { "@astrojs/internal-helpers": "0.6.1", "@astrojs/prism": "3.2.0", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "import-meta-resolve": "^4.1.0", "js-yaml": "^4.1.0", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.1", "remark-smartypants": "^3.0.2", "shiki": "^3.0.0", "smol-toml": "^1.3.1", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.1", "vfile": "^6.0.3" } }, "sha512-c5F5gGrkczUaTVgmMW9g1YMJGzOtRvjjhw6IfGuxarM6ct09MpwysP10US729dy07gg8y+ofVifezvP3BNsWZg=="],
29
+ "@astrojs/markdown-remark": ["@astrojs/markdown-remark@6.3.2", "", { "dependencies": { "@astrojs/internal-helpers": "0.6.1", "@astrojs/prism": "3.3.0", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "import-meta-resolve": "^4.1.0", "js-yaml": "^4.1.0", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remark-smartypants": "^3.0.2", "shiki": "^3.2.1", "smol-toml": "^1.3.1", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.1", "vfile": "^6.0.3" } }, "sha512-bO35JbWpVvyKRl7cmSJD822e8YA8ThR/YbUsciWNA7yTcqpIAL2hJDToWP5KcZBWxGT6IOdOkHSXARSNZc4l/Q=="],
30
30
 
31
- "@astrojs/mdx": ["@astrojs/mdx@4.2.5", "", { "dependencies": { "@astrojs/markdown-remark": "6.3.1", "@mdx-js/mdx": "^3.1.0", "acorn": "^8.14.1", "es-module-lexer": "^1.6.0", "estree-util-visit": "^2.0.0", "hast-util-to-html": "^9.0.5", "kleur": "^4.1.5", "rehype-raw": "^7.0.0", "remark-gfm": "^4.0.1", "remark-smartypants": "^3.0.2", "source-map": "^0.7.4", "unist-util-visit": "^5.0.0", "vfile": "^6.0.3" }, "peerDependencies": { "astro": "^5.0.0" } }, "sha512-iKGu9GssmypLWf6ycJu6OYa9E3W16KA2y3ApBPlZpz1pwR70xXEr2XugQUwxGfFCI2KcZLIND/9FdKM7ZXVffA=="],
31
+ "@astrojs/mdx": ["@astrojs/mdx@4.3.0", "", { "dependencies": { "@astrojs/markdown-remark": "6.3.2", "@mdx-js/mdx": "^3.1.0", "acorn": "^8.14.1", "es-module-lexer": "^1.6.0", "estree-util-visit": "^2.0.0", "hast-util-to-html": "^9.0.5", "kleur": "^4.1.5", "rehype-raw": "^7.0.0", "remark-gfm": "^4.0.1", "remark-smartypants": "^3.0.2", "source-map": "^0.7.4", "unist-util-visit": "^5.0.0", "vfile": "^6.0.3" }, "peerDependencies": { "astro": "^5.0.0" } }, "sha512-OGX2KvPeBzjSSKhkCqrUoDMyzFcjKt5nTE5SFw3RdoLf0nrhyCXBQcCyclzWy1+P+XpOamn+p+hm1EhpCRyPxw=="],
32
32
 
33
- "@astrojs/prism": ["@astrojs/prism@3.2.0", "", { "dependencies": { "prismjs": "^1.29.0" } }, "sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw=="],
33
+ "@astrojs/prism": ["@astrojs/prism@3.3.0", "", { "dependencies": { "prismjs": "^1.30.0" } }, "sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ=="],
34
34
 
35
- "@astrojs/rss": ["@astrojs/rss@4.0.11", "", { "dependencies": { "fast-xml-parser": "^4.5.0", "kleur": "^4.1.5" } }, "sha512-3e3H8i6kc97KGnn9iaZBJpIkdoQi8MmR5zH5R+dWsfCM44lLTszOqy1OBfGGxDt56mpQkYVtZJWoxMyWuUZBfw=="],
35
+ "@astrojs/rss": ["@astrojs/rss@4.0.12", "", { "dependencies": { "fast-xml-parser": "^5.2.0", "kleur": "^4.1.5" } }, "sha512-O5yyxHuDVb6DQ6VLOrbUVFSm+NpObulPxjs6XT9q3tC+RoKbN4HXMZLpv0LvXd1qdAjzVgJ1NFD+zKHJNDXikw=="],
36
36
 
37
- "@astrojs/sitemap": ["@astrojs/sitemap@3.3.1", "", { "dependencies": { "sitemap": "^8.0.0", "stream-replace-string": "^2.0.0", "zod": "^3.24.2" } }, "sha512-GRnDUCTviBSNfXJ0Jmur+1/C+z3g36jy79VyYggfe1uNyEYSTcmAfTTCmbytrRvJRNyJJnSfB/77Gnm9PiXRRg=="],
37
+ "@astrojs/sitemap": ["@astrojs/sitemap@3.4.1", "", { "dependencies": { "sitemap": "^8.0.0", "stream-replace-string": "^2.0.0", "zod": "^3.24.2" } }, "sha512-VjZvr1e4FH6NHyyHXOiQgLiw94LnCVY4v06wN/D0gZKchTMkg71GrAHJz81/huafcmavtLkIv26HnpfDq6/h/Q=="],
38
38
 
39
- "@astrojs/telemetry": ["@astrojs/telemetry@3.2.1", "", { "dependencies": { "ci-info": "^4.2.0", "debug": "^4.4.0", "dlv": "^1.1.3", "dset": "^3.1.4", "is-docker": "^3.0.0", "is-wsl": "^3.1.0", "which-pm-runs": "^1.1.0" } }, "sha512-SSVM820Jqc6wjsn7qYfV9qfeQvePtVc1nSofhyap7l0/iakUKywj3hfy3UJAOV4sGV4Q/u450RD4AaCaFvNPlg=="],
39
+ "@astrojs/telemetry": ["@astrojs/telemetry@3.3.0", "", { "dependencies": { "ci-info": "^4.2.0", "debug": "^4.4.0", "dlv": "^1.1.3", "dset": "^3.1.4", "is-docker": "^3.0.0", "is-wsl": "^3.1.0", "which-pm-runs": "^1.1.0" } }, "sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ=="],
40
40
 
41
41
  "@babel/helper-string-parser": ["@babel/helper-string-parser@7.25.9", "", {}, "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA=="],
42
42
 
@@ -238,6 +238,8 @@
238
238
 
239
239
  "@types/estree-jsx": ["@types/estree-jsx@1.0.5", "", { "dependencies": { "@types/estree": "*" } }, "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg=="],
240
240
 
241
+ "@types/fontkit": ["@types/fontkit@2.0.8", "", { "dependencies": { "@types/node": "*" } }, "sha512-wN+8bYxIpJf+5oZdrdtaX04qUuWHcKxcDEgRS9Qm9ZClSHjzEn13SxUC+5eRM+4yXIeTYk8mTzLAWGF64847ew=="],
242
+
241
243
  "@types/hast": ["@types/hast@3.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ=="],
242
244
 
243
245
  "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="],
@@ -278,7 +280,7 @@
278
280
 
279
281
  "astring": ["astring@1.9.0", "", { "bin": { "astring": "bin/astring" } }, "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg=="],
280
282
 
281
- "astro": ["astro@5.7.5", "", { "dependencies": { "@astrojs/compiler": "^2.11.0", "@astrojs/internal-helpers": "0.6.1", "@astrojs/markdown-remark": "6.3.1", "@astrojs/telemetry": "3.2.1", "@capsizecss/unpack": "^2.4.0", "@oslojs/encoding": "^1.1.0", "@rollup/pluginutils": "^5.1.4", "acorn": "^8.14.1", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "boxen": "8.0.1", "ci-info": "^4.2.0", "clsx": "^2.1.1", "common-ancestor-path": "^1.0.1", "cookie": "^1.0.2", "cssesc": "^3.0.0", "debug": "^4.4.0", "deterministic-object-hash": "^2.0.2", "devalue": "^5.1.1", "diff": "^5.2.0", "dlv": "^1.1.3", "dset": "^3.1.4", "es-module-lexer": "^1.6.0", "esbuild": "^0.25.0", "estree-walker": "^3.0.3", "flattie": "^1.1.1", "github-slugger": "^2.0.0", "html-escaper": "3.0.3", "http-cache-semantics": "^4.1.1", "js-yaml": "^4.1.0", "kleur": "^4.1.5", "magic-string": "^0.30.17", "magicast": "^0.3.5", "mrmime": "^2.0.1", "neotraverse": "^0.6.18", "p-limit": "^6.2.0", "p-queue": "^8.1.0", "package-manager-detector": "^1.1.0", "picomatch": "^4.0.2", "prompts": "^2.4.2", "rehype": "^13.0.2", "semver": "^7.7.1", "shiki": "^3.2.1", "tinyexec": "^0.3.2", "tinyglobby": "^0.2.12", "tsconfck": "^3.1.5", "ultrahtml": "^1.6.0", "unifont": "~0.2.0", "unist-util-visit": "^5.0.0", "unstorage": "^1.15.0", "vfile": "^6.0.3", "vite": "^6.2.6", "vitefu": "^1.0.6", "xxhash-wasm": "^1.1.0", "yargs-parser": "^21.1.1", "yocto-spinner": "^0.2.1", "zod": "^3.24.2", "zod-to-json-schema": "^3.24.5", "zod-to-ts": "^1.2.0" }, "optionalDependencies": { "sharp": "^0.33.3" }, "bin": { "astro": "astro.js" } }, "sha512-c59YuYiXyWWnUMOBlDczrjqKzF0dJQP20EP9vqDggcyKm//tEt9iJHNwoYq4r3UeO9UJCwlGK8FwaGTAwwF3IA=="],
283
+ "astro": ["astro@5.9.0", "", { "dependencies": { "@astrojs/compiler": "^2.12.0", "@astrojs/internal-helpers": "0.6.1", "@astrojs/markdown-remark": "6.3.2", "@astrojs/telemetry": "3.3.0", "@capsizecss/unpack": "^2.4.0", "@oslojs/encoding": "^1.1.0", "@rollup/pluginutils": "^5.1.4", "acorn": "^8.14.1", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "boxen": "8.0.1", "ci-info": "^4.2.0", "clsx": "^2.1.1", "common-ancestor-path": "^1.0.1", "cookie": "^1.0.2", "cssesc": "^3.0.0", "debug": "^4.4.0", "deterministic-object-hash": "^2.0.2", "devalue": "^5.1.1", "diff": "^5.2.0", "dlv": "^1.1.3", "dset": "^3.1.4", "es-module-lexer": "^1.6.0", "esbuild": "^0.25.0", "estree-walker": "^3.0.3", "flattie": "^1.1.1", "fontace": "~0.3.0", "github-slugger": "^2.0.0", "html-escaper": "3.0.3", "http-cache-semantics": "^4.1.1", "import-meta-resolve": "^4.1.0", "js-yaml": "^4.1.0", "kleur": "^4.1.5", "magic-string": "^0.30.17", "magicast": "^0.3.5", "mrmime": "^2.0.1", "neotraverse": "^0.6.18", "p-limit": "^6.2.0", "p-queue": "^8.1.0", "package-manager-detector": "^1.1.0", "picomatch": "^4.0.2", "prompts": "^2.4.2", "rehype": "^13.0.2", "semver": "^7.7.1", "shiki": "^3.2.1", "tinyexec": "^0.3.2", "tinyglobby": "^0.2.12", "tsconfck": "^3.1.5", "ultrahtml": "^1.6.0", "unifont": "~0.5.0", "unist-util-visit": "^5.0.0", "unstorage": "^1.15.0", "vfile": "^6.0.3", "vite": "^6.3.4", "vitefu": "^1.0.6", "xxhash-wasm": "^1.1.0", "yargs-parser": "^21.1.1", "yocto-spinner": "^0.2.1", "zod": "^3.24.2", "zod-to-json-schema": "^3.24.5", "zod-to-ts": "^1.2.0" }, "optionalDependencies": { "sharp": "^0.33.3" }, "bin": { "astro": "astro.js" } }, "sha512-AHF7oZDBQRwggHUG0bwBhRQjrDD+vJpCtPd0/GVxDB1hGRV0SQuFWS0UHX5bYczIqFcao1z9o9o0r2rQtHrTMg=="],
282
284
 
283
285
  "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="],
284
286
 
@@ -404,12 +406,14 @@
404
406
 
405
407
  "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="],
406
408
 
407
- "fast-xml-parser": ["fast-xml-parser@4.5.3", "", { "dependencies": { "strnum": "^1.1.1" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig=="],
409
+ "fast-xml-parser": ["fast-xml-parser@5.2.4", "", { "dependencies": { "strnum": "^2.1.0" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-6mNrAVwHip2nGyPYn6xQJK/znBbIoz6to5VMNysrka1/aoSylbB8vjYgkpaFp05EFojiflVV+3QzXe9Ap3Esng=="],
408
410
 
409
411
  "fdir": ["fdir@6.4.4", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg=="],
410
412
 
411
413
  "flattie": ["flattie@1.1.1", "", {}, "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ=="],
412
414
 
415
+ "fontace": ["fontace@0.3.0", "", { "dependencies": { "@types/fontkit": "^2.0.8", "fontkit": "^2.0.4" } }, "sha512-czoqATrcnxgWb/nAkfyIrRp6Q8biYj7nGnL6zfhTcX+JKKpWHFBnb8uNMw/kZr7u++3Y3wYSYoZgHkCcsuBpBg=="],
416
+
413
417
  "fontkit": ["fontkit@2.0.4", "", { "dependencies": { "@swc/helpers": "^0.5.12", "brotli": "^1.3.2", "clone": "^2.1.2", "dfa": "^1.2.0", "fast-deep-equal": "^3.1.3", "restructure": "^3.0.0", "tiny-inflate": "^1.0.3", "unicode-properties": "^1.4.0", "unicode-trie": "^2.0.0" } }, "sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g=="],
414
418
 
415
419
  "fsevents": ["fsevents@2.3.2", "", { "os": "darwin" }, "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="],
@@ -476,34 +480,10 @@
476
480
 
477
481
  "is-wsl": ["is-wsl@3.1.0", "", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw=="],
478
482
 
479
- "jiti": ["jiti@2.4.2", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A=="],
480
-
481
483
  "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="],
482
484
 
483
485
  "kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="],
484
486
 
485
- "lightningcss": ["lightningcss@1.29.2", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-darwin-arm64": "1.29.2", "lightningcss-darwin-x64": "1.29.2", "lightningcss-freebsd-x64": "1.29.2", "lightningcss-linux-arm-gnueabihf": "1.29.2", "lightningcss-linux-arm64-gnu": "1.29.2", "lightningcss-linux-arm64-musl": "1.29.2", "lightningcss-linux-x64-gnu": "1.29.2", "lightningcss-linux-x64-musl": "1.29.2", "lightningcss-win32-arm64-msvc": "1.29.2", "lightningcss-win32-x64-msvc": "1.29.2" } }, "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA=="],
486
-
487
- "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.29.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA=="],
488
-
489
- "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.29.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w=="],
490
-
491
- "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.29.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg=="],
492
-
493
- "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.29.2", "", { "os": "linux", "cpu": "arm" }, "sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg=="],
494
-
495
- "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.29.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ=="],
496
-
497
- "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.29.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ=="],
498
-
499
- "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.29.2", "", { "os": "linux", "cpu": "x64" }, "sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg=="],
500
-
501
- "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.29.2", "", { "os": "linux", "cpu": "x64" }, "sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w=="],
502
-
503
- "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.29.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw=="],
504
-
505
- "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.29.2", "", { "os": "win32", "cpu": "x64" }, "sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA=="],
506
-
507
487
  "longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="],
508
488
 
509
489
  "lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="],
@@ -764,7 +744,7 @@
764
744
 
765
745
  "strip-ansi": ["strip-ansi@7.1.0", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ=="],
766
746
 
767
- "strnum": ["strnum@1.1.2", "", {}, "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA=="],
747
+ "strnum": ["strnum@2.1.1", "", {}, "sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw=="],
768
748
 
769
749
  "style-to-js": ["style-to-js@1.1.16", "", { "dependencies": { "style-to-object": "1.0.8" } }, "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw=="],
770
750
 
@@ -806,7 +786,7 @@
806
786
 
807
787
  "unified": ["unified@11.0.5", "", { "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" } }, "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA=="],
808
788
 
809
- "unifont": ["unifont@0.2.0", "", { "dependencies": { "css-tree": "^3.0.0", "ohash": "^2.0.0" } }, "sha512-RoF14/tOhLvDa7R5K6A3PjsfJVFKvadvRpWjfV1ttabUe9704P1ie9z1ABLWEts/8SxrBVePav/XhgeFNltpsw=="],
789
+ "unifont": ["unifont@0.5.0", "", { "dependencies": { "css-tree": "^3.0.0", "ohash": "^2.0.0" } }, "sha512-4DueXMP5Hy4n607sh+vJ+rajoLu778aU3GzqeTCqsD/EaUcvqZT9wPC8kgK6Vjh22ZskrxyRCR71FwNOaYn6jA=="],
810
790
 
811
791
  "unist-util-find-after": ["unist-util-find-after@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ=="],
812
792
 
@@ -836,7 +816,7 @@
836
816
 
837
817
  "vfile-message": ["vfile-message@4.0.2", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw=="],
838
818
 
839
- "vite": ["vite@6.3.3", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-5nXH+QsELbFKhsEfWLkHrvgRpTdGJzqOZ+utSdmPTvwHmvU6ITTm3xx+mRusihkcI8GeC7lCDyn3kDtiki9scw=="],
819
+ "vite": ["vite@6.3.5", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ=="],
840
820
 
841
821
  "vitefu": ["vitefu@1.0.6", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" }, "optionalPeers": ["vite"] }, "sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA=="],
842
822
 
@@ -854,8 +834,6 @@
854
834
 
855
835
  "xxhash-wasm": ["xxhash-wasm@1.1.0", "", {}, "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA=="],
856
836
 
857
- "yaml": ["yaml@1.10.2", "", {}, "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="],
858
-
859
837
  "yargs-parser": ["yargs-parser@21.1.1", "", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="],
860
838
 
861
839
  "yocto-queue": ["yocto-queue@1.2.1", "", {}, "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg=="],
infra/main.tf CHANGED
@@ -36,23 +36,9 @@ resource "aws_s3_bucket" "website" {
36
36
  bucket = "pyrossh-website"
37
37
  }
38
38
 
39
- # resource "aws_s3_bucket_acl" "website" {
39
+ resource "aws_s3_bucket" "repos_bucket" {
40
- # bucket = aws_s3_bucket.website.id
41
- # acl = "private"
42
- # }
43
-
44
- # resource "aws_s3_bucket_website_configuration" "s3_bucket" {
45
- # bucket = aws_s3_bucket.website.id
46
-
47
- # index_document {
48
- # suffix = "index.html"
49
- # }
50
-
51
- # error_document {
52
- # key = "error.html"
40
+ bucket = "pyrossh-repos"
53
- # }
54
-
55
- # }
41
+ }
56
42
 
57
43
  resource "aws_s3_bucket_public_access_block" "website_public_access" {
58
44
  bucket = aws_s3_bucket.website.id
@@ -83,7 +69,9 @@ data "aws_iam_policy_document" "cloudfront_oac_access" {
83
69
 
84
70
  resources = [
85
71
  aws_s3_bucket.website.arn,
86
- "${aws_s3_bucket.website.arn}/*"
72
+ "${aws_s3_bucket.website.arn}/*",
73
+ aws_s3_bucket.repos_bucket,
74
+ "${aws_s3_bucket.repos_bucket.arn}/*"
87
75
  ]
88
76
 
89
77
  condition {
@@ -131,6 +119,11 @@ resource "aws_cloudfront_distribution" "s3_distribution" {
131
119
  origin_id = aws_s3_bucket.website.bucket_regional_domain_name
132
120
  origin_access_control_id = aws_cloudfront_origin_access_control.website.id
133
121
  }
122
+ origin {
123
+ domain_name = aws_s3_bucket.repos_bucket.bucket_regional_domain_name
124
+ origin_id = aws_s3_bucket.repos_bucket.bucket_regional_domain_name
125
+ origin_access_control_id = aws_cloudfront_origin_access_control.website.id
126
+ }
134
127
  enabled = true
135
128
  is_ipv6_enabled = true
136
129
  aliases = ["pyrossh.dev"]
@@ -164,6 +157,27 @@ resource "aws_cloudfront_distribution" "s3_distribution" {
164
157
  function_arn = aws_cloudfront_function.subdirectory_redirector.arn
165
158
  }
166
159
  }
160
+
161
+ ordered_cache_behavior {
162
+ path_pattern = "/d/*"
163
+ allowed_methods = ["GET", "HEAD"]
164
+ cached_methods = ["GET", "HEAD"]
165
+ target_origin_id = aws_s3_bucket.repos_bucket.bucket_regional_domain_name
166
+
167
+ forwarded_values {
168
+ query_string = false
169
+ cookies {
170
+ forward = "none"
171
+ }
172
+ }
173
+
174
+ min_ttl = 0
175
+ default_ttl = 86400
176
+ max_ttl = 31536000
177
+ compress = true
178
+ viewer_protocol_policy = "redirect-to-https"
179
+ }
180
+
167
181
  price_class = "PriceClass_All"
168
182
  restrictions {
169
183
  geo_restriction {
package.json CHANGED
@@ -5,20 +5,22 @@
5
5
  "scripts": {
6
6
  "tauri": "tauri",
7
7
  "dev": "astro dev",
8
- "build": "astro build"
8
+ "build": "astro build",
9
+ "android": "tauri android dev",
10
+ "ios": "tauri ios dev"
9
11
  },
10
12
  "dependencies": {
11
13
  "@appzic/astro-reset-css": "^1.2.0",
12
- "@astrojs/mdx": "^4.2.5",
14
+ "@astrojs/mdx": "^4.3.0",
13
- "@astrojs/rss": "^4.0.11",
15
+ "@astrojs/rss": "^4.0.12",
14
- "@astrojs/sitemap": "^3.3.1",
16
+ "@astrojs/sitemap": "^3.4.1",
15
- "astro": "^5.7.5",
17
+ "astro": "^5.9.0",
16
18
  "simple-git": "^3.27.0",
17
19
  "timeago.js": "^4.0.2"
18
20
  },
19
21
  "devDependencies": {
20
- "@tauri-apps/cli": "^2",
21
22
  "@playwright/test": "^1.52.0",
23
+ "@tauri-apps/cli": "^2",
22
24
  "@types/node": "^22.15.3"
23
25
  }
24
- }
26
+ }
server.js ADDED
@@ -0,0 +1,128 @@
1
+ import { Parser } from 'node-sql-parser';
2
+ import { PutObjectCommand, S3Client, GetObjectCommand, paginateListObjectsV2 } from "@aws-sdk/client-s3";
3
+
4
+ const bucketName = "";
5
+
6
+ // import { S3Client } from "bun";
7
+ // const client = new S3Client({
8
+ // region: "ap-south-1",
9
+ // bucket: "",
10
+ // accessKeyId: "",
11
+ // secretAccessKey: "",
12
+ // endpoint: "https://s3express-aps1-az1.ap-south-1.amazonaws.com",
13
+ // });
14
+ // const s3file = client.file("123.json");
15
+ // await s3file.write(JSON.stringify({ hello: "world" }));
16
+
17
+ // const data = await s3file.json()
18
+ // console.log(data);
19
+
20
+ // const client = new S3Client({});
21
+ // const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
22
+ // for (const i of arr) {
23
+ // await client.send(new PutObjectCommand({
24
+ // Bucket: bucketName,
25
+ // Key: `posts/${i}.json`,
26
+ // ContentType: "application/json",
27
+ // Body: JSON.stringify({ id: `${i}`, data: `hello '${i}' world` }),
28
+ // }));
29
+ // }
30
+
31
+ // If-None-Match: * if it doesn't exist 409 - ConditionalRequestConflict 412 Precondition Failed
32
+ // If-Match: etag checks if etag is same CAS 409 - ConditionalRequestConflict 412 Precondition Failed
33
+
34
+ const getObjectName = (name) => name.split("::")[2];
35
+
36
+ const client = new S3Client({});
37
+
38
+ const getAllS3Files = async (bucketName, tableName) => {
39
+ const totalFiles = [];
40
+ for await (const data of paginateListObjectsV2({ client }, { Bucket: bucketName, Prefix: `${tableName}/` })) {
41
+ totalFiles.push(...(data.Contents ?? []));
42
+ }
43
+ return totalFiles;
44
+ };
45
+
46
+ const sql = async (query) => {
47
+ const parser = new Parser();
48
+ const { tableList, columnList, ast } = parser.parse(query, {
49
+ database: "Hive",
50
+ // type: 'table',
51
+ parseOptions: {
52
+ includeLocations: true
53
+ }
54
+ });
55
+ // console.log(ast);
56
+ // console.log(JSON.stringify(ast, 2, 2));
57
+ // console.log("tableName", tableName);
58
+ const tableName = getObjectName(tableList[0]);
59
+ // if (ast.type === "select") {
60
+ // }
61
+ const contents = await getAllS3Files(bucketName, tableName)
62
+ return await Promise.all(contents.map((r) => {
63
+ return client.send(new GetObjectCommand({ Bucket: bucketName, Key: r.Key, }))
64
+ .then((rr) => rr.Body.transformToString())
65
+ .then(JSON.parse)
66
+ }));
67
+ }
68
+
69
+ const rows = await sql('SELECT * FROM posts LIMIT 10');
70
+ // const rows = await sql("INSERT INTO posts(id, data) VALUES ('11', 'body');");
71
+ console.log(rows);
72
+
73
+ // const rows = await sql(`
74
+ // CREATE TABLE struct_test(
75
+ // property_id INT
76
+ // )
77
+ // `);
78
+
79
+ // console.log(rows);
80
+ // const resp = await parseQuery("SELECT * FROM POSTS");
81
+ // resp.stmts[0].stmt.SelectStmt.fromClause
82
+ // console.log("stmts", stmts);
83
+
84
+ // Data Definition Language (DDL): CREATE, ALTER, DROP
85
+ // Data Manipulation Language (DML): INSERT, UPDATE, DELETE, MERGE
86
+ // Data Query Language (DQL): SELECT
87
+ // Data Control Language (DCL): GRANT, REVOKE
88
+
89
+ // TABLES/VIEWS/INDEX
90
+
91
+
92
+
93
+ //
94
+ // import { gluesql } from 'gluesql';
95
+
96
+ // const db = gluesql();
97
+
98
+ // async function run() {
99
+ // await db.query(`
100
+ // CREATE TABLE User (id INTEGER, name TEXT);
101
+ // CREATE TABLE Device (name TEXT, userId INTEGER);
102
+ // INSERT INTO User VALUES
103
+ // (1, 'glue'), (2, 'sticky'), (3, 'watt');
104
+ // INSERT INTO Device VALUES
105
+ // ('Phone', 1), ('Mic', 1), ('Monitor', 3),
106
+ // ('Mouse', 2), ('Touchpad', 2);
107
+ // `);
108
+
109
+ // let sql;
110
+
111
+ // sql = 'SHOW TABLES;';
112
+ // const [{ tables }] = await db.query(sql);
113
+ // console.log(`\n[Query]\n${sql}`);
114
+ // console.table(tables);
115
+
116
+ // sql = `
117
+ // SELECT
118
+ // u.name as user,
119
+ // d.name as device
120
+ // FROM User u
121
+ // JOIN Device d ON u.id = d.userId
122
+ // `.trim().replace(/[ ]{4}/g, '');
123
+ // const [{ rows }] = await db.query(sql);
124
+ // console.log(`\n[Query]\n${sql}`);
125
+ // console.table(rows);
126
+ // }
127
+
128
+ // run();
src/components/Commit.astro CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  import { format } from "timeago.js";
3
3
 
4
- const { title, author_name, hash, date, message } = Astro.props;
4
+ const { title, author_name, hash, date, message, refs } = Astro.props;
5
5
  ---
6
6
 
7
7
  <div class="event">
@@ -11,6 +11,7 @@ const { title, author_name, hash, date, message } = Astro.props;
11
11
  </a>
12
12
  — {author_name}
13
13
  <small class="pull-right">
14
+ <h3>{refs}</h3>
14
15
  <a href={`/repos/${title}/logs?from=??`} rel="nofollow">
15
16
  <span title={date}>
16
17
  {format(date)}
src/content.config.ts CHANGED
@@ -1,24 +1,38 @@
1
- import fs from "fs";
1
+ import fs from "fs/promises";
2
2
  import { simpleGit } from "simple-git";
3
3
  import { glob } from 'astro/loaders';
4
4
  import { defineCollection, z } from 'astro:content';
5
5
  import { REPOS } from './consts';
6
6
 
7
+
8
+ // https://pyrossh.dev/downloads/rp2350/refs/heads/master/repo.zip
9
+ // https://pyrossh-repos.s3.ap-south-1.amazonaws.com/rp2350/refs/heads/master/repo.zip
10
+
11
+ async function checkFileExists(filePath: string) {
12
+ try {
13
+ await fs.stat(filePath);
14
+ return true; // File exists
15
+ } catch (error) {
16
+ return false; // File does not exist or cannot be accessed
17
+ }
18
+ }
19
+
7
20
  export const collections = {
8
21
  repos: defineCollection({
9
22
  loader: {
10
23
  name: "loader",
11
- load: async (ctx) => {
24
+ load: async ({ renderMarkdown, store }) => {
12
25
  for (const r of REPOS) {
13
26
  const repoPath = `/Users/pyrossh/Code/pyrossh/${r.title}`;
14
27
  const readmePath = repoPath + "/README.md";
15
28
  console.log("loading repo " + repoPath)
16
29
  const git = simpleGit(repoPath)
17
- const commits = await git.log();
18
- const tags = await git.tag();
19
- const branches = await git.branchLocal();
30
+ const commits = await git.log(["--branches", "--tags"]);
20
-
31
+ const readmeContent = await checkFileExists(readmePath) ? await renderMarkdown(await fs.readFile(readmePath, 'utf-8')) : {
32
+ html: '',
33
+ metadata: {},
34
+ }
21
- ctx.store.set({
35
+ store.set({
22
36
  id: r.title,
23
37
  data: {
24
38
  title: r.title,
@@ -31,12 +45,8 @@ export const collections = {
31
45
  date: item.date,
32
46
  refs: item.refs,
33
47
  })),
34
- branches: branches.all,
35
- tags: tags,
36
48
  },
37
- rendered: {
49
+ rendered: readmeContent,
38
- html: '', // fs.existsSync(readmePath) ? await (await import(readmePath)).compiledContent() : "",
39
- }
40
50
  });
41
51
  }
42
52
  },
src/layouts/Base.astro CHANGED
@@ -1,11 +1,11 @@
1
1
  ---
2
+ import "./Base.css"; // Note: This has to be first always
2
3
  import { ClientRouter } from "astro:transitions";
3
4
  import { Font } from "astro:assets";
4
5
  import ResetCSS from "@appzic/astro-reset-css";
5
6
  import Header from "@/components/Header.astro";
6
7
  import Footer from "@/components/Footer.astro";
7
8
  import Wrapper from "@/components/Wrapper.astro";
8
- import "./Base.css";
9
9
 
10
10
  interface Props {
11
11
  title: string;
src/pages/index.module.css CHANGED
@@ -1,5 +1,5 @@
1
1
  h2 {
2
- font-size: 1.5rem;
2
+ font-size: 16pt;
3
3
  font-weight: 600;
4
4
  }
5
5
 
@@ -35,13 +35,19 @@ section {
35
35
 
36
36
  .title {
37
37
  font-size: 1.875rem;
38
- /* text-3xl */
39
38
  line-height: 2.25rem;
40
- /* text-3xl */
41
39
  font-weight: 700;
42
- /* font-bold */
43
40
  margin-bottom: 1rem;
41
+ }
42
+
43
+ .firstSection {
44
+ display: flex;
44
- /* mb-4 */
45
+ flex-direction: column;
46
+ }
47
+
48
+ .firstPara {
49
+ display: flex;
50
+ flex-direction: row;
45
51
  }
46
52
 
47
53
  .linkUnderline {
src/pages/repos/[...slug]/index.astro CHANGED
@@ -39,30 +39,19 @@ const { Content } = await render(Astro.props);
39
39
  </h3>
40
40
  <h3>
41
41
  wget
42
- <a
42
+ <a href={`https://pyrossh.dev/zips/${title}.zip`}>
43
+ https://pyrossh.dev/zips/{title}.zip
43
- href={`https://pyrossh-repos.s3.ap-south-1.amazonaws.com/${title}/refs/heads/master/repo.zip`}
44
+ <!-- https://pyrossh-repos.s3.ap-south-1.amazonaws.com/rp2350/refs/heads/master/repo.zip -->
44
- >
45
- https://pyrossh-repos.s3.ap-south-1.amazonaws.com/{
46
- title
47
- }/refs/heads/master/repo.zip
48
45
  </a>
49
46
  </h3>
50
47
  </div>
51
48
  <div class={styles.nav}>
52
49
  <div>
53
- <a href={`${title}/commits`}>Commits (view all)</a>
50
+ <a href={`/repos/${title}/commits`}>Commits</a>
54
51
  </div>
55
52
  <div>|</div>
56
53
  <div>
57
- <a class="nav-link" href={`/${title}/files`}>Files</a>
54
+ <a class="nav-link" href={`/repos/${title}/files`}>Files</a>
58
- </div>
59
- <div>|</div>
60
- <div>
61
- <a class="nav-link" href={`/${title}/branches`}>Branches</a>
62
- </div>
63
- <div>|</div>
64
- <div>
65
- <a class="nav-link" href={`/${title}/tags`}>Tags</a>
66
55
  </div>
67
56
  </div>
68
57
  <div class={styles.summary}>
src/pages/repos/[...slug]/index.module.css CHANGED
@@ -57,9 +57,8 @@
57
57
  a {
58
58
  font-size: 12pt;
59
59
  padding-right: 0.5rem;
60
- color: #65686a;
60
+ color: #3395ff;
61
61
  cursor: pointer;
62
- color: #ced4da;
63
62
  }
64
63
  }
65
64