• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#objective-cqtwindows誰得cocoapythonphprubygameguibathyscaphec翻訳omegat計画中(planning stage)frameworktwittertestdomvb.netdirectxbtronarduinopreviewerゲームエンジン

Commit MetaInfo

Revisione45acb0eaecdbe71872cd03367c5020dfa128f25 (tree)
Time2021-12-07 23:51:46
Authorumorigu <umorigu@gmai...>
Commiterumorigu

Log Message

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"

Change Summary

Incremental Difference

--- a/plugin/ref.inc.php
+++ b/plugin/ref.inc.php
@@ -2,7 +2,7 @@
22 // PukiWiki - Yet another WikiWikiWeb clone
33 // ref.inc.php
44 // Copyright
5-// 2002-2020 PukiWiki Development Team
5+// 2002-2021 PukiWiki Development Team
66 // 2001-2002 Originally written by yu-ji
77 // License: GPL v2 or (at your option) any later version
88 //
@@ -124,6 +124,7 @@ function plugin_ref_body($args)
124124 'noimg' => FALSE, // 画像を展開しない
125125 'zoom' => FALSE, // 縦横比を保持する
126126 '_size' => FALSE, // サイズ指定あり
127+ '_size_auto_aspect_ratio' => FALSE, // Size with auto aspect ratio
127128 '_w' => 0, // 幅
128129 '_h' => 0, // 高さ
129130 '_%' => 0, // 拡大率
@@ -300,7 +301,18 @@ function plugin_ref_body($args)
300301
301302 } else if (preg_match('/^([0-9.]+)%$/', $arg, $matches) && $matches[1] > 0) {
302303 $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];
304316 } else {
305317 $_title[] = $arg;
306318 }
@@ -347,7 +359,16 @@ function plugin_ref_body($args)
347359 break;
348360 }
349361 }
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+ }
351372 if ($is_image) { // 画像
352373 $params['_body'] = "<img src=\"$url\" alt=\"$title\" title=\"$title\" $info/>";
353374 if (! $params['nolink'] && $url2)
--- a/wiki/50756B6957696B692F312E342F4D616E75616C2F506C7567696E2F4F2D52.txt
+++ b/wiki/50756B6957696B692F312E342F4D616E75616C2F506C7567696E2F4F2D52.txt
@@ -213,6 +213,10 @@
213213 [&color(blue){nolink};],
214214 [&color(blue){zoom};],
215215 [&color(blue){999x999};],
216+[&color(blue){999x};],
217+[&color(blue){x999};],
218+[&color(blue){999w};],
219+[&color(blue){999h};],
216220 [&color(blue){999%};]
217221 }
218222 [,&color(blue){タイトル};]
@@ -228,6 +232,10 @@
228232 [&color(blue){nolink};],
229233 [&color(blue){zoom};],
230234 [&color(blue){999x999};],
235+[&color(blue){999x};],
236+[&color(blue){x999};],
237+[&color(blue){999w};],
238+[&color(blue){999h};],
231239 [&color(blue){999%};]
232240 }
233241 [,&color(blue){タイトル};]
@@ -246,6 +254,8 @@
246254 --nolink - 元ファイルへのリンクを張らないようにします。省略時はリンクします。
247255 --zoom - 縦横比を保持します。省略時はサイズ指定に従います。
248256 --999x999 - サイズを指定します(幅x高さ)。省略時は拡大率あるいは対象画像のサイズに従います。
257+--999x or 999w - 画像幅を指定します。元画像のアスペクト比を保って高さは自動設定されます。
258+--x999 or 999h - 画像高さを指定します。元画像のアスペクト比を保って幅は自動設定されます。
249259 --999% - サイズを指定(拡大率)します。省略時は100%です、
250260 --タイトル - 上記以外のパラメータは画像の代替文字列、リンクのタイトル属性として使用されます。ページ名やパラメータに見える文字列を使用するときは、#ref(hoge.png,,zoom)のようにタイトルの前にカンマを余分に入れます。
251261 :プラグイン内設定|~