Bazel DevSite: Add "create issue" & "view source" buttons to narrative documentation.
A future change will add the buttons to the reference docs (which is a bit more complex since there is no 1:1 relation between displayed page and source file).
PiperOrigin-RevId: 486889786
Change-Id: I2d0d1963f7c82ab7b17dbe257196e4f105fe94cb
diff --git a/site/en/_buttons.html b/site/en/_buttons.html
new file mode 100644
index 0000000..9fe704f
--- /dev/null
+++ b/site/en/_buttons.html
@@ -0,0 +1,6 @@
+<a class="button button-with-icon" href="https://github.com/bazelbuild/bazel/issues/new?title=%5Bbazel.build%5D+Problem+with+{% dynamic print request.path %}&labels=type%3A%20documentation%20%28cleanup%29" target="_blank">
+ Report an issue<span class="material-icons icon-after" aria-hidden="true">open_in_new</span>
+</a>
+<a class="button button-with-icon" href="https://github.com/bazelbuild/bazel/tree/master/site/en{% dynamic print request.path %}.md" target="_blank">
+ View source<span class="material-icons icon-after" aria-hidden="true">open_in_new</span>
+</a>
diff --git a/site/en/about/faq.md b/site/en/about/faq.md
index 89a2b19..e74ab4b 100644
--- a/site/en/about/faq.md
+++ b/site/en/about/faq.md
@@ -3,6 +3,8 @@
# FAQ
+{% include "_buttons.html" %}
+
If you have questions or need support, see [Getting Help](/help).
## What is Bazel?
diff --git a/site/en/about/intro.md b/site/en/about/intro.md
index c8ea978..8e33166 100644
--- a/site/en/about/intro.md
+++ b/site/en/about/intro.md
@@ -3,6 +3,8 @@
# Intro to Bazel
+{% include "_buttons.html" %}
+
Bazel is an open-source build and test tool similar to Make, Maven, and Gradle.
It uses a human-readable, high-level build language. Bazel supports projects in
multiple languages and builds outputs for multiple platforms. Bazel supports
diff --git a/site/en/about/roadmap.md b/site/en/about/roadmap.md
index e853014..f78b897 100644
--- a/site/en/about/roadmap.md
+++ b/site/en/about/roadmap.md
@@ -1,7 +1,11 @@
Project: /_project.yaml
Book: /_book.yaml
# Bazel roadmap
+
+{% include "_buttons.html" %}
+
## Overview
+
The Bazel project constantly evolves in response to your needs — developing features and providing support while maintaining, refactoring, and improving the performance of the core product.
With these changes, we’re looking to keep our open-source community informed and included. This roadmap describes current initiatives and predictions for the future of Bazel development, giving you visibility into current priorities and ongoing projects.
diff --git a/site/en/about/vision.md b/site/en/about/vision.md
index 36de246..45df1ff 100644
--- a/site/en/about/vision.md
+++ b/site/en/about/vision.md
@@ -3,6 +3,8 @@
# Bazel Vision
+{% include "_buttons.html" %}
+
Any software developer can efficiently build, test, and package
any project, of any size or complexity, with tooling that's easy to adopt and
extend.
diff --git a/site/en/basics/artifact-based-builds.md b/site/en/basics/artifact-based-builds.md
index 03d768a..1a648e6 100644
--- a/site/en/basics/artifact-based-builds.md
+++ b/site/en/basics/artifact-based-builds.md
@@ -3,6 +3,8 @@
# Artifact-Based Build Systems
+{% include "_buttons.html" %}
+
This page covers artifact-based build systems and the philosophy behind their
creation. Bazel is an artifact-based build system. While task-based build
systems are good step above build scripts, they give too much power to
diff --git a/site/en/basics/build-systems.md b/site/en/basics/build-systems.md
index 1e4185a..463f10d 100644
--- a/site/en/basics/build-systems.md
+++ b/site/en/basics/build-systems.md
@@ -3,6 +3,7 @@
# Why a Build System?
+{% include "_buttons.html" %}
This page discusses what build systems are, what they do, why you should use a
build system, and why compilers and build scripts aren't the best choice as your
diff --git a/site/en/basics/dependencies.md b/site/en/basics/dependencies.md
index 0b3af84..ce60217 100644
--- a/site/en/basics/dependencies.md
+++ b/site/en/basics/dependencies.md
@@ -3,6 +3,8 @@
# Dependency Management
+{% include "_buttons.html" %}
+
In looking through the previous pages, one theme repeats over and over: managing
your own code is fairly straightforward, but managing its dependencies is much
more difficult. There are all sorts of dependencies: sometimes there’s a
diff --git a/site/en/basics/distributed-builds.md b/site/en/basics/distributed-builds.md
index 324b343..475a909 100644
--- a/site/en/basics/distributed-builds.md
+++ b/site/en/basics/distributed-builds.md
@@ -3,6 +3,8 @@
# Distributed Builds
+{% include "_buttons.html" %}
+
When you have a large codebase, chains of dependencies can become very deep.
Even simple binaries can often depend on tens of thousands of build targets. At
this scale, it’s simply impossible to complete a build in a reasonable amount
diff --git a/site/en/basics/hermeticity.md b/site/en/basics/hermeticity.md
index 2a5f4e4..69d5daa 100644
--- a/site/en/basics/hermeticity.md
+++ b/site/en/basics/hermeticity.md
@@ -3,6 +3,8 @@
# Hermeticity
+{% include "_buttons.html" %}
+
This page covers hermeticity, the benefits of using hermetic builds, and
strategies for identifying non-hermetic behavior in your builds.
diff --git a/site/en/basics/index.md b/site/en/basics/index.md
index 82ff23a..747a227 100644
--- a/site/en/basics/index.md
+++ b/site/en/basics/index.md
@@ -3,6 +3,8 @@
# Build Basics
+{% include "_buttons.html" %}
+
A build system is one of the most important parts of an engineering organization
because each developer interacts with it potentially dozens or hundreds of times
per day. A fully featured build system is necessary to enable developer
diff --git a/site/en/basics/task-based-builds.md b/site/en/basics/task-based-builds.md
index 555e48b..4de9c8f 100644
--- a/site/en/basics/task-based-builds.md
+++ b/site/en/basics/task-based-builds.md
@@ -3,6 +3,8 @@
# Task-Based Build Systems
+{% include "_buttons.html" %}
+
This page covers task-based build systems, how they work and some of the
complications that can occur with task-based systems. After shell scripts,
task-based build systems are the next logical evolution of building.
diff --git a/site/en/build/bzlmod.md b/site/en/build/bzlmod.md
index bcf89dd..a2a2815 100644
--- a/site/en/build/bzlmod.md
+++ b/site/en/build/bzlmod.md
@@ -3,6 +3,8 @@
# Manage external dependencies with Bzlmod
+{% include "_buttons.html" %}
+
*Bzlmod* is the codename of the new [external dependency](/docs/external) system
introduced in Bazel 5.0. It was introduced to address several pain points of the
old system that couldn't feasibly be fixed incrementally; see the
diff --git a/site/en/build/external.md b/site/en/build/external.md
index 74d4b78..80fcf56 100644
--- a/site/en/build/external.md
+++ b/site/en/build/external.md
@@ -3,6 +3,8 @@
# Working with External Dependencies
+{% include "_buttons.html" %}
+
Bazel can depend on targets from other projects. Dependencies from these other
projects are called _external dependencies_.
diff --git a/site/en/build/share-variables.md b/site/en/build/share-variables.md
index 48d78c9..9bc436a 100644
--- a/site/en/build/share-variables.md
+++ b/site/en/build/share-variables.md
@@ -3,6 +3,8 @@
# Sharing Variables
+{% include "_buttons.html" %}
+
`BUILD` files are intended to be simple and declarative. They will typically
consist of a series of a target declarations. As your code base and your `BUILD`
files get larger, you will probably notice some duplication, such as:
diff --git a/site/en/build/style-guide.md b/site/en/build/style-guide.md
index 7a410d8..f1d5c91 100644
--- a/site/en/build/style-guide.md
+++ b/site/en/build/style-guide.md
@@ -3,6 +3,8 @@
# BUILD Style Guide
+{% include "_buttons.html" %}
+
`BUILD` file formatting follows the same approach as Go, where a standardized
tool takes care of most formatting issues.
[Buildifier](https://github.com/bazelbuild/buildifier){: .external} is a tool that parses and
diff --git a/site/en/community/recommended-rules.md b/site/en/community/recommended-rules.md
index 8112de7..c1a5061 100644
--- a/site/en/community/recommended-rules.md
+++ b/site/en/community/recommended-rules.md
@@ -3,6 +3,8 @@
# Recommended Rules
+{% include "_buttons.html" %}
+
In the documentation, we provide a list of
[recommended rules](/rules).
diff --git a/site/en/community/remote-execution-services.md b/site/en/community/remote-execution-services.md
index 0444c2c..209891e 100644
--- a/site/en/community/remote-execution-services.md
+++ b/site/en/community/remote-execution-services.md
@@ -3,6 +3,8 @@
# Remote Execution Services
+{% include "_buttons.html" %}
+
Use the following services to run Bazel with remote execution:
* Manual
diff --git a/site/en/community/roadmaps-build-api.md b/site/en/community/roadmaps-build-api.md
index 316200b..c896553 100644
--- a/site/en/community/roadmaps-build-api.md
+++ b/site/en/community/roadmaps-build-api.md
@@ -31,6 +31,8 @@
# Bazel Build API 2021 Roadmap
+{% include "_buttons.html" %}
+
*Last verified: 2021-04-09*
([update history](https://github.com/bazelbuild/bazel-website/commits/master/roadmaps/build-api.md))
diff --git a/site/en/community/roadmaps-configurability.md b/site/en/community/roadmaps-configurability.md
index 33ec5a5..7cba10f 100644
--- a/site/en/community/roadmaps-configurability.md
+++ b/site/en/community/roadmaps-configurability.md
@@ -31,6 +31,8 @@
# Bazel Configurability 2021 Roadmap
+{% include "_buttons.html" %}
+
*Last verified: 2021-01-25* ([update history](https://github.com/bazelbuild/bazel-website/commits/master/roadmaps/configuration.md))
*Point of contact:* [gregestren](https://github.com/gregestren)
diff --git a/site/en/community/roadmaps-starlark.md b/site/en/community/roadmaps-starlark.md
index 3359103..ae914b5 100644
--- a/site/en/community/roadmaps-starlark.md
+++ b/site/en/community/roadmaps-starlark.md
@@ -3,6 +3,8 @@
# Starlark Roadmap
+{% include "_buttons.html" %}
+
*Last verified: 2020-04-21*
([update history](https://github.com/bazelbuild/bazel-website/commits/master/roadmaps/starlark.md))
diff --git a/site/en/community/sig.md b/site/en/community/sig.md
index 9e810e3..ccb8872 100644
--- a/site/en/community/sig.md
+++ b/site/en/community/sig.md
@@ -3,6 +3,8 @@
# Bazel Special Interest Groups
+{% include "_buttons.html" %}
+
Bazel hosts Special Interest Groups (SIGs) to focus collaboration on particular
areas and to support communication and coordination between [Bazel owners,
maintainers, and contributors](/contribute/contribution-policy). This policy
diff --git a/site/en/community/update.md b/site/en/community/update.md
index 409cd57..701dedc 100644
--- a/site/en/community/update.md
+++ b/site/en/community/update.md
@@ -3,6 +3,8 @@
# Community updates
+{% include "_buttons.html" %}
+
Join Bazel developer relations engineers for the monthly community update
livestream, or catch up on past ones.
diff --git a/site/en/community/users.md b/site/en/community/users.md
index f2d46d6..4743628 100644
--- a/site/en/community/users.md
+++ b/site/en/community/users.md
@@ -3,6 +3,8 @@
# Who's Using Bazel
+{% include "_buttons.html" %}
+
Note: Using Bazel? You can add your company on
[StackShare](https://stackshare.io/bazel). To add yourself to this page,
contact [product@bazel.build](mailto:produc@bazel.build).
diff --git a/site/en/concepts/build-files.md b/site/en/concepts/build-files.md
index f093395..cf75f65 100644
--- a/site/en/concepts/build-files.md
+++ b/site/en/concepts/build-files.md
@@ -3,6 +3,8 @@
# BUILD files
+{% include "_buttons.html" %}
+
The previous sections described packages, targets and labels, and the
build dependency graph abstractly. This section describes the concrete syntax
used to define a package.
diff --git a/site/en/concepts/build-ref.md b/site/en/concepts/build-ref.md
index 086a8c2..282037c 100644
--- a/site/en/concepts/build-ref.md
+++ b/site/en/concepts/build-ref.md
@@ -3,13 +3,14 @@
# Workspaces, packages, and targets
+{% include "_buttons.html" %}
+
Bazel builds software from source code organized in a directory tree called
a workspace. Source files in the workspace are organized in a nested
hierarchy of packages, where each package is a directory that contains a set
of related source files and one `BUILD` file. The `BUILD` file specifies what
software outputs can be built from the source.
-
## Workspace {:#workspace}
A _workspace_ is a directory tree on your filesystem that contains the source
diff --git a/site/en/concepts/dependencies.md b/site/en/concepts/dependencies.md
index 90362c7..42a4743 100644
--- a/site/en/concepts/dependencies.md
+++ b/site/en/concepts/dependencies.md
@@ -3,6 +3,8 @@
# Dependencies
+{% include "_buttons.html" %}
+
A target `A` _depends upon_ a target `B` if `B` is needed by `A` at build or
execution time. The _depends upon_ relation induces a
[Directed Acyclic Graph](https://en.wikipedia.org/wiki/Directed_acyclic_graph){: .external}
diff --git a/site/en/concepts/labels.md b/site/en/concepts/labels.md
index 1745d90..ffda7d8 100644
--- a/site/en/concepts/labels.md
+++ b/site/en/concepts/labels.md
@@ -3,6 +3,7 @@
# Labels
+{% include "_buttons.html" %}
All targets belong to exactly one package. The name of a target is
called its _label_. Every label uniquely identifies a target. A
diff --git a/site/en/concepts/platforms.md b/site/en/concepts/platforms.md
index cbc6ab1..acd6188 100644
--- a/site/en/concepts/platforms.md
+++ b/site/en/concepts/platforms.md
@@ -3,6 +3,8 @@
# Building with Platforms
+{% include "_buttons.html" %}
+
Bazel has sophisticated support for modeling [platforms][Platforms] and
[toolchains][Toolchains]. Integrating this with real projects requires
careful cooperation between code owners, rule maintainers, and core Bazel devs.
diff --git a/site/en/concepts/visibility.md b/site/en/concepts/visibility.md
index 8bddd2b..8b395f5 100644
--- a/site/en/concepts/visibility.md
+++ b/site/en/concepts/visibility.md
@@ -3,6 +3,8 @@
# Visibility
+{% include "_buttons.html" %}
+
This page covers Bazel's two visibility systems:
[target visibility](#target-visibility) and [load visibility](#load-visibility).
diff --git a/site/en/configure/attributes.md b/site/en/configure/attributes.md
index 3e30140..40e88df 100644
--- a/site/en/configure/attributes.md
+++ b/site/en/configure/attributes.md
@@ -3,6 +3,8 @@
# Configurable Build Attributes
+{% include "_buttons.html" %}
+
**_Configurable attributes_**, commonly known as [`select()`](
/reference/be/functions#select), is a Bazel feature that lets users toggle the values
of build rule attributes at the command line.
diff --git a/site/en/configure/best-practices.md b/site/en/configure/best-practices.md
index ca0f578..422823d 100644
--- a/site/en/configure/best-practices.md
+++ b/site/en/configure/best-practices.md
@@ -3,6 +3,8 @@
# Best Practices
+{% include "_buttons.html" %}
+
This page assumes you are familiar with Bazel and provides guidelines and
advice on structuring your projects to take full advantage of Bazel's features.
diff --git a/site/en/configure/coverage.md b/site/en/configure/coverage.md
index 4f546df..bf0b3d6 100644
--- a/site/en/configure/coverage.md
+++ b/site/en/configure/coverage.md
@@ -3,6 +3,8 @@
# Code coverage with Bazel
+{% include "_buttons.html" %}
+
Bazel features a `coverage` sub-command to produce code coverage
reports on repositories that can be tested with `bazel coverage`. Due
to the idiosyncrasies of the various language ecosystems, it is not
diff --git a/site/en/configure/integrate-cpp.md b/site/en/configure/integrate-cpp.md
index 1d6362f..257bcfe 100644
--- a/site/en/configure/integrate-cpp.md
+++ b/site/en/configure/integrate-cpp.md
@@ -3,6 +3,8 @@
# Integrating with C++ Rules
+{% include "_buttons.html" %}
+
This page describes how to integrate with C++ rules on various levels.
## Accessing the C++ toolchain {:#access-c-toolchain}
diff --git a/site/en/configure/memory.md b/site/en/configure/memory.md
index 1a8eab9..a7168f6 100644
--- a/site/en/configure/memory.md
+++ b/site/en/configure/memory.md
@@ -3,6 +3,8 @@
# Running Bazel with Limited RAM
+{% include "_buttons.html" %}
+
This page describes how to use flags to run Bazel with limited RAM.
In certain situations, you may want Bazel to use minimal memory. You can set the
diff --git a/site/en/configure/toolchain-resolution.md b/site/en/configure/toolchain-resolution.md
index b00c23e..91b5b53 100644
--- a/site/en/configure/toolchain-resolution.md
+++ b/site/en/configure/toolchain-resolution.md
@@ -3,6 +3,8 @@
# Toolchain Resolution Implementation Details
+{% include "_buttons.html" %}
+
**Note:** This section is intended for Bazel developers, and is not needed by
rule authors.
diff --git a/site/en/configure/windows.md b/site/en/configure/windows.md
index 7235f31..90730e2 100644
--- a/site/en/configure/windows.md
+++ b/site/en/configure/windows.md
@@ -3,6 +3,8 @@
# Using Bazel on Windows
+{% include "_buttons.html" %}
+
This page covers Best Practices for using Bazel on Windows. For installation
instructions, see [Install Bazel on Windows](/install/windows).
diff --git a/site/en/contribute/breaking-changes.md b/site/en/contribute/breaking-changes.md
index 1114d10..de2e160 100644
--- a/site/en/contribute/breaking-changes.md
+++ b/site/en/contribute/breaking-changes.md
@@ -3,6 +3,8 @@
# Guide for rolling out breaking changes
+{% include "_buttons.html" %}
+
It is inevitable that we will make breaking changes to Bazel. We will have to
change our designs and fix the things that do not quite work. However, we need
to make sure that community and Bazel ecosystem can follow along. To that end,
diff --git a/site/en/contribute/codebase.md b/site/en/contribute/codebase.md
index 95f7fb7..7072e15 100644
--- a/site/en/contribute/codebase.md
+++ b/site/en/contribute/codebase.md
@@ -3,6 +3,8 @@
# The Bazel Code Base
+{% include "_buttons.html" %}
+
This document is a description of the code base and how Bazel is structured. It
is intended for people willing to contribute to Bazel, not for end-users.
diff --git a/site/en/contribute/design-documents.md b/site/en/contribute/design-documents.md
index 6a1af03..488bcff 100644
--- a/site/en/contribute/design-documents.md
+++ b/site/en/contribute/design-documents.md
@@ -3,6 +3,8 @@
# Design Documents
+{% include "_buttons.html" %}
+
If you're planning to add, change, or remove a user-facing feature, or make a
*significant architectural change* to Bazel, you **must** write a design
document and have it reviewed before you can submit the change.
diff --git a/site/en/contribute/docs-style-guide.md b/site/en/contribute/docs-style-guide.md
index 28a4a60..ed94d90 100644
--- a/site/en/contribute/docs-style-guide.md
+++ b/site/en/contribute/docs-style-guide.md
@@ -3,6 +3,8 @@
# Bazel docs style guide
+{% include "_buttons.html" %}
+
Thank you for contributing to Bazel's documentation. This serves as a quick
documentation style guide to get you started. For any style questions not
answered by this guide, follow the
diff --git a/site/en/contribute/docs.md b/site/en/contribute/docs.md
index 11b3ec0..9373fbb 100644
--- a/site/en/contribute/docs.md
+++ b/site/en/contribute/docs.md
@@ -3,6 +3,8 @@
# Contribute to Bazel documentation
+{% include "_buttons.html" %}
+
Thank you for contributing to Bazel's documentation! There are a few ways to
help create better docs for our community.
diff --git a/site/en/contribute/index.md b/site/en/contribute/index.md
index 7dc8a38..47ee581 100644
--- a/site/en/contribute/index.md
+++ b/site/en/contribute/index.md
@@ -3,6 +3,8 @@
# Contributing to Bazel
+{% include "_buttons.html" %}
+
There are many ways to help the Bazel project and ecosystem.
## Provide feedback {:#feedback}
diff --git a/site/en/contribute/maintainers-guide.md b/site/en/contribute/maintainers-guide.md
index b5ea24a..d1f1070 100644
--- a/site/en/contribute/maintainers-guide.md
+++ b/site/en/contribute/maintainers-guide.md
@@ -3,6 +3,8 @@
# Guide for Bazel Maintainers
+{% include "_buttons.html" %}
+
This is a guide for the maintainers of the Bazel open source project.
If you are looking to contribute to Bazel, please read [Contributing to
diff --git a/site/en/contribute/naming.md b/site/en/contribute/naming.md
index 1ceb098..bd6c8e8 100644
--- a/site/en/contribute/naming.md
+++ b/site/en/contribute/naming.md
@@ -3,6 +3,8 @@
# Naming a Bazel related project
+{% include "_buttons.html" %}
+
First, thank you for contributing to the Bazel ecosystem! Please reach out to
the Bazel community on the
[bazel-discuss mailing list](https://groups.google.com/forum/#!forum/bazel-discuss
diff --git a/site/en/contribute/patch-acceptance.md b/site/en/contribute/patch-acceptance.md
index 1b32dbe..753d2dd 100644
--- a/site/en/contribute/patch-acceptance.md
+++ b/site/en/contribute/patch-acceptance.md
@@ -3,6 +3,8 @@
# Patch Acceptance Process
+{% include "_buttons.html" %}
+
This page outlines how contributors can propose and make changes to the Bazel
code base.
diff --git a/site/en/contribute/policy.md b/site/en/contribute/policy.md
index 28fc181..9b2ac23 100644
--- a/site/en/contribute/policy.md
+++ b/site/en/contribute/policy.md
@@ -6,6 +6,8 @@
# Contribution policy
+{% include "_buttons.html" %}
+
This page covers Bazel's governance model and contribution policy.
## Governance model
diff --git a/site/en/contribute/release-notes.md b/site/en/contribute/release-notes.md
index 2f7b2f2..29a384e 100644
--- a/site/en/contribute/release-notes.md
+++ b/site/en/contribute/release-notes.md
@@ -3,6 +3,8 @@
# Writing release notes
+{% include "_buttons.html" %}
+
This document is targeted at Bazel contributors.
Commit descriptions in Bazel include a `RELNOTES:` tag followed by a release
diff --git a/site/en/contribute/search.md b/site/en/contribute/search.md
index a8df838..e9706ae 100644
--- a/site/en/contribute/search.md
+++ b/site/en/contribute/search.md
@@ -3,6 +3,8 @@
# Searching the codebase
+{% include "_buttons.html" %}
+
## Product overview {:#product-overview}
Bazel's [code search and source browsing interface](https://source.bazel.build)
diff --git a/site/en/contribute/support.md b/site/en/contribute/support.md
index 871b144..32cb7e3 100644
--- a/site/en/contribute/support.md
+++ b/site/en/contribute/support.md
@@ -3,6 +3,8 @@
# Support Policy
+{% include "_buttons.html" %}
+
The Bazel team generally avoids making backwards-incompatible changes. However,
these changes are sometimes necessary to fix bugs, make improvements (such as
improving performance or usability) to the system, or to lock down APIs that
diff --git a/site/en/contribute/windows-chocolatey-maintenance.md b/site/en/contribute/windows-chocolatey-maintenance.md
index 48bc8c2..ececfd4 100644
--- a/site/en/contribute/windows-chocolatey-maintenance.md
+++ b/site/en/contribute/windows-chocolatey-maintenance.md
@@ -3,6 +3,8 @@
# Maintaining Bazel Chocolatey package on Windows
+{% include "_buttons.html" %}
+
Note: The Chocolatey package is experimental; please provide feedback
(`@petemounce` in issue tracker).
diff --git a/site/en/contribute/windows-scoop-maintenance.md b/site/en/contribute/windows-scoop-maintenance.md
index 6134719..f6c3a10 100644
--- a/site/en/contribute/windows-scoop-maintenance.md
+++ b/site/en/contribute/windows-scoop-maintenance.md
@@ -3,6 +3,8 @@
# Maintaining Bazel Scoop package on Windows
+{% include "_buttons.html" %}
+
Note: The Scoop package is experimental. To provide feedback, go to
`@excitoon` in issue tracker.
diff --git a/site/en/docs/android-build-performance.md b/site/en/docs/android-build-performance.md
index bbb7209..fcd3e63 100644
--- a/site/en/docs/android-build-performance.md
+++ b/site/en/docs/android-build-performance.md
@@ -3,6 +3,8 @@
# Android Build Performance
+{% include "_buttons.html" %}
+
This page contains information on optimizing build performance for Android
apps specifically. For general build performance optimization with Bazel, see
[Optimizing Performance](/rules/performance).
diff --git a/site/en/docs/android-instrumentation-test.md b/site/en/docs/android-instrumentation-test.md
index 8d01376..0006d02 100644
--- a/site/en/docs/android-instrumentation-test.md
+++ b/site/en/docs/android-instrumentation-test.md
@@ -3,6 +3,8 @@
# Android Instrumentation Tests
+{% include "_buttons.html" %}
+
_If you're new to Bazel, start with the [Building Android with
Bazel](/tutorials/android-app) tutorial._
diff --git a/site/en/docs/android-ndk.md b/site/en/docs/android-ndk.md
index cbc2cfb..d50cd90 100644
--- a/site/en/docs/android-ndk.md
+++ b/site/en/docs/android-ndk.md
@@ -3,6 +3,8 @@
# Using the Android Native Development Kit with Bazel
+{% include "_buttons.html" %}
+
_If you're new to Bazel, please start with the [Building Android with
Bazel](/tutorials/android-app) tutorial._
diff --git a/site/en/docs/bazel-and-android.md b/site/en/docs/bazel-and-android.md
index 747ed18..9797c27 100644
--- a/site/en/docs/bazel-and-android.md
+++ b/site/en/docs/bazel-and-android.md
@@ -3,6 +3,8 @@
# Android and Bazel
+{% include "_buttons.html" %}
+
This page contains resources that help you use Bazel with Android projects. It
links to a tutorial, build rules, and other information specific to building
Android projects with Bazel.
diff --git a/site/en/docs/bazel-and-apple.md b/site/en/docs/bazel-and-apple.md
index 1be6b80..cddf900 100644
--- a/site/en/docs/bazel-and-apple.md
+++ b/site/en/docs/bazel-and-apple.md
@@ -3,6 +3,8 @@
# Apple Apps and Bazel
+{% include "_buttons.html" %}
+
This page contains resources that help you use Bazel to build macOS and iOS
projects. It links to a tutorial, build rules, and other information specific to
using Bazel to build and test for those platforms.
diff --git a/site/en/docs/bazel-and-cpp.md b/site/en/docs/bazel-and-cpp.md
index b1c0050..b8332e8 100644
--- a/site/en/docs/bazel-and-cpp.md
+++ b/site/en/docs/bazel-and-cpp.md
@@ -3,6 +3,8 @@
# C++ and Bazel
+{% include "_buttons.html" %}
+
This page contains resources that help you use Bazel with C++ projects. It links
to a tutorial, build rules, and other information specific to building C++
projects with Bazel.
diff --git a/site/en/docs/bazel-and-java.md b/site/en/docs/bazel-and-java.md
index 91e22bd..5179370 100644
--- a/site/en/docs/bazel-and-java.md
+++ b/site/en/docs/bazel-and-java.md
@@ -3,6 +3,8 @@
# Java and Bazel
+{% include "_buttons.html" %}
+
This page contains resources that help you use Bazel with Java projects. It
links to a tutorial, build rules, and other information specific to building
Java projects with Bazel.
diff --git a/site/en/docs/bazel-and-javascript.md b/site/en/docs/bazel-and-javascript.md
index cac52f22..97a7ac5 100644
--- a/site/en/docs/bazel-and-javascript.md
+++ b/site/en/docs/bazel-and-javascript.md
@@ -3,6 +3,8 @@
# JavaScript and Bazel
+{% include "_buttons.html" %}
+
This page contains resources that help you use Bazel with JavaScript projects.
It links to build rules and other information specific to building JavaScript
with Bazel.
diff --git a/site/en/docs/cc-toolchain-config-reference.md b/site/en/docs/cc-toolchain-config-reference.md
index 9ce7570..c49ee57 100644
--- a/site/en/docs/cc-toolchain-config-reference.md
+++ b/site/en/docs/cc-toolchain-config-reference.md
@@ -3,6 +3,8 @@
# C++ Toolchain Configuration
+{% include "_buttons.html" %}
+
## Overview {:#overview}
To invoke the compiler with the right options, Bazel needs some knowledge about
diff --git a/site/en/docs/configurable-attributes.md b/site/en/docs/configurable-attributes.md
index 3e30140..40e88df 100644
--- a/site/en/docs/configurable-attributes.md
+++ b/site/en/docs/configurable-attributes.md
@@ -3,6 +3,8 @@
# Configurable Build Attributes
+{% include "_buttons.html" %}
+
**_Configurable attributes_**, commonly known as [`select()`](
/reference/be/functions#select), is a Bazel feature that lets users toggle the values
of build rule attributes at the command line.
diff --git a/site/en/docs/external.md b/site/en/docs/external.md
index 74d4b78..80fcf56 100644
--- a/site/en/docs/external.md
+++ b/site/en/docs/external.md
@@ -3,6 +3,8 @@
# Working with External Dependencies
+{% include "_buttons.html" %}
+
Bazel can depend on targets from other projects. Dependencies from these other
projects are called _external dependencies_.
diff --git a/site/en/docs/mobile-install.md b/site/en/docs/mobile-install.md
index 630cf3e..b5cc59f 100644
--- a/site/en/docs/mobile-install.md
+++ b/site/en/docs/mobile-install.md
@@ -3,6 +3,8 @@
# bazel mobile-install
+{% include "_buttons.html" %}
+
<p class="lead">Fast iterative development for Android</p>
This page describes how `bazel mobile-install` makes iterative development
diff --git a/site/en/docs/sandboxing.md b/site/en/docs/sandboxing.md
index 527dec8..79f26d9 100644
--- a/site/en/docs/sandboxing.md
+++ b/site/en/docs/sandboxing.md
@@ -3,6 +3,8 @@
# Sandboxing
+{% include "_buttons.html" %}
+
This article covers sandboxing in Bazel, installing `sandboxfs`, and debugging
your sandboxing environment.
diff --git a/site/en/docs/user-manual.md b/site/en/docs/user-manual.md
index f9bdb26..7e4d01d 100644
--- a/site/en/docs/user-manual.md
+++ b/site/en/docs/user-manual.md
@@ -3,6 +3,8 @@
# Commands and Options
+{% include "_buttons.html" %}
+
This page covers the options that are available with various Bazel commands,
such as `bazel build`, `bazel run`, and `bazel test`. This page is a companion
to the list of Bazel's commands in [Build with Bazel](/docs/build).
diff --git a/site/en/extending/aspects.md b/site/en/extending/aspects.md
index 1391c99..5a3cf2a 100644
--- a/site/en/extending/aspects.md
+++ b/site/en/extending/aspects.md
@@ -3,6 +3,8 @@
# Aspects
+{% include "_buttons.html" %}
+
This page explains the basics and benefits of using aspects and provides
simple and advanced examples.
diff --git a/site/en/extending/concepts.md b/site/en/extending/concepts.md
index 258e7d5..82dfad4 100644
--- a/site/en/extending/concepts.md
+++ b/site/en/extending/concepts.md
@@ -3,6 +3,8 @@
# Extension Overview
+{% include "_buttons.html" %}
+
<!-- [TOC] -->
This page describes how to extend the BUILD language using macros
diff --git a/site/en/extending/config.md b/site/en/extending/config.md
index 64c74d3..90c92e2 100644
--- a/site/en/extending/config.md
+++ b/site/en/extending/config.md
@@ -3,6 +3,8 @@
# Configurations
+{% include "_buttons.html" %}
+
This page covers the benefits and basic usage of Starlark configurations,
Bazel's API for customizing how your project builds. It includes how to define
build settings and provides examples.
diff --git a/site/en/extending/depsets.md b/site/en/extending/depsets.md
index c7e77a1..d69f1c3 100644
--- a/site/en/extending/depsets.md
+++ b/site/en/extending/depsets.md
@@ -3,6 +3,8 @@
# Depsets
+{% include "_buttons.html" %}
+
[Depsets](/rules/lib/depset) are a specialized data structure for efficiently
collecting data across a target’s transitive dependencies. They are an essential
element of rule processing.
diff --git a/site/en/extending/exec-groups.md b/site/en/extending/exec-groups.md
index 22c821a..1d0b395 100644
--- a/site/en/extending/exec-groups.md
+++ b/site/en/extending/exec-groups.md
@@ -3,6 +3,8 @@
# Execution Groups
+{% include "_buttons.html" %}
+
Execution groups allow for multiple execution platforms within a single target.
Each execution group has its own [toolchain](/docs/toolchains) dependencies and
performs its own [toolchain resolution](/docs/toolchains#toolchain-resolution).
diff --git a/site/en/extending/macros.md b/site/en/extending/macros.md
index e630421..e6ccb5f 100644
--- a/site/en/extending/macros.md
+++ b/site/en/extending/macros.md
@@ -3,6 +3,8 @@
# Macros
+{% include "_buttons.html" %}
+
This page covers the basics of using macros and includes typical use cases,
debugging, and conventions.
diff --git a/site/en/extending/platforms.md b/site/en/extending/platforms.md
index 9284b34..2ae1dcc 100644
--- a/site/en/extending/platforms.md
+++ b/site/en/extending/platforms.md
@@ -3,6 +3,8 @@
# Platforms
+{% include "_buttons.html" %}
+
Bazel can build and test code on a variety of hardware, operating systems, and
system configurations, using many different versions of build tools such as
linkers and compilers. To help manage this complexity, Bazel has a concept of
diff --git a/site/en/extending/repo.md b/site/en/extending/repo.md
index 3cbd8e8..3efc87c 100644
--- a/site/en/extending/repo.md
+++ b/site/en/extending/repo.md
@@ -3,6 +3,8 @@
# Repository Rules
+{% include "_buttons.html" %}
+
This page covers how to create repository rules and provides examples for
more details.
diff --git a/site/en/extending/rules.md b/site/en/extending/rules.md
index d859808..a8d8f3a 100644
--- a/site/en/extending/rules.md
+++ b/site/en/extending/rules.md
@@ -3,6 +3,8 @@
# Rules
+{% include "_buttons.html" %}
+
A **rule** defines a series of [**actions**](#actions) that Bazel performs on
inputs to produce a set of outputs, which are referenced in
[**providers**](#providers) returned by the rule's
diff --git a/site/en/extending/toolchains.md b/site/en/extending/toolchains.md
index 33f8d5c..1beb4a9 100644
--- a/site/en/extending/toolchains.md
+++ b/site/en/extending/toolchains.md
@@ -3,6 +3,8 @@
# Toolchains
+{% include "_buttons.html" %}
+
This page describes the toolchain framework, which is a way for rule authors to
decouple their rule logic from platform-based selection of tools. It is
recommended to read the [rules](/rules/rules) and [platforms](/docs/platforms)
diff --git a/site/en/help.md b/site/en/help.md
index 3a76b91..aebb5f9 100644
--- a/site/en/help.md
+++ b/site/en/help.md
@@ -3,6 +3,8 @@
# Getting Help
+{% include "_buttons.html" %}
+
This page lists Bazel resources beyond the documentation and covers how to get
support from the Bazel team and community.
diff --git a/site/en/install/bazelisk.md b/site/en/install/bazelisk.md
index 56d95db..f6f2a09 100644
--- a/site/en/install/bazelisk.md
+++ b/site/en/install/bazelisk.md
@@ -3,6 +3,8 @@
# Installing / Updating Bazel using Bazelisk
+{% include "_buttons.html" %}
+
## Installing Bazel
[Bazelisk](https://github.com/bazelbuild/bazelisk){: .external} is the
diff --git a/site/en/install/compile-source.md b/site/en/install/compile-source.md
index 5c8be30..10dd39e 100644
--- a/site/en/install/compile-source.md
+++ b/site/en/install/compile-source.md
@@ -3,6 +3,7 @@
# Compiling Bazel from Source
+{% include "_buttons.html" %}
This page describes how to install Bazel from source and provides
troubleshooting tips for common issues.
diff --git a/site/en/install/completion.md b/site/en/install/completion.md
index faac3cb..4359a5b 100644
--- a/site/en/install/completion.md
+++ b/site/en/install/completion.md
@@ -3,6 +3,8 @@
# Command-Line Completion
+{% include "_buttons.html" %}
+
You can enable command-line completion (also known as tab-completion) in Bash
and Zsh. This lets you tab-complete command names, flags names and flag values,
and target names.
diff --git a/site/en/install/docker-container.md b/site/en/install/docker-container.md
index 6cf0ff8..65f3b34 100644
--- a/site/en/install/docker-container.md
+++ b/site/en/install/docker-container.md
@@ -3,6 +3,8 @@
# Getting Started with Bazel Docker Container
+{% include "_buttons.html" %}
+
This page provides details on the contents of the Bazel container, how to build
the [abseil-cpp](https://github.com/abseil/abseil-cpp){: .external} project using Bazel
inside the Bazel container, and how to build this project directly
diff --git a/site/en/install/ide.md b/site/en/install/ide.md
index 20455d5..f3dfe1c 100644
--- a/site/en/install/ide.md
+++ b/site/en/install/ide.md
@@ -3,6 +3,8 @@
# Integrating Bazel with IDEs
+{% include "_buttons.html" %}
+
This page covers how to integrate Bazel with IDEs, such as IntelliJ, Android
Studio, and CLion (or build your own IDE plugin). It also includes links to
installation and plugin details.
diff --git a/site/en/install/index.md b/site/en/install/index.md
index 6c303ce..a463389 100644
--- a/site/en/install/index.md
+++ b/site/en/install/index.md
@@ -3,6 +3,8 @@
# Installing Bazel
+{% include "_buttons.html" %}
+
This page describes the various platforms supported by Bazel and links
to the packages for more details.
diff --git a/site/en/install/os-x.md b/site/en/install/os-x.md
index 7ab8808..d15c2ae 100644
--- a/site/en/install/os-x.md
+++ b/site/en/install/os-x.md
@@ -3,6 +3,8 @@
# Installing Bazel on macOS
+{% include "_buttons.html" %}
+
This page describes how to install Bazel on macOS and set up your environment.
You can install Bazel on macOS using one of the following methods:
diff --git a/site/en/install/redhat.md b/site/en/install/redhat.md
index d3c90de..7b768a4 100644
--- a/site/en/install/redhat.md
+++ b/site/en/install/redhat.md
@@ -3,6 +3,8 @@
# Installing Bazel on Fedora and CentOS
+{% include "_buttons.html" %}
+
This page describes how to install Bazel on Fedora and CentOS.
The Bazel team does not provide official packages for Fedora and CentOS.
diff --git a/site/en/install/suse.md b/site/en/install/suse.md
index b391d3f..beec869 100644
--- a/site/en/install/suse.md
+++ b/site/en/install/suse.md
@@ -3,6 +3,8 @@
# Installing Bazel on openSUSE Tumbleweed & Leap
+{% include "_buttons.html" %}
+
This page describes how to install Bazel on openSUSE Tumbleweed and Leap.
`NOTE:` The Bazel team does not officially maintain openSUSE support. For issues
diff --git a/site/en/install/ubuntu.md b/site/en/install/ubuntu.md
index 3f9fb82..e35945c 100644
--- a/site/en/install/ubuntu.md
+++ b/site/en/install/ubuntu.md
@@ -3,6 +3,8 @@
# Installing Bazel on Ubuntu
+{% include "_buttons.html" %}
+
This page describes the options for installing Bazel on Ubuntu.
It also provides links to the Bazel completion scripts and the binary installer,
if needed as a backup option (for example, if you don't have admin access).
diff --git a/site/en/install/windows.md b/site/en/install/windows.md
index d74135f..e9f1621 100644
--- a/site/en/install/windows.md
+++ b/site/en/install/windows.md
@@ -3,6 +3,8 @@
# Installing Bazel on Windows
+{% include "_buttons.html" %}
+
This page describes the requirements and steps to install Bazel on Windows.
It also includes troubleshooting and other ways to install Bazel, such as
using Chocolatey or Scoop.
diff --git a/site/en/migrate/cocoapods.md b/site/en/migrate/cocoapods.md
index d4d7232..a681881 100644
--- a/site/en/migrate/cocoapods.md
+++ b/site/en/migrate/cocoapods.md
@@ -3,6 +3,8 @@
# Converting CocoaPods Dependencies
+{% include "_buttons.html" %}
+
CocoaPods is a third-party dependency management system for Apple application
development.
diff --git a/site/en/migrate/index.md b/site/en/migrate/index.md
index 5c98a3d..bed2317 100644
--- a/site/en/migrate/index.md
+++ b/site/en/migrate/index.md
@@ -3,6 +3,8 @@
# Migrating to Bazel
+{% include "_buttons.html" %}
+
This page links to migration guides for Bazel.
* [Maven](/migrate/maven)
diff --git a/site/en/migrate/maven.md b/site/en/migrate/maven.md
index 616016c..e194001 100644
--- a/site/en/migrate/maven.md
+++ b/site/en/migrate/maven.md
@@ -3,6 +3,8 @@
# Migrating from Maven to Bazel
+{% include "_buttons.html" %}
+
This page describes how to migrate from Maven to Bazel, including the
prerequisites and installation steps. It describes the differences
between Maven and Bazel, and provides a migration example using the
diff --git a/site/en/migrate/xcode.md b/site/en/migrate/xcode.md
index f654954..7009c06 100644
--- a/site/en/migrate/xcode.md
+++ b/site/en/migrate/xcode.md
@@ -3,6 +3,8 @@
# Migrating from Xcode to Bazel
+{% include "_buttons.html" %}
+
This page describes how to build or test an Xcode project with Bazel. It
describes the differences between Xcode and Bazel, and provides the steps
for converting an Xcode project to a Bazel project. It also provides
diff --git a/site/en/query/aquery.md b/site/en/query/aquery.md
index 04affb2..2899fc8 100644
--- a/site/en/query/aquery.md
+++ b/site/en/query/aquery.md
@@ -3,6 +3,8 @@
# Action Graph Query (aquery)
+{% include "_buttons.html" %}
+
The `aquery` command allows you to query for actions in your build graph.
It operates on the post-analysis Configured Target Graph and exposes
information about **Actions, Artifacts and their relationships.**
diff --git a/site/en/query/cquery.md b/site/en/query/cquery.md
index bd57187..e920bce 100644
--- a/site/en/query/cquery.md
+++ b/site/en/query/cquery.md
@@ -3,6 +3,8 @@
# Configurable Query (cquery)
+{% include "_buttons.html" %}
+
`cquery` is a variant of [`query`](/reference/query) that correctly handles
[`select()`](/docs/configurable-attributes) and build options' effects on the build
graph.
diff --git a/site/en/query/language.md b/site/en/query/language.md
index 7e5a236..f91236e 100644
--- a/site/en/query/language.md
+++ b/site/en/query/language.md
@@ -3,6 +3,8 @@
# The Bazel Query Reference
+{% include "_buttons.html" %}
+
This page is the reference manual for the _Bazel Query Language_ used
when you use `bazel query` to analyze build dependencies. It also
describes the output formats `bazel query` supports.
diff --git a/site/en/query/quickstart.md b/site/en/query/quickstart.md
index 65b4be5..e5f3270 100644
--- a/site/en/query/quickstart.md
+++ b/site/en/query/quickstart.md
@@ -3,6 +3,8 @@
# Bazel Query How-To
+{% include "_buttons.html" %}
+
This page covers how to get started using Bazel's query language to trace
dependencies in your code.
diff --git a/site/en/reference/glossary.md b/site/en/reference/glossary.md
index 3a747dd..01c26cd 100644
--- a/site/en/reference/glossary.md
+++ b/site/en/reference/glossary.md
@@ -3,6 +3,8 @@
# Bazel Glossary
+{% include "_buttons.html" %}
+
### Action {:#action}
A command to run during the build, for example, a call to a compiler that takes
diff --git a/site/en/reference/skyframe.md b/site/en/reference/skyframe.md
index 73864a1..4451bee 100644
--- a/site/en/reference/skyframe.md
+++ b/site/en/reference/skyframe.md
@@ -3,6 +3,8 @@
# Skyframe
+{% include "_buttons.html" %}
+
The parallel evaluation and incrementality model of Bazel.
## Data model
diff --git a/site/en/reference/test-encyclopedia.md b/site/en/reference/test-encyclopedia.md
index 0111131..dd77101 100644
--- a/site/en/reference/test-encyclopedia.md
+++ b/site/en/reference/test-encyclopedia.md
@@ -3,6 +3,8 @@
# Test encyclopedia
+{% include "_buttons.html" %}
+
An exhaustive specification of the test execution environment.
## Background {:#background}
diff --git a/site/en/release/backward-compatibility.md b/site/en/release/backward-compatibility.md
index c169a9f..1fd2f3c 100644
--- a/site/en/release/backward-compatibility.md
+++ b/site/en/release/backward-compatibility.md
@@ -3,6 +3,8 @@
# Backward Compatibility
+{% include "_buttons.html" %}
+
This page provides information on how to handle backward compatibility,
including migrating from one release to another and how to communicate
incompatible changes.
diff --git a/site/en/release/index.md b/site/en/release/index.md
index ae89c4c..17a729e 100644
--- a/site/en/release/index.md
+++ b/site/en/release/index.md
@@ -3,6 +3,8 @@
# Release Policy
+{% include "_buttons.html" %}
+
Bazel maintains a
[Long Term Support (LTS)](/release/versioning)
release model, where a major version is released every nine months and minor
diff --git a/site/en/release/versioning.md b/site/en/release/versioning.md
index 970a57a..3308df4 100644
--- a/site/en/release/versioning.md
+++ b/site/en/release/versioning.md
@@ -3,6 +3,8 @@
# Release Versioning
+{% include "_buttons.html" %}
+
Bazel 4.0 and higher provides support for two release tracks: long term support
(LTS) releases and rolling releases. This page covers versioning in Bazel, the
types of releases, and the benefits of those releases for Bazel users and
diff --git a/site/en/remote/bep-examples.md b/site/en/remote/bep-examples.md
index 9cf1d5d..c397238 100644
--- a/site/en/remote/bep-examples.md
+++ b/site/en/remote/bep-examples.md
@@ -3,6 +3,8 @@
# Build Event Protocol Examples
+{% include "_buttons.html" %}
+
The full specification of the Build Event Protocol can be found in its protocol
buffer definition. However, it might be helpful to build up some intuition
before looking at the specification.
diff --git a/site/en/remote/bep-glossary.md b/site/en/remote/bep-glossary.md
index 4030561..405e384 100644
--- a/site/en/remote/bep-glossary.md
+++ b/site/en/remote/bep-glossary.md
@@ -3,6 +3,7 @@
# Build Event Protocol Glossary
+{% include "_buttons.html" %}
Each BEP event type has its own semantics, minimally documented in
[build\_event\_stream.proto](https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.proto){: .external}.
diff --git a/site/en/remote/bep.md b/site/en/remote/bep.md
index 7a1bd42..a6a999d 100644
--- a/site/en/remote/bep.md
+++ b/site/en/remote/bep.md
@@ -3,6 +3,7 @@
# Build Event Protocol
+{% include "_buttons.html" %}
The [Build Event
Protocol](https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.proto){: .external}
diff --git a/site/en/remote/cache-local.md b/site/en/remote/cache-local.md
index c44a7d1..a7be1e7 100644
--- a/site/en/remote/cache-local.md
+++ b/site/en/remote/cache-local.md
@@ -3,6 +3,8 @@
# Debugging Remote Cache Hits for Local Execution
+{% include "_buttons.html" %}
+
This page describes how to investigate cache misses in the context of local
execution.
diff --git a/site/en/remote/cache-remote.md b/site/en/remote/cache-remote.md
index 950063d..4dd7ebb 100644
--- a/site/en/remote/cache-remote.md
+++ b/site/en/remote/cache-remote.md
@@ -3,6 +3,8 @@
# Debugging Remote Cache Hits for Remote Execution
+{% include "_buttons.html" %}
+
This page describes how to check your cache hit rate and how to investigate
cache misses in the context of remote execution.
diff --git a/site/en/remote/caching.md b/site/en/remote/caching.md
index bf7daf3..94be18e 100644
--- a/site/en/remote/caching.md
+++ b/site/en/remote/caching.md
@@ -3,6 +3,8 @@
# Remote Caching
+{% include "_buttons.html" %}
+
This page covers remote caching, setting up a server to host the cache, and
running builds using the remote cache.
diff --git a/site/en/remote/ci.md b/site/en/remote/ci.md
index 269026c..b1a88d0 100644
--- a/site/en/remote/ci.md
+++ b/site/en/remote/ci.md
@@ -3,6 +3,8 @@
# Configuring Bazel CI to Test Rules for Remote Execution
+{% include "_buttons.html" %}
+
This page is for owners and maintainers of Bazel rule repositories. It
describes how to configure the Bazel Continuous Integration (CI) system for
your repository to test your rules for compatibility against a remote execution
diff --git a/site/en/remote/creating.md b/site/en/remote/creating.md
index 4075dfc..21390e2 100644
--- a/site/en/remote/creating.md
+++ b/site/en/remote/creating.md
@@ -3,6 +3,8 @@
# Creating Persistent Workers
+{% include "_buttons.html" %}
+
[Persistent workers](/docs/persistent-workers) can make your build faster. If
you have repeated actions in your build that have a high startup cost or would
benefit from cross-action caching, you may want to implement your own persistent
diff --git a/site/en/remote/dynamic.md b/site/en/remote/dynamic.md
index 38858de..b91f0a2 100644
--- a/site/en/remote/dynamic.md
+++ b/site/en/remote/dynamic.md
@@ -3,6 +3,8 @@
# Dynamic Execution
+{% include "_buttons.html" %}
+
__Dynamic execution__ is a feature in Bazel
[since version 0.21](https://blog.bazel.build/2019/02/01/dynamic-spawn-scheduler.html){: .external},
where local and remote execution of the same action are started in parallel,
diff --git a/site/en/remote/multiplex.md b/site/en/remote/multiplex.md
index 480086c..6dfe18b 100644
--- a/site/en/remote/multiplex.md
+++ b/site/en/remote/multiplex.md
@@ -3,6 +3,8 @@
# Multiplex Workers (Experimental Feature)
+{% include "_buttons.html" %}
+
This page describes multiplex workers, how to write multiplex-compatible
rules, and workarounds for certain limitations.
diff --git a/site/en/remote/output-directories.md b/site/en/remote/output-directories.md
index fb67a9e..e66be30 100644
--- a/site/en/remote/output-directories.md
+++ b/site/en/remote/output-directories.md
@@ -3,6 +3,8 @@
# Output Directory Layout
+{% include "_buttons.html" %}
+
This page covers requirements and layout for output directories.
## Requirements {:#requirements}
diff --git a/site/en/remote/persistent.md b/site/en/remote/persistent.md
index 41106df3..08da2af 100644
--- a/site/en/remote/persistent.md
+++ b/site/en/remote/persistent.md
@@ -3,6 +3,8 @@
# Persistent Workers
+{% include "_buttons.html" %}
+
This page covers how to use persistent workers, the benefits, requirements, and
how workers affect sandboxing.
diff --git a/site/en/remote/rbe.md b/site/en/remote/rbe.md
index 5a7e0d3..4222e4a 100644
--- a/site/en/remote/rbe.md
+++ b/site/en/remote/rbe.md
@@ -3,6 +3,8 @@
# Remote Execution Overview
+{% include "_buttons.html" %}
+
This page covers the benefits, requirements, and options for running Bazel
with remote execution.
diff --git a/site/en/remote/rules.md b/site/en/remote/rules.md
index 34c3193..c47de9f 100644
--- a/site/en/remote/rules.md
+++ b/site/en/remote/rules.md
@@ -3,6 +3,8 @@
# Adapting Bazel Rules for Remote Execution
+{% include "_buttons.html" %}
+
This page is intended for Bazel users writing custom build and test rules
who want to understand the requirements for Bazel rules in the context of
remote execution.
diff --git a/site/en/remote/sandbox.md b/site/en/remote/sandbox.md
index 4184667..b94eb90 100644
--- a/site/en/remote/sandbox.md
+++ b/site/en/remote/sandbox.md
@@ -3,6 +3,8 @@
# Troubleshooting Bazel Remote Execution with Docker Sandbox
+{% include "_buttons.html" %}
+
Bazel builds that succeed locally may fail when executed remotely due to
restrictions and requirements that do not affect local builds. The most common
causes of such failures are described in [Adapting Bazel Rules for Remote Execution](/docs/remote-execution-rules).
diff --git a/site/en/remote/workspace.md b/site/en/remote/workspace.md
index 1fc4734..f4f80ae 100644
--- a/site/en/remote/workspace.md
+++ b/site/en/remote/workspace.md
@@ -3,6 +3,8 @@
# Finding Non-Hermetic Behavior in WORKSPACE Rules
+{% include "_buttons.html" %}
+
In the following, a host machine is the machine where Bazel runs.
When using remote execution, the actual build and/or test steps are not
diff --git a/site/en/rules/bzl-style.md b/site/en/rules/bzl-style.md
index 7bbcd4f..11e07aa 100644
--- a/site/en/rules/bzl-style.md
+++ b/site/en/rules/bzl-style.md
@@ -3,6 +3,8 @@
# .bzl style guide
+{% include "_buttons.html" %}
+
This page covers basic style guidelines for Starlark and also includes
information on macros and rules.
diff --git a/site/en/rules/challenges.md b/site/en/rules/challenges.md
index 75d9599..954850a 100644
--- a/site/en/rules/challenges.md
+++ b/site/en/rules/challenges.md
@@ -3,6 +3,8 @@
# Challenges of Writing Rules
+{% include "_buttons.html" %}
+
This page gives a high-level overview of the specific issues and challenges
of writing efficient Bazel rules.
diff --git a/site/en/rules/deploying.md b/site/en/rules/deploying.md
index 10cb5c5..a767bad 100644
--- a/site/en/rules/deploying.md
+++ b/site/en/rules/deploying.md
@@ -3,6 +3,8 @@
# Deploying Rules
+{% include "_buttons.html" %}
+
This page is for rule writers who are planning to make their rules available
to others.
diff --git a/site/en/rules/errors/read-only-variable.md b/site/en/rules/errors/read-only-variable.md
index 706abc0..23a82df 100644
--- a/site/en/rules/errors/read-only-variable.md
+++ b/site/en/rules/errors/read-only-variable.md
@@ -1,9 +1,10 @@
Project: /_project.yaml
Book: /_book.yaml
-
# Error: Variable x is read only
+{% include "_buttons.html" %}
+
A global variable cannot be reassigned. It will always point to the same object.
However, its content might change, if the value is mutable (for example, the
content of a list). Local variables don't have this restriction.
diff --git a/site/en/rules/faq.md b/site/en/rules/faq.md
index 4bc199b..4e831cc 100644
--- a/site/en/rules/faq.md
+++ b/site/en/rules/faq.md
@@ -3,6 +3,8 @@
# Frequently Asked Questions
+{% include "_buttons.html" %}
+
These are some common issues and questions with writing extensions.
## Why is my file not produced / my action never executed?
diff --git a/site/en/rules/index.md b/site/en/rules/index.md
index a592f6c..b2c60a7 100644
--- a/site/en/rules/index.md
+++ b/site/en/rules/index.md
@@ -3,6 +3,8 @@
# Rules
+{% include "_buttons.html" %}
+
The Bazel ecosystem has a growing and evolving set of rules to support popular
languages and packages. Much of Bazel's strength comes from the ability to
[define new rules](/rules/concepts) that can be used by others.
diff --git a/site/en/rules/language.md b/site/en/rules/language.md
index 9f25703..64efe14 100644
--- a/site/en/rules/language.md
+++ b/site/en/rules/language.md
@@ -3,6 +3,8 @@
# Starlark Language
+{% include "_buttons.html" %}
+
<!-- [TOC] -->
This page is an overview of [Starlark](https://github.com/bazelbuild/starlark),
diff --git a/site/en/rules/macro-tutorial.md b/site/en/rules/macro-tutorial.md
index 1aef214..8f20e15 100644
--- a/site/en/rules/macro-tutorial.md
+++ b/site/en/rules/macro-tutorial.md
@@ -3,6 +3,8 @@
# Creating a Macro
+{% include "_buttons.html" %}
+
Imagine that you need to run a tool as part of your build. For example, you
may want to generate or preprocess a source file, or compress a binary. In this
tutorial, you are going to create a macro that resizes an image.
diff --git a/site/en/rules/performance.md b/site/en/rules/performance.md
index 0f80fdb..7b61a7b 100644
--- a/site/en/rules/performance.md
+++ b/site/en/rules/performance.md
@@ -3,6 +3,8 @@
# Optimizing Performance
+{% include "_buttons.html" %}
+
When writing rules, the most common performance pitfall is to traverse or copy
data that is accumulated from dependencies. When aggregated over the whole
build, these operations can easily take O(N^2) time or space. To avoid this, it
diff --git a/site/en/rules/rules-tutorial.md b/site/en/rules/rules-tutorial.md
index 09bbfd1..f5285d5 100644
--- a/site/en/rules/rules-tutorial.md
+++ b/site/en/rules/rules-tutorial.md
@@ -3,6 +3,8 @@
# Rules Tutorial
+{% include "_buttons.html" %}
+
<!-- [TOC] -->
[Starlark](https://github.com/bazelbuild/starlark) is a Python-like
diff --git a/site/en/rules/testing.md b/site/en/rules/testing.md
index 1804574..1359128 100644
--- a/site/en/rules/testing.md
+++ b/site/en/rules/testing.md
@@ -3,6 +3,8 @@
# Testing
+{% include "_buttons.html" %}
+
There are several different approaches to testing Starlark code in Bazel. This
page gathers the current best practices and frameworks by use case.
diff --git a/site/en/rules/verbs-tutorial.md b/site/en/rules/verbs-tutorial.md
index 96e38fc..a9ed240 100644
--- a/site/en/rules/verbs-tutorial.md
+++ b/site/en/rules/verbs-tutorial.md
@@ -3,6 +3,8 @@
# Using Macros to Create Custom Verbs
+{% include "_buttons.html" %}
+
Day-to-day interaction with Bazel happens primarily through a few commands:
`build`, `test`, and `run`. At times, though, these can feel limited: you may
want to push packages to a repository, publish documentation for end-users, or
diff --git a/site/en/rules/windows.md b/site/en/rules/windows.md
index 24b572e..624aea0 100644
--- a/site/en/rules/windows.md
+++ b/site/en/rules/windows.md
@@ -3,6 +3,8 @@
# Writing Rules on Windows
+{% include "_buttons.html" %}
+
This page focuses on writing Windows-compatible rules, common problems of
writing portable rules, and some solutions.
diff --git a/site/en/run/bazelrc.md b/site/en/run/bazelrc.md
index 7bdf541..2c98abf 100644
--- a/site/en/run/bazelrc.md
+++ b/site/en/run/bazelrc.md
@@ -3,6 +3,7 @@
# Write bazelrc configuration files
+{% include "_buttons.html" %}
Bazel accepts many options. Some options are varied frequently (for example,
`--subcommands`) while others stay the same across several builds (such as
diff --git a/site/en/run/build.md b/site/en/run/build.md
index 3eba5bc..0b018bd 100644
--- a/site/en/run/build.md
+++ b/site/en/run/build.md
@@ -3,6 +3,8 @@
# Build programs with Bazel
+{% include "_buttons.html" %}
+
This page covers how to build a program with Bazel, build command syntax, and
target pattern syntax.
diff --git a/site/en/run/client-server.md b/site/en/run/client-server.md
index acad47c..22a88af 100644
--- a/site/en/run/client-server.md
+++ b/site/en/run/client-server.md
@@ -3,6 +3,7 @@
# Client/server implementation
+{% include "_buttons.html" %}
The Bazel system is implemented as a long-lived server process. This allows it
to perform many optimizations not possible with a batch-oriented implementation,
diff --git a/site/en/run/scripts.md b/site/en/run/scripts.md
index d324b40..622f148 100644
--- a/site/en/run/scripts.md
+++ b/site/en/run/scripts.md
@@ -1,7 +1,9 @@
Project: /_project.yaml
Book: /_book.yaml
-# Calling Bazel from scripts
+# Calling Bazel from scripts
+
+{% include "_buttons.html" %}
You can call Bazel from scripts to perform a build, run tests, or query
the dependency graph. Bazel has been designed to enable effective scripting, but
diff --git a/site/en/start/android-app.md b/site/en/start/android-app.md
index 2be51b3..d56a0f1 100644
--- a/site/en/start/android-app.md
+++ b/site/en/start/android-app.md
@@ -3,6 +3,8 @@
# Bazel Tutorial: Build an Android App
+{% include "_buttons.html" %}
+
This tutorial covers how to build a simple Android app using Bazel.
Bazel supports building Android apps using the
diff --git a/site/en/start/cpp.md b/site/en/start/cpp.md
index e102ef7..56629d5 100644
--- a/site/en/start/cpp.md
+++ b/site/en/start/cpp.md
@@ -3,6 +3,8 @@
# Bazel Tutorial: Build a C++ Project
+{% include "_buttons.html" %}
+
## Introduction
New to Bazel? You’re in the right place. Follow this First Build tutorial for a
@@ -124,9 +126,9 @@
)
```
-In our example, the `hello-world` target instantiates Bazel's built-in
+In our example, the `hello-world` target instantiates Bazel's built-in
<code>[cc_binary rule](https://bazel.build/reference/be/c-cpp#cc_binary)</code>.
-The rule tells Bazel to build a self-contained executable binary from the
+The rule tells Bazel to build a self-contained executable binary from the
<code>hello-world.cc</code> source file with no dependencies.
### Summary: getting started
@@ -165,7 +167,7 @@
In the target label, the `//main:` part is the location of the `BUILD` file
relative to the root of the workspace, and `hello-world` is the target name in
-the `BUILD` file.
+the `BUILD` file.
Bazel produces something that looks like this:
diff --git a/site/en/start/ios-app.md b/site/en/start/ios-app.md
index d6bf775..1cbd381 100644
--- a/site/en/start/ios-app.md
+++ b/site/en/start/ios-app.md
@@ -3,6 +3,8 @@
# Bazel Tutorial: Build an iOS App
+{% include "_buttons.html" %}
+
This tutorial covers how to build a simple iOS app using Bazel.
## What you'll learn
diff --git a/site/en/start/java.md b/site/en/start/java.md
index b0a8317..eb91918 100644
--- a/site/en/start/java.md
+++ b/site/en/start/java.md
@@ -3,6 +3,8 @@
# Bazel Tutorial: Build a Java Project
+{% include "_buttons.html" %}
+
This tutorial covers the basics of building Java applications with
Bazel. You will set up your workspace and build a simple Java project that
illustrates key Bazel concepts, such as targets and `BUILD` files.
diff --git a/site/en/tutorials/ccp-toolchain-config.md b/site/en/tutorials/ccp-toolchain-config.md
index 4e54356..172cb4d 100644
--- a/site/en/tutorials/ccp-toolchain-config.md
+++ b/site/en/tutorials/ccp-toolchain-config.md
@@ -3,6 +3,8 @@
# Bazel Tutorial: Configure C++ Toolchains
+{% include "_buttons.html" %}
+
This tutorial uses an example scenario to describe how to configure C++
toolchains for a project. It's based on an
[example C++ project](https://github.com/bazelbuild/examples/tree/master/cpp-tutorial/stage1)
diff --git a/site/en/tutorials/cpp-dependency.md b/site/en/tutorials/cpp-dependency.md
index 0f56fd7..5a99862 100644
--- a/site/en/tutorials/cpp-dependency.md
+++ b/site/en/tutorials/cpp-dependency.md
@@ -3,6 +3,8 @@
# Review the dependency graph
+{% include "_buttons.html" %}
+
A successful build has all of its dependencies explicitly stated in the `BUILD`
file. Bazel uses those statements to create the project's dependency graph,
which enables accurate incremental builds.
diff --git a/site/en/tutorials/cpp-labels.md b/site/en/tutorials/cpp-labels.md
index 612538d..f60d85e 100644
--- a/site/en/tutorials/cpp-labels.md
+++ b/site/en/tutorials/cpp-labels.md
@@ -3,6 +3,8 @@
# Use labels to reference targets
+{% include "_buttons.html" %}
+
In `BUILD` files and at the command line, Bazel uses *labels* to reference
targets - for example, `//main:hello-world` or `//lib:hello-time`. Their syntax
is:
diff --git a/site/en/tutorials/cpp-use-cases.md b/site/en/tutorials/cpp-use-cases.md
index 4feaf27..5c5acfd 100644
--- a/site/en/tutorials/cpp-use-cases.md
+++ b/site/en/tutorials/cpp-use-cases.md
@@ -3,6 +3,8 @@
# Common C++ Build Use Cases
+{% include "_buttons.html" %}
+
Here you will find some of the most common use cases for building C++ projects
with Bazel. If you have not done so already, get started with building C++
projects with Bazel by completing the tutorial
diff --git a/site/en/versions/index.md b/site/en/versions/index.md
index 530a376..4df14b2 100644
--- a/site/en/versions/index.md
+++ b/site/en/versions/index.md
@@ -3,6 +3,8 @@
# Documentation Versions
+{% include "_buttons.html" %}
+
The documentation on this website represents the latest in Bazel. Documentation
is updated at head. Each major supported release will have a snapshot of the
narrative and reference documentation that follows the lifecycle of Bazel's