Skip to content

Commit c58f043

Browse files
committed
Versioned docs
1 parent 9ec78fa commit c58f043

9 files changed

+168
-123
lines changed
+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/bash
2+
3+
re="^v([3-9]\.[0-9]+)\.0$"
4+
5+
versions=$(cat docs/assets/versions.js)
6+
7+
exitcode=0
8+
9+
while read -r tag; do
10+
if [[ $tag =~ $re ]]; then
11+
version=${BASH_REMATCH[1]};
12+
if [[ $versions != *$version* ]]; then
13+
echo "Add $version to docs versions" 1>&2;
14+
exitcode=1
15+
fi
16+
fi
17+
done < <(git tag);
18+
19+
exit $exitcode

docs/assets/docsify-edit-link.js

-30
This file was deleted.

docs/assets/docsify-gitter.js

-29
This file was deleted.

docs/assets/docsify-init.js

+128
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
if (window.DOCSIFY_ROUTER_MODE === "history") {
2+
var clink = document.createElement("link")
3+
clink.rel = "canonical"
4+
document.getElementsByTagName("head")[0].appendChild(clink)
5+
}
6+
7+
var documentTitleBase = document.title;
8+
9+
var gitterURL = "https://gitter.im/imgproxy/imgproxy";
10+
var gitterBadgeURL = "https://img.shields.io/gitter/room/imgproxy/imgproxy" +
11+
"?color=1775d3&style=for-the-badge&logo=gitter";
12+
var gitterBadge = '<div class="gitter">' +
13+
'<a class="gitter-link" href="' + gitterURL + '" target="_blank">' +
14+
'<img alt="Chat on Gitter" src="' + gitterBadgeURL + '">' +
15+
'</div></a>';
16+
17+
var docEditBase = 'https://github.com/imgproxy/imgproxy/edit/master/docs/';
18+
19+
var proBadge = document.createElement("img")
20+
proBadge.setAttribute("src", "/assets/pro.svg")
21+
proBadge.setAttribute("title", "This feature is available in imgproxy Pro")
22+
23+
var proBadgeRegex = /\!\[pro\]\((\S+)\)/g;
24+
var proLink = '<a class="badge" href="https://imgproxy.net/#pro" target="_blank">' +
25+
proBadge.outerHTML + '</a>';
26+
27+
var oldProBadge = "<i class='badge badge-pro'></i>";
28+
29+
var versions = ["latest"].concat(window.IMGPROXY_VERSIONS);
30+
var latestVersion = window.IMGPROXY_VERSIONS[0];
31+
var versionSelect = '<select id="version-selector" name="version" class="sidebar-version-select">';
32+
versions.forEach(function (version) {
33+
var value = version == latestVersion ? "" : version;
34+
versionSelect = versionSelect + '<option value="' + value + '">' + version + '</value>';
35+
});
36+
versionSelect = versionSelect + '</select>';
37+
38+
window.$docsify = {
39+
name: '<a id="home-link" class="app-name-link" href="/"><img src="/assets/logo.svg"></a>' +
40+
gitterBadge +
41+
versionSelect,
42+
nameLink: false,
43+
repo: 'https://github.com/imgproxy',
44+
loadSidebar: true,
45+
subMaxLevel: 2,
46+
auto2top: true,
47+
routerMode: window.DOCSIFY_ROUTER_MODE || "hash",
48+
noEmoji: true,
49+
alias: {
50+
'/latest/': 'README.md',
51+
'/latest/(.*)': '$1',
52+
'/([0-9]+\.[0-9]+)/(.*)': 'https://raw.githubusercontent.com/imgproxy/imgproxy/v$1.0/docs/$2',
53+
'/([0-9]+\.[0-9]+)/': 'https://raw.githubusercontent.com/imgproxy/imgproxy/v$1.0/docs/README.md',
54+
'/(.*)': 'https://raw.githubusercontent.com/imgproxy/imgproxy/v' + latestVersion + '.0/docs/$1',
55+
'/': 'https://raw.githubusercontent.com/imgproxy/imgproxy/v' + latestVersion + '.0/docs/README.md',
56+
},
57+
search: {
58+
namespace: 'docs-imgproxy',
59+
depth: 6,
60+
pathNamespaces: versions.map(function (v) { return "/" + v })
61+
},
62+
namespaces: [
63+
{
64+
id: "version",
65+
values: versions,
66+
optional: true,
67+
selector: "#version-selector"
68+
}
69+
],
70+
plugins: [
71+
function (hook, vm) {
72+
window.DocsifyVM = vm
73+
hook.beforeEach(function () {
74+
if (clink) {
75+
clink.href = "https://docs.imgproxy.net" + vm.route.path
76+
}
77+
});
78+
79+
hook.doneEach(function () {
80+
var appNameLink = Docsify.dom.find("#home-link");
81+
82+
if (!appNameLink) return;
83+
84+
appNameLink.href = vm.config.currentNamespace;
85+
});
86+
87+
hook.doneEach(function() {
88+
if (document.title != documentTitleBase)
89+
document.title += " | " + documentTitleBase;
90+
});
91+
92+
93+
hook.afterEach(function (html) {
94+
var docName = vm.route.file.replace(
95+
/https\:\/\/raw.githubusercontent\.com\/(.*)\/docs\//, ''
96+
)
97+
98+
if (!docName) {
99+
return html;
100+
}
101+
102+
var editButton = '<a class="github-edit-btn" title="Edit on GitHub" href="' +
103+
docEditBase + docName +
104+
'" target="_blank">' +
105+
'Edit on <strong>GitHub</strong>' +
106+
'</a>';
107+
108+
return html + editButton
109+
})
110+
111+
hook.beforeEach(function (content, next) {
112+
content = content.replaceAll(proBadgeRegex, proLink)
113+
content = content.replaceAll(oldProBadge, proLink)
114+
console.log(content)
115+
next(content)
116+
})
117+
118+
hook.doneEach(function () {
119+
var badges = Docsify.dom.findAll(".sidebar .badge-pro")
120+
badges.forEach(function (b) { b.replaceWith(proBadge.cloneNode()) })
121+
122+
// Docsify cuts off "target" sometimes
123+
var links = Docsify.dom.findAll("a.badge")
124+
links.forEach(function(l){ l.setAttribute("target", "_blank") })
125+
})
126+
}
127+
]
128+
}

