diff options
Diffstat (limited to 'packages/gitbook-core/src/components/Import.js')
-rw-r--r-- | packages/gitbook-core/src/components/Import.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/packages/gitbook-core/src/components/Import.js b/packages/gitbook-core/src/components/Import.js new file mode 100644 index 0000000..68318b9 --- /dev/null +++ b/packages/gitbook-core/src/components/Import.js @@ -0,0 +1,48 @@ +const React = require('react'); +const Head = require('react-helmet'); +const ReactRedux = require('react-redux'); + +/** + * Resolve a file url to a relative url in current state + * @param {String} href + * @param {State} state + * @return {String} + */ +function resolveForCurrentFile(href, state) { + const { file } = state; + return file.relative(href); +} + +const ImportLink = ReactRedux.connect((state, {rel, href}) => { + href = resolveForCurrentFile(href, state); + + return { + link: [ + { + rel, + href + } + ] + }; +})(Head); + +const ImportScript = ReactRedux.connect((state, {type, src}) => { + src = resolveForCurrentFile(src, state); + + return { + script: [ + { + type, + src + } + ] + }; +})(Head); + +const ImportCSS = props => <ImportLink rel="stylesheet" {...props} />; + +module.exports = { + ImportLink, + ImportScript, + ImportCSS +}; |