9c17be5301
Docs-Preview: https://skia.org/?cl=255085 Change-Id: I8911862ca9814b89b8598ad743b1faa9c524399f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255085 Commit-Queue: Ben Wagner aka dogben <benjaminwagner@google.com> Commit-Queue: Joe Gregorio <jcgregorio@google.com> Reviewed-by: Joe Gregorio <jcgregorio@google.com> Reviewed-by: Eric Boren <borenet@google.com> Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
459 lines
12 KiB
Markdown
459 lines
12 KiB
Markdown
Markdown
|
|
========
|
|
|
|
This site can handle normal Markdown and many common extensions. To learn
|
|
how the following is done please see the [source for this page](./markdown.md).
|
|
Any file you put under `/site/` that has the extension `.md` will be processed
|
|
as Markdown. All other files will be served directly. For example, images
|
|
can be added and they will be served correctly and referenced from within Markdown files.
|
|
|
|
When preparing for a code review of site docs you can get a preview of how the
|
|
page will render by visiting the skia.org site and add a query parameter `cl`
|
|
with the value of the Reitveld issue id:
|
|
|
|
https://skia.org/path/to/markdown-file?cl=REITVELD_ISSUE_NUMBER
|
|
|
|
This is the preferred method of previewing docs changes.
|
|
|
|
If for some reason you can't use the method above to preview docs changes you
|
|
can also run a local copy of the documentation server, which will allow you to
|
|
preview changes much quicker. You must have a recent version (>=8.9) of
|
|
[node](https://nodejs.org/) installed on your machine. You must also have
|
|
[Go](https://golang.org) installed on your computer, which you will have if
|
|
you are running on a Google corporate workstation. Installation also means
|
|
that you have `$GOPATH/bin` [added to your PATH](https://golang.org/doc/code.html#GOPATH). Run:
|
|
|
|
git clone https://skia.googlesource.com/buildbot
|
|
cd buildbot/docserverk
|
|
make
|
|
|
|
And then **from within** the directory of your local Git checkout of Skia run:
|
|
|
|
docserverk --preview --local
|
|
|
|
Then visit http://localhost:8000 to preview your changes. There is no need to
|
|
restart the server for file changes, but you will need to restart it if there
|
|
are changes to the navigation menu, i.e. you add or remove a file and want it
|
|
to appear in the navigation on the right hand side of the page.
|
|
|
|
If port 8000 is unavailable on your machine you can set the port to use via
|
|
the --port flag:
|
|
|
|
docserverk --preview --local --port=:8002
|
|
|
|
METADATA
|
|
--------
|
|
|
|
By default all files and directories that appear in the same level are sorted
|
|
alphabetically by file name in the navigation menu, with files appearing
|
|
before directories. You can override this default behavior by adding a
|
|
METADATA file to a directory. A METADATA file is a JSON file of the following
|
|
format:
|
|
|
|
~~~~
|
|
{
|
|
"dirOrder": ["sample", "quick", "special"],
|
|
"fileOrder": ["download", "api"]
|
|
}
|
|
~~~~
|
|
|
|
If a file or directory doesn't appear in `dirOrder` or `fileOrder` then it is sorted
|
|
to appear after the members of `dirOrder` or `fileOrder` respectively. All
|
|
files and directories that aren't controlled by a METADATA file are sorted in
|
|
alphabetical order by their filename.
|
|
|
|
Some Example Markdown
|
|
---------------------
|
|
|
|
This is a [link](https://www.google.com). You can also create
|
|
ordered and unordered lists:
|
|
|
|
1. First
|
|
2. Second:
|
|
* Fee
|
|
* Fie
|
|
* Foe
|
|
* Fum
|
|
3. Third
|
|
|
|
Incorporate images:
|
|
|
|
![image](/dev/tools/image.png)
|
|
|
|
Or go old school and use [ASCII art](http://asciiflow.com/):
|
|
|
|
~~~~
|
|
|
|
+----------------+
|
|
| Should you |
|
|
+--+ use ASCII art? +--+
|
|
| +----------------+ |
|
|
| |
|
|
+---v---+ +---v---+
|
|
| | | |
|
|
| Yes | | No |
|
|
| | | |
|
|
+-------+ +-------+
|
|
|
|
~~~~
|
|
|
|
Format code snippets or other preformatted text. Just surround the code
|
|
with `~~~~`. You can also trigger syntax highlighting by putting in
|
|
the following HTML comment before the code section:
|
|
|
|
<!--?prettify?-->
|
|
|
|
|
|
<!--?prettify?-->
|
|
~~~~
|
|
class SK_API SkPaint {
|
|
public:
|
|
SkPaint();
|
|
SkPaint(const SkPaint& paint);
|
|
~SkPaint();
|
|
|
|
SkPaint& operator=(const SkPaint&);
|
|
~~~~
|
|
|
|
|
|
Tables
|
|
|
|
Name | Value | Summary
|
|
--------|----------|--------
|
|
A | 27 | yes
|
|
B | 23 | no
|
|
|
|
|
|
There are also inline styles for *emphasis*, **bold**,
|
|
~~strikethrough~~, and `inline code`. Also small fractions,
|
|
such as 1/2 are rendered nicely.
|
|
|
|
> # There are
|
|
> ## Headers
|
|
> ### Up To
|
|
> #### Six
|
|
> ##### Levels
|
|
> ###### Deep
|
|
|
|
And you can <b>always</b> use HTML, which is useful for features that can't be
|
|
done in Markdown, such as iframes, but try to avoid using HTML outside of
|
|
sitations like that.
|
|
<svg viewBox="0 0 24 24" height="24px" width="24px" style="display: inline;">
|
|
<g>
|
|
<path d="M1
|
|
21h4v-12h-4v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06l-1.06-1.05-6.58
|
|
6.59c-.37.36-.59.86-.59 1.41v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5
|
|
1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.91l-.01-.01.01-.08z"> </path>
|
|
</g>
|
|
</svg>
|
|
|
|
Reference
|
|
=========
|
|
|
|
Below is a longer reference on the Markdown that docserver accepts.
|
|
|
|
Paragraphs
|
|
----------
|
|
|
|
A paragraph is simply one or more consecutive lines of text, separated
|
|
by one or more blank lines. (A blank line is any line that looks like a
|
|
blank line -- a line containing nothing. Note: all spaces or tabs is considered
|
|
blank.) Normal paragraphs should not be intended with spaces or tabs.
|
|
|
|
Headers and Blockquotes
|
|
-----------------------
|
|
|
|
You can create headers by either "underlining" with equal signs (`=`) and hyphens (`-`),
|
|
or,you can put 1-6 hash marks (`#`) at the
|
|
beginning of the line -- the number of hashes equals the resulting
|
|
HTML header level.
|
|
|
|
Blockquotes are indicated using email-style '`>`' angle brackets.
|
|
|
|
Markdown:
|
|
|
|
A First Level Header
|
|
====================
|
|
|
|
A Second Level Header
|
|
---------------------
|
|
|
|
Now is the time for all good men to come to
|
|
the aid of their country. This is just a
|
|
regular paragraph.
|
|
|
|
The quick brown fox jumped over the lazy
|
|
dog's back.
|
|
|
|
### Header 3
|
|
|
|
> This is a blockquote.
|
|
>
|
|
> This is the second paragraph in the blockquote.
|
|
>
|
|
> ## This is an H2 in a blockquote
|
|
|
|
|
|
Output:
|
|
|
|
<h1>A First Level Header</h1>
|
|
|
|
<h2>A Second Level Header</h2>
|
|
|
|
<p>Now is the time for all good men to come to
|
|
the aid of their country. This is just a
|
|
regular paragraph.</p>
|
|
|
|
<p>The quick brown fox jumped over the lazy
|
|
dog's back.</p>
|
|
|
|
<h3>Header 3</h3>
|
|
|
|
<blockquote>
|
|
<p>This is a blockquote.</p>
|
|
|
|
<p>This is the second paragraph in the blockquote.</p>
|
|
|
|
<h2>This is an H2 in a blockquote</h2>
|
|
</blockquote>
|
|
|
|
|
|
|
|
### Phrase Emphasis ###
|
|
|
|
Markdown uses asterisks and underscores to indicate spans of emphasis.
|
|
|
|
Markdown:
|
|
|
|
Some of these words *are emphasized*.
|
|
Some of these words _are emphasized also_.
|
|
|
|
Use two asterisks for **strong emphasis**.
|
|
Or, if you prefer, __use two underscores instead__.
|
|
|
|
Output:
|
|
|
|
<p>Some of these words <em>are emphasized</em>.
|
|
Some of these words <em>are emphasized also</em>.</p>
|
|
|
|
<p>Use two asterisks for <strong>strong emphasis</strong>.
|
|
Or, if you prefer, <strong>use two underscores instead</strong>.</p>
|
|
|
|
|
|
|
|
## Lists ##
|
|
|
|
Unordered (bulleted) lists use asterisks, pluses, and hyphens (`*`,
|
|
`+`, and `-`) as list markers. These three markers are
|
|
interchangable; this:
|
|
|
|
* Candy.
|
|
* Gum.
|
|
* Booze.
|
|
|
|
this:
|
|
|
|
+ Candy.
|
|
+ Gum.
|
|
+ Booze.
|
|
|
|
and this:
|
|
|
|
- Candy.
|
|
- Gum.
|
|
- Booze.
|
|
|
|
all produce the same output:
|
|
|
|
<ul>
|
|
<li>Candy.</li>
|
|
<li>Gum.</li>
|
|
<li>Booze.</li>
|
|
</ul>
|
|
|
|
Ordered (numbered) lists use regular numbers, followed by periods, as
|
|
list markers:
|
|
|
|
1. Red
|
|
2. Green
|
|
3. Blue
|
|
|
|
Output:
|
|
|
|
<ol>
|
|
<li>Red</li>
|
|
<li>Green</li>
|
|
<li>Blue</li>
|
|
</ol>
|
|
|
|
If you put blank lines between items, you'll get `<p>` tags for the
|
|
list item text. You can create multi-paragraph list items by indenting
|
|
the paragraphs by 4 spaces or 1 tab:
|
|
|
|
* A list item.
|
|
|
|
With multiple paragraphs.
|
|
|
|
* Another item in the list.
|
|
|
|
Output:
|
|
|
|
<ul>
|
|
<li><p>A list item.</p>
|
|
<p>With multiple paragraphs.</p></li>
|
|
<li><p>Another item in the list.</p></li>
|
|
</ul>
|
|
|
|
|
|
|
|
### Links ###
|
|
|
|
Markdown supports two styles for creating links: *inline* and
|
|
*reference*. With both styles, you use square brackets to delimit the
|
|
text you want to turn into a link.
|
|
|
|
Inline-style links use parentheses immediately after the link text.
|
|
For example:
|
|
|
|
This is an [example link](http://example.com/).
|
|
|
|
Output:
|
|
|
|
<p>This is an <a href="http://example.com/">
|
|
example link</a>.</p>
|
|
|
|
Optionally, you may include a title attribute in the parentheses:
|
|
|
|
This is an [example link](http://example.com/ "With a Title").
|
|
|
|
Output:
|
|
|
|
<p>This is an <a href="http://example.com/" title="With a Title">
|
|
example link</a>.</p>
|
|
|
|
Reference-style links allow you to refer to your links by names, which
|
|
you define elsewhere in your document:
|
|
|
|
I get 10 times more traffic from [Google][1] than from
|
|
[Yahoo][2] or [MSN][3].
|
|
|
|
[1]: http://google.com/ "Google"
|
|
[2]: http://search.yahoo.com/ "Yahoo Search"
|
|
[3]: http://search.msn.com/ "MSN Search"
|
|
|
|
Output:
|
|
|
|
<p>I get 10 times more traffic from <a href="http://google.com/"
|
|
title="Google">Google</a> than from <a href="http://search.yahoo.com/"
|
|
title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/"
|
|
title="MSN Search">MSN</a>.</p>
|
|
|
|
The title attribute is optional. Link names may contain letters,
|
|
numbers and spaces, but are *not* case sensitive:
|
|
|
|
I start my morning with a cup of coffee and
|
|
[The New York Times][NY Times].
|
|
|
|
[ny times]: http://www.nytimes.com/
|
|
|
|
Output:
|
|
|
|
<p>I start my morning with a cup of coffee and
|
|
<a href="http://www.nytimes.com/">The New York Times</a>.</p>
|
|
|
|
|
|
### Images ###
|
|
|
|
Image syntax is very much like link syntax.
|
|
|
|
Inline (titles are optional):
|
|
|
|
![alt text](/path/to/img.jpg "Title")
|
|
|
|
Reference-style:
|
|
|
|
![alt text][id]
|
|
|
|
[id]: /path/to/img.jpg "Title"
|
|
|
|
Both of the above examples produce the same output:
|
|
|
|
<img src="/path/to/img.jpg" alt="alt text" title="Title" />
|
|
|
|
|
|
|
|
### Code ###
|
|
|
|
In a regular paragraph, you can create code span by wrapping text in
|
|
backtick quotes. Any ampersands (`&`) and angle brackets (`<` or
|
|
`>`) will automatically be translated into HTML entities. This makes
|
|
it easy to use Markdown to write about HTML example code:
|
|
|
|
I strongly recommend against using any `<blink>` tags.
|
|
|
|
I wish SmartyPants used named entities like `—`
|
|
instead of decimal-encoded entites like `—`.
|
|
|
|
Output:
|
|
|
|
<p>I strongly recommend against using any
|
|
<code><blink></code> tags.</p>
|
|
|
|
<p>I wish SmartyPants used named entities like
|
|
<code>&mdash;</code> instead of decimal-encoded
|
|
entites like <code>&#8212;</code>.</p>
|
|
|
|
|
|
To specify an entire block of pre-formatted code, indent every line of
|
|
the block by 4 spaces or 1 tab, or add a line containing three backticks before
|
|
and after the code block. Just like with code spans, `&`, `<`,
|
|
and `>` characters will be escaped automatically.
|
|
|
|
Markdown:
|
|
|
|
If you want your page to validate under XHTML 1.0 Strict,
|
|
you've got to put paragraph tags in your blockquotes:
|
|
|
|
<blockquote>
|
|
<p>For example.</p>
|
|
</blockquote>
|
|
|
|
or
|
|
|
|
If you want your page to validate under XHTML 1.0 Strict,
|
|
you've got to put paragraph tags in your blockquotes:
|
|
|
|
```
|
|
<blockquote>
|
|
<p>For example.</p>
|
|
</blockquote>
|
|
```
|
|
|
|
Output:
|
|
|
|
<p>If you want your page to validate under XHTML 1.0 Strict,
|
|
you've got to put paragraph tags in your blockquotes:</p>
|
|
|
|
<pre><code><blockquote>
|
|
<p>For example.</p>
|
|
</blockquote>
|
|
</code></pre>
|
|
|
|
|
|
### Floating Menu ###
|
|
|
|
To create a floating menu for a single page that always appears
|
|
in the upper right hand corner of the page, use a `div` with a
|
|
class of "float", for example:
|
|
|
|
<div class="float">
|
|
<ul>
|
|
<li><a href="#SkXfermode">SkXfermode</a></li>
|
|
<li><a href="#SkShader">SkShader</a></li>
|
|
<li><a href="#SkMaskFilter">SkMaskFilter</a></li>
|
|
<li><a href="#SkColorFilter">SkColorFilter</a></li>
|
|
<li><a href="#SkPathEffect">SkPathEffect</a></li>
|
|
</ul>
|
|
</div>
|
|
|