#author("2025-01-29T16:32:31+09:00","default:kanateko","kanateko")
&tag(プラグイン,自作,追加);
CENTER:#ref(clipboard.jpg,center,wrap,400x0)
#contentsx
*ワンクリックでコピーさせるプラグイン [#overview]
#infobox(plugin){{
name = clipboard
ver = 1.0.1
pukiwiki = 1.5.4
update = 2024-01-29
}}
指定した範囲のテキストをワンクリックでクリップボードにコピーさせるプラグイン。
コピー用のアイコンやボタンを表示し、それをクリックorタップでテキストもしくはWiki書式のソースをコピーすることができる。ソースのコピーは今のところブロック型でのみ使用できる。
#box(label,label-style=full,box-color=blue,title=このプラグインでできること){{
-アイコンorボタンをクリックしてテキストをコピーする
--インライン型、ブロック型で使用可能
--コピーしたことを通知するポップアップ有り
--ブロック型の場合、ソースをコピーさせることもできる
}}
#clear
*ダウンロード[#download]
最新: [[GitHub>https://github.com/kanateko/pukiwiki-plugin]]
|~日付|~バージョン|~備考|h
|2025-01-29|1.0.1|#ul(ソースコピー時に不要な改行が入らないよう修正)|
|2025-01-22|1.0.0|#ul(初版作成)|
*セットアップ [#ma9d057e]
+ダウンロードした「plugin-clipboard」の中身 (skinフォルダとpluginフォルダ) をPukiWikiのディレクトリに放り込む。
+pukiwiki.ini.phpを編集してマルチラインプラグインを許可する。
#prism(diff-php diff-highlight){{
- define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 1); // 1 = Disabled
+ define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 0); // 1 = Disabled
}}
*プラグイン設定 [#setting]
#style(word-break:break-all;,class=table_compact){{{
#tableif(^(int|\d+)$=COLOR(#62bf4b),^(string|'.+')$|DIR \.=COLOR(#cb643d),^'/.+/'$=COLOR(#df0606),^(bool|true|false)$=COLOR(#463dcb)){{
|~定数 (PLUGIN_CLIPBOARD_~)|~型|~初期値|~説明|h
|BOLD:BGCOLOR(--table-header-td-color):160|CENTER:80|120|400|c
|SHOW_MSG|bool|true|コピー時にメッセージを表示するかどうか|
|CSS|string|SKIN_DIR . 'css/clipboard.min.css'|プラグイン用CSSのパス|
|JS|string|SKIN_DIR . 'js/clipboard.min.js'|プラグイン用JSのパス|
}}
}}}
**使用方法 [#usage]
インライン型
&clipboard( [オプション] ){ <コピーさせる内容> };
ブロック型
#clipboard( [オプション] ){{
<コピーさせる内容>
}}
*オプション [#option]
:source|Wiki書式のソースをコピーさせる。ブロック型でのみ使用できる。
:class = |クラスを追加する。
*使用例 [#sample]
#tab{{{{
#:表示
&clipboard{アイコンをクリックすると、このテキストをコピーできます→};
#clipboard(source){{{
#flex(400){{
ブロック型。
#-
オプションでsourceを指定しているので、
#-
表示されたテキストではなくWiki書式の
#-
ソースをコピーする。
}}
}}}
#:ソース
&clipboard{アイコンをクリックすると、このテキストをコピーできます→};
#clipboard(source){{{
#flex(400){{
ブロック型。
#-
オプションでsourceを指定しているので、
#-
表示されたテキストではなくWiki書式の
#-
ソースをコピーする。
}}
}}}
}}}}
*追加したい機能 [#todo]
-インラインでのソースのコピー
--PukiWikiの仕様上、インラインだと最後の引数が変換された状態で渡されるため面倒。
---`&clipboad(source,ソース);` このようにすれば出来ないこともないが、今度は引数でインライン型のプラグインを渡せなくなる。
---javascriptで非同期通信して取得することも考えたが、そうすると今度は新規ページ作成時のプレビューで動作しない問題が出る。あとブロック型のマルチライン内にインライン型のプラグインを記述した場合に、連番のIDがずれる問題もある。
*備考 [#notes]
-実は2022年頃からプロトタイプ版のまま放置されていた (GitHub上にもあった) 。ふと思い出したのでちゃんと作り直した。
*コメント [#comment]
#pcomment(reply)