Skip to content

Conversation

@tomasr8
Copy link
Member

@tomasr8tomasr8 commented Apr 12, 2025

I kept the style similar to the previous button. For now it's text but maybe we could use an icon instead?
Note that unlike the previous button, I added the copy button to all code samples, not only the interactive ones.

I'd like to know what you think!

Before:
image

After:
image
image

Single line:
image
image

copybtn.webm

📚 Documentation preview 📚: https://python-docs-theme-previews--231.org.readthedocs.build/

@tomasr8
Copy link
MemberAuthor

The docsbuild CI seems broken, could it be related to this change: python/docsbuild-scripts@2113fd7 ?

@hugovk
Copy link
Member

Yep, fixed here in #232. I've updated the branch from main.

Copy link
Member

@hugovkhugovk left a comment

Choose a reason for hiding this comment

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

Thanks for the PR!

It's working well on a quick test on Chrome, Safari, Firefox and Opera on macOS, and Chrome on Android.

For now it's text but maybe we could use an icon instead?

An advantage of text over icons is it's more accessible and less open to misinterpretation and different cultural associations.

However, GitHub and Discourse use a double-square icon, so this may be familiar:

a=1b=2asserta<b
image

https://discuss.python.org/t/pep-781-make-type-checking-a-built-in-constant/85728/1

And when clicked, GitHub shows a tick and "Copied", Discourse shows "copied!". They also use aria-labels for accessibility.

Discord is similar and shows a tick when clicked:

image

But I'm fine with this text-only version, and an icon could also be a followup if we want that.

#154 (comment):

I would suggest to use navigator.clipboard which has been supported by all major browsers for >5 years at this point.

Yes, that feels long enough, it has ~95% support and we don't need to support copy for older browsers. But what happens on a browser without support? As long as we don't break things completely.

@tomasr8
Copy link
MemberAuthor

Looks like there's an issue with the docs workflow:

ERROR: Cannot install python-docs-theme==2025.2 and sphinx==3.4.3 because these package versions have conflicting dependencies. 

@hugovk
Copy link
Member

Also happening on main:

https://github.com/python/python-docs-theme/actions/runs/14452159103/job/40527148242#step:6:32

Not a new failure, but it only started failing the build recently! Here's the previous main build with an error but the CI is green 😅

https://github.com/python/python-docs-theme/actions/runs/14428653230/job/40460802134#step:6:32

Anyway, don't worry about it for this PR :)

@tomasr8
Copy link
MemberAuthor

Anyway, don't worry about it for this PR :)

Alright, just wanted to point it out in case you haven't noticed (unlikely, I know 😄 )

Anyway, I updated the PR based on your feedback - I added proper error handling and feature detection for clipboard.writeText.

Copy link
Member

@hugovkhugovk left a comment

Choose a reason for hiding this comment

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

Thanks!

@python-cla-bot
Copy link

python-cla-botbot commented Apr 18, 2025

All commit authors signed the Contributor License Agreement.

CLA signed

@hugovkhugovk merged commit d528dbc into python:mainApr 18, 2025
12 of 14 checks passed
@tomasr8tomasr8 deleted the copybtn branch April 18, 2025 10:14
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@tomasr8@hugovk