Skip to content

Commit

Permalink
Merge pull request #2142 from wallabag/v2-use-npm
Browse files Browse the repository at this point in the history
Manage assets through npm
  • Loading branch information
nicosomb committed Jun 23, 2016
2 parents 4eaaa27 + 496cfdc commit 49e2854
Show file tree
Hide file tree
Showing 135 changed files with 2,755 additions and 17,886 deletions.
4 changes: 4 additions & 0 deletions .bowerrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"directory" : "app/Resources/static/lib",
"json" : "bower.json"
}
4 changes: 4 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"extends": "airbnb",
"installedESLint": true,
}
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,11 @@ docker/data/

# To avoid crazy stuff on some PR, we must manually FORCE ADD IT on each new release
composer.lock

# assets stuff
/node_modules/
!app/Resources/static/lib
app/Resources/static/lib/*
/bin
!/src/Wallabag/CoreBundle/Resources/public
/src/Wallabag/CoreBundle/Resources/public/*
22 changes: 17 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,31 @@ cache:
directories:
- vendor
- $HOME/.composer/cache
- node_modules
- $HOME/.cache/bower
- $HOME/.npm

php:
- 5.5
- 5.6
- 7.0
- hhvm

node_js:
- "5"

env:
- DB=mysql
- DB=pgsql
- DB=sqlite
- DB=mysql ASSETS=nobuild
- DB=pgsql ASSETS=nobuild
- DB=sqlite ASSETS=nobuild

matrix:
fast_finish: true
include:
- php: 7.0
env: CS_FIXER=run VALIDATE_TRANSLATION_FILE=run DB=sqlite
env: CS_FIXER=run VALIDATE_TRANSLATION_FILE=run DB=sqlite ASSETS=nobuild
- php: 7.0
env: DB=sqlite ASSETS=build
exclude:
- php: hhvm
env: DB=pgsql # driver for PostgreSQL currently unsupported by HHVM, requires 3rd party dependency
Expand All @@ -49,11 +57,15 @@ before_script:
- composer self-update --no-progress
- if [[ "$DB" = "pgsql" ]]; then psql -c 'create database wallabag_test;' -U postgres; fi;

install:
- if [[ $ASSETS != nobuild ]]; then source ~/.nvm/nvm.sh && nvm install 5.0; fi;
- if [[ $ASSETS != nobuild ]]; then npm install -g npm@latest; fi;

before_install:
- if [[ $TRAVIS_REPO_SLUG = wallabag/wallabag ]]; then cp .composer-auth.json ~/.composer/auth.json; fi;

script:
- travis_wait composer install --no-interaction --no-progress --prefer-dist -o
- travis_wait bash install.sh
- ant prepare-$DB
- bin/phpunit -v
- if [ "$CS_FIXER" = "run" ]; then php bin/php-cs-fixer fix src/ --verbose --dry-run ; fi;
Expand Down
215 changes: 215 additions & 0 deletions Gruntfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
module.exports = function (grunt) {
require('load-grunt-tasks')(grunt);

grunt.initConfig({
appDir: 'app/Resources/static',
buildDir: 'web/bundles/wallabagcore',

postcss: {
material: {
options: {
map: {
inline: false,
},

processors: [
require('pixrem')(),
require('autoprefixer')({ browsers: 'last 2 versions' }),
require('cssnano')(),
],
},
src: '<%= buildDir %>/material.css',
dest: '<%= buildDir %>/themes/material/css/style.min.css',
},
baggy: {
options: {
map: {
inline: false,
},

processors: [
require('pixrem')(),
require('autoprefixer')({ browsers: 'last 2 versions' }),
require('cssnano')(),
],
},
src: '<%= buildDir %>/baggy.css',
dest: '<%= buildDir %>/themes/baggy/css/style.min.css',
},
},
concat: {
options: {
separator: ';',
},
jsMaterial: {
src: [
'<%= appDir %>/themes/material/js/init.js',
'<%= appDir %>/themes/_global/js/restoreScroll.js',
],
dest: '<%= buildDir %>/material.js',
},
jsBaggy: {
src: [
'<%= appDir %>/themes/baggy/js/init.js',
'<%= appDir %>/themes/_global/js/restoreScroll.js',
'<%= appDir %>/themes/baggy/js/autoClose.js',
'<%= appDir %>/themes/baggy/js/autoCompleteTags.js',
'<%= appDir %>/themes/baggy/js/closeMessage.js',
'<%= appDir %>/themes/baggy/js/popupForm.js',
// Save link is no more used for now
// '<%= appDir %>/themes/baggy/js/saveLink.js',
],
dest: '<%= buildDir %>/baggy.js',
},
cssMaterial: {
src: [
'node_modules/materialize-css/bin/materialize.css',
'<%= appDir %>/themes/material/css/*.css',
],
dest: '<%= buildDir %>/material.css',
},
cssBaggy: {
src: [
'<%= appDir %>/themes/baggy/css/*.css',
],
dest: '<%= buildDir %>/baggy.css',
},
},
browserify: {
'<%= buildDir %>/material.browser.js': ['<%= buildDir %>/material.js'],
'<%= buildDir %>/baggy.browser.js': ['<%= buildDir %>/baggy.js'],
},
uglify: {
material: {
files: {
'<%= buildDir %>/themes/material/js/material.min.js':
['<%= buildDir %>/material.browser.js'],
},
options: {
sourceMap: true,
},
},
baggy: {
files: {
'<%= buildDir %>/themes/baggy/js/baggy.min.js':
['<%= buildDir %>/baggy.browser.js'],
},
options: {
sourceMap: true,
},
},
},
copy: {
pickerjs: {
expand: true,
cwd: 'node_modules/pickadate/lib',
src: 'picker.js',
dest: '<%= buildDir %>',
},
annotator: {
expand: true,
cwd: 'node_modules/annotator/pkg',
src: 'annotator.min.js',
dest: '<%= buildDir %>/themes/_global/js/',
},
},
symlink: {
baggyfonts: {
files: [
{
expand: true,
overwrite: true,
cwd: '<%= appDir %>/lib/icomoon-bower/',
src: 'fonts',
dest: '<%= buildDir %>/themes/baggy/',
},
{
expand: true,
overwrite: true,
cwd: '<%= appDir %>/lib/bower-pt-sans/fonts',
src: '*',
dest: '<%= buildDir %>/themes/baggy/fonts/',
},
],
},
materialfonts: {
files: [
{
expand: true,
overwrite: true,
cwd: '<%= appDir %>/lib/icomoon-bower/',
src: 'fonts',
dest: '<%= buildDir %>/themes/material/',
},
{
expand: true,
overwrite: true,
cwd: 'node_modules/materialize-css/',
src: 'font',
dest: '<%= buildDir %>/themes/material',
},
{
expand: true,
overwrite: true,
cwd: '<%= appDir %>/lib/roboto-fontface/fonts/',
src: '*',
dest: '<%= buildDir %>/themes/material/fonts/roboto/',
},
{
expand: true,
overwrite: true,
cwd: '<%= appDir %>/lib/material-design-icons/iconfont/',
src: '*',
dest: '<%= buildDir %>/themes/material/fonts/',
},
],
},
pics: {
files: [
{
expand: true,
overwrite: true,
cwd: '<%= appDir %>/themes/_global/',
src: 'img',
dest: '<%= buildDir %>/themes/_global/',
},
],
},
},
clean: {
css: {
src: ['<%= buildDir %>/**/*.css'],
},
js: {
src: ['<%= buildDir %>/**/*.js', '<%= buildDir %>/**/*.map'],
},
all: {
src: ['./<%= buildDir %>'],
},
},
});

