Source: librext-site/src/builders/site-stylesheets.js

import { join } from 'path'
import { cpSync, copyFileSync } from 'fs';
import ejs from 'ejs';
import { fileHandler } from 'librext-core'

import { templatesDir, srcDir, projectRootDir } from '../site-builder-util.js'

/**
 * Builds stylesheets for LibRext site
 * @param {*} uiSpec 
 * @param {*} outputDir 
 * @param {*} config 
 * @returns true if everything suceeded, false if not
 */
const buildHtmlStylesheets = (uiSpec, outputDir, config) => {
    const buildSuccess = false
    // const fPath = `${templatesDir}/site-typography.ejs`
    // const template = fileHandler.readTemplateFile(fPath);

    // const fontKeySet = new Set(Object.values(config.fonts))
    // const fontKeyList = Array.from(fontKeySet)

    // // console.log('[LibRext CSS - Build HTML Typography] uiSpec', uiSpec);

    // const dataRoles = []
    // for (const dataRole in uiSpec.docRoles) {
    //     const docrole = uiSpec.docRoles[dataRole]
    //     const docRoleData = uiSpec.libRextData.docRoles[dataRole]
    //     dataRoles.push({
    //         name: dataRole,
    //         htmlTags: docRoleData.html.split(','),
    //         htmlClass: docRoleData.class,
    //         typescale: docRoleData.typescale,
    //         weight: docrole.weight,
    //         styles: JSON.stringify(docRoleData.styles),
    //         spec: 'The quick brown fox jumps over the lazy dog.',
    //     })
    // }

    // const templatePayload = {
    //     fonts: fontKeyList,
    //     roles: dataRoles,
    // };
    // const filledTemplate = ejs.render(template, templatePayload);

    // const outfilePath = `${outputDir}/typography.html`;
    // fileHandler.writeFile(outfilePath, filledTemplate);





    // Copy CSS from /src to the output
    const sourceFile = `${srcDir}/site-style.css`
    const targetDir = join(outputDir, 'css')
    const targetFile = `${targetDir}/site-style.css`

    console.log('[LibRext CSS - Site Stylesheets] sourceFile', sourceFile)
    console.log('[LibRext CSS - Site Stylesheets] targetDir', targetDir)
    console.log('[LibRext CSS - Site Stylesheets] targetFile', targetFile)

    try {
        // cpSync(sourceFile, targetDir, { recursive: true })
        copyFileSync(sourceFile, targetFile)
    } catch (err) {
        console.error('[LibRext CSS - Site Stylesheets] Stylesheet copying failed!')
        console.error(err)
        return false;
    }

    return buildSuccess
}

export default buildHtmlStylesheets