diff --git a/demos/add_exporter/__init__.py b/demos/add_exporter/__init__.py new file mode 100644 index 0000000..e0c0bd2 --- /dev/null +++ b/demos/add_exporter/__init__.py @@ -0,0 +1,15 @@ +""" +An example of adding an exporter to export page. +""" + +from pathlib import Path + +from aqt import gui_hooks +from aqt.webview import AnkiWebView + + +def setup(webview: AnkiWebView) -> None: + webview.eval(Path(__file__).with_name("init.js").read_text(encoding="utf8")) + + +gui_hooks.webview_did_inject_style_into_page.append(setup) diff --git a/demos/add_exporter/init.js b/demos/add_exporter/init.js new file mode 100644 index 0000000..ccc21ab --- /dev/null +++ b/demos/add_exporter/init.js @@ -0,0 +1,27 @@ +function updateExporters(exporters) { + for (const exporter of exporters) { + exporter.isDefault = false; + } + exporters.push({ + extension: "csv", + label: "My fancy CSV", + showDeckList: true, + showIncludeScheduling: false, + showIncludeDeckConfigs: false, + showIncludeMedia: false, + showIncludeTags: false, + showIncludeHtml: false, + showLegacySupport: false, + showIncludeDeck: false, + showIncludeNotetype: false, + showIncludeGuid: false, + isDefault: true, + doExport: (outPath, limit, options) => { + alert("Not implemented!"); + return Promise.resolve(); + } + }); + return exporters; +} + +requireAsync("anki/ExportPage").then(mod => mod.exporters.update(updateExporters));