Skip to content

Commit b489fbf

Browse files
authored
Added support for '%' symbol and Uno CSS (#41)
* added support for % symbol * replace * to component names * add customComponents option * bump version from 1.4.5 to 1.5.0
1 parent 23a4b12 commit b489fbf

File tree

4 files changed

+9
-1
lines changed

4 files changed

+9
-1
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@dcasia/mini-program-tailwind-webpack-plugin",
3-
"version": "1.4.5",
3+
"version": "1.5.0",
44
"description": "让你的小程序用上原汁原味的 Tailwind/Windi CSS",
55
"keywords": [
66
"mini-program",

src/interfaces.ts

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export interface Options {
77
utilitiesSettings?: {
88
spaceBetweenItems?: string[],
99
divideItems?: string[],
10+
customComponents?: string[],
1011
},
1112
}
1213

src/postcss/index.ts

+4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { FileType } from '../enum'
22
import { customReplace, handleCharacters } from '../utilities'
33
import { Options } from '../interfaces'
4+
import { intrinsicComponents } from '../utilities'
45

56
export function transformSelector(options: Options) {
67

@@ -10,6 +11,8 @@ export function transformSelector(options: Options) {
1011
const spaceBetweenItems = Array.from(new Set([ ...defaultSpaceBetweenItems, ...usersSpaceBetweenItems ]))
1112
const userDivideBetweenItems = options?.utilitiesSettings?.divideItems || []
1213
const divideItems = Array.from(new Set([ ...defaultSpaceBetweenItems, ...userDivideBetweenItems ]))
14+
const customComponents = options?.utilitiesSettings?.customComponents || []
15+
const allComponents = Array.from(new Set([ ...intrinsicComponents, ...customComponents ]))
1316
const customReplacement = new Map()
1417

1518
/**
@@ -21,6 +24,7 @@ export function transformSelector(options: Options) {
2124
customReplacement.set(/^(\.-?space-\w-reverse).*/, spaceBetweenItems.map(item => `$1>${ item }:not([hidden])`).join(', '))
2225
customReplacement.set(/^(\.-?divide-\w+)(-.+?)?\s?>.*/, divideItems.map(item => `$1$2:not($1-reverse)>${ item }:not([hidden]):not(:first-child), $1$2$1-reverse>${ item }:not([hidden]):not(:last-child)`).join(', '))
2326
customReplacement.set(/^(\.-?divide-\w-reverse).*/, divideItems.map(item => `$1>${ item }:not([hidden])`).join(', '))
27+
customReplacement.set('*', allComponents.join(', '))
2428

2529
return {
2630
postcssPlugin: 'transformSelectorName',

src/utilities.ts

+3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import { FileType } from './enum'
22

3+
export const intrinsicComponents = [ 'cover-image', 'cover-view', 'movable-area', 'movable-view', 'scroll-view', 'swiper', 'swiper-item', 'view', 'icon', 'progree', 'rich-text', 'text', 'button', 'checkbox', 'checkbox-group', 'editor', 'form', 'input', 'label', 'picker', 'picker-view', 'picker-view-column', 'radio', 'radio-group', 'slider', 'switch', 'textarea', 'navigator', 'audio', 'camera', 'image', 'live-player', 'live-pusher', 'video', 'map', 'canvas' ]
4+
35
export const regExpJS = /.+\.js$/
46

57
export const regExpVue = /.+\.vue$/
@@ -29,6 +31,7 @@ const charactersMap = {
2931
'.': '-d-',
3032
':': '-c-',
3133
',': '-2c-',
34+
'%': '-p-',
3235
}
3336

3437
const specialCharactersMap = {

0 commit comments

Comments
 (0)