|
56 | 56 | };
|
57 | 57 | }
|
58 | 58 |
|
| 59 | + function getPageId() { |
| 60 | + var id = document.location.href.split('#')[1]; |
| 61 | + if (id) { |
| 62 | + return id.split('?')[0].split('&')[0]; |
| 63 | + } |
| 64 | + return null; |
| 65 | + } |
| 66 | + |
59 | 67 | function hasClass(elem, className) {
|
60 | 68 | if (elem && className && elem.className) {
|
61 | 69 | var elemClass = elem.className;
|
|
1643 | 1651 | }
|
1644 | 1652 | }
|
1645 | 1653 |
|
1646 |
| - function toggleAllDocs() { |
| 1654 | + function toggleAllDocs(pageId) { |
1647 | 1655 | var toggle = document.getElementById("toggle-all-docs");
|
1648 | 1656 | if (hasClass(toggle, "will-expand")) {
|
1649 | 1657 | updateLocalStorage("rustdoc-collapse", "false");
|
|
1664 | 1672 | toggle.title = "expand all docs";
|
1665 | 1673 |
|
1666 | 1674 | onEach(document.getElementsByClassName("collapse-toggle"), function(e) {
|
1667 |
| - collapseDocs(e, "hide"); |
| 1675 | + collapseDocs(e, "hide", pageId); |
1668 | 1676 | });
|
1669 | 1677 | }
|
1670 | 1678 | }
|
1671 | 1679 |
|
1672 |
| - function collapseDocs(toggle, mode) { |
| 1680 | + function collapseDocs(toggle, mode, pageId) { |
1673 | 1681 | if (!toggle || !toggle.parentNode) {
|
1674 | 1682 | return;
|
1675 | 1683 | }
|
|
1745 | 1753 | }
|
1746 | 1754 | }
|
1747 | 1755 |
|
1748 |
| - var relatedDoc = toggle.parentNode; |
| 1756 | + var parentElem = toggle.parentNode; |
| 1757 | + var relatedDoc = parentElem; |
1749 | 1758 | var docblock = relatedDoc.nextElementSibling;
|
1750 | 1759 |
|
1751 | 1760 | while (!hasClass(relatedDoc, "impl-items")) {
|
1752 | 1761 | relatedDoc = relatedDoc.nextElementSibling;
|
1753 | 1762 | }
|
1754 | 1763 |
|
1755 |
| - if (!relatedDoc && !hasClass(docblock, "docblock")) { |
| 1764 | + if ((!relatedDoc && !hasClass(docblock, "docblock")) || |
| 1765 | + (pageId && onEach(relatedDoc.childNodes, function(e) { |
| 1766 | + return e.id === pageId; |
| 1767 | + }) === true)) { |
1756 | 1768 | return;
|
1757 | 1769 | }
|
1758 | 1770 |
|
|
1782 | 1794 | }
|
1783 | 1795 | }
|
1784 | 1796 |
|
1785 |
| - function autoCollapseAllImpls() { |
| 1797 | + function autoCollapseAllImpls(pageId) { |
1786 | 1798 | // Automatically minimize all non-inherent impls
|
1787 | 1799 | onEach(document.getElementsByClassName('impl'), function(n) {
|
1788 | 1800 | // inherent impl ids are like 'impl' or impl-<number>'
|
1789 | 1801 | var inherent = (n.id.match(/^impl(?:-\d+)?$/) !== null);
|
1790 | 1802 | if (!inherent) {
|
1791 | 1803 | onEach(n.childNodes, function(m) {
|
1792 | 1804 | if (hasClass(m, "collapse-toggle")) {
|
1793 |
| - collapseDocs(m, "hide"); |
| 1805 | + collapseDocs(m, "hide", pageId); |
1794 | 1806 | }
|
1795 | 1807 | });
|
1796 | 1808 | }
|
|
1900 | 1912 | }
|
1901 | 1913 | })
|
1902 | 1914 |
|
1903 |
| - autoCollapseAllImpls(); |
| 1915 | + autoCollapseAllImpls(getPageId()); |
1904 | 1916 |
|
1905 | 1917 | function createToggleWrapper() {
|
1906 | 1918 | var span = document.createElement('span');
|
|
2030 | 2042 | };
|
2031 | 2043 |
|
2032 | 2044 | if (getCurrentValue("rustdoc-collapse") === "true") {
|
2033 |
| - toggleAllDocs(); |
| 2045 | + toggleAllDocs(getPageId()); |
2034 | 2046 | }
|
2035 | 2047 | }());
|
2036 | 2048 |
|
|
0 commit comments