chore(export/share): export full share script & styles

This commit is contained in:
Elian Doran
2025-10-26 11:02:19 +02:00
parent 1182592fc5
commit 212956201a
2 changed files with 22 additions and 3 deletions

View File

@@ -3,10 +3,13 @@ import NoteMeta, { NoteMetaFile } from "../../meta/note_meta";
import { ExportFormat, ZipExportProvider } from "./abstract_provider.js";
import { RESOURCE_DIR } from "../../resource_dir";
import { getResourceDir, isDev } from "../../utils";
import fs from "fs";
import fs, { readdirSync } from "fs";
import { renderNoteForExport } from "../../../share/content_renderer";
import type BNote from "../../../becca/entities/bnote.js";
import type BBranch from "../../../becca/entities/bbranch.js";
import { getShareThemeAssetDir } from "../../../routes/assets";
const shareThemeAssetDir = getShareThemeAssetDir();
export default class ShareThemeExportProvider extends ZipExportProvider {
@@ -14,6 +17,7 @@ export default class ShareThemeExportProvider extends ZipExportProvider {
private indexMeta: NoteMeta | null = null;
prepareMeta(metaFile: NoteMetaFile): void {
const assets = [
"style.css",
"script.js",
@@ -26,6 +30,10 @@ export default class ShareThemeExportProvider extends ZipExportProvider {
"icon-color.svg"
];
for (const file of readdirSync(shareThemeAssetDir)) {
assets.push(`assets/${file}`);
}
for (const asset of assets) {
const assetMeta = {
noImport: true,
@@ -107,6 +115,8 @@ function getShareThemeAssets(nameWithExtension: string) {
let path: string | undefined;
if (nameWithExtension === "icon-color.svg") {
path = join(RESOURCE_DIR, "images", nameWithExtension);
} else if (nameWithExtension.startsWith("assets")) {
path = join(shareThemeAssetDir, nameWithExtension.replace(/^assets\//, ""));
} else if (isDev) {
path = join(getResourceDir(), "..", "..", "client", "dist", "src", nameWithExtension);
} else {