diff --git a/presentazione/.bowerrc b/presentazione/.bowerrc new file mode 100644 index 0000000..df4bcee --- /dev/null +++ b/presentazione/.bowerrc @@ -0,0 +1,3 @@ +{ + "directory": "bower_components" +} \ No newline at end of file diff --git a/presentazione/.editorconfig b/presentazione/.editorconfig new file mode 100644 index 0000000..0fab135 --- /dev/null +++ b/presentazione/.editorconfig @@ -0,0 +1,24 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + + +[*] + +# Change these settings to your own preference +indent_style = space +indent_size = 2 + +# It's recommended to keep these unchanged +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.jade] +trim_trailing_whitespace = false + +[*.md] +trim_trailing_whitespace = false \ No newline at end of file diff --git a/presentazione/.gitignore b/presentazione/.gitignore new file mode 100644 index 0000000..a4de5ec --- /dev/null +++ b/presentazione/.gitignore @@ -0,0 +1,4 @@ +node_modules +bower_components +dist +bespoke-theme-* \ No newline at end of file diff --git a/presentazione/README.md b/presentazione/README.md new file mode 100644 index 0000000..97c455a --- /dev/null +++ b/presentazione/README.md @@ -0,0 +1,17 @@ +# Anonimato nella rete Internet +> A [Bespoke.js](http://markdalgleish.com/projects/bespoke.js) presentation, built with [generator-bespoke](https://github.com/markdalgleish/generator-bespoke) + +## View slides locally + +First, ensure you have the following installed: + +1. [Node.js](http://nodejs.org) +2. [Bower](http://bower.io): `$ npm install -g bower` +3. [Gulp](http://gulpjs.com): `$ npm install -g gulp` + +Then, install dependencies and run the preview server: + +```bash +$ npm install && bower install +$ gulp serve +``` diff --git a/presentazione/bower.json b/presentazione/bower.json new file mode 100644 index 0000000..8abbf76 --- /dev/null +++ b/presentazione/bower.json @@ -0,0 +1,7 @@ +{ + "name": "presentation-anonimato-nella-rete-internet", + "version": "0.0.0", + "dependencies": { + "prism": "gh-pages" + } +} \ No newline at end of file diff --git a/presentazione/gulpfile.js b/presentazione/gulpfile.js new file mode 100644 index 0000000..a899bc4 --- /dev/null +++ b/presentazione/gulpfile.js @@ -0,0 +1,111 @@ +'use strict'; + +var pkg = require('./package.json'), + gulp = require('gulp'), + gutil = require('gulp-util'), + plumber = require('gulp-plumber'), + rename = require('gulp-rename'), + connect = require('gulp-connect'), + browserify = require('gulp-browserify'), + uglify = require('gulp-uglify'), + jade = require('gulp-jade'), + stylus = require('gulp-stylus'), + autoprefixer = require('gulp-autoprefixer'), + csso = require('gulp-csso'), + del = require('del'), + through = require('through'), + opn = require('opn'), + ghpages = require('gh-pages'), + path = require('path'), + isDist = process.argv.indexOf('serve') === -1; + +gulp.task('js', ['clean:js'], function() { + return gulp.src('src/scripts/main.js') + .pipe(isDist ? through() : plumber()) + .pipe(browserify({ transform: ['debowerify'], debug: !isDist })) + .pipe(isDist ? uglify() : through()) + .pipe(rename('build.js')) + .pipe(gulp.dest('dist/build')) + .pipe(connect.reload()); +}); + +gulp.task('html', ['clean:html'], function() { + return gulp.src('src/index.jade') + .pipe(isDist ? through() : plumber()) + .pipe(jade({ pretty: true })) + .pipe(rename('index.html')) + .pipe(gulp.dest('dist')) + .pipe(connect.reload()); +}); + +gulp.task('css', ['clean:css'], function() { + return gulp.src('src/styles/main.styl') + .pipe(isDist ? through() : plumber()) + .pipe(stylus({ + // Allow CSS to be imported from node_modules and bower_components + 'include css': true, + 'paths': ['./node_modules', './bower_components'] + })) + .pipe(autoprefixer('last 2 versions', { map: false })) + .pipe(isDist ? csso() : through()) + .pipe(rename('build.css')) + .pipe(gulp.dest('dist/build')) + .pipe(connect.reload()); +}); + +gulp.task('images', ['clean:images'], function() { + return gulp.src('src/images/**/*') + .pipe(gulp.dest('dist/images')) + .pipe(connect.reload()); +}); + +gulp.task('clean', function(done) { + del('dist', done); +}); + +gulp.task('clean:html', function(done) { + del('dist/index.html', done); +}); + +gulp.task('clean:js', function(done) { + del('dist/build/build.js', done); +}); + +gulp.task('clean:css', function(done) { + del('dist/build/build.css', done); +}); + +gulp.task('clean:images', function(done) { + del('dist/images', done); +}); + +gulp.task('connect', ['build'], function() { + connect.server({ + root: 'dist', + livereload: true + }); +}); + +gulp.task('open', ['connect'], function (done) { + opn('http://localhost:8080', done); +}); + +gulp.task('watch', function() { + gulp.watch('src/**/*.jade', ['html']); + gulp.watch('src/styles/**/*.styl', ['css']); + gulp.watch('src/images/**/*', ['images']); + gulp.watch([ + 'src/scripts/**/*.js', + 'bespoke-theme-*/dist/*.js' // Allow themes to be developed in parallel + ], ['js']); +}); + +gulp.task('deploy', ['build'], function(done) { + ghpages.publish(path.join(__dirname, 'dist'), { logger: gutil.log }, done); +}); + +gulp.task('build', ['js', 'html', 'css', 'images']); + +gulp.task('serve', ['open', 'watch']); + +gulp.task('default', ['build']); diff --git a/presentazione/package.json b/presentazione/package.json new file mode 100644 index 0000000..288688e --- /dev/null +++ b/presentazione/package.json @@ -0,0 +1,37 @@ +{ + "name": "presentation-anonimato-nella-rete-internet", + "version": "0.0.0", + "dependencies": {}, + "devDependencies": { + "bespoke": "^1.0.0", + "bespoke-backdrop": "^1.0.0", + "bespoke-bullets": "^1.0.0", + "bespoke-forms": "^1.0.0", + "bespoke-hash": "^1.0.0", + "bespoke-keys": "^1.0.0", + "bespoke-progress": "^1.0.0", + "bespoke-scale": "^1.0.0", + "bespoke-theme-cube": "^2.0.0", + "bespoke-touch": "^1.0.0", + "debowerify": "^0.7.1", + "del": "^1.1.1", + "gh-pages": "^0.2.0", + "gulp": "^3.8.1", + "gulp-autoprefixer": "0.0.7", + "gulp-browserify": "^0.5.0", + "gulp-connect": "^2.0.5", + "gulp-csso": "^0.2.9", + "gulp-jade": "^0.6.0", + "gulp-plumber": "^0.6.3", + "gulp-rename": "^1.2.0", + "gulp-stylus": "^1.0.2", + "gulp-uglify": "^0.3.1", + "gulp-util": "^2.2.17", + "insert-css": "^0.2.0", + "opn": "^0.1.2", + "through": "^2.3.4" + }, + "engines": { + "node": ">=0.10.0" + } +} \ No newline at end of file diff --git a/presentazione/src/index.jade b/presentazione/src/index.jade new file mode 100644 index 0000000..9bb63f8 --- /dev/null +++ b/presentazione/src/index.jade @@ -0,0 +1,71 @@ +doctype html +html + head + meta(charset='utf-8') + meta(name='viewport', content='width=device-width, initial-scale=1, maximum-scale=1') + title Anonimato nella rete Internet + + link(rel='stylesheet', type='text/css', href='build/build.css') + + body + + article + + section + h1 Anonimato nella rete Internet + + section + h2 Keyboard Interaction + h3 Powered by bespoke-keys + + section + h2 Touch Interaction + h3 Powered by bespoke-touch + + section + h2 Responsive Slides + h3 Powered by bespoke-scale + + section + h2 Bullet List + h3.bullet Powered by bespoke-bullets + ul + li Bullet 1 + li Bullet 2 + li Bullet 3 + + section + h2 Syntax Highlighting + h3 Powered by Lea Verou's Prism + pre + code.language-javascript. + bespoke.from('article', [ + classes(), + keys(), + touch(), + bullets('li, .bullet') + ]); + + section(data-bespoke-hash='named-route') + h2 Named Route + h3 Powered by bespoke-hash + p Look up! This route has been named with a 'data-bespoke-hash' attribute. + + section.emphatic-text(data-bespoke-backdrop='emphatic') + h2 Emphatic Slide! + h3 Powered by bespoke-backdrop + + section + h2.bullet Just the beginning... + br + ul + li Edit Jade markup in 'src/index.jade' + li Edit Stylus styles in 'src/styles/main.styl' + li Edit JavaScript in 'src/scripts/main.js' + br + ul + li + strong Enjoy! :) + a(href='http://twitter.com/markdalgleish') -@markdalgleish + + script(src='build/build.js') \ No newline at end of file diff --git a/presentazione/src/scripts/main.js b/presentazione/src/scripts/main.js new file mode 100644 index 0000000..3675737 --- /dev/null +++ b/presentazione/src/scripts/main.js @@ -0,0 +1,30 @@ +// Require Node modules in the browser thanks to Browserify: http://browserify.org +var bespoke = require('bespoke'), + cube = require('bespoke-theme-cube'), + keys = require('bespoke-keys'), + touch = require('bespoke-touch'), + bullets = require('bespoke-bullets'), + backdrop = require('bespoke-backdrop'), + scale = require('bespoke-scale'), + hash = require('bespoke-hash'), + progress = require('bespoke-progress'), + forms = require('bespoke-forms'); + +// Bespoke.js +bespoke.from('article', [ + cube(), + keys(), + touch(), + bullets('li, .bullet'), + backdrop(), + scale(), + hash(), + progress(), + forms() +]); + +// Prism syntax highlighting +// This is actually loaded from "bower_components" thanks to +// debowerify: https://github.com/eugeneware/debowerify +require('prism'); + diff --git a/presentazione/src/styles/main.styl b/presentazione/src/styles/main.styl new file mode 100644 index 0000000..561c31a --- /dev/null +++ b/presentazione/src/styles/main.styl @@ -0,0 +1,8 @@ +// New to Stylus? Check out http://learnboost.github.io/stylus +// Use modern CSS thanks to Autoprefixer: https://github.com/ai/autoprefixer + +// Import CSS from "node_modules" and "bower_components" +// thanks to Stylus' "import css" and "paths" options + +@import 'prism/themes/prism-okaidia.css' +// Check out "bower_components/prism/themes/" for available themes