Generate rtd doc embed js without creating a module
parent
816201de4b
commit
d8bd1742dc
102
gulpfile.js
102
gulpfile.js
|
@ -17,15 +17,15 @@ var gulp = require('gulp'),
|
|||
// picking up dependencies of the primary entry points and putting any
|
||||
// limitations on directory structure for entry points.
|
||||
var sources = {
|
||||
builds: ['js/detail.js'],
|
||||
core: [
|
||||
'js/readthedocs-doc-embed.js',
|
||||
'js/autocomplete.js',
|
||||
'js/projectimport.js',
|
||||
],
|
||||
projects: ['js/tools.js'],
|
||||
gold: ['js/gold.js'],
|
||||
donate: ['js/donate.js']
|
||||
builds: {'js/detail.js': {}},
|
||||
core: {
|
||||
'js/readthedocs-doc-embed.js': {create_module: false},
|
||||
'js/autocomplete.js': {},
|
||||
'js/projectimport.js': {},
|
||||
},
|
||||
projects: {'js/tools.js': {}},
|
||||
gold: {'js/gold.js': {}},
|
||||
donate: {'js/donate.js': {}}
|
||||
};
|
||||
|
||||
// Standalone application to create vendor bundles for. These can be imported
|
||||
|
@ -36,56 +36,68 @@ var standalone = ['jquery', 'knockout', 'jquery-migrate', 'jquery-ui'];
|
|||
// application. This is called by build and dev tasks.
|
||||
function build_app_sources (application, minify) {
|
||||
// Normalize file glob lists
|
||||
var app_sources = sources[application].map(function (n) {
|
||||
return path.join(pkg_config.name, application, 'static-src', '**', n)
|
||||
});
|
||||
var app_js_sources = app_sources.filter(function (elem, n, arr) {
|
||||
return /\.js$/.test(elem);
|
||||
});
|
||||
var app_css_sources = app_sources.filter(function (elem, n, arr) {
|
||||
return /\.less$/.test(elem);
|
||||
var bundles = Object.keys(sources[application]).map(function (n) {
|
||||
var bundle_path = path.join(
|
||||
pkg_config.name, application, 'static-src', '**', n),
|
||||
bundle_config = sources[application][n] || {},
|
||||
bundle;
|
||||
|
||||
if (/\.js$/.test(bundle_path)) {
|
||||
// Javascript sources
|
||||
bundle = gulp
|
||||
.src(bundle_path)
|
||||
.pipe(es.map(function (file, cb) {
|
||||
return browserify_stream(file, bundle_config, cb);
|
||||
}));
|
||||
|
||||
if (minify) {
|
||||
bundle = bundle
|
||||
.pipe(vinyl_buffer())
|
||||
.pipe(uglify())
|
||||
.on('error', function (ev) {
|
||||
gulp_util.beep();
|
||||
gulp_util.log('Uglify error:', ev.message);
|
||||
});
|
||||
}
|
||||
}
|
||||
else if (/\.less$/.test(bundle_path)) {
|
||||
// CSS sources
|
||||
bundle = gulp.src(bundle_path)
|
||||
.pipe(less({}))
|
||||
.on('error', function (ev) {
|
||||
gulp_util.beep();
|
||||
gulp_util.log('LESS error:', ev.message);
|
||||
});
|
||||
}
|
||||
|
||||
return bundle;
|
||||
});
|
||||
|
||||
// Javascript sources
|
||||
var app_js = gulp
|
||||
.src(app_js_sources)
|
||||
.pipe(es.map(browserify_stream));
|
||||
|
||||
if (minify) {
|
||||
app_js = app_js
|
||||
.pipe(vinyl_buffer())
|
||||
.pipe(uglify())
|
||||
.on('error', function (ev) {
|
||||
gulp_util.beep();
|
||||
gulp_util.log('Uglify error:', ev.message);
|
||||
});
|
||||
}
|
||||
|
||||
// CSS sources
|
||||
var app_css = gulp.src(app_css_sources)
|
||||
.pipe(less({}))
|
||||
.on('error', function (ev) {
|
||||
gulp_util.beep();
|
||||
gulp_util.log('LESS error:', ev.message);
|
||||
});
|
||||
|
||||
return es.merge(app_js, app_css)
|
||||
return es.merge(bundles)
|
||||
.pipe(gulp.dest(path.join(pkg_config.name, application, 'static')));
|
||||
}
|
||||
|
||||
// Browserify build
|
||||
function browserify_stream (file, cb_output) {
|
||||
function browserify_stream (file, config, cb_output) {
|
||||
bower_resolve.offline = true;
|
||||
bower_resolve.init(function () {
|
||||
var bundle_stream = browserify(),
|
||||
module_name = path.basename(file.path, '.js');
|
||||
var bundle_stream = browserify();
|
||||
|
||||
standalone.map(function (module) {
|
||||
bundle_stream = bundle_stream.external(module);
|
||||
});
|
||||
|
||||
if (config.create_module === false) {
|
||||
bundle_stream.add(file.path)
|
||||
}
|
||||
else {
|
||||
var module_name = config.expose || path.basename(file.path, '.js');
|
||||
bundle_stream = bundle_stream.require(
|
||||
file.path,
|
||||
{expose: module_name})
|
||||
}
|
||||
|
||||
bundle_stream
|
||||
.require(file.path, {expose: module_name})
|
||||
.transform('debowerify', {ignoreModules: standalone})
|
||||
.bundle()
|
||||
.on('error', function (ev) {
|
||||
|
|
|
@ -3,8 +3,7 @@ var sponsorship = require('./sponsorship'),
|
|||
grokthedocs = require('./doc-embed/grokthedocs-client'),
|
||||
mkdocs = require('./doc-embed/mkdocs'),
|
||||
rtddata = require('./doc-embed/rtd-data'),
|
||||
sphinx = require('./doc-embed/sphinx'),
|
||||
$ = require('jquery');
|
||||
sphinx = require('./doc-embed/sphinx');
|
||||
|
||||
$(document).ready(function () {
|
||||
footer.init();
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
/* Read the Docs - Documentation promotions */
|
||||
|
||||
var $ = require('jquery');
|
||||
|
||||
module.exports = {
|
||||
Promo: Promo
|
||||
};
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue