mirror of
https://github.com/amitwh/markdown-converter.git
synced 2026-08-23 23:10:17 +05:30
feat(monospace): ExportCss embeds woff2 as base64 in CSS
Self-contained CSS for HTML export and print-preview iframe.
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const ExportCss = require('../src/main/ExportCss');
|
||||
|
||||
describe('ExportCss.build', () => {
|
||||
const fakeFontPath = path.join(__dirname, 'fixtures', 'fake.woff2');
|
||||
const fixture = Buffer.from('woff2-binary-fake-data');
|
||||
|
||||
beforeAll(() => {
|
||||
fs.mkdirSync(path.dirname(fakeFontPath), { recursive: true });
|
||||
fs.writeFileSync(fakeFontPath, fixture);
|
||||
});
|
||||
afterAll(() => fs.rmSync(path.dirname(fakeFontPath), { recursive: true, force: true }));
|
||||
|
||||
test('emits a self-contained CSS with embedded @font-face', () => {
|
||||
const css = ExportCss.build({ activeFontPath: fakeFontPath, family: 'JetBrains Mono', weight: 400, ligatures: false });
|
||||
expect(css).toMatch(/@font-face\s*\{[^}]*src:\s*url\('data:font\/woff2;base64,/);
|
||||
expect(css).toContain("font-family: 'JetBrains Mono'");
|
||||
expect(css).toMatch(/font-feature-settings:[^;]*liga[^;]*0/);
|
||||
});
|
||||
|
||||
test('falls back to family-only CSS when font path is missing', () => {
|
||||
const css = ExportCss.build({ activeFontPath: null, family: 'Fira Code', weight: 700, ligatures: true });
|
||||
expect(css).not.toContain('data:font/woff2;');
|
||||
expect(css).toContain("font-family: 'Fira Code'");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user