@@ -7,19 +7,19 @@ const {render} = require('posthtml-render');
77 * Set filled slots
88 *
99 * @param {Object } currentNode PostHTML tree
10- * @param {Object } slots
10+ * @param {Object } filledSlots
1111 * @param {Object } options Plugin options
1212 * @return {void }
1313 */
14- function setFilledSlots ( currentNode , slots , { slot } ) {
15- match . call ( currentNode , { tag : slot } , fillNode => {
14+ function setFilledSlots ( currentNode , filledSlots , { fill } ) {
15+ match . call ( currentNode , { tag : fill } , fillNode => {
1616 if ( ! fillNode . attrs ) {
1717 fillNode . attrs = { } ;
1818 }
1919
2020 const name = fillNode . tag . split ( ':' ) [ 1 ] ;
2121
22- /** @var {Object} locals */
22+ /** @var {Object} locals - NOT YET TESTED */
2323 const locals = Object . fromEntries ( Object . entries ( fillNode . attrs ) . filter ( ( [ attributeName ] ) => ! [ name , 'type' ] . includes ( attributeName ) ) ) ;
2424
2525 if ( locals ) {
@@ -30,7 +30,7 @@ function setFilledSlots(currentNode, slots, {slot}) {
3030 } ) ;
3131 }
3232
33- slots [ name ] = {
33+ filledSlots [ name ] = {
3434 filled : true ,
3535 rendered : false ,
3636 tag : fillNode . tag ,
@@ -45,68 +45,68 @@ function setFilledSlots(currentNode, slots, {slot}) {
4545}
4646
4747/**
48- * Process <slot > tag
48+ * Process <fill > tag
4949 *
5050 * @param {Object } tree PostHTML tree
51- * @param {Object } content Content pushed by stack name
51+ * @param {Object } filledSlots Filled slots content
5252 * @param {Object } options Plugin options
5353 * @return {void }
5454 */
55- function processSlotContent ( tree , content , { slot } ) {
56- match . call ( tree , { tag : slot } , slotNode => {
57- const name = slotNode . tag . split ( ':' ) [ 1 ] ;
55+ function processFillContent ( tree , filledSlots , { fill } ) {
56+ match . call ( tree , { tag : fill } , fillNode => {
57+ const name = fillNode . tag . split ( ':' ) [ 1 ] ;
5858
59- if ( ! content [ name ] ) {
60- content [ name ] = { } ;
59+ if ( ! filledSlots [ name ] ) {
60+ filledSlots [ name ] = { } ;
6161 }
6262
63- content [ name ] . tag = slotNode . tag ;
64- content [ name ] . attrs = slotNode . attrs ;
65- content [ name ] . content = slotNode . content ;
66- content [ name ] . source = render ( slotNode . content ) ;
67- content [ name ] . rendered = false ;
63+ filledSlots [ name ] . tag = fillNode . tag ;
64+ filledSlots [ name ] . attrs = fillNode . attrs ;
65+ filledSlots [ name ] . content = fillNode . content ;
66+ filledSlots [ name ] . source = render ( fillNode . content ) ;
67+ filledSlots [ name ] . rendered = false ;
6868
69- slotNode . tag = false ;
70- slotNode . content = null ;
69+ fillNode . tag = false ;
70+ fillNode . content = null ;
7171
72- return slotNode ;
72+ return fillNode ;
7373 } ) ;
7474}
7575
7676/**
77- * Process <fill > tag
77+ * Process <slot > tag
7878 *
7979 * @param {Object } tree PostHTML tree
80- * @param {Object } content Content pushed by stack name
80+ * @param {Object } filledSlots Filled slots content
8181 * @param {Object } options Plugin options
8282 * @return {void }
8383 */
84- function processFillContent ( tree , content , { fill } ) {
85- match . call ( tree , { tag : fill } , fillNode => {
86- const name = fillNode . tag . split ( ':' ) [ 1 ] ;
84+ function processSlotContent ( tree , filledSlots , { slot } ) {
85+ match . call ( tree , { tag : slot } , slotNode => {
86+ const name = slotNode . tag . split ( ':' ) [ 1 ] ;
8787
88- fillNode . tag = false ;
88+ slotNode . tag = false ;
8989
90- if ( content [ name ] ?. rendered ) {
91- fillNode . content = null ;
92- } else if ( fillNode . content && content [ name ] ?. attrs && ( typeof content [ name ] ?. attrs . append !== 'undefined' || typeof content [ name ] ?. attrs . prepend !== 'undefined' ) ) {
93- fillNode . content = typeof content [ name ] ?. attrs . append === 'undefined' ? content [ name ] ?. content . concat ( fillNode . content ) : fillNode . content . concat ( content [ name ] ?. content ) ;
90+ if ( filledSlots [ name ] ?. rendered ) {
91+ slotNode . content = null ;
92+ } else if ( slotNode . content && filledSlots [ name ] ?. attrs && ( typeof filledSlots [ name ] ?. attrs . append !== 'undefined' || typeof filledSlots [ name ] ?. attrs . prepend !== 'undefined' ) ) {
93+ slotNode . content = typeof filledSlots [ name ] ?. attrs . append === 'undefined' ? filledSlots [ name ] ?. content . concat ( slotNode . content ) : slotNode . content . concat ( filledSlots [ name ] ?. content ) ;
9494 } else {
95- fillNode . content = content [ name ] ?. content ;
95+ slotNode . content = filledSlots [ name ] ?. content ;
9696 }
9797
9898 // Set rendered to true so a slot can be output only once,
9999 // when not present "aware" attribute
100- if ( content [ name ] && ( ! content [ name ] ?. attrs || typeof content [ name ] . attrs . aware === 'undefined' ) ) {
101- content [ name ] . rendered = true ;
100+ if ( filledSlots [ name ] && ( ! filledSlots [ name ] ?. attrs || typeof filledSlots [ name ] . attrs . aware === 'undefined' ) ) {
101+ filledSlots [ name ] . rendered = true ;
102102 }
103103
104- return fillNode ;
104+ return slotNode ;
105105 } ) ;
106106}
107107
108108module . exports = {
109109 setFilledSlots,
110- processSlotContent ,
111- processFillContent
110+ processFillContent ,
111+ processSlotContent
112112} ;
0 commit comments