Added template system to Attract extension.

This commit is contained in:
2016-09-06 18:46:28 +02:00
parent a89e98c556
commit 168e59805e
6 changed files with 116 additions and 4 deletions

2
.gitignore vendored
View File

@@ -8,3 +8,5 @@ __pycache__
/.cache
/*.egg-info/
/.eggs/
/node_modules/
/attract_server/templates/

View File

@@ -57,6 +57,11 @@ class AttractExtension(PillarExtension):
"""
return [blueprint]
@property
def template_path(self):
import os.path
return os.path.join(os.path.dirname(__file__), 'templates')
def setup_app(self, app):
"""Connects Blinker signals."""

View File

@@ -1,15 +1,15 @@
import logging
from flask import Blueprint
from flask import Blueprint, render_template
from pillar.api.utils import jsonify
blueprint = Blueprint('attract', __name__)
log = logging.getLogger(__name__)
@blueprint.route('/jemoeder')
def jemoeder():
return jsonify({'je': 'moeder'})
@blueprint.route('/')
def index():
return render_template('attract/index.html')
@blueprint.route('/subversion/kick')

75
gulpfile.js Normal file
View 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
View 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"
}
}

View 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 %}