add processing of kubectl cmd links (#16529)

- add processing of kubectl links in update-imported-docs.
- update component reference generation guide.
- For more information, see issue #16454.
This commit is contained in:
Karen Bradshaw
2019-09-24 03:59:25 -04:00
committed by Kubernetes Prow Robot
parent 5807a91689
commit 444ef3486e
3 changed files with 58 additions and 35 deletions
+22 -22
View File
@@ -8,7 +8,7 @@ repos:
cd $GOPATH
git clone https://github.com/kubernetes/kubernetes.git src/k8s.io/kubernetes
cd src/k8s.io/kubernetes
git checkout release-1.14
git checkout release-1.16
make generated_files
cp -L -R vendor $GOPATH/src
rm -r vendor
@@ -36,25 +36,25 @@ repos:
- src: gen-compdocs/build/kubeadm*.md
dst: content/en/docs/reference/setup-tools/kubeadm/generated/
- name: federation
remote: https://github.com/kubernetes/federation.git
#- name: federation
# remote: https://github.com/kubernetes/federation.git
# Change this to a release branch when federation has release branches.
branch: master
generate-command: hack/generate-docs.sh
files:
- src: docs/admin/federation-apiserver.md
dst: content/en/docs/reference/command-line-tools-reference/federation-apiserver.md
- src: docs/admin/federation-controller-manager.md
dst: content/en/docs/reference/command-line-tools-reference/federation-controller-manager.md
- src: docs/admin/kubefed_init.md
dst: content/en/docs/reference/setup-tools/kubefed/kubefed_init.md
- src: docs/admin/kubefed_join.md
dst: content/en/docs/reference/setup-tools/kubefed/kubefed_join.md
- src: docs/admin/kubefed.md
dst: content/en/docs/reference/setup-tools/kubefed/kubefed.md
- src: docs/admin/kubefed_options.md
dst: content/en/docs/reference/setup-tools/kubefed/kubefed_options.md
- src: docs/admin/kubefed_unjoin.md
dst: content/en/docs/reference/setup-tools/kubefed/kubefed_unjoin.md
- src: docs/admin/kubefed_version.md
dst: content/en/docs/reference/setup-tools/kubefed/kubefed_version.md
# branch: master
# generate-command: hack/generate-docs.sh
# files:
# - src: docs/admin/federation-apiserver.md
# dst: content/en/docs/reference/command-line-tools-reference/federation-apiserver.md
# - src: docs/admin/federation-controller-manager.md
# dst: content/en/docs/reference/command-line-tools-reference/federation-controller-manager.md
# - src: docs/admin/kubefed_init.md
# dst: content/en/docs/reference/setup-tools/kubefed/kubefed_init.md
# - src: docs/admin/kubefed_join.md
# dst: content/en/docs/reference/setup-tools/kubefed/kubefed_join.md
# - src: docs/admin/kubefed.md
# dst: content/en/docs/reference/setup-tools/kubefed/kubefed.md
# - src: docs/admin/kubefed_options.md
# dst: content/en/docs/reference/setup-tools/kubefed/kubefed_options.md
# - src: docs/admin/kubefed_unjoin.md
# dst: content/en/docs/reference/setup-tools/kubefed/kubefed_unjoin.md
# - src: docs/admin/kubefed_version.md
# dst: content/en/docs/reference/setup-tools/kubefed/kubefed_version.md
+26 -2
View File
@@ -25,9 +25,11 @@ def processLinks(content, remotePrefix, subPath):
target.startswith("mailto:") or
target.startswith("#")):
if target.startswith("/"):
target = "/".join(remotePrefix, target[1:])
targetList = remotePrefix, target[1:]
target = "/".join(targetList)
else:
target = "/".join(remotePrefix, subPath, target)
targetList = remotePrefix, subPath, target
target = "/".join(targetList)
return "[%s](%s)" % (ankor, target)
@@ -41,6 +43,25 @@ def processLinks(content, remotePrefix, subPath):
return content
def processKubectlLinks(content):
"""Update markdown links found in the SeeAlso section of kubectl page.
Example:[kubectl annotate](/docs/reference/generated/kubectl/kubectl-commands#annotate)
"""
def analyze(matchObj):
ankor = matchObj.group('ankor')
target = matchObj.group('target')
if (target.endswith(".md") and target.startswith("kubectl")):
ankorList = ankor.split("kubectl ")
target = "/docs/reference/generated/kubectl/kubectl-commands" + "#" + ankorList[1]
return "[%s](%s)" % (ankor, target)
# Links are in the form '[text](url)'
linkRegex = re.compile(r"\[(?P<ankor>.*)\]\((?P<target>.*?)\)")
content = re.sub(linkRegex, analyze, content)
return content
def processFile(src, dst, repoPath, repoDir, rootDir, genAbsoluteLinks):
"""Process a file element.
@@ -78,6 +99,9 @@ def processFile(src, dst, repoPath, repoDir, rootDir, genAbsoluteLinks):
srcDir = os.path.dirname(src)
remotePrefix = repoPath + "/tree/master"
content = processLinks(content, remotePrefix, srcDir)
if dst.endswith("kubectl.md"):
print("Processing kubectl links")
content = processKubectlLinks(content)
dstFile.write(content)
except Exception as ex:
print("[Error] failed in writing target file '%s': %s"