feat(pdf): add configurable PDF export and improve print rendering
This commit is contained in:
@@ -20,6 +20,7 @@ import { applyFormat, bindFormatShortcuts, bindIndentationShortcuts } from "@rus
|
||||
import { bindEmojiPicker } from "@rustpad/emoji-picker";
|
||||
import { updateImageAliasInLineBySource } from "@rustpad/image-alias";
|
||||
import { previewEditingHost } from "@rustpad/preview-edit";
|
||||
import { bindPdfExport } from "@rustpad/pdf-export";
|
||||
import { createRenderQueue } from "@rustpad/render-queue";
|
||||
import { alignPreviewLineNumbers, renderMarkdown, setMarkdownFiles, unresolvedMarkdownFileAliases } from "@rustpad/markdown";
|
||||
import { getNickname, getGuestId, getAuthToken, getAccessToken, setAccessToken } from "@rustpad/session";
|
||||
@@ -957,6 +958,7 @@ export function startNoteEditor(adapter) {
|
||||
if (primary && !event.shiftKey && event.key.toLowerCase() === "k") return "link";
|
||||
if (primary && event.shiftKey && event.key === "7") return "number";
|
||||
if (primary && event.shiftKey && event.key === "8") return "bullet";
|
||||
if (primary && !event.shiftKey && event.key === "Enter") return "page-break";
|
||||
if (primary && event.shiftKey && event.key === "9") return "task";
|
||||
if (event.altKey && /^[1-4]$/.test(event.key)) return `heading${event.key}`;
|
||||
return null;
|
||||
@@ -2051,6 +2053,13 @@ export function startNoteEditor(adapter) {
|
||||
});
|
||||
bindFormatShortcuts(editor);
|
||||
bindIndentationShortcuts(editor, { size: 2 });
|
||||
bindPdfExport({
|
||||
button: document.querySelector("#export-pdf"),
|
||||
dialog: document.querySelector("#pdf-export-dialog"),
|
||||
form: document.querySelector("#pdf-export-form"),
|
||||
preview,
|
||||
title: () => document.querySelector("#document-title")?.textContent?.trim() || document.title,
|
||||
});
|
||||
bindEmojiPicker({ editor, details: document.querySelector("#emoji-picker"), search: document.querySelector("#emoji-search"), categories: document.querySelector("#emoji-categories"), grid: document.querySelector("#emoji-grid"), empty: document.querySelector("#emoji-empty") });
|
||||
document.querySelector("#shortcuts-button").addEventListener("click", () => document.querySelector("#shortcuts-dialog").showModal());
|
||||
document.querySelector("#close-shortcuts").addEventListener("click", () => document.querySelector("#shortcuts-dialog").close());
|
||||
|
||||
Reference in New Issue
Block a user