use resume title for pdf download filename
This commit is contained in:
@@ -9,8 +9,7 @@ set -eu
|
||||
PUBLIC_FILE="/app/apps/web/.output/public/assets/file-D5WsIgJH.js"
|
||||
SSR_FILE="/app/apps/web/.output/server/_ssr/pdf-document-COfeOLVC.mjs"
|
||||
SERVER_INDEX_FILE="/app/apps/web/.output/server/index.mjs"
|
||||
PDF_FILENAME="ZhiboWang-Resume.pdf"
|
||||
CACHE_BUST="rr-filename-20260519"
|
||||
CACHE_BUST="rr-filename-title-20260519"
|
||||
|
||||
cp "$PUBLIC_FILE" "$PUBLIC_FILE.bak-filename" 2>/dev/null || true
|
||||
cp "$SSR_FILE" "$SSR_FILE.bak-filename" 2>/dev/null || true
|
||||
@@ -23,8 +22,7 @@ const crypto = require('crypto');
|
||||
const publicFile = '/app/apps/web/.output/public/assets/file-D5WsIgJH.js';
|
||||
const ssrFile = '/app/apps/web/.output/server/_ssr/pdf-document-COfeOLVC.mjs';
|
||||
const serverIndexFile = '/app/apps/web/.output/server/index.mjs';
|
||||
const pdfFilename = 'ZhiboWang-Resume.pdf';
|
||||
const cacheBust = 'rr-filename-20260519';
|
||||
const cacheBust = 'rr-filename-title-20260519';
|
||||
|
||||
function makeEtag(buffer) {
|
||||
const digest = crypto.createHash('sha1').update(buffer).digest('base64').replace(/=+$/g, '');
|
||||
@@ -68,8 +66,10 @@ function patchPublicImporters() {
|
||||
return files;
|
||||
}
|
||||
|
||||
const publicFilenameFunction = 'function t(e,t){let n=(e||"resume").toString().trim()||"resume";return n=n.replace(/[\\\\/:*?"<>|]/g,"-").replace(/\\s+/g," ").replace(/\\.+$/,"").trim()||"resume",t&&n.toLowerCase().endsWith("."+t.toLowerCase())?n:`${n}${t?`.${t}`:""}`}';
|
||||
|
||||
let publicJs = fs.readFileSync(publicFile, 'utf8');
|
||||
const publicReplacement = `function t(e,t){if(t==="pdf")return"${pdfFilename}";let n=(e||"resume").toString().trim()||"resume";return\`\${n}\${t?\`.\${t}\`:""}\`}`;
|
||||
const publicReplacement = publicFilenameFunction;
|
||||
if (!publicJs.includes(publicReplacement)) {
|
||||
const start = publicJs.indexOf('function t(');
|
||||
const end = publicJs.indexOf('function n(', start);
|
||||
@@ -79,7 +79,11 @@ if (!publicJs.includes(publicReplacement)) {
|
||||
fs.writeFileSync(publicFile, publicJs);
|
||||
|
||||
let ssr = fs.readFileSync(ssrFile, 'utf8');
|
||||
const ssrReplacement = `function generateFilename(prefix, extension) {\n\tif (extension === "pdf") return "${pdfFilename}";\n\tconst filename = (prefix || "resume").toString().trim() || "resume";\n\treturn \`\${filename}\${extension ? \`.\${extension}\` : ""}\`;\n}`;
|
||||
ssr = ssr.replace(
|
||||
/\n\t\tname: "",\n\t\tdata: \{/,
|
||||
'\n\t\tname: resume.name,\n\t\tdata: {',
|
||||
);
|
||||
const ssrReplacement = `function generateFilename(prefix, extension) {\n\tlet filename = (prefix || "resume").toString().trim() || "resume";\n\tfilename = filename.replace(/[\\\\/:*?"<>|]/g, "-").replace(/\\s+/g, " ").replace(/\\.+$/, "").trim() || "resume";\n\treturn extension && filename.toLowerCase().endsWith(\`.\${extension.toLowerCase()}\`) ? filename : \`\${filename}\${extension ? \`.\${extension}\` : ""}\`;\n}`;
|
||||
if (!ssr.includes(ssrReplacement)) {
|
||||
const start = ssr.indexOf('function generateFilename(');
|
||||
const end = ssr.indexOf('\nfunction downloadWithAnchor(', start);
|
||||
|
||||
Reference in New Issue
Block a user