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 { @@ -424,6 +425,10 @@ class AddonParse extends AddonBase { parseHTMLToMD(str: string): string { return HTML2Markdown(str); } + + parseAsciiDocToHTML(str: string): string { + return asciidoctor.convert(str); + } } export default AddonParse;