mirror of
https://github.com/mpusz/mp-units.git
synced 2025-06-25 01:01:33 +02:00
Merge pull request #532 from mpusz/api_reference
docs: "API Reference" support added
This commit is contained in:
74
docs/api.md
Normal file
74
docs/api.md
Normal file
@ -0,0 +1,74 @@
|
||||
---
|
||||
hide:
|
||||
- navigation
|
||||
- toc
|
||||
---
|
||||
|
||||
<script src="../javascripts/jquery.min.js"></script>
|
||||
<script src="../javascripts/iframeResizer.min.js"></script>
|
||||
|
||||
<iframe id="apiIframe" style="width: 100%; border: none;"></iframe>
|
||||
|
||||
<script>
|
||||
// injects scripts to the iframe source code
|
||||
$('#apiIframe').on('load', function() {
|
||||
body = $(this).contents().find('body');
|
||||
body.append('<scr' + 'ipt src="../../javascripts/iframeResizer.contentWindow.min.js"></scr' + 'ipt>');
|
||||
body.append('<scr' + 'ipt>' +
|
||||
'var links = document.querySelectorAll("a");' +
|
||||
'for (var i = 0; i < links.length; i++) {' +
|
||||
' links[i].addEventListener("click", whichLinkWasClicked);' +
|
||||
'}' +
|
||||
'' +
|
||||
'function whichLinkWasClicked(evt) {' +
|
||||
' window.parentIFrame.sendMessage(evt.target.href);' +
|
||||
' evt.preventDefault();' +
|
||||
'}' +
|
||||
'</scr' + 'ipt>');
|
||||
});
|
||||
|
||||
// reloads the window with the content when a user navigates over the browser's history
|
||||
function locationHashChanged() {
|
||||
window.location.reload();
|
||||
}
|
||||
window.onhashchange = locationHashChanged;
|
||||
|
||||
apiIframe = document.getElementById('apiIframe');
|
||||
hash = window.location.hash;
|
||||
if (hash.length == 0) {
|
||||
// sets default hash for the API Reference
|
||||
hash = "#full";
|
||||
history.pushState(null, "", hash);
|
||||
}
|
||||
|
||||
// set the iframe source based on the hash in the URL
|
||||
if (hash.startsWith("#wg21.link/")) {
|
||||
apiIframe.src = "https://" + hash.slice(1);
|
||||
apiIframe.height = 900;
|
||||
}
|
||||
else
|
||||
apiIframe.src = "gen/" + hash.slice(1) + ".html";
|
||||
|
||||
// receives content height from the subpage displayed in the iframe
|
||||
// works only for the pages in the same domain as the main docs
|
||||
iFrameResize({
|
||||
scrolling: "yes",
|
||||
|
||||
// obtains the link URL clicked in the subpage
|
||||
onMessage: function(messageData) {
|
||||
url = messageData.message;
|
||||
if (url.startsWith("https://wg21.link/")) {
|
||||
hash = '#' + messageData.message.replace("https://", "");
|
||||
}
|
||||
else {
|
||||
pos = messageData.message.indexOf('#');
|
||||
if(pos == -1) {
|
||||
pos = messageData.message.lastIndexOf('/');
|
||||
}
|
||||
hash = '#' + messageData.message.slice(pos + 1);
|
||||
}
|
||||
history.pushState(null, "", hash);
|
||||
window.location.reload();
|
||||
}
|
||||
},'#apiIframe')
|
||||
</script>
|
9
docs/javascripts/iframeResizer.contentWindow.min.js
vendored
Normal file
9
docs/javascripts/iframeResizer.contentWindow.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
8
docs/javascripts/iframeResizer.min.js
vendored
Normal file
8
docs/javascripts/iframeResizer.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
docs/javascripts/jquery.min.js
vendored
Normal file
2
docs/javascripts/jquery.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -175,6 +175,7 @@ nav:
|
||||
- Appendix:
|
||||
- Glossary: appendix/glossary.md
|
||||
- References: appendix/references.md
|
||||
- API Reference: api.md
|
||||
- Blog:
|
||||
- blog/index.md
|
||||
- Release Notes: release_notes.md
|
||||
|
Reference in New Issue
Block a user