@@ -15,54 +15,56 @@ const yaml = require('js-yaml')
15
15
16
16
const ASCIIDOC_ATTRIBUTES = { experimental : '' , icons : 'font' , sectanchors : '' , 'source-highlighter' : 'highlight.js' }
17
17
18
- module . exports = ( src , previewSrc , previewDest , sink = ( ) => map ( ) ) => ( done ) =>
19
- Promise . all ( [
20
- loadSampleUiModel ( previewSrc ) ,
21
- toPromise (
22
- merge ( compileLayouts ( src ) , registerPartials ( src ) , registerHelpers ( src ) , copyImages ( previewSrc , previewDest ) )
23
- ) ,
24
- ] )
25
- . then ( ( [ baseUiModel , { layouts } ] ) => [ { ...baseUiModel , env : process . env } , layouts ] )
26
- . then ( ( [ baseUiModel , layouts ] ) =>
27
- vfs
28
- . src ( '**/*.adoc' , { base : previewSrc , cwd : previewSrc } )
29
- . pipe (
30
- map ( ( file , enc , next ) => {
31
- const siteRootPath = path . relative ( ospath . dirname ( file . path ) , ospath . resolve ( previewSrc ) )
32
- const uiModel = { ...baseUiModel }
33
- const url = uiModel . env . DEPLOY_PRIME_URL || uiModel . env . URL
34
- if ( url ) uiModel . site . url = url
35
- uiModel . page = { ...uiModel . page }
36
- uiModel . siteRootPath = siteRootPath
37
- uiModel . uiRootPath = path . join ( siteRootPath , '_' )
38
- if ( file . stem === '404' ) {
39
- uiModel . page = { layout : '404' , title : 'Page Not Found' }
40
- } else {
41
- const doc = Asciidoctor . load ( file . contents , { safe : 'safe' , attributes : ASCIIDOC_ATTRIBUTES } )
42
- uiModel . page . attributes = Object . entries ( doc . getAttributes ( ) )
43
- . filter ( ( [ name , val ] ) => name . startsWith ( 'page-' ) )
44
- . reduce ( ( accum , [ name , val ] ) => {
45
- accum [ name . substr ( 5 ) ] = val
46
- return accum
47
- } , { } )
48
- uiModel . page . layout = doc . getAttribute ( 'page-layout' , 'default' )
49
- if ( doc . hasAttribute ( 'docrole' ) ) uiModel . page . role = doc . getAttribute ( 'docrole' )
50
- uiModel . page . title = doc . getDocumentTitle ( )
51
- uiModel . page . contents = Buffer . from ( doc . convert ( ) )
52
- }
53
- file . extname = '.html'
54
- try {
55
- file . contents = Buffer . from ( layouts . get ( uiModel . page . layout ) ( uiModel ) )
56
- next ( null , file )
57
- } catch ( e ) {
58
- next ( transformHandlebarsError ( e , uiModel . page . layout ) )
59
- }
60
- } )
18
+ module . exports =
19
+ ( src , previewSrc , previewDest , sink = ( ) => map ( ) ) =>
20
+ ( done ) =>
21
+ Promise . all ( [
22
+ loadSampleUiModel ( previewSrc ) ,
23
+ toPromise (
24
+ merge ( compileLayouts ( src ) , registerPartials ( src ) , registerHelpers ( src ) , copyImages ( previewSrc , previewDest ) )
25
+ ) ,
26
+ ] )
27
+ . then ( ( [ baseUiModel , { layouts } ] ) => [ { ...baseUiModel , env : process . env } , layouts ] )
28
+ . then ( ( [ baseUiModel , layouts ] ) =>
29
+ vfs
30
+ . src ( '**/*.adoc' , { base : previewSrc , cwd : previewSrc } )
31
+ . pipe (
32
+ map ( ( file , enc , next ) => {
33
+ const siteRootPath = path . relative ( ospath . dirname ( file . path ) , ospath . resolve ( previewSrc ) )
34
+ const uiModel = { ...baseUiModel }
35
+ const url = uiModel . env . DEPLOY_PRIME_URL || uiModel . env . URL
36
+ if ( url ) uiModel . site . url = url
37
+ uiModel . page = { ...uiModel . page }
38
+ uiModel . siteRootPath = siteRootPath
39
+ uiModel . uiRootPath = path . join ( siteRootPath , '_' )
40
+ if ( file . stem === '404' ) {
41
+ uiModel . page = { layout : '404' , title : 'Page Not Found' }
42
+ } else {
43
+ const doc = Asciidoctor . load ( file . contents , { safe : 'safe' , attributes : ASCIIDOC_ATTRIBUTES } )
44
+ uiModel . page . attributes = Object . entries ( doc . getAttributes ( ) )
45
+ . filter ( ( [ name , val ] ) => name . startsWith ( 'page-' ) )
46
+ . reduce ( ( accum , [ name , val ] ) => {
47
+ accum [ name . substr ( 5 ) ] = val
48
+ return accum
49
+ } , { } )
50
+ uiModel . page . layout = doc . getAttribute ( 'page-layout' , 'default' )
51
+ if ( doc . hasAttribute ( 'docrole' ) ) uiModel . page . role = doc . getAttribute ( 'docrole' )
52
+ uiModel . page . title = doc . getDocumentTitle ( )
53
+ uiModel . page . contents = Buffer . from ( doc . convert ( ) )
54
+ }
55
+ file . extname = '.html'
56
+ try {
57
+ file . contents = Buffer . from ( layouts . get ( uiModel . page . layout ) ( uiModel ) )
58
+ next ( null , file )
59
+ } catch ( e ) {
60
+ next ( transformHandlebarsError ( e , uiModel . page . layout ) )
61
+ }
62
+ } )
63
+ )
64
+ . pipe ( vfs . dest ( previewDest ) )
65
+ . on ( 'error' , done )
66
+ . pipe ( sink ( ) )
61
67
)
62
- . pipe ( vfs . dest ( previewDest ) )
63
- . on ( 'error' , done )
64
- . pipe ( sink ( ) )
65
- )
66
68
67
69
function loadSampleUiModel ( src ) {
68
70
return fsp . readFile ( ospath . join ( src , 'ui-model.yml' ) , 'utf8' ) . then ( ( contents ) => yaml . load ( contents ) )
0 commit comments