27b7b453a9
* Update metadata.generation behaviour for custom resources (#10705) * update docs promoting plugins to beta (#10796) * docs update to promote TaintBasedEvictions to beta (#10765) * First Korean l10n work for dev-1.13 (#10719) * Update outdated l10n(ko) contents (#10689) fixes #10686 * Translate concepts/overview/what-is-kubernetes in Korean (#10690) * Translate concepts/overview/what-is-kubernetes in Korean * Feedback from ClaudiaJKang * Translate concepts/overview/components in Korean (#10882) * Translate concepts/overview/components in Korean #10717 * Translate concepts/overview/components in Korean * Translate concepts/overview/components in Korean * Apply Korean glossary: 서비스 어카운트 * Translate concepts/overview/kubernetes-api in Korean (#10773) * Translate concepts/overview/kubernetes-api in Korean * Applied feedback from ianychoi * kubeadm: update the configuration docs to v1beta1 (#10959) * kubeadm: add small v1beta1 related updates (#10988) * ADD content/zh/docs/reference/setup-tools/kubeadm/kubeadm.md (#11031) * ADD content/zh/docs/reference/setup-tools/kubeadm/kubeadm.md * ADD content/zh/docs/reference/setup-tools/kubeadm/generated/kubeadm_init.md * Update content/zh/docs/reference/setup-tools/kubeadm/kubeadm.md Accepted Co-Authored-By: YouthLab <tsui@highyouth.com> * do not change 'master' or 'worker' nodes to '主从' * Doc updates for volume scheduling GA (#10743) * Doc updates for volume scheduling GA * Make trivial change to kick build * Document nodelease feature (#10699) * advanced audit doc for ModeBlockingStrict (#10203) * Rename EncryptionConfig to EncryptionConfiguration (#11080) EncryptionConfig was renamed to EncryptedConfiguration and added to the `apiserver.config.k8s.io` API group in Kubernetes 1.13. The feature was previously in alpha and was not handling versions properly, which lead to an originally unnoticed `v1` in the docs. * content/zh/docs/reference/setup-tools/kubeadm/kubeadm-init.md * trsanlate create-cluster-kubeadm.md to chinese (#11041) * trsanlate create-cluster-kubeadm.md to chinese * Update create-cluster-kubeadm.md * update the feature stage in v1.13 (#11307) * update new feature gates to document (#11295) * refresh controller role list on rbac description page (#11290) * node labeling restriction docs (#10944) * Update 1.13 docs for CSI GA (#10893) * dynamic audit documentation (#9947) * adds dynamic audit documentation * Copyedit for clarity See also inline question/s * Fix feature state shortcode * Update feature state * changes wording for dynamic audit flag behavior * Minor copyedit * fix dynamic audit yaml * adds api enablement command to dynamic audit docs * change ordering dynamic audit appears in * add references to dynamic audit in webhook backend * reword dynamic audit reference * updates stages field for audit sink object * changes audit sink api definition; rewords policy * kubeadm: remove kube-proxy workaround (#11162) * zh-trans content/en/docs/setup/independent/install-kubeadm.md (#11338) * zh-trans content/en/docs/setup/independent/install-kubeadm.md * Update install-kubeadm.md * Update dry run feature to beta (#11140) * vSphere volume raw block support doc update (#10932) * Add docs for Windows DNS configurations (#10036) * Update docs for fields allowed at root of CRD schema (#9973) * Add docs for Windows DNS configurations * add device monitoring documentation (#9945) * kubeadm: adds upgrade instructions for 1.13 (#11138) * kubeadm: adds upgrade instructions for 1.13 Signed-off-by: Chuck Ha <ha.chuck@gmail.com> * add minor copyedits Addressed a couple of copyedit comments a bit more cleanly. * kubeadm: add improvements to HA docs (#11094) * kubeadm: add information and diagrams for HA topologies * kubeadm: update HA doc with simplified steps * kubeadm: update HA doc with simplified steps * edit ha, add new topology topic, reorder by weight * troubleshoot markdown * fix more markdown, fix links * more markdown * more markdown * more markdown * changes after reviewer comments * add steps about Weave * update note about stacked topology * kubeadm external etcd HA upgrade 1.13 (#11364) * kubeadm external etcd HA upgrade 1.13 Signed-off-by: Ruben Orduz <rubenoz@gmail.com> * Update stacked controlplane steps * kubeadm cert documentation (#11093) * kubeadm certificate API and CSR documentation * copyedits * fix typo * PR for diff docs (#10789) * Empty commit against dev-1.13 for diff documentation * Complete Declarative maangement with diff commands * Second Korean l10n work for dev-1.13. (#11030) * Update outdated l10n(ko) contents (#10915) * Translate main menu for l10n(ko) docs (#10916) * Translate tasks/run-application/horizontal-pod-autoscale-walkthrough (#10980) * Translate content/ko/docs/concepts/overview/working-with-objects/kubernetes-object in Korean #11104 (#11332) * Pick-right-solution page translates into Korean. (#11340) * ko-trans: add jd/..., sap/..., ebay/..., homeoffice/... (#11336) * Translate concept/workloads/pods/pod-overview.md (#11092) Co-authored-by: June Yi <june.yi@samsung.com> Co-authored-by: Jesang Myung <jesang.myung@gmail.com> Co-authored-by: zerobig <38598117+zer0big@users.noreply.github.com> Co-authored-by: Claudia J.Kang <claudiajkang@gmail.com> Co-authored-by: lIuDuI <1693291525@qq.com> Co-authored-by: Woojin Na(Eddie) <cheapluv@gmail.com> * Rename encryption-at-rest related objects (#11059) EncryptionConfig was renamed to EncryptedConfiguration and added to the `apiserver.config.k8s.io` API group in Kubernetes 1.13. The feature was previously in alpha and was not handling versions properly, which lead to an originally unnoticed `v1` in the docs. Also, the `--experimental-encryption-provider-config` flag is now called just `--encryption-provider-config`. * Documenting FlexVolume Resize alpha feature. (#10097) * CR webhook conversion documentation (#10986) * CR Conversion * Addressing comments * Addressing more comments * Addressing even more comments * Addressing even^2 more comments * Remove references to etcd2 in v1.13 since support has been removed (#11414) * Remove etcd2 references as etcd2 is deprecated Link back to the v1.12 version of the etcd3 doc for the etcd2->etcd3 migration instructions. I updated the kube-apiserver reference manually, unsure if that is auto-generated somehow. The federation-apiserver can still potentially support etcd2 so I didn't touch that. * Remove outdated {master,node}.yaml files There are master/node yaml files that reference etcd2.service that are likely highly out of date. I couldn't find any docs that actually reference these templates so I removed them * Address review comments * Final Korean l10n work for dev-1.13 (#11440) * Update outdated l10n(ko) contents (#11425) fixes #11424 * Remove references to etcd2 in content/ko (#11416) * Resolve conflicts against master for /ko contents (#11438) * Fix unopened caution shortcode * kubeadm: update the reference docs for 1.13 (#10960) * docs update to promote TaintBasedEvictions to beta (#10765) * First Korean l10n work for dev-1.13 (#10719) * Update outdated l10n(ko) contents (#10689) fixes #10686 * Translate concepts/overview/what-is-kubernetes in Korean (#10690) * Translate concepts/overview/what-is-kubernetes in Korean * Feedback from ClaudiaJKang * Translate concepts/overview/components in Korean (#10882) * Translate concepts/overview/components in Korean #10717 * Translate concepts/overview/components in Korean * Translate concepts/overview/components in Korean * Apply Korean glossary: 서비스 어카운트 * Translate concepts/overview/kubernetes-api in Korean (#10773) * Translate concepts/overview/kubernetes-api in Korean * Applied feedback from ianychoi * kubeadm: update the configuration docs to v1beta1 (#10959) * kubeadm: add small v1beta1 related updates (#10988) * update new feature gates to document (#11295) * Update dry run feature to beta (#11140) * kubeadm: add improvements to HA docs (#11094) * kubeadm: add information and diagrams for HA topologies * kubeadm: update HA doc with simplified steps * kubeadm: update HA doc with simplified steps * edit ha, add new topology topic, reorder by weight * troubleshoot markdown * fix more markdown, fix links * more markdown * more markdown * more markdown * changes after reviewer comments * add steps about Weave * update note about stacked topology * kubeadm: update reference docs - add section about working with phases under kubeadm-init.md - update GA / beta status of features - kubeadm alpha phase was moved to kubeadm init phase - new commands were added under kubeadm alpha - included new CoreDNS usage examples * Generate components and tools reference * Add generated federation API Reference (#11491) * Add generated federation API Reference * Add front matter to federation reference * Remove whitespace from federation front matter * Remove more whitespace from federation front matter * Remove superfluous kubefed reference * Add frontmatter to generated kubefed reference * Fix kubefed reference page frontmatter * Generate kubectl reference docs 1.13 (#11487) * Generate kubectl reference docs 1.13 * Fix links in kubectl reference * Add 1.13 API reference (#11489) * Update config.toml (#11486) * Update config.toml Preparing for 1.13 release, updating the config.toml and dropping the 1.8 docs reference. * update dot releases and docsbranch typo * adding .Site. to Params.currentUrl (#11503) see https://github.com/kubernetes/website/pull/11502 for context * Add 1.13 Release notes (#11499)
196 lines
6.9 KiB
JavaScript
196 lines
6.9 KiB
JavaScript
$(document).ready(function() {
|
|
|
|
/**
|
|
* TODO: Refactor with intent toward pure functions. Mutation of state can lead to bugs and difficult debugging.
|
|
*/
|
|
|
|
var toc = navData.toc;
|
|
var flatToc = navData.flatToc.reverse();
|
|
|
|
function collectNodes(tocMap) {
|
|
var tocNodes = {};
|
|
tocMap.map(function(node, index) {
|
|
var sectionNode = $('#' + node.section);
|
|
var tocSubsections = {};
|
|
tocItem = {section: sectionNode};
|
|
var subsectionNodes;
|
|
if (node.subsections) {
|
|
subsectionNodes = (collectNodes(node.subsections));
|
|
tocItem.subsections = subsectionNodes;
|
|
}
|
|
tocNodes[node.section] = tocItem;
|
|
});
|
|
return tocNodes;
|
|
}
|
|
var tocItems = collectNodes(toc);
|
|
|
|
function collectNodesFlat(tocMap, obj) {
|
|
var collect = obj || {};
|
|
tocMap.map(function(node, index) {
|
|
var sectionNode = $('#' + node.section);
|
|
tocItem = {section: sectionNode};
|
|
if (node.subsections) {
|
|
subsectionNodes = (collectNodesFlat(node.subsections, collect));
|
|
}
|
|
collect[node.section] = sectionNode;
|
|
});
|
|
return collect;
|
|
}
|
|
var tocFlat = collectNodesFlat(toc);
|
|
|
|
var prevSectionToken;
|
|
var prevSubsectionToken;
|
|
var activeTokensObj = {};
|
|
|
|
function scrollActions(scrollPosition) {
|
|
var activeSection = checkNodePositions(toc, tocFlat, scrollPosition);
|
|
var activeSubSection,
|
|
prevL1Nav,
|
|
currL1Nav,
|
|
prevL2Nav,
|
|
currL2Nav;
|
|
|
|
// No active section - return existing activeTokensObj (may be empty)
|
|
if (!activeSection) {
|
|
return activeTokensObj;
|
|
}
|
|
|
|
/**
|
|
* This block deals with L1Nav sections
|
|
*/
|
|
|
|
// If no previous token, set previous to current active and show L1Nav
|
|
if (!prevSectionToken) {
|
|
prevSectionToken = activeSection.token;
|
|
currL1Nav = getNavNode(activeSection.token);
|
|
currL1Nav.show('fast');
|
|
}
|
|
// If active active is not the same as previous, hide previous L1Nav and show current L1Nav; set previous to current
|
|
else if (activeSection.token !== prevSectionToken) {
|
|
prevL1Nav = getNavNode(prevSectionToken);
|
|
currL1Nav = getNavNode(activeSection.token);
|
|
prevL1Nav.hide('fast');
|
|
currL1Nav.show('fast');
|
|
prevSectionToken = activeSection.token;
|
|
}
|
|
|
|
/**
|
|
* This block deals with L2Nav subsections
|
|
*/
|
|
|
|
// If there is a subsections array and it has a non-zero length, set active subsection
|
|
if (activeSection.subsections && activeSection.subsections.length !== 0) {
|
|
activeSubSection = checkNodePositions(activeSection.subsections, tocFlat, scrollPosition);
|
|
if (activeSubSection) {
|
|
if (!prevSubsectionToken) {
|
|
prevSubsectionToken = activeSubSection.token;
|
|
currL2Nav = getNavNode(activeSubSection.token);
|
|
currL2Nav.show('fast');
|
|
} else if (activeSubSection.token !== prevSubsectionToken) {
|
|
prevL2Nav = getNavNode(prevSubsectionToken);
|
|
currL2Nav = getNavNode(activeSubSection.token);
|
|
prevL2Nav.hide('fast');
|
|
currL2Nav.show('fast');
|
|
prevSubsectionToken = activeSubSection.token;
|
|
}
|
|
} else {
|
|
prevL2Nav = getNavNode(prevSubsectionToken);
|
|
prevL2Nav.hide('fast');
|
|
prevSubsectionToken = null;
|
|
}
|
|
}
|
|
activeTokensObj.L1 = prevSectionToken;
|
|
activeTokensObj.L2 = prevSubsectionToken;
|
|
return activeTokensObj;
|
|
}
|
|
|
|
/**
|
|
* Checks for active elements by scroll position
|
|
*/
|
|
|
|
var prevElemToken;
|
|
var activeElemToken;
|
|
|
|
function checkActiveElement(items, scrollPosition) {
|
|
var offset = 50;
|
|
var offsetScroll = scrollPosition + offset;
|
|
var visibleNode;
|
|
for (var i = 0; i < items.length; i++) {
|
|
var token = items[i];
|
|
var node = getHeadingNode(token);
|
|
if (offsetScroll >= node.offset().top) {
|
|
activeElemToken = token;
|
|
}
|
|
}
|
|
if (!prevElemToken) {
|
|
getNavElemNode(activeElemToken).addClass('selected');
|
|
prevElemToken = activeElemToken;
|
|
return;
|
|
}
|
|
if (activeElemToken !== prevElemToken) {
|
|
getNavElemNode(prevElemToken).removeClass('selected');
|
|
getNavElemNode(activeElemToken).addClass('selected');
|
|
prevElemToken = activeElemToken;
|
|
}
|
|
return activeElemToken;
|
|
}
|
|
|
|
function getHeadingNode(token) {
|
|
return $('#' + token);
|
|
}
|
|
|
|
function getNavNode(token) {
|
|
return $('#' + token + '-nav');
|
|
}
|
|
|
|
function getNavElemNode(token) {
|
|
return $('#sidebar-wrapper > ul a[href="#' + token + '"]');
|
|
}
|
|
|
|
function checkNodePositions(nodes, flatNodeMap, scrollPosition) {
|
|
var activeNode;
|
|
for (var i = 0; i < nodes.length; i++) {
|
|
var item = nodes[i];
|
|
var node = flatNodeMap[item.section];
|
|
var nodeTop = node.offset().top - 50;
|
|
if (scrollPosition >= nodeTop) {
|
|
activeNode = {token: item.section, node: node};
|
|
|
|
if (item.subsections) {
|
|
activeNode.subsections = item.subsections;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
return activeNode;
|
|
}
|
|
|
|
function scrollToNav(token) {
|
|
setTimeout(function() {
|
|
var scrollPosition = $(window).scrollTop();
|
|
var activeSectionTokens = scrollActions(scrollPosition);
|
|
var activeElemToken = checkActiveElement(flatToc, scrollPosition);
|
|
var navNode = $('#sidebar-wrapper > ul a[href="#' + token + '"]');
|
|
$('#sidebar-wrapper').scrollTo(navNode, {duration: 'fast', axis: 'y'});
|
|
}, 200);
|
|
}
|
|
|
|
$(window).on('hashchange', function(event) {
|
|
var scrollPosition = $(window).scrollTop();
|
|
var activeSectionTokens = scrollActions(scrollPosition);
|
|
var activeElemToken = checkActiveElement(flatToc, scrollPosition);
|
|
var scrollToken = activeSectionTokens.L2 ? activeSectionTokens.L2 : activeSectionTokens.L1;
|
|
scrollToNav(scrollToken);
|
|
var token = location.hash.slice(1);
|
|
});
|
|
|
|
var scrollPosition = $(window).scrollTop();
|
|
scrollActions(scrollPosition);
|
|
checkActiveElement(flatToc, scrollPosition);
|
|
// TODO: prevent scroll on sidebar from propogating to window
|
|
$(window).on('scroll', function(event) {
|
|
var scrollPosition = $(window).scrollTop();
|
|
var activeSectionTokens = scrollActions(scrollPosition);
|
|
var activeElemToken = checkActiveElement(flatToc, scrollPosition);
|
|
});
|
|
}); |