Proof of Concept: Only create a target for object descriptions#9675
Conversation
added 2 commits
September 25, 2021 16:04
Add option :hidden: to ObjectDescription. Currently, this option has no effect except being stored as attribute in the resulting node.
Do not produce any output only a target node if option :hidden: is given. In this case all nodes representing this ObjectDescription are replaced by a single target where the target gets assigned all ids of the replaced nodes.
added 3 commits
September 26, 2021 09:09
Record the source information (class attributes source and line) when replacing an object description node with a target node.
The collect_ids() function uses the its second parameter ``ids: List[str]`` as in- and output parameter and always returns None. Rewrite the function to become pure and side effect free: return the list of ids as the return value not as an output parameter.
An index directive creates a index node followed by a target node. Two
consecutive index directives::
.. index:: first
.. index:: second
create index, target, index, target, i.e. a mixture. The interspersed
index nodes prevent other transformations, e.g. PropagateTargets to
properly work on the target nodes.
Apply a transformation which reorders mixed and consecutive index and
target nodes such that first all index nodes are before all target
nodes:
Given the following document as input:
<document>
<target ids="id1" ...>
<index entries="...1...">
<target ids="id2" ...>
<target ids="id3" ...>
<index entries="...2...">
<target ids="id4" ...>
The transformed result will be:
<document>
<index entries="...1...">
<index entries="...2...">
<target ids="id1" ...>
<target ids="id2" ...>
<target ids="id3" ...>
<target ids="id4" ...>
Member
|
Closing explicit PoC PR as there's been no discussion in six months. A |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Subject: Only create a target for object descriptions
Feature or Bugfix
Purpose
Adding feature for #9662 (ability to only create a target for a domain description).
Thanks to @jakobandersen for the inspiration.
Detail
This is a proof of concept for implementing the replacing in the run() method.
[WIP] 'hidden' option for domain directives #9671 is an alternative implementation using PostTransform
The difference between the two is that targets in the PostTransform are not merged with the following element/node, while with the run() method they are.
As a consequence the targets for headings are in the section of the heading and not in the previous section.
Does only cover domain directives deriving from ObjectDescription other directives are (not yet) covered, e.g.
.. py:module::. (However.. py:moduledoes produce only a target and no content anyway, so is not a good example here.)This is still work in progress and needs proper documentation and testing.
Relates