@@ -15,54 +15,56 @@ const yaml = require('js-yaml')
1515
1616const ASCIIDOC_ATTRIBUTES = { experimental : '' , icons : 'font' , sectanchors : '' , 'source-highlighter' : 'highlight.js' }
1717
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 ( ) )
6167 )
62- . pipe ( vfs . dest ( previewDest ) )
63- . on ( 'error' , done )
64- . pipe ( sink ( ) )
65- )
6668
6769function loadSampleUiModel ( src ) {
6870 return fsp . readFile ( ospath . join ( src , 'ui-model.yml' ) , 'utf8' ) . then ( ( contents ) => yaml . load ( contents ) )
0 commit comments