docs/assets/docsify-pro-badge.js

-19
This file was deleted.

docs/assets/style.css

+5
Original file line numberDiff line numberDiff line change
@@ -145,3 +145,8 @@ h1 .badge img, h3 .badge img, h3 .badge img, h4 .badge img, h5 .badge img {
145145
display: block;
146146
margin: 5px auto 0;
147147
}
148+
149+
.sidebar-version-select {
150+
width: 100%;
151+
margin: var(--sidebar-nav-margin);
152+
}

docs/assets/versions.js

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
window.IMGPROXY_VERSIONS = [
2+
"3.6",
3+
"3.5",
4+
"3.4",
5+
"3.3",
6+
"3.2",
7+
"3.1",
8+
"3.0"
9+
];

docs/index.html

+5-45
Original file line numberDiff line numberDiff line change
@@ -41,56 +41,16 @@
4141
<div class="loading__spinner"></div>
4242
</div>
4343
</div>
44-
<script src="/assets/docsify-edit-link.js"></script>
45-
<script src="/assets/docsify-gitter.js"></script>
46-
<script src="/assets/docsify-pro-badge.js"></script>
47-
<script>
48-
if (window.DOCSIFY_ROUTER_MODE === "history") {
49-
var clink = document.createElement("link")
50-
clink.rel = "canonical"
51-
document.getElementsByTagName("head")[0].appendChild(clink)
52-
}
5344

54-
var documentTitleBase = document.title;
45+
<script src="/assets/versions.js"></script>
46+
<script src="/assets/docsify-init.js"></script>
5547

56-
window.$docsify = {
57-
logo: '/assets/logo.svg',
58-
name: 'imgproxy',
59-
repo: 'https://github.com/imgproxy',
60-
loadSidebar: true,
61-
subMaxLevel: 2,
62-
auto2top: true,
63-
routerMode: window.DOCSIFY_ROUTER_MODE || "hash",
64-
noEmoji: true,
65-
search: {
66-
namespace: 'docs-imgproxy',
67-
depth: 6
68-
},
69-
plugins: [
70-
EditOnGithubPlugin.create('https://github.com/imgproxy/imgproxy/blob/master/docs/'),
71-
GitterPlugin.create("imgproxy/imgproxy", "1775d3"),
72-
ProBadgePlugin.create(),
73-
function (hook, vm) {
74-
hook.beforeEach(function () {
75-
if (clink) {
76-
clink.href = "https://docs.imgproxy.net" + vm.route.path
77-
}
78-
});
79-
},
80-
function (hook, vm) {
81-
hook.doneEach((content) => {
82-
if (document.title != documentTitleBase)
83-
document.title += " | " + documentTitleBase;
84-
});
85-
}
86-
]
87-
}
88-
</script>
8948
<script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
90-
<script src="https://cdn.jsdelivr.net/npm/docsify-themeable@0"></script>
49+
<script src="//cdn.jsdelivr.net/npm/docsify-themeable@0"></script>
9150
<script src="//unpkg.com/docsify/lib/plugins/search.min.js"></script>
51+
<script src="//unpkg.com/docsify-namespaced@0.1.1/dist/docsify-namespaced.min.js"></script>
9252
<script src="//unpkg.com/docsify-pagination/dist/docsify-pagination.min.js"></script>
93-
<script src="https://unpkg.com/docsify-copy-code@2"></script>
53+
<script src="//unpkg.com/docsify-copy-code@2"></script>
9454
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-bash.min.js"></script>
9555
<link href="https://fonts.googleapis.com/css?family=Fira+Mono|Roboto:400,700&display=swap" rel="stylesheet">
9656
</body>

lefthook.yml

+2
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,5 @@ pre-push:
77
scripts:
88
test:
99
tags: test
10+
check-docs-versions:
11+
tags: docs

0 commit comments

Comments
 (0)