diff --git a/ParserKrokiTag.php b/ParserKrokiTag.php index 557a8e9..f0826d5 100644 --- a/ParserKrokiTag.php +++ b/ParserKrokiTag.php @@ -240,8 +240,20 @@ class ParserKrokiTag { $width = $args['width'] ?? ''; $height = $args['height'] ?? ''; + + $external_width = $args['external_width'] ?? $width; + $external_height = $args['external_height'] ?? $height; + $internal_width = $args['internal_width'] ?? $width; + $internal_height = $args['internal_height'] ?? $height; - return self::formatHtml( "data:image/" . $output_format . "+xml;base64," . base64_encode( $request->getContent() ), $width, $height, $lang ); + return self::formatHtml( + "data:image/" . $output_format . "+xml;base64," . base64_encode( $request->getContent() ) + ,$external_width + ,$external_height + ,$internal_width + ,$internal_height + ,$lang + ); } /** @@ -334,8 +346,20 @@ class ParserKrokiTag { if ( $graphFile->exists() ) { $width = $args['width'] ?? ''; $height = $args['height'] ?? ''; + + $external_width = $args['external_width'] ?? $width; + $external_height = $args['external_height'] ?? $height; + $internal_width = $args['internal_width'] ?? $width; + $internal_height = $args['internal_height'] ?? $height; - return self::formatHtml( $graphFile->getUrl(), $width, $height, $lang ); + return self::formatHtml( + $graphFile->getUrl() + ,$external_width + ,$external_height + ,$internal_width + ,$internal_height + ,$lang + ); } $tmpFactory = MediaWikiServices::getInstance()->getTempFSFileFactory(); @@ -356,20 +380,39 @@ class ParserKrokiTag { $width = $args['width'] ?? ''; $height = $args['height'] ?? ''; - return self::formatHtml( $graphFile->getUrl(), $width, $height, $lang ); + $external_width = $args['external_width'] ?? $width; + $external_height = $args['external_height'] ?? $height; + $internal_width = $args['internal_width'] ?? $width; + $internal_height = $args['internal_height'] ?? $height; + + return self::formatHtml( + $graphFile->getUrl() + ,$external_width + ,$external_height + ,$internal_width + ,$internal_height + ,$lang + ); } /** * Formats the HTML for displaying an image. * * @param string $imgUrl The URL of the image. + * @param string external_width maximum width of scrolling zone + * @param string external_height maximum height of scrolling zone + * @param string internal_width maximum width of image + * @param string internal_height maximum height of image + * @param string diagram type * @return string The formatted HTML code. */ - private static function formatHtml( string $imgUrl, string $width, string $height, string $lang ): string { + private static function formatHtml( string $imgUrl, string $external_width, string $external_height, string $internal_width, string $internal_height, string $lang ): string { return Html::rawElement( - 'div', - [ 'class' => self::KROKI_CSS_CLASS ], - Html::element( 'img', [ 'src' => $imgUrl, 'width' => $width, 'height' => $height, 'style' => 'background-color: rgba(150, 150, 150, 0.5);' ] ) + 'div', [ 'style' => 'overflow:hidden;', 'width' => $external_width, 'height' => $external_height ], + Html::rawElement( + 'div', [ 'class' => self::KROKI_CSS_CLASS, 'style' => 'overflow-y:scroll;' ], + Html::element( 'img', [ 'src' => $imgUrl, 'style' => 'background-color: rgba(150, 150, 150, 0.5);', 'width' => $internal_width, 'height' => $internal_height ] ) + ) ); }