[docs] design shuffle (#2951)

This PR incorporates design tweaks from #2922 without the home page or
content changes.

These are:
- Replacing all `hello@tldraw.com` with `sales@tldraw.com`
- Fix mailto links.
- Showing the first item in a section on direct routes to the section
- Splitting the article page for human-written content from article page
for generated content
- Splitting the layout for the landing page from the rest of the site
(temporarily identical to the regular content)
- Removing headings from left sidebar
- Restoring headings in right sidebar for human-written pages with > 1
heading link
- Styling block quote
- Adjusting section link appearance / layout in header / menu
- Changing the order of search results to preference docs over examples
- Updating copy on events
- Removing copy on user interface menus
- Adding hero as prop to all articles
- Updated icon
- Fixing a few broken links
- Replaces the sandpack code blocks with hljs code blocks, except in
examples.

### Change Type

- [x] `documentation` — Changes to the documentation only[^2]
This commit is contained in:
Steve Ruiz 2024-02-29 16:28:45 +00:00 committed by GitHub
parent 3f5803729d
commit 9a6f4e8c4b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
47 changed files with 1587 additions and 1299 deletions

View file

@ -33,7 +33,7 @@ const linkContext = createContext<{
// it keeps re-rendering.
let scrollPosition = 0
export function Sidebar({ headings, links, sectionId, categoryId, articleId }: SidebarProps) {
export function Sidebar({ links, sectionId, categoryId, articleId }: SidebarProps) {
const activeId = articleId ?? categoryId ?? sectionId
const sidebarRef = useRef<HTMLDivElement>(null)
@ -72,7 +72,7 @@ export function Sidebar({ headings, links, sectionId, categoryId, articleId }: S
<div className="sidebar__section__links">
<SectionLinks sectionId={sectionId} />
</div>
<SidebarLinks headings={headings} links={links} />
<SidebarLinks links={links} />
<SidebarCloseButton />
</div>
<ToggleMenuButton />
@ -81,62 +81,48 @@ export function Sidebar({ headings, links, sectionId, categoryId, articleId }: S
)
}
export function SidebarLinks({
headings,
links,
}: {
headings?: ArticleHeadings
links: SidebarContentLink[]
}) {
export function SidebarLinks({ links }: { links: SidebarContentLink[] }) {
return (
<nav className="sidebar__nav">
<ul className="sidebar__list sidebar__sections__list">
{links.map((link) => (
<SidebarLink key={link.url} headings={headings} {...link} />
<SidebarLink key={link.url} {...link} />
))}
</ul>
</nav>
)
}
function SidebarLink({ headings, ...props }: SidebarContentLink & { headings?: ArticleHeadings }) {
function SidebarLink(props: SidebarContentLink) {
switch (props.type) {
case 'section': {
return <SidebarSection headings={headings} {...props} />
return <SidebarSection {...props} />
}
case 'article': {
return <SidebarArticle headings={headings} {...props} />
return <SidebarArticle {...props} />
}
case 'category': {
return <SidebarCategory headings={headings} {...props} />
return <SidebarCategory {...props} />
}
}
}
function SidebarSection({
title,
children,
headings,
}: SidebarContentSectionLink & { headings?: ArticleHeadings }) {
function SidebarSection({ title, children }: SidebarContentSectionLink) {
if (children.length === 0) return null
return (
<li className="sidebar__section">
{title && <span className="sidebar__section__title">{title}</span>}
{title && <span className="sidebar__section__title uppercase_title">{title}</span>}
<ul className="sidebar__list">
{children.map((link) => (
<SidebarLink key={link.url} headings={headings} {...link} />
<SidebarLink key={link.url} {...link} />
))}
</ul>
</li>
)
}
function SidebarCategory({
title,
children,
headings,
}: SidebarContentCategoryLink & { headings?: ArticleHeadings }) {
function SidebarCategory({ title, children }: SidebarContentCategoryLink) {
const linkCtx = useContext(linkContext)
if (children.length === 0) return null
const hasGroups = children.some((child) => !!(child as SidebarContentArticleLink).groupId)
@ -171,7 +157,7 @@ function SidebarCategory({
<Accordion.Content>
<ul className="sidebar__list sidebar__group">
{articles.map((link) => (
<SidebarLink key={link.url} headings={headings} {...link} />
<SidebarLink key={link.url} {...link} />
))}
</ul>
</Accordion.Content>