Closed ned-deily closed 1 year ago
The rendered changelog.html files produced "make html" have inconsistent spacing between items. Usually, the first changelog topic section (e.g. Security) starts with no blank lines between items but occasionally some subsequent sections will render with a blank link between items; this seems to be often true for the Library section, but not always. This is visible across the recent 3.x branches; here's an example with the stable 3.5 docs:
Library section has blank line separator: https://docs.python.org/3.5/whatsnew/changelog.html#id5
Library section has no blank separators: https://docs.python.org/3.5/whatsnew/changelog.html#id11
See also discussion at https://github.com/python/core-workflow/issues/209
@mdk, Would you have time to take a look at this? Thanks!
It's from docutils (see details below), it can be fixed in pydoctheme.css by adding something like:
li p { margin-bottom: 0; }
Would look like: https://mdk.fr/list-before.png → https://mdk.fr/list-after.png is it better? (If it's better I still have to ensure this rule won't break something else in another place.)
For more information I quote here the docstring of class HTMLTranslator
:
The html4css1 writer has been optimized to produce visually compact lists (less vertical whitespace). HTML's mixed content models allow list items to contain "\<li>\<p>body elements\</p>\</li>" or "\<li>just text\</li>" or even "\<li>text\<p>and body elements\</p>combined\</li>", each with different effects. It would be best to stick with strict body elements in list items, but they affect vertical spacing in older browsers (although they really shouldn't). The html5_polyglot writer solves this using CSS2.
Here is an outline of the optimization:
Check for and omit \<p> tags in "simple" lists: list items contain either a single paragraph, a nested simple list, or a paragraph followed by a nested simple list. This means that this list can be compact:
But this list cannot be compact:
Item 1.
This second paragraph forces space between list items.
Item 2.
In non-list contexts, omit \<p> tags on a paragraph if that paragraph is the only child of its parent (footnotes & citations are allowed a label first).
Regardless of the above, in definitions, table cells, field bodies, option descriptions, and list items, mark the first child with 'class="first"' and the last child with 'class="last"'. The stylesheet sets the margins (top & bottom respectively) to 0 for these elements.
An intermediate fix would be to remove only bottom of first paragraphs:
li p.first { margin-bottom: 0; }
It looks like: https://mdk.fr/list-intermediate.png
Thank you for looking into it! In the example you chose, I think the first step would be to trim the two two-paragraph news items to be only one paragraph each; in general, news items should only be a few sentences at most. With that change, I think the choice is pretty clear (to me, at least:): I prefer without the blank lines. And the issue is that today the changelogs have a "random" mixture of both. So, if news items followed that rule, would the css change still be necessary?
So, if news items followed that rule, would the css change still be necessary?
The CSS change would not be necessary, so yes the issue is "Don't mix paragraphs in changelogs".
Maybe we can add an option to blurb merge to only keep the first paragraph, to fix every list in a single shot, then better document the "a single paragraph per news entry"?
Would it be OK to edit old Misc/NEWS.d/ to fix it in the past?
Since 'News entry is one paragraph without subject line' is a change from older policy, I suggest posting a reminder to committers list and rechecking devguide.
terry: Make sense, I'll also try to add the reminder in blurb if I find an appropriate place and wording.
Hi Ned, what do you think about https://github.com/python/cpython/pull/8154?
I feel this is a bit a huge change in NEWS entry writing policy which make them less readable (in text files). Is it really worth it to change the policy to single-paragraph only just for an HTML rendering issue?
Or should we silently join/trim those paragraphs only in blurb merge, maybe with an option like "--trim-paragraphs" while building the HTML documentations?
New changeset 137be34180a20dba53948d126b961069f299f153 by Julien Palard in branch 'master': bpo-32523: Simplifying news entries with multiple paragraphs. (GH-8154) https://github.com/python/cpython/commit/137be34180a20dba53948d126b961069f299f153
This still happen, but it's hard to tell if it'll happen from blurb, as when it's two paragraphs consisting of a text and a list it does not happen, sphinx just put the list as a sublist and it's clean.
I don't want to tell people stop using list, it's very readable.
Also sometimes having a paragraph, a list, then one or two more paragraphs looks usefull, see examples in 1.
So I'm no longer trying to fix it in blurb.
The spacing seems reasonable now.
A
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields: ```python assignee = None closed_at = None created_at =
labels = ['3.7', '3.8', 'docs']
title = 'inconsistent spacing in changelog.html'
updated_at =
user = 'https://github.com/ned-deily'
```
bugs.python.org fields:
```python
activity =
actor = 'mdk'
assignee = 'docs@python'
closed = False
closed_date = None
closer = None
components = ['Documentation']
creation =
creator = 'ned.deily'
dependencies = []
files = []
hgrepos = []
issue_num = 32523
keywords = ['patch']
message_count = 12.0
messages = ['309711', '309713', '317911', '318709', '318711', '318713', '318724', '321228', '321229', '321351', '341996', '402963']
nosy_count = 4.0
nosy_names = ['terry.reedy', 'ned.deily', 'docs@python', 'mdk']
pr_nums = ['8154']
priority = 'normal'
resolution = None
stage = None
status = 'open'
superseder = None
type = None
url = 'https://bugs.python.org/issue32523'
versions = ['Python 3.6', 'Python 3.7', 'Python 3.8']
```