Skip to content

Commit

Permalink
migrated to new registerMarkdownCodeBlockProcessor
Browse files Browse the repository at this point in the history
  • Loading branch information
MSzturc committed Feb 9, 2021
1 parent 23d9302 commit 194dae6
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 82 deletions.
135 changes: 56 additions & 79 deletions main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,92 +16,69 @@ export default class BetterPDFPlugin extends Plugin {

pdfjs.GlobalWorkerOptions.workerSrc = worker;

this.registerMarkdownPostProcessor(async (el, ctx) => {
// Find PDF Node
const nodes = el.querySelectorAll<HTMLPreElement>(
'pre[class*="language-pdf"]'
);
if (!nodes) {
return;
this.registerMarkdownCodeBlockProcessor("pdf", async (src, el, ctx) => {

// Get Parameters
let parameters: PdfNodeParameters = null;
try {
parameters = this.readParameters(src);
} catch (e) {
el.createEl("h2", { text: "PDF Parameters invalid: " + e.message });
}

for (let node of nodes) {
// Get Parameters
let parameters: PdfNodeParameters = null;
//Create PDF Node
if (parameters !== null) {
try {
parameters = this.readParameters(node.innerText);
} catch (e) {
el.createEl("h2", { text: "PDF Parameters invalid: " + e.message });
}

//Remove old Representation
const root = node.parentElement;
root.removeChild(node);

//Create PDF Node
if (parameters !== null) {
try {
//Create Container for Pages
var canvasContainer = el.createDiv();
canvasContainer.id =
"pdf" + Math.floor(Math.random() * 10000000) + 1;

//Read Document
var vaultName = this.app.vault.getName();
var buffer = await this.app.vault.adapter.readBinary(
parameters.url
//Read Document
var vaultName = this.app.vault.getName();
var buffer = await this.app.vault.adapter.readBinary(parameters.url);
var document = await pdfjs.getDocument(buffer).promise;

//Read pages
for (let pageNumber of <number[]>parameters.page) {
var page = await document.getPage(pageNumber);

// Create hyperlink for Page
var href = el.createEl("a");
href.href = parameters.url + "#page=" + pageNumber;
href.className = "internal-link";

// Get Viewport
var offsetX = Math.floor(
parameters.rect[0] * -1 * parameters.scale
);
var document = await pdfjs.getDocument(buffer).promise;

//Read pages
for (let pageNumber of <number[]>parameters.page) {
var page = await document.getPage(pageNumber);

// Create hyperlink for Page
var href = canvasContainer.createEl("a");
href.href = parameters.url + "#page=" + pageNumber;
href.className = "internal-link";

// Get Viewport
var offsetX = Math.floor(
parameters.rect[0] * -1 * parameters.scale
);
var offsetY = Math.floor(
parameters.rect[1] * -1 * parameters.scale
);

var viewport = page.getViewport({
scale: parameters.scale,
rotation: parameters.rotation,
offsetX: offsetX,
offsetY: offsetY,
});

// Render Canvas
var canvas = href.createEl("canvas");
var context = canvas.getContext("2d");

if (parameters.rect[2] < 1) {
canvas.height = viewport.height;
canvas.width = viewport.width;
} else {
canvas.height = Math.floor(
parameters.rect[2] * parameters.scale
);
canvas.width = Math.floor(
parameters.rect[3] * parameters.scale
);
}

var renderContext = {
canvasContext: context,
viewport: viewport,
};
await page.render(renderContext);
var offsetY = Math.floor(
parameters.rect[1] * -1 * parameters.scale
);

var viewport = page.getViewport({
scale: parameters.scale,
rotation: parameters.rotation,
offsetX: offsetX,
offsetY: offsetY,
});

// Render Canvas
var canvas = href.createEl("canvas");
var context = canvas.getContext("2d");

if (parameters.rect[2] < 1) {
canvas.height = viewport.height;
canvas.width = viewport.width;
} else {
canvas.height = Math.floor(parameters.rect[2] * parameters.scale);
canvas.width = Math.floor(parameters.rect[3] * parameters.scale);
}
} catch (error) {
el.createEl("h2", { text: error });

var renderContext = {
canvasContext: context,
viewport: viewport,
};
await page.render(renderContext);
}
} catch (error) {
el.createEl("h2", { text: error });
}
}
});
Expand Down
4 changes: 2 additions & 2 deletions manifest.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"id": "better-pdf-plugin",
"name": "Better PDF Plugin",
"version": "1.1.2",
"minAppVersion": "0.10.11",
"version": "1.2.0",
"minAppVersion": "0.10.12",
"description": "Goal of this Plugin in to implement a native PDF handling workflow",
"author": "MSzturc",
"authorUrl": "https://github.com/MSzturc",
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "better-pdf-plugin",
"version": "1.1.2",
"version": "1.2.0",
"description": "Goal of this Plugin in to implement a native PDF handling workflow",
"main": "main.js",
"scripts": {
Expand Down
1 change: 1 addition & 0 deletions versions.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"1.2.0": "0.10.12",
"1.1.2": "0.10.11",
"1.1.1": "0.10.11",
"1.1.0": "0.10.11"
Expand Down

0 comments on commit 194dae6

Please sign in to comment.