UNPKG

timpla

Version:

An optimal website development experience.

58 lines (51 loc) 1.7 kB
/* * local.gulpfile.ts */ import * as gulp from 'gulp' import * as inject from 'gulp-inject' import * as replace from 'gulp-replace' const buildReadMe = () => { // It's not necessary to read the files (will speed up things), we're only after their paths: const timplaConfigInterface = gulp.src('gulpfile.ts/lib/timplaInterfaces.ts') const timplaConfig = gulp.src('.timplaconfig.js').pipe(replace('./lib/public', 'timpla')) const babelRC = gulp.src('.babelrc.js') const transformJSCodeBlock = (filePath: string, file: any) => { const utText = file.contents.toString('utf8') const extractMatches = utText.match(/\/\/(.?)@extract([\s\S]*?)@endextract/gi) const contents = !!extractMatches ? extractMatches.join('').replace(/\/\/.?@(end)?extract/g, '') : utText const extensionMatchers: any = { js: 'javascript', md: 'markdown', sh: 'shell', ts: 'typescript', } const ext = filePath.split('.').pop()! const extToUse = extensionMatchers[ext] || ext // return file contents as string return ['```' + extToUse, contents, '```'].join('\n') } return gulp .src('local.gulpfile.ts/README.md') .pipe( inject(timplaConfigInterface, { starttag: '<!-- inject:timpla_config:{{ext}} -->', transform: transformJSCodeBlock, }) ) .pipe( inject(timplaConfig, { starttag: '<!-- inject:timpla_config_basic:{{ext}} -->', transform: transformJSCodeBlock, }) ) .pipe( inject(babelRC, { starttag: '<!-- inject:babel:{{ext}} -->', transform: transformJSCodeBlock, }) ) .pipe(gulp.dest('./')) } export default buildReadMe