diff --git a/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/CmdGenerateDocumentation.java b/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/CmdGenerateDocumentation.java index 7dd53b1188fee..9a7a80afcfdbc 100644 --- a/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/CmdGenerateDocumentation.java +++ b/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/CmdGenerateDocumentation.java @@ -45,10 +45,16 @@ public int run() throws PulsarClientException { JCommander commander = pulsarClientTool.commandParser; if (commandNames.size() == 0) { for (Map.Entry cmd : commander.getCommands().entrySet()) { + if (cmd.getKey().equals("generate_documentation")) { + continue; + } generateDocument(cmd.getKey(), commander); } } else { for (String commandName : commandNames) { + if (commandName.equals("generate_documentation")) { + continue; + } generateDocument(commandName, commander); } } diff --git a/site2/tools/build-site.sh b/site2/tools/build-site.sh index 9ef839460b24f..48d8d34c8dc83 100755 --- a/site2/tools/build-site.sh +++ b/site2/tools/build-site.sh @@ -96,6 +96,7 @@ node ./scripts/split-swagger-by-version.js # Generate document for command line tools. ${ROOT_DIR}/site2/tools/pulsar-admin-doc-gen.sh +${ROOT_DIR}/site2/tools/pulsar-client-doc-gen.sh cd ${ROOT_DIR}/site2/website rm -rf ${ROOT_DIR}/generated-site/content diff --git a/site2/tools/pulsar-admin-doc-gen.sh b/site2/tools/pulsar-admin-doc-gen.sh index cb851d89a4b8f..6fcd5557260fe 100755 --- a/site2/tools/pulsar-admin-doc-gen.sh +++ b/site2/tools/pulsar-admin-doc-gen.sh @@ -43,6 +43,7 @@ $ROOT_DIR/bin/pulsar-admin documents generate schemas > $ROOT_DIR/site2/website/ $ROOT_DIR/bin/pulsar-admin documents generate packages > $ROOT_DIR/site2/website/brodocs/documents/packages.md cd $ROOT_DIR/site2/website/brodocs +cp pulsar-admin-manifest.json manifest.json node brodoc.js cp index.html $DEST_DIR/tools/pulsar-admin/${VERSION}/ diff --git a/site2/tools/pulsar-client-doc-gen.sh b/site2/tools/pulsar-client-doc-gen.sh new file mode 100755 index 0000000000000..99b2b57cefbfc --- /dev/null +++ b/site2/tools/pulsar-client-doc-gen.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +ROOT_DIR=$(git rev-parse --show-toplevel) +VERSION=`${ROOT_DIR}/src/get-project-version.py` +DEST_DIR=$ROOT_DIR/generated-site + +cd $ROOT_DIR + +mkdir -p $DEST_DIR/tools/pulsar-client/${VERSION} +mkdir -p $DEST_DIR/tools/pulsar-client/${VERSION}/node_modules +mkdir -p $ROOT_DIR/site2/website/brodocs/documents + +$ROOT_DIR/bin/pulsar-client generate_documentation > $ROOT_DIR/site2/website/brodocs/documents/pulsar-client.md + +cd $ROOT_DIR/site2/website/brodocs +cp pulsar-client-manifest.json manifest.json +node brodoc.js + +cp index.html $DEST_DIR/tools/pulsar-client/${VERSION}/ +cp navData.js stylesheet.css $DEST_DIR/tools/pulsar-client/${VERSION}/ +cp scroll.js tabvisibility.js $DEST_DIR/tools/pulsar-client/${VERSION}/ +cp favicon.ico $DEST_DIR/tools/pulsar-client/${VERSION}/ +mkdir -p $DEST_DIR/tools/pulsar-client/${VERSION}/node_modules/bootstrap/dist/css +cp -r $ROOT_DIR/site2/website/node_modules/bootstrap/dist/css/bootstrap.min.css $DEST_DIR/tools/pulsar-client/${VERSION}/node_modules/bootstrap/dist/css +mkdir -p $DEST_DIR/tools/pulsar-client/${VERSION}/node_modules/font-awesome/css +cp -r $ROOT_DIR/site2/website/node_modules/font-awesome/css/font-awesome.min.css $DEST_DIR/tools/pulsar-client/${VERSION}/node_modules/font-awesome/css +mkdir -p $DEST_DIR/tools/pulsar-client/${VERSION}/node_modules/highlight.js/styles +cp -r $ROOT_DIR/site2/website/node_modules/highlight.js/styles/default.css $DEST_DIR/tools/pulsar-client/${VERSION}/node_modules/highlight.js/styles +mkdir -p $DEST_DIR/tools/pulsar-client/${VERSION}/node_modules/jquery/dist +cp -r $ROOT_DIR/site2/website/node_modules/jquery/dist/jquery.min.js $DEST_DIR/tools/pulsar-client/${VERSION}/node_modules/jquery/dist/ +mkdir -p $DEST_DIR/tools/pulsar-client/${VERSION}/node_modules/jquery.scrollto +cp -r $ROOT_DIR/site2/website/node_modules/jquery.scrollto/jquery.scrollTo.min.js $DEST_DIR/tools/pulsar-client/${VERSION}/node_modules/jquery.scrollto + + diff --git a/site2/website/brodocs/pulsar-admin-manifest.json b/site2/website/brodocs/pulsar-admin-manifest.json new file mode 100644 index 0000000000000..078b9961aff28 --- /dev/null +++ b/site2/website/brodocs/pulsar-admin-manifest.json @@ -0,0 +1,42 @@ +{ + "docs": [ + { + "filename": "brokers.md" + }, + { + "filename": "broker-stats.md" + }, + { + "filename": "clusters.md" + }, + { + "filename": "functions.md" + }, + { + "filename": "namespaces.md" + }, + { + "filename": "ns-isolation-policy.md" + }, + { + "filename": "sources.md" + }, + { + "filename": "sinks.md" + }, + { + "filename": "topics.md" + }, + { + "filename": "tenants.md" + }, + { + "filename": "resource-quotas.md" + }, + { + "filename": "schemas.md" + } + ], + "title": "Docs", + "copyright": "Apache Pulsar" +} diff --git a/site2/website/brodocs/pulsar-client-manifest.json b/site2/website/brodocs/pulsar-client-manifest.json new file mode 100644 index 0000000000000..b48d6b4471b62 --- /dev/null +++ b/site2/website/brodocs/pulsar-client-manifest.json @@ -0,0 +1,9 @@ +{ + "docs": [ + { + "filename": "pulsar-client.md" + } + ], + "title": "Docs", + "copyright": "Apache Pulsar" +} diff --git a/site2/website/pages/en/pulsar-admin-cli.js b/site2/website/pages/en/pulsar-admin-cli.js index 42108c1f645d7..dd7b39530a650 100644 --- a/site2/website/pages/en/pulsar-admin-cli.js +++ b/site2/website/pages/en/pulsar-admin-cli.js @@ -13,6 +13,7 @@ class PulsarAdminCli extends React.Component {
{latestVersion} + pulsar-admin
diff --git a/site2/website/pages/en/pulsar-client-cli.js b/site2/website/pages/en/pulsar-client-cli.js new file mode 100644 index 0000000000000..382f1622dde9e --- /dev/null +++ b/site2/website/pages/en/pulsar-client-cli.js @@ -0,0 +1,24 @@ +const React = require('react'); +const CompLibrary = require('../../core/CompLibrary.js'); + +const Container = CompLibrary.Container; +const CWD = process.cwd(); +const releases = require(`${CWD}/releases.json`); + +class PulsarClientCli extends React.Component { + render() { + const latestVersion = releases[0]; + const url = "../js/getCliByVersion.js?latestVersion=" + latestVersion; + return ( +
+ + {latestVersion} + pulsar-client + + +
+ ); + } +} + +module.exports = PulsarClientCli; diff --git a/site2/website/static/js/custom.js b/site2/website/static/js/custom.js index 39e7fc17fbf10..b23111235dcfb 100644 --- a/site2/website/static/js/custom.js +++ b/site2/website/static/js/custom.js @@ -114,6 +114,7 @@ window.addEventListener('load', function () { '
' + '' + '
' + ''; diff --git a/site2/website/static/js/getCliByVersion.js b/site2/website/static/js/getCliByVersion.js index d2b6b970e177d..54a599322c76e 100644 --- a/site2/website/static/js/getCliByVersion.js +++ b/site2/website/static/js/getCliByVersion.js @@ -1,6 +1,10 @@ function getCliByVersion(){ var params = window.location.search var latestVersion = document.getElementById("latestVersion").textContent + var clientModule = document.getElementById("clientModule").textContent + if (!clientModule) { + clientModule = "pulsar-admin" + } params = params.replace('?', '') const paramsList = params.split('&') var version = 'master' @@ -18,18 +22,26 @@ function getCliByVersion(){ var versions = version.split('.') var majorVersion = parseInt(versions[0]) var minorVersion = parseInt(versions[1]) - if ((majorVersion == 2 && minorVersion <= 5) || majorVersion === 1) { - if (version === latestVersion) { - window.location.href = "/docs/en/pulsar-admin" - return + var minMinorVersion = 5 + var referenceLink = "/pulsar-admin" + if (clientModule === "pulsar-client") { + minMinorVersion = 7 + referenceLink = "/reference-cli-tools/#pulsar-client" + } + if (clientModule === "pulsar-admin") { + if ((majorVersion == 2 && minorVersion <= minMinorVersion) || majorVersion === 1) { + if (version === latestVersion) { + window.location.href = "/docs/en" + referenceLink + return + } else { + window.location.href = "/docs/en/" + version + referenceLink + return + } } else { - window.location.href = "/docs/en/" + version + "/pulsar-admin" + version = parseInt(versions[0]) + "." + parseInt(versions[1]) + ".0" + window.location.href = "http://pulsar.apache.org/tools/ + " + clientModule + "/" + version + "-SNAPSHOT" return } - } else { - version = parseInt(versions[0]) + "." + parseInt(versions[1]) + ".0" - window.location.href = "http://pulsar.apache.org/tools/pulsar-admin/" + version + "-SNAPSHOT" - return } } window.onload=getCliByVersion