-
Notifications
You must be signed in to change notification settings - Fork 113
/
Copy pathfonts.js
72 lines (65 loc) · 2.16 KB
/
fonts.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// Utilities
const { updateFile } = require("@vuetify/cli-plugin-utils")
const helpers = require('./helpers')
const fonts = {
mdi: {
package: {
'@mdi/font': '^3.6.95',
},
import: '@mdi/font/css/materialdesignicons.css',
link: '<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css">',
},
md: {
package: {
'material-design-icons-iconfont': '^5.0.1',
},
import: 'material-design-icons-iconfont/dist/material-design-icons.css',
link: '<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material+Icons">',
},
fa: {
package: {
'@fortawesome/fontawesome-free': '^5.8.2',
},
import: '@fortawesome/fontawesome-free/css/all.css',
link: '<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">',
},
fa4: {
package: {
'font-awesome': '^4.7.0',
},
import: 'font-awesome/css/font-awesome.css',
link: '<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/css/font-awesome.min.css">',
},
roboto: {
package: {
'roboto-fontface': '*',
},
import: 'roboto-fontface/css/roboto/roboto-fontface.css',
link: '<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900">',
},
}
function addDependencies (api, iconFont) {
api.extendPackage({
dependencies: {
...fonts.roboto.package,
...fonts[iconFont].package,
},
})
}
function addImports (api, iconFont) {
api.injectImports(api.entryFile, `import '${fonts.roboto.import}'`)
api.injectImports(api.entryFile, `import '${fonts[iconFont].import}'`)
}
function addLinks (api, iconFont) {
updateFile(api, './public/index.html', lines => {
const lastLink = lines.reverse().findIndex(line => line.match(/^\s*<\/head>/))
lines.splice(lastLink + 1, 0, ` ${fonts.roboto.link}`)
lines.splice(lastLink + 1, 0, ` ${fonts[iconFont].link}`)
return lines.reverse()
})
}
module.exports = {
addDependencies,
addImports,
addLinks,
}