mirror of
https://github.com/zadam/trilium.git
synced 2025-11-07 22:05:44 +01:00
chore(export/share): export full share script & styles
This commit is contained in:
@@ -32,7 +32,6 @@ async function register(app: express.Application) {
|
|||||||
req.url = `/${assetUrlFragment}` + req.url;
|
req.url = `/${assetUrlFragment}` + req.url;
|
||||||
vite.middlewares(req, res, next);
|
vite.middlewares(req, res, next);
|
||||||
});
|
});
|
||||||
app.use(`/share/assets/`, express.static(path.join(srcRoot, "../../packages/share-theme/dist")));
|
|
||||||
} else {
|
} else {
|
||||||
const publicDir = path.join(resourceDir, "public");
|
const publicDir = path.join(resourceDir, "public");
|
||||||
if (!existsSync(publicDir)) {
|
if (!existsSync(publicDir)) {
|
||||||
@@ -43,9 +42,9 @@ async function register(app: express.Application) {
|
|||||||
app.use(`/${assetUrlFragment}/stylesheets`, persistentCacheStatic(path.join(publicDir, "stylesheets")));
|
app.use(`/${assetUrlFragment}/stylesheets`, persistentCacheStatic(path.join(publicDir, "stylesheets")));
|
||||||
app.use(`/${assetUrlFragment}/fonts`, persistentCacheStatic(path.join(publicDir, "fonts")));
|
app.use(`/${assetUrlFragment}/fonts`, persistentCacheStatic(path.join(publicDir, "fonts")));
|
||||||
app.use(`/${assetUrlFragment}/translations/`, persistentCacheStatic(path.join(publicDir, "translations")));
|
app.use(`/${assetUrlFragment}/translations/`, persistentCacheStatic(path.join(publicDir, "translations")));
|
||||||
app.use(`/share/assets/`, persistentCacheStatic(path.join(resourceDir, "share-theme/assets")));
|
|
||||||
app.use(`/node_modules/`, persistentCacheStatic(path.join(publicDir, "node_modules")));
|
app.use(`/node_modules/`, persistentCacheStatic(path.join(publicDir, "node_modules")));
|
||||||
}
|
}
|
||||||
|
app.use(`/share/assets/`, express.static(getShareThemeAssetDir()));
|
||||||
app.use(`/${assetUrlFragment}/images`, persistentCacheStatic(path.join(resourceDir, "assets", "images")));
|
app.use(`/${assetUrlFragment}/images`, persistentCacheStatic(path.join(resourceDir, "assets", "images")));
|
||||||
app.use(`/${assetUrlFragment}/doc_notes`, persistentCacheStatic(path.join(resourceDir, "assets", "doc_notes")));
|
app.use(`/${assetUrlFragment}/doc_notes`, persistentCacheStatic(path.join(resourceDir, "assets", "doc_notes")));
|
||||||
app.use(`/assets/vX/fonts`, express.static(path.join(srcRoot, "public/fonts")));
|
app.use(`/assets/vX/fonts`, express.static(path.join(srcRoot, "public/fonts")));
|
||||||
@@ -53,6 +52,16 @@ async function register(app: express.Application) {
|
|||||||
app.use(`/assets/vX/stylesheets`, express.static(path.join(srcRoot, "public/stylesheets")));
|
app.use(`/assets/vX/stylesheets`, express.static(path.join(srcRoot, "public/stylesheets")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getShareThemeAssetDir() {
|
||||||
|
if (process.env.NODE_ENV === "development") {
|
||||||
|
const srcRoot = path.join(__dirname, "..", "..");
|
||||||
|
return path.join(srcRoot, "../../packages/share-theme/dist");
|
||||||
|
} else {
|
||||||
|
const resourceDir = getResourceDir();
|
||||||
|
return path.join(resourceDir, "share-theme/assets");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
register
|
register
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,10 +3,13 @@ import NoteMeta, { NoteMetaFile } from "../../meta/note_meta";
|
|||||||
import { ExportFormat, ZipExportProvider } from "./abstract_provider.js";
|
import { ExportFormat, ZipExportProvider } from "./abstract_provider.js";
|
||||||
import { RESOURCE_DIR } from "../../resource_dir";
|
import { RESOURCE_DIR } from "../../resource_dir";
|
||||||
import { getResourceDir, isDev } from "../../utils";
|
import { getResourceDir, isDev } from "../../utils";
|
||||||
import fs from "fs";
|
import fs, { readdirSync } from "fs";
|
||||||
import { renderNoteForExport } from "../../../share/content_renderer";
|
import { renderNoteForExport } from "../../../share/content_renderer";
|
||||||
import type BNote from "../../../becca/entities/bnote.js";
|
import type BNote from "../../../becca/entities/bnote.js";
|
||||||
import type BBranch from "../../../becca/entities/bbranch.js";
|
import type BBranch from "../../../becca/entities/bbranch.js";
|
||||||
|
import { getShareThemeAssetDir } from "../../../routes/assets";
|
||||||
|
|
||||||
|
const shareThemeAssetDir = getShareThemeAssetDir();
|
||||||
|
|
||||||
export default class ShareThemeExportProvider extends ZipExportProvider {
|
export default class ShareThemeExportProvider extends ZipExportProvider {
|
||||||
|
|
||||||
@@ -14,6 +17,7 @@ export default class ShareThemeExportProvider extends ZipExportProvider {
|
|||||||
private indexMeta: NoteMeta | null = null;
|
private indexMeta: NoteMeta | null = null;
|
||||||
|
|
||||||
prepareMeta(metaFile: NoteMetaFile): void {
|
prepareMeta(metaFile: NoteMetaFile): void {
|
||||||
|
|
||||||
const assets = [
|
const assets = [
|
||||||
"style.css",
|
"style.css",
|
||||||
"script.js",
|
"script.js",
|
||||||
@@ -26,6 +30,10 @@ export default class ShareThemeExportProvider extends ZipExportProvider {
|
|||||||
"icon-color.svg"
|
"icon-color.svg"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
for (const file of readdirSync(shareThemeAssetDir)) {
|
||||||
|
assets.push(`assets/${file}`);
|
||||||
|
}
|
||||||
|
|
||||||
for (const asset of assets) {
|
for (const asset of assets) {
|
||||||
const assetMeta = {
|
const assetMeta = {
|
||||||
noImport: true,
|
noImport: true,
|
||||||
@@ -107,6 +115,8 @@ function getShareThemeAssets(nameWithExtension: string) {
|
|||||||
let path: string | undefined;
|
let path: string | undefined;
|
||||||
if (nameWithExtension === "icon-color.svg") {
|
if (nameWithExtension === "icon-color.svg") {
|
||||||
path = join(RESOURCE_DIR, "images", nameWithExtension);
|
path = join(RESOURCE_DIR, "images", nameWithExtension);
|
||||||
|
} else if (nameWithExtension.startsWith("assets")) {
|
||||||
|
path = join(shareThemeAssetDir, nameWithExtension.replace(/^assets\//, ""));
|
||||||
} else if (isDev) {
|
} else if (isDev) {
|
||||||
path = join(getResourceDir(), "..", "..", "client", "dist", "src", nameWithExtension);
|
path = join(getResourceDir(), "..", "..", "client", "dist", "src", nameWithExtension);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user