mirror of
https://github.com/GenZmeY/casper-i18n.git
synced 2025-07-13 09:16:06 +00:00
Compare commits
41 Commits
Author | SHA1 | Date | |
---|---|---|---|
6886798b60 | |||
42c26629bf | |||
89a12765be | |||
fa54c4713f | |||
0494b48ad0 | |||
e6cb772b2d | |||
2dad5af417 | |||
43b8f3d11a | |||
21d097d530 | |||
ec296edfa0 | |||
ff43de1c63 | |||
0b17a6ac06 | |||
64fdc798d9 | |||
88552e5d18 | |||
93c4ea58ed | |||
87abdc2c31 | |||
dc05ff2f49 | |||
50c53f4263 | |||
2a5aac2719 | |||
b4d0219d4e | |||
85fed4f083 | |||
aac62daaca | |||
fef2307d6d | |||
de8b83738e | |||
4a2e9c9b20 | |||
070bed3f40 | |||
7f8990c0d8 | |||
23bd9cc1d5 | |||
8e5c1b22dd | |||
c4fb156508 | |||
91ffa335de | |||
0d8f4471d9 | |||
4464d5809b | |||
37c0f22b09 | |||
7706045616 | |||
51b93e389c | |||
b1ce464ea3 | |||
8729dafcf5 | |||
406ef78109 | |||
2bf64cbffc | |||
a212518827 |
4
.gitignore
vendored
4
.gitignore
vendored
@ -22,3 +22,7 @@ projectFilesBackup
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
dist/
|
dist/
|
||||||
|
|
||||||
|
config.json
|
||||||
|
changelog.md
|
||||||
|
changelog.md.bk
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
|
dist: xenial
|
||||||
language: node_js
|
language: node_js
|
||||||
sudo: false
|
|
||||||
node_js:
|
node_js:
|
||||||
- "10"
|
- 10
|
||||||
|
|
||||||
|
cache: yarn
|
||||||
|
|
||||||
|
# Don't run builds for renovate PRs
|
||||||
|
if: NOT head_branch =~ ^renovate
|
||||||
|
|
||||||
|
|
||||||
|
9
SECURITY.md
Normal file
9
SECURITY.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Reporting Security Vulnerabilities
|
||||||
|
|
||||||
|
Potential security vulnerabilities can be reported directly us at `security@ghost.org`. The Ghost Security Team communicates privately and works in a secured, isolated repository for tracking, testing, and resolving security-related issues.
|
||||||
|
|
||||||
|
The full, up-to-date details of our security policy and procedure can always be found in our documentation:
|
||||||
|
|
||||||
|
https://docs.ghost.org/security/
|
||||||
|
|
||||||
|
Please refer to this before emailing us. Thanks for helping make Ghost safe for everyone 🙏.
|
@ -1,2 +1,2 @@
|
|||||||
:root{--blue:#3eb0ef;--green:#a4d037;--purple:#ad26b4;--yellow:#fecd35;--red:#f05230;--darkgrey:#15171a;--midgrey:#738a94;--lightgrey:#c5d2d9;--whitegrey:#e5eff5;--pink:#fa3a57;--brown:#a3821a}a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}img{max-width:100%}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn,em,i{font-style:italic}h1{margin:.67em 0;font-size:2em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}mark{background-color:#fdffb6}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;color:inherit;font:inherit}button{overflow:visible;border:none}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input:focus{outline:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{padding:0;border:0}textarea{overflow:auto}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}html{overflow-y:scroll;font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body,html{overflow-x:hidden}body{color:#3c484e;color:color(var(--midgrey) l(-25%));font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:1.5rem;line-height:1.6em;font-weight:400;font-style:normal;letter-spacing:0;text-rendering:optimizeLegibility;background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga" on}::selection{text-shadow:none;background:#cbeafb;background:color(var(--blue) lightness(30%))}hr{position:relative;display:block;width:100%;margin:2.5em 0 3.5em;padding:0;height:1px;border:0;border-top:1px solid #e3e9ed;border-top:1px solid color(var(--lightgrey) l(10%))}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{margin:0;padding:0;border:0}textarea{resize:vertical}blockquote,dl,ol,p,ul{margin:0 0 1.5em}ol,ul{padding-left:1.3em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0 1em}ul{list-style:disc}ol{list-style:decimal}ol,ul{max-width:100%}li{margin:.5em 0;padding-left:.3em;line-height:1.6em}dt{float:left;margin:0 20px 0 0;width:120px;color:#15171a;color:var(--darkgrey);font-weight:500;text-align:right}dd{margin:0 0 5px;text-align:left}blockquote{margin:1.5em 0;padding:0 1.6em;border-left:.5em solid #e5eff5;border-left:.5em solid var(--whitegrey)}blockquote p{margin:.8em 0;font-size:1.2em;font-weight:300}blockquote small{display:inline-block;margin:.8em 0 .8em 1.5em;font-size:.9em;opacity:.8}blockquote small:before{content:"\2014 \00A0"}blockquote cite{font-weight:700}blockquote cite a{font-weight:400}a{color:#26a8ed;color:color(var(--blue) l(-5%));text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.15;font-weight:700;text-rendering:optimizeLegibility}h1{margin:0 0 .5em;font-size:5rem;font-weight:700}@media (max-width:500px){h1{font-size:2.2rem}}h2{margin:1.5em 0 .5em;font-size:2rem}@media (max-width:500px){h2{font-size:1.8rem}}h3{margin:1.5em 0 .5em;font-size:1.8rem;font-weight:500}@media (max-width:500px){h3{font-size:1.7rem}}h4{margin:1.5em 0 .5em;font-size:1.6rem;font-weight:500}h5,h6{margin:1.5em 0 .5em;font-size:1.4rem;font-weight:500}
|
a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}img{max-width:100%}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn,em,i{font-style:italic}h1{margin:.67em 0;font-size:2em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}mark{background-color:#fdffb6}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;color:inherit;font:inherit}button{overflow:visible;border:none}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input:focus{outline:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{padding:0;border:0}textarea{overflow:auto}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}html{overflow-y:scroll;font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body,html{overflow-x:hidden}body{color:#3c484e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:1.5rem;line-height:1.6em;font-weight:400;font-style:normal;letter-spacing:0;text-rendering:optimizeLegibility;background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga" on}::-moz-selection{text-shadow:none;background:#cbeafb}::selection{text-shadow:none;background:#cbeafb}hr{position:relative;display:block;width:100%;margin:2.5em 0 3.5em;padding:0;height:1px;border:0;border-top:1px solid #e3e9ed}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{margin:0;padding:0;border:0}textarea{resize:vertical}blockquote,dl,ol,p,ul{margin:0 0 1.5em}ol,ul{padding-left:1.3em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0 1em}ul{list-style:disc}ol{list-style:decimal}ol,ul{max-width:100%}li{margin:.5em 0;padding-left:.3em;line-height:1.6em}dt{float:left;margin:0 20px 0 0;width:120px;color:#15171a;font-weight:500;text-align:right}dd{margin:0 0 5px;text-align:left}blockquote{margin:1.5em 0;padding:0 1.6em;border-left:.5em solid #e5eff5}blockquote p{margin:.8em 0;font-size:1.2em;font-weight:300}blockquote small{display:inline-block;margin:.8em 0 .8em 1.5em;font-size:.9em;opacity:.8}blockquote small:before{content:"\2014 \00A0"}blockquote cite{font-weight:700}blockquote cite a{font-weight:400}a{color:#26a8ed;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.15;font-weight:700;text-rendering:optimizeLegibility}h1{margin:0 0 .5em;font-size:5rem;font-weight:700}@media (max-width:500px){h1{font-size:2.2rem}}h2{margin:1.5em 0 .5em;font-size:2rem}@media (max-width:500px){h2{font-size:1.8rem}}h3{margin:1.5em 0 .5em;font-size:1.8rem;font-weight:500}@media (max-width:500px){h3{font-size:1.7rem}}h4{margin:1.5em 0 .5em;font-size:1.6rem;font-weight:500}h5,h6{margin:1.5em 0 .5em;font-size:1.4rem;font-weight:500}
|
||||||
/*# sourceMappingURL=global.css.map */
|
/*# sourceMappingURL=global.css.map */
|
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
@ -1936,6 +1936,15 @@ Usage (In Ghost editor):
|
|||||||
margin: -2.25em 0 3em;
|
margin: -2.25em 0 3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* keep existing <pre> styles for code cards with captions */
|
||||||
|
.kg-code-card {
|
||||||
|
min-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kg-code-card pre {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* 8. Author Template
|
/* 8. Author Template
|
||||||
/* ---------------------------------------------------------- */
|
/* ---------------------------------------------------------- */
|
||||||
|
|
||||||
|
6
config.example.json
Normal file
6
config.example.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"github": {
|
||||||
|
"username": "<username>",
|
||||||
|
"token": "<gh-personal-access-token>"
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="{{lang}}">
|
<html lang="{{@site.lang}}">
|
||||||
<head>
|
<head>
|
||||||
|
|
||||||
{{!-- Document Settings --}}
|
{{!-- Document Settings --}}
|
||||||
|
@ -42,16 +42,16 @@ You'll notice that we *don't* use any JavsScript, or ghost_head / ghost_foot in
|
|||||||
<section class="error-stack">
|
<section class="error-stack">
|
||||||
<h3>Theme errors</h3>
|
<h3>Theme errors</h3>
|
||||||
<ul class="error-stack-list">
|
<ul class="error-stack-list">
|
||||||
{{#each errorDetails}}
|
{{#foreach errorDetails}}
|
||||||
<li>
|
<li>
|
||||||
<em class="error-stack-function">{{{rule}}}</em>
|
<em class="error-stack-function">{{{rule}}}</em>
|
||||||
|
|
||||||
{{#each failures}}
|
{{#foreach failures}}
|
||||||
<p><span class="error-stack-file">Ref: {{ref}}</span></p>
|
<p><span class="error-stack-file">Ref: {{ref}}</span></p>
|
||||||
<p><span class="error-stack-file">Message: {{message}}</span></p>
|
<p><span class="error-stack-file">Message: {{message}}</span></p>
|
||||||
{{/each}}
|
{{/foreach}}
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/foreach}}
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
161
gulpfile.js
161
gulpfile.js
@ -1,19 +1,19 @@
|
|||||||
const {series, watch, src, dest} = require('gulp');
|
const {series, watch, src, dest, parallel} = require('gulp');
|
||||||
const pump = require('pump');
|
const pump = require('pump');
|
||||||
|
|
||||||
// gulp plugins and utils
|
// gulp plugins and utils
|
||||||
var livereload = require('gulp-livereload');
|
const livereload = require('gulp-livereload');
|
||||||
var postcss = require('gulp-postcss');
|
const postcss = require('gulp-postcss');
|
||||||
var zip = require('gulp-zip');
|
const zip = require('gulp-zip');
|
||||||
var uglify = require('gulp-uglify');
|
const uglify = require('gulp-uglify');
|
||||||
var beeper = require('beeper');
|
const beeper = require('beeper');
|
||||||
|
|
||||||
// postcss plugins
|
// postcss plugins
|
||||||
var autoprefixer = require('autoprefixer');
|
const autoprefixer = require('autoprefixer');
|
||||||
var colorFunction = require('postcss-color-function');
|
const colorFunction = require('postcss-color-function');
|
||||||
var cssnano = require('cssnano');
|
const cssnano = require('cssnano');
|
||||||
var customProperties = require('postcss-custom-properties');
|
const customProperties = require('postcss-custom-properties');
|
||||||
var easyimport = require('postcss-easy-import');
|
const easyimport = require('postcss-easy-import');
|
||||||
|
|
||||||
function serve(done) {
|
function serve(done) {
|
||||||
livereload.listen();
|
livereload.listen();
|
||||||
@ -29,10 +29,17 @@ const handleError = (done) => {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function hbs(done) {
|
||||||
|
pump([
|
||||||
|
src(['*.hbs', 'partials/**/*.hbs', '!node_modules/**/*.hbs']),
|
||||||
|
livereload()
|
||||||
|
], handleError(done));
|
||||||
|
}
|
||||||
|
|
||||||
function css(done) {
|
function css(done) {
|
||||||
var processors = [
|
const processors = [
|
||||||
easyimport,
|
easyimport,
|
||||||
customProperties,
|
customProperties({preserve: false}),
|
||||||
colorFunction(),
|
colorFunction(),
|
||||||
autoprefixer({browsers: ['last 2 versions']}),
|
autoprefixer({browsers: ['last 2 versions']}),
|
||||||
cssnano()
|
cssnano()
|
||||||
@ -56,9 +63,9 @@ function js(done) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function zipper(done) {
|
function zipper(done) {
|
||||||
var targetDir = 'dist/';
|
const targetDir = 'dist/';
|
||||||
var themeName = require('./package.json').name;
|
const themeName = require('./package.json').name;
|
||||||
var filename = themeName + '.zip';
|
const filename = themeName + '.zip';
|
||||||
|
|
||||||
pump([
|
pump([
|
||||||
src([
|
src([
|
||||||
@ -71,10 +78,130 @@ function zipper(done) {
|
|||||||
], handleError(done));
|
], handleError(done));
|
||||||
}
|
}
|
||||||
|
|
||||||
const watcher = () => watch('assets/css/**', css);
|
const cssWatcher = () => watch('assets/css/**', css);
|
||||||
|
const hbsWatcher = () => watch(['*.hbs', 'partials/**/*.hbs', '!node_modules/**/*.hbs'], hbs);
|
||||||
|
const watcher = parallel(cssWatcher, hbsWatcher);
|
||||||
const build = series(css, js);
|
const build = series(css, js);
|
||||||
const dev = series(build, serve, watcher);
|
const dev = series(build, serve, watcher);
|
||||||
|
|
||||||
exports.build = build;
|
exports.build = build;
|
||||||
exports.zip = series(build, zipper);
|
exports.zip = series(build, zipper);
|
||||||
exports.default = dev;
|
exports.default = dev;
|
||||||
|
|
||||||
|
// release imports
|
||||||
|
const path = require('path');
|
||||||
|
const releaseUtils = require('@tryghost/release-utils');
|
||||||
|
|
||||||
|
let config;
|
||||||
|
try {
|
||||||
|
config = require('./config');
|
||||||
|
} catch (err) {
|
||||||
|
config = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
const REPO = 'TryGhost/Casper';
|
||||||
|
const USER_AGENT = 'Casper';
|
||||||
|
const CHANGELOG_PATH = path.join(process.cwd(), '.', 'changelog.md');
|
||||||
|
|
||||||
|
const changelog = ({previousVersion}) => {
|
||||||
|
const changelog = new releaseUtils.Changelog({
|
||||||
|
changelogPath: CHANGELOG_PATH,
|
||||||
|
folder: path.join(process.cwd(), '.')
|
||||||
|
});
|
||||||
|
|
||||||
|
changelog
|
||||||
|
.write({
|
||||||
|
githubRepoPath: `https://github.com/${REPO}`,
|
||||||
|
lastVersion: previousVersion
|
||||||
|
})
|
||||||
|
.sort()
|
||||||
|
.clean();
|
||||||
|
};
|
||||||
|
|
||||||
|
const previousRelease = () => {
|
||||||
|
return releaseUtils
|
||||||
|
.releases
|
||||||
|
.get({
|
||||||
|
userAgent: USER_AGENT,
|
||||||
|
uri: `https://api.github.com/repos/${REPO}/releases`
|
||||||
|
})
|
||||||
|
.then((response) => {
|
||||||
|
if (!response || !response.length) {
|
||||||
|
console.log('No releases found. Skipping');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(`Previous version ${response[0].name}`);
|
||||||
|
return response[0].name;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* `yarn ship` will trigger `postship` task.
|
||||||
|
*
|
||||||
|
* [optional] For full automation
|
||||||
|
*
|
||||||
|
* `GHOST=2.10.1,2.10.0 yarn ship`
|
||||||
|
* First value: Ships with Ghost
|
||||||
|
* Second value: Compatible with Ghost/GScan
|
||||||
|
*
|
||||||
|
* You can manually run in case the task has thrown an error.
|
||||||
|
*
|
||||||
|
* `npm_package_version=0.5.0 gulp release`
|
||||||
|
*/
|
||||||
|
const release = () => {
|
||||||
|
// @NOTE: https://yarnpkg.com/lang/en/docs/cli/version/
|
||||||
|
const newVersion = process.env.npm_package_version;
|
||||||
|
let shipsWithGhost = '{version}';
|
||||||
|
let compatibleWithGhost = '2.10.0';
|
||||||
|
const ghostEnvValues = process.env.GHOST || null;
|
||||||
|
|
||||||
|
if (ghostEnvValues) {
|
||||||
|
shipsWithGhost = ghostEnvValues.split(',')[0];
|
||||||
|
compatibleWithGhost = ghostEnvValues.split(',')[1];
|
||||||
|
|
||||||
|
if (!compatibleWithGhost) {
|
||||||
|
compatibleWithGhost = '2.10.0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!newVersion || newVersion === '') {
|
||||||
|
console.log('Invalid version.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(`\nDraft release for ${newVersion}.`);
|
||||||
|
|
||||||
|
if (!config || !config.github || !config.github.username || !config.github.token) {
|
||||||
|
console.log('Please copy config.example.json and configure Github token.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
return previousRelease()
|
||||||
|
.then((previousVersion) => {
|
||||||
|
changelog({previousVersion});
|
||||||
|
|
||||||
|
return releaseUtils
|
||||||
|
.releases
|
||||||
|
.create({
|
||||||
|
draft: true,
|
||||||
|
preRelease: false,
|
||||||
|
tagName: newVersion,
|
||||||
|
releaseName: newVersion,
|
||||||
|
userAgent: USER_AGENT,
|
||||||
|
uri: `https://api.github.com/repos/${REPO}/releases`,
|
||||||
|
github: {
|
||||||
|
username: config.github.username,
|
||||||
|
token: config.github.token
|
||||||
|
},
|
||||||
|
content: [`**Ships with Ghost ${shipsWithGhost} Compatible with Ghost >= ${compatibleWithGhost}**\n\n`],
|
||||||
|
changelogPath: CHANGELOG_PATH
|
||||||
|
})
|
||||||
|
.then((response) => {
|
||||||
|
console.log(`\nRelease draft generated: ${response.releaseUrl}\n`);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.release = release;
|
||||||
|
16
package.json
16
package.json
@ -2,7 +2,7 @@
|
|||||||
"name": "casper",
|
"name": "casper",
|
||||||
"description": "The default personal blogging theme for Ghost. Beautiful, minimal and responsive.",
|
"description": "The default personal blogging theme for Ghost. Beautiful, minimal and responsive.",
|
||||||
"demo": "https://demo.ghost.io",
|
"demo": "https://demo.ghost.io",
|
||||||
"version": "2.9.4",
|
"version": "2.10.3",
|
||||||
"engines": {
|
"engines": {
|
||||||
"ghost": ">=2.0.0",
|
"ghost": ">=2.0.0",
|
||||||
"ghost-api": "v2"
|
"ghost-api": "v2"
|
||||||
@ -18,7 +18,8 @@
|
|||||||
"test": "gscan .",
|
"test": "gscan .",
|
||||||
"pretest": "gulp build",
|
"pretest": "gulp build",
|
||||||
"preship": "yarn test",
|
"preship": "yarn test",
|
||||||
"ship": "STATUS=$(git status --porcelain); echo $STATUS; if [ -z \"$STATUS\" ]; then yarn version && git push --follow-tags; fi"
|
"ship": "STATUS=$(git status --porcelain); echo $STATUS; if [ -z \"$STATUS\" ]; then yarn version && git push --follow-tags; else echo \"Uncomitted changes found.\" && exit 1; fi",
|
||||||
|
"postship": "git fetch && gulp release"
|
||||||
},
|
},
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Ghost Foundation",
|
"name": "Ghost Foundation",
|
||||||
@ -44,17 +45,18 @@
|
|||||||
"bugs": "https://github.com/TryGhost/Casper/issues",
|
"bugs": "https://github.com/TryGhost/Casper/issues",
|
||||||
"contributors": "https://github.com/TryGhost/Casper/graphs/contributors",
|
"contributors": "https://github.com/TryGhost/Casper/graphs/contributors",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"autoprefixer": "9.4.10",
|
"@tryghost/release-utils": "0.3.2",
|
||||||
|
"autoprefixer": "9.6.0",
|
||||||
"beeper": "1.1.1",
|
"beeper": "1.1.1",
|
||||||
"cssnano": "4.1.10",
|
"cssnano": "4.1.10",
|
||||||
"gscan": "2.3.0",
|
"gscan": "2.6.2",
|
||||||
"gulp": "4.0.0",
|
"gulp": "4.0.2",
|
||||||
"gulp-livereload": "4.0.1",
|
"gulp-livereload": "4.0.1",
|
||||||
"gulp-postcss": "8.0.0",
|
"gulp-postcss": "8.0.0",
|
||||||
"gulp-uglify": "3.0.2",
|
"gulp-uglify": "3.0.2",
|
||||||
"gulp-zip": "4.2.0",
|
"gulp-zip": "4.2.0",
|
||||||
"postcss-color-function": "4.0.1",
|
"postcss-color-function": "4.1.0",
|
||||||
"postcss-custom-properties": "8.0.9",
|
"postcss-custom-properties": "8.0.10",
|
||||||
"postcss-easy-import": "3.0.0",
|
"postcss-easy-import": "3.0.0",
|
||||||
"pump": "3.0.0"
|
"pump": "3.0.0"
|
||||||
},
|
},
|
||||||
|
@ -1,16 +1,9 @@
|
|||||||
{
|
{
|
||||||
"extends": [
|
"extends": [
|
||||||
"config:base",
|
"@tryghost:theme"
|
||||||
"schedule:earlyMondays"
|
|
||||||
],
|
],
|
||||||
"packageRules": [
|
"travis": { "enabled": true },
|
||||||
{
|
"node": {
|
||||||
"packagePatterns": ["^postcss", "css", "autoprefixer"],
|
"supportPolicy": ["lts_latest"]
|
||||||
"groupName": "css processors"
|
}
|
||||||
},
|
|
||||||
{
|
|
||||||
"packagePatterns": ["gulp"],
|
|
||||||
"groupName": "gulp"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user