-
-
Notifications
You must be signed in to change notification settings - Fork 32.5k
Docs: a start on an 'improve this page' feature #136246
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
base: main
Are you sure you want to change the base?
Conversation
b8f50bc
to
673e347
Compare
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 looks great. I have some little thoughts.
Also, this should probably get an issue and blurb?
Doc/improvepage.rst
Outdated
|
||
- You can start a discussion about the page on the Python discussion forum. | ||
This link will start a pre-populated topic: | ||
`Question about "PAGETITLE" <https://discuss.python.org/new-topic?category=documentation&title=Question+about+%22PAGETITLE%22&body=About+the+page+at+PAGEURL%3A>`_. |
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.
I think we should use the path here, as otherwise it can be ambiguous, e.g. there are several Introduction in the docs.
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.
Try the live version in the preview build. The body gets populated with the URL.
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.
I see, the issue one however does not work for me, it sends me to the choose a template page. I also think good titles would be nice for triage/finding purposes.
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.
It populates an issue for me, what are other people seeing?
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.
I mean, when one opens an issue for a page like so where there are several pages with the same title, the issue title is then very ambiguous (e.g. in the above case, just „Introduction”).
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.
The title will be simple but the body contains the URL, which is will be unambiguous. If the title is "Question about 'Introduction'" and then the body contains a link like https://cpython-previews--136246.org.readthedocs.build/en/136246/c-api/intro.html
I think people will be able to discuss the correct page.
Doc/improvepage.rst
Outdated
`Docs: problem with "PAGETITLE" <https://github.com/python/cpython/issues/new?title=Docs%3A+problem+with+%22PAGETITLE%22&labels=docs&body=The+page+at+PAGEURL+has+a+problem%3A>`_. | ||
|
||
- You can `edit the page on GitHub <https://github.com/python/cpython/blob/main/Doc/PAGESOURCE?plain=1>`_ | ||
and open a pull request, though you will need to have signed a contributor agreement before it can be merged. |
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.
Just a little note, I think mentioning the contribution agreement here may scare away people, as it does not explain much about it, and does not pop up when they edit the page.
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.
Yes, I was torn about putting it here, we can drop it if needed.
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.
I changed it to "open a pull request and begin the contribution process." to at least hint at the idea that there will be steps needed.
I like the "This link will start a pre-populated topic:" link, but I wonder whether "less is more" applies here. In particular, I mean if the "Improve this page" link directly goes to the pre-populated Discourse form, would that more directly get users to where they can make a suggestion? If so, would it be better for "Improve this page" to link straight to Discourse? |
I'm not sure Discourse is the right place for everyone. Some people will have edits, some will have questions, some will want to discuss ideas for improvement. I appreciate the desire to make the path as well-greased as possible. If we do decide to link straight to Discourse, we'll need to change the link from "Improve this page", because Discourse is not the place to do that directly. |
<li> | ||
<a href="https://github.com/python/cpython/blob/main/Doc/{{ sourcename|replace('.rst.txt', '.rst') }}" | ||
<a href="https://github.com/python/cpython/blob/main/Doc/{{ sourcename|replace('.rst.txt', '.rst?plain=1') }}" |
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.
<a href="https://github.com/python/cpython/blob/main/Doc/{{ sourcename|replace('.rst.txt', '.rst?plain=1') }}" | |
<a href="https://github.com/python/cpython/blob/main/Doc/{{ pagename }}.rst?plain=1" |
Simplification suggestion; reference
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.
Done.
Doc/improvepage.rst
Outdated
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.
Let's rename to improve-page.rst
(similar to other files)
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.
Or e.g. suggest-improvement.rst
?
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.
improve-page.rst
Doc/improvepage.rst
Outdated
You were reading "PAGETITLE" at `<PAGEURL>`_. The source for that page is on | ||
`GitHub <https://github.com/python/cpython/blob/main/Doc/PAGESOURCE?plain=1>`_. |
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.
If I do something like:
- Go to the tutorial https://cpython-previews--136246.org.readthedocs.build/en/136246/tutorial/index.html
- Click "Improve this page"
- It says: 'You were reading “The Python Tutorial” at https://docs.python.org/3/tutorial/index.html. The source for that page is on GitHub.'
- (This is fine)
- Click "Improve this page" again while looking at "Improve a documentation page"
- It says: 'You were reading “Improve a documentation page” at https://docs.python.org/3/tutorial/index.html. The source for that page is on GitHub.'
- The page title has been updated, but the links are still for the tutorial. The other titles/links on the page are also mixed.
Should we:
- Fix the links for the "Improve a documentation page"?
- Fix the titles so it still refers to the tutorial?
- Remove "Improve this page" from this page?
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.
I've fixed this.
<div role="note" aria-label="source link"> | ||
<h3>{{ _('This page') }}</h3> | ||
<ul class="this-page-menu"> | ||
<li><a href="{{ pathto('bugs') }}">{% trans %}Report a bug{% endtrans %}</a></li> | ||
<li><a class="improvepage" href="{{ pathto('improvepage') }}?pageurl=https://docs.python.org/3/{{ pagename }}.html&pagesource={{ sourcename|replace('.rst.txt', '.rst') }}">{% trans %}Improve this page{% endtrans %}</a></li> |
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 hardcodes /3/
.
What happens if I'm reading the 3.14 docs? Or the Spanish translation?
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.
I've fixed this to use the actual full URL of the original page.
Doc/improvepage.rst
Outdated
<script> | ||
document.addEventListener('DOMContentLoaded', () => { | ||
const params = new URLSearchParams(window.location.search); | ||
document.body.innerHTML = document.body.innerHTML | ||
.replace(/PAGETITLE/g, params.get('pagetitle')) | ||
.replace(/PAGEURL/g, params.get('pageurl')) | ||
.replace(/PAGESOURCE/g, params.get('pagesource')); | ||
}); | ||
</script> |
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.
Can we avoid inline JS? Ideally both here and the <script>
in the template would be moved to .js
files.
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.
There are already two instances of inline script, and tbh, for small one-off chunks like this it might be more understandable to have them on the page where they are used. But in any case, would it be OK to land this feature first and then decide on centralization?
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.
I'd like to see if we can make this work as far as reasonably practical without JS -- we currently don't require users to have JS enabled to use the documentation.
On Hugo's point on translations, we could add another .. only::
block for non-English containing a brief description of changes to the translation vs source content.
A
For reference, the current practice for bugs.po, per PEP 545, is to stick it in somewhere at the end of an existing message. I’m not a Sphinx expert but I don’t see how it would work, from my experience it can only exclude builders. If you could please share some Sphinx magic I’d love to open a PR for bugs. |
I'm happy to try another approach, but I'm not sure what we can do. The goal is for the Improve page to know what page the user was reading. Do you have another way? |
- use the actual page URL - tighten the wording
Maybe I don't understand the translation issue. What is the |
At the Docs WG meeting, we talked about smoothing the path for people to suggest improvements to the docs. This is a start. It uses more JavaScript than we are used to.
I haven't done anything to trim down the "Report a bug" page. Ideas welcome.
📚 Documentation preview 📚: https://cpython-previews--136246.org.readthedocs.build/