-
Notifications
You must be signed in to change notification settings - Fork 351
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
[Locked Labels] Count lone unescaped $ as regular dollar signs #1875
Conversation
I received a couple suggestions in PR #1854. I'm implmementing them here: - Wrote a helper function that joins labels together so that we don't have to duplicate that code for every single locked figure. - Stopped calling `generateSpokenMathDetails()` on the whole aria string for the locked figure. Instead, it's now being called within the new helper function so that the labels can individually be converted, and we don't have to worry about the edge case with two different labels having dollar signs and causing all the content in between to be counted as TeX when it shouldn't. - Handled the case with a lone unescaped dollar sign, which should not count as TeX. Note: The lone unescaped dollar isn't handled for the TeX inside the graph itself yet. This will be in the next PR. Issue: https://khanacademy.atlassian.net/browse/LEMS-2548 Test plan: `yarn jest` Storybook - http://localhost:6006/?path=/story/perseuseditor-widgets-interactive-graph--mafs-with-locked-figure-labels-all-flags - Add two visible labels to the point, with one having "$1 and" as the label and the other having "$1" as the label. - Press the autogenerate button and confirm that the "and" is normal and not "a n d". Also confirm that the dollar signs show up normally. - Add two TeX labels and confirm that the auto-generated text is as expected. - Repeat for all the other locked figures.
Right now, if you type "$1" into the locked label input, it shows up as "undefined1" in the graph TeX. - Update the parsed content to count a lone unescaped $ as a regular $. Issue: https://khanacademy.atlassian.net/browse/LEMS-2591 Test plan: `yarn jest packages/perseus/src/widgets/interactive-graphs/utils.test.ts` Storybook - Go to http://localhost:6006/?path=/story/perseuseditor-widgets-interactive-graph--interactive-graph-with-aria-label - Create a new locked figure - Add a label "$1" and confirm it shows up as "$1" in the preview - Play around with different escaped and unescaped dollar signs and confirm they work as expected
npm Snapshot: PublishedGood news!! We've packaged up the latest commit from this PR (0b65428) and published it to npm. You Example: yarn add @khanacademy/perseus@PR1875 If you are working in Khan Academy's webapp, you can run: ./dev/tools/bump_perseus_version.sh -t PR1875 |
Size Change: -270 B (-0.02%) Total Size: 1.29 MB
ℹ️ View Unchanged
|
GeraldRequired Reviewers
Don't want to be involved in this pull request? Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
${"$1"} | ${"\\text{\\$1}"} | ||
${"1$"} | ${"\\text{1\\$}"} | ||
${"$$1$"} | ${"\\text{1\\$}"} | ||
${"$1$$"} | ${"1\\text{\\$}"} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a nice set of test cases :)
expect(screen.getByText("1/2")).toBeInTheDocument(); | ||
expect(screen.getByText("3/4")).toBeInTheDocument(); | ||
expect(screen.getByText("\\text{$1/2$}")).toBeInTheDocument(); | ||
expect(screen.getByText("\\text{$3/4$}")).toBeInTheDocument(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@anakaren-rojas I think my update affected some of your recent changes. Does this look okay to you?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
EDIT: Yes, looks good
For these, I think it would be
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
$\frac{1}{2}$
renders correctly when I test it out in storybook, so the functionality updates you made look right
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Double checked the axis labels and they render correctly when I tried a few different variations of TeX 🎉
expect(screen.getByText("1/2")).toBeInTheDocument(); | ||
expect(screen.getByText("3/4")).toBeInTheDocument(); | ||
expect(screen.getByText("\\text{$1/2$}")).toBeInTheDocument(); | ||
expect(screen.getByText("\\text{$3/4$}")).toBeInTheDocument(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
EDIT: Yes, looks good
For these, I think it would be
expect(screen.getByText("1/2")).toBeInTheDocument(); | ||
expect(screen.getByText("3/4")).toBeInTheDocument(); | ||
expect(screen.getByText("\\text{$1/2$}")).toBeInTheDocument(); | ||
expect(screen.getByText("\\text{$3/4$}")).toBeInTheDocument(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
$\frac{1}{2}$
renders correctly when I test it out in storybook, so the functionality updates you made look right
The parent pull-request (#1874) has been merged into |
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @khanacademy/[email protected] ### Patch Changes - [#1896](#1896) [`56fd44806`](56fd448) Thanks [@catandthemachines](https://github.com/catandthemachines)! - Fixing intersecting polygon sides issues for unlimited sided polygon. - [#1894](#1894) [`01edfb8be`](01edfb8) Thanks [@nishasy](https://github.com/nishasy)! - [SR] Add comment about making translation tickets - [#1875](#1875) [`28cae9d2a`](28cae9d) Thanks [@nishasy](https://github.com/nishasy)! - [Locked Labels] Count lone unescaped \\$ as regular dollar signs in TeX ## @khanacademy/[email protected] ### Patch Changes - [#1874](#1874) [`42d25c2d2`](42d25c2) Thanks [@nishasy](https://github.com/nishasy)! - [Locked Figure Aria] Fix \\$ edge cases for spoken math aria labels - [#1912](#1912) [`44e78a95d`](44e78a9) Thanks [@nishasy](https://github.com/nishasy)! - [Interactive Graph Editor] Stop cursor jumps in number input fields - [#1875](#1875) [`28cae9d2a`](28cae9d) Thanks [@nishasy](https://github.com/nishasy)! - [Locked Labels] Count lone unescaped \\$ as regular dollar signs in TeX - Updated dependencies \[[`56fd44806`](56fd448), [`01edfb8be`](01edfb8), [`28cae9d2a`](28cae9d)]: - @khanacademy/[email protected]
## Summary: Right now, if you type "$1" into the locked label input, it shows up as "undefined1" in the graph TeX. - Update the parsed content to count a lone unescaped $ as a regular $. Issue: https://khanacademy.atlassian.net/browse/LEMS-2591 ## Test plan: `yarn jest packages/perseus/src/widgets/interactive-graphs/utils.test.ts` Storybook - Go to http://localhost:6006/?path=/story/perseuseditor-widgets-interactive-graph--interactive-graph-with-aria-label - Create a new locked figure - Add a label "$1" and confirm it shows up as "$1" in the preview - Play around with different escaped and unescaped dollar signs and confirm they work as expected ## Demo https://github.com/user-attachments/assets/9f826f2d-9b5c-405e-b5cc-fc20be438dcb Author: nishasy Reviewers: benchristel, nishasy, anakaren-rojas, catandthemachines Required Reviewers: Approved By: benchristel, anakaren-rojas, catandthemachines Checks: ✅ Publish npm snapshot (ubuntu-latest, 20.x), ✅ Cypress (ubuntu-latest, 20.x), ✅ Check builds for changes in size (ubuntu-latest, 20.x), ✅ Lint, Typecheck, Format, and Test (ubuntu-latest, 20.x), ✅ Publish Storybook to Chromatic (ubuntu-latest, 20.x), ✅ Check for .changeset entries for all changed files (ubuntu-latest, 20.x), ✅ gerald Pull Request URL: #1875
Summary:
Right now, if you type "$1" into the locked label input, it
shows up as "undefined1" in the graph TeX.
as a regular $.
Issue: https://khanacademy.atlassian.net/browse/LEMS-2591
Test plan:
yarn jest packages/perseus/src/widgets/interactive-graphs/utils.test.ts
Storybook
and confirm they work as expected
Demo
Screen.Recording.2024-11-15.at.5.46.21.PM.mov