Create a ``target`` node that marks a configuration field.

    Internally, this also adds to the ``lsst_configfields`` attribute of the
    environment that is consumed by `documenteer.sphinxext.lssttasks.
    crossrefs.process_pending_configfield_xref_nodes`.

    See also
    --------
    `documenteer.sphinxext.lssttasks.crossrefs.process_pending_configfield_xref_nodes`

def create_configfield_ref_target_node(target_id, env, lineno):
    """Create a ``target`` node that marks a configuration field.

    Internally, this also adds to the ``lsst_configfields`` attribute of the
    environment that is consumed by `documenteer.sphinxext.lssttasks.
    crossrefs.process_pending_configfield_xref_nodes`.

    See also
    --------
    `documenteer.sphinxext.lssttasks.crossrefs.process_pending_configfield_xref_nodes`
    """
    target_node = nodes.target('', '', ids=[target_id])

    # Store these task/configurable topic nodes in the environment for later
    # cross referencing.
    if not hasattr(env, 'lsst_configfields'):
        env.lsst_configfields = {}
    env.lsst_configfields[target_id] = {
        'docname': env.docname,
        'lineno': lineno,
        'target': target_node,
    }

    return target_node