public function addFootnotes(\DOMElement $articleContent)
    {
        $footnotesWrapper = $this->dom->createElement('footer');
        $footnotesWrapper->setAttribute('class', 'readability-footnotes');
        $footnotesWrapper->setInnerHtml('<h3>References</h3>');
        $articleFootnotes = $this->dom->createElement('ol');
        $articleFootnotes->setAttribute('class', 'readability-footnotes-list');
        $footnotesWrapper->appendChild($articleFootnotes);
        $articleLinks = $articleContent->getElementsByTagName('a');
        $linkCount = 0;

        for ($i = 0; $i < $articleLinks->length; ++$i) {
            $articleLink = $articleLinks->item($i);
            $footnoteLink = $articleLink->cloneNode(true);
            $refLink = $this->dom->createElement('a');
            $footnote = $this->dom->createElement('li');
            $linkDomain = @parse_url($footnoteLink->getAttribute('href'), PHP_URL_HOST);
            if (!$linkDomain && isset($this->url)) {
                $linkDomain = @parse_url($this->url, PHP_URL_HOST);
            }

            $linkText = $this->getInnerText($articleLink);
            if ((false !== strpos($articleLink->getAttribute('class'), 'readability-DoNotFootnote')) || preg_match($this->regexps['skipFootnoteLink'], $linkText)) {
                continue;
            }

            ++$linkCount;

            // Add a superscript reference after the article link.
            $refLink->setAttribute('href', '#readabilityFootnoteLink-' . $linkCount);
            $refLink->setInnerHtml('<small><sup>[' . $linkCount . ']</sup></small>');
            $refLink->setAttribute('class', 'readability-DoNotFootnote');
            $refLink->setAttribute('style', 'color: inherit;');

            if ($articleLink->parentNode->lastChild->isSameNode($articleLink)) {
                $articleLink->parentNode->appendChild($refLink);
            } else {
                $articleLink->parentNode->insertBefore($refLink, $articleLink->nextSibling);
            }

            $articleLink->setAttribute('style', 'color: inherit; text-decoration: none;');
            $articleLink->setAttribute('name', 'readabilityLink-' . $linkCount);
            $footnote->setInnerHtml('<small><sup><a href="#readabilityLink-' . $linkCount . '" title="Jump to Link in Article">^</a></sup></small> ');
            $footnoteLink->setInnerHtml(('' !== $footnoteLink->getAttribute('title') ? $footnoteLink->getAttribute('title') : $linkText));
            $footnoteLink->setAttribute('name', 'readabilityFootnoteLink-' . $linkCount);
            $footnote->appendChild($footnoteLink);

            if ($linkDomain) {
                $footnote->setInnerHtml($footnote->getInnerHTML() . '<small> (' . $linkDomain . ')</small>');
            }
            $articleFootnotes->appendChild($footnote);
        }

        if ($linkCount > 0) {
            $articleContent->appendChild($footnotesWrapper);
        }
    }
public function addFootnotes(\DOMElement $articleContent)
    {
        $footnotesWrapper = $this->dom->createElement('footer');
        $footnotesWrapper->setAttribute('class', 'readability-footnotes');
        $footnotesWrapper->setInnerHtml('<h3>References</h3>');
        $articleFootnotes = $this->dom->createElement('ol');
        $articleFootnotes->setAttribute('class', 'readability-footnotes-list');
        $footnotesWrapper->appendChild($articleFootnotes);
        $articleLinks = $articleContent->getElementsByTagName('a');
        $linkCount = 0;

        for ($i = 0; $i < $articleLinks->length; ++$i) {
            $articleLink = $articleLinks->item($i);
            $footnoteLink = $articleLink->cloneNode(true);
            $refLink = $this->dom->createElement('a');
            $footnote = $this->dom->createElement('li');
            $linkDomain = @parse_url($footnoteLink->getAttribute('href'), PHP_URL_HOST);
            if (!$linkDomain && isset($this->url)) {
                $linkDomain = @parse_url($this->url, PHP_URL_HOST);
            }

            $linkText = $this->getInnerText($articleLink);
            if ((false !== strpos($articleLink->getAttribute('class'), 'readability-DoNotFootnote')) || preg_match($this->regexps['skipFootnoteLink'], $linkText)) {
                continue;
            }

            ++$linkCount;

            // Add a superscript reference after the article link.
            $refLink->setAttribute('href', '#readabilityFootnoteLink-' . $linkCount);
            $refLink->setInnerHtml('<small><sup>[' . $linkCount . ']</sup></small>');
            $refLink->setAttribute('class', 'readability-DoNotFootnote');
            $refLink->setAttribute('style', 'color: inherit;');

            if ($articleLink->parentNode->lastChild->isSameNode($articleLink)) {
                $articleLink->parentNode->appendChild($refLink);
            } else {
                $articleLink->parentNode->insertBefore($refLink, $articleLink->nextSibling);
            }

            $articleLink->setAttribute('style', 'color: inherit; text-decoration: none;');
            $articleLink->setAttribute('name', 'readabilityLink-' . $linkCount);
            $footnote->setInnerHtml('<small><sup><a href="#readabilityLink-' . $linkCount . '" title="Jump to Link in Article">^</a></sup></small> ');
            $footnoteLink->setInnerHtml(('' !== $footnoteLink->getAttribute('title') ? $footnoteLink->getAttribute('title') : $linkText));
            $footnoteLink->setAttribute('name', 'readabilityFootnoteLink-' . $linkCount);
            $footnote->appendChild($footnoteLink);

            if ($linkDomain) {
                $footnote->setInnerHtml($footnote->getInnerHTML() . '<small> (' . $linkDomain . ')</small>');
            }
            $articleFootnotes->appendChild($footnote);
        }

        if ($linkCount > 0) {
            $articleContent->appendChild($footnotesWrapper);
        }
    }
