Start CP via grunt
This commit is contained in:
+13
-12
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
module.exports = function(grunt){
|
module.exports = function(grunt){
|
||||||
|
|
||||||
|
require('time-grunt')(grunt);
|
||||||
|
|
||||||
// Configurable paths
|
// Configurable paths
|
||||||
var config = {
|
var config = {
|
||||||
tmp: '.tmp',
|
tmp: '.tmp',
|
||||||
@@ -68,32 +70,30 @@ module.exports = function(grunt){
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
shell: {
|
||||||
|
runCouchPotato: {
|
||||||
|
command: 'python CouchPotato.py'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
// COOL TASKS ==============================================================
|
// COOL TASKS ==============================================================
|
||||||
watch: {
|
watch: {
|
||||||
scss: {
|
scss: {
|
||||||
files: ['<%= config.base %>/**/*.{scss,sass}'],
|
files: ['<%= config.base %>/**/*.{scss,sass}'],
|
||||||
tasks: ['sass:server', 'autoprefixer', 'cssmin'],
|
tasks: ['sass:server', 'autoprefixer', 'cssmin']
|
||||||
options: {
|
|
||||||
'livereload': true
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
js: {
|
js: {
|
||||||
files: [
|
files: [
|
||||||
'<%= config.base %>/**/*.js'
|
'<%= config.base %>/**/*.js'
|
||||||
],
|
],
|
||||||
tasks: ['jshint'],
|
tasks: ['jshint']
|
||||||
options: {
|
|
||||||
'livereload': true
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
livereload: {
|
livereload: {
|
||||||
options: {
|
options: {
|
||||||
livereload: 35729
|
livereload: 35729
|
||||||
},
|
},
|
||||||
files: [
|
files: [
|
||||||
'<%= config.base %>/{,*/}*.html',
|
'<%= config.css_dest %>'
|
||||||
'<%= config.tmp %>/styles/{,*/}*.css',
|
|
||||||
'<%= config.base %>/images/{,*/}*'
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -102,7 +102,7 @@ module.exports = function(grunt){
|
|||||||
options: {
|
options: {
|
||||||
logConcurrentOutput: true
|
logConcurrentOutput: true
|
||||||
},
|
},
|
||||||
tasks: ['sass:server', 'autoprefixer', 'cssmin', 'watch']
|
tasks: ['shell:runCouchPotato', 'sass:server', 'autoprefixer', 'cssmin', 'watch']
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
@@ -114,6 +114,7 @@ module.exports = function(grunt){
|
|||||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
||||||
grunt.loadNpmTasks('grunt-autoprefixer');
|
grunt.loadNpmTasks('grunt-autoprefixer');
|
||||||
grunt.loadNpmTasks('grunt-concurrent');
|
grunt.loadNpmTasks('grunt-concurrent');
|
||||||
|
grunt.loadNpmTasks('grunt-shell');
|
||||||
|
|
||||||
grunt.registerTask('default', ['concurrent']);
|
grunt.registerTask('default', ['concurrent']);
|
||||||
|
|
||||||
|
|||||||
@@ -109,7 +109,6 @@ class ClientScript(Plugin):
|
|||||||
|
|
||||||
data_combined = ''
|
data_combined = ''
|
||||||
|
|
||||||
raw = []
|
|
||||||
new_paths = []
|
new_paths = []
|
||||||
for x in paths:
|
for x in paths:
|
||||||
file_path, url_path = x
|
file_path, url_path = x
|
||||||
@@ -117,14 +116,7 @@ class ClientScript(Plugin):
|
|||||||
f = open(file_path, 'r').read()
|
f = open(file_path, 'r').read()
|
||||||
|
|
||||||
if not Env.get('dev'):
|
if not Env.get('dev'):
|
||||||
|
data = f
|
||||||
if file_type == 'script':
|
|
||||||
data = f
|
|
||||||
else:
|
|
||||||
data = self.prefix(f)
|
|
||||||
data = data.replace('../images/', '../static/images/')
|
|
||||||
data = data.replace('../fonts/', '../static/fonts/')
|
|
||||||
data = data.replace('../../static/', '../static/') # Replace inside plugins
|
|
||||||
|
|
||||||
data_combined += self.comment.get(file_type) % (ss(file_path), int(os.path.getmtime(file_path)))
|
data_combined += self.comment.get(file_type) % (ss(file_path), int(os.path.getmtime(file_path)))
|
||||||
data_combined += data + '\n\n'
|
data_combined += data + '\n\n'
|
||||||
@@ -172,29 +164,3 @@ class ClientScript(Plugin):
|
|||||||
if not self.paths[type].get(location):
|
if not self.paths[type].get(location):
|
||||||
self.paths[type][location] = []
|
self.paths[type][location] = []
|
||||||
self.paths[type][location].append((file_path, api_path))
|
self.paths[type][location].append((file_path, api_path))
|
||||||
|
|
||||||
prefix_properties = ['border-radius', 'transform', 'transition', 'box-shadow']
|
|
||||||
prefix_tags = ['ms', 'moz', 'webkit']
|
|
||||||
|
|
||||||
def prefix(self, data):
|
|
||||||
|
|
||||||
trimmed_data = re.sub('(\t|\n|\r)+', '', data)
|
|
||||||
|
|
||||||
new_data = ''
|
|
||||||
colon_split = trimmed_data.split(';')
|
|
||||||
for splt in colon_split:
|
|
||||||
curl_split = splt.strip().split('{')
|
|
||||||
for curly in curl_split:
|
|
||||||
curly = curly.strip()
|
|
||||||
for prop in self.prefix_properties:
|
|
||||||
if curly[:len(prop) + 1] == prop + ':':
|
|
||||||
for tag in self.prefix_tags:
|
|
||||||
new_data += ' -%s-%s; ' % (tag, curly)
|
|
||||||
|
|
||||||
new_data += curly + (' { ' if len(curl_split) > 1 else ' ')
|
|
||||||
|
|
||||||
new_data += '; '
|
|
||||||
|
|
||||||
new_data = new_data.replace('{ ;', '; ').replace('} ;', '} ')
|
|
||||||
|
|
||||||
return new_data
|
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
var ReloaderBase = new Class({
|
|
||||||
|
|
||||||
initialize: function(){
|
|
||||||
var self = this;
|
|
||||||
|
|
||||||
App.on('watcher.changed', self.reloadFile.bind(self));
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
reloadFile: function(data){
|
|
||||||
var self = this,
|
|
||||||
urls = data.data;
|
|
||||||
|
|
||||||
urls.each(function(url){
|
|
||||||
var without_timestamp = url.split('?')[0],
|
|
||||||
old_links = document.getElement('[data-url^=\''+without_timestamp+'\']');
|
|
||||||
|
|
||||||
old_links.set('href', old_links.get('href') + 1);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
var Reloader = new ReloaderBase();
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
|
||||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||||
<meta name="mobile-web-app-capable" content="yes">
|
<meta name="mobile-web-app-capable" content="yes">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
@@ -21,22 +21,22 @@
|
|||||||
<link rel="apple-touch-icon" href="{{ Env.get('static_path') }}images/homescreen.png" />
|
<link rel="apple-touch-icon" href="{{ Env.get('static_path') }}images/homescreen.png" />
|
||||||
|
|
||||||
{% if Env.get('dev') %}
|
{% if Env.get('dev') %}
|
||||||
<script type="text/javascript" src="{{ Env.get('static_path') }}scripts/reloader.js"></script>
|
<script src="//localhost:35729/livereload.js?snipver=1"></script>
|
||||||
{% end %}
|
{% end %}
|
||||||
|
|
||||||
<script type="text/javascript" src="https://www.youtube.com/player_api" defer="defer"></script>
|
<script type="text/javascript" src="//www.youtube.com/player_api" defer="defer"></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
window.addEvent('load', function(){
|
window.addEvent('load', function(){
|
||||||
|
|
||||||
if(window.getSize().x <= 480)
|
if(window.getSize().x <= 480)
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
window.scrollTo(0, 1);
|
window.scrollTo(0, 1);
|
||||||
window.scrollTo(0, 0);
|
window.scrollTo(0, 0);
|
||||||
}, 100);
|
}, 100);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
window.addEvent('domready', function() {
|
window.addEvent('domready', function() {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user