'Constructs a paragraph which represents the implementation notes
The paragraph consists of text and clickable URL nodes if links were
given in the notes.'

def _create_notes_paragraph(self, notes):

    para = nodes.paragraph()
    para.append(nodes.strong(text='Notes:    '))
    link_idxs = [m.start() for m in re.finditer('https?://', notes)]
    start_idx = 0
    for link_idx in link_idxs:
        para.append(nodes.inline(text=notes[start_idx:link_idx]))
        link_end_idx = notes.find('    ', link_idx)
        if (link_end_idx == (-1)):
            link_end_idx = len(notes)
        uri = notes[link_idx:(link_end_idx + 1)]
        para.append(nodes.reference('', uri, refuri=uri))
        start_idx = (link_end_idx + 1)
    para.append(nodes.inline(text=notes[start_idx:]))
    return para
