diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2023-06-24 03:51:43 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-23 15:51:43 -0400 |
commit | 62ab55baccfcd11d1f8b5449c1620354b8a7640e (patch) | |
tree | de585fe6fa6a6f47d8fe143bc14213763a54dd26 /web_src/js | |
parent | 3c7f5ed7b5bff347198cbb26492e6354ea42733b (diff) | |
download | gitea-62ab55baccfcd11d1f8b5449c1620354b8a7640e.tar.gz gitea-62ab55baccfcd11d1f8b5449c1620354b8a7640e.zip |
Improve wiki sidebar and TOC (#25460)
Close #20976
Close #20975
1. Fix the bug: the TOC in footer was incorrectly rendered as main
content's TOC
2. Fix the layout: on mobile, the TOC is put above the main content,
while the sidebar is put below the main content
3. Auto collapse the TOC on mobile
ps: many styles of "wiki.css" are moved from old css files, so leave
nits to following PRs.
Diffstat (limited to 'web_src/js')
-rw-r--r-- | web_src/js/features/repo-wiki.js | 12 | ||||
-rw-r--r-- | web_src/js/modules/fomantic.js | 2 |
2 files changed, 14 insertions, 0 deletions
diff --git a/web_src/js/features/repo-wiki.js b/web_src/js/features/repo-wiki.js index c37da45994..58036fde37 100644 --- a/web_src/js/features/repo-wiki.js +++ b/web_src/js/features/repo-wiki.js @@ -1,6 +1,7 @@ import $ from 'jquery'; import {initMarkupContent} from '../markup/content.js'; import {validateTextareaNonEmpty, initComboMarkdownEditor} from './comp/ComboMarkdownEditor.js'; +import {fomanticMobileScreen} from '../modules/fomantic.js'; const {csrfToken} = window.config; @@ -70,6 +71,17 @@ async function initRepoWikiFormEditor() { }); } +function collapseWikiTocForMobile(collapse) { + if (collapse) { + document.querySelector('.wiki-content-toc details')?.removeAttribute('open'); + } +} + export function initRepoWikiForm() { + if (!document.querySelector('.page-content.repository.wiki')) return; + + fomanticMobileScreen.addEventListener('change', (e) => collapseWikiTocForMobile(e.matches)); + collapseWikiTocForMobile(fomanticMobileScreen.matches); + initRepoWikiFormEditor(); } diff --git a/web_src/js/modules/fomantic.js b/web_src/js/modules/fomantic.js index 1495b311ca..5988584aca 100644 --- a/web_src/js/modules/fomantic.js +++ b/web_src/js/modules/fomantic.js @@ -3,6 +3,8 @@ import {initAriaCheckboxPatch} from './aria/checkbox.js'; import {initAriaDropdownPatch} from './aria/dropdown.js'; import {svg} from '../svg.js'; +export const fomanticMobileScreen = window.matchMedia('only screen and (max-width: 767.98px)'); + export function initGiteaFomantic() { // Silence fomantic's error logging when tabs are used without a target content element $.fn.tab.settings.silent = true; |