//- 💫 MIXINS > BASE //- Aside wrapper label - [string] aside label mixin aside-wrapper(label) aside.c-aside .c-aside__content(role="complementary")&attributes(attributes) if label h4.u-text-label.u-text-label--dark=label block //- Date input - [string] date in the format YYYY-MM-DD mixin date(input) - var date = new Date(input) - var months = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ] time(datetime=JSON.parse(JSON.stringify(date)))&attributes(attributes)=months[date.getMonth()] + ' ' + date.getDate() + ', ' + date.getFullYear() //- SVG from map file - [string] SVG file name in /assets/img/ name - [string] SVG symbol id width - [integer] width in px height - [integer] height in px (default: same as width) mixin svg(file, name, width, height) svg(aria-hidden="true" viewBox="0 0 #{width} #{height || width}" width=width height=(height || width))&attributes(attributes) use(xlink:href="/assets/img/#{file}.svg##{name}") //- Icon name - [string] icon name, should be SVG symbol ID size - [integer] icon width and height (default: 20) mixin icon(name, size) - var size = size || 20 +svg("icons", name, size).o-icon(style="min-width: #{size}px")&attributes(attributes) //- Pro/Con/Neutral icon icon - [string] "pro", "con" or "neutral" (default: "neutral") size - [integer] icon size (optional) mixin procon(icon, size) - colors = { pro: "green", con: "red", neutral: "yellow" } +icon(icon, size)(class="u-color-#{colors[icon] || 'subtle'}" aria-label=icon)&attributes(attributes) //- Headlines Helper Mixin level - [integer] 1, 2, 3, 4, or 5 mixin headline(level) if level == 1 h1.u-heading-1&attributes(attributes) block else if level == 2 h2.u-heading-2&attributes(attributes) block else if level == 3 h3.u-heading-3&attributes(attributes) block else if level == 4 h4.u-heading-4&attributes(attributes) block else if level == 5 h5.u-heading-5&attributes(attributes) block //- Permalink rendering id - [string] permalink ID used for link anchor mixin permalink(id) if id a.u-permalink(id=id href="##{id}") +icon("anchor").u-permalink__icon block else block //- Quickstart widget quickstart.js with manual markup, inspired by PyTorch's "Getting started" groups - [object] option groups, uses global variable QUICKSTART headline - [string] optional text to be rendered as widget headline mixin quickstart(groups, headline, description, hide_results) .c-quickstart.o-block-small#qs .c-quickstart__content if headline +h(2)=headline if description p=description for group in groups .c-quickstart__group.u-text-small(data-qs-group=group.id) if group.title .c-quickstart__legend=group.title if group.help | #[+help(group.help)] .c-quickstart__fields for option in group.options input.c-quickstart__input(class="c-quickstart__input--" + (group.input_style ? group.input_style : group.multiple ? "check" : "radio") type=group.multiple ? "checkbox" : "radio" name=group.id id="qs-#{option.id}" value=option.id checked=option.checked) label.c-quickstart__label(for="qs-#{option.id}")!=option.title if option.meta | #[span.c-quickstart__label__meta (#{option.meta})] if option.help | #[+help(option.help)] if hide_results block else pre.c-code-block code.c-code-block__content.c-quickstart__code(data-qs-results="") block .c-quickstart__info.u-text-tiny.o-block.u-text-right | Like this widget? Check out #[+a("https://github.com/ines/quickstart").u-link quickstart.js]! //- Quickstart code item data [object] - Rendering conditions (keyed by option group ID, value: option) mixin qs(data, style) - args = {} for value, setting in data - args['data-qs-' + setting] = value span.c-quickstart__line(class="c-quickstart__line--#{style || 'bash'}")&attributes(args) block //- Terminal-style code window label - [string] title displayed in top bar of terminal window mixin terminal(label) .x-terminal .x-terminal__icons: span .u-padding-small.u-text-label.u-text-center=label +code.x-terminal__code block //- Gitter chat button and widget button - [string] text shown on button label - [string] title of chat window (default: same as button) mixin gitter(button, label) aside.js-gitter.c-chat.is-collapsed(data-title=(label || button)) button.js-gitter-button.c-chat__button.u-text-small +icon("chat").o-icon--inline !=button //- Badge name - [string] "pipy" or "conda" mixin badge(name) - site = BADGES[name] if site +a(site.link).u-padding-small img(src=site.badge alt="{name} version" height="20") //- Logo mixin logo() +svg("graphics", "spacy", 675, 215).o-logo&attributes(attributes) //- Landing mixin landing-header() header.c-landing .c-landing__wrapper .c-landing__content block mixin landing-badge(url, graphic, alt, size) +a(url)(aria-label=alt title=alt).c-landing__badge +svg("graphics", graphic, size || 225) //- Under construction (temporary) Marks sections that still need to be completed for the v2.0 release. mixin under-construction() +infobox("🚧 Under construction") | This section is still being written and will be updated for the v2.0 | release. Is there anything that you think should definitely mentioned or | explained here? Any examples you'd like to see? #[strong Let us know] | on the #[+a(gh("spacy") + "/issues") v2.0 alpha thread] on GitHub!