Added template system to Attract extension.
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -8,3 +8,5 @@ __pycache__
|
|||||||
/.cache
|
/.cache
|
||||||
/*.egg-info/
|
/*.egg-info/
|
||||||
/.eggs/
|
/.eggs/
|
||||||
|
/node_modules/
|
||||||
|
/attract_server/templates/
|
||||||
|
@@ -57,6 +57,11 @@ class AttractExtension(PillarExtension):
|
|||||||
"""
|
"""
|
||||||
return [blueprint]
|
return [blueprint]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def template_path(self):
|
||||||
|
import os.path
|
||||||
|
return os.path.join(os.path.dirname(__file__), 'templates')
|
||||||
|
|
||||||
def setup_app(self, app):
|
def setup_app(self, app):
|
||||||
"""Connects Blinker signals."""
|
"""Connects Blinker signals."""
|
||||||
|
|
||||||
|
@@ -1,15 +1,15 @@
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
from flask import Blueprint
|
from flask import Blueprint, render_template
|
||||||
from pillar.api.utils import jsonify
|
from pillar.api.utils import jsonify
|
||||||
|
|
||||||
blueprint = Blueprint('attract', __name__)
|
blueprint = Blueprint('attract', __name__)
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
@blueprint.route('/jemoeder')
|
@blueprint.route('/')
|
||||||
def jemoeder():
|
def index():
|
||||||
return jsonify({'je': 'moeder'})
|
return render_template('attract/index.html')
|
||||||
|
|
||||||
|
|
||||||
@blueprint.route('/subversion/kick')
|
@blueprint.route('/subversion/kick')
|
||||||
|
75
gulpfile.js
Normal file
75
gulpfile.js
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
var argv = require('minimist')(process.argv.slice(2));
|
||||||
|
var autoprefixer = require('gulp-autoprefixer');
|
||||||
|
var chmod = require('gulp-chmod');
|
||||||
|
var concat = require('gulp-concat');
|
||||||
|
var gulp = require('gulp');
|
||||||
|
var gulpif = require('gulp-if');
|
||||||
|
var jade = require('gulp-jade');
|
||||||
|
var livereload = require('gulp-livereload');
|
||||||
|
var plumber = require('gulp-plumber');
|
||||||
|
var rename = require('gulp-rename');
|
||||||
|
var sass = require('gulp-sass');
|
||||||
|
var sourcemaps = require('gulp-sourcemaps');
|
||||||
|
var uglify = require('gulp-uglify');
|
||||||
|
|
||||||
|
var enabled = {
|
||||||
|
uglify: argv.production,
|
||||||
|
maps: argv.production,
|
||||||
|
failCheck: argv.production,
|
||||||
|
prettyPug: !argv.production,
|
||||||
|
liveReload: !argv.production
|
||||||
|
};
|
||||||
|
|
||||||
|
/* CSS */
|
||||||
|
gulp.task('styles', function() {
|
||||||
|
gulp.src('src/styles/**/*.sass')
|
||||||
|
.pipe(gulpif(enabled.failCheck, plumber()))
|
||||||
|
.pipe(gulpif(enabled.maps, sourcemaps.init()))
|
||||||
|
.pipe(sass({
|
||||||
|
outputStyle: 'compressed'}
|
||||||
|
))
|
||||||
|
.pipe(autoprefixer("last 3 versions"))
|
||||||
|
.pipe(gulpif(enabled.maps, sourcemaps.write(".")))
|
||||||
|
.pipe(gulp.dest('attract_server/static/assets/css'))
|
||||||
|
.pipe(gulpif(enabled.liveReload, livereload()));
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/* Templates - Jade */
|
||||||
|
gulp.task('templates', function() {
|
||||||
|
gulp.src('src/templates/**/*.jade')
|
||||||
|
.pipe(gulpif(enabled.failCheck, plumber()))
|
||||||
|
.pipe(jade({
|
||||||
|
pretty: enabled.prettyPug
|
||||||
|
}))
|
||||||
|
.pipe(gulp.dest('attract_server/templates/'))
|
||||||
|
.pipe(gulpif(enabled.liveReload, livereload()));
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/* Individual Uglified Scripts */
|
||||||
|
gulp.task('scripts', function() {
|
||||||
|
gulp.src('src/scripts/*.js')
|
||||||
|
.pipe(gulpif(enabled.failCheck, plumber()))
|
||||||
|
.pipe(gulpif(enabled.maps, sourcemaps.init()))
|
||||||
|
.pipe(gulpif(enabled.uglify, uglify()))
|
||||||
|
.pipe(rename({suffix: '.min'}))
|
||||||
|
.pipe(gulpif(enabled.maps, sourcemaps.write(".")))
|
||||||
|
.pipe(chmod(644))
|
||||||
|
.pipe(gulp.dest('attract_server/static/assets/js/'))
|
||||||
|
.pipe(gulpif(enabled.liveReload, livereload()));
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// While developing, run 'gulp watch'
|
||||||
|
gulp.task('watch',function() {
|
||||||
|
livereload.listen();
|
||||||
|
|
||||||
|
gulp.watch('src/styles/**/*.sass',['styles']);
|
||||||
|
gulp.watch('src/templates/**/*.jade',['templates']);
|
||||||
|
gulp.watch('src/scripts/*.js',['scripts']);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// Run 'gulp' to build everything at once
|
||||||
|
gulp.task('default', ['styles', 'templates', 'scripts']);
|
24
package.json
Normal file
24
package.json
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"name": "attract",
|
||||||
|
"license": "GPL",
|
||||||
|
"author": "Blender Institute",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git://git.blender.org/attract-server.git"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"gulp": "~3.9.1",
|
||||||
|
"gulp-sass": "~2.3.1",
|
||||||
|
"gulp-autoprefixer": "~2.3.1",
|
||||||
|
"gulp-if": "^2.0.1",
|
||||||
|
"gulp-jade": "~1.1.0",
|
||||||
|
"gulp-sourcemaps": "~1.6.0",
|
||||||
|
"gulp-plumber": "~1.1.0",
|
||||||
|
"gulp-livereload": "~3.8.1",
|
||||||
|
"gulp-concat": "~2.6.0",
|
||||||
|
"gulp-uglify": "~1.5.3",
|
||||||
|
"gulp-rename": "~1.2.2",
|
||||||
|
"gulp-chmod": "~1.3.0",
|
||||||
|
"minimist": "^1.2.0"
|
||||||
|
}
|
||||||
|
}
|
6
src/templates/attract/index.jade
Normal file
6
src/templates/attract/index.jade
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
| {% extends 'layout.html' %}
|
||||||
|
| {% block page_title %}Attract{% endblock %}
|
||||||
|
| {% block body %}
|
||||||
|
h1 Attract
|
||||||
|
p This is Attract. Templates are found.
|
||||||
|
| {% endblock %}
|
Reference in New Issue
Block a user