commit
5f0a1d5797
11
CHANGELOG.md
11
CHANGELOG.md
@ -2,11 +2,20 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
This project adheres to [Semantic Versioning](http://semver.org/).
|
||||
|
||||
## [v1.0.0-beta.14] - Unreleased
|
||||
## [v1.0.1] - Unreleased
|
||||
### Added
|
||||
- **History**: History section to list all changes
|
||||
- **Security**: Optional Two-Factor Authentication (2FA) protection
|
||||
|
||||
## [v1.0.0] - Unreleased
|
||||
### Changed
|
||||
- **Misc**: Switch to Yarn for npm dependencies installation
|
||||
|
||||
### Fixed
|
||||
- **Misc**: JS/CSS is now loading properly in Safari (macOS/iOS)
|
||||
- **Misc**: Process termination handling
|
||||
- **Search**: siteRoot is now properly parsed in search results href
|
||||
|
||||
## [v1.0.0-beta.13] - 2017-07-09
|
||||
### Added
|
||||
- **Admin**: Added Host Information section to System Info page
|
||||
|
@ -58,7 +58,11 @@ Current and upcoming milestones *(major features only, see the [changelog](https
|
||||
- [x] Render line breaks by default (GitHub style)
|
||||
- [x] New Localization: German
|
||||
|
||||
### Beta 14
|
||||
### 1.0.0
|
||||
|
||||
- [x] Bug fixes release
|
||||
|
||||
### 1.1.0
|
||||
> *Planned for August release*
|
||||
![Progress](http://progressed.io/bar/20)
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
li(v-if='searchres.length === 0')
|
||||
a: em {{ $t('search.nomatch') }}
|
||||
li(v-for='sres in searchres', v-bind:class='{ "is-active": searchmovekey === "res." + sres.entryPath }')
|
||||
a(v-bind:href='siteRoot + "/" + sres.entryPath') {{ sres.title }}
|
||||
a(v-bind:href='sres.entryPath') {{ sres.title }}
|
||||
p.searchresults-label(v-if='searchsuggest.length > 0') {{ $t('search.didyoumean') }}
|
||||
ul.searchresults-list(v-if='searchsuggest.length > 0')
|
||||
li(v-for='sug in searchsuggest', v-bind:class='{ "is-active": searchmovekey === "sug." + sug }')
|
||||
@ -39,7 +39,10 @@ export default {
|
||||
self.searchactive = true
|
||||
self.searchload++
|
||||
socket.emit('search', { terms: val }, (data) => {
|
||||
self.searchres = data.match
|
||||
self.searchres = self._.map(data.match, m => {
|
||||
m.entryPath = `${siteRoot}/${m.entryPath}`
|
||||
return m
|
||||
})
|
||||
self.searchsuggest = data.suggest
|
||||
self.searchmovearr = self._.concat([], self.searchres, self.searchsuggest)
|
||||
if (self.searchload > 0) { self.searchload-- }
|
||||
@ -74,7 +77,7 @@ export default {
|
||||
let i = this.searchmoveidx - 1
|
||||
|
||||
if (this.searchmovearr[i]) {
|
||||
window.location.assign(siteRoot + '/' + this.searchmovearr[i].entryPath)
|
||||
window.location.assign(this.searchmovearr[i].entryPath)
|
||||
} else {
|
||||
this.searchq = this.searchmovearr[i]
|
||||
}
|
||||
|
47
fuse.js
47
fuse.js
@ -9,6 +9,9 @@
|
||||
const colors = require('colors/safe')
|
||||
const fsbx = require('fuse-box')
|
||||
const nodemon = require('nodemon')
|
||||
const babel = require('babel-core')
|
||||
const uglify = require('uglify-es')
|
||||
const fs = require('fs-extra')
|
||||
|
||||
// ======================================================
|
||||
// Parse cmd arguments
|
||||
@ -90,7 +93,7 @@ globalTasks.then(() => {
|
||||
fsbx.VuePlugin(),
|
||||
['.scss', fsbx.SassPlugin({ outputStyle: (dev) ? 'nested' : 'compressed' }), fsbx.CSSPlugin()],
|
||||
fsbx.BabelPlugin({ comments: false, presets: ['es2015'] }),
|
||||
fsbx.JSONPlugin(),
|
||||
fsbx.JSONPlugin()
|
||||
/* !dev && fsbx.QuantumPlugin({
|
||||
target: 'browser',
|
||||
uglify: true,
|
||||
@ -109,7 +112,7 @@ globalTasks.then(() => {
|
||||
})
|
||||
}
|
||||
}) */
|
||||
!dev && fsbx.UglifyESPlugin()
|
||||
// !dev && fsbx.UglifyESPlugin()
|
||||
],
|
||||
debug: false,
|
||||
log: true
|
||||
@ -140,6 +143,46 @@ globalTasks.then(() => {
|
||||
watch: (args.d) ? ['server'] : ['server/configure.js'],
|
||||
env: { 'NODE_ENV': 'development' }
|
||||
})
|
||||
} else {
|
||||
console.info(colors.yellow.bold('\nTranspiling vendor bundle...'))
|
||||
let appCode = babel.transform(fs.readFileSync('./assets/js/app.js', 'utf8'), {
|
||||
babelrc: false,
|
||||
compact: false,
|
||||
filename: 'app.js',
|
||||
plugins: ['transform-object-assign']
|
||||
}).code
|
||||
let vendorCode = babel.transform(fs.readFileSync('./assets/js/vendor.js', 'utf8'), {
|
||||
babelrc: false,
|
||||
comments: false,
|
||||
compact: false,
|
||||
filename: 'vendor.js',
|
||||
plugins: [
|
||||
'transform-es2015-arrow-functions',
|
||||
'transform-es2015-block-scoped-functions',
|
||||
'transform-es2015-block-scoping',
|
||||
'transform-es2015-classes',
|
||||
'transform-es2015-computed-properties',
|
||||
'transform-es2015-destructuring',
|
||||
'transform-es2015-duplicate-keys',
|
||||
'transform-es2015-for-of',
|
||||
'transform-es2015-function-name',
|
||||
'transform-es2015-literals',
|
||||
'transform-es2015-object-super',
|
||||
'transform-es2015-parameters',
|
||||
'transform-es2015-shorthand-properties',
|
||||
'transform-es2015-spread',
|
||||
'transform-es2015-sticky-regex',
|
||||
'transform-es2015-template-literals',
|
||||
'transform-es2015-typeof-symbol',
|
||||
'transform-es2015-unicode-regex'
|
||||
]
|
||||
}).code
|
||||
console.info(colors.yellow.bold('Minifing bundles...'))
|
||||
fs.writeFileSync('./assets/js/vendor.js', uglify.minify(vendorCode).code, 'utf8')
|
||||
fs.writeFileSync('./assets/js/app.js', uglify.minify(appCode).code, 'utf8')
|
||||
fs.writeFileSync('./assets/js/configure.js', uglify.minify(fs.readFileSync('./assets/js/configure.js', 'utf8')).code, 'utf8')
|
||||
console.info(colors.green.bold('\nBUILD SUCCEEDED.'))
|
||||
return true
|
||||
}
|
||||
}).catch(err => {
|
||||
console.error(colors.red(' X Bundle compilation failed! ' + err.message))
|
||||
|
@ -138,12 +138,24 @@ const tasks = {
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* Install Yarn
|
||||
*/
|
||||
installYarn() {
|
||||
ora.text = 'Installing Yarn...'
|
||||
return exec.stdout('npm', ['install', '-g', 'yarn'], {
|
||||
cwd: installDir
|
||||
}).then(results => {
|
||||
ora.text = 'Yarn installed successfully.'
|
||||
return true
|
||||
})
|
||||
},
|
||||
/**
|
||||
* Install npm dependencies
|
||||
*/
|
||||
installDependencies() {
|
||||
ora.text = 'Installing Wiki.js npm dependencies...'
|
||||
return exec.stdout('npm', ['install', '--only=production', '--no-optional'], {
|
||||
return exec.stdout('yarn', ['install', '--production', '--ignore-optional'], {
|
||||
cwd: installDir
|
||||
}).then(results => {
|
||||
ora.text = 'Wiki.js npm dependencies installed successfully.'
|
||||
@ -247,6 +259,9 @@ Promise.join(
|
||||
}).then(() => {
|
||||
isContainerBased && console.info('>> Creating config file...')
|
||||
return tasks.ensureConfigFile()
|
||||
}).then(() => {
|
||||
isContainerBased && console.info('>> Installing Yarn...')
|
||||
return tasks.installYarn()
|
||||
}).then(() => {
|
||||
isContainerBased && console.info('>> Installing dependencies...')
|
||||
return tasks.installDependencies()
|
||||
|
2
npm/package-lock.json
generated
2
npm/package-lock.json
generated
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wiki.js",
|
||||
"version": "1.0.0-beta.13.1",
|
||||
"version": "1.0.1",
|
||||
"lockfileVersion": 1,
|
||||
"dependencies": {
|
||||
"amp": {
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wiki.js",
|
||||
"version": "1.0.0-beta.13.2",
|
||||
"version": "1.0.1",
|
||||
"description": "A modern, lightweight and powerful wiki app built on NodeJS, Git and Markdown",
|
||||
"main": "install.js",
|
||||
"scripts": {
|
||||
|
27
package.json
27
package.json
@ -1,8 +1,8 @@
|
||||
{
|
||||
"name": "wiki",
|
||||
"version": "1.0.0-beta.13",
|
||||
"version": "1.0.1",
|
||||
"description": "A modern, lightweight and powerful wiki app built on NodeJS, Git and Markdown",
|
||||
"main": "server.js",
|
||||
"main": "wiki.js",
|
||||
"scripts": {
|
||||
"start": "node wiki start",
|
||||
"stop": "node wiki stop",
|
||||
@ -37,7 +37,7 @@
|
||||
"node": ">=4.6"
|
||||
},
|
||||
"dependencies": {
|
||||
"auto-load": "~2.1.0",
|
||||
"auto-load": "~3.0.0",
|
||||
"axios": "~0.16.2",
|
||||
"bcryptjs-then": "~1.0.1",
|
||||
"bluebird": "~3.5.0",
|
||||
@ -46,7 +46,7 @@
|
||||
"cheerio": "~1.0.0-rc.2",
|
||||
"child-process-promise": "~2.2.1",
|
||||
"chokidar": "~1.7.0",
|
||||
"compression": "~1.6.2",
|
||||
"compression": "~1.7.0",
|
||||
"connect-flash": "~0.1.1",
|
||||
"connect-mongo": "~1.3.2",
|
||||
"cookie-parser": "~1.4.3",
|
||||
@ -60,7 +60,7 @@
|
||||
"file-type": "~5.2.0",
|
||||
"filesize.js": "~1.0.2",
|
||||
"follow-redirects": "~1.2.4",
|
||||
"fs-extra": "~3.0.1",
|
||||
"fs-extra": "~4.0.0",
|
||||
"git-wrapper2-promise": "~0.2.9",
|
||||
"highlight.js": "~9.12.0",
|
||||
"i18next": "~8.4.3",
|
||||
@ -89,7 +89,7 @@
|
||||
"moment": "~2.18.1",
|
||||
"moment-timezone": "~0.5.13",
|
||||
"mongodb": "~2.2.30",
|
||||
"mongoose": "^4.11.1",
|
||||
"mongoose": "~4.11.1",
|
||||
"multer": "~1.3.0",
|
||||
"node-2fa": "~1.1.2",
|
||||
"node-graceful": "~0.2.3",
|
||||
@ -104,13 +104,13 @@
|
||||
"passport-slack": "0.0.7",
|
||||
"passport-windowslive": "~1.0.2",
|
||||
"passport.socketio": "~3.7.0",
|
||||
"pm2": "~2.5.0",
|
||||
"pm2": "~2.6.1",
|
||||
"pug": "~2.0.0-rc.2",
|
||||
"read-chunk": "~2.0.0",
|
||||
"remove-markdown": "~0.2.0",
|
||||
"request": "~2.81.0",
|
||||
"search-index-adder": "~0.3.9",
|
||||
"search-index-searcher": "~0.2.8",
|
||||
"search-index-searcher": "~0.2.10",
|
||||
"semver": "~5.3.0",
|
||||
"serve-favicon": "~2.4.3",
|
||||
"simplemde": "~1.11.2",
|
||||
@ -125,21 +125,22 @@
|
||||
"yargs": "~8.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@glimpse/glimpse": "~0.21.5",
|
||||
"@glimpse/glimpse": "~0.22.13",
|
||||
"@panter/vue-i18next": "~0.5.0",
|
||||
"babel-cli": "~6.24.1",
|
||||
"babel-jest": "~20.0.3",
|
||||
"babel-plugin-transform-object-assign": "~6.22.0",
|
||||
"babel-preset-es2015": "~6.24.1",
|
||||
"brace": "~0.10.0",
|
||||
"colors": "~1.1.2",
|
||||
"consolidate": "~0.14.5",
|
||||
"eslint": "~4.1.1",
|
||||
"eslint": "~4.3.0",
|
||||
"eslint-config-standard": "~10.2.1",
|
||||
"eslint-plugin-import": "~2.7.0",
|
||||
"eslint-plugin-node": "~5.1.0",
|
||||
"eslint-plugin-promise": "~3.5.0",
|
||||
"eslint-plugin-standard": "~3.0.1",
|
||||
"fuse-box": "~2.2.0",
|
||||
"fuse-box": "~2.2.1",
|
||||
"i18next-xhr-backend": "~1.4.2",
|
||||
"jest": "~20.0.4",
|
||||
"jquery": "~3.2.1",
|
||||
@ -156,11 +157,11 @@
|
||||
"typescript": "~2.4.1",
|
||||
"uglify-es": "~3.0.24",
|
||||
"vee-validate": "~2.0.0-rc.6",
|
||||
"vue": "~2.3.4",
|
||||
"vue": "~2.4.2",
|
||||
"vue-clipboards": "~1.0.2",
|
||||
"vue-lodash": "~1.0.3",
|
||||
"vue-resource": "~1.3.4",
|
||||
"vue-template-compiler": "~2.3.4",
|
||||
"vue-template-compiler": "~2.4.2",
|
||||
"vue-template-es2015-compiler": "~1.5.3",
|
||||
"vuex": "~2.3.1"
|
||||
},
|
||||
|
@ -11,5 +11,11 @@
|
||||
"strictNullChecks": true,
|
||||
"suppressImplicitAnyIndexErrors": true,
|
||||
"target": "es5"
|
||||
}
|
||||
},
|
||||
"exclude": [
|
||||
".fusebox",
|
||||
"data",
|
||||
"node_modules",
|
||||
"repo"
|
||||
]
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user