From d8bd1742dc8c9b565e2d58653e8b1b43b67645f5 Mon Sep 17 00:00:00 2001 From: Anthony Johnson Date: Mon, 24 Aug 2015 01:35:13 -0700 Subject: [PATCH] Generate rtd doc embed js without creating a module --- gulpfile.js | 102 ++++++++++-------- .../core/js/readthedocs-doc-embed.js | 3 +- .../core/static-src/core/js/sponsorship.js | 2 - .../static/core/js/readthedocs-doc-embed.js | 2 +- 4 files changed, 59 insertions(+), 50 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index ccb7b19ec..9b61d201a 100644 --- a/gulpfile.js +++ b/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) { diff --git a/readthedocs/core/static-src/core/js/readthedocs-doc-embed.js b/readthedocs/core/static-src/core/js/readthedocs-doc-embed.js index a3acaff53..0bc397dfb 100644 --- a/readthedocs/core/static-src/core/js/readthedocs-doc-embed.js +++ b/readthedocs/core/static-src/core/js/readthedocs-doc-embed.js @@ -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(); diff --git a/readthedocs/core/static-src/core/js/sponsorship.js b/readthedocs/core/static-src/core/js/sponsorship.js index 78f2490e5..6e563a1e7 100644 --- a/readthedocs/core/static-src/core/js/sponsorship.js +++ b/readthedocs/core/static-src/core/js/sponsorship.js @@ -1,7 +1,5 @@ /* Read the Docs - Documentation promotions */ -var $ = require('jquery'); - module.exports = { Promo: Promo }; diff --git a/readthedocs/core/static/core/js/readthedocs-doc-embed.js b/readthedocs/core/static/core/js/readthedocs-doc-embed.js index dac843942..bb2e7ebd4 100644 --- a/readthedocs/core/static/core/js/readthedocs-doc-embed.js +++ b/readthedocs/core/static/core/js/readthedocs-doc-embed.js @@ -1 +1 @@ -require=function t(e,r,o){function n(a,s){if(!r[a]){if(!e[a]){var c="function"==typeof require&&require;if(!s&&c)return c(a,!0);if(i)return i(a,!0);var d=new Error("Cannot find module '"+a+"'");throw d.code="MODULE_NOT_FOUND",d}var p=r[a]={exports:{}};e[a][0].call(p.exports,function(t){var r=e[a][1][t];return n(r?r:t)},p,p.exports,t,e,r,o)}return r[a].exports}for(var i="function"==typeof require&&require,a=0;a").attr({type:"hidden",name:"project",value:t.project}).appendTo("#rtd-search-form"),$("").attr({type:"hidden",name:"version",value:t.version}).appendTo("#rtd-search-form"),$("").attr({type:"hidden",name:"type",value:"file"}).appendTo("#rtd-search-form"),$("#rtd-search-form").prop("action",t.api_host+"/search/");var e=$("nav.wy-nav-side:first"),r=$(window),o="stickynav",i=function(){e.height()<=r.height()?e.addClass(o):e.removeClass(o)};r.on("resize",i),i()}}var n=t("./rtd-data");e.exports={init:o}},{"./rtd-data":4}],4:[function(t,e,r){function o(){var t=Object.create(n),e={api_host:"https://readthedocs.org"};return $.extend(t,e,window.READTHEDOCS_DATA),t}var n={is_rtd_theme:function(){return"sphinx_rtd_theme"===this.get_theme_name()},is_sphinx_builder:function(){return!("builder"in this)||"mkdocs"!=this.builder},get_theme_name:function(){return"sphinx_rtd_theme"!==this.theme&&1===$("div.rst-other-versions").length?"sphinx_rtd_theme":this.theme},show_promo:function(){return"https://readthedocs.com"!==this.api_host&&this.is_sphinx_builder()&&this.is_rtd_theme()}};e.exports={get:o}},{}],5:[function(t,e,r){function o(){function t(t){var e=t.closest("li");e.siblings("li.current").removeClass("current"),e.siblings().find("li.current").removeClass("current"),e.find("> ul li.current").removeClass("current"),e.toggleClass("current")}var e=n.get();$(document).on("click","[data-toggle='rst-current-version']",function(){var t=$("[data-toggle='rst-versions']").hasClass("shift-up")?"was_open":"was_closed";_gaq&&_gaq.push(["rtfd._setAccount","UA-17997319-1"],["rtfd._trackEvent","Flyout","Click",t])}),(!("builder"in e)||"builder"in e&&"mkdocs"!=e.builder)&&($(document).on("click","[data-toggle='wy-nav-top']",function(){$("[data-toggle='wy-nav-shift']").toggleClass("shift"),$("[data-toggle='rst-versions']").toggleClass("shift")}),$(document).on("click",".wy-menu-vertical .current ul li a",function(){var e=$(this);$("[data-toggle='wy-nav-shift']").removeClass("shift"),$("[data-toggle='rst-versions']").toggleClass("shift"),t(e),"undefined"!=typeof window.SphinxRtdTheme&&window.SphinxRtdTheme.StickyNav.hashChange()}),$(document).on("click","[data-toggle='rst-current-version']",function(){$("[data-toggle='rst-versions']").toggleClass("shift-up")}),$("table.docutils:not(.field-list)").wrap("
"),$(".wy-menu-vertical ul").siblings("a").each(function(){var e=$(this);expand=$(''),expand.on("click",function(r){return t(e),r.stopPropagation(),!1}),e.prepend(expand)}),window.SphinxRtdTheme=function(t){var e=function(){var e,r,o=!1,n=!1,i=0,a=function(){s(),c(),r.on("hashchange",c),r.on("scroll",function(){n||(o=!0)}),setInterval(function(){if(o){o=!1;var t=r.scrollTop(),n=e.scrollTop(),a=n+(t-i);e.scrollTop(a),i=t}},25)},s=function(){e=t("nav.wy-nav-side:first"),r=t(window)},c=function(){var t=encodeURI(window.location.hash);if(t)try{var e=$(".wy-menu-vertical").find('[href="'+t+'"]');$(".wy-menu-vertical li.toctree-l1 li.current").removeClass("current"),e.closest("li.toctree-l2").addClass("current"),e.closest("li.toctree-l3").addClass("current"),e.closest("li.toctree-l4").addClass("current")}catch(r){console.log("Error expanding nav for anchor",r)}},d=function(){n=!0,r.one("hashchange",function(){n=!1})};return t(s),{enable:a,hashChange:d}}();return{StickyNav:e}}($))}var n=t("./rtd-data");e.exports={init:o}},{"./rtd-data":4}],6:[function(t,e,r){function o(t){var e=n.get();if(!t.is_highest){var r=window.location.pathname.replace(e.version,t.slug),o=$('

Note

You are not using the most up to date version of the library. is the newest version.

');o.find("a").attr("href",r).text(t.version);var i=$("div.body");i.length||(i=$("div.document")),i.prepend(o)}}var n=t("./rtd-data");e.exports={init:o}},{"./rtd-data":4}],7:[function(t,e,r){function o(t,e,r,o){this.id=t,this.text=e,this.link=r,this.image=o,this.promo=null}var n=t("jquery");e.exports={Promo:o},o.prototype.create=function(){function t(){_gaq&&_gaq.push(["rtfd._setAccount","UA-17997319-1"],["rtfd._trackEvent","Promo","Click",e.id])}var e=this,r=n("nav.wy-nav-side");if(r.length){promo=n("
").attr("class","wy-menu rst-pro");{var o=n("
").attr("class","rst-pro-about"),i=n("").attr("href","http://docs.readthedocs.org/en/latest/sponsors.html#sponsorship-information").appendTo(o);n("").attr("class","fa fa-info-circle").appendTo(i)}if(o.appendTo(promo),e.image){{var a=n("").attr("class","rst-pro-image-wrapper").attr("href",e.link).attr("target","_blank").on("click",t);n("").attr("class","rst-pro-image").attr("src",e.image).appendTo(a)}promo.append(a)}var s=n("").html(e.text);return n(s).find("a").each(function(){n(this).attr("class","rst-pro-link").attr("href",e.link).attr("target","_blank").on("click",t)}),promo.append(s),promo.appendTo(r),promo.wrapper=n("
").attr("class","rst-pro-wrapper").appendTo(r),promo}},o.prototype.display=function(){var t=this.promo;t||(t=this.promo=this.create()),t.show()},o.prototype.disable=function(){},o.from_variants=function(t){if(0==t.length)return null;var e=Math.floor(Math.random()*t.length),r=t[e],n=r.text,i=r.link,a=r.image,s=r.id;return new o(s,n,i,a)}},{jquery:"jquery"}],"readthedocs-doc-embed":[function(t,e,r){var o=(t("./sponsorship"),t("./doc-embed/footer.js")),n=t("./doc-embed/grokthedocs-client"),i=t("./doc-embed/mkdocs"),a=(t("./doc-embed/rtd-data"),t("./doc-embed/sphinx")),s=t("jquery");s(document).ready(function(){o.init(),a.init(),n.init(),i.init()})},{"./doc-embed/footer.js":1,"./doc-embed/grokthedocs-client":2,"./doc-embed/mkdocs":3,"./doc-embed/rtd-data":4,"./doc-embed/sphinx":5,"./sponsorship":7,jquery:"jquery"}]},{},[]); \ No newline at end of file +!function t(e,r,o){function n(a,s){if(!r[a]){if(!e[a]){var c="function"==typeof require&&require;if(!s&&c)return c(a,!0);if(i)return i(a,!0);var d=new Error("Cannot find module '"+a+"'");throw d.code="MODULE_NOT_FOUND",d}var p=r[a]={exports:{}};e[a][0].call(p.exports,function(t){var r=e[a][1][t];return n(r?r:t)},p,p.exports,t,e,r,o)}return r[a].exports}for(var i="function"==typeof require&&require,a=0;a").attr({type:"hidden",name:"project",value:t.project}).appendTo("#rtd-search-form"),$("").attr({type:"hidden",name:"version",value:t.version}).appendTo("#rtd-search-form"),$("").attr({type:"hidden",name:"type",value:"file"}).appendTo("#rtd-search-form"),$("#rtd-search-form").prop("action",t.api_host+"/search/");var e=$("nav.wy-nav-side:first"),r=$(window),o="stickynav",i=function(){e.height()<=r.height()?e.addClass(o):e.removeClass(o)};r.on("resize",i),i()}}var n=t("./rtd-data");e.exports={init:o}},{"./rtd-data":4}],4:[function(t,e,r){function o(){var t=Object.create(n),e={api_host:"https://readthedocs.org"};return $.extend(t,e,window.READTHEDOCS_DATA),t}var n={is_rtd_theme:function(){return"sphinx_rtd_theme"===this.get_theme_name()},is_sphinx_builder:function(){return!("builder"in this)||"mkdocs"!=this.builder},get_theme_name:function(){return"sphinx_rtd_theme"!==this.theme&&1===$("div.rst-other-versions").length?"sphinx_rtd_theme":this.theme},show_promo:function(){return"https://readthedocs.com"!==this.api_host&&this.is_sphinx_builder()&&this.is_rtd_theme()}};e.exports={get:o}},{}],5:[function(t,e,r){function o(){function t(t){var e=t.closest("li");e.siblings("li.current").removeClass("current"),e.siblings().find("li.current").removeClass("current"),e.find("> ul li.current").removeClass("current"),e.toggleClass("current")}var e=n.get();$(document).on("click","[data-toggle='rst-current-version']",function(){var t=$("[data-toggle='rst-versions']").hasClass("shift-up")?"was_open":"was_closed";_gaq&&_gaq.push(["rtfd._setAccount","UA-17997319-1"],["rtfd._trackEvent","Flyout","Click",t])}),(!("builder"in e)||"builder"in e&&"mkdocs"!=e.builder)&&($(document).on("click","[data-toggle='wy-nav-top']",function(){$("[data-toggle='wy-nav-shift']").toggleClass("shift"),$("[data-toggle='rst-versions']").toggleClass("shift")}),$(document).on("click",".wy-menu-vertical .current ul li a",function(){var e=$(this);$("[data-toggle='wy-nav-shift']").removeClass("shift"),$("[data-toggle='rst-versions']").toggleClass("shift"),t(e),"undefined"!=typeof window.SphinxRtdTheme&&window.SphinxRtdTheme.StickyNav.hashChange()}),$(document).on("click","[data-toggle='rst-current-version']",function(){$("[data-toggle='rst-versions']").toggleClass("shift-up")}),$("table.docutils:not(.field-list)").wrap("
"),$(".wy-menu-vertical ul").siblings("a").each(function(){var e=$(this);expand=$(''),expand.on("click",function(r){return t(e),r.stopPropagation(),!1}),e.prepend(expand)}),window.SphinxRtdTheme=function(t){var e=function(){var e,r,o=!1,n=!1,i=0,a=function(){s(),c(),r.on("hashchange",c),r.on("scroll",function(){n||(o=!0)}),setInterval(function(){if(o){o=!1;var t=r.scrollTop(),n=e.scrollTop(),a=n+(t-i);e.scrollTop(a),i=t}},25)},s=function(){e=t("nav.wy-nav-side:first"),r=t(window)},c=function(){var t=encodeURI(window.location.hash);if(t)try{var e=$(".wy-menu-vertical").find('[href="'+t+'"]');$(".wy-menu-vertical li.toctree-l1 li.current").removeClass("current"),e.closest("li.toctree-l2").addClass("current"),e.closest("li.toctree-l3").addClass("current"),e.closest("li.toctree-l4").addClass("current")}catch(r){console.log("Error expanding nav for anchor",r)}},d=function(){n=!0,r.one("hashchange",function(){n=!1})};return t(s),{enable:a,hashChange:d}}();return{StickyNav:e}}($))}var n=t("./rtd-data");e.exports={init:o}},{"./rtd-data":4}],6:[function(t,e,r){function o(t){var e=n.get();if(!t.is_highest){var r=window.location.pathname.replace(e.version,t.slug),o=$('
');o.find("a").attr("href",r).text(t.version);var i=$("div.body");i.length||(i=$("div.document")),i.prepend(o)}}var n=t("./rtd-data");e.exports={init:o}},{"./rtd-data":4}],7:[function(t,e,r){var o=(t("./sponsorship"),t("./doc-embed/footer.js")),n=t("./doc-embed/grokthedocs-client"),i=t("./doc-embed/mkdocs"),a=(t("./doc-embed/rtd-data"),t("./doc-embed/sphinx"));$(document).ready(function(){o.init(),a.init(),n.init(),i.init()})},{"./doc-embed/footer.js":1,"./doc-embed/grokthedocs-client":2,"./doc-embed/mkdocs":3,"./doc-embed/rtd-data":4,"./doc-embed/sphinx":5,"./sponsorship":8}],8:[function(t,e,r){function o(t,e,r,o){this.id=t,this.text=e,this.link=r,this.image=o,this.promo=null}e.exports={Promo:o},o.prototype.create=function(){function t(){_gaq&&_gaq.push(["rtfd._setAccount","UA-17997319-1"],["rtfd._trackEvent","Promo","Click",e.id])}var e=this,r=$("nav.wy-nav-side");if(r.length){promo=$("
").attr("class","wy-menu rst-pro");{var o=$("
").attr("class","rst-pro-about"),n=$("").attr("href","http://docs.readthedocs.org/en/latest/sponsors.html#sponsorship-information").appendTo(o);$("").attr("class","fa fa-info-circle").appendTo(n)}if(o.appendTo(promo),e.image){{var i=$("").attr("class","rst-pro-image-wrapper").attr("href",e.link).attr("target","_blank").on("click",t);$("").attr("class","rst-pro-image").attr("src",e.image).appendTo(i)}promo.append(i)}var a=$("").html(e.text);return $(a).find("a").each(function(){$(this).attr("class","rst-pro-link").attr("href",e.link).attr("target","_blank").on("click",t)}),promo.append(a),promo.appendTo(r),promo.wrapper=$("
").attr("class","rst-pro-wrapper").appendTo(r),promo}},o.prototype.display=function(){var t=this.promo;t||(t=this.promo=this.create()),t.show()},o.prototype.disable=function(){},o.from_variants=function(t){if(0==t.length)return null;var e=Math.floor(Math.random()*t.length),r=t[e],n=r.text,i=r.link,a=r.image,s=r.id;return new o(s,n,i,a)}},{}]},{},[7]); \ No newline at end of file