grunt.registerTask(
'fonts',
'Install fonts',
['symlink:baggyfonts', 'symlink:materialfonts']
);

grunt.registerTask(
'js',
'Build and install js files',
['clean:js', 'copy:pickerjs', 'concat:jsMaterial', 'concat:jsBaggy', 'browserify', 'uglify']
);

grunt.registerTask(
'default',
'Build and install everything',
['clean', 'copy:pickerjs', 'concat', 'browserify', 'uglify', 'postcss', 'symlink']
);

grunt.registerTask(
'css',
'Compiles the stylesheets.',
['clean:css', 'concat:cssMaterial', 'concat:cssBaggy', 'postcss']
);
};
1 change: 0 additions & 1 deletion app/AppKernel.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ public function registerBundles()
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new FOS\RestBundle\FOSRestBundle(),
Expand Down
25 changes: 25 additions & 0 deletions app/Resources/static/themes/_global/js/restoreScroll.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
function supportsLocalStorage() {
try {
return 'localStorage' in window && window.localStorage !== null;
} catch (e) {
return false;
}
}

function savePercent(id, percent) {
if (!supportsLocalStorage()) { return false; }
localStorage['wallabag.article.' + id + '.percent'] = percent;
return true;
}

function retrievePercent(id) {
if (!supportsLocalStorage()) { return false; }

var bheight = $(document).height();
var percent = localStorage['wallabag.article.' + id + '.percent'];
var scroll = bheight * percent;

$('html,body').animate({ scrollTop: scroll }, 'fast');

return true;
}
6 changes: 6 additions & 0 deletions app/Resources/static/themes/baggy/css/font.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
@font-face {
font-family: "PT Sans";
font-style: normal;
font-weight: 700;
src: local("PT Sans Bold"), local("PTSans-Bold"), url("../fonts/pt_sans/regular/PTS55F.woff") format("woff");
}

0 comments on commit 49e2854

Please sign in to comment.