- 追加された行はこの色です。
- 削除された行はこの色です。
**概要 [#ue2f21a7]
Windows共有フォルダのパス \\fileserver.example.com\Sharedfolder を自動リンクします。
Windows共有フォルダのUNCパス "\\fileserver.example.com\共有フォルダ名" を自動リンクします。
社内でPukiWikiを利用している場合に、Windows共有フォルダへのリンクがあると便利なことがあります。これを実現します。
イントラネットでPukiWikiを利用している場合に、Windows共有フォルダへのリンクがあると便利なことがあります。これを実現します。
- \\server.xxx\folder に対して file:// または smb:// リンクのA(anchor)要素を生成します。
-- \\server\folder は''リンクしません''。サーバー名には必ず '.' が含まれている必要があります。
- Webブラウザ側のJavaScriptで動作するのでサーバー負荷はかかりません。
- \\server.example.com\folder に対して file:// または smb:// リンクのA(anchor)要素を生成します
-- \\server\folder は''リンクしません''。サーバー名には必ず '.' が含まれている必要があります
- ユーザーが入力するのは file://server.example.com/folder というURLではなく、 \\server.example.com\folder という UNC パスになります
- 日本語フォルダ名・ファイル名に対応
- Webブラウザ側のJavaScriptで動作するのでサーバー負荷はかかりません
- 2015年1月時点での各種最新ブラウザに対応。(IE11,Chrome 39,Firefox 34,Opera 12,Safari 5)
-- (古いブラウザ向けの互換コードは入っていません)
- Webブラウザから直接共有フォルダは開けない場合が多いです。ブラウザによっては「リンクアドレスをコピー」「リンクを新しいウィンドウで開く」などを利用してください。
- ブラウザがMacの場合は smb:// のリンクを生成します。
-
- Webブラウザから直接共有フォルダは開けない場合が多いです。「リンクアドレスをコピー」「リンクを新しいウィンドウで開く」などを利用してください
- ブラウザがMacの場合は smb:// のリンクを生成します
- PukiWiki 1.5.0 UTF-8版で動作を確認
**インストール方法 [#jb18572c]
- 1. 後述の unclink.js を skin/unclink.js として保存する。
- 2. skin/pukiwiki.skin.php (オリジナルは 81 行目) に以下の「+」の行を追加する。
<title><?php echo $title ?> - <?php echo $page_title ?></title>
+ <script type="text/javascript" src="skin/unclink.js"></script>
<link rel="SHORTCUT ICON" href="<?php echo $image['favicon'] ?>" />
- 3. pukiwiki.ini.php 設定 - $nowikiname は ''1'' にしておかないとほとんどリンクされません
/////////////////////////////////////////////////
// _Disable_ WikiName auto-linking
$nowikiname = 1;
**使い方 [#u70ca609]
本文に \\server.example.com\folder をそのまま書く。
** ソースコード [#yb586759]
*** Gist [#z2327275]
- gist.github.com/umorigu/51abdeef484d18900c57
*** skin/unclink.js [#z0a0f38d]
// unclink.js
if (window.addEventListener && Array.prototype.indexOf
&& document.createDocumentFragment) {
window.addEventListener('DOMContentLoaded', function() {
function uncToUrl(unc) {
var ua = navigator.userAgent;
if (ua.indexOf('Macintosh') >= 0) {
return unc.replace(/^\\\\/, 'smb://').replace(/\\/g, '/');
} else if (ua.indexOf('Firefox') >= 0) {
return unc.replace(/^\\\\/, 'file://///').replace(/\\/g, '/');
} else {
return unc.replace(/^\\\\/, 'file://').replace(/\\/g, '/');
}
}
function makeUncLink(element) {
var re = /([\s\<\>]|^)(\\\\([a-zA-Z0-9\-]+)(\.[a-zA-Z0-9\-]+)+\\[^\\\/\:\*\?\"\>\<\|\;\s][^\/\:\*\?\"\>\<\|\;\s]*)/;
var f, m, text = element.nodeValue;
while (m = text.match(re)) {
// m[1]: head, m[2]: UNC path
f || (f = document.createDocumentFragment());
if (m.index > 0 || m[1].length > 0) {
f.appendChild(document.createTextNode(text.substr(0, m.index) + m[1]));
}
var a = document.createElement('a');
a.textContent = m[2];
a.href = uncToUrl(a.textContent);
f.appendChild(a);
text = text.substr(m.index + m[0].length);
}
if (f) {
text.length > 0 && f.appendChild(document.createTextNode(text));
element.parentNode.replaceChild(f, element)
}
}
var ignoreTags = ['A', 'INPUT', 'TEXTAREA', 'BUTTON',
'SCRIPT', 'FRAME', 'IFRAME'];
function walkElement(element) {
var e = element.firstChild;
while (e) {
if (e.nodeType == 3 && e.nodeValue.length > 5 && /\S/.test(e.nodeValue)) {
var next = e.nextSibling;
makeUncLink(e);
e = next;
} else {
if (e.nodeType == 1 && ignoreTags.indexOf(e.tagName) == -1) {
walkElement(e);
}
e = e.nextSibling;
}
}
}
var target = document.getElementById('body');
walkElement(target);
});
}
*** sourceforge.jp [#zc5af90f]
[[sfjp:users/umorigu/pf/pukiwiki_auth/scm/commits/6e26fb8ee01157ba9a9880f50ffbf65004185b8e]]
** 参考 [#ad499e55]
- URL: http:// d.hatena.ne.jp/a-kuma3/20130101/url2link
-- URLをリンク化するブックマークレット - それ、うまいのか?
** 関連 [#y9ec0f6f]
- [[PukiWiki/1.3/ちょっと便利に/ローカルファイルへのリンクも張りたい]]
- [[PukiWiki/1.4/ちょっと便利に/ローカルファイルへのリンクも張りたい]]
-- 「file:// スキームのリンクを有効にする」「file:// パスで日本語を使えるようにする」
- [[official:質問箱3/552]] Windowsの共有フォルダへのリンク
-- 「リンクとしてWindows共有フォルダのUNCパスを使いたい」 →これに近い
- [[official:続・質問箱/120]] 日本語を含むUNCへのリンク方法
-- file:// の追加、日本語対応
- [[official:FAQ/34]] ローカルファイルへのリンク(file://~)も張りたい
-- file:// の追加
- [[official:続・質問箱/596]] ローカルファイルへのリンク (file:// URLスキーム)
-- (別ページへリンクのみ)
- [[official:質問箱3/92]] 続・質問箱/596 ローカルファイルリンクにて
-- (別ページへリンクのみ)
** コメント [#n2f590e9]
- UNCのパスをリンクにしてほしい、という要望があったので作りました -- [[umorigu]] &new{2015-01-11 (日) 15:29:54};
#comment