@@ -4,14 +4,17 @@ process.env.NODE_ENV = "development";
44
55import cls from "@triliumnext/server/src/services/cls.js" ;
66import { dirname , join , resolve } from "path" ;
7- import fs , { copyFile } from "fs/promises" ;
8- import fsExtra , { createWriteStream , type WriteStream } from "fs-extra" ;
7+ import * as fs from "fs/promises" ;
8+ import * as fsExtra from "fs-extra" ;
99import archiver from "archiver" ;
10+ import { WriteStream } from "fs" ;
11+ import { execSync } from "child_process" ;
12+ import BuildContext from "./context.js" ;
1013
1114const DOCS_ROOT = "../../../docs" ;
1215const OUTPUT_DIR = "../../site" ;
1316
14- async function main ( ) {
17+ async function buildDocsInner ( ) {
1518 const i18n = await import ( "@triliumnext/server/src/services/i18n.js" ) ;
1619 await i18n . initializeTranslations ( ) ;
1720
@@ -30,7 +33,7 @@ async function main() {
3033 "export" ,
3134 null
3235 ) ;
33- const fileOutputStream = createWriteStream ( zipFilePath ) ;
36+ const fileOutputStream = fsExtra . createWriteStream ( zipFilePath ) ;
3437 await exportToZip ( taskContext , branch , "share" , fileOutputStream ) ;
3538 await waitForStreamToFinish ( fileOutputStream ) ;
3639 await extractZip ( zipFilePath , OUTPUT_DIR ) ;
@@ -41,7 +44,7 @@ async function main() {
4144 }
4245
4346 // Copy favicon.
44- await copyFile ( "../../apps/website/src/assets/favicon.ico" , join ( OUTPUT_DIR , "favicon.ico" ) ) ;
47+ await fs . copyFile ( "../../apps/website/src/assets/favicon.ico" , join ( OUTPUT_DIR , "favicon.ico" ) ) ;
4548
4649 console . log ( "Documentation built successfully!" ) ;
4750}
@@ -106,4 +109,19 @@ export async function extractZip(zipFilePath: string, outputPath: string, ignore
106109 } ) ;
107110}
108111
109- cls . init ( main ) ;
112+ export default async function buildDocs ( { gitRootDir } : BuildContext ) {
113+ // Build the share theme.
114+ execSync ( `pnpm run --filter share-theme build` , {
115+ stdio : "inherit" ,
116+ cwd : gitRootDir
117+ } ) ;
118+
119+ // Trigger the actual build.
120+ await new Promise ( ( res , rej ) => {
121+ cls . init ( ( ) => {
122+ buildDocsInner ( )
123+ . catch ( rej )
124+ . then ( res ) ;
125+ } ) ;
126+ } ) ;
127+ }
0 commit comments