mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-27 04:43:12 +03:00
Merge branch 'master' into stable-db-version
This commit is contained in:
commit
8cea12e728
2
.gitignore
vendored
2
.gitignore
vendored
@ -37,7 +37,7 @@ projectFilesBackup
|
|||||||
/core/server/data/export/exported*
|
/core/server/data/export/exported*
|
||||||
/docs
|
/docs
|
||||||
/_site
|
/_site
|
||||||
/content/images/*
|
/content/images/**/*
|
||||||
|
|
||||||
# Changelog, which is autogenerated, not committed
|
# Changelog, which is autogenerated, not committed
|
||||||
CHANGELOG.md
|
CHANGELOG.md
|
||||||
|
@ -6,7 +6,6 @@ var path = require('path'),
|
|||||||
spawn = require("child_process").spawn,
|
spawn = require("child_process").spawn,
|
||||||
buildDirectory = path.resolve(process.cwd(), '.build'),
|
buildDirectory = path.resolve(process.cwd(), '.build'),
|
||||||
distDirectory = path.resolve(process.cwd(), '.dist'),
|
distDirectory = path.resolve(process.cwd(), '.dist'),
|
||||||
config = require('./config'),
|
|
||||||
_ = require('underscore'),
|
_ = require('underscore'),
|
||||||
configureGrunt = function (grunt) {
|
configureGrunt = function (grunt) {
|
||||||
|
|
||||||
@ -110,9 +109,7 @@ var path = require('path'),
|
|||||||
// allow unused parameters
|
// allow unused parameters
|
||||||
unparam: true,
|
unparam: true,
|
||||||
// don't require use strict pragma
|
// don't require use strict pragma
|
||||||
sloppy: true,
|
sloppy: true
|
||||||
// allow bitwise operators
|
|
||||||
bitwise: true
|
|
||||||
},
|
},
|
||||||
files: {
|
files: {
|
||||||
src: [
|
src: [
|
||||||
@ -487,6 +484,7 @@ var path = require('path'),
|
|||||||
// Using this janky looking integerising-method
|
// Using this janky looking integerising-method
|
||||||
// because it's faster and doesn't result in NaN, which
|
// because it's faster and doesn't result in NaN, which
|
||||||
// breaks sorting
|
// breaks sorting
|
||||||
|
/*jslint bitwise: true */
|
||||||
return (+b[1] | 0) - (+a[1] | 0);
|
return (+b[1] | 0) - (+a[1] | 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -501,7 +499,7 @@ var path = require('path'),
|
|||||||
.map(function (tag) {
|
.map(function (tag) {
|
||||||
return {
|
return {
|
||||||
"tag": tag.split(/tags\//).pop().trim(),
|
"tag": tag.split(/tags\//).pop().trim(),
|
||||||
"ref": tag.split(/\s+/).shift().trim(),
|
"ref": tag.split(/\s+/).shift().trim()
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
.sort(sortTags);
|
.sort(sortTags);
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
#Content
|
|
||||||
|
|
||||||
This section of the repo is the area that a normal user is allowed to add and change stuff. This is where their themes, plugins and images will live.
|
|
||||||
|
|
||||||
By default for an install:
|
|
||||||
|
|
||||||
* the themes directory will contain Casper
|
|
||||||
* the plugins directory will be empty
|
|
||||||
* the images directory will be empty
|
|
||||||
|
|
||||||
Currently the plugins and images directory contain some stuff for testing.
|
|
||||||
|
|
||||||
By default, Ghost will support very basic image uploads. It will be expected and encouraged for users to connect to a 3rd party service for improved media support and a CDN. Much like comments, we don't see supporting advanced file uploads, having a media library or being a CDN as core competencies - there are already plenty of people out there doing this much better than we can.
|
|
3
content/images/README.md
Normal file
3
content/images/README.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Content / Images
|
||||||
|
|
||||||
|
If using the standard file storage, Ghost will upload images to this directory
|
@ -1,11 +0,0 @@
|
|||||||
# Core
|
|
||||||
|
|
||||||
Core contains the bread and butter of ghost. It is currently divided up into:
|
|
||||||
|
|
||||||
* **client** - the assets, helpers, models, view and templates for rendering the admin panel backbone app
|
|
||||||
* **server** - the controllers & helpers for driving the server side app along with the model, api, and data
|
|
||||||
* **shared** - just contains lang for now, although it's not shared yet, more stuff should go here soon like handlebars helpers
|
|
||||||
* **test** - contains unit tests and a set of html prototypes of the admin UI. Really, this folder should reflect all of core
|
|
||||||
* **ghost.js** - currently both the glue that binds everything together and what gives us the API for registering themes and plugins. The initTheme function is a bit of a hack which lets us serve different views & static content up for the admin & blog
|
|
||||||
|
|
||||||
This structure is by no means final and recommendations are more than welcome.
|
|
@ -190,6 +190,12 @@ form {
|
|||||||
background: #f8f8f8;
|
background: #f8f8f8;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.large {
|
||||||
|
padding: 1em 1.8em;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 16px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is the default button style
|
// This is the default button style
|
||||||
|
13
core/shared/vendor/showdown/extensions/github.js
vendored
13
core/shared/vendor/showdown/extensions/github.js
vendored
@ -33,24 +33,11 @@
|
|||||||
return "{gfm-js-extract-pre-" + hash + "}";
|
return "{gfm-js-extract-pre-" + hash + "}";
|
||||||
}, 'm');
|
}, 'm');
|
||||||
|
|
||||||
// Replace showdown's implementation of bold
|
|
||||||
// <strong> must go first:
|
|
||||||
text = text.replace(/__([\s\S]+?)__(?!_)|\*\*([\s\S]+?)\*\*(?!\*)/g, function (match, m1, m2) {
|
|
||||||
return m1 ? "<strong>" + m1 + "</strong>" : "<strong>" + m2 + "</strong>";
|
|
||||||
});
|
|
||||||
|
|
||||||
//prevent foo_bar and foo_bar_baz from ending up with an italic word in the middle
|
//prevent foo_bar and foo_bar_baz from ending up with an italic word in the middle
|
||||||
text = text.replace(/(^(?! {4}|\t)\w+_\w+_\w[\w_]*)/gm, function (x) {
|
text = text.replace(/(^(?! {4}|\t)\w+_\w+_\w[\w_]*)/gm, function (x) {
|
||||||
return x.replace(/_/gm, '\\_');
|
return x.replace(/_/gm, '\\_');
|
||||||
});
|
});
|
||||||
|
|
||||||
// Replace showdown's implementation of emphasis
|
|
||||||
// <em>
|
|
||||||
// requires a negative lookbehind for \n before the final * to prevent breaking lists
|
|
||||||
text = text.replace(/\b(\\)?_((?:__|[\s\S])+?)_\b|\*((?:\*\*|[\s\S])+?)(\n)?\*(?!\*)/g, function (match, escaped, m1, m2, newline) {
|
|
||||||
return escaped || newline ? match : m1 ? "<em>" + m1 + "</em>" : "<em>" + m2 + "</em>";
|
|
||||||
});
|
|
||||||
|
|
||||||
// in very clear cases, let newlines become <br /> tags
|
// in very clear cases, let newlines become <br /> tags
|
||||||
text = text.replace(/^[\w\<][^\n]*\n+/gm, function (x) {
|
text = text.replace(/^[\w\<][^\n]*\n+/gm, function (x) {
|
||||||
return x.match(/\n{2}/) ? x : x.trim() + " \n";
|
return x.match(/\n{2}/) ? x : x.trim() + " \n";
|
||||||
|
Loading…
Reference in New Issue
Block a user