mirror of
https://github.com/docsifyjs/docsify.git
synced 2025-12-08 19:55:52 +00:00
* Update test environments and lint configuration Update Jest (unit + integration) and Playwright (e2e) test environments. Includes stability improvements for e2e tests using newer, more stable methods per the Playwright docs. - Update Jest 26 => 27 - Update Jest-related libs (babel parser) - Update Playwright 1.8 => Playwright Test 1.18 - Update GitHub CI (action versions, job parallelization, and matrices) - Update ESLint 5 => 8 - Update ESLint-related libs (parser, prettier, Jest, Playwright) - Fix test failures on M1-based Macs - Fix e2e stability issues by replacing PW $ method calls - Fix ESLint errors - Fix incorrect CI flag on Jest runs (-ci => --ci) - Refactor e2e test runner from Jest to Playwright Test - Refactor e2e test files for Playwright Test - Refactor fix-lint script name to lint:fix for consistency - Refactor npm scripts order for readability - Remove unnecessary configs and libs - Remove example image snapshots
37 lines
859 B
JavaScript
37 lines
859 B
JavaScript
import * as dom from '../dom';
|
|
import { get } from '../../fetch/ajax';
|
|
|
|
function replaceVar(block, color) {
|
|
block.innerHTML = block.innerHTML.replace(
|
|
/var\(\s*--theme-color.*?\)/g,
|
|
color
|
|
);
|
|
}
|
|
|
|
export default function (color) {
|
|
// Variable support
|
|
if (window.CSS && window.CSS.supports && window.CSS.supports('(--v:red)')) {
|
|
return;
|
|
}
|
|
|
|
const styleBlocks = dom.findAll('style:not(.inserted),link');
|
|
[].forEach.call(styleBlocks, block => {
|
|
if (block.nodeName === 'STYLE') {
|
|
replaceVar(block, color);
|
|
} else if (block.nodeName === 'LINK') {
|
|
const href = block.getAttribute('href');
|
|
|
|
if (!/\.css$/.test(href)) {
|
|
return;
|
|
}
|
|
|
|
get(href).then(res => {
|
|
const style = dom.create('style', res);
|
|
|
|
dom.head.appendChild(style);
|
|
replaceVar(style, color);
|
|
});
|
|
}
|
|
});
|
|
}
|