Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ node_modules
# PostCSS
.postcssrc.yml

# Core-Styles
dist

# Fractality
demo
## Files used directly by demo but not clients, yet provided via dist
Expand Down
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,12 @@ npm run build:css
npm run build:css -- --build-id="..."
```

##### Build Individual Stylesheets

```bash
npm run build:each -- src/lib/_imports/components/align.postcss src/lib/_imports/components/admonition.postcss ...
```


## Testing

Expand Down
12 changes: 12 additions & 0 deletions bin/build-each.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/usr/bin/env node

/** Build one stylesheet via the Core-Styles API */

const { buildStylesheets } = require('../src/main');

const inputs = process.argv.slice( 2 );

/* Theme: (default) */
inputs.forEach( input => {
buildStylesheets( input, undefined, './dist');
});
2 changes: 1 addition & 1 deletion bin/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const ARGS = mininmist( process.argv.slice( 2 ) );
const BUILD_ID = ARGS['build-id'] || '';

/* Theme: (default) */
buildStylesheets('src/lib/_imports/**/*!(fractality.server.refresh).css', './dist', {
buildStylesheets('src/lib/_imports/**/*!(fractality.server.refresh).postcss', './dist', {
baseMirrorDir: 'src/lib/_imports',
buildId: BUILD_ID
});
73 changes: 73 additions & 0 deletions bin/only-commit-source.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
#!/usr/bin/env node

const fs = require('fs');
const path = require('path');

function findBuiltFiles( dir ) {
let builtFiles = [];
const files = fs.readdirSync( dir );

for ( const file of files ) {
const filePath = path.join( dir, file );
const relativePath = path.relative( path.join( __dirname, '../'), filePath );
const isDirectory = fs.statSync( filePath ).isDirectory();

if ( isDirectory ) {
builtFiles.push(...findBuiltFiles( filePath ));
continue;
}

const isProbablyBuilt = filePath.endsWith('.css');
const basename = path.basename( filePath, '.css' );

// `.css` files exactly 2 directories below `_imports/` are source files
// in the reorganized third-party library structure (e.g. Bootstrap 4/5).
// They use `.css` extension by convention and are not build artifacts.
const isLibrarySource = /_imports\/[^/]+\/[^/]+\/[^/]+\.css$/.test( relativePath );

// `core-styles.*.css` files are consumer-facing entry points in `_imports/`;
// they aggregate @imports for a client library and must be published.
const isEntryPoint = /_imports\/core-styles\.[^/]+\.css$/.test( relativePath );

// Files whose name starts with `demo` / `example`, or contains `.demo`,
// are Fractal-only demo helpers and are never compiled into the package.
const isDemoOrExample = /(?:^demo(?:[.-]|$)|\.demo(?:[.-]|$)|^example(?:[.-]|$))/.test( basename );

// `_imports/vendors/` exists on epic/v3 but is removed on epic/v3--reorg;
// this rule becomes a no-op once the reorg merges in.
const isVendored = relativePath.includes( '_imports/vendors' );

const shouldIgnore = (
isLibrarySource ||
filePath.endsWith('fractality.server.refresh.css') ||
isVendored ||
filePath.endsWith('README.css') ||
isEntryPoint ||
isDemoOrExample
);

if ( isProbablyBuilt && ! shouldIgnore ) {
builtFiles.push( relativePath );
}
}

return builtFiles;
}

const sourceDir = path.join( __dirname, '../', 'src');
const sourceFiles = findBuiltFiles( sourceDir );

if ( sourceFiles.length > 0 ) {
console.error(
`Found ${sourceFiles.length} dist files in source. Remove to permit publish:`
);
sourceFiles.forEach( file =>
console.error(`- ${file}`)
);

process.exit(1);
} else {
console.log(
'No dist files found in source. Ready to publish.'
);
}
1 change: 0 additions & 1 deletion dist/bootstrap4/components/btn.css

This file was deleted.

1 change: 0 additions & 1 deletion dist/bootstrap4/components/btn/demo.css

This file was deleted.

1 change: 0 additions & 1 deletion dist/bootstrap4/components/card.css

This file was deleted.

1 change: 0 additions & 1 deletion dist/bootstrap4/components/card/demo.css

This file was deleted.

1 change: 0 additions & 1 deletion dist/bootstrap4/utilities/color-text.css

This file was deleted.

1 change: 0 additions & 1 deletion dist/bootstrap4/utilities/color-text/demo.css

This file was deleted.

1 change: 0 additions & 1 deletion dist/bootstrap5/utilities/link.css

This file was deleted.

1 change: 0 additions & 1 deletion dist/bootstrap5/utilities/link.selectors.css

This file was deleted.

1 change: 0 additions & 1 deletion dist/branding_logos.css

This file was deleted.

1 change: 0 additions & 1 deletion dist/components/README.css

This file was deleted.

Loading