##// END OF EJS Templates
styles: build shared styles with vulcanize instead of grunt magic
ergo -
r712:e87a13fe default
parent child Browse files
Show More
@@ -0,0 +1,5 b''
1 <dom-module id="shared-styles">
2 <template>
3 <link rel="stylesheet" href="../../../css/style-polymer.css">
4 </template>
5 </dom-module>
@@ -1,64 +1,63 b''
1 syntax: glob
1 syntax: glob
2 *.egg
2 *.egg
3 *.egg-info
3 *.egg-info
4 *.idea
4 *.idea
5 *.orig
5 *.orig
6 *.pyc
6 *.pyc
7 *.sqlite-journal
7 *.sqlite-journal
8 *.swp
8 *.swp
9 *.tox
9 *.tox
10 *.DS_Store*
10 *.DS_Store*
11 rhodecode/public/js/src/components/**/*.css
11 rhodecode/public/js/src/components/**/*.css
12
12
13 syntax: regexp
13 syntax: regexp
14
14
15 #.filename
15 #.filename
16 ^\.settings$
16 ^\.settings$
17 ^\.project$
17 ^\.project$
18 ^\.pydevproject$
18 ^\.pydevproject$
19 ^\.coverage$
19 ^\.coverage$
20 ^\.cache.*$
20 ^\.cache.*$
21 ^\.rhodecode$
21 ^\.rhodecode$
22
22
23 ^rcextensions
23 ^rcextensions
24 ^_dev
24 ^_dev
25 ^._dev
25 ^._dev
26 ^build/
26 ^build/
27 ^bower_components/
27 ^bower_components/
28 ^coverage\.xml$
28 ^coverage\.xml$
29 ^data$
29 ^data$
30 ^\.eggs/
30 ^\.eggs/
31 ^configs/data$
31 ^configs/data$
32 ^dev.ini$
32 ^dev.ini$
33 ^acceptance_tests/dev.*\.ini$
33 ^acceptance_tests/dev.*\.ini$
34 ^dist/
34 ^dist/
35 ^fabfile.py
35 ^fabfile.py
36 ^htmlcov
36 ^htmlcov
37 ^junit\.xml$
37 ^junit\.xml$
38 ^node_modules/
38 ^node_modules/
39 ^pylint.log$
39 ^pylint.log$
40 ^rcextensions/
40 ^rcextensions/
41 ^result$
41 ^result$
42 ^rhodecode/public/css/style.css$
42 ^rhodecode/public/css/style.css$
43 ^rhodecode/public/css/style-polymer.css$
43 ^rhodecode/public/css/style-polymer.css$
44 ^rhodecode/public/js/scripts.js$
44 ^rhodecode/public/js/scripts.js$
45 ^rhodecode/public/js/rhodecode-components.html$
45 ^rhodecode/public/js/rhodecode-components.html$
46 ^rhodecode/public/js/src/components/shared-styles.html$
47 ^rhodecode\.db$
46 ^rhodecode\.db$
48 ^rhodecode\.log$
47 ^rhodecode\.log$
49 ^rhodecode_dev\.log$
48 ^rhodecode_dev\.log$
50 ^test\.db$
49 ^test\.db$
51
50
52 # ac-tests
51 # ac-tests
53 ^acceptance_tests/\.cache.*$
52 ^acceptance_tests/\.cache.*$
54 ^acceptance_tests/externals
53 ^acceptance_tests/externals
55 ^acceptance_tests/ghostdriver.log$
54 ^acceptance_tests/ghostdriver.log$
56 ^acceptance_tests/local(_.+)?\.ini$
55 ^acceptance_tests/local(_.+)?\.ini$
57
56
58 # docs
57 # docs
59 ^docs/_build$
58 ^docs/_build$
60 ^docs/result$
59 ^docs/result$
61 ^docs-internal/_build$
60 ^docs-internal/_build$
62
61
63 # Cythonized things
62 # Cythonized things
64 ^rhodecode/.*\.(c|so)$
63 ^rhodecode/.*\.(c|so)$
@@ -1,189 +1,177 b''
1 module.exports = function(grunt) {
1 module.exports = function(grunt) {
2 grunt.initConfig({
2 grunt.initConfig({
3
3
4 dirs: {
4 dirs: {
5 css: "rhodecode/public/css",
5 css: "rhodecode/public/css",
6 js: {
6 js: {
7 "src": "rhodecode/public/js/src",
7 "src": "rhodecode/public/js/src",
8 "dest": "rhodecode/public/js"
8 "dest": "rhodecode/public/js"
9 }
9 }
10 },
10 },
11 copy: {
11 copy: {
12 main: {
12 main: {
13 expand: true,
13 expand: true,
14 cwd: 'bower_components',
14 cwd: 'bower_components',
15 src: 'webcomponentsjs/**',
15 src: 'webcomponentsjs/**',
16 dest: '<%= dirs.js.dest %>/vendors',
16 dest: '<%= dirs.js.dest %>/vendors',
17 },
17 },
18 },
18 },
19 concat: {
19 concat: {
20 polymercss:{
21 src: [
22 // Base libraries
23 '<%= dirs.js.src %>/components/shared-styles-prefix.html',
24 '<%= dirs.css %>/style-polymer.css',
25 '<%= dirs.js.src %>/components/shared-styles-suffix.html'
26 ],
27 dest: '<%= dirs.js.dest %>/src/components/shared-styles.html',
28 nonull: true
29 },
30 dist: {
20 dist: {
31 src: [
21 src: [
32 // Base libraries
22 // Base libraries
33 '<%= dirs.js.src %>/jquery-1.11.1.min.js',
23 '<%= dirs.js.src %>/jquery-1.11.1.min.js',
34 '<%= dirs.js.src %>/logging.js',
24 '<%= dirs.js.src %>/logging.js',
35 '<%= dirs.js.src %>/bootstrap.js',
25 '<%= dirs.js.src %>/bootstrap.js',
36 '<%= dirs.js.src %>/mousetrap.js',
26 '<%= dirs.js.src %>/mousetrap.js',
37 '<%= dirs.js.src %>/moment.js',
27 '<%= dirs.js.src %>/moment.js',
38 '<%= dirs.js.src %>/appenlight-client-0.4.1.min.js',
28 '<%= dirs.js.src %>/appenlight-client-0.4.1.min.js',
39 '<%= dirs.js.src %>/i18n_utils.js',
29 '<%= dirs.js.src %>/i18n_utils.js',
40 '<%= dirs.js.src %>/deform.js',
30 '<%= dirs.js.src %>/deform.js',
41
31
42 // Plugins
32 // Plugins
43 '<%= dirs.js.src %>/plugins/jquery.pjax.js',
33 '<%= dirs.js.src %>/plugins/jquery.pjax.js',
44 '<%= dirs.js.src %>/plugins/jquery.dataTables.js',
34 '<%= dirs.js.src %>/plugins/jquery.dataTables.js',
45 '<%= dirs.js.src %>/plugins/flavoured_checkbox.js',
35 '<%= dirs.js.src %>/plugins/flavoured_checkbox.js',
46 '<%= dirs.js.src %>/plugins/jquery.auto-grow-input.js',
36 '<%= dirs.js.src %>/plugins/jquery.auto-grow-input.js',
47 '<%= dirs.js.src %>/plugins/jquery.autocomplete.js',
37 '<%= dirs.js.src %>/plugins/jquery.autocomplete.js',
48 '<%= dirs.js.src %>/plugins/jquery.debounce.js',
38 '<%= dirs.js.src %>/plugins/jquery.debounce.js',
49 '<%= dirs.js.src %>/plugins/jquery.mark.js',
39 '<%= dirs.js.src %>/plugins/jquery.mark.js',
50 '<%= dirs.js.src %>/plugins/jquery.timeago.js',
40 '<%= dirs.js.src %>/plugins/jquery.timeago.js',
51 '<%= dirs.js.src %>/plugins/jquery.timeago-extension.js',
41 '<%= dirs.js.src %>/plugins/jquery.timeago-extension.js',
52
42
53 // Select2
43 // Select2
54 '<%= dirs.js.src %>/select2/select2.js',
44 '<%= dirs.js.src %>/select2/select2.js',
55
45
56 // Code-mirror
46 // Code-mirror
57 '<%= dirs.js.src %>/codemirror/codemirror.js',
47 '<%= dirs.js.src %>/codemirror/codemirror.js',
58 '<%= dirs.js.src %>/codemirror/codemirror_loadmode.js',
48 '<%= dirs.js.src %>/codemirror/codemirror_loadmode.js',
59 '<%= dirs.js.src %>/codemirror/codemirror_hint.js',
49 '<%= dirs.js.src %>/codemirror/codemirror_hint.js',
60 '<%= dirs.js.src %>/codemirror/codemirror_overlay.js',
50 '<%= dirs.js.src %>/codemirror/codemirror_overlay.js',
61 '<%= dirs.js.src %>/codemirror/codemirror_placeholder.js',
51 '<%= dirs.js.src %>/codemirror/codemirror_placeholder.js',
62 // TODO: mikhail: this is an exception. Since the code mirror modes
52 // TODO: mikhail: this is an exception. Since the code mirror modes
63 // are loaded "on the fly", we need to keep them in a public folder
53 // are loaded "on the fly", we need to keep them in a public folder
64 '<%= dirs.js.dest %>/mode/meta.js',
54 '<%= dirs.js.dest %>/mode/meta.js',
65 '<%= dirs.js.dest %>/mode/meta_ext.js',
55 '<%= dirs.js.dest %>/mode/meta_ext.js',
66 '<%= dirs.js.dest %>/rhodecode/i18n/select2/translations.js',
56 '<%= dirs.js.dest %>/rhodecode/i18n/select2/translations.js',
67
57
68 // Rhodecode utilities
58 // Rhodecode utilities
69 '<%= dirs.js.src %>/rhodecode/utils/array.js',
59 '<%= dirs.js.src %>/rhodecode/utils/array.js',
70 '<%= dirs.js.src %>/rhodecode/utils/string.js',
60 '<%= dirs.js.src %>/rhodecode/utils/string.js',
71 '<%= dirs.js.src %>/rhodecode/utils/pyroutes.js',
61 '<%= dirs.js.src %>/rhodecode/utils/pyroutes.js',
72 '<%= dirs.js.src %>/rhodecode/utils/ajax.js',
62 '<%= dirs.js.src %>/rhodecode/utils/ajax.js',
73 '<%= dirs.js.src %>/rhodecode/utils/autocomplete.js',
63 '<%= dirs.js.src %>/rhodecode/utils/autocomplete.js',
74 '<%= dirs.js.src %>/rhodecode/utils/colorgenerator.js',
64 '<%= dirs.js.src %>/rhodecode/utils/colorgenerator.js',
75 '<%= dirs.js.src %>/rhodecode/utils/ie.js',
65 '<%= dirs.js.src %>/rhodecode/utils/ie.js',
76 '<%= dirs.js.src %>/rhodecode/utils/os.js',
66 '<%= dirs.js.src %>/rhodecode/utils/os.js',
77 '<%= dirs.js.src %>/rhodecode/utils/topics.js',
67 '<%= dirs.js.src %>/rhodecode/utils/topics.js',
78
68
79 // Rhodecode widgets
69 // Rhodecode widgets
80 '<%= dirs.js.src %>/rhodecode/widgets/multiselect.js',
70 '<%= dirs.js.src %>/rhodecode/widgets/multiselect.js',
81
71
82 // Rhodecode components
72 // Rhodecode components
83 '<%= dirs.js.src %>/rhodecode/init.js',
73 '<%= dirs.js.src %>/rhodecode/init.js',
84 '<%= dirs.js.src %>/rhodecode/connection_controller.js',
74 '<%= dirs.js.src %>/rhodecode/connection_controller.js',
85 '<%= dirs.js.src %>/rhodecode/codemirror.js',
75 '<%= dirs.js.src %>/rhodecode/codemirror.js',
86 '<%= dirs.js.src %>/rhodecode/comments.js',
76 '<%= dirs.js.src %>/rhodecode/comments.js',
87 '<%= dirs.js.src %>/rhodecode/constants.js',
77 '<%= dirs.js.src %>/rhodecode/constants.js',
88 '<%= dirs.js.src %>/rhodecode/files.js',
78 '<%= dirs.js.src %>/rhodecode/files.js',
89 '<%= dirs.js.src %>/rhodecode/followers.js',
79 '<%= dirs.js.src %>/rhodecode/followers.js',
90 '<%= dirs.js.src %>/rhodecode/menus.js',
80 '<%= dirs.js.src %>/rhodecode/menus.js',
91 '<%= dirs.js.src %>/rhodecode/notifications.js',
81 '<%= dirs.js.src %>/rhodecode/notifications.js',
92 '<%= dirs.js.src %>/rhodecode/permissions.js',
82 '<%= dirs.js.src %>/rhodecode/permissions.js',
93 '<%= dirs.js.src %>/rhodecode/pjax.js',
83 '<%= dirs.js.src %>/rhodecode/pjax.js',
94 '<%= dirs.js.src %>/rhodecode/pullrequests.js',
84 '<%= dirs.js.src %>/rhodecode/pullrequests.js',
95 '<%= dirs.js.src %>/rhodecode/settings.js',
85 '<%= dirs.js.src %>/rhodecode/settings.js',
96 '<%= dirs.js.src %>/rhodecode/select2_widgets.js',
86 '<%= dirs.js.src %>/rhodecode/select2_widgets.js',
97 '<%= dirs.js.src %>/rhodecode/tooltips.js',
87 '<%= dirs.js.src %>/rhodecode/tooltips.js',
98 '<%= dirs.js.src %>/rhodecode/users.js',
88 '<%= dirs.js.src %>/rhodecode/users.js',
99 '<%= dirs.js.src %>/rhodecode/utils/notifications.js',
89 '<%= dirs.js.src %>/rhodecode/utils/notifications.js',
100 '<%= dirs.js.src %>/rhodecode/appenlight.js',
90 '<%= dirs.js.src %>/rhodecode/appenlight.js',
101
91
102 // Rhodecode main module
92 // Rhodecode main module
103 '<%= dirs.js.src %>/rhodecode.js'
93 '<%= dirs.js.src %>/rhodecode.js'
104 ],
94 ],
105 dest: '<%= dirs.js.dest %>/scripts.js',
95 dest: '<%= dirs.js.dest %>/scripts.js',
106 nonull: true
96 nonull: true
107 }
97 }
108 },
98 },
109
99
110 less: {
100 less: {
111 development: {
101 development: {
112 options: {
102 options: {
113 compress: false,
103 compress: false,
114 yuicompress: false,
104 yuicompress: false,
115 optimization: 0
105 optimization: 0
116 },
106 },
117 files: {
107 files: {
118 "<%= dirs.css %>/style.css": "<%= dirs.css %>/main.less",
108 "<%= dirs.css %>/style.css": "<%= dirs.css %>/main.less",
119 "<%= dirs.css %>/style-polymer.css": "<%= dirs.css %>/polymer.less"
109 "<%= dirs.css %>/style-polymer.css": "<%= dirs.css %>/polymer.less"
120 }
110 }
121 },
111 },
122 production: {
112 production: {
123 options: {
113 options: {
124 compress: true,
114 compress: true,
125 yuicompress: true,
115 yuicompress: true,
126 optimization: 2
116 optimization: 2
127 },
117 },
128 files: {
118 files: {
129 "<%= dirs.css %>/style.css": "<%= dirs.css %>/main.less",
119 "<%= dirs.css %>/style.css": "<%= dirs.css %>/main.less",
130 "<%= dirs.css %>/style-polymer.css": "<%= dirs.css %>/polymer.less"
120 "<%= dirs.css %>/style-polymer.css": "<%= dirs.css %>/polymer.less"
131 }
121 }
132 },
122 },
133 components: {
123 components: {
134 files: [{
124 files: [{
135 cwd: '<%= dirs.js.src %>/components/',
125 cwd: '<%= dirs.js.src %>/components/',
136 dest: '<%= dirs.js.src %>/components/',
126 dest: '<%= dirs.js.src %>/components/',
137 src: ['**/*.less'],
127 src: ['**/*.less'],
138 expand: true,
128 expand: true,
139 ext: '.css'
129 ext: '.css'
140 }]
130 }]
141 }
131 }
142 },
132 },
143
133
144 watch: {
134 watch: {
145 less: {
135 less: {
146 files: ["<%= dirs.css %>/*.less"],
136 files: ["<%= dirs.css %>/*.less"],
147 tasks: ["less:development", 'less:components', 'concat:polymercss', "vulcanize"]
137 tasks: ["less:development", 'less:components', "vulcanize"]
148 },
138 },
149 js: {
139 js: {
150 files: ["<%= dirs.js.src %>/**/*.js", "<%= dirs.js.src %>/components/*.*"],
140 files: ["<%= dirs.js.src %>/**/*.js", "<%= dirs.js.src %>/components/*.*"],
151 tasks: ["vulcanize", "concat:dist"]
141 tasks: ["vulcanize", "concat:dist"]
152 }
142 }
153 },
143 },
154
144
155 jshint: {
145 jshint: {
156 rhodecode: {
146 rhodecode: {
157 src: '<%= dirs.js.src %>/rhodecode/**/*.js',
147 src: '<%= dirs.js.src %>/rhodecode/**/*.js',
158 options: {
148 options: {
159 jshintrc: '.jshintrc'
149 jshintrc: '.jshintrc'
160 }
150 }
161 }
151 }
162 },
152 },
163 vulcanize: {
153 vulcanize: {
164 default: {
154 default: {
165 options: {
155 options: {
166 abspath: '',
156 abspath: '',
167 inlineScripts: true,
157 inlineScripts: true,
168 inlineCss: true,
158 inlineCss: true,
169 stripComments: true
159 stripComments: true
170 },
160 },
171 files: {
161 files: {
172 '<%= dirs.js.dest %>/rhodecode-components.html': '<%= dirs.js.src %>/components/shared-components.html'
162 '<%= dirs.js.dest %>/rhodecode-components.html': '<%= dirs.js.src %>/components/shared-components.html'
173 }
163 }
174 }
164 }
175 }
165 }
176 });
166 });
177
167
178 grunt.loadNpmTasks('grunt-contrib-less');
168 grunt.loadNpmTasks('grunt-contrib-less');
179 grunt.loadNpmTasks('grunt-contrib-concat');
169 grunt.loadNpmTasks('grunt-contrib-concat');
180 grunt.loadNpmTasks('grunt-contrib-watch');
170 grunt.loadNpmTasks('grunt-contrib-watch');
181 grunt.loadNpmTasks('grunt-contrib-jshint');
171 grunt.loadNpmTasks('grunt-contrib-jshint');
182 grunt.loadNpmTasks('grunt-vulcanize');
172 grunt.loadNpmTasks('grunt-vulcanize');
183 grunt.loadNpmTasks('grunt-crisper');
173 grunt.loadNpmTasks('grunt-crisper');
184 grunt.loadNpmTasks('grunt-contrib-copy');
174 grunt.loadNpmTasks('grunt-contrib-copy');
185
175
186 // TODO: johbo: missing bower bits
176 grunt.registerTask('default', ['less:production', 'less:components', 'copy','vulcanize', 'concat:dist']);
187 // grunt.registerTask('default', ['less:production', 'less:components', 'concat:polymercss', 'copy','vulcanize', 'concat:dist']);
188 grunt.registerTask('default', ['less:production', 'concat:dist']);
189 };
177 };
General Comments 0
You need to be logged in to leave comments. Login now