mirror of
				https://github.com/theoludwig/theoludwig.git
				synced 2025-10-14 20:23:25 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			29 lines
		
	
	
		
			908 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			908 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import fs from 'fs'
 | |
| import { fileURLToPath } from 'url'
 | |
| 
 | |
| import ejs from 'ejs'
 | |
| import date from 'date-and-time'
 | |
| import { Parcel } from '@parcel/core'
 | |
| 
 | |
| export const render = async (resume) => {
 | |
|   const themeIndexURL = new URL('./theme/index.ejs', import.meta.url)
 | |
|   const themeBuildURL = new URL('./theme/index.html', import.meta.url)
 | |
|   const indexHTMLURL = new URL('./dist/index.html', import.meta.url)
 | |
|   const themeBuildPath = fileURLToPath(themeBuildURL)
 | |
|   const html = await ejs.renderFile(fileURLToPath(themeIndexURL), {
 | |
|     date,
 | |
|     locals: {
 | |
|       ...resume
 | |
|     }
 | |
|   })
 | |
|   await fs.promises.writeFile(themeBuildURL, html, { encoding: 'utf-8' })
 | |
|   const bundler = new Parcel({
 | |
|     entries: themeBuildPath,
 | |
|     source: themeBuildPath,
 | |
|     mode: 'production',
 | |
|     defaultConfig: '@parcel/config-default'
 | |
|   })
 | |
|   await bundler.run()
 | |
|   return await fs.promises.readFile(indexHTMLURL, { encoding: 'utf-8' })
 | |
| }
 |