-
Notifications
You must be signed in to change notification settings - Fork 124
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
Change scroll top button to component #2170
Change scroll top button to component #2170
Conversation
…mponentifyBackToTopButton
…mponentifyBackToTopButton
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.
Thank you for the work @yucheng11122017 ! This is a nice component to have 🎉 The fading in/out is a nice touch!
I'm not sure if I missed it (from all of the changes in the test files oops) - are there tests for this new component?
…mponentifyBackToTopButton
Hi @jovyntls, thank you for your comments! I have updated them accordingly. I also added test cases for the component. |
Thanks for looking out for that test case! Hmm might be tricky, will does combining these work?:
|
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.
Thanks for the tests @yucheng11122017 ! Just a few more nits
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.
May I confirm if this means the scroll-top button is no longer a default (i.e. included when someone does markbind init?)
@tlylt I added the scroll top button to the default layout in packages/core/template/default/_markbind/layouts/default.md so when markbind init is called, it will still be included. |
Can we include a line explaining how this can optionally be removed in the docs? Also, this is indeed breaking change as mentioned in the original issue, will pause the merge until we want to move on to v5 |
Can we also include all details in the proposed commit message? Will need these in the release draft for this major change. |
Hi @yucheng11122017, thank you for the work on this. I think we are ready to merge this soon if you could help resolve the conflicts. |
https://se-education.org/guides/conventions/git.html @yucheng11122017 can you kindly help to adjust the commit message format according to the guide, please? Main reason why I think the format is superior is not just for the sake of consistency, but also because it highlights the rationale behind a change, which is crucial context for future devs. |
…mponentifyBackToTopButton # Conflicts: # packages/cli/test/functional/test_site/expected/bugs/index.page-vue-render.js # packages/cli/test/functional/test_site/expected/index.page-vue-render.js # packages/cli/test/functional/test_site/expected/sub_site/index.page-vue-render.js # packages/cli/test/functional/test_site/expected/sub_site/nested_sub_site/index.page-vue-render.js # packages/cli/test/functional/test_site/expected/sub_site/nested_sub_site/testNunjucksPathResolving.page-vue-render.js # packages/cli/test/functional/test_site/expected/sub_site/testNunjucksPathResolving.page-vue-render.js # packages/cli/test/functional/test_site/expected/testAnchorGeneration.page-vue-render.js # packages/cli/test/functional/test_site/expected/testAnnotate.page-vue-render.js # packages/cli/test/functional/test_site/expected/testAntiFOUCStyles.page-vue-render.js # packages/cli/test/functional/test_site/expected/testCenterText.page-vue-render.js # packages/cli/test/functional/test_site/expected/testCodeBlocks.page-vue-render.js # packages/cli/test/functional/test_site/expected/testDates.page-vue-render.js # packages/cli/test/functional/test_site/expected/testEmptyFrontmatter.page-vue-render.js # packages/cli/test/functional/test_site/expected/testExternalScripts.page-vue-render.js # packages/cli/test/functional/test_site/expected/testHr.page-vue-render.js # packages/cli/test/functional/test_site/expected/testImages.page-vue-render.js # packages/cli/test/functional/test_site/expected/testIncludeBoilerplate.page-vue-render.js # packages/cli/test/functional/test_site/expected/testIncludeMultipleModals.page-vue-render.js # packages/cli/test/functional/test_site/expected/testIncludePluginsRendered.page-vue-render.js # packages/cli/test/functional/test_site/expected/testLayouts.page-vue-render.js # packages/cli/test/functional/test_site/expected/testLayoutsOverride.page-vue-render.js # packages/cli/test/functional/test_site/expected/testLinks.page-vue-render.js # packages/cli/test/functional/test_site/expected/testMath.page-vue-render.js # packages/cli/test/functional/test_site/expected/testModals.page-vue-render.js # packages/cli/test/functional/test_site/expected/testNunjucksPathResolving.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPageNav.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPageNavPrint.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPageNavTarget.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPageNavWithOnlyTitle.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPageNavWithoutTitleAndNavHeadings.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPanelMarkdownParsing.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPanels.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPanelsClosingTransition.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPlantUML.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPopoverTrigger.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPopovers.page-vue-render.js # packages/cli/test/functional/test_site/expected/testThumbnails.page-vue-render.js # packages/cli/test/functional/test_site/expected/testTooltipSpacing.page-vue-render.js # packages/cli/test/functional/test_site/expected/testTree.page-vue-render.js # packages/cli/test/functional/test_site/expected/testVariableContainsInclude.page-vue-render.js # packages/cli/test/functional/test_site/expected/test_md_fragment.page-vue-render.js # packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic1.page-vue-render.js # packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic2.page-vue-render.js # packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic3a.page-vue-render.js # packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic3b.page-vue-render.js # packages/cli/test/functional/test_site_templates/test_default/expected/index.page-vue-render.js
Tips on how to fix the conflicts:
|
This reverts commit e93a5c3.
…mponentifyBackToTopButton # Conflicts: # packages/cli/test/functional/test_site/expected/bugs/index.page-vue-render.js # packages/cli/test/functional/test_site/expected/index.page-vue-render.js # packages/cli/test/functional/test_site/expected/sub_site/index.page-vue-render.js # packages/cli/test/functional/test_site/expected/sub_site/nested_sub_site/index.page-vue-render.js # packages/cli/test/functional/test_site/expected/sub_site/nested_sub_site/testNunjucksPathResolving.page-vue-render.js # packages/cli/test/functional/test_site/expected/sub_site/testNunjucksPathResolving.page-vue-render.js # packages/cli/test/functional/test_site/expected/testAnchorGeneration.page-vue-render.js # packages/cli/test/functional/test_site/expected/testAnnotate.page-vue-render.js # packages/cli/test/functional/test_site/expected/testAntiFOUCStyles.page-vue-render.js # packages/cli/test/functional/test_site/expected/testCenterText.page-vue-render.js # packages/cli/test/functional/test_site/expected/testCodeBlocks.page-vue-render.js # packages/cli/test/functional/test_site/expected/testDates.page-vue-render.js # packages/cli/test/functional/test_site/expected/testEmptyFrontmatter.page-vue-render.js # packages/cli/test/functional/test_site/expected/testExternalScripts.page-vue-render.js # packages/cli/test/functional/test_site/expected/testHr.page-vue-render.js # packages/cli/test/functional/test_site/expected/testImages.page-vue-render.js # packages/cli/test/functional/test_site/expected/testIncludeBoilerplate.page-vue-render.js # packages/cli/test/functional/test_site/expected/testIncludeMultipleModals.page-vue-render.js # packages/cli/test/functional/test_site/expected/testIncludePluginsRendered.page-vue-render.js # packages/cli/test/functional/test_site/expected/testLayouts.page-vue-render.js # packages/cli/test/functional/test_site/expected/testLayoutsOverride.page-vue-render.js # packages/cli/test/functional/test_site/expected/testLinks.page-vue-render.js # packages/cli/test/functional/test_site/expected/testMath.page-vue-render.js # packages/cli/test/functional/test_site/expected/testModals.page-vue-render.js # packages/cli/test/functional/test_site/expected/testNunjucksPathResolving.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPageNav.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPageNavPrint.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPageNavTarget.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPageNavWithOnlyTitle.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPageNavWithoutTitleAndNavHeadings.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPanelMarkdownParsing.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPanels.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPanelsClosingTransition.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPlantUML.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPopoverTrigger.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPopovers.page-vue-render.js # packages/cli/test/functional/test_site/expected/testThumbnails.page-vue-render.js # packages/cli/test/functional/test_site/expected/testTooltipSpacing.page-vue-render.js # packages/cli/test/functional/test_site/expected/testTree.page-vue-render.js # packages/cli/test/functional/test_site/expected/testVariableContainsInclude.page-vue-render.js # packages/cli/test/functional/test_site/expected/test_md_fragment.page-vue-render.js # packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic1.page-vue-render.js # packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic2.page-vue-render.js # packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic3a.page-vue-render.js # packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic3b.page-vue-render.js # packages/cli/test/functional/test_site_templates/test_default/expected/index.page-vue-render.js
…mponentifyBackToTopButton # Conflicts: # packages/cli/test/functional/test_site/expected/bugs/index.page-vue-render.js # packages/cli/test/functional/test_site/expected/index.page-vue-render.js # packages/cli/test/functional/test_site/expected/sub_site/index.page-vue-render.js # packages/cli/test/functional/test_site/expected/sub_site/nested_sub_site/index.page-vue-render.js # packages/cli/test/functional/test_site/expected/sub_site/nested_sub_site/testNunjucksPathResolving.page-vue-render.js # packages/cli/test/functional/test_site/expected/sub_site/testNunjucksPathResolving.page-vue-render.js # packages/cli/test/functional/test_site/expected/testAnchorGeneration.page-vue-render.js # packages/cli/test/functional/test_site/expected/testAnnotate.page-vue-render.js # packages/cli/test/functional/test_site/expected/testAntiFOUCStyles.page-vue-render.js # packages/cli/test/functional/test_site/expected/testCenterText.page-vue-render.js # packages/cli/test/functional/test_site/expected/testCodeBlocks.page-vue-render.js # packages/cli/test/functional/test_site/expected/testDates.page-vue-render.js # packages/cli/test/functional/test_site/expected/testEmptyFrontmatter.page-vue-render.js # packages/cli/test/functional/test_site/expected/testExternalScripts.page-vue-render.js # packages/cli/test/functional/test_site/expected/testHr.page-vue-render.js # packages/cli/test/functional/test_site/expected/testImages.page-vue-render.js # packages/cli/test/functional/test_site/expected/testIncludeBoilerplate.page-vue-render.js # packages/cli/test/functional/test_site/expected/testIncludeMultipleModals.page-vue-render.js # packages/cli/test/functional/test_site/expected/testIncludePluginsRendered.page-vue-render.js # packages/cli/test/functional/test_site/expected/testLayouts.page-vue-render.js # packages/cli/test/functional/test_site/expected/testLayoutsOverride.page-vue-render.js # packages/cli/test/functional/test_site/expected/testLinks.page-vue-render.js # packages/cli/test/functional/test_site/expected/testMath.page-vue-render.js # packages/cli/test/functional/test_site/expected/testModals.page-vue-render.js # packages/cli/test/functional/test_site/expected/testNunjucksPathResolving.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPageNav.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPageNavPrint.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPageNavTarget.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPageNavWithOnlyTitle.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPageNavWithoutTitleAndNavHeadings.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPanelMarkdownParsing.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPanels.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPanelsClosingTransition.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPlantUML.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPopoverTrigger.page-vue-render.js # packages/cli/test/functional/test_site/expected/testPopovers.page-vue-render.js # packages/cli/test/functional/test_site/expected/testThumbnails.page-vue-render.js # packages/cli/test/functional/test_site/expected/testTooltipSpacing.page-vue-render.js # packages/cli/test/functional/test_site/expected/testTree.page-vue-render.js # packages/cli/test/functional/test_site/expected/testVariableContainsInclude.page-vue-render.js # packages/cli/test/functional/test_site/expected/test_md_fragment.page-vue-render.js # packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic1.page-vue-render.js # packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic2.page-vue-render.js # packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic3a.page-vue-render.js # packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic3b.page-vue-render.js # packages/cli/test/functional/test_site_templates/test_default/expected/index.page-vue-render.js
Thank you for the advice @tlylt! I managed to solve the merge conflicts |
Change scroll top button to component It is currently added to all pages, cannot be disabled, and does not support styling or positioning. This limits the usability and customization for users. Changing the scroll top button to a component allows users to not include it in their layout if they want and allows them to style it by passing attributes to it. Let's make - scroll top button no longer compulsory and to be added to layout file if users want it - scroll top button added to default file when project is initialized - support different icons for button - support positioning for scroll top button - support customized icon size and color
Hi @tlylt, I was thinking about adding these instructions about solving merge conflicts to the DG which talks about updating functional test. Might be helpful for other devs! |
Sounds good 👍 |
What is the purpose of this pull request?
Fixes #2081
Overview of changes:
Change scroll to top button to be a Vue component. This is to be inserted into layout file.
This allow users to
Anything you'd like to highlight/discuss:
Testing instructions:
Insert
<scroll-top-button></scroll-top-button>
to layout file.Proposed commit message: (wrap lines at 72 characters)
Change scroll top button to component
It is currently added to all pages, cannot be disabled, and does not support styling or positioning.
This limits the usability and customization for users.
Changing the scroll top button to a component allows users to not include it in their layout if they want and allows them to style it by passing attributes to it.
Let's make
Checklist: ☑️
Breaking change descriptions:
Scroll to Top button is changed to a component to allow for more flexibility in its usage. This includes allowing users to
It is no longer automatically added to pages on the website. To add the Scroll to Top Button to a website, add the component to the layout page
This button is still added to the default layout when users initialise a Markbind project.