@@ -6,7 +6,7 @@ Error.call = (self, ...args) => {
6
6
return Object . assign ( self , { message : err . message , stack : err . stack } )
7
7
}
8
8
9
- const asciidoctor = require ( 'asciidoctor.js ' ) ( )
9
+ const Asciidoctor = require ( '@ asciidoctor/core ' ) ( )
10
10
const fs = require ( 'fs-extra' )
11
11
const handlebars = require ( 'handlebars' )
12
12
const merge = require ( 'merge-stream' )
@@ -27,7 +27,21 @@ module.exports = (src, previewSrc, previewDest, sink = () => map()) => (done) =>
27
27
merge ( compileLayouts ( src ) , registerPartials ( src ) , registerHelpers ( src ) , copyImages ( previewSrc , previewDest ) )
28
28
) ,
29
29
] )
30
- . then ( ( [ baseUiModel , { layouts } ] ) => [ { ...baseUiModel , env : process . env } , layouts ] )
30
+ . then ( ( [ baseUiModel , { layouts } ] ) => {
31
+ const extensions = ( ( baseUiModel . asciidoc || { } ) . extensions || [ ] ) . map ( ( request ) => {
32
+ ASCIIDOC_ATTRIBUTES [ request . replace ( / ^ @ | \. j s $ / , '' ) . replace ( / [ / ] / g, '-' ) + '-loaded' ] = ''
33
+ const extension = require ( request )
34
+ extension . register ( Asciidoctor . Extensions )
35
+ return extension
36
+ } )
37
+ const asciidoc = { extensions }
38
+ for ( const component of baseUiModel . site . components ) {
39
+ for ( const version of component . versions || [ ] ) version . asciidoc = asciidoc
40
+ }
41
+ baseUiModel = { ...baseUiModel , env : process . env }
42
+ delete baseUiModel . asciidoc
43
+ return [ baseUiModel , layouts ]
44
+ } )
31
45
. then ( ( [ baseUiModel , layouts ] ) =>
32
46
vfs
33
47
. src ( '**/*.adoc' , { base : previewSrc , cwd : previewSrc } )
@@ -42,7 +56,7 @@ module.exports = (src, previewSrc, previewDest, sink = () => map()) => (done) =>
42
56
if ( file . stem === '404' ) {
43
57
uiModel . page = { layout : '404' , title : 'Page Not Found' }
44
58
} else {
45
- const doc = asciidoctor . load ( file . contents , { safe : 'safe' , attributes : ASCIIDOC_ATTRIBUTES } )
59
+ const doc = Asciidoctor . load ( file . contents , { safe : 'safe' , attributes : ASCIIDOC_ATTRIBUTES } )
46
60
uiModel . page . attributes = Object . entries ( doc . getAttributes ( ) )
47
61
. filter ( ( [ name , val ] ) => name . startsWith ( 'page-' ) )
48
62
. reduce ( ( accum , [ name , val ] ) => {
@@ -110,7 +124,7 @@ function compileLayouts (src) {
110
124
111
125
function copyImages ( src , dest ) {
112
126
return vfs
113
- . src ( '**/*.{png,svg}' , { base : src , cwd : src } )
127
+ . src ( '**/*.{png,svg,cast }' , { base : src , cwd : src } )
114
128
. pipe ( vfs . dest ( dest ) )
115
129
. pipe ( map ( ( file , enc , next ) => next ( ) ) )
116
130
}
0 commit comments