@@ -27,7 +27,9 @@ import slugify from 'slugify';
2727 * `/elements/pf-jazz-hands/pf-jazz-hands.js`
2828 */
2929export function demosPlugin ( options ?: PfeConfig ) : Plugin {
30- const config = { ...getPfeConfig ( ) , ...options } ;
30+ const fileOptions = getPfeConfig ( options ?. rootDir ) ;
31+ const config = { ...fileOptions , ...options } ;
32+ const subpath = config . site . componentSubpath ?? 'components' ;
3133 const { rootDir, demoURLPrefix, sourceControlURLPrefix } = config ;
3234 return {
3335 name : 'demos-plugin' ,
@@ -37,7 +39,7 @@ export function demosPlugin(options?: PfeConfig): Plugin {
3739
3840 for ( const moduleDoc of customElementsManifest . modules ) {
3941 const primaryElementName = moduleDoc . path . split ( sep ) . find ( x => x !== 'elements' ) ?? '' ;
40- let demoPath = join ( rootDir , primaryElementName , 'demo' ) ;
42+ let demoPath = join ( rootDir , 'elements' , primaryElementName , 'demo' ) ;
4143
4244 if ( ! existsSync ( demoPath ) ) {
4345 demoPath = join ( 'elements' , primaryElementName , 'demo' ) ;
@@ -52,19 +54,19 @@ export function demosPlugin(options?: PfeConfig): Plugin {
5254 const { tagName } = decl ;
5355 for ( const demo of allDemos ) {
5456 const demoName = demo . replace ( / \. h t m l $ / , '' ) ;
55- const slug = slugify ( alias ) . toLowerCase ( ) ;
57+ const slug = slugify ( alias , { strict : true , lower : true } ) ;
5658 const href = new URL ( `elements/${ primaryElementName } /demo/${ demo } /` , sourceControlURLPrefix || '/' ) . href . replace ( / \/ $ / , '' ) ;
5759 if ( demoName === tagName && demoName === primaryElementName ) {
5860 // case: elements/pf-jazz-hands/demo/pf-jazz-hands.html
59- const { href : url } = new URL ( `/components /${ slug } /demo/` , demoURLPrefix || '/' ) ;
61+ const { href : url } = new URL ( `/${ subpath } /${ slug } /demo/` , demoURLPrefix || '/' ) ;
6062 decl . demos . push ( { url, source : { href } } ) ;
6163 } else if ( allTagNames . includes ( demoName ) && demoName === tagName ) {
6264 // case: elements/pf-jazz-hands/demo/pf-jazz-shimmy.html
63- const { href : url } = new URL ( `/components /${ slug } /demo/${ demoName } /` , demoURLPrefix || '/' ) ;
65+ const { href : url } = new URL ( `/${ subpath } /${ slug } /demo/${ demoName } /` , demoURLPrefix || '/' ) ;
6466 decl . demos . push ( { url, source : { href } } ) ;
6567 } else if ( tagName === primaryElementName && ! allTagNames . includes ( demoName ) ) {
6668 // case: elements/pf-jazz-hands/demo/ack.html
67- const { href : url } = new URL ( `/components /${ slug } /demo/${ demoName } /` , demoURLPrefix || '/' ) ;
69+ const { href : url } = new URL ( `/${ subpath } /${ slug } /demo/${ demoName } /` , demoURLPrefix || '/' ) ;
6870 decl . demos . push ( { url, source : { href } } ) ;
6971 }
7072 }
0 commit comments