This is an automated email from the ASF dual-hosted git repository. djencks pushed a commit to branch issue-14698-rearrange-adocs in repository https://gitbox.apache.org/repos/asf/camel.git
commit c0ed7cf93e8ee570df756708927c7c41e17ac602 Author: David Jencks <djen...@apache.org> AuthorDate: Thu Mar 12 18:10:35 2020 -0700 separate languages nav file --- ...plate => component-languages-nav.adoc.template} | 1 + docs/component-nav.adoc.template | 1 + docs/gulpfile.js | 75 ++++++++++++++++++---- docs/package.json | 1 + docs/user-manual-nav.adoc.template | 4 +- 5 files changed, 68 insertions(+), 14 deletions(-) diff --git a/docs/component-nav.adoc.template b/docs/component-languages-nav.adoc.template similarity index 87% copy from docs/component-nav.adoc.template copy to docs/component-languages-nav.adoc.template index 169357f..227dc6c 100644 --- a/docs/component-nav.adoc.template +++ b/docs/component-languages-nav.adoc.template @@ -1,4 +1,5 @@ <!-- generated:txt --> <!-- endinject --> +* Languages <!-- inject:adoc --> <!-- endinject --> diff --git a/docs/component-nav.adoc.template b/docs/component-nav.adoc.template index 169357f..133caf3 100644 --- a/docs/component-nav.adoc.template +++ b/docs/component-nav.adoc.template @@ -1,4 +1,5 @@ <!-- generated:txt --> <!-- endinject --> +* Components and Data Formats <!-- inject:adoc --> <!-- endinject --> diff --git a/docs/gulpfile.js b/docs/gulpfile.js index a6f529d..e931d40 100644 --- a/docs/gulpfile.js +++ b/docs/gulpfile.js @@ -16,6 +16,7 @@ */ const { dest, series, parallel, src, symlink } = require('gulp'); const del = require('del'); +const filter = require('gulp-filter'); const inject = require('gulp-inject'); const map = require('map-stream') const path = require('path'); @@ -35,7 +36,9 @@ function deleteComponentImageSymlinks() { } function createComponentSymlinks() { - return src(['../core/camel-base/src/main/docs/*.adoc', '../core/camel-core-languages/src/main/docs/*.adoc', '../core/camel-xml-jaxp/src/main/docs/*.adoc', '../components/{*,*/*}/src/main/docs/*.adoc']) + const f = filter(['**','!**/*-language.adoc']) + return src(['../core/camel-base/src/main/docs/*.adoc','../components/{*,*/*}/src/main/docs/*.adoc']) + .pipe(f) .pipe(map((file, done) => { // this flattens the output to just .../pages/....adoc // instead of .../pages/camel-.../src/main/docs/....adoc @@ -55,6 +58,28 @@ function createComponentSymlinks() { .pipe(dest('components/modules/ROOT/pages/')); } +function createComponentLanguageSymlinks() { + return src(['../components/{*,*/*}/src/main/docs/*-language.adoc']) + .pipe(map((file, done) => { + // this flattens the output to just .../pages/....adoc + // instead of .../pages/camel-.../src/main/docs/....adoc + file.base = path.dirname(file.path); + console.log(`copying ${file.path}`) + done(null, file); + })) + // Antora disabled symlinks, there is an issue open + // https://gitlab.com/antora/antora/issues/188 + // to reinstate symlink support, until that's resolved + // we'll simply copy over instead of creating symlinks + // .pipe(symlink('components/modules/ROOT/pages/', { + // relativeSymlinks: true + // })); + // uncomment above .pipe() and remove the .pipe() below + // when antora#188 is resolved + .pipe(insertSourceAttribute()) + .pipe(dest('components/modules/languages/pages/')); +} + function createComponentImageSymlinks() { return src('../components/{*,*/*}/src/main/docs/*.png') .pipe(map((file, done) => { @@ -124,30 +149,45 @@ function insertSourceAttribute() { function createComponentNav() { return src('component-nav.adoc.template') .pipe(insertGeneratedNotice()) - .pipe(inject(src(['../core/camel-base/src/main/docs/*-component.adoc', '../components/{*,*/*}/src/main/docs/*.adoc']).pipe(sort()), { + .pipe(inject(src(['components/modules/ROOT/pages/**/*.adoc']).pipe(sort()), { removeTags: true, transform: (filename, file) => { const filepath = path.basename(filename); const title = titleFrom(file); - return `* xref:${filepath}[${title}]`; + return `** xref:${filepath}[${title}]`; } })) .pipe(rename('nav.adoc')) .pipe(dest('components/modules/ROOT/')) } -function createUserManualNav() { - return src('user-manual-nav.adoc.template') +function createComponentLanguagesNav() { + return src('component-languages-nav.adoc.template') .pipe(insertGeneratedNotice()) - .pipe(inject(src('../core/camel-core-languages/src/main/docs/modules/languages/pages/*.adoc').pipe(sort()), { + .pipe(inject(src(['components/modules/languages/pages/**/*.adoc', '../core/camel-core-languages/src/main/docs/modules/languages/pages/*.adoc']).pipe(sort()), { removeTags: true, - name: 'languages', transform: (filename, file) => { const filepath = path.basename(filename); const title = titleFrom(file); - return ` ** xref:languages:${filepath}[${title}]`; + return `** xref:${filepath}[${title}]`; } })) + .pipe(rename('nav.adoc')) + .pipe(dest('components/modules/languages/')) +} + +function createUserManualNav() { + return src('user-manual-nav.adoc.template') + .pipe(insertGeneratedNotice()) + // .pipe(inject(src('../core/camel-core-languages/src/main/docs/modules/languages/pages/*.adoc').pipe(sort()), { + // removeTags: true, + // name: 'languages', + // transform: (filename, file) => { + // const filepath = path.basename(filename); + // const title = titleFrom(file); + // return ` ** xref:languages:${filepath}[${title}]`; + // } + // })) .pipe(inject(src('../core/camel-core-engine/src/main/docs/modules/eips/pages/*.adoc').pipe(sort()), { removeTags: true, name: 'eips', @@ -168,6 +208,7 @@ const extractExamples = function(file, enc, next) { let exampleFiles = new Set() while (example = includes.exec(asciidoc)) { let examplePath = path.resolve(path.join('..', example[1])); + // console.log(`examplePath: ${examplePath}`) exampleFiles.add(examplePath); } @@ -190,6 +231,18 @@ function createUserManualExamples() { .pipe(dest('user-manual/modules/ROOT/examples/')); } +function createUserManualEIPExamples() { + return src('../core/camel-core-engine/src/main/docs/user-manual/modules/eips/**/*.adoc') + .pipe(through2.obj(extractExamples)) + .pipe(dest('user-manual/modules/ROOT/examples/')); +} + +function createUserManualLanguageExamples() { + return src('../core/camel-core-languages/src/main/docs/user-manual/modules/languages/**/*.adoc') + .pipe(through2.obj(extractExamples)) + .pipe(dest('user-manual/modules/ROOT/examples/')); +} + function createComponentExamples() { return src('../components/{*,*/*}/src/main/docs/*.adoc') .pipe(through2.obj(extractExamples)) @@ -197,12 +250,12 @@ function createComponentExamples() { } const symlinks = parallel( - series(deleteComponentSymlinks, createComponentSymlinks), + series(deleteComponentSymlinks, createComponentSymlinks, createComponentLanguageSymlinks), series(deleteComponentImageSymlinks, createComponentImageSymlinks) // series(deleteUserManualSymlinks, createUserManualSymlinks) ); -const nav = parallel(createComponentNav, createUserManualNav); -const examples = series(deleteExamples, createUserManualExamples, createComponentExamples); +const nav = parallel(createComponentNav, createComponentLanguagesNav, createUserManualNav); +const examples = series(deleteExamples, createUserManualExamples, createUserManualEIPExamples, createUserManualLanguageExamples, createComponentExamples); exports.symlinks = symlinks; exports.nav = nav; diff --git a/docs/package.json b/docs/package.json index b28be99..f338d23 100644 --- a/docs/package.json +++ b/docs/package.json @@ -7,6 +7,7 @@ "del": "^3.0.0", "gulp": "^4.0.0", "gulp-cli": "^2.0.1", + "gulp-filter": "^6.0.0", "gulp-inject": "^5.0.2", "gulp-rename": "^1.4.0", "gulp-replace": "^1.0.0", diff --git a/docs/user-manual-nav.adoc.template b/docs/user-manual-nav.adoc.template index 7a697b0..8fd21cd 100644 --- a/docs/user-manual-nav.adoc.template +++ b/docs/user-manual-nav.adoc.template @@ -50,9 +50,7 @@ ** xref:java-dsl.adoc[Java DSL] ** xref:spring.adoc[Spring support] * xref:using-osgi-blueprint-with-camel.adoc[Using OSGi blueprint with Camel] -* Supported expression languages -<!-- languages:adoc --> -<!-- endinject --> +* Supported expression languages -- see Components documentation * xref:enterprise-integration-patterns.adoc[Enterprise Integration Patterns] <!-- eips:adoc --> <!-- endinject -->