<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>Introduction</title>
<style type="text/css">
html { height: 100%; }
body {
font-family: sans-serif;
margin: 0; padding: 0;
background-color: #ffffff;
color: #000000;
direction: ltr;
}
article, aside, nav, header, footer, section {
display: block;
margin: 0;
padding: 0;
}
main {
display: flex;
flex-flow: row;
}
main > * {
flex: 0 0 220px;
}
main > div.page {
flex-grow: 1;
margin: 0;
display: flex;
flex-flow: column;
align-items: stretch;
justify-content: flex-start;
min-height: 100vh;
}
div.page > article { flex: 1 0 auto; }
div.page > header, div.page > footer { flex: 0 1 auto; }
.pagewide {
max-width: 940px;
margin-left: auto;
margin-right: auto;
padding-left: 10px;
padding-right: 10px;
}
aside.sidebar {
width: 300px;
padding: 20px 10px;
background: rgb(244,244,244)
}
aside.sidebar-right { order: 3; }
aside.sidebar section { margin-top: 0; }
aside.sidebar * { margin-bottom: 20px; }
aside.sidebar section > div.inner > div.hgroup {
border-bottom: none;
}
aside.sidebar section h2 {
font-size: 1em;
margin-bottom: 0;
}
article {
padding-top: 10px;
padding-bottom: 10px;
min-height: 20em;
background-color: #ffffff;
}
section {
margin-top: 2.4em;
clear: both;
}
section section {
margin-top: 1.44em;
}
.yelp-hash-highlight {
animation-name: yelp-hash-highlight;
animation-duration: 0.5s;
animation-fill-mode: forwards;
}
@keyframes yelp-hash-highlight {
from { transform: translateY(0px) }
25% { transform: translateY(20px); }
50% { transform: translateY(0); }
75% { transform: translateY(10px); }
to { transform: translateY(0px); }
}
div.trails {
margin: 0 -10px 0 -10px;
padding: 0.2em 10px;
background-color: rgb(244,244,244);
}
div.trail {
margin: 0.2em 0;
padding: 0 1em 0 1em;
text-indent: -1em;
color: rgb(75,75,73);
}
a.trail { white-space: nowrap; }
div.hgroup {
margin-bottom: 0.5em;
color: rgb(75,75,73);
}
section > div.inner > div.hgroup {
margin-top: 0;
border-bottom: solid 1px #c0bfbc;
}
section.links > div.inner > div.hgroup {
border-bottom: solid 2px rgb(43,107,185);
}
section section.links > div.inner > div.hgroup {
border: none;
}
h1, h2, h3, h4, h5, h6, h7 {
margin: 0; padding: 0;
color: rgb(75,75,73);
font-weight: bold;
}
h1 { font-size: 2em; }
h2 { font-size: 1.44em; }
h3.title, h4.title, h5.title, h6.title, h7.title { font-size: 1.2em; }
h3, h4, h5, h6, h7 { font-size: 1em; }
p { line-height: 1.44em; }
div, pre, p { margin: 0; padding: 0; }
div.contents > * + *,
th > * + *, td > * + *,
dt > * + *, dd > * + *,
li > * + * { margin-top: 1em; }
p img { vertical-align: middle; }
p.lead { font-size: 1.2em; }
div.clear {
margin: 0; padding: 0;
height: 0; line-height: 0;
clear: both;
}
.center { text-align: center; }
footer.about { margin: 0; }
footer.about > div.inner > div.hgroup {
margin: 0; padding: 0;
text-align: center;
border: none;
}
footer.about > div.inner > div.hgroup > h2 {
margin: 0; padding: 0.2em;
font-size: inherit;
}
footer.about.ui-expander > div.inner > div.hgroup span.title:before {
content: "";
}
div.copyrights {
max-width: 700px;
text-align: center;
padding: 10px;
margin: 0 auto;
}
div.copyright { margin: 0; }
div.credits {
display: flex;
flex-flow: row wrap;
align-items: stretch;
justify-content: flex-start;
max-width: 720px;
margin: 0 auto;
}
div.credits > * {
vertical-align: top;
text-align: left;
flex: 1 0 220px;
margin: 0;
padding: 10px;
}
div.credits > *:empty { padding: 0 10px; height: 0; }
ul.credits, ul.credits li {
margin: 0; padding: 0;
list-style-type: none;
}
ul.credits li {
margin-left: 1em;
text-indent: -1em;
}
div.license {
max-width: 700px;
margin: 0 auto;
padding: 10px;
}
table {
border-collapse: collapse;
border-color: #c0bfbc;
border-width: 1px;
}
td, th {
padding: 0.5em;
vertical-align: top;
border-color: #c0bfbc;
border-width: 1px;
}
thead td, thead th, tfoot td, tfoot th {
font-weight: bold;
color: rgb(75,75,73);
background-color: rgb(234,234,233);
}
th {
text-align: left;
font-weight: bold;
color: rgb(75,75,73);
}
ul, ol, dl { margin: 0; padding: 0; }
li {
margin: 1em 0 0 0;
margin-left: 2.4em;
padding: 0;
}
li:first-child { margin-top: 0; }
@media (max-width: 480px) {
li {
margin-left: 1.44em;
}
}
dt { margin-top: 1em; }
dt:first-child { margin-top: 0; }
dt + dt { margin-top: 0; }
dd {
margin: 0.2em 0 0 0;
margin-left: 1.44em;
}
dd + dd { margin-top: 1em; }
ol.compact li { margin-top: 0.2em; }
ul.compact li { margin-top: 0.2em; }
ol.compact li:first-child { margin-top: 0; }
ul.compact li:first-child { margin-top: 0; }
dl.compact dt { margin-top: 0.2em; }
dl.compact dt:first-child { margin-top: 0; }
dl.compact dt + dt { margin-top: 0; }
a {
text-decoration: none;
color: rgb(43,107,185);
}
a:visited { color: rgb(147,64,167); }
a:hover {
border-bottom: dotted 1px rgb(43,107,185);
}
p a {
border-bottom: dotted 1px rgb(43,107,185);
}
a img { border: none; }
.yelp-svg-fill {
fill: rgb(75,75,73);
}
.yelp-svg-stroke {
stroke: rgb(75,75,73);
}
div.title {
margin: 0 0 0.2em 0;
font-weight: bold;
color: rgb(75,75,73);
}
div.title h1, div.title h2, div.title h3, div.title h4, div.title h5, div.title h6 {
margin: 0;
font-size: inherit;
font-weight: inherit;
color: inherit;
}
div.desc { margin: 0 0 0.2em 0; }
div.contents + div.desc { margin: 0.2em 0 0 0; }
pre.contents {
padding: 0.5em 1em 0.5em 1em;
}
div.links-center { text-align: center; }
div.links .desc { color: rgb(102,102,100); }
div.links > div.inner > div.region > div.desc { font-style: italic; }
div.links ul { margin: 0; padding: 0; }
div.links ul ul {
margin-left: 1em;
}
li.links {
margin: 0.5em 0 0.5em 0;
padding: 0;
list-style-type: none;
}
li.links-head {
margin-top: 1em;
color: rgb(102,102,100);
border-bottom: solid 1px #c0bfbc;
}
div.sectionlinks {
display: inline-block;
padding: 0 1em 0 1em;
background-color: rgb(241,246,253);
border: solid 1px rgb(43,107,185);
}
div.sectionlinks ul { margin: 0; }
div.sectionlinks li { padding: 0; }
div.sectionlinks div.title { margin: 0.5em 0 0.5em 0; }
div.sectionlinks div.sectionlinks {
display: block;
margin: 0.5em 0 0 0;
padding: 0;
border: none;
}
div.sectionlinks div.sectionlinks li {
padding-left: 1.44em;
}
nav.prevnext { clear: both; }
div.region > nav.prevnext, div.region + nav.prevnext { margin-top: 1em; }
nav.prevnext > div.inner { float: right; }
nav.prevnext > div.inner > * {
background-color: rgb(244,244,244);
display: inline-block;
position: relative;
height: 1.44em;
padding: 0.2em 0.83em 0 0.83em;
margin-bottom: 1em;
border: solid 1px #c0bfbc;
}
nav.prevnext > div.inner > span { visibility: hidden; }
nav.prevnext > div.inner > a + a {
border-left: none;
}
nav.prevnext > div.inner > a:first-child {
border-top-left-radius: 2px;
border-bottom-left-radius: 2px;
}
nav.prevnext > div.inner > a:last-of-type {
border-top-right-radius: 2px;
border-bottom-right-radius: 2px;
}
div.serieslinks {
display: inline-block;
padding: 0 1em 0 1em;
background-color: rgb(241,246,253);
border: solid 1px rgb(43,107,185);
}
div.serieslinks ul { margin: 0; }
div.serieslinks li { padding: 0; }
div.serieslinks div.title { margin: 0.5em 0 0.5em 0; }
pre.numbered {
margin: 0;
padding: 0.5em;
float: left;
margin-right: 0.5em;
text-align: right;
color: rgb(102,102,100);
background-color: rgb(253,251,233);
}
div.code {
border: solid 1px #c0bfbc;
}
div.example {
border-left: solid 4px #c0bfbc;
padding-left: 1em;
}
div.example > div.inner > div.region > div.desc { font-style: italic; }
div.figure {
display: inline-block;
max-width: 100%;
margin-left: 1.72em;
}
div.figure > div.inner {
padding: 4px;
color: rgb(75,75,73);
border: solid 1px #c0bfbc;
background-color: rgb(244,244,244);
}
@media (max-width: 960px) {
div.figure {
margin-left: 0;
}
}
a.figure-zoom {
float: right;
}
a.figure-zoom:hover { border-bottom: none; }
a.figure-zoom:hover .yelp-svg-fill { fill: #3584e4; }
a.figure-zoom:hover .yelp-svg-stroke { stroke: #3584e4; }
a.figure-zoom .figure-zoom-out { display: none; }
a.figure-zoom.figure-zoomed .figure-zoom-in { display: none; }
a.figure-zoom.figure-zoomed .figure-zoom-out { display: inline-block; }
div.figure > div.inner > div.region > div.contents {
margin: 0;
padding: 0.5em 1em 0.5em 1em;
clear: both;
text-align: center;
color: #000000;
border: solid 1px #c0bfbc;
background-color: #ffffff;
}
div.list > div.inner > div.title { margin-bottom: 0.5em; }
div.listing > div.inner { margin: 0; padding: 0; }
div.listing > div.inner > div.region > div.desc { font-style: italic; }
div.note {
padding: 6px;
border: solid 1px rgb(234,234,233);
background-color: rgb(244,244,244);
display: flex;
flex-flow: row;
}
div.note > * { margin: 0 6px; padding: 0; min-height: 24px; min-width: 24px; }
div.note-warning > svg .yelp-svg-fill {
fill: #c01c28;
}
div.note-danger {
border-color: #c01c28;
}
div.note-important > svg .yelp-svg-fill {
fill: #3584e4;
}
div.note-danger > svg .yelp-svg-fill {
fill: #c01c28;
animation-name: yelp-note-danger;
animation-duration: 2s;
animation-fill-mode: forwards;
animation-iteration-count: infinite;
}
@keyframes yelp-note-danger {
from { fill: #c01c28 }
50% { fill: #c0bfbc }
to { fill: #c01c28 }
}
div.note-sidebar {
float: right;
max-width: 206px;
margin-left: 20px;
padding: 6px;
}
div.quote {
padding: 0;
min-height: 48px;
}
div.quote > div.inner:before {
float: left;
content: '“';
font-family: "Century Schoolbook L";
font-size: 48px;
font-weight: bold;
line-height: 1em;
margin: 0; padding: 0;
height: 48px;
width: 48px;
text-align: center;
color: rgb(234,234,233);
}
div.quote > div.inner > div.title {
margin: 0;
margin-left: 48px;
}
blockquote {
margin: 0; padding: 0;
margin-left: 48px;
}
blockquote > *:first-child { margin-top: 0; }
div.quote > div.inner > div.region > div.cite {
margin-top: 0.5em;
margin-left: 48px;
color: rgb(102,102,100);
}
div.quote > div.inner > div.region > div.cite::before {
content: '― ';
color: rgb(102,102,100);
}
div.screen {
background-color: rgb(244,244,244);
border: solid 1px #c0bfbc;
}
ol.steps, ul.steps {
padding: 0.5em 1em 0.5em 1em;
border-left: solid 4px #f8e45c;
box-shadow: 0 1px 2px #c0bfbc;
}
ol.steps .steps {
padding: 0;
border: none;
background-color: unset;
box-shadow: none;
}
li.steps { margin-left: 1.44em; }
li.steps li.steps { margin-left: 2.4em; }
div.synopsis > div.inner > div.region > div.contents,
div.synopsis > div.contents, div.synopsis > pre.contents {
padding: 0.5em 1em 0.5em 1em;
border-top: solid 1px;
border-bottom: solid 1px;
border-color: rgb(43,107,185);
background-color: rgb(244,244,244);
}
div.synopsis > div.inner > div.region > div.desc { font-style: italic; }
div.synopsis div.code {
background: unset;
border: none;
padding: 0;
}
div.synopsis div.code > pre.contents { margin: 0; padding: 0; }
div.unknown > div.inner > div.region > div.desc { font-style: italic; }
div.table > div.desc { font-style: italic; }
tr.shade {
background-color: rgb(244,244,244);
}
td.shade {
background-color: rgb(244,244,244);
}
tr.shade td.shade {
background-color: rgb(234,234,233);
}
span.app { font-style: italic; }
span.cmd {
font-family: monospace,monospace; font-size: 0.83em;
background-color: rgb(244,244,244);
padding: 0 0.2em 0 0.2em;
}
span.cmd span.cmd { background-color: unset; padding: 0; }
pre span.cmd { background-color: unset; padding: 0; }
span.code {
font-family: monospace,monospace; font-size: 0.83em;
border-bottom: solid 1px rgb(234,234,233);
}
span.code span.code { border: none; }
pre span.code { border: none; }
span.em { font-style: italic; }
span.em-bold {
font-style: normal; font-weight: bold;
color: rgb(75,75,73);
}
pre span.error {
color: rgb(173,25,36);
}
span.file { font-family: monospace,monospace; font-size: 0.83em; }
span.gui, span.guiseq { color: rgb(75,75,73); }
span.input { font-family: monospace,monospace; font-size: 0.83em; }
pre span.input {
font-weight: bold;
color: rgb(75,75,73);
}
kbd {
font-family: inherit;
font-size: inherit;
color: rgb(75,75,73);
background-color: rgb(244,244,244);
border: solid 1px #c0bfbc;
border-radius: 2px;
box-shadow: 1px 1px 2px #c0bfbc;
margin: 0 0.2em 0 0.2em;
padding: 0.2em 0.5em 0 0.5em;
white-space: nowrap;
}
kbd.key-Fn {
font-weight: bold;
color: rgb(43,107,185);
}
span.key a {
border-bottom: none;
}
a > kbd {
color: rgb(43,107,185);
border-color: rgb(43,107,185);
}
span.keyseq {
color: rgb(75,75,73);
white-space: nowrap
}
span.output { font-family: monospace,monospace; font-size: 0.83em; }
pre span.output {
color: #000000;
}
pre span.prompt {
color: rgb(75,75,73);
}
span.sys { font-family: monospace,monospace; font-size: 0.83em; }
span.var { font-style: italic; }
.ui-tile-img .media-controls { display: none; }
span.media-audio, span.media-video { display: inline-block; }
audio, video { display: block; margin: 0; }
div.media > div.inner { display: inline-block; text-align: center; }
.media-controls {
min-width: 24em;
height: 24px;
margin: 0; padding: 0;
border-left: solid 1px #000000;
border-right: solid 1px #000000;
border-bottom: solid 1px #000000;
background-color: rgb(75,75,73);
color: #ffffff;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
display: flex;
align-items: center;
}
.media-audio .media-controls {
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.media-controls > * {
flex: 0 1 auto;
}
.media-controls > input.media-range {
flex: 1 0 auto;
background-color: rgb(75,75,73);
margin: 0 10px;
-webkit-appearance: none;
}
input.media-range::-webkit-slider-runnable-track {
height: 4px;
background: rgb(102,102,100);
border-radius: 2px;
}
input.media-range::-webkit-slider-thumb {
-webkit-appearance: none;
height: 16px;
width: 16px;
border-radius: 8px;
background: rgb(234,234,233);
border: solid 1px rgb(75,75,73);
margin-top: -6px;
}
input.media-range::-webkit-slider-thumb:hover,
input.media-range::-webkit-slider-thumb:focus {
background: rgb(244,244,244);
}
input.media-range::-moz-range-track {
height: 4px;
background: rgb(102,102,100);
border-radius: 2px;
}
input.media-range::-moz-range-thumb {
-webkit-appearance: none;
height: 16px;
width: 16px;
border-radius: 8px;
background: rgb(234,234,233);
border: solid 1px rgb(75,75,73);
margin-top: -6px;
}
.media-controls-audio {
border-top: solid 1px #000000;
border-radius: 4px;
}
button.media-play {
height: 24px;
padding: 0 2px 0 2px; line-height: 0;
background-color: rgb(75,75,73);
border: none;
border-right: solid 1px #000000;
}
button.media-play:hover, button.media-play:focus {
background-color: rgb(43,107,185);
}
button.media-play .yelp-svg-fill { fill: rgb(244,244,244); }
button.media-play .media-pause { display: none; }
button.media-play-playing .media-play { display: none; }
button.media-play-playing .media-pause { display: inline; }
.media-time {
margin: 0;
font-size: 16px;
height: 24px;
line-height: 24px;
}
.media-time > span {
padding-right: 8px;
}
.media-duration {
font-size: 12px;
color: rgb(234,234,233);
opacity: 0.8;
}
div.media-ttml { margin: 0; padding: 0; }
.media-ttml-pre { white-space: pre; }
.media-ttml-nopre { white-space: normal; }
div.media-ttml-div {
text-align: left;
display: none;
margin: 0; padding: 0;
}
div.media-ttml-p {
text-align: left;
display: none;
margin: 6px auto 0 auto;
padding: 6px;
max-width: 24em;
border: solid 1px rgb(107,99,41);
background-color: rgb(253,251,233);
box-shadow: 2px 2px 4px #c0bfbc;
}
div.yelp-data { display: none; }
.ui-expander > div.inner > div.title span.title,
.ui-expander > div.inner > div.hgroup span.title {
cursor: default;
}
.ui-expander > div.inner > div.title span.title:before,
.ui-expander > div.inner > div.hgroup span.title:before {
font-weight: bold;
content: "⌃";
display: inline-block;
margin: 0;
color: rgb(43,107,185);
transform: translateY(0.2em) rotate(0deg);
-webkit-transform: translateY(0.2em) rotate(0deg);
transition: transform 0.2s linear;
transform-origin: 50% 30%;
-webkit-transform-origin: 50% 30%;
-webkit-transition: -webkit-transform 0.2s linear;
margin: 0 0.2em;
}
.ui-expander-c > div.inner > div.hgroup { border-bottom: none; }
.ui-expander-e > div.inner > div.title span.title:before,
.ui-expander-e > div.inner > div.hgroup span.title:before {
transform: translateY(0.2em) rotate(180deg);
-webkit-transform: translateY(0.2em) rotate(180deg);
}
.ui-expander > div.inner > div.title:hover,
.ui-expander > div.inner > div.hgroup:hover * {
color: rgb(43,107,185);
}
.ui-expander > div.inner > div.hgroup > .subtitle {
margin-left: 2em;
}
.ui-expander-c > div.inner > div.region {
display: none;
}
.ui-expander-e > div.inner > div.region {
animation-name: yelp-ui-expander-e;
animation-duration: 0.2s;
animation-fill-mode: forwards;
transform-origin: 0 0;
}
@keyframes yelp-ui-expander-e {
from { transform: scaleY(0); }
to { transform: scaleY(1); }
}
div.ui-expander-preview > div.inner > div.region {
transform-origin: 0 0;
transition: transform 0.2s linear, background-color 0.2s linear;
animation-name: none;
}
div.ui-expander-preview.ui-expander-c > div.inner {
max-height: 100px;
overflow: hidden;
}
div.ui-expander-preview.ui-expander-c > div.inner > div.region {
display: block;
transform: scaleY(0.4);
background-color: rgb(244,244,244);
}
div.ui-expander-preview.ui-expander-c > div.inner > div.region:hover {
background-color: rgb(241,246,253);
cursor: zoom-in;
}
div.ui-expander-preview.ui-expander-c > div.inner > div.region:hover * {
cursor: zoom-in;
}
div.ui-expander-preview > div.inner > div.region > * {
transform-origin: 0 0;
transition: transform 0.2s linear;
}
div.ui-expander-preview.ui-expander-c > div.inner > div.region > * {
transform: scaleX(0.4);
}
section.ui-expander-preview > div.inner > div.region > div.contents{
transform-origin: 0 0;
transition: transform 0.2s linear, background-color 0.2s linear;
}
section.ui-expander-preview.ui-expander-c > div.inner {
max-height: 140px;
overflow: hidden;
}
section.ui-expander-preview.ui-expander-c > div.inner > div.region {
display: block;
}
section.ui-expander-preview.ui-expander-c > div.inner > div.region > div.contents {
transform: scaleY(0.6);
background-color: rgb(244,244,244);
}
section.ui-expander-preview > div.inner > div.region > div.contents > * {
transform-origin: 0 0;
transition: transform 0.2s linear;
}
section.ui-expander-preview.ui-expander-c > div.inner > div.region > div.contents > * {
transform: scaleX(0.6);
}
section.ui-expander-preview.ui-expander-c > div.inner > div.region > div.contents:hover {
background-color: rgb(241,246,253);
cursor: zoom-in;
}
@media only screen and (max-width: 480px) {
article > div.region > div.contents > div.example,
article > div.region > section > div.inner > div.region > div.contents > div.example {
margin-left: -10px;
margin-right: -10px;
}
div.example {
padding-left: 6px;
padding-right: 10px;
}
article > div.region > div.contents > div.note,
article > div.region > section > div.inner > div.region > div.contents > div.note {
margin-left: -10px;
margin-right: -10px;
padding-left: 10px;
padding-right: 10px;
}
article > div.region > div.contents > div.note,
article > div.region > section > div.inner > div.region > div.contents > div.note {
border-left: none;
border-right: none;
}
div.note-sidebar {
float: none;
max-width: none;
margin-left: inherit;
margin-right: inherit;
padding-left: inherit;
padding-right: inherit;
}
div.note-sidebar > div.inner > div.title,
div.note-sidebar > div.inner > div.region > div.contents {
margin-left: 10px;
margin-right: 10px;
}
article > div.region > div.contents > div.steps,
article > div.region > section > div.inner > div.region > div.contents > div.steps {
margin-left: -10px;
margin-right: -10px;
}
div.steps > div.inner > div.title {
margin-left: 10px;
margin-right: 10px;
}
ol.steps, ul.steps {
box-shadow: none;
padding: 0;
padding-left: 6px;
padding-right: 10px;
}
}
.hljs a {
color: inherit;
border-bottom: dotted 1px rgb(43,107,185);
}
.hljs a:hover, .hljs a:hover * { color: rgb(43,107,185); }
.hljs-addition {
color: rgb(46,121,73);
background-color: rgb(227,250,236);
}
.hljs-deletion {
color: rgb(173,25,36);
background-color: rgb(251,243,244);
}
.hljs-emphasis { font-style: italic; }
.hljs-strong { font-weight: bold; }
.hljs-attr { color: rgb(43,107,185); }
.hljs-attribute { color: rgb(107,99,41); }
.hljs-built_in { color: rgb(150,96,43); }
.hljs-bullet { color: rgb(46,121,73); }
.hljs-class { }
.hljs-code { }
.hljs-comment { color: rgb(102,102,100); }
.hljs-doctag { }
.hljs-formula { color: rgb(75,75,73); }
.hljs-function { }
.hljs-keyword { color: rgb(147,64,167); }
.hljs-link { color: rgb(150,96,43); }
.hljs-literal { color: rgb(150,96,43); }
.hljs-meta { color: rgb(150,96,43); }
.hljs-name { color: rgb(173,25,36); }
.hljs-number { color: rgb(150,96,43); }
.hljs-params { color: rgb(150,96,43); }
.hljs-quote { color: rgb(102,102,100); }
.hljs-regexp { color: rgb(173,25,36); }
.hljs-rest_arg { }
.hljs-section { color: rgb(43,107,185); }
.hljs-string { color: rgb(46,121,73); }
.hljs-subst { }
.hljs-symbol { color: rgb(46,121,73); }
.hljs-tag { color: rgb(173,25,36); }
.hljs-title { color: rgb(43,107,185); }
.hljs-type { }
.hljs-variable { }
.hljs-selector-attr { }
.hljs-selector-class { color: rgb(173,25,36); }
.hljs-selector-id { color: rgb(173,25,36); }
.hljs-selector-tag { color: rgb(147,64,167); }
.hljs-template-tag { }
.hljs-template-variable { }
div.hgroup.bridgehead { margin-top: 1em; }
sub { font-size: 0.83em; }
sub sub { font-size: 1em; }
sup { font-size: 0.83em; }
sup sup { font-size: 1em; }
table.table-pgwide { width: 100%; }
table.table-rules-groups thead + *, table.table-rules-rows thead + *,
table.table-rules-groups tfoot + *, table.table-rules-rows tfoot + *,
table.table-rules-groups tbody + *, table.table-rules-rows tbody + *,
table.table-rules-rows tr + * { border-top: solid 1px; }
table.table-rules-cols td + *, table.table-rules-cols th + * {
border-left: solid 1px;
}
td.td-colsep { border-right: solid 1px; }
td.td-rowsep { border-bottom: solid 1px; }
span.bibliolabel {
font-weight: bold;
color: rgb(75,75,73);
}
div.biblioentry span.title {
font-weight: normal;
font-style: italic;
}
span.citetitle {
font-style: italic;
}
div.epigraph {
text-align: right;
margin-left: 20%;
margin-right: 0;
color: rgb(75,75,73);
}
div.programlisting .userinput {
font-weight: bold;
color: rgb(75,75,73);
}
div.address, div.literallayout { white-space: pre; }
div.footnotes {
border-top: solid 2px #c0bfbc;
}
div.footnote { margin-top: 1.44em; }
sup.footnote { font-size: 0.83em; }
a.footnote {
font-weight: bold;
text-decoration: none;
border-bottom: none;
padding: 0.2em 0.5em 0.2em 0.5em;
border-radius: 2px;
}
div.footnote > a.footnote {
margin-right: 0.83em;
background-color: rgb(244,244,244);
}
div.footnote > a.footnote + p { display: inline-block; margin: 0; }
a.footnote:hover, div.footnote > a.footnote:hover {
background-color: rgb(241,246,253);
box-shadow: 0 0 2px #3584e4;
}
dt.ixprimary {
font-weight: bold;
color: rgb(75,75,73);
}
dt.ixprimary * { font-style: normal; }
dt.ixprimary + dt.ixprimary { margin-top: 1em; }
dd.ixsecondary {
color: rgb(102,102,100);
}
dt.ixsecondary, dt.ixtertiary { margin-top: 0.2em; }
dd.ixlink, dd.ixsee, dd.ixseealso {
color: rgb(102,102,100);
}
dd.ixlink + dd, dd.ixsee + dd, dd.ixseealso + dd {
margin-top: 0.2em;
}
dt.ixsecondary:before, dt.ixtertiary:before {
content: "⏺";
color: rgb(102,102,100);
}
dd.ixlink:before {
content: "⏺";
color: #3584e4;
}
dd.ixsee:before, dd.ixseealso:before {
content: "⏺";
color: #c0bfbc;
}
dl.index dt { margin-top: 0; }
dl.index dd { margin-top: 0; margin-bottom: 0; }
dl.indexdiv dt { margin-top: 0; }
dl.indexdiv dd { margin-top: 0; margin-bottom: 0; }
dl.setindex dt { margin-top: 0; }
dl.setindex dd { margin-top: 0; margin-bottom: 0; }
div.simplelist { margin-left: 1.72em; }
div.simplelist table { margin-left: 0; border: none; }
div.simplelist td {
padding: 0.5em;
border-left: solid 1px #c0bfbc;
}
div.simplelist td:first-child {
padding-left: 0;
border-left: 0;
}
span.accel { text-decoration: underline; }
span.email { font-family: monospace,monospace; font-size: 0.83em; }
span.firstterm { font-style: italic; }
span.foreignphrase { font-style: italic; }
dt.glossterm span.glossterm { font-style: normal; }
span.glossterm { font-style: italic; }
span.lineannotation { font-style: italic; }
span.medialabel { font-style: italic; }
.methodparam span.parameter { font-style: italic; }
span.paramdef span.parameter { font-style: italic; }
span.prompt { font-family: monospace,monospace; font-size: 0.83em; }
span.wordasword { font-style: italic; }
dt.question {
margin-left: 0;
margin-right: 0;
font-weight: bold;
color: rgb(75,75,73);
}
dd + dt.question { margin-top: 1em; }
dd.answer {
margin-top: 1em;
margin-left: 2em;
margin-right: 2em;
}
div.qanda-label {
line-height: 1.44em;
float: left;
margin-right: 1em;
font-weight: bold;
color: rgb(75,75,73);
}
dl.qandaset ol, dl.qandaset ul, dl.qandaset table { clear: both; }
div.synopfragment { padding-top: 0.5em; }
span.co {
border-radius: 4px;
background-color: rgb(253,251,233);
outline: solid 1px #f8e45c;
}
span.co a { text-decoration: none; }
span.co a:hover { text-decoration: none; }
div.co {
margin: 0;
float: left;
clear: both;
}
</style>
<script type="text/javascript" src="highlight.pack.js"></script><script>
document.addEventListener('DOMContentLoaded', function() {
var matches = document.querySelectorAll('code.syntax')
for (var i = 0; i < matches.length; i++) {
hljs.highlightBlock(matches[i]);
}
}, false);</script><script type="text/javascript">
document.addEventListener('DOMContentLoaded', function() {
var yelp_hash_highlight = function () {
if (location.hash != '') {
var sect = document.querySelector(location.hash);
if (sect != null) {
sect.classList.add('yelp-hash-highlight');
window.setTimeout(function () {
sect.classList.remove('yelp-hash-highlight');
}, 500);
}
}
}
window.addEventListener('hashchange', yelp_hash_highlight, false);
yelp_hash_highlight();
}, false);
var __yelp_generate_id_counter__ = 0;
function yelp_generate_id () {
var ret = 'yelp--' + (++__yelp_generate_id_counter__).toString();
if (document.getElementById(ret) != null)
return yelp_generate_id();
else
return ret;
};
function yelp_ui_expander_init (expander) {
var yelpdata = null;
var innerdiv = null;
var region = null;
var contents = null;
var title = null;
var title_e = null;
var title_c = null;
var titlespan = null;
var issect = false;
for (var i = 0; i < expander.children.length; i++) {
var child = expander.children[i];
if (child.classList.contains('yelp-data-ui-expander')) {
yelpdata = child;
}
else if (child.classList.contains('inner')) {
innerdiv = child;
}
}
if (innerdiv == null) {
return;
}
for (var i = 0; i < innerdiv.children.length; i++) {
var child = innerdiv.children[i];
if (child.classList.contains('region')) {
region = child;
}
else if (child.classList.contains('title')) {
title = child;
}
else if (child.classList.contains('hgroup')) {
title = child;
issect = true;
}
}
if (region == null || title == null) {
return;
}
if (!region.hasAttribute('id')) {
region.setAttribute('id', yelp_generate_id());
}
title.setAttribute('aria-controls', region.getAttribute('id'));
if (yelpdata != null) {
for (var i = 0; i < yelpdata.children.length; i++) {
var child = yelpdata.children[i];
if (child.classList.contains('yelp-title-expanded')) {
title_e = child;
}
else if (child.classList.contains('yelp-title-collapsed')) {
title_c = child;
}
}
}
titlespan = title.querySelector('span.title');
if (titlespan == null) {
return;
}
if (title_e == null) {
var node = document.createElement('div');
node.className = 'yelp-title-expanded';
node.innerHTML = titlespan.innerHTML;
yelpdata.appendChild(node);
title_e = node;
}
if (title_c == null) {
var node = document.createElement('div');
node.className = 'yelp-title-collapsed';
node.innerHTML = titlespan.innerHTML;
yelpdata.appendChild(node);
title_c = node;
}
var ui_expander_zoom_region = function (event) {
if (yelpdata.getAttribute('data-yelp-expanded') != 'false') {
ui_expander_toggle();
event.preventDefault();
}
}
if (expander.nodeName == 'section' || expander.nodeName == 'SECTION') {
for (var i = 0; i < region.children.length; i++) {
var child = region.children[i];
if (child.classList.contains('contents')) {
contents = child;
break;
}
}
contents.addEventListener('click', ui_expander_zoom_region, true);
}
else {
region.addEventListener('click', ui_expander_zoom_region, true);
}
var ui_expander_toggle = function () {
if (yelpdata.getAttribute('data-yelp-expanded') == 'false') {
yelpdata.setAttribute('data-yelp-expanded', 'true');
expander.classList.remove('ui-expander-e');
expander.classList.add('ui-expander-c');
region.setAttribute('aria-expanded', 'false');
if (title_c != null)
titlespan.innerHTML = title_c.innerHTML;
}
else {
yelpdata.setAttribute('data-yelp-expanded', 'false');
expander.classList.remove('ui-expander-c');
expander.classList.add('ui-expander-e');
region.setAttribute('aria-expanded', 'true');
if (title_e != null)
titlespan.innerHTML = title_e.innerHTML;
}
};
expander.yelp_ui_expander_toggle = ui_expander_toggle;
title.addEventListener('click', ui_expander_toggle, false);
ui_expander_toggle();
}
document.addEventListener('DOMContentLoaded', function() {
var matches = document.querySelectorAll('.ui-expander');
for (var i = 0; i < matches.length; i++) {
yelp_ui_expander_init(matches[i]);
}
var yelp_hash_ui_expand = function () {
if (location.hash != '') {
var sect = document.querySelector(location.hash);
if (sect != null) {
for (var cur = sect; cur instanceof Element; cur = cur.parentNode) {
if (cur.classList.contains('ui-expander')) {
if (cur.classList.contains('ui-expander-c')) {
cur.yelp_ui_expander_toggle();
}
}
}
sect.scrollIntoView();
}
}
};
window.addEventListener('hashchange', yelp_hash_ui_expand, false);
yelp_hash_ui_expand();
}, false);
yelp_color_text_light = 'rgb(75,75,73)';
yelp_color_gray_background = 'rgb(244,244,244)';
yelp_color_gray_border = '#c0bfbc';
function yelp_figure_init (figure) {
var zoom = figure.querySelector('a.figure-zoom');
var figure_resize = function () {
var zoomed = zoom.classList.contains('figure-zoomed');
var imgs = figure.querySelectorAll('img');
for (var i = 0; i < imgs.length; i++) {
var img = imgs[i];
var mediaDiv = null;
for (var cur = img; cur instanceof Element; cur = cur.parentNode) {
if ((cur.nodeName == 'div' || cur.nodeName == 'DIV') &&
cur.classList.contains('media')) {
mediaDiv = cur;
break;
}
}
if (mediaDiv == null)
continue;
if (!img.hasAttribute('data-yelp-original-width')) {
var iwidth = null;
if (img.hasAttribute('width'))
iwidth = parseInt(img.getAttribute('width'));
else
iwidth = img.width;
img.setAttribute('data-yelp-original-width', iwidth);
var iheight = null;
if (img.hasAttribute('height'))
iheight = parseInt(img.getAttribute('height'));
else
iheight = img.height * (iwidth / img.width);
img.setAttribute('data-yelp-original-height', iheight);
}
var owidth = img.width;
var oheight = img.height;
img.width = parseInt(img.getAttribute('data-yelp-original-width'));
img.height = parseInt(img.getAttribute('data-yelp-original-height'));
var mediaw = mediaDiv.offsetWidth;
img.width = owidth;
img.height = oheight;
if (parseInt(img.getAttribute('data-yelp-original-width')) <= mediaw) {
img.width = parseInt(img.getAttribute('data-yelp-original-width'));
img.height = parseInt(img.getAttribute('data-yelp-original-height'));
zoom.style.display = 'none';
}
else if (zoomed) {
img.width = parseInt(img.getAttribute('data-yelp-original-width'));
img.height = parseInt(img.getAttribute('data-yelp-original-height'));
zoom.style.display = 'block';
}
else {
img.width = mediaw;
img.height = (parseInt(img.getAttribute('data-yelp-original-height')) *
img.width /
parseInt(img.getAttribute('data-yelp-original-width')));
zoom.style.display = 'block';
}
}
}
figure.yelp_figure_resize = figure_resize;
figure.yelp_figure_resize();
zoom.onclick = function (e) {
var zoomed = zoom.classList.contains('figure-zoomed');
if (zoomed)
zoom.classList.remove('figure-zoomed');
else
zoom.classList.add('figure-zoomed');
figure.yelp_figure_resize();
return false;
};
}
window.addEventListener('load', function() {
var figures = document.querySelectorAll('div.figure');
for (var i = 0; i < figures.length; i++) {
if (figures[i].querySelector('img') != null)
yelp_figure_init(figures[i]);
}
var timeout = null;
var yelp_figures_resize = function () {
if (timeout != null)
return;
timeout = window.setTimeout(function () {
for (var i = 0; i < figures.length; i++) {
if (figures[i].querySelector('img') != null)
figures[i].yelp_figure_resize();
}
window.clearTimeout(timeout);
timeout = null;
}, 100);
};
window.addEventListener('resize', yelp_figures_resize, false);
}, false);
function yelp_media_init (media) {
media.removeAttribute('controls');
if (media.parentNode.classList.contains('links-tile-img')) {
return;
}
media.addEventListener('click', function () {
if (media.paused)
media.play();
else
media.pause();
}, false);
var controls = null;
for (var cur = media.nextSibling; cur instanceof Element; cur = cur.nextSibling) {
if (cur.classList.contains('media-controls')) {
controls = cur;
break;
}
}
if (controls == null) {
media.setAttribute('controls', 'controls');
return;
}
var playbutton = controls.querySelector('button.media-play');
playbutton.addEventListener('click', function () {
if (media.paused || media.ended)
media.play();
else
media.pause();
}, false);
var mediachange = function () {
if (media.ended)
media.pause()
if (media.paused) {
playbutton.setAttribute('value', playbutton.getAttribute('data-play-label'));
playbutton.classList.remove('media-play-playing');
}
else {
playbutton.setAttribute('value', playbutton.getAttribute('data-pause-label'));
playbutton.classList.add('media-play-playing');
}
}
media.addEventListener('play', mediachange, false);
media.addEventListener('pause', mediachange, false);
media.addEventListener('ended', mediachange, false);
var mediarange = controls.querySelector('input.media-range');
mediarange.addEventListener('input', function () {
var pct = this.value;
if (pct < 0)
pct = 0;
if (pct > 100)
pct = 100;
media.currentTime = (pct / 100.0) * media.duration;
}, false);
var curspan = controls.querySelector('span.media-current');
var durspan = controls.querySelector('span.media-duration');
var durationUpdate = function () {
if (!isNaN(media.duration)) {
mins = parseInt(media.duration / 60);
secs = parseInt(media.duration - (60 * mins));
durspan.textContent = (mins + (secs < 10 ? ':0' : ':') + secs);
}
};
media.addEventListener('durationchange', durationUpdate, false);
var ttmlDiv = null;
var ttmlNodes = null;
for (var i = 0; i < media.parentNode.children.length; i++) {
var child = media.parentNode.children[i];
if (child.classList.contains('media-ttml'))
ttmlDiv = child;
}
if (ttmlDiv != null) {
ttmlNodes = ttmlDiv.querySelectorAll('.media-ttml-node');
}
var timeUpdate = function () {
var pct = (media.currentTime / media.duration) * 100;
mediarange.value = pct;
var mins = parseInt(media.currentTime / 60);
var secs = parseInt(media.currentTime - (60 * mins))
curspan.textContent = (mins + (secs < 10 ? ':0' : ':') + secs);
if (ttmlNodes != null) {
for (var i = 0; i < ttmlNodes.length; i++) {
var ttml = ttmlNodes[i];
if (media.currentTime >= parseFloat(ttml.getAttribute('data-ttml-begin')) &&
(!ttml.hasAttribute('data-ttml-end') ||
media.currentTime < parseFloat(ttml.getAttribute('data-ttml-end')) )) {
if (ttml.tagName == 'span' || ttml.tagName == 'SPAN')
ttml.style.display = 'inline';
else
ttml.style.display = 'block';
}
else {
ttml.style.display = 'none';
}
}
}
};
media.addEventListener('timeupdate', timeUpdate, false);
};
document.addEventListener('DOMContentLoaded', function() {
var matches = document.querySelectorAll('video, audio');
for (var i = 0; i < matches.length; i++) {
yelp_media_init(matches[i]);
}
}, false);
</script>
</head>
<body><main><div class="page">
<header><div class="inner pagewide"><div class="trails" role="navigation"><div class="trail">
<a class="trail" href="index.html" title="StarDict Manual V3.0.7">StarDict Manual V3.0.7</a> » </div></div></div></header><article><nav class="prevnext pagewide"><div class="inner">
<a href="index.html" title="StarDict Manual V3.0.7">Previous</a><a href="stardict-getting-started.html" title="Getting Started">Next</a>
</div></nav><div class="hgroup pagewide"><h1 class="title">Introduction</h1></div>
<div class="region"><div class="contents pagewide"><p class="para">
<span class="app application">StarDict</span> is a Cross-Platform and international dictionary written in Gtk.
It has powerful features such as "Glob-style pattern matching," "Scan selected word," "Fuzzy query," etc.
</p></div></div>
<nav class="prevnext pagewide"><div class="inner">
<a href="index.html" title="StarDict Manual V3.0.7">Previous</a><a href="stardict-getting-started.html" title="Getting Started">Next</a>
</div></nav><div class="clear"></div></article><footer><div class="inner pagewide"><footer class="about ui-expander" role="contentinfo"><div class="yelp-data yelp-data-ui-expander" data-yelp-expanded="false"></div>
<div class="inner">
<div class="hgroup"><h2><span class="title">About</span></h2></div>
<div class="region"><div class="contents">
<div class="copyrights"><div class="copyright">© <span class="year">2003</span>, <span class="year">2004</span>, <span class="year">2005</span>, <span class="year">2006</span>, <span class="year">2007</span>, <span class="year">2008</span>, <span class="year">2009</span>, <span class="year">2010</span> <span class="holder">Hu Zheng</span>
</div></div>
<div class="credits">
<div class="credits-authors">
<div class="title"><span class="title">Written By</span></div>
<ul class="credits"><li><span class="author"><span class="firstname">Hu</span> <span class="surname">Zheng</span></span></li></ul>
</div>
<div class="credits-translators">
<div class="title"><span class="title">Translated By</span></div>
<ul class="credits">
<li><span class="othercredit"><span class="firstname">Will</span> <span class="surname">Robinson</span></span></li>
<li><span class="othercredit"><span class="firstname">Новица</span> <span class="surname">Наков</span></span></li>
<li><span class="othercredit"><span class="firstname">Ruud</span> <span class="surname">Slaats</span></span></li>
<li><span class="othercredit"><span class="firstname">Александр</span> <span class="surname">Мурыгин</span></span></li>
<li><span class="othercredit"><span class="firstname">Сергій</span> <span class="surname">Дубик</span></span></li>
</ul>
</div>
<div class="credits-publishers">
<div class="title"><span class="title">Published By</span></div>
<ul class="credits"><li><span class="publishername"> GNOME Documentation Project </span></li></ul>
</div>
</div>
<div class="license">
<div class="title"><span class="title">Legal</span></div>
<div class="contents">
<p class="para">
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
License (GFDL), Version 1.2 or any later version published
by the Free Software Foundation with no Invariant Sections,
no Front-Cover Texts, and no Back-Cover Texts. You can find
a copy of the GFDL at this <a href="help:fdl" class="ulink" title="help:fdl">link</a> or in the file COPYING-DOCS
distributed with this manual.
</p>
<p class="para"> This manual is part of a collection of GNOME manuals
distributed under the GFDL. If you want to distribute this
manual separately from the collection, you can do so by
adding a copy of the license to the manual, as described in
section 6 of the license.
</p>
<p class="para">
Many of the names used by companies to distinguish their
products and services are claimed as trademarks. Where those
names appear in any GNOME documentation, and the members of
the GNOME Documentation Project are made aware of those
trademarks, then the names are in capital letters or initial
capital letters.
</p>
<p class="para">
DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED
UNDER THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE
WITH THE FURTHER UNDERSTANDING THAT:
<div class="list orderedlist"><div class="inner"><div class="region"><div class="contents"><ol class="list orderedlist">
<li class="list orderedlist">
<p class="para">DOCUMENT IS PROVIDED ON AN "AS IS" BASIS,
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
THAT THE DOCUMENT OR MODIFIED VERSION OF THE
DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR
A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE
RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE
OF THE DOCUMENT OR MODIFIED VERSION OF THE
DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR
MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT,
YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY
CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS
LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED
VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER
EXCEPT UNDER THIS DISCLAIMER; AND
</p>
</li>
<li class="list orderedlist">
<p class="para">UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL
THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE),
CONTRACT, OR OTHERWISE, SHALL THE AUTHOR,
INITIAL WRITER, ANY CONTRIBUTOR, OR ANY
DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION
OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH
PARTIES, BE LIABLE TO ANY PERSON FOR ANY
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR
CONSEQUENTIAL DAMAGES OF ANY CHARACTER
INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS
OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR
LOSSES ARISING OUT OF OR RELATING TO USE OF THE
DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT,
EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF
THE POSSIBILITY OF SUCH DAMAGES.
</p>
</li>
</ol></div></div></div></div>
</p>
</div>
</div>
<div class="license">
<div class="title"><span class="title">Feedback</span></div>
<div class="contents"><p class="para">To report a bug or make a suggestion regarding the <span class="app application">StarDict</span> application or
this manual, follow the directions in the
<a href="help:gnome-feedback" class="ulink" title="help:gnome-feedback">GNOME Feedback Page</a>.
</p></div>
</div>
</div></div>
</div></footer></div></footer>
</div></main></body>
</html>