public function addFootnotes ( \ DOMElement $ articleContent ) { $ footnotesWrapper = $ this -> dom -> createElement ( 'footer' ) ; $ footnotesWrapper -> setAttribute ( 'class' , 'readability-footnotes' ) ; $ footnotesWrapper -> setInnerHtml ( '<h3>References</h3>' ) ; $ articleFootnotes = $ this -> dom -> createElement ( 'ol' ) ; $ articleFootnotes -> setAttribute ( 'class' , 'readability-footnotes-list' ) ; $ footnotesWrapper -> appendChild ( $ articleFootnotes ) ; $ articleLinks = $ articleContent -> getElementsByTagName ( 'a' ) ; $ linkCount = 0 ; for ( $ i = 0 ; $ i < $ articleLinks -> length ; ++ $ i ) { $ articleLink = $ articleLinks -> item ( $ i ) ; $ footnoteLink = $ articleLink -> cloneNode ( true ) ; $ refLink = $ this -> dom -> createElement ( 'a' ) ; $ footnote = $ this -> dom -> createElement ( 'li' ) ; $ linkDomain = @ parse_url ( $ footnoteLink -> getAttribute ( 'href' ) , PHP_URL_HOST ) ; if ( ! $ linkDomain && isset ( $ this -> url ) ) { $ linkDomain = @ parse_url ( $ this -> url , PHP_URL_HOST ) ; } $ linkText = $ this -> getInnerText ( $ articleLink ) ; if ( ( false !== strpos ( $ articleLink -> getAttribute ( 'class' ) , 'readability-DoNotFootnote' ) ) || preg_match ( $ this -> regexps [ 'skipFootnoteLink' ] , $ linkText ) ) { continue ; } ++ $ linkCount ; // Add a superscript reference after the article link. $ refLink -> setAttribute ( 'href' , '#readabilityFootnoteLink-' . $ linkCount ) ; $ refLink -> setInnerHtml ( '<small><sup>[' . $ linkCount . ']</sup></small>' ) ; $ refLink -> setAttribute ( 'class' , 'readability-DoNotFootnote' ) ; $ refLink -> setAttribute ( 'style' , 'color: inherit;' ) ; if ( $ articleLink -> parentNode -> lastChild -> isSameNode ( $ articleLink ) ) { $ articleLink -> parentNode -> appendChild ( $ refLink ) ; } else { $ articleLink -> parentNode -> insertBefore ( $ refLink , $ articleLink -> nextSibling ) ; } $ articleLink -> setAttribute ( 'style' , 'color: inherit; text-decoration: none;' ) ; $ articleLink -> setAttribute ( 'name' , 'readabilityLink-' . $ linkCount ) ; $ footnote -> setInnerHtml ( '<small><sup><a href="#readabilityLink-' . $ linkCount . '" title="Jump to Link in Article">^</a></sup></small> ' ) ; $ footnoteLink -> setInnerHtml ( ( '' !== $ footnoteLink -> getAttribute ( 'title' ) ? $ footnoteLink -> getAttribute ( 'title' ) : $ linkText ) ) ; $ footnoteLink -> setAttribute ( 'name' , 'readabilityFootnoteLink-' . $ linkCount ) ; $ footnote -> appendChild ( $ footnoteLink ) ; if ( $ linkDomain ) { $ footnote -> setInnerHtml ( $ footnote -> getInnerHTML ( ) . '<small> (' . $ linkDomain . ')</small>' ) ; } $ articleFootnotes -> appendChild ( $ footnote ) ; } if ( $ linkCount > 0 ) { $ articleContent -> appendChild ( $ footnotesWrapper ) ; } }
For easier reading, convert this document to have footnotes at the bottom rather than inline links.

@see http://www.roughtype.com/archives/2010/05/experiments_in.php

@param \DOMElement $articleContent
For easier reading convert this document to have footnotes at the bottom rather than inline links .