@@ -27,6 +27,7 @@ const defaultOptions = {
2727 cache : true
2828 } ,
2929 puppeteerArgs : [ ] ,
30+ generateSitemap : true ,
3031 puppeteerExecutablePath : undefined ,
3132 puppeteerIgnoreHTTPSErrors : false ,
3233 publicPath : "/" ,
@@ -260,6 +261,26 @@ const removeBlobs = async opt => {
260261 } ) ;
261262} ;
262263
264+ /**
265+ *
266+ * @param {{page: Page} } opt
267+ * @return Promise
268+ */
269+ const generateSitemap = async opt => {
270+ const { page, pageUrl, indexRoutes } = opt ;
271+ try {
272+ console . log ( 'generate sitemap function' )
273+ console . log ( '-start-' )
274+ console . log ( pageUrl )
275+ console . log ( indexRoutes )
276+ indexRoutes . push ( pageUrl )
277+ console . log ( indexRoutes )
278+ console . log ( '-end-' )
279+ } catch ( e ) {
280+ return Promise . reject ( e . message ) ;
281+ }
282+ } ;
283+
263284/**
264285 * @param {{page: Page, pageUrl: string, options: {skipThirdPartyRequests: boolean, userAgent: string}, basePath: string, browser: Browser} } opt
265286 * @return {Promise }
@@ -695,6 +716,7 @@ const run = async (userOptions, { fs } = { fs: nativeFs }) => {
695716 const ajaxCache = { } ;
696717 const { http2PushManifest } = options ;
697718 const http2PushManifestItems = { } ;
719+ const indexRoutes = [ ] ;
698720
699721 await crawl ( {
700722 options,
@@ -730,9 +752,11 @@ const run = async (userOptions, { fs } = { fs: nativeFs }) => {
730752 } ,
731753 afterFetch : async ( { page, route, browser, addToQueue } ) => {
732754 const pageUrl = `${ basePath } ${ route } ` ;
755+ await console . log ( '--AFTER FETCH--' )
733756 if ( options . removeStyleTags ) await removeStyleTags ( { page } ) ;
734757 if ( options . removeScriptTags ) await removeScriptTags ( { page } ) ;
735758 if ( options . removeBlobs ) await removeBlobs ( { page } ) ;
759+ if ( options . generateSitemap ) await generateSitemap ( { page, pageUrl, indexRoutes } ) ;
736760 if ( options . inlineCss ) {
737761 const { cssFiles } = await inlineCss ( {
738762 page,
@@ -876,6 +900,14 @@ const run = async (userOptions, { fs } = { fs: nativeFs }) => {
876900 JSON . stringify ( manifest )
877901 ) ;
878902 }
903+ if ( generateSitemap ) {
904+ console . log ( "@@--ON FILE END SITEMAP--@@" )
905+ console . log ( "---" )
906+ head = "<?xml version=\"1.0\" encoding=\"UTF-8\"?\>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">"
907+ tail = "</urlset>"
908+ console . log ( indexRoutes )
909+ console . log ( "@@@@" )
910+ }
879911 }
880912 } ) ;
881913} ;
0 commit comments