diff --git a/.vuepress/config.js b/.vuepress/config.js index 04239c48..1611abc8 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -111,24 +111,51 @@ module.exports = { { title: 'Panel', collapsable: false, - children: [ - '/panel/getting_started', - '/panel/webserver_configuration', - '/panel/upgrading', - '/panel/configuration', - '/panel/troubleshooting', + path: '/panel/', + currentVersion: '0.7', + versions: [ + { + name: '0.6', + status: 'deprecated', + children: [] + }, + { + name: '0.7', + status: 'stable', + children: [ + '/getting_started', + '/webserver_configuration', + '/upgrading', + '/configuration', + '/troubleshooting', + ] + }, + { + name: '1.0', + status: 'beta', + children: [ + '/getting_started', + ] + } ] }, { title: 'Daemon', collapsable: false, - children: [ - '/daemon/installing', - '/daemon/upgrading', - '/daemon/configuration', - '/daemon/kernel_modifications', - '/daemon/debian_8_docker', - '/daemon/standalone_sftp', + path: '/daemon/', + currentVersion: '0.6', + versions: [ + { + name: '0.6', + children: [ + '/installing', + '/upgrading', + '/configuration', + '/kernel_modifications', + '/debian_8_docker', + '/standalone_sftp', + ] + } ] }, { diff --git a/.vuepress/theme/SidebarGroup.vue b/.vuepress/theme/SidebarGroup.vue index 300a0b37..9c189fad 100644 --- a/.vuepress/theme/SidebarGroup.vue +++ b/.vuepress/theme/SidebarGroup.vue @@ -1,28 +1,79 @@ diff --git a/.vuepress/theme/VersionSelect.vue b/.vuepress/theme/VersionSelect.vue new file mode 100644 index 00000000..d6baebc6 --- /dev/null +++ b/.vuepress/theme/VersionSelect.vue @@ -0,0 +1,63 @@ + + + \ No newline at end of file diff --git a/.vuepress/theme/VersionSelectItem.vue b/.vuepress/theme/VersionSelectItem.vue new file mode 100644 index 00000000..dad7b75d --- /dev/null +++ b/.vuepress/theme/VersionSelectItem.vue @@ -0,0 +1,32 @@ + + + \ No newline at end of file diff --git a/.vuepress/theme/styles/sidebar.css b/.vuepress/theme/styles/sidebar.css index 94f0fe23..1d6541c0 100644 --- a/.vuepress/theme/styles/sidebar.css +++ b/.vuepress/theme/styles/sidebar.css @@ -90,6 +90,55 @@ $arrow-bg: #000; &.open .arrow { top: -0.18em; } + + .version-select { + @apply .relative .inline-block .text-sm; + + &:focus { + @apply .outline-none; + } + + .selected { + @apply .border .select-none .cursor-pointer .px-4; + border-radius: 1rem; + + &.open { + @apply .border-blue .outline-none; + } + + &:after { + position: absolute; + content: ""; + top: .5em; + right: 10px; + width: 0; + height: 0; + border: 4px solid transparent; + border-color: #fff transparent transparent transparent; + } + } + + .items { + @apply .absolute .pin-r .bg-white .border .p-1 .mt-1; + border-radius: 1rem; + z-index: 100; + + .item { + @apply .select-none .rounded-full .cursor-pointer .px-2 .border .border-white; + white-space: nowrap; + margin-top: .125rem; + margin-bottom: .125rem; + + &:hover, &:focus { + @apply .bg-grey-lighter; + } + + &:last-child { + @apply .mb-0; + } + } + } + } } .sidebar-group-items { diff --git a/.vuepress/theme/util.js b/.vuepress/theme/util.js index ef95bea5..cebbf1d8 100644 --- a/.vuepress/theme/util.js +++ b/.vuepress/theme/util.js @@ -3,32 +3,32 @@ export const extRE = /\.(md|html)$/ export const endingSlashRE = /\/$/ export const outboundRE = /^(https?:|mailto:|tel:)/ -export function normalize (path) { +export function normalize(path) { return decodeURI(path) .replace(hashRE, '') .replace(extRE, '') } -export function getHash (path) { +export function getHash(path) { const match = path.match(hashRE) if (match) { return match[0] } } -export function isExternal (path) { +export function isExternal(path) { return outboundRE.test(path) } -export function isMailto (path) { +export function isMailto(path) { return /^mailto:/.test(path) } -export function isTel (path) { +export function isTel(path) { return /^tel:/.test(path) } -export function ensureExt (path) { +export function ensureExt(path) { if (isExternal(path)) { return path } @@ -42,7 +42,7 @@ export function ensureExt (path) { return normalized + '.html' + hash } -export function isActive (route, path) { +export function isActive(route, path) { const routeHash = route.hash const linkHash = getHash(path) if (linkHash && routeHash !== linkHash) { @@ -53,7 +53,7 @@ export function isActive (route, path) { return routePath === pagePath } -export function resolvePage (pages, rawPath, base) { +export function resolvePage(pages, rawPath, base) { if (base) { rawPath = resolvePath(rawPath, base) } @@ -70,7 +70,7 @@ export function resolvePage (pages, rawPath, base) { return {} } -function resolvePath (relative, base, append) { +function resolvePath(relative, base, append) { const firstChar = relative.charAt(0) if (firstChar === '/') { return relative @@ -108,7 +108,7 @@ function resolvePath (relative, base, append) { return stack.join('/') } -export function resolveSidebarItems (page, route, site, localePath) { +export function resolveSidebarItems(page, route, site, localePath) { const { pages, themeConfig } = site const localeConfig = localePath && themeConfig.locales @@ -131,7 +131,7 @@ export function resolveSidebarItems (page, route, site, localePath) { } } -function resolveHeaders (page) { +function resolveHeaders(page) { const headers = groupHeaders(page.headers || []) return [{ type: 'group', @@ -147,7 +147,7 @@ function resolveHeaders (page) { }] } -export function groupHeaders (headers) { +export function groupHeaders(headers) { // group h3s under h2 headers = headers.map(h => Object.assign({}, h)) let lastH2 @@ -161,13 +161,13 @@ export function groupHeaders (headers) { return headers.filter(h => h.level === 2) } -export function resolveNavLinkItem (linkItem) { +export function resolveNavLinkItem(linkItem) { return Object.assign(linkItem, { type: linkItem.items && linkItem.items.length ? 'links' : 'link' }) } -export function resolveMatchingConfig (route, config) { +export function resolveMatchingConfig(route, config) { if (Array.isArray(config)) { return { base: '/', @@ -185,13 +185,13 @@ export function resolveMatchingConfig (route, config) { return {} } -function ensureEndingSlash (path) { +function ensureEndingSlash(path) { return /(\.html|\/)$/.test(path) ? path : path + '/' } -function resolveItem (item, pages, base, isNested) { +function resolveItem(item, pages, base, isNested) { if (typeof item === 'string') { return resolvePage(pages, item, base) } else if (Array.isArray(item)) { @@ -206,11 +206,18 @@ function resolveItem (item, pages, base, isNested) { ) } const children = item.children || [] + const versions = item.versions || [] return { type: 'group', - title: item.title, + ...item, children: children.map(child => resolveItem(child, pages, base, true)), - collapsable: item.collapsable !== false + collapsable: item.collapsable !== false, + versions: versions.map(version => ({ + ...version, + status: version.name === item.currentVersion ? "current" : version.status, + children: version.children.map(child => resolveItem(item.path + version.name + child, pages, base, true)) + })), + } } } diff --git a/daemon/configuration.md b/daemon/0.6/configuration.md similarity index 100% rename from daemon/configuration.md rename to daemon/0.6/configuration.md diff --git a/daemon/debian_8_docker.md b/daemon/0.6/debian_8_docker.md similarity index 100% rename from daemon/debian_8_docker.md rename to daemon/0.6/debian_8_docker.md diff --git a/daemon/installing.md b/daemon/0.6/installing.md similarity index 99% rename from daemon/installing.md rename to daemon/0.6/installing.md index dc5cb555..960b08d3 100644 --- a/daemon/installing.md +++ b/daemon/0.6/installing.md @@ -148,7 +148,7 @@ Once you have done that there will be a tab called Configuration when you view t Simply copy and paste the code block and paste it into a file called `core.json` in `/srv/daemon/config` and save it. You may also use the Auto-Deployment feature rather than manually creating the files. -![](./../.vuepress/public/daemon_configuration_example.png) +![](./../../.vuepress/public/daemon_configuration_example.png) ## Starting the Daemon To start your daemon simply move into the daemon directory and run the command below which will start the daemon in diff --git a/daemon/kernel_modifications.md b/daemon/0.6/kernel_modifications.md similarity index 100% rename from daemon/kernel_modifications.md rename to daemon/0.6/kernel_modifications.md diff --git a/daemon/standalone_sftp.md b/daemon/0.6/standalone_sftp.md similarity index 100% rename from daemon/standalone_sftp.md rename to daemon/0.6/standalone_sftp.md diff --git a/daemon/upgrade/0.4_to_0.5.md b/daemon/0.6/upgrade/0.4_to_0.5.md similarity index 100% rename from daemon/upgrade/0.4_to_0.5.md rename to daemon/0.6/upgrade/0.4_to_0.5.md diff --git a/daemon/upgrade/0.5.md b/daemon/0.6/upgrade/0.5.md similarity index 100% rename from daemon/upgrade/0.5.md rename to daemon/0.6/upgrade/0.5.md diff --git a/daemon/upgrade/0.5_to_0.6.md b/daemon/0.6/upgrade/0.5_to_0.6.md similarity index 100% rename from daemon/upgrade/0.5_to_0.6.md rename to daemon/0.6/upgrade/0.5_to_0.6.md diff --git a/daemon/upgrade/0.6.md b/daemon/0.6/upgrade/0.6.md similarity index 100% rename from daemon/upgrade/0.6.md rename to daemon/0.6/upgrade/0.6.md diff --git a/daemon/upgrading.md b/daemon/0.6/upgrading.md similarity index 100% rename from daemon/upgrading.md rename to daemon/0.6/upgrading.md diff --git a/panel/configuration.md b/panel/0.7/configuration.md similarity index 100% rename from panel/configuration.md rename to panel/0.7/configuration.md diff --git a/panel/getting_started.md b/panel/0.7/getting_started.md similarity index 100% rename from panel/getting_started.md rename to panel/0.7/getting_started.md diff --git a/panel/troubleshooting.md b/panel/0.7/troubleshooting.md similarity index 100% rename from panel/troubleshooting.md rename to panel/0.7/troubleshooting.md diff --git a/panel/upgrade/0.6_to_0.7.md b/panel/0.7/upgrade/0.6_to_0.7.md similarity index 100% rename from panel/upgrade/0.6_to_0.7.md rename to panel/0.7/upgrade/0.6_to_0.7.md diff --git a/panel/upgrade/0.7.md b/panel/0.7/upgrade/0.7.md similarity index 100% rename from panel/upgrade/0.7.md rename to panel/0.7/upgrade/0.7.md diff --git a/panel/upgrade/0.7_to_1.0.md b/panel/0.7/upgrade/0.7_to_1.0.md similarity index 100% rename from panel/upgrade/0.7_to_1.0.md rename to panel/0.7/upgrade/0.7_to_1.0.md diff --git a/panel/upgrade/1.0.md b/panel/0.7/upgrade/1.0.md similarity index 100% rename from panel/upgrade/1.0.md rename to panel/0.7/upgrade/1.0.md diff --git a/panel/upgrading.md b/panel/0.7/upgrading.md similarity index 100% rename from panel/upgrading.md rename to panel/0.7/upgrading.md diff --git a/panel/webserver_configuration.md b/panel/0.7/webserver_configuration.md similarity index 100% rename from panel/webserver_configuration.md rename to panel/0.7/webserver_configuration.md diff --git a/panel/1.0/getting_started.md b/panel/1.0/getting_started.md index 897cf3cf..d7e54967 100644 --- a/panel/1.0/getting_started.md +++ b/panel/1.0/getting_started.md @@ -1,5 +1,7 @@ # Getting Started +BETA + [[toc]] Pterodactyl Panel is designed to run on your own web server. You will need to have root access to your server in order to run and use this panel.