site/en/community/contribute/docs_style.md
With a few exceptions, TensorFlow uses a Markdown syntax similar to GitHub Flavored Markdown (GFM). This section explains differences between GFM Markdown syntax and the Markdown used for TensorFlow documentation.
Put <code>`backticks`</code> around the following symbols when used in text:
Use three backticks to open and close a code block. Optionally, specify the programming language after the first backtick group, for example:
<pre><code> ```python # some python code here ``` </code></pre>Use relative links between files in a single GitHub repository. Include the file extension.
For example, this file you're reading is from the https://github.com/tensorflow/docs repository. Therefore, it can use relative paths to link to other files in the same repository like this:
This is the preferred approach because this way the links on tensorflow.org, GitHub and Colab all work. Also, the reader stays in the same site when they click a link.
Note: You should include the file extension—such as .ipynb or .md—for
relative links. It will rendered on tensorflow.org without an extension.
For links to files that are not in the current repository, use standard Markdown links with the full URI. Prefer to link to the tensorflow.org URI if it's available.
To link to source code, use a link starting with <var>https://www.github.com/tensorflow/tensorflow/blob/master/</var>, followed by the file name starting at the GitHub root.
When linking off of tensorflow.org, include a `` on the Markdown link so that the "external link" symbol is shown.
[GitHub](https://github.com/tensorflow/docs) produces
GitHubDo not include URI query parameters in the link:
https://www.tensorflow.org/guide/datahttps://www.tensorflow.org/guide/data?hl=enThe advice in the previous section is for links to pages. Images are handled differently.
Generally, you should not check in images, and instead add the TensorFlow-Docs team to your PR, and ask them to host the images on tensorflow.org. This helps keep the size of your repository down.
If you do submit images to your repository, note that some systems do not handle relative paths to images. Prefer to use a full URL pointing to the image's eventual location on tensorflow.org.
API links are converted when the site is published. To link to a symbol's API reference page, enclose the symbol path in backticks:
tf.data.DatasetFull paths are slightly preferred except for long paths. Paths can be abbreviated by dropping the leading path components. Partial paths will be converted to links if:
. in the path, andAPI paths are linked for every project with a Python API published on tensorflow.org. You can easily link to multiple subprojects from a single file by wrapping the API names with backticks. For example:
tf.metrics,
tf_agents.metrics, text.metrics.For symbols with multiple path aliases there is a slight preference for the path that matches the API-page on tensorflow.org. All aliases will redirect to the correct page.
You may use MathJax within TensorFlow when editing Markdown files, but note the following:
Use <code>$$</code> around a block of MathJax:
<pre><code>$$ E=\frac{1}{2n}\sum_x\lVert (y(x)-y'(x)) \rVert^2 $$</code></pre>$$ E=\frac{1}{2n}\sum_x\lVert (y(x)-y'(x)) \rVert^2 $$
Wrap inline MathJax expressions with <code>$ ... $</code>:
<pre><code> This is an example of an inline MathJax expression: $ 2 \times 2 = 4 $ </code></pre>This is an example of an inline MathJax expression: $ 2 \times 2 = 4 $
<code>\\( ... \\)</code> delimiters also work for inline math, but the $ form is sometimes more readable.
Note: If you need to use a dollar sign in text or MathJax expressions, escape it
with a leading slash: \$. Dollar signs within code blocks (such as Bash
variable names) do not need to be escaped.
If you are going to write or edit substantial portions of the narrative documentation, please read the Google Developer Documentation Style Guide.
Note: Being less formal does not mean being less technical. Simplify your prose, not the technical content.
In markdown files, use # ⇒ instead of a single equal sign when you want to
show what an op returns.
# 'input' is a tensor of shape [2, 3, 5]
tf.expand_dims(input, 0) # ⇒ [1, 2, 3, 5]
In notebooks, display the result instead of adding a comment (If the last expression in a notebook cell is not assigned to a variable, it is automatically displayed.)
In API reference docs prefer using doctest to show results.
When you're talking about a tensor in general, don't capitalize the word
tensor. When you're talking about the specific object that's provided to or
returned from an op, then you should capitalize the word Tensor and add
backticks around it because you're talking about a Tensor object.
Don't use the word Tensors (plural) to describe multiple Tensor objects
unless you really are talking about a Tensors object. Instead, say "a list (or
collection) of Tensor objects".
Use the word shape to detail the axes of a tensor, and show the shape in square brackets with backticks. For example:
<pre><code> If `input` is a three-axis `Tensor` with shape `[3, 4, 3]`, this operation returns a three-axis `Tensor` with shape `[6, 8, 6]`. </code></pre>As above, prefer "axis" or "index" over "dimension" when talking about the
elements of a Tensor's shape. Otherwise it's easy to confuse "dimension" with
the dimension of a vector space. A "three-dimensional vector" has a single axis
with length 3.