リビジョン | e45acb0eaecdbe71872cd03367c5020dfa128f25 (tree) |
---|---|
日時 | 2021-12-07 23:51:46 |
作者 | umorigu <umorigu@gmai...> |
コミッター | umorigu |
BugTrack/2529 ref plugin: image size with only width or height
* Width only size: "999w" or "999x"
* Height only size: "999h" or "x999"
* (Reference) Width and height size: "999x999"
@@ -2,7 +2,7 @@ | ||
2 | 2 | // PukiWiki - Yet another WikiWikiWeb clone |
3 | 3 | // ref.inc.php |
4 | 4 | // Copyright |
5 | -// 2002-2020 PukiWiki Development Team | |
5 | +// 2002-2021 PukiWiki Development Team | |
6 | 6 | // 2001-2002 Originally written by yu-ji |
7 | 7 | // License: GPL v2 or (at your option) any later version |
8 | 8 | // |
@@ -124,6 +124,7 @@ function plugin_ref_body($args) | ||
124 | 124 | 'noimg' => FALSE, // 画像を展開しない |
125 | 125 | 'zoom' => FALSE, // 縦横比を保持する |
126 | 126 | '_size' => FALSE, // サイズ指定あり |
127 | + '_size_auto_aspect_ratio' => FALSE, // Size with auto aspect ratio | |
127 | 128 | '_w' => 0, // 幅 |
128 | 129 | '_h' => 0, // 高さ |
129 | 130 | '_%' => 0, // 拡大率 |
@@ -300,7 +301,18 @@ function plugin_ref_body($args) | ||
300 | 301 | |
301 | 302 | } else if (preg_match('/^([0-9.]+)%$/', $arg, $matches) && $matches[1] > 0) { |
302 | 303 | $params['_%'] = $matches[1]; |
303 | - | |
304 | + } else if (preg_match('/^([0-9]+)x$/', $arg, $matches)) { | |
305 | + $params['_size_auto_aspect_ratio'] = TRUE; | |
306 | + $params['_w'] = $matches[1]; | |
307 | + } else if (preg_match('/^x([0-9]+)$/', $arg, $matches)) { | |
308 | + $params['_size_auto_aspect_ratio'] = TRUE; | |
309 | + $params['_h'] = $matches[1]; | |
310 | + } else if (preg_match('/^([0-9]+)w$/', $arg, $matches)) { | |
311 | + $params['_size_auto_aspect_ratio'] = TRUE; | |
312 | + $params['_w'] = $matches[1]; | |
313 | + } else if (preg_match('/^([0-9]+)h$/', $arg, $matches)) { | |
314 | + $params['_size_auto_aspect_ratio'] = TRUE; | |
315 | + $params['_h'] = $matches[1]; | |
304 | 316 | } else { |
305 | 317 | $_title[] = $arg; |
306 | 318 | } |
@@ -347,7 +359,16 @@ function plugin_ref_body($args) | ||
347 | 359 | break; |
348 | 360 | } |
349 | 361 | } |
350 | - | |
362 | + // Size with auto aspect ratio | |
363 | + if ($is_image) { | |
364 | + if ($params['_size_auto_aspect_ratio']) { | |
365 | + if ($params['_w']) { | |
366 | + $info = trim($info) . " style=\"width:" . $params['_w'] . "px;height:auto;\""; | |
367 | + } else if ($params['_h']) { | |
368 | + $info = trim($info) . " style=\"width:auto;height:" . $params['_h'] . "px;\""; | |
369 | + } | |
370 | + } | |
371 | + } | |
351 | 372 | if ($is_image) { // 画像 |
352 | 373 | $params['_body'] = "<img src=\"$url\" alt=\"$title\" title=\"$title\" $info/>"; |
353 | 374 | if (! $params['nolink'] && $url2) |
@@ -213,6 +213,10 @@ | ||
213 | 213 | [&color(blue){nolink};], |
214 | 214 | [&color(blue){zoom};], |
215 | 215 | [&color(blue){999x999};], |
216 | +[&color(blue){999x};], | |
217 | +[&color(blue){x999};], | |
218 | +[&color(blue){999w};], | |
219 | +[&color(blue){999h};], | |
216 | 220 | [&color(blue){999%};] |
217 | 221 | } |
218 | 222 | [,&color(blue){タイトル};] |
@@ -228,6 +232,10 @@ | ||
228 | 232 | [&color(blue){nolink};], |
229 | 233 | [&color(blue){zoom};], |
230 | 234 | [&color(blue){999x999};], |
235 | +[&color(blue){999x};], | |
236 | +[&color(blue){x999};], | |
237 | +[&color(blue){999w};], | |
238 | +[&color(blue){999h};], | |
231 | 239 | [&color(blue){999%};] |
232 | 240 | } |
233 | 241 | [,&color(blue){タイトル};] |
@@ -246,6 +254,8 @@ | ||
246 | 254 | --nolink - 元ファイルへのリンクを張らないようにします。省略時はリンクします。 |
247 | 255 | --zoom - 縦横比を保持します。省略時はサイズ指定に従います。 |
248 | 256 | --999x999 - サイズを指定します(幅x高さ)。省略時は拡大率あるいは対象画像のサイズに従います。 |
257 | +--999x or 999w - 画像幅を指定します。元画像のアスペクト比を保って高さは自動設定されます。 | |
258 | +--x999 or 999h - 画像高さを指定します。元画像のアスペクト比を保って幅は自動設定されます。 | |
249 | 259 | --999% - サイズを指定(拡大率)します。省略時は100%です、 |
250 | 260 | --タイトル - 上記以外のパラメータは画像の代替文字列、リンクのタイトル属性として使用されます。ページ名やパラメータに見える文字列を使用するときは、#ref(hoge.png,,zoom)のようにタイトルの前にカンマを余分に入れます。 |
251 | 261 | :プラグイン内設定|~ |