public function render()
    {
        $result = $this->arguments['result'];
        $this->conf = $this->arguments['conf'];

        $domImplementation = new \DOMImplementation();

        $this->doc = $domImplementation->createDocument();
        $li = $this->doc->createElement('li');
        $this->doc->appendChild($li);
        $li->setAttribute('class', 'pz2-detailsVisible');

        $iconElement = $this->doc->createElement('span');
        $li->appendChild($iconElement);
        $mediaClass = 'other';
        if (count($result['md-medium']) == 1) {
            $mediaClass = $result['md-medium'][0]['values'][0];
        } elseif (count($result['md-medium']) > 1) {
            $mediaClass = 'multiple';
        }

        $iconElement->setAttribute('class', 'pz2-mediaIcon ' . $mediaClass);
        $iconElement->setAttribute('title', LocalizationUtility::translate('media-type-' . $mediaClass, 'Pazpar2'));

        // basic title/author information
        $this->appendInfoToContainer($this->titleInfo($result), $li);
        $authors = $this->authorInfo($result);
        $this->appendInfoToContainer($authors, $li);

        // year or journal + year information
        $journal = $this->journalInfo($result);
        $this->appendInfoToContainer($journal, $li);

        if (!$journal) {
            $spaceBefore = ' ';
            if ($authors) {
                $spaceBefore = ', ';
            }
            $this->appendMarkupForFieldToContainer('date', $result, $li, $spaceBefore, '.');
        }

        if ($this->conf['provideCOinSExport'] == 1) {
            // Insert COinS information
            $this->appendCOinSSpansToContainer($result, $li);
        }

        // detailed information about the publication
        $this->appendInfoToContainer($this->renderDetails($result), $li);

        return $this->doc->saveHTML();
    }