Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

try out Makie DimensionalData solution to Symlink paths bug #241

Merged
merged 1 commit into from
Sep 16, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 53 additions & 6 deletions docs/src/.vitepress/theme/index.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,58 @@
// .vitepress/theme/index.ts
import Theme from 'vitepress/theme'
import { watch } from "vue";
import type { Theme } from 'vitepress'
import DefaultTheme from 'vitepress/theme'

import { enhanceAppWithTabs } from 'vitepress-plugin-tabs/client'
import './style.css'

// taken from
// https://github.com/MakieOrg/Makie.jl/blob/master/docs/src/.vitepress/theme/index.ts

export default {
...Theme,
enhanceApp({ app }) {
enhanceAppWithTabs(app)
}
}
extends: DefaultTheme,
async enhanceApp({ app, router, siteData }) {
enhanceAppWithTabs(app);
// Only run this on the client. Not during build.
// this function replaces the version in the URL with the stable prefix whenever a
// new route is navigated to. VitePress does not support relative links all over the site,
// so urls will go to v0.XY even if we start at stable. This solution is not ideal as
// there is a noticeable delay between navigating to a new page and editing the url, but it's
// currently better than nothing, as users are bound to copy versioned links to the docs otherwise
// which will lead users to outdated docs in the future.
if (typeof window !== "undefined") {
function rewriteURL() {
// DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE
// in siteinfo.js.
if (
window.DOCUMENTER_NEWEST === undefined ||
window.DOCUMENTER_CURRENT_VERSION === undefined ||
window.DOCUMENTER_STABLE === undefined
) {
return;
}

// Current version is newest version, so we can rewrite the url
if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) {
const rewritten_url = window.location.href.replace(
window.DOCUMENTER_CURRENT_VERSION,
window.DOCUMENTER_STABLE
);
window.history.replaceState(
{ additionalInformation: "URL rewritten to stable" },
"DimensionalData",
rewritten_url
);
return;
}
}

// rewrite on router changes through vitepress
watch(() => router.route.data.relativePath, rewriteURL, {
immediate: true,
});
// also rewrite at initial load
document.addEventListener("DOMContentLoaded", rewriteURL);
}
},
} satisfies Theme;
Loading