* feat: configuration support
* refactor: include manylinux, minor redesign
* "project global" overrides "default platform"
This allows overriding `repair-wheel-command` in the `[tool.cibuildwheel.global]` section.
* fix: add PyPy images
* refactor: remove global
* fix: support tables and arrays
* docs: add pyproject.toml config to docs
* docs: updates based on feedback
* fix: only join if sensible
* refactor: remove manylinux dict
* docs: examples headers and sections on each
* feat: support changing the config from the command line
* fix: use {package}
* tests: add a few tests and mention config one more place
* Restyle examples tabs to remove indent
* Unrelated docs improvements
* Absorb extra content into the tab
* Make the tabs smaller and to the right
* Copy edits to options
* Fix header ids
* Use fewer [tool.cibuildwheel] headers
* docs: minor additions/fixes
* feat: disallow options on some platforms
* docs: make the examples a tiny bit more tabby
* fix: enforce tables/lists are optionally separate
* Some unrelated fixes to the other tab styling
* Minor fix to tab styling
* Refactor to make code a bit more linear and immutable
* Minor docs changes
Co-authored-by: mayeut <mayeut@users.noreply.github.com>
Co-authored-by: Joe Rickerby <joerick@mac.com>
61 lines
1.8 KiB
JavaScript
61 lines
1.8 KiB
JavaScript
// add classes for code-block-filename styling
|
|
$('.rst-content pre')
|
|
.prev('blockquote')
|
|
.addClass('code-block-filename');
|
|
|
|
var tabConversionIterations = 0
|
|
|
|
// convert tab admonition to tabs
|
|
while (true) {
|
|
const firstTab = $('.rst-content .admonition.tab').first()
|
|
if (firstTab.length == 0) break;
|
|
|
|
const otherTabs = firstTab.nextUntil(':not(.admonition.tab)');
|
|
const allTabs = $($.merge($.merge([], firstTab), otherTabs));
|
|
|
|
const tabContainer = $('<div>').addClass('tabs');
|
|
const headerContainer = $('<div>').addClass('tabs-header');
|
|
const contentContainer = $('<div>').addClass('tabs-content');
|
|
|
|
tabContainer.insertBefore(firstTab);
|
|
tabContainer.append(headerContainer, contentContainer)
|
|
|
|
// add extra classes from the first tab to the container
|
|
const classes = Array.from(firstTab[0].classList)
|
|
|
|
for (let i = 0; i < classes.length; i++) {
|
|
const element = classes[i];
|
|
if (element == 'tab' || element == 'admonition') {
|
|
continue
|
|
}
|
|
tabContainer.addClass(element)
|
|
}
|
|
|
|
const selectTab = function (index) {
|
|
headerContainer.children().removeClass('active')
|
|
headerContainer.children().eq(index).addClass('active')
|
|
contentContainer.children().hide()
|
|
contentContainer.children().eq(index).show()
|
|
}
|
|
|
|
allTabs.each(function (tabI, el) {
|
|
const $el = $(el)
|
|
const titleElement = $el.children('.admonition-title')
|
|
const title = titleElement.text()
|
|
const button = $('<button>').text(title)
|
|
button.click(function () {
|
|
selectTab(tabI)
|
|
})
|
|
headerContainer.append(button)
|
|
|
|
titleElement.remove()
|
|
$el.removeClass('admonition')
|
|
contentContainer.append($el)
|
|
})
|
|
|
|
selectTab(0)
|
|
|
|
// this will catch infinite loops which can occur when editing the above
|
|
if (tabConversionIterations++ > 1000) throw 'too many iterations'
|
|
}
|