mirror of
https://github.com/python/cpython.git
synced 2026-05-06 04:37:33 -04:00
Docs: an "improve this page" feature (#144939)
* Docs: a start on an 'improve this page' feature * pr feedback: simplify the link, and don't scare people with the cla * pr feedback answered - use the actual page URL - tighten the wording * fix the improve link on the improve page * news item * Update Doc/improve-page.rst Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> * fix whitespace * A nojs version of the page * comments to help people keep the two pages in sync * protect against XSS * use template for issues from the nojs page * use the template from the JS page as well * give the docs issue template a fillable description field * ugh, getting sloppy * remove more sloppiness --------- Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
This commit is contained in:
@@ -8,8 +8,9 @@ body:
|
||||
> [!NOTE]
|
||||
> Trivial changes (for example typos) don’t require an issue before opening a PR.
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: "Documentation"
|
||||
description: "A clear and concise description of the issue."
|
||||
description: "A clear and concise description of the issue. Include a link to the page."
|
||||
validations:
|
||||
required: true
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
:orphan:
|
||||
|
||||
****************************
|
||||
Improve a documentation page
|
||||
****************************
|
||||
|
||||
.. This is the no-javascript version of this page. The one most people
|
||||
will see (with JavaScript enabled) is improve-page.rst. If you edit
|
||||
this page, please also edit that one, and vice versa.
|
||||
|
||||
.. only:: html and not epub
|
||||
|
||||
We are always interested to hear ideas about improvements to the documentation.
|
||||
|
||||
.. only:: translation
|
||||
|
||||
If the bug or suggested improvement concerns the translation of this
|
||||
documentation, open an issue or edit the page in
|
||||
`translation's repository <TRANSLATION_REPO_>`_ instead.
|
||||
|
||||
You have a few ways to ask questions or suggest changes:
|
||||
|
||||
- You can start a discussion about the page on the Python discussion forum.
|
||||
This link will start a topic in the Documentation category:
|
||||
`New Documentation topic <https://discuss.python.org/new-topic?category=documentation>`_.
|
||||
|
||||
- You can open an issue on the Python GitHub issue tracker. This link will
|
||||
create a new issue with the "docs" label:
|
||||
`New docs issue <https://github.com/python/cpython/issues/new?template=documentation.yml>`_.
|
||||
@@ -0,0 +1,65 @@
|
||||
:orphan:
|
||||
|
||||
****************************
|
||||
Improve a documentation page
|
||||
****************************
|
||||
|
||||
.. This is the JavaScript-enabled version of this page. Another version
|
||||
(for those with JavaScript disabled) is improve-page-nojs.rst. If you
|
||||
edit this page, please also edit that one, and vice versa.
|
||||
|
||||
.. only:: html and not epub
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<script>
|
||||
function applyReplacements(text, params) {
|
||||
return text
|
||||
.replace(/PAGETITLE/g, params.get('pagetitle'))
|
||||
.replace(/PAGEURL/g, params.get('pageurl'))
|
||||
.replace(/PAGESOURCE/g, params.get('pagesource'));
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const params = new URLSearchParams(window.location.search);
|
||||
const walker = document.createTreeWalker(
|
||||
document.body,
|
||||
NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT,
|
||||
null
|
||||
);
|
||||
|
||||
while (walker.nextNode()) {
|
||||
const node = walker.currentNode;
|
||||
|
||||
if (node.nodeType === Node.TEXT_NODE) {
|
||||
node.textContent = applyReplacements(node.textContent, params)
|
||||
} else if (node.nodeName === 'A' && node.href) {
|
||||
node.setAttribute('href', applyReplacements(node.getAttribute('href'), params));
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
We are always interested to hear ideas about improvements to the documentation.
|
||||
|
||||
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>`_.
|
||||
|
||||
.. only:: translation
|
||||
|
||||
If the bug or suggested improvement concerns the translation of this
|
||||
documentation, open an issue or edit the page in
|
||||
`translation's repository <TRANSLATION_REPO_>`_ instead.
|
||||
|
||||
You have a few ways to ask questions or suggest changes:
|
||||
|
||||
- You can start a discussion about the page on the Python discussion forum.
|
||||
This link will start a pre-populated topic:
|
||||
`Question about page "PAGETITLE" <https://discuss.python.org/new-topic?category=documentation&title=Question+about+page+%22PAGETITLE%22&body=About+the+page+at+PAGEURL%3A>`_.
|
||||
|
||||
- You can open an issue on the Python GitHub issue tracker. This link will
|
||||
create a new pre-populated issue:
|
||||
`Docs: problem with page "PAGETITLE" <https://github.com/python/cpython/issues/new?template=documentation.yml&title=Docs%3A+problem+with+page+%22PAGETITLE%22&description=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>`_
|
||||
to open a pull request and begin the contribution process.
|
||||
@@ -1,10 +1,25 @@
|
||||
{%- if show_source and has_source and sourcename %}
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const title = document.querySelector('meta[property="og:title"]').content;
|
||||
const elements = document.querySelectorAll('.improvepage');
|
||||
const pageurl = window.location.href.split('?')[0];
|
||||
elements.forEach(element => {
|
||||
const url = new URL(element.href.split('?')[0].replace("-nojs", ""));
|
||||
url.searchParams.set('pagetitle', title);
|
||||
url.searchParams.set('pageurl', pageurl);
|
||||
url.searchParams.set('pagesource', "{{ pagename }}.rst");
|
||||
element.href = url.toString();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<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('improve-page-nojs') }}">{% trans %}Improve this page{% endtrans %}</a></li>
|
||||
<li>
|
||||
<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"
|
||||
rel="nofollow">{{ _('Show source') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
A new "Improve this page" link is available in the left-hand sidebar of the
|
||||
docs, offering links to create GitHub issues, discussion forum posts, or
|
||||
pull requests.
|
||||
Reference in New Issue
Block a user