diff options
author | Samy Pesse <samypesse@gmail.com> | 2016-10-13 21:52:54 +0200 |
---|---|---|
committer | Samy Pesse <samypesse@gmail.com> | 2016-10-13 21:53:15 +0200 |
commit | 2c3072fd8a4c3c31297d5f56799fa9200e225971 (patch) | |
tree | a56e0fe34bdcc2e8400a90c274e4ec018f000ef6 | |
parent | bb14f48c3988597794c8304f9ef5da60db7f8446 (diff) | |
download | gitbook-2c3072fd8a4c3c31297d5f56799fa9200e225971.zip gitbook-2c3072fd8a4c3c31297d5f56799fa9200e225971.tar.gz gitbook-2c3072fd8a4c3c31297d5f56799fa9200e225971.tar.bz2 |
Fix update of page attributes in hook "page"
-rw-r--r-- | packages/gitbook-core/src/models/Page.js | 20 | ||||
-rw-r--r-- | packages/gitbook/src/api/decodePage.js | 2 | ||||
-rw-r--r-- | packages/gitbook/src/api/encodePage.js | 5 |
3 files changed, 17 insertions, 10 deletions
diff --git a/packages/gitbook-core/src/models/Page.js b/packages/gitbook-core/src/models/Page.js index 838191e..e3c4a96 100644 --- a/packages/gitbook-core/src/models/Page.js +++ b/packages/gitbook-core/src/models/Page.js @@ -1,20 +1,22 @@ -const { Record } = require('immutable'); +const { Record, Map, fromJS } = require('immutable'); const DEFAULTS = { - title: '', - content: '', - dir: 'ltr', - depth: 1, - level: '', - previous: null, - next: null + title: '', + content: '', + dir: 'ltr', + depth: 1, + level: '', + previous: null, + next: null, + attributes: Map() }; class Page extends Record(DEFAULTS) { static create(state) { return state instanceof Page ? state : new Page({ - ...state + ...state, + attributes: fromJS(state.attributes) }); } } diff --git a/packages/gitbook/src/api/decodePage.js b/packages/gitbook/src/api/decodePage.js index 395c8ff..16e5115 100644 --- a/packages/gitbook/src/api/decodePage.js +++ b/packages/gitbook/src/api/decodePage.js @@ -19,7 +19,7 @@ function decodePage(output, page, result) { } // Update page attributes - const newAttributes = Immutable.fromJS(page.attributes); + const newAttributes = Immutable.fromJS(result.attributes); page = page.set('attributes', newAttributes); // GitBook 3 diff --git a/packages/gitbook/src/api/encodePage.js b/packages/gitbook/src/api/encodePage.js index 48119f7..7d563cd 100644 --- a/packages/gitbook/src/api/encodePage.js +++ b/packages/gitbook/src/api/encodePage.js @@ -23,6 +23,11 @@ function encodePage(output, page) { result.path = file.getPath(); result.rawPath = fs.resolve(result.path); + result.setAttribute = (key, value) => { + result.attributes[key] = value; + return result; + }; + deprecate.field(output, 'page.progress', result, 'progress', function() { return encodeProgress(output, page); }, '"page.progress" property is deprecated'); |