Files
Rohit Ghumare 29c480a6f9 fix(site): refresh cached assets and align project commands (#513)
* fix(site): revalidate pages and version deployed assets

* fix(projects): align setup cards and add copy feedback

* fix(site): keep desktop navigation compact and controls usable
2026-09-30 00:07:51 +05:30

99 lines
4.6 KiB
JSON

{
"buildCommand": "node site/build.js && node site/build-projects.js --strict && node site/version-assets.js",
"outputDirectory": "site",
"framework": null,
"installCommand": "echo skip",
"routes": [
{ "src": "/lesson\\.html", "methods": ["GET", "HEAD"], "dest": "/api/lesson?legacy=1" },
{ "src": "/certification\\.html", "methods": ["GET", "HEAD"], "dest": "/api/certification?legacy=1" },
{ "src": "/", "methods": ["GET", "HEAD"], "has": [{ "type": "header", "key": "accept", "value": "(?i).*text/markdown.*" }], "dest": "/api/markdown?path=/" }
],
"rewrites": [
{ "source": "/lesson", "destination": "/api/lesson" },
{ "source": "/certification", "destination": "/api/certification" },
{ "source": "/about", "has": [{ "type": "header", "key": "accept", "value": ".*" }], "destination": "/api/markdown?path=/about" },
{ "source": "/catalog", "has": [{ "type": "header", "key": "accept", "value": ".*" }], "destination": "/api/markdown?path=/catalog" },
{ "source": "/glossary", "has": [{ "type": "header", "key": "accept", "value": ".*" }], "destination": "/api/markdown?path=/glossary" },
{ "source": "/path", "has": [{ "type": "header", "key": "accept", "value": ".*" }], "destination": "/api/markdown?path=/path" },
{ "source": "/roadmap", "has": [{ "type": "header", "key": "accept", "value": ".*" }], "destination": "/api/markdown?path=/roadmap" },
{ "source": "/developer", "has": [{ "type": "header", "key": "accept", "value": ".*" }], "destination": "/api/markdown?path=/developer" },
{ "source": "/docs", "has": [{ "type": "header", "key": "accept", "value": ".*" }], "destination": "/api/markdown?path=/docs" },
{ "source": "/contact", "has": [{ "type": "header", "key": "accept", "value": ".*" }], "destination": "/api/markdown?path=/contact" },
{ "source": "/privacy", "has": [{ "type": "header", "key": "accept", "value": ".*" }], "destination": "/api/markdown?path=/privacy" },
{ "source": "/sponsors", "has": [{ "type": "header", "key": "accept", "value": ".*" }], "destination": "/api/markdown?path=/sponsors" },
{ "source": "/glossary", "destination": "/glossary.html" },
{ "source": "/catalog", "destination": "/catalog.html" },
{ "source": "/certifications", "destination": "/certifications.html" },
{ "source": "/assessment", "destination": "/assessment.html" },
{ "source": "/path", "destination": "/prereqs.html" },
{ "source": "/roadmap", "destination": "/prereqs.html" },
{ "source": "/about", "destination": "/about.html" },
{ "source": "/developer", "destination": "/developer.html" },
{ "source": "/docs", "destination": "/developer.html" },
{ "source": "/contact", "destination": "/contact.html" },
{ "source": "/privacy", "destination": "/privacy.html" },
{ "source": "/sponsors", "destination": "/sponsors.html" }
],
"headers": [
{
"source": "/(.*)\\.(png|jpg|jpeg|svg|webp|woff2|woff|ttf|ico)",
"headers": [
{ "key": "Cache-Control", "value": "public, max-age=86400, s-maxage=604800, stale-while-revalidate=2592000" }
]
},
{
"source": "/(.*)\\.(css|js)",
"headers": [
{ "key": "Cache-Control", "value": "public, max-age=0, must-revalidate" }
]
},
{
"source": "/certification-data.js",
"headers": [
{ "key": "Cache-Control", "value": "no-cache, must-revalidate" }
]
},
{
"source": "/projects-data.js",
"headers": [
{ "key": "Cache-Control", "value": "no-cache, must-revalidate" }
]
},
{
"source": "/build-meta.js",
"headers": [
{ "key": "Cache-Control", "value": "no-cache, must-revalidate" }
]
},
{
"source": "/(.*)\\.html",
"headers": [
{ "key": "Cache-Control", "value": "public, max-age=0, must-revalidate" },
{ "key": "Vary", "value": "Accept, Accept-Encoding" }
]
},
{
"source": "/",
"headers": [
{ "key": "Cache-Control", "value": "public, max-age=0, must-revalidate" },
{ "key": "Vary", "value": "Accept, Accept-Encoding" }
]
},
{
"source": "/(glossary|catalog|certifications|certification|assessment|path|roadmap|about|developer|docs|contact|privacy)",
"headers": [
{ "key": "Cache-Control", "value": "public, max-age=0, must-revalidate" },
{ "key": "Vary", "value": "Accept, Accept-Encoding" }
]
},
{
"source": "/llms.txt",
"headers": [
{ "key": "Content-Type", "value": "text/markdown; charset=utf-8" },
{ "key": "Vary", "value": "Accept, Accept-Encoding" },
{ "key": "Cache-Control", "value": "public, max-age=0, must-revalidate" }
]
}
]
}