mkdocs-material/docs/specimen.md

201 lines
5.7 KiB
Markdown
Raw Normal View History

2016-09-23 12:56:25 +03:00
# Specimen should get a very long name, so we see how it behaves with the new edit url feature that is awesome
2016-08-07 19:01:56 +03:00
## Typography
### Body copy
Material's typographical system follows the idea of __vertical rhythm__, which
means it tries to establish a _consistent visual rhythm_ to the content of the
page to make reading pleasant and easy on the eyes. It's a simple concept but
rather hard to implement correctly. Luckily, the Material theme has already
done this for you, so sit back, relax, and start writing your documentation.
Naturally, the Material theme defines __bold__ and _italic_ styles, makes it
easy to write `fenced inline code blocks`, [links](#) and <kbd>Keyboard</kbd>
<kbd>+</kbd> <kbd>Commands</kbd>.
### Headings <small>w/ or w/o secondary text</small>
Besides the default HTML headings `<h2>` to `<h6>`, the representational
classes `.h2` to `.h6` are defined to allow easy inline styling. The `<h1>`
should be only defined once and is integrated into the collapsing header.
Secondary text can be introduced to all headings (including `<h1>`) by using
the `<small>` tag directly inside Markdown.
## Blockquotes
> Text can also be written in blockquotes, for example to paraphrase
> something or someone.
>
> > And blockquotes can be nested?
>
> This is correct. Furthermore, they can contain __bold__ and _italic_ text,
> `fenced inline code blocks`, [links](#), headings and all kind of stuff.
## Lists
### Ordered lists
### Unordered lists
2016-09-23 12:56:25 +03:00
## Checklists
This is inline hilighted text `#!js var test = 0;` that is just awesome LOL
* [ ] foo
* [x] bar
* [ ] baz
* [ ] foo
* [x] bar
* [ ] baz
<ul>
<li class="task-list-item">
<input type="checkbox" disabled><label></label> This needs to be done
</li>
<li class="task-list-item">
<input type="checkbox" disabled checked><label></label> This is done
<ul>
<li class="task-list-item">
<input type="checkbox" disabled><label></label> This needs to be done
</li>
<li class="task-list-item">
<input type="checkbox" disabled checked><label></label> This is done
</li>
</ul>
</li>
</ul>
Another default list:
* No checklist
* Foobar
``` js
function() test {
var foo = 12;
return foo;
}
```
Here is some {--*incorrect*--} Markdown. I am adding this {++here.++}. Here is some more {--text
that I am removing--}text. And here is even more {++text that I
am ++}adding.{~~
~> ~~}Paragraph was deleted and replaced with some spaces.{~~ ~>
~~}Spaces were removed and a paragraph was added.
And here is a comment on {==some
==text== ==} asdhsjakh dkah dkash dkjas hdkash dksa sahdka kas dksa hdksah dksa kdsa kdask dask {>>This works quite well. I just wanted to comment on it.<<}. Substitutions {~~is~>are~~} great!
### Test {--headline--} [`with code`](http://google.com) and ==foo== [without](http://google.com)
This is also ==something that is marked (tm)==. Very cool.
Escape \{>>This text is preserved<<}.
General block handling.
{--
* test
* test
* test
* test
* test
--}
{++
* test
* test
* test
* test
* test
++}
2016-08-07 19:01:56 +03:00
## Code
### Listing
Pre-formatted code blocks can host code examples and use the pygments extension
(if installed and enabled in `mkdocs.yml`) for syntax highlighting:
2016-09-23 12:56:25 +03:00
``` c hl_lines="14 15 20"
2016-08-07 19:01:56 +03:00
/*!
* Scan a buffer for a valid variable-sized integer.
*
* This function checks if an underrun might happen reading a variable-sized
* integer from a buffer. Only underruns can be checked using this method,
* overflows may still happen, but are properly reported by the unpack
* functions. SSE2 intrinsics are used if the compiler supports it.
*
* \param[in] data[] Source buffer
* \param[in] left Remaining bytes
* \return Bytes read
*/
extern size_t
pb_varint_scan(const uint8_t data[], size_t left) {
assert(data && left);
left = left > 10 ? 10 : left;
#ifdef __SSE2__
/* Mapping: remaining bytes ==> bitmask */
static const int mask_map[] = {
0x0000, 0x0001, 0x0003, 0x0007,
0x000F, 0x001F, 0x003F, 0x007F,
0x00FF, 0x01FF, 0x03FF
};
/* Load buffer into 128-bit integer and create high-bit mask */
__m128i temp = _mm_loadu_si128((const __m128i *)data);
__m128i high = _mm_set1_epi8(0x80);
/* Intersect and extract mask with high-bits set */
int mask = _mm_movemask_epi8(_mm_and_si128(temp, high));
mask = (mask & mask_map[left]) ^ mask_map[left];
/* Count trailing zeroes */
return mask ? __builtin_ctz(mask) + 1 : 0;
#else
/* Linear scan */
size_t size = 0;
while (data[size++] & 0x80)
if (!--left)
return 0;
return size;
#endif /* __SSE2__ */
}
```
### Inline
Code can also be written within `fenced inline code blocks`, however syntax
highlighting will only work on code listings.
## Tables
| Feature / Implementation | protobluff | protobuf-c | nanopb | lwpb | pbc |
|--------------------------|------------|------------|---------|------|-----|
| Message types | yes | yes | yes | yes | yes |
| Nested message types | yes | yes | yes | yes | yes |
| Cyclic message types | yes | yes | partial | yes | yes |
| Scalar types | yes | yes | yes | yes | yes |
| Default values | yes | yes | yes | yes | yes |
| Enumerations | yes | yes | yes | yes | yes |
| Extensions | yes | - | yes | - | yes |
| Oneofs | yes | yes | yes | - | - |
| Packages | yes | yes | yes | yes | yes |
| Packed option | yes | yes | yes | yes | yes |
| Deprecations | yes | partial | - | - | - |