1
Fork 0

Switch to Gulp

This commit is contained in:
Bauke 2018-06-20 12:11:19 +02:00
parent 2c7c1278fa
commit 9a9fdf26c3
Signed by: Bauke
GPG Key ID: C1C0F29952BCF558
16 changed files with 859 additions and 585 deletions

View File

@ -1,33 +1 @@
@-moz-document domain('notabug.io') { .thing .title { color: #8be9fd; } @-moz-document domain('notabug.io'){.thing .title{color:#8be9fd}.thing .title:hover,.thing .title:active,.thing .title:focus{color:#ff79c6}.thing .title:visited{color:#ff79c6}#header{border-bottom:2px solid #44475a;background-color:#282a36}.tabmenu li a{color:#f8f8f2;background-color:#44475a;padding:5px 10px 0px 10px}.tabmenu li.selected a{color:#f8f8f2;border:none;background-color:#6272a4}#header-bottom-right{color:#f8f8f2;border-radius:0;background-color:#44475a;padding:6px 10px}body{color:#f8f8f2;background-color:#44475a}a{color:#8be9fd}a:hover,a:active,a:focus{color:#ff79c6}blockquote,.md blockquote{color:#f8f8f2;background-color:#282a36;border-left-color:#f8f8f2}hr,.md hr{background-color:#6272a4}pre,.md pre{color:#f8f8f2;background-color:#44475a;border-radius:0;border:none}.side{background-color:#282a36;margin:0}.side .login-form-side{margin:0 10px;border:none}.side .login-form-side .status{margin:7px 0px 0px 0px;border:none;padding:10px;font-weight:bold}.side .login-form-side input[type='password'],.side .login-form-side input[type='text']{width:100%;margin:7px 0px 0px 0px;border:1px solid #6272a4;color:#f8f8f2;background-color:#44475a;font-family:sans-serif;font-weight:bold}.side .login-form-side input[type='password']::placeholder,.side .login-form-side input[type='text']::placeholder{color:#f8f8f2;font-family:sans-serif;font-weight:bold}.side .login-form-side .submit{margin:7px 0px 0px 0px}.side .login-form-side .submit button{padding:4px 48px;border-radius:0;border:1px solid #6272a4;color:#f8f8f2;background-color:#44475a}.side .login-form-side .submit button:hover,.side .login-form-side .submit button:active,.side .login-form-side .submit button:focus{background-color:#6272a4}.side .reddit-infobar{color:#282a36;background-color:#f1fa8c;border:none;margin:0px 10px}.side .morelink{margin:0px 10px;border:1px solid #6272a4;background:none;background-color:#44475a}.side .morelink .nub{background:none}.side .morelink a{color:#8be9fd}.side .morelink a:hover,.side .morelink a:active,.side .morelink a:focus{color:#ff79c6}.side .titlebox{margin:0px 10px}.side .md{color:#f8f8f2}.side pre,.side .md pre{overflow:hidden}.side .bottom{color:#f8f8f2;border:none;padding-top:4px}.side .spacer{margin:7px 0px}.side hr{display:none}.error,.red{color:#282a36;background-color:#f55}}
.thing .title:hover, .thing .title:active, .thing .title:focus { color: #ff79c6; }
.thing .title:visited { color: #ff79c6; }
#header { border-bottom: 2px solid #44475a; background-color: #282a36; }
.tabmenu li a { color: #f8f8f2; background-color: #44475a; padding: 5px 10px 0px 10px; }
.tabmenu li.selected a { color: #f8f8f2; border: none; background-color: #6272a4; }
#header-bottom-right { color: #f8f8f2; border-radius: 0; background-color: #44475a; padding: 6px 10px; }
body { color: #f8f8f2; background-color: #44475a; }
a { color: #8be9fd; }
a:hover, a:active, a:focus { color: #ff79c6; }
blockquote, .md blockquote { color: #f8f8f2; background-color: #282a36; border-left-color: #f8f8f2; }
hr, .md hr { background-color: #6272a4; }
pre, .md pre { color: #f8f8f2; background-color: #44475a; border-radius: 0; border: none; }
.side { background-color: #282a36; margin: 0; }
.side .login-form-side { margin: 0 10px; border: none; }
.side .login-form-side .status { margin: 7px 0px 0px 0px; border: none; padding: 10px; font-weight: bold; }
.side .login-form-side input[type='password'], .side .login-form-side input[type='text'] { width: 100%; margin: 7px 0px 0px 0px; border: 1px solid #6272a4; color: #f8f8f2; background-color: #44475a; font-family: sans-serif; font-weight: bold; }
.side .login-form-side input[type='password']::placeholder, .side .login-form-side input[type='text']::placeholder { color: #f8f8f2; font-family: sans-serif; font-weight: bold; }
.side .login-form-side .submit { margin: 7px 0px 0px 0px; }
.side .login-form-side .submit button { padding: 4px 48px; border-radius: 0; border: 1px solid #6272a4; color: #f8f8f2; background-color: #44475a; }
.side .login-form-side .submit button:hover, .side .login-form-side .submit button:active, .side .login-form-side .submit button:focus { background-color: #6272a4; }
.side .reddit-infobar { color: #282a36; background-color: #f1fa8c; border: none; margin: 0px 10px; }
.side .morelink { margin: 0px 10px; border: 1px solid #6272a4; background: none; background-color: #44475a; }
.side .morelink .nub { background: none; }
.side .morelink a { color: #8be9fd; }
.side .morelink a:hover, .side .morelink a:active, .side .morelink a:focus { color: #ff79c6; }
.side .titlebox { margin: 0px 10px; }
.side .md { color: #f8f8f2; }
.side pre, .side .md pre { overflow: hidden; }
.side .bottom { color: #f8f8f2; border: none; padding-top: 4px; }
.side .spacer { margin: 7px 0px; }
.side hr { display: none; }
.error, .red { color: #282a36; background-color: #ff5555; } }

View File

@ -1,43 +1,11 @@
/* ==UserStyle== /* ==UserStyle==
@name Notabug Dracula @name Notabug Dracula
@namespace notabug.io @namespace notabug.io
@version 1.0.0 @version 1.0.1
@author Bauke @author Bauke
@description Dracula theme for notabug.io @description Dracula theme for notabug.io
@homepageURL https://gitlab.com/Bauke/styles @homepageURL https://gitlab.com/Bauke/styles
@supportURL https://gitlab.com/Bauke/styles/issues @supportURL https://gitlab.com/Bauke/styles/issues
@license MIT @license MIT
==/UserStyle== */ ==/UserStyle== */
@-moz-document domain('notabug.io') { .thing .title { color: #8be9fd; } @-moz-document domain('notabug.io'){.thing .title{color:#8be9fd}.thing .title:hover,.thing .title:active,.thing .title:focus{color:#ff79c6}.thing .title:visited{color:#ff79c6}#header{border-bottom:2px solid #44475a;background-color:#282a36}.tabmenu li a{color:#f8f8f2;background-color:#44475a;padding:5px 10px 0px 10px}.tabmenu li.selected a{color:#f8f8f2;border:none;background-color:#6272a4}#header-bottom-right{color:#f8f8f2;border-radius:0;background-color:#44475a;padding:6px 10px}body{color:#f8f8f2;background-color:#44475a}a{color:#8be9fd}a:hover,a:active,a:focus{color:#ff79c6}blockquote,.md blockquote{color:#f8f8f2;background-color:#282a36;border-left-color:#f8f8f2}hr,.md hr{background-color:#6272a4}pre,.md pre{color:#f8f8f2;background-color:#44475a;border-radius:0;border:none}.side{background-color:#282a36;margin:0}.side .login-form-side{margin:0 10px;border:none}.side .login-form-side .status{margin:7px 0px 0px 0px;border:none;padding:10px;font-weight:bold}.side .login-form-side input[type='password'],.side .login-form-side input[type='text']{width:100%;margin:7px 0px 0px 0px;border:1px solid #6272a4;color:#f8f8f2;background-color:#44475a;font-family:sans-serif;font-weight:bold}.side .login-form-side input[type='password']::placeholder,.side .login-form-side input[type='text']::placeholder{color:#f8f8f2;font-family:sans-serif;font-weight:bold}.side .login-form-side .submit{margin:7px 0px 0px 0px}.side .login-form-side .submit button{padding:4px 48px;border-radius:0;border:1px solid #6272a4;color:#f8f8f2;background-color:#44475a}.side .login-form-side .submit button:hover,.side .login-form-side .submit button:active,.side .login-form-side .submit button:focus{background-color:#6272a4}.side .reddit-infobar{color:#282a36;background-color:#f1fa8c;border:none;margin:0px 10px}.side .morelink{margin:0px 10px;border:1px solid #6272a4;background:none;background-color:#44475a}.side .morelink .nub{background:none}.side .morelink a{color:#8be9fd}.side .morelink a:hover,.side .morelink a:active,.side .morelink a:focus{color:#ff79c6}.side .titlebox{margin:0px 10px}.side .md{color:#f8f8f2}.side pre,.side .md pre{overflow:hidden}.side .bottom{color:#f8f8f2;border:none;padding-top:4px}.side .spacer{margin:7px 0px}.side hr{display:none}.error,.red{color:#282a36;background-color:#f55}}
.thing .title:hover, .thing .title:active, .thing .title:focus { color: #ff79c6; }
.thing .title:visited { color: #ff79c6; }
#header { border-bottom: 2px solid #44475a; background-color: #282a36; }
.tabmenu li a { color: #f8f8f2; background-color: #44475a; padding: 5px 10px 0px 10px; }
.tabmenu li.selected a { color: #f8f8f2; border: none; background-color: #6272a4; }
#header-bottom-right { color: #f8f8f2; border-radius: 0; background-color: #44475a; padding: 6px 10px; }
body { color: #f8f8f2; background-color: #44475a; }
a { color: #8be9fd; }
a:hover, a:active, a:focus { color: #ff79c6; }
blockquote, .md blockquote { color: #f8f8f2; background-color: #282a36; border-left-color: #f8f8f2; }
hr, .md hr { background-color: #6272a4; }
pre, .md pre { color: #f8f8f2; background-color: #44475a; border-radius: 0; border: none; }
.side { background-color: #282a36; margin: 0; }
.side .login-form-side { margin: 0 10px; border: none; }
.side .login-form-side .status { margin: 7px 0px 0px 0px; border: none; padding: 10px; font-weight: bold; }
.side .login-form-side input[type='password'], .side .login-form-side input[type='text'] { width: 100%; margin: 7px 0px 0px 0px; border: 1px solid #6272a4; color: #f8f8f2; background-color: #44475a; font-family: sans-serif; font-weight: bold; }
.side .login-form-side input[type='password']::placeholder, .side .login-form-side input[type='text']::placeholder { color: #f8f8f2; font-family: sans-serif; font-weight: bold; }
.side .login-form-side .submit { margin: 7px 0px 0px 0px; }
.side .login-form-side .submit button { padding: 4px 48px; border-radius: 0; border: 1px solid #6272a4; color: #f8f8f2; background-color: #44475a; }
.side .login-form-side .submit button:hover, .side .login-form-side .submit button:active, .side .login-form-side .submit button:focus { background-color: #6272a4; }
.side .reddit-infobar { color: #282a36; background-color: #f1fa8c; border: none; margin: 0px 10px; }
.side .morelink { margin: 0px 10px; border: 1px solid #6272a4; background: none; background-color: #44475a; }
.side .morelink .nub { background: none; }
.side .morelink a { color: #8be9fd; }
.side .morelink a:hover, .side .morelink a:active, .side .morelink a:focus { color: #ff79c6; }
.side .titlebox { margin: 0px 10px; }
.side .md { color: #f8f8f2; }
.side pre, .side .md pre { overflow: hidden; }
.side .bottom { color: #f8f8f2; border: none; padding-top: 4px; }
.side .spacer { margin: 7px 0px; }
.side hr { display: none; }
.error, .red { color: #282a36; background-color: #ff5555; } }

8
css/tildes-compact/tildes-compact.css Executable file → Normal file
View File

@ -1,7 +1 @@
@-moz-document domain('tildes.net') { .topic-listing .topic-text-excerpt, .post-listing .topic-text-excerpt { display: none !important; } @-moz-document domain('tildes.net'){.topic-listing .topic-text-excerpt,.post-listing .topic-text-excerpt{display:none !important}.topic-listing .topic-metadata,.post-listing .topic-metadata{display:inline-flex !important;height:1.3em !important;max-width:200px !important;overflow:hidden !important;white-space:nowrap !important}.topic-listing .topic-metadata .topic-tags li,.post-listing .topic-metadata .topic-tags li{display:none !important}.topic-listing .topic-metadata .topic-tags li:nth-child(-n+3),.post-listing .topic-metadata .topic-tags li:nth-child(-n+3){display:inherit !important}.topic-listing .topic-info,.post-listing .topic-info{width:500px !important}.topic-listing .topic-info .user-label,.post-listing .topic-info .user-label{display:none !important}.post-listing .post-buttons,.post-listing .comment-votes{display:none !important}}
.topic-listing .topic-metadata, .post-listing .topic-metadata { display: inline-flex !important; height: 1.3em !important; max-width: 200px !important; overflow: hidden !important; white-space: nowrap !important; }
.topic-listing .topic-metadata .topic-tags li, .post-listing .topic-metadata .topic-tags li { display: none !important; }
.topic-listing .topic-metadata .topic-tags li:nth-child(-n+3), .post-listing .topic-metadata .topic-tags li:nth-child(-n+3) { display: inherit !important; }
.topic-listing .topic-info, .post-listing .topic-info { width: 500px !important; }
.topic-listing .topic-info .user-label, .post-listing .topic-info .user-label { display: none !important; }
.post-listing .post-buttons, .post-listing .comment-votes { display: none !important; } }

View File

@ -1,17 +1,11 @@
/* ==UserStyle== /* ==UserStyle==
@name Tildes Compact @name Tildes Compact
@namespace tildes.net @namespace tildes.net
@version 1.0.0 @version 1.0.1
@author Bauke @author Bauke
@description Removes some elements and changes some sizes to make the Tildes.net layout a little more compact. @description Removes some elements and changes some sizes to make the Tildes.net layout a little more compact.
@homepageURL https://gitlab.com/Bauke/styles @homepageURL https://gitlab.com/Bauke/styles
@supportURL https://gitlab.com/Bauke/styles/issues @supportURL https://gitlab.com/Bauke/styles/issues
@license MIT @license MIT
==/UserStyle== */ ==/UserStyle== */
@-moz-document domain('tildes.net') { .topic-listing .topic-text-excerpt, .post-listing .topic-text-excerpt { display: none !important; } @-moz-document domain('tildes.net'){.topic-listing .topic-text-excerpt,.post-listing .topic-text-excerpt{display:none !important}.topic-listing .topic-metadata,.post-listing .topic-metadata{display:inline-flex !important;height:1.3em !important;max-width:200px !important;overflow:hidden !important;white-space:nowrap !important}.topic-listing .topic-metadata .topic-tags li,.post-listing .topic-metadata .topic-tags li{display:none !important}.topic-listing .topic-metadata .topic-tags li:nth-child(-n+3),.post-listing .topic-metadata .topic-tags li:nth-child(-n+3){display:inherit !important}.topic-listing .topic-info,.post-listing .topic-info{width:500px !important}.topic-listing .topic-info .user-label,.post-listing .topic-info .user-label{display:none !important}.post-listing .post-buttons,.post-listing .comment-votes{display:none !important}}
.topic-listing .topic-metadata, .post-listing .topic-metadata { display: inline-flex !important; height: 1.3em !important; max-width: 200px !important; overflow: hidden !important; white-space: nowrap !important; }
.topic-listing .topic-metadata .topic-tags li, .post-listing .topic-metadata .topic-tags li { display: none !important; }
.topic-listing .topic-metadata .topic-tags li:nth-child(-n+3), .post-listing .topic-metadata .topic-tags li:nth-child(-n+3) { display: inherit !important; }
.topic-listing .topic-info, .post-listing .topic-info { width: 500px !important; }
.topic-listing .topic-info .user-label, .post-listing .topic-info .user-label { display: none !important; }
.post-listing .post-buttons, .post-listing .comment-votes { display: none !important; } }

83
css/tildes-dracula/tildes-dracula.css Executable file → Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,52 +0,0 @@
// Generates all *.user.css styles.
// Require dependencies
// const fs = require('fs')
const { bump } = require('./bump.js')
const klawSync = require('klaw-sync')
const path = require('path')
const userCss = require('usercss-creator')
// Define constants
const stylesDirectory = path.join(__dirname, 'sass')
const cssDirectory = path.join(__dirname, 'css')
// Walk recursively through styles directory
let files = klawSync(stylesDirectory, {nodir: true})
// Filter out any files that aren't .json files
files = files.filter(file => path.extname(file.path) === '.json')
let style
let incrementType
for (const arg of process.argv) {
if (arg.includes('--bump')) {
style = arg.substring('--bump='.length, arg.length)
}
switch (arg) {
case 'major':
incrementType = 'major'
break
case 'minor':
incrementType = 'minor'
break
case 'patch':
incrementType = 'patch'
break
}
}
// Iterate through all .json files
for (const file of files) {
// Requiring the .json file as the descriptor of the style
const descriptor = require(file.path)
// Test if the style we want to bump is the one currently generating
if (style === descriptor.folder) {
// Bump the style's .json with the increment type
bump(file.path, incrementType)
}
// Creating the css path and generating the .user.css file with the options
const cssPath = path.join(cssDirectory, descriptor.folder, descriptor.entry)
userCss.create(cssPath, descriptor.options)
}

92
gulpfile.js Normal file
View File

@ -0,0 +1,92 @@
const gulp = require('gulp')
const eslint = require('gulp-eslint')
const stylelint = require('gulp-stylelint')
const sass = require('gulp-sass')
gulp.task('lint:js', () => {
return gulp.src(['**/*.js','!node_modules/**'])
.pipe(eslint())
.pipe(eslint.format())
})
gulp.task('lint:sass', () => {
const options = {
reporters: [{formatter: 'string', console: true}]
}
return gulp.src('sass/**/*.sass')
.pipe(stylelint(options))
})
gulp.task('build:dev', () => {
const options = {
outputStyle: 'compressed'
}
return gulp.src('sass/**/*.sass')
.pipe(sass(options).on('error', sass.logError))
.pipe(gulp.dest('temp'))
})
gulp.task('build:prod', () => {
const options = {
outputStyle: 'compressed'
}
return gulp.src('sass/**/*.sass')
.pipe(sass(options).on('error', sass.logError))
.pipe(gulp.dest('css'))
})
gulp.task('generate', ['lint:js', 'lint:sass', 'build:prod'], () => {
// Generates all *.user.css styles.
const { bump } = require('./bump.js')
const klawSync = require('klaw-sync')
const path = require('path')
const userCss = require('usercss-creator')
// Define constants
const stylesDirectory = path.join(__dirname, 'sass')
const cssDirectory = path.join(__dirname, 'css')
// Walk recursively through styles directory
let files = klawSync(stylesDirectory, {nodir: true})
// Filter out any files that aren't .json files
files = files.filter(file => path.extname(file.path) === '.json')
let style
let incrementType
for (const arg of process.argv) {
if (arg.includes('--bump')) {
style = arg.substring('--bump='.length, arg.length)
}
switch (arg) {
case '--major':
incrementType = 'major'
break
case '--minor':
incrementType = 'minor'
break
case '--patch':
incrementType = 'patch'
break
}
}
// Iterate through all .json files
for (const file of files) {
// Requiring the .json file as the descriptor of the style
const descriptor = require(file.path)
// Test if the style we want to bump is the one currently generating
if (style === descriptor.folder) {
// Bump the style's .json with the increment type
bump(file.path, incrementType)
}
// Create the css path and generate the .user.css file with the options
const cssPath = path.join(cssDirectory, descriptor.folder, descriptor.entry)
userCss.create(cssPath, descriptor.options)
}
})
gulp.task('watch', () => {
gulp.watch('sass/**/*.sass', ['lint:js', 'lint:sass', 'build:dev'])
})

View File

@ -8,15 +8,13 @@
}, },
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
"release signature example: yarn release --bump=tildes-monokai minor": "echo \"no.\"", "watch": "gulp watch",
"release": "yarn lint && yarn build:prod && yarn generate", "generate": "gulp generate",
"watch": "node-sass -w sass -o temp", "build:dev": "gulp build:dev",
"generate": "node generate.js", "build:prod": "gulp build:prod",
"build:dev": "node-sass sass -o temp --output-style compact", "lint": "yarn lint:js && yarn lint:sass",
"build:prod": "node-sass sass -o css -q --output-style compact", "lint:js": "gulp lint:js",
"lint": "yarn lint:js && yarn lint:css", "lint:css": "gulp lint:sass"
"lint:js": "eslint . --color",
"lint:css": "stylelint \"sass/**/*.sass\" --color"
}, },
"dependencies": { "dependencies": {
"klaw-sync": "^4.0.0", "klaw-sync": "^4.0.0",
@ -25,6 +23,10 @@
}, },
"devDependencies": { "devDependencies": {
"eslint": "^4.19.1", "eslint": "^4.19.1",
"gulp": "^3.9.1",
"gulp-eslint": "^4.0.2",
"gulp-sass": "^4.0.1",
"gulp-stylelint": "^7.0.0",
"stylelint": "^9.2.1", "stylelint": "^9.2.1",
"stylelint-config-recommended": "^2.1.0" "stylelint-config-recommended": "^2.1.0"
} }

View File

@ -4,11 +4,11 @@
"options": { "options": {
"name": "Notabug Dracula", "name": "Notabug Dracula",
"namespace": "notabug.io", "namespace": "notabug.io",
"version": "1.0.0", "version": "1.0.1",
"author": "Bauke", "author": "Bauke",
"description": "Dracula theme for notabug.io", "description": "Dracula theme for notabug.io",
"homepageURL": "https://gitlab.com/Bauke/styles", "homepageURL": "https://gitlab.com/Bauke/styles",
"supportURL": "https://gitlab.com/Bauke/styles/issues", "supportURL": "https://gitlab.com/Bauke/styles/issues",
"license": "MIT" "license": "MIT"
} }
} }

View File

@ -4,7 +4,7 @@
"options": { "options": {
"name": "Tildes Compact", "name": "Tildes Compact",
"namespace": "tildes.net", "namespace": "tildes.net",
"version": "1.0.0", "version": "1.0.1",
"author": "Bauke", "author": "Bauke",
"description": "Removes some elements and changes some sizes to make the Tildes.net layout a little more compact.", "description": "Removes some elements and changes some sizes to make the Tildes.net layout a little more compact.",
"homepageURL": "https://gitlab.com/Bauke/styles", "homepageURL": "https://gitlab.com/Bauke/styles",

View File

@ -4,7 +4,7 @@
"options": { "options": {
"name": "Tildes Dracula", "name": "Tildes Dracula",
"namespace": "tildes.net", "namespace": "tildes.net",
"version": "1.0.0", "version": "1.0.1",
"author": "Bauke", "author": "Bauke",
"description": "Dracula theme for Tildes.net", "description": "Dracula theme for Tildes.net",
"homepageURL": "https://gitlab.com/Bauke/styles", "homepageURL": "https://gitlab.com/Bauke/styles",

View File

@ -4,7 +4,7 @@
"options": { "options": {
"name": "Tildes Monokai", "name": "Tildes Monokai",
"namespace": "tildes.net", "namespace": "tildes.net",
"version": "1.0.0", "version": "1.0.1",
"author": "Bauke", "author": "Bauke",
"description": "Monokai theme for Tildes.net", "description": "Monokai theme for Tildes.net",
"homepageURL": "https://gitlab.com/Bauke/styles", "homepageURL": "https://gitlab.com/Bauke/styles",

756
yarn.lock

File diff suppressed because it is too large Load Diff