-
Notifications
You must be signed in to change notification settings - Fork 0
/
renderer.js
68 lines (60 loc) · 1.94 KB
/
renderer.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
const editor = CodeMirror(document.getElementById('editor'), {
mode: 'stex',
lineNumbers: true,
theme: 'default',
lineWrapping: true
});
// Load LaTeX file
async function loadProject() {
try {
const filePath = await window.electron.invoke('load-project');
if (filePath) {
const data = await window.electron.readFile(filePath);
editor.setValue(data);
updatePreview(data);
}
} catch (err) {
console.error('An error occurred:', err);
}
}
// Save LaTeX content as PDF
async function saveAsPDF(latexContent, engine) {
try {
const filePath = await window.electron.saveAsPDF(latexContent, engine);
if (filePath) {
console.log('PDF saved to:', filePath);
}
} catch (err) {
console.error('Error generating PDF:', err);
}
}
// Update the PDF preview
async function updatePreview(latexContent) {
try {
const pdfPath = await window.electron.saveAsPDF(latexContent, 'xelatex', true);
if (pdfPath) {
console.log('Preview PDF path:', pdfPath);
document.getElementById('preview').src = `file://${pdfPath}`;
}
} catch (err) {
console.error('Error updating preview:', err);
}
}
document.getElementById('loadProject').addEventListener('click', loadProject);
document.getElementById('save').addEventListener('click', () => {
const latexContent = editor.getValue();
const engine = document.getElementById('engineSelect').value;
console.log('Saving as PDF with engine:', engine);
saveAsPDF(latexContent, engine);
});
// Update preview on content change
editor.on('change', () => {
const latexContent = editor.getValue();
updatePreview(latexContent);
});
// Adjust the height of CodeMirror when the window resizes
window.addEventListener('resize', () => {
editor.setSize(null, '100%');
});
// Set initial height
editor.setSize(null, '100%');