Changed Orchard.Layouts to use new Gulp pipeline.

This commit is contained in:
Daniel Stolt 2015-07-26 00:37:01 +01:00
parent b85ad00791
commit c9c39b7e6a
94 changed files with 197 additions and 304 deletions

View File

@ -1,15 +1,3 @@
/*
* This gulpfile enables compilation of the LESS files in this project.
*
* To use this file you will need to:
* - Install Node.js on your machine
* - Run "npm install" in this folder (either via command line or a Visual Studio extension) to install dependency packages from package.json
*
* NOTE: If you install the Task Runner Explorer extension in Visual Studio the tasks in this
* gulpfile will execute automatically on VS events for a more integrated/automated workflow. That's the
* purpose of the <binding> comment element at the top.
*/
var glob = require("glob"),
path = require("path-posix"),
merge = require("merge-stream"),
@ -31,11 +19,25 @@ var glob = require("glob"),
** GULP TASKS
*/
// Incremental build (each asset group is built only if one or more inputs are newer than the output).
gulp.task("build", function () {
var assetGroupTasks = getAssetGroups().map(createAssetGroupTask);
var assetGroupTasks = getAssetGroups().map(function (assetGroup) {
var doRebuild = false;
return createAssetGroupTask(assetGroup, doRebuild);
});
return merge(assetGroupTasks);
});
// Full rebuild (all assets groups are built regardless of timestamps).
gulp.task("rebuild", function () {
var assetGroupTasks = getAssetGroups().map(function (assetGroup) {
var doRebuild = true;
return createAssetGroupTask(assetGroup, doRebuild);
});
return merge(assetGroupTasks);
});
// Continuous watch (each asset group is built whenever one of its inputs changes).
gulp.task("watch", function () {
getAssetGroups().forEach(function (assetGroup) {
gulp.watch(assetGroup.inputPaths, function (event) {
@ -72,13 +74,13 @@ function resolveAssetGroupPaths(assetGroup, assetManifestPath) {
assetGroup.outputFileName = path.basename(assetGroup.output);
}
function createAssetGroupTask(assetGroup) {
function createAssetGroupTask(assetGroup, doRebuild) {
var outputExt = path.extname(assetGroup.output).toLowerCase();
switch (outputExt) {
case ".css":
return buildCssGroup(assetGroup);
return buildCssGroup(assetGroup, doRebuild);
case ".js":
return buildJsGroup(assetGroup);
return buildJsGroup(assetGroup, doRebuild);
}
}
@ -86,16 +88,16 @@ function createAssetGroupTask(assetGroup) {
** PROCESSING PIPELINES
*/
function buildCssGroup(assetGroup) {
function buildCssGroup(assetGroup, doRebuild) {
var doConcat = path.basename(assetGroup.outputFileName, ".css") !== "@";
return gulp.src(assetGroup.inputPaths)
.pipe(gulpif(doConcat,
newer(assetGroup.outputPath),
newer({
dest: assetGroup.outputDir,
ext: ".css"
})
))
.pipe(gulpif(!doRebuild,
gulpif(doConcat,
newer(assetGroup.outputPath),
newer({
dest: assetGroup.outputDir,
ext: ".css"
}))))
.pipe(plumber())
.pipe(sourcemaps.init())
.pipe(gulpif("*.less", less()))
@ -117,16 +119,16 @@ function buildCssGroup(assetGroup) {
.pipe(gulp.dest(assetGroup.outputDir));
}
function buildJsGroup(assetGroup) {
function buildJsGroup(assetGroup, doRebuild) {
var doConcat = path.basename(assetGroup.outputFileName, ".js") !== "@";
return gulp.src(assetGroup.inputPaths)
.pipe(gulpif(doConcat,
newer(assetGroup.outputPath),
newer({
dest: assetGroup.outputDir,
ext: ".js"
})
))
.pipe(gulpif(!doRebuild,
gulpif(doConcat,
newer(assetGroup.outputPath),
newer({
dest: assetGroup.outputDir,
ext: ".js"
}))))
.pipe(plumber())
.pipe(sourcemaps.init())
.pipe(gulpif("*.ts", typescript({

View File

@ -9,4 +9,4 @@
.layout-editor .layout-content > .layout-element-wrapper .layout-content-markup > .form-field-element.form-field-element-enumeration ol {
list-style: none;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR5bmFtaWNGb3Jtcy1BZG1pbi5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0lBS0EsWUFBQTtDQUNBOztBQUVBO0lBQ0EsaUJBQUE7Q0FDQSIsImZpbGUiOiJEeW5hbWljRm9ybXMtQWRtaW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmxheW91dC1lZGl0b3IgLmxheW91dC1jb250ZW50ID4gLmxheW91dC1lbGVtZW50LXdyYXBwZXIgLmxheW91dC1jb250ZW50LW1hcmt1cCA+IC5mb3JtLWZpZWxkLWVsZW1lbnQgaW5wdXRbdHlwZT1cInRleHRcIl0sXHJcbi5sYXlvdXQtZWRpdG9yIC5sYXlvdXQtY29udGVudCA+IC5sYXlvdXQtZWxlbWVudC13cmFwcGVyIC5sYXlvdXQtY29udGVudC1tYXJrdXAgPiAuZm9ybS1maWVsZC1lbGVtZW50IGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcclxuLmxheW91dC1lZGl0b3IgLmxheW91dC1jb250ZW50ID4gLmxheW91dC1lbGVtZW50LXdyYXBwZXIgLmxheW91dC1jb250ZW50LW1hcmt1cCA+IC5mb3JtLWZpZWxkLWVsZW1lbnQgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxyXG4ubGF5b3V0LWVkaXRvciAubGF5b3V0LWNvbnRlbnQgPiAubGF5b3V0LWVsZW1lbnQtd3JhcHBlciAubGF5b3V0LWNvbnRlbnQtbWFya3VwID4gLmZvcm0tZmllbGQtZWxlbWVudCBpbnB1dFt0eXBlPVwidGVsXCJdLFxyXG4ubGF5b3V0LWVkaXRvciAubGF5b3V0LWNvbnRlbnQgPiAubGF5b3V0LWVsZW1lbnQtd3JhcHBlciAubGF5b3V0LWNvbnRlbnQtbWFya3VwID4gLmZvcm0tZmllbGQtZWxlbWVudCB0ZXh0YXJlYSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmxheW91dC1lZGl0b3IgLmxheW91dC1jb250ZW50ID4gLmxheW91dC1lbGVtZW50LXdyYXBwZXIgLmxheW91dC1jb250ZW50LW1hcmt1cCA+IC5mb3JtLWZpZWxkLWVsZW1lbnQuZm9ybS1maWVsZC1lbGVtZW50LWVudW1lcmF0aW9uIG9sIHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbn0iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR5bmFtaWNGb3Jtcy1BZG1pbi5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0lBS0ksWUFBWTtDQUNmOztBQUVEO0lBQ0ksaUJBQWlCO0NBQ3BCIiwiZmlsZSI6IkR5bmFtaWNGb3Jtcy1BZG1pbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubGF5b3V0LWVkaXRvciAubGF5b3V0LWNvbnRlbnQgPiAubGF5b3V0LWVsZW1lbnQtd3JhcHBlciAubGF5b3V0LWNvbnRlbnQtbWFya3VwID4gLmZvcm0tZmllbGQtZWxlbWVudCBpbnB1dFt0eXBlPVwidGV4dFwiXSxcclxuLmxheW91dC1lZGl0b3IgLmxheW91dC1jb250ZW50ID4gLmxheW91dC1lbGVtZW50LXdyYXBwZXIgLmxheW91dC1jb250ZW50LW1hcmt1cCA+IC5mb3JtLWZpZWxkLWVsZW1lbnQgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxyXG4ubGF5b3V0LWVkaXRvciAubGF5b3V0LWNvbnRlbnQgPiAubGF5b3V0LWVsZW1lbnQtd3JhcHBlciAubGF5b3V0LWNvbnRlbnQtbWFya3VwID4gLmZvcm0tZmllbGQtZWxlbWVudCBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXHJcbi5sYXlvdXQtZWRpdG9yIC5sYXlvdXQtY29udGVudCA+IC5sYXlvdXQtZWxlbWVudC13cmFwcGVyIC5sYXlvdXQtY29udGVudC1tYXJrdXAgPiAuZm9ybS1maWVsZC1lbGVtZW50IGlucHV0W3R5cGU9XCJ0ZWxcIl0sXHJcbi5sYXlvdXQtZWRpdG9yIC5sYXlvdXQtY29udGVudCA+IC5sYXlvdXQtZWxlbWVudC13cmFwcGVyIC5sYXlvdXQtY29udGVudC1tYXJrdXAgPiAuZm9ybS1maWVsZC1lbGVtZW50IHRleHRhcmVhIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ubGF5b3V0LWVkaXRvciAubGF5b3V0LWNvbnRlbnQgPiAubGF5b3V0LWVsZW1lbnQtd3JhcHBlciAubGF5b3V0LWNvbnRlbnQtbWFya3VwID4gLmZvcm0tZmllbGQtZWxlbWVudC5mb3JtLWZpZWxkLWVsZW1lbnQtZW51bWVyYXRpb24gb2wge1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxufSJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */

View File

@ -0,0 +1,67 @@
[
{
"inputs": [
"Assets/Less/Lib/Bootstrap/bootstrap.less",
"Assets/Less/Lib/FontAwesome/font-awesome.less"
],
"output": "Styles/Lib.css"
},
{
"inputs": [
"Assets/Less/LayoutEditor/Editor.less",
"Assets/Less/LayoutEditor/Element.less",
"Assets/Less/LayoutEditor/Container.less",
"Assets/Less/LayoutEditor/Canvas.less",
"Assets/Less/LayoutEditor/Row.less",
"Assets/Less/LayoutEditor/Column.less",
"Assets/Less/LayoutEditor/Content.less",
"Assets/Less/LayoutEditor/Toolbox.less",
"Assets/Less/LayoutEditor/Popup.less"
],
"output": "Styles/LayoutEditor.css"
},
{
"inputs": [
"Assets/JavaScript/Lib/underscore.js",
"Assets/JavaScript/Lib/angular.js",
"Assets/JavaScript/Lib/angular-sanitize.js",
"Assets/JavaScript/Lib/angular-resource.js",
"Assets/JavaScript/Lib/sortable.js"
],
"output": "Scripts/Lib.js"
},
{
"inputs": [
"Assets/JavaScript/LayoutEditor/Module.js",
"Assets/JavaScript/LayoutEditor/Services/Clipboard.js",
"Assets/JavaScript/LayoutEditor/Services/ScopeConfigurator.js",
"Assets/JavaScript/LayoutEditor/Directives/Editor.js",
"Assets/JavaScript/LayoutEditor/Directives/Canvas.js",
"Assets/JavaScript/LayoutEditor/Directives/Child.js",
"Assets/JavaScript/LayoutEditor/Directives/Column.js",
"Assets/JavaScript/LayoutEditor/Directives/Content.js",
"Assets/JavaScript/LayoutEditor/Directives/Html.js",
"Assets/JavaScript/LayoutEditor/Directives/Grid.js",
"Assets/JavaScript/LayoutEditor/Directives/Row.js",
"Assets/JavaScript/LayoutEditor/Directives/Popup.js",
"Assets/JavaScript/LayoutEditor/Directives/Toolbox.js",
"Assets/JavaScript/LayoutEditor/Directives/ToolboxGroup.js"
],
"output": "Scripts/LayoutEditor.js"
},
{
"inputs": [
"Assets/JavaScript/Models/Helpers.js",
"Assets/JavaScript/Models/Editor.js",
"Assets/JavaScript/Models/Element.js",
"Assets/JavaScript/Models/Container.js",
"Assets/JavaScript/Models/Canvas.js",
"Assets/JavaScript/Models/Grid.js",
"Assets/JavaScript/Models/Row.js",
"Assets/JavaScript/Models/Column.js",
"Assets/JavaScript/Models/Content.js",
"Assets/JavaScript/Models/Html.js"
],
"output": "Scripts/Models.js"
}
]

View File

@ -1,7 +1,7 @@
// Variables
// --------------------------
@fa-font-path: "Lib/FontAwesome/Fonts";
@fa-font-path: "Fonts";
@fa-font-size-base: 14px;
//@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.3.0/fonts"; // for referencing Bootstrap CDN font files directly
@fa-css-prefix: fa;

View File

@ -80,7 +80,7 @@
</ItemGroup>
<ItemGroup>
<Content Include="Default.html" />
<None Include="gulpfile.js%24" />
<Content Include="Assets.json" />
<Content Include="Images\azure.png" />
<Content Include="Images\illustration.jpg" />
<Content Include="Images\logo.svg" />
@ -97,39 +97,39 @@
<Content Include="Scripts\jquery.deserialize.js" />
<Content Include="Scripts\LayoutEditor.js" />
<Content Include="Scripts\LayoutEditor.min.js" />
<Content Include="Scripts\LayoutEditor\Directives\Html.js" />
<Content Include="Scripts\LayoutEditor\Directives\Editor.js" />
<Content Include="Scripts\LayoutEditor\Directives\Canvas.js" />
<Content Include="Scripts\LayoutEditor\Directives\Child.js" />
<Content Include="Scripts\LayoutEditor\Directives\Column.js" />
<Content Include="Scripts\LayoutEditor\Directives\Content.js" />
<Content Include="Scripts\LayoutEditor\Directives\ToolboxGroup.js" />
<Content Include="Scripts\LayoutEditor\Directives\Toolbox.js" />
<Content Include="Scripts\LayoutEditor\Directives\Grid.js" />
<Content Include="Scripts\LayoutEditor\Directives\Popup.js" />
<Content Include="Scripts\LayoutEditor\Directives\Row.js" />
<Content Include="Scripts\LayoutEditor\Module.js" />
<Content Include="Scripts\LayoutEditor\Services\Clipboard.js" />
<Content Include="Scripts\LayoutEditor\Services\ScopeConfigurator.js" />
<Content Include="Assets\JavaScript\LayoutEditor\Directives\Html.js" />
<Content Include="Assets\JavaScript\LayoutEditor\Directives\Editor.js" />
<Content Include="Assets\JavaScript\LayoutEditor\Directives\Canvas.js" />
<Content Include="Assets\JavaScript\LayoutEditor\Directives\Child.js" />
<Content Include="Assets\JavaScript\LayoutEditor\Directives\Column.js" />
<Content Include="Assets\JavaScript\LayoutEditor\Directives\Content.js" />
<Content Include="Assets\JavaScript\LayoutEditor\Directives\ToolboxGroup.js" />
<Content Include="Assets\JavaScript\LayoutEditor\Directives\Toolbox.js" />
<Content Include="Assets\JavaScript\LayoutEditor\Directives\Grid.js" />
<Content Include="Assets\JavaScript\LayoutEditor\Directives\Popup.js" />
<Content Include="Assets\JavaScript\LayoutEditor\Directives\Row.js" />
<Content Include="Assets\JavaScript\LayoutEditor\Module.js" />
<Content Include="Assets\JavaScript\LayoutEditor\Services\Clipboard.js" />
<Content Include="Assets\JavaScript\LayoutEditor\Services\ScopeConfigurator.js" />
<Content Include="Scripts\Lib.js" />
<Content Include="Scripts\Lib.min.js" />
<Content Include="Scripts\Lib\angular-resource.js" />
<Content Include="Scripts\Lib\angular-sanitize.js" />
<Content Include="Scripts\Lib\angular.js" />
<Content Include="Scripts\Lib\sortable.js" />
<Content Include="Scripts\Lib\underscore.js" />
<Content Include="Assets\JavaScript\Lib\angular-resource.js" />
<Content Include="Assets\JavaScript\Lib\angular-sanitize.js" />
<Content Include="Assets\JavaScript\Lib\angular.js" />
<Content Include="Assets\JavaScript\Lib\sortable.js" />
<Content Include="Assets\JavaScript\Lib\underscore.js" />
<Content Include="Scripts\Models.js" />
<Content Include="Scripts\Models.min.js" />
<Content Include="Scripts\Models\Canvas.js" />
<Content Include="Scripts\Models\Editor.js" />
<Content Include="Scripts\Models\Column.js" />
<Content Include="Scripts\Models\Container.js" />
<Content Include="Scripts\Models\Content.js" />
<Content Include="Scripts\Models\Element.js" />
<Content Include="Scripts\Models\Html.js" />
<Content Include="Scripts\Models\Grid.js" />
<Content Include="Scripts\Models\Helpers.js" />
<Content Include="Scripts\Models\Row.js" />
<Content Include="Assets\JavaScript\Models\Canvas.js" />
<Content Include="Assets\JavaScript\Models\Editor.js" />
<Content Include="Assets\JavaScript\Models\Column.js" />
<Content Include="Assets\JavaScript\Models\Container.js" />
<Content Include="Assets\JavaScript\Models\Content.js" />
<Content Include="Assets\JavaScript\Models\Element.js" />
<Content Include="Assets\JavaScript\Models\Html.js" />
<Content Include="Assets\JavaScript\Models\Grid.js" />
<Content Include="Assets\JavaScript\Models\Helpers.js" />
<Content Include="Assets\JavaScript\Models\Row.js" />
<Content Include="Scripts\LayoutDecoder.js" />
<Content Include="Scripts\dialog.js" />
<Content Include="Scripts\designer.canvas.js" />
@ -141,9 +141,9 @@
<Content Include="Scripts\_references.js" />
<Content Include="Styles\LayoutEditor.css" />
<Content Include="Styles\LayoutEditor.min.css" />
<Content Include="Styles\Fonts\fontawesome-webfont.svg" />
<Content Include="Styles\Lib.css" />
<Content Include="Styles\Lib.min.css" />
<Content Include="Styles\Lib\FontAwesome\Fonts\fontawesome-webfont.svg" />
<Content Include="Styles\menu.layouts-admin.css" />
<Content Include="Styles\menu.elements.png" />
<Content Include="Styles\element-editor.css" />
@ -208,43 +208,43 @@
<Content Include="Views\EditorTemplates\Elements.Image.cshtml" />
<Content Include="Views\Elements\Image.cshtml" />
<Content Include="Views\Elements\Image.Design.cshtml" />
<Content Include="Styles\Lib\FontAwesome\Fonts\fontawesome-webfont.eot" />
<Content Include="Styles\Lib\FontAwesome\Fonts\fontawesome-webfont.ttf" />
<Content Include="Styles\Lib\FontAwesome\Fonts\fontawesome-webfont.woff" />
<Content Include="Styles\Lib\FontAwesome\Fonts\FontAwesome.otf" />
<Content Include="Styles\Lib\Bootstrap\bootstrap.less" />
<Content Include="Styles\Lib\Bootstrap\grid.less" />
<Content Include="Styles\Lib\Bootstrap\mixins.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\background-variant.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\border-radius.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\center-block.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\clearfix.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\gradients.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\grid-framework.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\grid.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\hide-text.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\image.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\labels.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\opacity.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\reset-filter.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\resize.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\responsive-visibility.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\size.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\tab-focus.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\text-emphasis.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\text-overflow.less" />
<Content Include="Styles\Lib\Bootstrap\mixins\vendor-prefixes.less" />
<Content Include="Styles\Lib\Bootstrap\scaffolding.less" />
<Content Include="Styles\Lib\Bootstrap\utilities.less" />
<Content Include="Styles\Lib\Bootstrap\variables.less" />
<Content Include="Styles\LayoutEditor\Element.less" />
<Content Include="Styles\LayoutEditor\Container.less" />
<Content Include="Styles\LayoutEditor\Variables.less" />
<Content Include="Styles\LayoutEditor\Canvas.less" />
<Content Include="Styles\LayoutEditor\Content.less" />
<Content Include="Styles\LayoutEditor\Popup.less" />
<Content Include="Styles\LayoutEditor\Row.less" />
<Content Include="Styles\LayoutEditor\Column.less" />
<Content Include="Styles\Fonts\fontawesome-webfont.eot" />
<Content Include="Styles\Fonts\fontawesome-webfont.ttf" />
<Content Include="Styles\Fonts\fontawesome-webfont.woff" />
<Content Include="Styles\Fonts\FontAwesome.otf" />
<Content Include="Assets\Less\Lib\Bootstrap\bootstrap.less" />
<Content Include="Assets\Less\Lib\Bootstrap\grid.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\background-variant.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\border-radius.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\center-block.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\clearfix.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\gradients.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\grid-framework.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\grid.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\hide-text.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\image.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\labels.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\opacity.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\reset-filter.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\resize.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\responsive-visibility.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\size.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\tab-focus.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\text-emphasis.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\text-overflow.less" />
<Content Include="Assets\Less\Lib\Bootstrap\mixins\vendor-prefixes.less" />
<Content Include="Assets\Less\Lib\Bootstrap\scaffolding.less" />
<Content Include="Assets\Less\Lib\Bootstrap\utilities.less" />
<Content Include="Assets\Less\Lib\Bootstrap\variables.less" />
<Content Include="Assets\Less\LayoutEditor\Element.less" />
<Content Include="Assets\Less\LayoutEditor\Container.less" />
<Content Include="Assets\Less\LayoutEditor\Variables.less" />
<Content Include="Assets\Less\LayoutEditor\Canvas.less" />
<Content Include="Assets\Less\LayoutEditor\Content.less" />
<Content Include="Assets\Less\LayoutEditor\Popup.less" />
<Content Include="Assets\Less\LayoutEditor\Row.less" />
<Content Include="Assets\Less\LayoutEditor\Column.less" />
<Content Include="Views\Elements\Html.Design.cshtml" />
<Content Include="Views\Elements\ContentItem.Design.cshtml" />
<Content Include="Views\Elements\Markdown.Design.cshtml" />
@ -255,10 +255,10 @@
<Content Include="Views\Elements\Canvas.cshtml" />
<Content Include="Views\Element.cshtml" />
<Content Include="Views\Element.Design.cshtml" />
<Content Include="Styles\LayoutEditor\Reset.less" />
<Content Include="Assets\Less\LayoutEditor\Reset.less" />
<Content Include="Views\ElementBrowser.Tabs.cshtml" />
<Content Include="Styles\LayoutEditor\Editor.less" />
<Content Include="Styles\LayoutEditor\Toolbox.less" />
<Content Include="Assets\Less\LayoutEditor\Editor.less" />
<Content Include="Assets\Less\LayoutEditor\Toolbox.less" />
<Content Include="Views\LayoutEditor.Template.Canvas.cshtml" />
<Content Include="Views\LayoutEditor.Template.Column.cshtml" />
<Content Include="Views\LayoutEditor.Template.Content.cshtml" />
@ -524,25 +524,22 @@
<Content Include="Views\Elements\Projection.Design.cshtml" />
</ItemGroup>
<ItemGroup>
<None Include="package.json%24" />
<Content Include="Assets\Less\Lib\FontAwesome\animated.less" />
<Content Include="Assets\Less\Lib\FontAwesome\bordered-pulled.less" />
<Content Include="Assets\Less\Lib\FontAwesome\core.less" />
<Content Include="Assets\Less\Lib\FontAwesome\fixed-width.less" />
<Content Include="Assets\Less\Lib\FontAwesome\font-awesome.less" />
<Content Include="Assets\Less\Lib\FontAwesome\icons.less" />
<Content Include="Assets\Less\Lib\FontAwesome\larger.less" />
<Content Include="Assets\Less\Lib\FontAwesome\list.less" />
<Content Include="Assets\Less\Lib\FontAwesome\mixins.less" />
<Content Include="Assets\Less\Lib\FontAwesome\path.less" />
<Content Include="Assets\Less\Lib\FontAwesome\rotated-flipped.less" />
<Content Include="Assets\Less\Lib\FontAwesome\stacked.less" />
<Content Include="Assets\Less\Lib\FontAwesome\variables.less" />
</ItemGroup>
<ItemGroup>
<Content Include="Styles\Lib\FontAwesome\animated.less" />
<Content Include="Styles\Lib\FontAwesome\bordered-pulled.less" />
<Content Include="Styles\Lib\FontAwesome\core.less" />
<Content Include="Styles\Lib\FontAwesome\fixed-width.less" />
<Content Include="Styles\Lib\FontAwesome\font-awesome.less" />
<Content Include="Styles\Lib\FontAwesome\icons.less" />
<Content Include="Styles\Lib\FontAwesome\larger.less" />
<Content Include="Styles\Lib\FontAwesome\list.less" />
<Content Include="Styles\Lib\FontAwesome\mixins.less" />
<Content Include="Styles\Lib\FontAwesome\path.less" />
<Content Include="Styles\Lib\FontAwesome\rotated-flipped.less" />
<Content Include="Styles\Lib\FontAwesome\stacked.less" />
<Content Include="Styles\Lib\FontAwesome\variables.less" />
</ItemGroup>
<ItemGroup>
<Content Include="Styles\Lib\FontAwesome\Fonts\fontawesome-webfont.woff2" />
<Content Include="Styles\Fonts\fontawesome-webfont.woff2" />
</ItemGroup>
<ItemGroup>
<Content Include="Views\Elements\Break.cshtml" />
@ -560,6 +557,9 @@
<ItemGroup>
<Content Include="Views\Elements\Heading.Design.cshtml" />
</ItemGroup>
<ItemGroup>
<Folder Include="Assets\CSS\" />
</ItemGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,159 +0,0 @@
/// <binding BeforeBuild='build' ProjectOpened='watch' />
/*
* This gulpfile provides an automated build pipeline for client-side assets in this project.
*
* To use this file you will need to:
* - Install Node.js on your machine
* - Run "npm install" in this folder (either via command line or a Visual Studio extension) to install dependency packages from package.json
*
* NOTE: If you install the Task Runner Explorer extension in Visual Studio the tasks in this
* gulpfile will execute automatically on VS events for a more integrated/automated workflow. That's the
* purpose of the <binding> comment element at the top.
*/
var gulp = require("gulp"),
newer = require("gulp-newer"),
plumber = require("gulp-plumber"),
sourcemaps = require("gulp-sourcemaps"),
less = require("gulp-less"),
autoprefixer = require("gulp-autoprefixer"),
minify = require("gulp-minify-css"),
uglify = require("gulp-uglify"),
rename = require("gulp-rename"),
concat = require("gulp-concat"),
merge = require("merge-stream");
/*
* General tasks.
*/
gulp.task("build", ["buildLess", "buildJs"], function () {
});
gulp.task("watch", ["watchLess", "watchJs"], function () {
});
/*
* LESS/CSS compilation tasks.
*/
var srcLessLib = [
"Styles/Lib/Bootstrap/bootstrap.less",
"Styles/Lib/FontAwesome/font-awesome.less"
];
var srcLessLayoutEditor = [
"Styles/LayoutEditor/Editor.less",
"Styles/LayoutEditor/Element.less",
"Styles/LayoutEditor/Container.less",
"Styles/LayoutEditor/Canvas.less",
"Styles/LayoutEditor/Row.less",
"Styles/LayoutEditor/Column.less",
"Styles/LayoutEditor/Content.less",
"Styles/LayoutEditor/Toolbox.less",
"Styles/LayoutEditor/Popup.less"
];
gulp.task("buildLess", function () {
return merge([
lessPipelineFrom(gulp.src(srcLessLib), "Styles", "Lib.css"),
lessPipelineFrom(gulp.src(srcLessLayoutEditor), "Styles", "LayoutEditor.css")
]);
});
gulp.task("watchLess", function () {
var watcher = gulp.watch([srcLessLib, srcLessLayoutEditor], ["buildLess"]);
watcher.on("change", function (event) {
console.log("LESS file " + event.path + " was " + event.type + ", running the 'buildLess' task...");
});
});
function lessPipelineFrom(inputStream, outputFolder, outputFile) {
return inputStream
.pipe(newer(outputFolder + "/" + outputFile))
.pipe(plumber())
.pipe(sourcemaps.init())
.pipe(less())
.pipe(concat(outputFile))
.pipe(autoprefixer({ browsers: ["last 2 versions"] }))
.pipe(sourcemaps.write())
.pipe(gulp.dest(outputFolder))
.pipe(minify())
.pipe(rename({
suffix: ".min"
}))
.pipe(gulp.dest(outputFolder));
}
/*
* JavaScript compilation tasks.
*/
var srcJsLib = [
"Scripts/Lib/underscore.js",
"Scripts/Lib/angular.js",
"Scripts/Lib/angular-sanitize.js",
"Scripts/Lib/angular-resource.js",
"Scripts/Lib/sortable.js"
];
var srcJsLayoutEditor = [
"Scripts/LayoutEditor/Module.js",
"Scripts/LayoutEditor/Services/Clipboard.js",
"Scripts/LayoutEditor/Services/ScopeConfigurator.js",
"Scripts/LayoutEditor/Directives/Editor.js",
"Scripts/LayoutEditor/Directives/Canvas.js",
"Scripts/LayoutEditor/Directives/Child.js",
"Scripts/LayoutEditor/Directives/Column.js",
"Scripts/LayoutEditor/Directives/Content.js",
"Scripts/LayoutEditor/Directives/Html.js",
"Scripts/LayoutEditor/Directives/Grid.js",
"Scripts/LayoutEditor/Directives/Row.js",
"Scripts/LayoutEditor/Directives/Popup.js",
"Scripts/LayoutEditor/Directives/Toolbox.js",
"Scripts/LayoutEditor/Directives/ToolboxGroup.js"
];
var srcJsModels = [
"Scripts/Models/Helpers.js",
"Scripts/Models/Editor.js",
"Scripts/Models/Element.js",
"Scripts/Models/Container.js",
"Scripts/Models/Canvas.js",
"Scripts/Models/Grid.js",
"Scripts/Models/Row.js",
"Scripts/Models/Column.js",
"Scripts/Models/Content.js",
"Scripts/Models/Html.js"
];
gulp.task("buildJs", function () {
return merge([
jsPipelineFrom(gulp.src(srcJsLib), "Scripts", "Lib.js"),
jsPipelineFrom(gulp.src(srcJsLayoutEditor), "Scripts", "LayoutEditor.js"),
jsPipelineFrom(gulp.src(srcJsModels), "Scripts", "Models.js")
]);
});
gulp.task("watchJs", function () {
var watcher = gulp.watch([srcJsLib, srcJsLayoutEditor, srcJsModels], ["buildJs"]);
watcher.on("change", function (event) {
console.log("JavaScript file " + event.path + " was " + event.type + ", running the 'buildJs' task...");
});
});
function jsPipelineFrom(inputStream, outputFolder, outputFile) {
return inputStream
.pipe(newer(outputFolder + "/" + outputFile))
.pipe(plumber())
.pipe(sourcemaps.init())
.pipe(concat(outputFile))
.pipe(sourcemaps.write())
.pipe(gulp.dest(outputFolder))
.pipe(uglify())
.pipe(rename({
suffix: ".min"
}))
.pipe(gulp.dest(outputFolder));
}

View File

@ -1,17 +0,0 @@
{
"devDependencies": {
"gulp": "^3.8.11",
"gulp-newer": "^0.5.0",
"gulp-plumber": "^1.0.0",
"gulp-sourcemaps": "^1.5.2",
"gulp-less": "^3.0.3",
"gulp-autoprefixer": "^2.2.0",
"gulp-minify-css": "^1.1.1",
"gulp-uglify": "^1.2.0",
"gulp-rename": "^1.2.2",
"gulp-concat": "^2.5.2",
"merge-stream": "^0.1.7",
"del": "^1.1.1"
},
"dependencies": { }
}