-
-
Notifications
You must be signed in to change notification settings - Fork 2
♻️ refactor: refactor release page for seo optimize #96
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
♻️ refactor: refactor release page for seo optimize #96
Conversation
WalkthroughComplete rewrite of Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor U as User
participant P as release-page.html
participant JS as Copy Utilities
participant CB as Navigator.clipboard
participant UI as Visual/ARIA Feedback
U->>P: Click "Copy" / press Enter on command
P->>JS: copyCommand(element) / copyInstallCommand(ev, text)
JS->>CB: writeText(text)
alt clipboard write success
CB-->>JS: resolved
JS->>UI: showCopyFeedback(btn) (visual + ARIA live)
UI-->>U: "Copied!" feedback
else clipboard write failure
CB-->>JS: rejected
JS->>UI: showCopyFeedback(btn, error)
UI-->>U: "Copy failed" feedback
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60–90 minutes Poem
✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
✅ Commit Validation PassedAll commits follow the conventional commit format! 🎉 Thank you for following our commit standards. This helps with:
|
|
🚨 Emergency Labeling Applied This PR was automatically labeled as "❓ Needs Review" because no other labels could be applied. Please:
This ensures proper organization and searchability of PRs. |
1 similar comment
|
🚨 Emergency Labeling Applied This PR was automatically labeled as "❓ Needs Review" because no other labels could be applied. Please:
This ensures proper organization and searchability of PRs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 6
🧹 Nitpick comments (10)
.github/release-page.html (10)
120-125: Drop unused preconnect/dns-prefetch to GitHub and Google FontsNo external fonts are used; GitHub/GitHub API aren’t fetched by the page. Remove to reduce DNS and connection noise.
- <link rel="preconnect" href="https://github.com" /> - <link rel="preconnect" href="https://api.github.com" /> - <link rel="dns-prefetch" href="https://github.com" /> - <link rel="dns-prefetch" href="https://api.github.com" /> ... - <link rel="dns-prefetch" href="//fonts.googleapis.com" /> - <link rel="dns-prefetch" href="//fonts.gstatic.com" />Also applies to: 227-229
21-23: Trim the keywords meta to avoid “keyword stuffing”Modern search engines largely ignore keywords meta; extremely long lists can be counterproductive. Keep a concise, high-signal list or remove entirely.
- <meta name="keywords" content="CLI toolkit, project generator, multi-framework, React generator, Vue CLI alternative, Angular CLI, Django starter, Flask generator, Spring Boot CLI, Laravel installer, Rails generator, Go CLI, Node.js generator, Python CLI, Java CLI, developer tools, code generator, scaffold, boilerplate, project template, framework generator, CLI tool, command line interface, project initialization, code scaffolding, development tools, programming tools, software development, web development, full-stack development, frontend generator, backend generator, TypeScript, JavaScript, Python, Java, Go, PHP, Ruby, Rust, Svelte, Nuxt, Next.js, Express, FastAPI, Fastify, NestJS, Symfony, CakePHP, CodeIgniter, Ionic, React Native, Flutter, Tauri, Electron, desktop app generator, mobile app generator, web app generator" /> + <!-- Consider removing keywords meta or reducing to a short, focused list --> + <meta name="keywords" content="CLI toolkit, project generator, multi‑framework" />
29-35: Remove legacy/low-value meta tagsThese have negligible SEO value today and add noise: language, geo.region, geo.placename, distribution, rating, revisit-after.
- <meta name="language" content="English" /> - <meta name="geo.region" content="VN" /> - <meta name="geo.placename" content="Vietnam" /> - <meta name="distribution" content="global" /> - <meta name="rating" content="general" /> - <meta name="revisit-after" content="7 days" />
46-47: Verify browserconfig.xml availability or remove msapplication-configIf ./browserconfig.xml isn’t shipped, these generate 404s. Either add the file or drop the tags.
- <meta name="msapplication-config" content="./browserconfig.xml" /> ... - <meta name="msapplication-config" content="./browserconfig.xml" />Also applies to: 196-197
60-68: Use a raster OG/Twitter card image instead of SVGMost social platforms prefer PNG/JPG (1200×630). Point og:image and twitter:image to a real 1200×630 PNG; keep width/height consistent.
- <meta property="og:image" content="https://tienld-0801.github.io/tilokit/logo.svg" /> + <meta property="og:image" content="https://tienld-0801.github.io/tilokit/og-image.png" /> ... - <meta name="twitter:image" content="https://tienld-0801.github.io/tilokit/logo.svg" /> + <meta name="twitter:image" content="https://tienld-0801.github.io/tilokit/og-image.png" />Also applies to: 154-162, 184-190
435-461: BreadcrumbList points all items to the same URLBreadcrumbs should reflect a hierarchy with distinct URLs. On a single-page release site, it’s better to omit breadcrumbs than repeat the same link.
- <!-- Breadcrumb Schema --> - <script type="application/ld+json"> - { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ ...same URLs... ] } - </script>
231-283: Deduplicate CSS: drop the “Critical CSS” block or keep it minimalYou re-declare body/container/header styles again in the main <style> (Lines 462+). Keep either:
- A tiny, truly-critical block (above-the-fold only) OR
- Only the later consolidated stylesheet.
- <!-- Critical CSS inline for above-the-fold content --> - <style> - /* Critical CSS for above-the-fold content */ - * { box-sizing: border-box; } - body { ... } - .container { ... } - .header { ... } - .logo-title { ... } - .logo { ... } - .logo:hover { ... } - .header h1 { ... } - .header p { ... } - </style>
129-134: Use PNG for apple-touch-icon; iOS doesn’t support SVG herePoint apple-touch-icon to a 180×180 PNG. Keep SVG for generic favicons if desired.
- <link rel="apple-touch-icon" href="./logo.svg" /> + <link rel="apple-touch-icon" sizes="180x180" href="./apple-touch-icon.png" />
1280-1306: Addnoreferrerto external links opened in new tabsYou already use rel="noopener"; adding noreferrer avoids referrer leakage and is widely recommended.
- <a href="https://discord.gg/BzNmrJ5xnC" rel="noopener" target="_blank"> + <a href="https://discord.gg/BzNmrJ5xnC" rel="noopener noreferrer" target="_blank"> ... - <a href="https://github.com/tienld-0801/tilokit" rel="noopener" target="_blank"> + <a href="https://github.com/tienld-0801/tilokit" rel="noopener noreferrer" target="_blank"> ... - <a href="https://github.com/tienld-0801/tilokit/issues" rel="noopener" target="_blank"> + <a href="https://github.com/tienld-0801/tilokit/issues" rel="noopener noreferrer" target="_blank"> ... - <a href="https://github.com/tienld-0801/tilokit/discussions" rel="noopener" target="_blank"> + <a href="https://github.com/tienld-0801/tilokit/discussions" rel="noopener noreferrer" target="_blank"> ... - <a href="https://github.com/tienld-0801/tilokit/releases" rel="noopener" target="_blank"> + <a href="https://github.com/tienld-0801/tilokit/releases" rel="noopener noreferrer" target="_blank">
300-414: Sanity-check JSON-LD URLs and downloadsConfirm that every DataDownload URL exists and returns a 200 with appropriate content type. Broken structured data links can hurt rich results eligibility. If any asset isn’t deployed via Pages, switch to absolute GitHub Releases URLs.
I can generate a quick verification script to scan for 404s across these URLs if you want.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/release-page.html(1 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
.github/release-page.html (3)
.github/scripts/release.sh (2)
main(175-221)commit_release_changes(112-131)scripts/test-release.sh (1)
main(154-207)scripts/status.sh (1)
main(40-124)
✅ Commit Validation PassedAll commits follow the conventional commit format! 🎉 Thank you for following our commit standards. This helps with:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
♻️ Duplicate comments (3)
.github/release-page.html (3)
142-193: Remove duplicated OG/Twitter blocksThis block duplicates the enhanced OG/Twitter tags at Lines 48–98. Keep only one set.
Apply:
- <!-- Open Graph / Facebook --> - <meta property="og:type" content="website" /> - <meta property="og:url" content="https://tienld-0801.github.io/tilokit/" /> - <meta property="og:title" content="TiLoKit {{VERSION}} - Universal CLI Toolkit for Multi-Framework Development" /> - <meta property="og:description" content="Download TiLoKit {{VERSION}} - Universal CLI toolkit for generating 20+ framework projects including React, Vue, Angular, Django, Flask, Spring Boot, Laravel, Rails. Free download for Linux, macOS, Windows." /> - <meta property="og:image" content="https://tienld-0801.github.io/tilokit/logo.svg" /> - <meta property="og:image:alt" content="TiLoKit Logo - Universal CLI Toolkit" /> - <meta property="og:image:width" content="1200" /> - <meta property="og:image:height" content="630" /> - <meta property="og:site_name" content="TiLoKit" /> - <meta property="og:locale" content="en_US" /> - <meta property="article:author" content="TienLD" /> - <meta property="article:published_time" content="{{BUILD_DATE}}" /> - <meta property="article:modified_time" content="{{BUILD_DATE}}" /> - - <!-- Twitter --> - <meta property="twitter:card" content="summary_large_image" /> - <meta property="twitter:url" content="https://tienld-0801.github.io/tilokit/" /> - <meta property="twitter:title" content="TiLoKit {{VERSION}} - Universal CLI Toolkit for Multi-Framework Development" /> - <meta property="twitter:description" content="Download TiLoKit {{VERSION}} - Universal CLI toolkit for generating 20+ framework projects including React, Vue, Angular, Django, Flask, Spring Boot, Laravel, Rails. Free download for Linux, macOS, Windows." /> - <meta property="twitter:image" content="https://tienld-0801.github.io/tilokit/logo.svg" /> - <meta property="twitter:image:alt" content="TiLoKit Logo - Universal CLI Toolkit" /> - <meta property="twitter:creator" content="@tienld0801" /> - <meta property="twitter:site" content="@tienld0801" />
194-208: Remove duplicated canonical/hreflang linksThese duplicate Lines 99–111. Keep the earlier set.
- <link rel="canonical" href="https://tienld-0801.github.io/tilokit/" /> - <link - rel="alternate" - hreflang="en" - href="https://tienld-0801.github.io/tilokit/" - /> - <link - rel="alternate" - hreflang="x-default" - href="https://tienld-0801.github.io/tilokit/" - />
284-299: Remove duplicated manifest/favicons/preconnect blockAlready declared at Lines 120–135 and 126–134. Drop this duplicate.
- <!-- PWA Manifest --> - <link rel="manifest" href="./manifest.json" /> - - <!-- Favicon --> - <link rel="icon" type="image/svg+xml" href="./logo.svg" /> - <link rel="apple-touch-icon" href="./logo.svg" /> - <link rel="shortcut icon" href="./logo.svg" /> - <link rel="icon" sizes="32x32" href="./logo.svg" /> - <link rel="icon" sizes="16x16" href="./logo.svg" /> - - <!-- Preconnect for performance --> - <link rel="preconnect" href="https://github.com" /> - <link rel="preconnect" href="https://api.github.com" /> - <link rel="dns-prefetch" href="https://github.com" /> - <link rel="dns-prefetch" href="https://api.github.com" />
🧹 Nitpick comments (11)
.github/release-page.html (11)
29-35: Prune non-standard/ignored meta tagsThese provide no SEO value on modern engines and add noise: language, geo.*, distribution, rating, revisit-after.
- <meta name="language" content="English" /> - <meta name="geo.region" content="VN" /> - <meta name="geo.placename" content="Vietnam" /> - <meta name="distribution" content="global" /> - <meta name="rating" content="general" /> - <meta name="revisit-after" content="7 days" />
71-73: Fix Open Graph type/property mismatchYou’re using og:type=website but also article:* properties. Either switch og:type to article or remove article:*.
- <meta property="article:author" content="TienLD" /> - <meta property="article:published_time" content="{{BUILD_DATE}}" /> - <meta property="article:modified_time" content="{{BUILD_DATE}}" />(and the same three lines at 165–167)
Also applies to: 165-167
226-229: Avoid double-preloading the same assetslogo.svg is preloaded statically (Line 226) and again via JS (Lines 1472–1486). Keep one method; simplest is to remove the JS preloads.
- const criticalResources = ["./logo.svg", "./manifest.json"]; - - criticalResources.forEach((resource) => { - const link = document.createElement("link"); - link.rel = "preload"; - link.href = resource; - if (resource.endsWith(".svg")) { - link.as = "image"; - link.type = "image/svg+xml"; - } else if (resource.endsWith(".json")) { - link.as = "fetch"; - link.type = "application/json"; - } - document.head.appendChild(link); - });Also applies to: 1472-1486
227-228: Remove unused font DNS prefetchNo Google Fonts are loaded; drop these hints.
- <link rel="dns-prefetch" href="//fonts.googleapis.com" /> - <link rel="dns-prefetch" href="//fonts.gstatic.com" />
129-134: Serve proper favicon and Apple touch iconsSVG isn’t supported for apple-touch-icon; sizes links should point to PNGs.
- <link rel="icon" type="image/svg+xml" href="./logo.svg" /> - <link rel="apple-touch-icon" href="./logo.svg" /> - <link rel="shortcut icon" href="./logo.svg" /> - <link rel="icon" sizes="32x32" href="./logo.svg" /> - <link rel="icon" sizes="16x16" href="./logo.svg" /> + <link rel="icon" type="image/svg+xml" href="./logo.svg" /> + <link rel="icon" type="image/png" sizes="32x32" href="./favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="./favicon-16x16.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="./apple-touch-icon.png" /> + <link rel="shortcut icon" href="./favicon.ico" />
60-68: Use a raster social image (1200×630) instead of SVGMany platforms don’t render SVG previews. Point OG/Twitter images to a 1200×630 PNG/JPEG.
- <meta property="og:image" content="https://tienld-0801.github.io/tilokit/logo.svg" /> + <meta property="og:image" content="https://tienld-0801.github.io/tilokit/og-image.png" /> <meta property="og:image:width" content="1200" /> <meta property="og:image:height" content="630" /> @@ - <meta name="twitter:image" content="https://tienld-0801.github.io/tilokit/logo.svg" /> + <meta name="twitter:image" content="https://tienld-0801.github.io/tilokit/og-image.png" />Ensure og-image.png exists and is optimized (~<200KB).
Also applies to: 88-94
428-454: BreadcrumbList adds no value (all items point to the same URL)Either provide distinct URLs or remove the block to avoid confusing structured data.
- <!-- Breadcrumb Schema --> - <script type="application/ld+json"> - { - "@context": "https://schema.org", - "@type": "BreadcrumbList", - "itemListElement": [ - { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://tienld-0801.github.io/tilokit/" }, - { "@type": "ListItem", "position": 2, "name": "Download", "item": "https://tienld-0801.github.io/tilokit/" }, - { "@type": "ListItem", "position": 3, "name": "TiLoKit {{VERSION}}", "item": "https://tienld-0801.github.io/tilokit/" } - ] - } - </script>
872-971: Consolidate duplicate @media (max-width: 768px) blocksTwo overlapping mobile blocks increase CSS size and maintenance. Merge into one.
1278-1305: Add noreferrer to external linksFor privacy and consistency, include noreferrer with noopener on target=_blank links.
- <a href="https://discord.gg/BzNmrJ5xnC" rel="noopener" target="_blank"> + <a href="https://discord.gg/BzNmrJ5xnC" rel="noopener noreferrer" target="_blank"> @@ - rel="noopener" + rel="noopener noreferrer" @@ - rel="noopener" + rel="noopener noreferrer" @@ - rel="noopener" + rel="noopener noreferrer" @@ - rel="noopener" + rel="noopener noreferrer"
112-119: Sitemap link tag is optionalSearch engines typically discover sitemaps via robots.txt. Keeping it is harmless but not necessary.
195-197: De-duplicate theme/msapplication metaThese appear twice (Lines 44–46 and 195–197). Keep the first set.
- <meta name="theme-color" content="#667eea" /> - <meta name="msapplication-TileColor" content="#667eea" /> - <meta name="msapplication-config" content="./browserconfig.xml" />Also applies to: 44-46
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/release-page.html(1 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
.github/release-page.html (3)
.github/scripts/release.sh (1)
main(175-221)scripts/test-release.sh (1)
main(154-207)scripts/status.sh (1)
main(40-124)
🔇 Additional comments (1)
.github/release-page.html (1)
1376-1411: Copy feedback implementation: nice improvementNon-destructive feedback for command-line blocks and button label swap look good; CSS/JS interplay is correct.
Also applies to: 641-645
| <meta name="msapplication-tap-highlight" content="no" /> | ||
| <meta name="theme-color" content="#667eea" /> | ||
| <meta name="msapplication-TileColor" content="#667eea" /> | ||
| <meta name="msapplication-config" content="./browserconfig.xml" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Verify referenced assets exist (avoid 404s)
Check browserconfig.xml, manifest.json, humans.txt, security.txt, and og-image.png (if you adopt it).
Also applies to: 127-127, 1305-1307
🏁 Script executed:
#!/bin/bash
# List expected static assets in repo
fd -a 'browserconfig.xml|manifest.json|humans.txt|security.txt|og-image.png|favicon-16x16.png|favicon-32x32.png|apple-touch-icon.png'
# Grep for manifest and sitemap in codebase to confirm paths
rg -n 'manifest.json|sitemap.xml|og-image\.png|apple-touch-icon\.png|favicon-32x32\.png|favicon-16x16\.png'Length of output: 338
Add referenced static assets to avoid 404s
In .github/release-page.html (lines 46, 127, 1305–1307), the following files are referenced but missing from the repo:
- browserconfig.xml
- manifest.json
- humans.txt
- security.txt
- og-image.png (if adopted)
Add these assets to the repository or remove/update their references.
🤖 Prompt for AI Agents
.github/release-page.html around lines 46, 127, and 1305–1307: the HTML
references several static assets (browserconfig.xml, manifest.json, humans.txt,
security.txt, and og-image.png) that are not present in the repository, causing
404s; either add these files to the repo in the expected paths (ensure valid
content: a browserconfig.xml with tile config, a manifest.json with app
metadata, humans.txt and security.txt with appropriate site info/policy, and an
og-image.png sized for social preview) or remove/update the <link>/<meta>/<img>
references in the HTML to point to existing assets or CDN locations so the page
no longer references missing files.
| "offers": { | ||
| "@type": "Offer", | ||
| "price": "0", | ||
| "priceCurrency": "USD", | ||
| "availability": "https://schema.org/InStock", | ||
| "validFrom": "{{BUILD_DATE}}" | ||
| }, | ||
| "softwareVersion": "{{VERSION}}", | ||
| "datePublished": "{{BUILD_DATE}}", | ||
| "dateModified": "{{BUILD_DATE}}", | ||
| "license": "https://github.com/tienld-0801/tilokit/blob/develop/LICENSE", | ||
| "isAccessibleForFree": true, | ||
| "softwareRequirements": "No dependencies required", | ||
| "memoryRequirements": "Minimal", | ||
| "storageRequirements": "< 50MB", | ||
| "supportingData": [ | ||
| { | ||
| "@type": "DataDownload", | ||
| "name": "Installation Script", | ||
| "contentUrl": "https://tienld-0801.github.io/tilokit/install.sh", | ||
| "encodingFormat": "text/x-shellscript" | ||
| }, | ||
| { | ||
| "@type": "DataDownload", | ||
| "name": "Linux AMD64 Binary", | ||
| "contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-linux-amd64", | ||
| "encodingFormat": "application/octet-stream" | ||
| }, | ||
| { | ||
| "@type": "DataDownload", | ||
| "name": "Linux ARM64 Binary", | ||
| "contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-linux-arm64", | ||
| "encodingFormat": "application/octet-stream" | ||
| }, | ||
| { | ||
| "@type": "DataDownload", | ||
| "name": "macOS Intel Binary", | ||
| "contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-darwin-amd64", | ||
| "encodingFormat": "application/octet-stream" | ||
| }, | ||
| { | ||
| "@type": "DataDownload", | ||
| "name": "macOS Apple Silicon Binary", | ||
| "contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-darwin-arm64", | ||
| "encodingFormat": "application/octet-stream" | ||
| }, | ||
| { | ||
| "@type": "DataDownload", | ||
| "name": "Windows AMD64 Binary", | ||
| "contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-windows-amd64.exe", | ||
| "encodingFormat": "application/x-msdownload" | ||
| }, | ||
| { | ||
| "@type": "DataDownload", | ||
| "name": "Windows ARM64 Binary", | ||
| "contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-windows-arm64.exe", | ||
| "encodingFormat": "application/x-msdownload" | ||
| } | ||
| ], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Fix invalid JSON‑LD property: use hasPart instead of supportingData
supportingData isn’t a recognized property on SoftwareApplication. Use hasPart with DataDownload entries. Also consider pointing downloadUrl to the installer script.
- "downloadUrl": "https://tienld-0801.github.io/tilokit/",
+ "downloadUrl": "https://tienld-0801.github.io/tilokit/install.sh",
@@
- "supportingData": [
+ "hasPart": [
{
"@type": "DataDownload",
"name": "Installation Script",
"contentUrl": "https://tienld-0801.github.io/tilokit/install.sh",
"encodingFormat": "text/x-shellscript"
},
{
"@type": "DataDownload",
"name": "Linux AMD64 Binary",
"contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-linux-amd64",
"encodingFormat": "application/octet-stream"
},
{
"@type": "DataDownload",
"name": "Linux ARM64 Binary",
"contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-linux-arm64",
"encodingFormat": "application/octet-stream"
},
{
"@type": "DataDownload",
"name": "macOS Intel Binary",
"contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-darwin-amd64",
"encodingFormat": "application/octet-stream"
},
{
"@type": "DataDownload",
"name": "macOS Apple Silicon Binary",
"contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-darwin-arm64",
"encodingFormat": "application/octet-stream"
},
{
"@type": "DataDownload",
"name": "Windows AMD64 Binary",
"contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-windows-amd64.exe",
"encodingFormat": "application/x-msdownload"
},
{
"@type": "DataDownload",
"name": "Windows ARM64 Binary",
"contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-windows-arm64.exe",
"encodingFormat": "application/x-msdownload"
}
],📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "offers": { | |
| "@type": "Offer", | |
| "price": "0", | |
| "priceCurrency": "USD", | |
| "availability": "https://schema.org/InStock", | |
| "validFrom": "{{BUILD_DATE}}" | |
| }, | |
| "softwareVersion": "{{VERSION}}", | |
| "datePublished": "{{BUILD_DATE}}", | |
| "dateModified": "{{BUILD_DATE}}", | |
| "license": "https://github.com/tienld-0801/tilokit/blob/develop/LICENSE", | |
| "isAccessibleForFree": true, | |
| "softwareRequirements": "No dependencies required", | |
| "memoryRequirements": "Minimal", | |
| "storageRequirements": "< 50MB", | |
| "supportingData": [ | |
| { | |
| "@type": "DataDownload", | |
| "name": "Installation Script", | |
| "contentUrl": "https://tienld-0801.github.io/tilokit/install.sh", | |
| "encodingFormat": "text/x-shellscript" | |
| }, | |
| { | |
| "@type": "DataDownload", | |
| "name": "Linux AMD64 Binary", | |
| "contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-linux-amd64", | |
| "encodingFormat": "application/octet-stream" | |
| }, | |
| { | |
| "@type": "DataDownload", | |
| "name": "Linux ARM64 Binary", | |
| "contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-linux-arm64", | |
| "encodingFormat": "application/octet-stream" | |
| }, | |
| { | |
| "@type": "DataDownload", | |
| "name": "macOS Intel Binary", | |
| "contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-darwin-amd64", | |
| "encodingFormat": "application/octet-stream" | |
| }, | |
| { | |
| "@type": "DataDownload", | |
| "name": "macOS Apple Silicon Binary", | |
| "contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-darwin-arm64", | |
| "encodingFormat": "application/octet-stream" | |
| }, | |
| { | |
| "@type": "DataDownload", | |
| "name": "Windows AMD64 Binary", | |
| "contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-windows-amd64.exe", | |
| "encodingFormat": "application/x-msdownload" | |
| }, | |
| { | |
| "@type": "DataDownload", | |
| "name": "Windows ARM64 Binary", | |
| "contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-windows-arm64.exe", | |
| "encodingFormat": "application/x-msdownload" | |
| } | |
| ], | |
| "downloadUrl": "https://tienld-0801.github.io/tilokit/install.sh", | |
| "offers": { | |
| "@type": "Offer", | |
| "price": "0", | |
| "priceCurrency": "USD", | |
| "availability": "https://schema.org/InStock", | |
| "validFrom": "{{BUILD_DATE}}" | |
| }, | |
| "softwareVersion": "{{VERSION}}", | |
| "datePublished": "{{BUILD_DATE}}", | |
| "dateModified": "{{BUILD_DATE}}", | |
| "license": "https://github.com/tienld-0801/tilokit/blob/develop/LICENSE", | |
| "isAccessibleForFree": true, | |
| "softwareRequirements": "No dependencies required", | |
| "memoryRequirements": "Minimal", | |
| "storageRequirements": "< 50MB", | |
| "hasPart": [ | |
| { | |
| "@type": "DataDownload", | |
| "name": "Installation Script", | |
| "contentUrl": "https://tienld-0801.github.io/tilokit/install.sh", | |
| "encodingFormat": "text/x-shellscript" | |
| }, | |
| { | |
| "@type": "DataDownload", | |
| "name": "Linux AMD64 Binary", | |
| "contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-linux-amd64", | |
| "encodingFormat": "application/octet-stream" | |
| }, | |
| { | |
| "@type": "DataDownload", | |
| "name": "Linux ARM64 Binary", | |
| "contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-linux-arm64", | |
| "encodingFormat": "application/octet-stream" | |
| }, | |
| { | |
| "@type": "DataDownload", | |
| "name": "macOS Intel Binary", | |
| "contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-darwin-amd64", | |
| "encodingFormat": "application/octet-stream" | |
| }, | |
| { | |
| "@type": "DataDownload", | |
| "name": "macOS Apple Silicon Binary", | |
| "contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-darwin-arm64", | |
| "encodingFormat": "application/octet-stream" | |
| }, | |
| { | |
| "@type": "DataDownload", | |
| "name": "Windows AMD64 Binary", | |
| "contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-windows-amd64.exe", | |
| "encodingFormat": "application/x-msdownload" | |
| }, | |
| { | |
| "@type": "DataDownload", | |
| "name": "Windows ARM64 Binary", | |
| "contentUrl": "https://tienld-0801.github.io/tilokit/tilokit-windows-arm64.exe", | |
| "encodingFormat": "application/x-msdownload" | |
| } | |
| ], |
🤖 Prompt for AI Agents
.github/release-page.html lines 330-388: the JSON-LD uses the nonstandard
"supportingData" property; replace that key with "hasPart" and keep each
DataDownload object as-is but add a downloadUrl property where appropriate (at
minimum the Installation Script entry should use downloadUrl pointing to the
installer script URL) and ensure other download entries include downloadUrl when
they are meant to be downloadable resources; this aligns the schema with
SoftwareApplication/hasPart and corrects the invalid property.
🚀 Description
🔄 Type of Change
📝 Changes Made
🧪 Testing
Test Results
📖 Documentation
🔗 Related Issues
Fixes #
Closes #
Related to #
📸 Screenshots/Examples
✅ Checklist
🎯 Focus Areas for Review
🚨 Breaking Changes
📝 Additional Notes
Please ensure all checks pass before requesting review
Summary by CodeRabbit
New Features
Refactor
Style
Documentation
Chores