mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-11-28 14:03:48 +03:00
17dfc726b9
refs TryGhost/Ghost#7429, requires TryGhost/Ghost#7437 Added Ghost-Editor (based on mobiled doc). ------------------- - Added mobiledoc editor - Fixed problems with workflow and auto saves - Integrated basic toolbar - Removed all editor related tests, everything bar the most basic acceptance tests will be in the ghost-editor repository. - Commented out tests which relied on Ember Helpers that are not compatable with mobile-doc, workarounds are inbound shortly. This is the first integration of ghost-editor. It's styled enough to work, however it is not anywhere approaching something that looks remotely like what the finished thing will be. Early ALPHA, development build. Tread cautiously.
148 lines
5.0 KiB
JavaScript
148 lines
5.0 KiB
JavaScript
/* jscs:disable */
|
|
/* global require, module */
|
|
|
|
var EmberApp = require('ember-cli/lib/broccoli/ember-app'),
|
|
concat = require('broccoli-concat'),
|
|
mergeTrees = require('broccoli-merge-trees'),
|
|
uglify = require('broccoli-uglify-js'),
|
|
cleanCSS = require('broccoli-clean-css'),
|
|
environment = EmberApp.env(),
|
|
isProduction = environment === 'production',
|
|
mythCompress = isProduction || environment === 'test',
|
|
disabled = {enabled: false},
|
|
assetLocation, codemirrorAssets;
|
|
|
|
assetLocation = function (fileName) {
|
|
if (isProduction) {
|
|
fileName = fileName.replace('.', '.min.');
|
|
}
|
|
return '/assets/' + fileName;
|
|
};
|
|
|
|
codemirrorAssets = function () {
|
|
var codemirrorFiles = [
|
|
'lib/codemirror.css',
|
|
'theme/xq-light.css',
|
|
'lib/codemirror.js',
|
|
'mode/htmlmixed/htmlmixed.js',
|
|
'mode/xml/xml.js',
|
|
'mode/css/css.js',
|
|
'mode/javascript/javascript.js'
|
|
];
|
|
|
|
if (environment === 'test') {
|
|
return {import: codemirrorFiles};
|
|
}
|
|
|
|
return {
|
|
public: {
|
|
include: codemirrorFiles,
|
|
destDir: '/',
|
|
processTree: function (tree) {
|
|
var jsTree = concat(tree, {
|
|
outputFile: 'assets/codemirror/codemirror.js',
|
|
headerFiles: ['lib/codemirror.js'],
|
|
inputFiles: ['mode/**/*']
|
|
});
|
|
|
|
var cssTree = concat(tree, {
|
|
outputFile: 'assets/codemirror/codemirror.css',
|
|
inputFiles: ['**/*.css']
|
|
});
|
|
|
|
if (isProduction) {
|
|
jsTree = uglify(jsTree);
|
|
cssTree = cleanCSS(cssTree);
|
|
}
|
|
|
|
return mergeTrees([jsTree, cssTree]);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
module.exports = function (defaults) {
|
|
var app = new EmberApp(defaults, {
|
|
babel: {
|
|
optional: ['es6.spec.symbols'],
|
|
includePolyfill: true
|
|
},
|
|
outputPaths: {
|
|
app: {
|
|
js: assetLocation('ghost.js')
|
|
},
|
|
vendor: {
|
|
js: assetLocation('vendor.js'),
|
|
css: assetLocation('vendor.css')
|
|
}
|
|
},
|
|
mythOptions: {
|
|
source: './app/styles/app.css',
|
|
inputFile: 'app.css',
|
|
browsers: 'last 2 versions',
|
|
// @TODO: enable sourcemaps for development without including them in the release
|
|
sourcemap: false,
|
|
compress: mythCompress,
|
|
outputFile: isProduction ? 'ghost.min.css' : 'ghost.css'
|
|
},
|
|
hinting: false,
|
|
fingerprint: disabled,
|
|
nodeAssets: {
|
|
'blueimp-md5': {
|
|
import: ['js/md5.js']
|
|
},
|
|
codemirror: codemirrorAssets(),
|
|
'jquery-deparam': {
|
|
enabled: EmberApp.env() === 'test',
|
|
import: ['jquery-deparam.js']
|
|
},
|
|
moment: {
|
|
import: ['moment.js']
|
|
},
|
|
'moment-timezone': {
|
|
import: ['builds/moment-timezone-with-data.js']
|
|
},
|
|
'password-generator': {
|
|
import: ['lib/password-generator.js']
|
|
}
|
|
},
|
|
'ember-cli-selectize': {
|
|
theme: false
|
|
}
|
|
});
|
|
|
|
// 'dem Scripts
|
|
app.import('bower_components/validator-js/validator.js');
|
|
app.import('bower_components/rangyinputs/rangyinputs-jquery-src.js');
|
|
app.import('bower_components/showdown-ghost/src/showdown.js');
|
|
app.import('bower_components/showdown-ghost/src/extensions/ghostgfm.js');
|
|
app.import('bower_components/showdown-ghost/src/extensions/ghostimagepreview.js');
|
|
app.import('bower_components/showdown-ghost/src/extensions/footnotes.js');
|
|
app.import('bower_components/showdown-ghost/src/extensions/highlight.js');
|
|
app.import('bower_components/keymaster/keymaster.js');
|
|
app.import('bower_components/devicejs/lib/device.js');
|
|
|
|
// jquery-ui partial build
|
|
app.import('bower_components/jquery-ui/ui/core.js');
|
|
app.import('bower_components/jquery-ui/ui/widget.js');
|
|
app.import('bower_components/jquery-ui/ui/mouse.js');
|
|
app.import('bower_components/jquery-ui/ui/draggable.js');
|
|
app.import('bower_components/jquery-ui/ui/droppable.js');
|
|
app.import('bower_components/jquery-ui/ui/sortable.js');
|
|
|
|
app.import('bower_components/jquery-file-upload/js/jquery.fileupload.js');
|
|
app.import('bower_components/blueimp-load-image/js/load-image.all.min.js');
|
|
app.import('bower_components/jquery-file-upload/js/jquery.fileupload-process.js');
|
|
app.import('bower_components/jquery-file-upload/js/jquery.fileupload-image.js');
|
|
app.import('bower_components/google-caja/html-css-sanitizer-bundle.js');
|
|
app.import('bower_components/jqueryui-touch-punch/jquery.ui.touch-punch.js');
|
|
|
|
|
|
|
|
if (app.env === 'test') {
|
|
app.import(app.bowerDirectory + '/jquery.simulate.drag-sortable/jquery.simulate.drag-sortable.js', {type: 'test'});
|
|
}
|
|
|
|
return app.toTree();
|
|
};
|