Starlight-Themen Dropdown und Liste zusammen

Durch die Verwendung des Starlight Sidebar Topics-Plugins zusammen mit der Starlight Sidebar Topics Dropdown-Komponente können Sie eine Website erstellen, die auf dem Desktop eine Themenliste und im mobilen Bereich ein Dropdown-Menü anzeigt.
Sie benötigen eine bestehende Starlight-Website.
Zuerst installieren Sie das Plugin starlight-sidebar-topics
und die Komponente starlight-sidebar-topics-dropdown
:
npm install starlight-sidebar-topics starlight-sidebar-topics-dropdown
pnpm add starlight-sidebar-topics starlight-sidebar-topics-dropdown
yarn add starlight-sidebar-topics starlight-sidebar-topics-dropdown
Anschließend folgen Sie den Setup-Anleitungen von Starlight Sidebar Topics und Starlight Sidebar Topics Dropdown.
In der Setup-Anleitung der Dropdown-Komponente haben Sie eine Sidebar-Komponente erstellt, die nur das Dropdown-Menü rendert. Jetzt müssen Sie diese Komponente so ändern, dass sie auch die standardmäßige Sidebar rendert, wenn der Benutzer einen Desktop verwendet.
---import Default from '@astrojs/starlight/components/Sidebar.astro';import Topics from 'starlight-sidebar-topics/components/Sidebar.astro';import TopicsDropdown from 'starlight-sidebar-topics-dropdown/TopicsDropdown.astro';---
<div class="topics"> <Topics/></div><div class="topics-dropdown"> <TopicsDropdown/></div><Default><slot /></Default>
<style> /* Hide topics by default and show them on medium screens and larger */ .topics { display: none; }
@media (min-width: 800px) { .topics { display: block; } }
/* Show topics dropdown on small screens and hide it on medium screens and larger */ .topics-dropdown { display: block; }
@media (min-width: 800px) { .topics-dropdown { display: none; } }</style>
Wenn Sie diese Schritte befolgen, sieht Ihre Sidebar folgendermaßen aus:
Sie finden den vollständigen Quellcode dieses Guides in diesem StackBlitz-Beispiel.
Sie könnten es auch umgekehrt machen (Liste auf Mobilgeräten, Dropdown auf Desktops), indem Sie die Eigenschaften display: block
und display: none
im CSS vertauschen.
Außerdem könnten Sie auch Ihre eigene Anzeige-Komponente erstellen, die die Routendaten aus dem Starlight Sidebar Topics-Plugin verwendet und die Themen auf eine benutzerdefinierte Weise rendert. Dies ist etwas fortgeschrittener, aber Sie finden weitere Informationen dazu in der Dokumentation “Benutzerdefinierte Themenliste”.