mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-10-01 06:28:38 +00:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ac756ddf7e | |||
| 36e2236e6b | |||
| 72df665520 | |||
| 07785528a5 | |||
| bb579dd581 | |||
| a7d3064340 | |||
| 82f3ffad06 | |||
| dc4d2a1731 |
@@ -2,6 +2,10 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
This project adheres to [Semantic Versioning](http://semver.org/).
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
|
|
||||||
|
## 2.0.3
|
||||||
|
- Fix `gitbook init` for SUMMARY with empty entries
|
||||||
|
- Fix escaping of code blocks in markdown
|
||||||
|
|
||||||
## 2.0.2
|
## 2.0.2
|
||||||
- Fix relative links in windows
|
- Fix relative links in windows
|
||||||
- Improve watcher in serve command (switch to chokidar)
|
- Improve watcher in serve command (switch to chokidar)
|
||||||
|
|||||||
+15
-11
@@ -789,20 +789,19 @@ Book.prototype.normError = function(err, opts, defs) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Init and return a book
|
// Init and return a book
|
||||||
Book.init = function(root) {
|
Book.init = function(root, opts) {
|
||||||
var book = new Book(root);
|
var book = new Book(root, opts);
|
||||||
var extensionToUse = ".md";
|
var extensionToUse = ".md";
|
||||||
|
|
||||||
var chaptersPaths = function(chapters) {
|
var chaptersPaths = function(chapters) {
|
||||||
return _.reduce(chapters || [], function(accu, chapter) {
|
return _.reduce(chapters || [], function(accu, chapter) {
|
||||||
if (!chapter.path) return accu;
|
var o = {
|
||||||
|
title: chapter.title
|
||||||
|
};
|
||||||
|
if (chapter.path) o.path = chapter.path;
|
||||||
|
|
||||||
return accu.concat(
|
return accu.concat(
|
||||||
_.filter([
|
[o].concat(chaptersPaths(chapter.articles))
|
||||||
{
|
|
||||||
title: chapter.title,
|
|
||||||
path: chapter.path
|
|
||||||
}
|
|
||||||
].concat(chaptersPaths(chapter.articles)))
|
|
||||||
);
|
);
|
||||||
}, []);
|
}, []);
|
||||||
};
|
};
|
||||||
@@ -839,12 +838,17 @@ Book.init = function(root) {
|
|||||||
.then(function(chapters) {
|
.then(function(chapters) {
|
||||||
// Create files that don't exist
|
// Create files that don't exist
|
||||||
return Q.all(_.map(chapters, function(chapter) {
|
return Q.all(_.map(chapters, function(chapter) {
|
||||||
|
if (!chapter.path) return Q();
|
||||||
var absolutePath = path.resolve(book.root, chapter.path);
|
var absolutePath = path.resolve(book.root, chapter.path);
|
||||||
|
|
||||||
return fs.exists(absolutePath)
|
return fs.exists(absolutePath)
|
||||||
.then(function(exists) {
|
.then(function(exists) {
|
||||||
book.log.info.ln("create", chapter.path);
|
if(exists) {
|
||||||
if(exists) return;
|
book.log.info.ln("found", chapter.path);
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
book.log.info.ln("create", chapter.path);
|
||||||
|
}
|
||||||
|
|
||||||
return fs.mkdirp(path.dirname(absolutePath))
|
return fs.mkdirp(path.dirname(absolutePath))
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
|||||||
+1
-1
@@ -155,7 +155,7 @@ Plugin.prototype.callHook = function(name, data) {
|
|||||||
if (!hookFunc) return Q(data);
|
if (!hookFunc) return Q(data);
|
||||||
|
|
||||||
this.book.log.debug.ln("call hook", name);
|
this.book.log.debug.ln("call hook", name);
|
||||||
if (!_.contains(Plugin.HOOKS, name)) this.book.log.warn.ln("hook '"+name+"' used by plugin '"+this.name+"' is deprecated, and will be remove in the coming versions");
|
if (!_.contains(Plugin.HOOKS, name)) this.book.log.warn.ln("hook '"+name+"' used by plugin '"+this.name+"' is deprecated, and will be removed in the coming versions");
|
||||||
|
|
||||||
return Q()
|
return Q()
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
|||||||
+3
-3
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "gitbook",
|
"name": "gitbook",
|
||||||
"version": "2.0.2",
|
"version": "2.0.3",
|
||||||
"homepage": "https://www.gitbook.com",
|
"homepage": "https://www.gitbook.com",
|
||||||
"description": "Library and cmd utility to generate GitBooks",
|
"description": "Library and cmd utility to generate GitBooks",
|
||||||
"main": "lib/index.js",
|
"main": "lib/index.js",
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
"resolve": "0.6.3",
|
"resolve": "0.6.3",
|
||||||
"fs-extra": "0.16.5",
|
"fs-extra": "0.16.5",
|
||||||
"fstream-ignore": "1.0.2",
|
"fstream-ignore": "1.0.2",
|
||||||
"gitbook-parsers": "0.7.4",
|
"gitbook-parsers": "0.7.5",
|
||||||
"nunjucks": "1.3.0",
|
"nunjucks": "1.3.0",
|
||||||
"nunjucks-autoescape": "0.1.1",
|
"nunjucks-autoescape": "0.1.1",
|
||||||
"nunjucks-filter": "0.1.0",
|
"nunjucks-filter": "0.1.0",
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
"gitbook"
|
"gitbook"
|
||||||
],
|
],
|
||||||
"author": "FriendCode Inc. <contact@gitbook.com>",
|
"author": "FriendCode Inc. <contact@gitbook.com>",
|
||||||
"license": "Apache 2",
|
"license": "Apache-2.0",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/GitbookIO/gitbook/issues"
|
"url": "https://github.com/GitbookIO/gitbook/issues"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
*
|
||||||
|
!SUMMARY.md
|
||||||
|
!.gitignore
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# Summary
|
||||||
|
|
||||||
|
* [Hello](hello.md)
|
||||||
|
* [Hello 2](hello2.md)
|
||||||
|
* Hello 3
|
||||||
|
* [Hello 4](hello3/hello4.md)
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
var fs = require('fs');
|
||||||
|
var path = require('path');
|
||||||
|
var should = require('should');
|
||||||
|
|
||||||
|
var Book = require('../').Book;
|
||||||
|
var LOG_LEVELS = require('../').LOG_LEVELS;
|
||||||
|
|
||||||
|
describe('Init Books', function () {
|
||||||
|
var initRoot;
|
||||||
|
|
||||||
|
before(function() {
|
||||||
|
initRoot = path.resolve(__dirname, "books/init");
|
||||||
|
return Book.init(initRoot, {
|
||||||
|
logLevel: LOG_LEVELS.DISABLED,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create all chapters', function() {
|
||||||
|
should(fs.existsSync(path.resolve(initRoot, "hello.md"))).be.ok;
|
||||||
|
should(fs.existsSync(path.resolve(initRoot, "hello2.md"))).be.ok;
|
||||||
|
should(fs.existsSync(path.resolve(initRoot, "hello3/hello4.md"))).be.ok;
|
||||||
|
});
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user