4chan-x/tools/style.js
2016-04-16 07:18:06 -07:00

44 lines
1.3 KiB
JavaScript

var fs = require('fs');
var read = filename => fs.readFileSync(filename, 'utf8').replace(/\r\n/g, '\n');
var readBase64 = filename => fs.readFileSync(filename).toString('base64');
module.exports = () => (
// Font Awesome CSS attribution and license
read('node_modules/font-awesome/css/font-awesome.css').match(/\/\*\![^]*?\*\//)[0] + '\n' +
// Font Awesome web font
`@font-face {
font-family: FontAwesome;
src: url('data:application/font-woff;base64,${readBase64('node_modules/font-awesome/fonts/fontawesome-webfont.woff')}') format('woff');
font-weight: 400;
font-style: normal;
}
` +
// fa-[icon name] classes
read('node_modules/font-awesome/css/font-awesome.css').match(/\.fa-glass:[^]*/)[0].replace(/([,{;])\s+/g, '$1').replace(/,/g, ', ') +
[
'font-awesome',
'style',
'yotsuba', 'yotsuba-b', 'futaba', 'burichan', 'tomorrow', 'photon'
].map(
name => read(`src/css/${name}.css`)
).join('') +
'/* Link Title Favicons */\n' +
fs.readdirSync('src/css/linkIcons').map(file =>
`.linkify.${file.split('.')[0]} {
background: transparent url('data:image/png;base64,${readBase64(`src/css/linkIcons/${file}`)}') center left no-repeat!important;
padding-left: 18px;
}
`
).join('') +
// XXX Moved to end of stylesheet to avoid breaking whole stylesheet in Maxthon.
read('src/css/supports.css')
);