script.js 3.1 KB
Newer Older
1
$(() => {
2
    /* Use wider container for the page content */
3
4
5
    $(".wy-nav-content").each(function () {
        this.style.setProperty("max-width", "none", "important");
    });
6

7
8
    /* List each class property item on a new line
       https://github.com/microsoft/LightGBM/issues/5073 */
9
10
11
12
    if (window.location.pathname.toLocaleLowerCase().indexOf("pythonapi") !== -1) {
        $(".py.property").each(function () {
            this.style.setProperty("display", "inline", "important");
        });
13
14
    }

15
    /* Collapse specified sections in the installation guide */
16
17
    if (window.location.pathname.toLocaleLowerCase().indexOf("installation-guide") !== -1) {
        $(
18
            '<style>.closed, .opened {cursor: pointer;} .closed:before, .opened:before {font-family: FontAwesome; display: inline-block; padding-right: 6px;} .closed:before {content: "\\f054";} .opened:before {content: "\\f078";}</style>',
19
        ).appendTo("body");
20
        const collapsible = [
21
22
23
24
25
            "#build-threadless-version-not-recommended",
            "#build-mpi-version",
            "#build-gpu-version",
            "#build-cuda-version",
            "#build-java-wrapper",
26
27
            "#build-python-package",
            "#build-r-package",
28
            "#build-c-unit-tests",
29
        ];
30
        $.each(collapsible, (_, val) => {
31
32
33
            const header = `${val} > :header:first`;
            const content = `${val} :not(:header:first)`;
            $(header).addClass("closed");
34
            $(content).hide();
35
36
            $(header).click(() => {
                $(header).toggleClass("closed opened");
37
38
39
40
41
                $(content).slideToggle(0);
            });
        });
        /* Uncollapse parent sections when nested section is specified in the URL or before navigate to it from navbar */
        function uncollapse(section) {
42
43
44
            section.parents().each((_, val) => {
                $(val).children(".closed").click();
            });
45
46
        }
        uncollapse($(window.location.hash));
47
48
        $(".wy-menu.wy-menu-vertical li a.reference.internal").click(function () {
            uncollapse($($(this).attr("href")));
49
        });
50
51
52

        /* Modify src and href attrs of artifacts badge */
        function modifyBadge(src, href) {
53
            $('img[alt="download artifacts"]').each(function () {
54
55
56
57
58
                this.src = src;
                this.parentNode.href = href;
            });
        }
        /* Initialize artifacts badge */
59
        modifyBadge("./_static/images/artifacts-fetching.svg", "#");
60
        /* Fetch latest buildId and construct artifacts badge */
61
62
63
64
65
66
67
68
69
        $.getJSON(
            "https://dev.azure.com/lightgbm-ci/lightgbm-ci/_apis/build/builds?branchName=refs/heads/master&resultFilter=succeeded&queryOrder=finishTimeDescending&%24top=1&api-version=7.1-preview.7",
            (data) => {
                modifyBadge(
                    "./_static/images/artifacts-download.svg",
                    `https://dev.azure.com/lightgbm-ci/lightgbm-ci/_apis/build/builds/${data.value[0].id}/artifacts?artifactName=PackageAssets&api-version=7.1-preview.5&%24format=zip`,
                );
            },
        );
70
    }
71
});