|
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