Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generate Ids when there are none in local development #4304

Merged
merged 2 commits into from
Feb 7, 2022

Conversation

harish-sethuraman
Copy link
Collaborator

Seems like we weren't generating new ids at runtime so while developing in local it was generating link as undefined?
So added code to generate fallback ids when there are none.

@github-actions github-actions bot added the beta label Feb 6, 2022
@harish-sethuraman harish-sethuraman changed the title Generate Ids when there are no headings Generate Ids when there are none in local development Feb 6, 2022
@harish-sethuraman harish-sethuraman linked an issue Feb 6, 2022 that may be closed by this pull request
@github-actions
Copy link

github-actions bot commented Feb 6, 2022

Size Changes

📦 Next.js Bundle Analysis

This analysis was generated by the next.js bundle analysis action 🤖

Four Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load
/blog/2015/09/10/react-v0.14-rc1 234.54 KB (🟡 +51 B) 327.75 KB
/blog/2015/10/07/react-v0.14 235.03 KB (🟡 +56 B) 328.23 KB
/blog/2016/03/07/react-v15-rc1 232.53 KB (🟡 +62 B) 325.73 KB
/blog/2016/04/07/react-v15 236.72 KB (🟡 +129 B) 329.92 KB
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 10% or more, there will be a red status indicator applied, indicating that special attention should be given to this.

*/
if (match) {
if (!tail || tail.type !== 'text' || tail.value !== '/}') {
return;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These early exits didn't seem right. We want to assign ID from a slug regardless of whether we succeeded to modify the tail.

const match = /^.+(\s*\{.*\}\s*)$/u.exec(rawHeader);
/**
* we check if there is a heading and custom id with regex.
* If there is a match then we set the id to be the match[1] which is the custom id
Copy link
Member

@gaearon gaearon Feb 7, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These comments are repeating the code. It's better if we use the comments for things that aren't clear from the code (like why does the code do things we want it to do rather than what it does).

let tail = children[children.length - 1];

// A bit weird: this is to support MDX 2 comments in expressions,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was a valuable comment so we shouldn't nix it.

}

tail = children[children.length - 2];

if (!tail && tail.type !== 'emphasis') {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was a mistake in the original code btw. It should've used || because otherwise the second check would crash whenever tail is null or undefined.

@gaearon gaearon merged commit 71b743a into reactjs:main Feb 7, 2022
BetterZxx pushed a commit to BetterZxx/react.dev that referenced this pull request Mar 21, 2023
 (reactjs#721)

* Sandpack error icon overlapping issue fix (reactjs#4302)

* sandpack error icon overlapping issue fix

* modified errorline css

* Improve font display (reactjs#4308)

* Generate Ids when there are none in local development (reactjs#4304)

* Generate Ids when there are no headings

* Tweak code

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>

* [Beta] useState Troubleshooting (reactjs#4309)

* [Beta] useState Troubleshooting

* Tweaks

* tweak

* docs: phrasing a sentence (reactjs#4185)

* docs: phrasing a sentence (reactjs#4182)

* docs: phrasing a sentence

* Update extracting-state-logic-into-a-reducer.md

Co-authored-by: dan <dan.abramov@gmail.com>

* docs: fix a grammatical error (reactjs#4183)

Co-authored-by: dan <dan.abramov@gmail.com>

* Change "return statement" to "return keyword" (reactjs#4137)

* small fixes to stopwatch codesandbox (reactjs#4110)

* small fixes to stopwatch codesandbox

noticed that the explanation for the first stopwatch codesandbox mentions "update the time every 10 milliseconds" so updated the codesandbox to reflect that

also there's a small nuanced bug in the second stopwatch codesandbox where each call to `handleStart()` sets a new interval without checking if there's already one ongoing. 

Ie: If the user accidentally double clicks the start button, they set two intervals for updating `now` every 10ms and then intervalRef only retains the second interval ID. Thus, it's impossible to actually stop the timer because `handleStop()` will only clear the latest set interval while the original one will keep executing.

* Update referencing-values-with-refs.md

* Update referencing-values-with-refs.md

* Update referencing-values-with-refs.md

Co-authored-by: dan <dan.abramov@gmail.com>

* Resolve conflicts

Co-authored-by: Amaresh  S M <amaresh.suriya@freshworks.com>
Co-authored-by: Sha Mwe La <62544170+shamwela@users.noreply.github.com>
Co-authored-by: Strek <harish.sethuraman@freshworks.com>
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
Co-authored-by: Sofya Tuymedova <stuymedova@gmail.com>
Co-authored-by: Soichiro Miki <smiki-tky@umin.ac.jp>
Co-authored-by: Aayush Kumar <aayush.kumarmail@gmail.com>
Co-authored-by: KnowsCount <knowscount@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Beta] Infer headings at runtime
3 participants