예제 PDF와 통계 및 표시 속성 한글화와 검증 기록
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
import fs from 'node:fs';import crypto from 'node:crypto';
|
||||
const b='work/trilium',out=b+'/phase5';fs.mkdirSync(out,{recursive:true});
|
||||
const hash=s=>crypto.createHash('sha256').update(s).digest('hex');
|
||||
const pdf=fs.readFileSync('output/pdf/마지막-질문-한국어.pdf');fs.writeFileSync(out+'/demo-ko.pdf',pdf);
|
||||
const original=fs.readFileSync(b+'/phase4-inspect/demo.pdf');
|
||||
let main=fs.readFileSync(b+'/phase4/main.cjs','utf8');const oldmain=main;
|
||||
const marker='triliumApplyKoreanPhase4()})';if(main.split(marker).length!==2)throw Error('Startup mismatch');
|
||||
main=main.replace(marker,'triliumApplyKoreanPhase4();triliumApplyKoreanPdf()})');
|
||||
const hook=`
|
||||
function triliumApplyKoreanPdf(){
|
||||
const fs=require('fs'),crypto=require('crypto'),file='/home/node/trilium-data/korean-demo-pdf.pending';
|
||||
if(!fs.existsSync(file))return;
|
||||
const content=fs.readFileSync(file),hash=s=>crypto.createHash('sha256').update(s).digest('hex');
|
||||
if(hash(content)!=='${hash(pdf)}')throw Error('Invalid Korean PDF');
|
||||
de.transactional(()=>{
|
||||
const n=J.getNoteOrThrow('swKGGdlek7o6'),old=n.getContent();
|
||||
if(n.isDeleted||n.isProtected||n.mime!=='application/pdf')throw Error('PDF note mismatch');
|
||||
if(hash(old)===hash(content))return;
|
||||
if(hash(old)!=='${hash(original)}')throw Error('PDF content changed');
|
||||
const rev=new Mk({noteId:n.noteId,title:n.title,type:n.type,mime:n.mime,isProtected:n.isProtected,utcDateLastEdited:n.utcDateModified,utcDateCreated:kr.utcNowDateTime(),utcDateModified:kr.utcNowDateTime(),dateLastEdited:n.dateModified,dateCreated:kr.localNowDateTime()},true);
|
||||
rev.save();rev.setContent(old);n.setContent(content);
|
||||
});
|
||||
fs.renameSync(file,file+'.applied-'+Date.now());console.log('KOREAN_DEMO_PDF_APPLIED');
|
||||
}
|
||||
`;
|
||||
fs.writeFileSync(out+'/main.cjs',hook+main);
|
||||
fs.writeFileSync(out+'/manifest.json',JSON.stringify({previousMainSha256:hash(oldmain),originalPdfSha256:hash(original),files:{'main.cjs':hash(hook+main),'demo-ko.pdf':hash(pdf)}},null,2));
|
||||
console.log({pdfBytes:pdf.length});
|
||||
Reference in New Issue
Block a user