You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by dj...@apache.org on 2020/03/13 01:14:23 UTC

[camel] 15/18: separate languages nav file

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 <dj...@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 -->