つづろーぐ(会員ブログ)

サブカテゴリー

koji
kataoka
official
ohashi
maki
maupapa
template_atmarkit
poyaso
dorami
YOU
tome
masa
decaf
Shingo
hshingo

最近の文書(サブカテゴリーを含む)

iOSブラウザで"Make Link"するTextwellアクション (2015/9/14)

Firefoxのアドオンに"Make Link"というのがあります。表示しているページからタイトルとURLを取得して自由に加工できる、シンプルで便利なもの。これをChromeで再現したCreate LinkをPCでは愛用しているので、iPhoneやiPadのMobile Safariに移植すべく、Textwellの力を借りました。

ページタイトルとURLをTextwellに渡す必要がありますが、TextwellのURLスキームに変数を渡すことはできません。そこで、addアクションを使ってページタイトルとURLをTextwellのメインテキスト末尾に書き込み、addアクションの呼び出し時に指定したnextActionによってMakeLinkアクションを呼び出します。

【セットアップ】

ページタイトルとURLをTextwellのメインテキスト末尾に書き込んだうえでMakeLinkアクションを呼び出すためのブックマークレットを設定します。ブックマークレットのソースはこんな感じです:

javascript:window.location='textwell:///add?text='+encodeURI('\n'+document.title+'\n'+location.href)+'&nextAction=MakeLink';

Mobile Safariにインストールするには、左のリンク "MakeLink(Textwell)" を開き、ブックマークとして登録します。次に編集機能で冒頭の "http://localhost/" を削除します。ちなみに '\n' の部分は、保存時に '%5Cn' へと自動的にエンコードされます。

Textwellの側ではMakeLinkアクションをインストールしておきます。

T.loadlets()の各メニュー項目内で同じ動作があるので、makeLink()としてまとめました。このやり方を発見するまでが長かった……。

var infos, url, title, i, makeLink;

// Get info added by bookmarklet (\n title \n url)
infos = /\n(.*)\n(.*)$/.exec( T.text );

// URL
if( !infos[2] ) {
  T( 'error', { title: 'ERROR', message: 'URL Empty' } );
}
url = infos[2];

// Title
if( !infos[1] ) {
  var ext = /([^/]+)$/.exec( url ); // Right of last /
  infos[1] = ext[1];
}
title = infos[1];

// Where to start replacement
i = infos.index + 1; // leave 1st \n

// Replace info with link
makeLink = function( arg ) {
  T( 'replaceRange', {
    text: arg.t,
    replacingRange: {
      loc: arg.i,
      len: T.text.length - arg.i
    },
    selectingRange: {
      loc: arg.i,
      len: arg.t.length
    }
  } )
}

T.loadlets( [

  { title: '[❌] Make Link',
    fn: function(){
      T( 'done' )
    }
  },

  { title: 'Plain text',
    fn: makeLink,
    arg: { t: '◆' + title + '\n' + url, i: i }
  },

  { title: 'Markdown',
    fn: makeLink,
    arg: { t: '[' + title + '](' + url + ')', i: i }
  },

  { title: 'BB Code',
    fn: makeLink,
    arg: { t: '[url=' + url + ']' + title + '[/url]', i: i }
  },

  { title: 'HTML',
    fn: makeLink,
    arg: { t: '<a href="' + url + '">' + title + '</a>', i: i }
  }

], function(){ location='about:blank' } );

Import Textwell ActionMakeLink

【呼び出し】

リンクを作成したいページで、作成したブックマークを開きます。するとTextwellのメインテキストビューの最下行にタイトルとURLが追記され、MakeLinkアクションが起動します。MakeLinkアクションでは最下行の2行を読み込み、選択されたメニューの指示に従ってリンクを作成し、それらの行を置き換えます。置き換えた行が選択状態になっているので、これをカットすればすぐに作業に使えます。

なおPDFファイルのようにページタイトルがない場合には、URLの一番右の "/" より右側の部分(ファイル名の部分)をタイトルの代わりに使います。



新規ユーザー登録(無料)

  • メールニュース[週刊起-動線]の購読
  • コメントなどの投稿
  • ココロミの利用
  • 一部コンテンツの購読

ログイン

コメント

タグ(キーワード)