feat: Separate title from body (#1216)
* first pass at updating all Time components each second * fix a couple date variable typos * use class style state management instead of hooks * wip: Separate title from body * address feedback * test: Remove unused test * feat: You in publishing info language fix: Removal of secondary headings * After much deliberation… a migration is needed for this to be reliable * fix: Export to work with new title structure * fix: Untitled * fix: Consistent spacing of first editor node * fix: Emoji in title handling * fix: Time component not updating for new props * chore: Add createdAt case * fix: Conflict after merging new TOC * PR feedback * lint * fix: Heading level adjustment Co-authored-by: Taylor Lapeyre <taylorlapeyre@gmail.com>
This commit is contained in:
@@ -43,6 +43,15 @@ export default function Contents({ document }: Props) {
|
||||
[position]
|
||||
);
|
||||
|
||||
// calculate the minimum heading level and adjust all the headings to make
|
||||
// that the top-most. This prevents the contents from being weirdly indented
|
||||
// if all of the headings in the document are level 3, for example.
|
||||
const minHeading = headings.reduce(
|
||||
(memo, heading) => (heading.level < memo ? heading.level : memo),
|
||||
Infinity
|
||||
);
|
||||
const headingAdjustment = minHeading - 1;
|
||||
|
||||
return (
|
||||
<div>
|
||||
<Wrapper>
|
||||
@@ -52,7 +61,7 @@ export default function Contents({ document }: Props) {
|
||||
{headings.map(heading => (
|
||||
<ListItem
|
||||
key={heading.slug}
|
||||
level={heading.level}
|
||||
level={heading.level - headingAdjustment}
|
||||
active={activeSlug === heading.slug}
|
||||
>
|
||||
<Link href={`#${heading.slug}`}>{heading.title}</Link>
|
||||
|
||||
Reference in New Issue
Block a user