From 0afaaf2348d80b4522bd9097b26f957428fb6ded Mon Sep 17 00:00:00 2001 From: codecalm Date: Sat, 1 Feb 2025 22:50:26 +0100 Subject: [PATCH] Add banner generation to CSS files and update package metadata --- core/build/add-banner.mjs | 46 ++++++++++++++++++++++++++++++++++++++ core/package.json | 3 ++- shared/banner/index.mjs | 10 ++++----- shared/banner/package.json | 1 + 4 files changed, 54 insertions(+), 6 deletions(-) create mode 100644 core/build/add-banner.mjs diff --git a/core/build/add-banner.mjs b/core/build/add-banner.mjs new file mode 100644 index 000000000..15536878d --- /dev/null +++ b/core/build/add-banner.mjs @@ -0,0 +1,46 @@ +#!/usr/bin/env node + +'use strict' + +import { readFileSync, writeFileSync } from 'node:fs'; +import { join, dirname, basename } from 'node:path'; +import { fileURLToPath } from 'node:url' +import { sync } from 'glob'; +import banner from '@repo/banner'; + +const __dirname = dirname(fileURLToPath(import.meta.url)) + +const styles = sync(join(__dirname, '..', 'dist', 'css', '*.css')) + +const plugins = { + 'tabler-flags': 'Flags', + 'tabler-flags.rtl': 'Flags RTL', + 'tabler-marketing': 'Marketing', + 'tabler-marketing.rtl': 'Marketing RTL', + 'tabler-payments': 'Payments', + 'tabler-payments.rtl': 'Payments RTL', + 'tabler-socials': 'Socials', + 'tabler-socials.rtl': 'Socials RTL', + 'tabler-vendors': 'Vendors', + 'tabler-vendors.rtl': 'Vendors RTL', +} + +styles.forEach((file, i) => { + const content = readFileSync(file, 'utf8') + const filename = basename(file) + const pluginKey = Object.keys(plugins).find(plugin => filename.includes(plugin)) + const plugin = plugins[pluginKey] + const regex = /^(@charset ['"][a-zA-Z0-9-]+['"];?)\n?/i + + let newContent = '' + + if (content.match(regex)) { + newContent = content.replace(regex, (m, m1) => { + return `${m1}\n${banner(plugin)}\n` + }) + } else { + newContent = `${banner(plugin)}\n${content}` + } + + writeFileSync(file, newContent, 'utf8') +}) \ No newline at end of file diff --git a/core/package.json b/core/package.json index d44d98d87..82af6b59c 100644 --- a/core/package.json +++ b/core/package.json @@ -7,8 +7,9 @@ "dev": "pnpm run watch", "build": "pnpm run clean && pnpm run css && pnpm run js && pnpm run copy", "clean": "rm -rf dist/* demo", - "css": "pnpm run css-compile && pnpm run css-prefix && pnpm run css-rtl && pnpm run css-minify", + "css": "pnpm run css-compile && pnpm run css-prefix && pnpm run css-rtl && pnpm run css-minify && pnpm run css-banner", "css-compile": "sass scss/:dist/css/ --no-source-map --load-path=node_modules", + "css-banner": "node build/add-banner.mjs", "css-prefix": "postcss --config build/postcss.config.mjs --replace 'dist/css/*.css' '!dist/css/*.rtl*.css' '!dist/css/*.min.css'", "css-rtl": "cross-env NODE_ENV=RTL postcss --config build/postcss.config.mjs --dir 'dist/css' --ext '.rtl.css' 'dist/css/*.css' '!dist/css/*.min.css' '!dist/css/*.rtl.css'", "css-minify": "pnpm run css-minify-main && pnpm run css-minify-rtl", diff --git a/shared/banner/index.mjs b/shared/banner/index.mjs index bf590a7bc..a0f489086 100644 --- a/shared/banner/index.mjs +++ b/shared/banner/index.mjs @@ -11,11 +11,11 @@ const year = new Date().getFullYear() function getBanner(pluginFilename) { return `/*! - * Tabler${pluginFilename ? ` ${pluginFilename}` : ''} v${pkg.version} (${pkg.homepage}) - * Copyright 2018-${year} The Tabler Authors - * Copyright 2018-${year} codecalm.net Paweł Kuna - * Licensed under MIT (https://github.com/tabler/tabler/blob/master/LICENSE) - */` + * Tabler${pluginFilename ? ` ${pluginFilename}` : ''} v${pkg.version} (${pkg.homepage}) + * Copyright 2018-${year} The Tabler Authors + * Copyright 2018-${year} codecalm.net Paweł Kuna + * Licensed under MIT (https://github.com/tabler/tabler/blob/master/LICENSE) + */` } export default getBanner \ No newline at end of file diff --git a/shared/banner/package.json b/shared/banner/package.json index 75889a8e1..32b8f5d04 100644 --- a/shared/banner/package.json +++ b/shared/banner/package.json @@ -1,6 +1,7 @@ { "name": "@repo/banner", "version": "1.0.0", + "homepage": "https://tabler.io", "exports": { ".": { "default": "./index.mjs"