mirror of
https://github.com/explosion/spaCy.git
synced 2024-11-11 12:18:04 +03:00
382 lines
9.8 KiB
Plaintext
382 lines
9.8 KiB
Plaintext
|
include _functions
|
||
|
|
||
|
//- Mixins
|
||
|
//- ============================================================================
|
||
|
|
||
|
//- Sections for content pages
|
||
|
id - [string] id, can be headline id as it's being prefixed (optional)
|
||
|
block - section content (block and inline elements)
|
||
|
|
||
|
mixin section(id)
|
||
|
section.section(id=(id) ? 'section-' + id : '')&attributes(attributes)
|
||
|
block
|
||
|
|
||
|
|
||
|
//- Flexbox grid to align children elements
|
||
|
...style - [strings] flexbox CSS classes without prefix (optional)
|
||
|
block - container content (block and inline elements)
|
||
|
|
||
|
mixin grid(...style)
|
||
|
.grid(class=prefixArgs(style, 'grid--'))&attributes(attributes)
|
||
|
block
|
||
|
|
||
|
mixin grid-col(...style)
|
||
|
.grid-col(class=prefixArgs(style, 'grid-col--'))&attributes(attributes)
|
||
|
block
|
||
|
|
||
|
|
||
|
//- Aside
|
||
|
headline - [string] Headline of aside (optional)
|
||
|
block - aside content (inline elements)
|
||
|
|
||
|
mixin aside(headline)
|
||
|
span.aside(data-label=headline)&attributes(attributes)
|
||
|
span.aside-body
|
||
|
block
|
||
|
|
||
|
|
||
|
//- Paragraphs
|
||
|
block - paragraph content (inline elements)
|
||
|
|
||
|
mixin lead
|
||
|
p.text-lead&attributes(attributes)
|
||
|
block
|
||
|
|
||
|
|
||
|
//- Various text styles
|
||
|
block - text (inline elements)
|
||
|
|
||
|
mixin example
|
||
|
p.text-example&attributes(attributes)
|
||
|
block
|
||
|
|
||
|
mixin source
|
||
|
span.text-source&attributes(attributes)
|
||
|
block
|
||
|
|
||
|
mixin label(...style)
|
||
|
span(class=(style != '') ? prefixArgs(style, 'label-') : 'label')&attributes(attributes)
|
||
|
block
|
||
|
|
||
|
|
||
|
//- Headings with optional permalinks
|
||
|
id - [string] unique id (optional, no permalink without id)
|
||
|
source - [string] link for source button (optional)
|
||
|
block - headline text (inline elements)
|
||
|
|
||
|
mixin headline(level, id, source)
|
||
|
if level == 2
|
||
|
+h2(id, source)
|
||
|
block
|
||
|
|
||
|
else if level == 3
|
||
|
+h3(id, source)
|
||
|
block
|
||
|
|
||
|
else if level == 4
|
||
|
+h4(id, source)
|
||
|
block
|
||
|
|
||
|
else if level == 5
|
||
|
+h5(id, source)
|
||
|
block
|
||
|
|
||
|
else
|
||
|
+h6(id, source)
|
||
|
block
|
||
|
|
||
|
mixin h1(id, source)
|
||
|
h1(id=id)&attributes(attributes)
|
||
|
+permalink(id, source)
|
||
|
block
|
||
|
|
||
|
mixin h2(id, source)
|
||
|
h2(id=id)&attributes(attributes)
|
||
|
+permalink(id, source)
|
||
|
block
|
||
|
|
||
|
mixin h3(id, source)
|
||
|
h3(id=id)&attributes(attributes)
|
||
|
+permalink(id, source)
|
||
|
block
|
||
|
|
||
|
mixin h4(id, source)
|
||
|
h4(id=id)&attributes(attributes)
|
||
|
+permalink(id, source)
|
||
|
block
|
||
|
|
||
|
mixin h5(id, source)
|
||
|
h5(id=id)&attributes(attributes)
|
||
|
+permalink(id, source)
|
||
|
block
|
||
|
|
||
|
mixin h6(id, source)
|
||
|
h6(id=id)&attributes(attributes)
|
||
|
+permalink(id, source)
|
||
|
block
|
||
|
|
||
|
mixin permalink(id, source)
|
||
|
if id
|
||
|
a.permalink(href='#' + id)
|
||
|
block
|
||
|
|
||
|
else
|
||
|
block
|
||
|
|
||
|
if source
|
||
|
+button('secondary', 'small', 'source')(href=source target='_blank') Source
|
||
|
|
||
|
|
||
|
//- Button
|
||
|
element - [string] specifies HTML element, 'button' or 'link'
|
||
|
...style - [strings] button CSS classes without prefix (optional)
|
||
|
block - button text (inline elements)
|
||
|
|
||
|
mixin button(type, ...style)
|
||
|
- var classname = 'button-' + type + ' ' + ((style) ? prefixArgs(style, 'button--') : '')
|
||
|
|
||
|
a.button(class=classname)&attributes(attributes)
|
||
|
block
|
||
|
|
||
|
mixin form-button(type, ...style)
|
||
|
- var classname = 'button-' + type + ' ' + ((style) ? prefixArgs(style, 'button--') : '')
|
||
|
button(class=classname)&attributes(attributes)
|
||
|
block
|
||
|
|
||
|
|
||
|
//- Input
|
||
|
placeholder - [string] placeholder for input field (optional)
|
||
|
value - [string] value of input field (optional)
|
||
|
|
||
|
mixin input(placeholder, value)
|
||
|
input.input(placeholder=placeholder value=value)&attributes(attributes)
|
||
|
|
||
|
|
||
|
//- Icon
|
||
|
name - [string] icon name, refers to CSS classes
|
||
|
size - [string] 'medium' or 'large' (optional)
|
||
|
type - [string] 'button' (optional)
|
||
|
block - description, if as a text node to the icon element it prevents line
|
||
|
breaks between icon and text (inline elements)
|
||
|
|
||
|
mixin icon(type, ...style)
|
||
|
span(class='icon-' + type + ' ' + prefixArgs(style, 'icon--') aria-hidden="true")&attributes(attributes)
|
||
|
block
|
||
|
|
||
|
|
||
|
//- Image for illustration purposes
|
||
|
file - [string] file name (in /img)
|
||
|
alt - [string] descriptive alt text (optional)
|
||
|
caption - [string] image caption (optional)
|
||
|
|
||
|
mixin image(file, alt, caption)
|
||
|
figure.image-container&attributes(attributes)
|
||
|
img(src='img/' + file alt=alt)
|
||
|
|
||
|
if caption
|
||
|
figcaption.text-caption=caption
|
||
|
|
||
|
block
|
||
|
|
||
|
|
||
|
//- Illustrated code view
|
||
|
title - [string] title of window
|
||
|
|
||
|
mixin code-demo(title)
|
||
|
.x-terminal&attributes(attributes)
|
||
|
.x-terminal-icons: span
|
||
|
.x-terminal-title=title
|
||
|
+code.x-terminal-code
|
||
|
block
|
||
|
|
||
|
|
||
|
//- Data table
|
||
|
head - [array] column headings (optional, without headings no table
|
||
|
head is displayed)
|
||
|
...style - [strings] table CSS classes without prefix (optional)
|
||
|
block - only +row (tr)
|
||
|
|
||
|
mixin table(head, ...style)
|
||
|
table.table(class=prefixArgs(style, 'table--'))&attributes(attributes)
|
||
|
|
||
|
if head
|
||
|
tr.table-row
|
||
|
each column in head
|
||
|
th.table-head-cell=column
|
||
|
|
||
|
block
|
||
|
|
||
|
|
||
|
//- Data table row
|
||
|
block - only +cell (td)
|
||
|
|
||
|
mixin row(...style)
|
||
|
tr.table-row(class=prefixArgs(style, 'table-cell--'))&attributes(attributes)
|
||
|
block
|
||
|
|
||
|
|
||
|
//- Data table cell
|
||
|
block - table cell content (inline elements)
|
||
|
|
||
|
mixin cell(...style)
|
||
|
td.table-cell(class=prefixArgs(style, 'table-cell--'))&attributes(attributes)
|
||
|
block
|
||
|
|
||
|
|
||
|
//- General list (ordered and unordered)
|
||
|
type - [string] 'numbers', 'letters', 'roman' (optional)
|
||
|
start - [integer] starting point of list (1 = list starts at 1 or A)
|
||
|
block - only +item (li)
|
||
|
|
||
|
mixin list(type, start)
|
||
|
if type
|
||
|
ol.list(class='list--' + type style=(start === 0 || start) ? 'counter-reset: li ' + (start - 1) : '')&attributes(attributes)
|
||
|
block
|
||
|
|
||
|
else
|
||
|
ul.list.list--bullets&attributes(attributes)
|
||
|
block
|
||
|
|
||
|
|
||
|
//- List item
|
||
|
block - item text (inline elements)
|
||
|
|
||
|
mixin item
|
||
|
li.list-item&attributes(attributes)
|
||
|
block
|
||
|
|
||
|
|
||
|
//- Blockquote
|
||
|
source - [string] quote source / author (optional)
|
||
|
link - [string] link to quote source (only with source, optional)
|
||
|
block - quote text (inline elements)
|
||
|
|
||
|
mixin quote(source, link)
|
||
|
blockquote.quote&attributes(attributes)
|
||
|
p.quote-text
|
||
|
block
|
||
|
|
||
|
if source && link
|
||
|
| #[a.quote-source(href=link target='_blank')=source]
|
||
|
|
||
|
else if source && !link
|
||
|
.quote-source !{source}
|
||
|
|
||
|
|
||
|
//- Pullquotes with optional 'tweet this' function
|
||
|
tweet - [string] text to be tweeted (optional)
|
||
|
block - pullquote text (inline elements, only shown if no tweet text)
|
||
|
|
||
|
mixin pullquote(tweet)
|
||
|
blockquote.quote&attributes(attributes)
|
||
|
|
||
|
p.quote-text-strong
|
||
|
if tweet
|
||
|
| !{tweet} #[a.quote-source(href=twitterShareUrl(current.path, tweet) target='_blank') Tweet this]
|
||
|
|
||
|
else
|
||
|
block
|
||
|
|
||
|
|
||
|
//- Code block
|
||
|
use as +code(args). to preserve whitespace and prevent code interprettion
|
||
|
language - [string] language for syntax highlighting (optional, default:
|
||
|
'python', see Prism for options: http://prismjs.com)
|
||
|
label - [string] code block headline (optional)
|
||
|
block - code text (inline elements)
|
||
|
|
||
|
|
||
|
mixin code(language, label)
|
||
|
pre.code-block(class='lang-' + (language || default_syntax) data-label=label)&attributes(attributes)
|
||
|
code.code-inline
|
||
|
block
|
||
|
|
||
|
|
||
|
//- Infobox for notes and alerts
|
||
|
label - [string] infobox headline (optional)
|
||
|
block - infobox text (inline and block elements)
|
||
|
|
||
|
mixin infobox(label)
|
||
|
.box.box--info(data-label=label)&attributes(attributes)
|
||
|
p.box-body
|
||
|
block
|
||
|
|
||
|
|
||
|
//- Alerts for notes and updates
|
||
|
|
||
|
mixin alert(button)
|
||
|
.alert&attributes(attributes)
|
||
|
block
|
||
|
|
||
|
if button
|
||
|
+form-button('primary', 'small')(onclick='this.parentNode.parentNode.removeChild(this.parentNode);')=button
|
||
|
|
||
|
else
|
||
|
button.alert-close(onclick='this.parentNode.parentNode.removeChild(this.parentNode);')
|
||
|
|
||
|
|
||
|
|
||
|
//- Embeds
|
||
|
border - [boolean] add border to embed container
|
||
|
caption - [string] embed caption
|
||
|
block - embed content (inline and block elements)
|
||
|
|
||
|
mixin embed(border, caption)
|
||
|
figure.embed(class=(border) ? 'embed--border' : '')&attributes(attributes)
|
||
|
block
|
||
|
|
||
|
if caption
|
||
|
figcaption.embed-caption=caption
|
||
|
|
||
|
|
||
|
//- displaCy
|
||
|
filename - [string] name of file in displacy folder (no .html)
|
||
|
caption - [string] caption (optional)
|
||
|
height - [integer] iframe height in px (optional)
|
||
|
|
||
|
mixin displacy(filename, caption, height)
|
||
|
+embed(true, caption).embed--displacy
|
||
|
iframe(src='/blog/displacy/' + filename height=height)
|
||
|
|
||
|
|
||
|
//- Logo, imports SVG
|
||
|
size - [string] 'tiny', 'small', 'regular' or 'large'
|
||
|
|
||
|
mixin logo(size)
|
||
|
!=partial('/_includes/_logo', { logo_size: size })
|
||
|
|
||
|
|
||
|
//- <time> element with date
|
||
|
input - [string] date in the format YYYY-MM-DD
|
||
|
type - [string] 'timestamp' (optional)
|
||
|
|
||
|
mixin date(input, type)
|
||
|
- var dates = convertDate(input)
|
||
|
|
||
|
if type == 'timestamp'
|
||
|
time=dates.timestamp
|
||
|
|
||
|
else
|
||
|
time(datetime=dates.timestamp)=dates.full
|
||
|
|
||
|
|
||
|
//- Divider
|
||
|
type - [string] divider tpe
|
||
|
|
||
|
mixin divider(type, ...style)
|
||
|
div(class=((type) ? 'divider-' + type : 'divider') + ' ' + prefixArgs(style, 'divider--'))&attributes(attributes)
|
||
|
if type == 'text'
|
||
|
.divider-text-content
|
||
|
block
|
||
|
|
||
|
else
|
||
|
block
|
||
|
|
||
|
|
||
|
//- Twitter Share Button
|
||
|
tweet - [string] text to be shared with the tweet
|
||
|
|
||
|
mixin tweet(tweet)
|
||
|
a(href=twitterShareUrl(current.path, tweet) target='_blank' aria-label="Shsre on Twitter")
|
||
|
+icon('twitter', 'large')
|