Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 13
LST
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 2
30
0.00% covered (danger)
0.00%
0 / 13
 getConfig
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 domToWikitext
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 12
<?php
declare( strict_types = 1 );
namespace Wikimedia\Parsoid\Ext\LST;
use Wikimedia\Parsoid\DOM\Element;
use Wikimedia\Parsoid\Ext\DOMDataUtils;
use Wikimedia\Parsoid\Ext\DOMUtils;
use Wikimedia\Parsoid\Ext\ExtensionModule;
use Wikimedia\Parsoid\Ext\ExtensionTagHandler;
use Wikimedia\Parsoid\Ext\ParsoidExtensionAPI;
use Wikimedia\Parsoid\Utils\DOMCompat;
class LST extends ExtensionTagHandler implements ExtensionModule {
    /** @inheritDoc */
    public function getConfig(): array {
        return [
            'name' => 'LST',
            'tags' => [
                [
                    'name' => 'labeledsectiontransclusion',
                    'handler' => self::class,
                ],
                [
                    'name' => 'labeledsectiontransclusion/begin',
                    'handler' => self::class,
                ],
                [
                    'name' => 'labeledsectiontransclusion/end',
                    'handler' => self::class,
                ]
            ]
        ];
    }
    /** @inheritDoc */
    public function domToWikitext(
        ParsoidExtensionAPI $extApi, Element $node, bool $wrapperUnmodified
    ) {
        // TODO: We're keeping this serial handler around to remain backwards
        // compatible with stored content version 1.3.0 and below.  Remove it
        // when those versions are no longer supported.
        $dp = DOMDataUtils::getDataParsoid( $node );
        $src = null;
        if ( isset( $dp->src ) ) {
            $src = $dp->src;
        } elseif ( DOMUtils::matchTypeOf( $node, '/begin/' ) ) {
            $src = '<section begin="' . ( $node->getAttribute( 'content' ) ?? '' ) . '" />';
        } elseif ( DOMUtils::matchTypeOf( $node, '/end/' ) ) {
            $src = '<section end="' . ( $node->getAttribute( 'content' ) ?? '' ) . '" />';
        } else {
            $extApi->log( 'error', 'LST <section> without content in: ' .
                DOMCompat::getOuterHTML( $node ) );
            $src = '<section />';
        }
        return $src;
    }
}