From eedc6bb9b6e7cd177bba5eafdda15992b0f008f6 Mon Sep 17 00:00:00 2001
From: xiangyu <3170102889@zju.edu.cn>
Date: Wed, 24 Aug 2022 10:53:57 +0800
Subject: [PATCH] resolve: #119 AsciiDoc support
---
addon/chrome/content/overlay.xul | 2 ++
addon/chrome/content/workspace.xul | 2 ++
addon/chrome/locale/en-US/overlay.dtd | 3 ++-
addon/chrome/locale/zh-CN/overlay.dtd | 1 +
package.json | 1 +
src/events.ts | 20 ++++++++++++++++++++
src/parse.ts | 5 +++++
7 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/addon/chrome/content/overlay.xul b/addon/chrome/content/overlay.xul
index 833ef49..7e7439a 100644
--- a/addon/chrome/content/overlay.xul
+++ b/addon/chrome/content/overlay.xul
@@ -41,6 +41,7 @@
-->
+
@@ -89,6 +90,7 @@
+
diff --git a/addon/chrome/content/workspace.xul b/addon/chrome/content/workspace.xul
index 8ea6409..7224076 100644
--- a/addon/chrome/content/workspace.xul
+++ b/addon/chrome/content/workspace.xul
@@ -50,6 +50,7 @@
-->
+
@@ -95,6 +96,7 @@
+
diff --git a/addon/chrome/locale/en-US/overlay.dtd b/addon/chrome/locale/en-US/overlay.dtd
index 7fb8b89..57be371 100644
--- a/addon/chrome/locale/en-US/overlay.dtd
+++ b/addon/chrome/locale/en-US/overlay.dtd
@@ -18,7 +18,8 @@
-
+
+
diff --git a/addon/chrome/locale/zh-CN/overlay.dtd b/addon/chrome/locale/zh-CN/overlay.dtd
index e4f36b0..5cd1c61 100644
--- a/addon/chrome/locale/zh-CN/overlay.dtd
+++ b/addon/chrome/locale/zh-CN/overlay.dtd
@@ -19,6 +19,7 @@
+
diff --git a/package.json b/package.json
index d30d8a4..2eecdc0 100644
--- a/package.json
+++ b/package.json
@@ -28,6 +28,7 @@
"dependencies": {
"@syncfusion/ej2-base": "^20.1.50",
"@syncfusion/ej2-navigations": "^20.1.51",
+ "asciidoctor": "^2.2.6",
"compressing": "^1.5.1",
"esbuild": "^0.14.34",
"replace-in-file": "^6.3.2",
diff --git a/src/events.ts b/src/events.ts
index 8b4ab19..327f569 100644
--- a/src/events.ts
+++ b/src/events.ts
@@ -1798,6 +1798,26 @@ class AddonEvents extends AddonBase {
"Better Notes",
"Converted MarkDown is updated to the clipboard. You can paste them in the note."
);
+ } else if (message.type == "convertAsciiDoc") {
+ /*
+ message.content = {}
+ */
+ const source = Zotero.Utilities.Internal.getClipboard("text/unicode");
+ if (!source) {
+ this._Addon.views.showProgressWindow(
+ "Better Notes",
+ "No AsciiDoc found."
+ );
+ return;
+ }
+ const html = this._Addon.parse.parseAsciiDocToHTML(source);
+ console.log(source, html);
+ new CopyHelper().addText(html, "text/html").copy();
+
+ this._Addon.views.showProgressWindow(
+ "Better Notes",
+ "Converted AsciiDoc is updated to the clipboard. You can paste them in the note."
+ );
} else {
Zotero.debug(`Knowledge4Zotero: message not handled.`);
}
diff --git a/src/parse.ts b/src/parse.ts
index a253494..3cce403 100644
--- a/src/parse.ts
+++ b/src/parse.ts
@@ -1,6 +1,7 @@
import { AddonBase } from "./base";
import { HTML2Markdown, Markdown2HTML } from "./convertMD";
const TreeModel = require("./treemodel");
+const asciidoctor = require("asciidoctor")();
class AddonParse extends AddonBase {
public parseNoteTree(note: ZoteroItem): TreeModel.Node