FC2 Analyzer

iCBM3


概要


様々なウェブブラウザのブックマークを一括マウントして管理するツールです.
このソフトには以下のような特徴があります.
  • Firefox, Google Chrome, Opera, Vivaldi, Lunascape, Sleipnir, Sleipnir 2, Sleipnir 3~, Microsoft Edge, Internet Explorerのブックマーク(お気に入り)をマウントできます.
  • OPMLフォーマットを拡張した独自ブックマーク(スクラップ&ゴミ箱)もマウントできます.
  • 独自ブックマークには"一般アイテム"以外に"実行ファイル""メモアイテム""エイリアス"も登録できます.
  • 一般アイテムとFeedの更新チェックができます.
  • Podcastを埋め込みプレーヤーによって再生できます.
  • ステータスバーに電光掲示ニュースのように更新チェック結果を表示します.
  • 新しく更新が見つかった項目を通知ウィンドウ(ポップアップ)に表示します.
  • ウェブブラウザの"訪問履歴"を列挙できます.
  • ブックマークのコメント欄に"分類タグ"を記述できます.
  • "分類タグ"Firefox3~のタグやSleipnir 3~のラベルと共有することができます.
  • すべてのブックマークアイテムと訪問履歴を対象に強力なキーワード検索を実行できます.

備考


各種ブックマークの対応状況

互換性については目安とお考えください.それぞれのブックマーク書式を完全に把握しているわけではないので,未知の不具合があるかもしれません.
ブラウザバージョン説明ファイル名
Microsoft Edge79.0.309.65~ Bookmarks
Google Chrome  Bookmarks
Mozilla Firefox1~2 bookmarks.html
3~ places.sqlite(1)(5)
3~バックアップ*.json(1)(5)--
Vivaldi1~ Bookmarks(6)
Opera6~9 opera6.adr
10~12 bookmarks.adr
10~12ニュースindex.ini--
25~ Bookmarks
Lunascape4~6 default.ld2(2)(4)
Sleipnir1 Favorite.sfv(4)
Sleipnir2 Favorite.ffv(4)
Sleipnir3~ favorite3.json(3)(3)
Internet Explorer6~フォルダFavorites\*.url
  • 入: ブックマーク読み込み(インポート)
  • 出: ブックマーク書き出し(エクスポート)
  • 落: ブラウザからiCBM3へドラッグ&ドロップ
  • 歴: ブラウザの訪問履歴読み込み
注意1
スマートブックマークは一般アイテムと見なしますがブラウザ表示はできません.
注意2
4.2.0で導入されたShellFileItem(ローカルディスクのファイルをブックマークに登録する機能)には対応していません.
注意3
ラベルグループとリボンには対応していません.
注意4
Lunascape4~6やSleipnir1,2の場合,独自履歴ではなくInternet Explorerの履歴で代用します.
注意5
Ver.0.217bよりしばらくの間は出力を禁止します.
注意6
ドロップデータの仕様上オリジナルのままではウェブページのタイトルを取得することができません.そこで,この問題を解決するためにVivaldiの訪問履歴からタイトルを取得します.この機能を使うにはVivaldiのブックマークをマウントしてしておく必要があります.

ダウンロード

iCBM3.gifiCBM3_0224b.zipVer.0.224b2023年4月30日
 iCBM3 マニュアル-2023年4月30日
 iCBM3 付録-2023年4月30日
注意
v0.223bよりブラウザ関連コードをEdge(Chrome)ベースのWebView2に乗り換えたため,v0.222b以前のバージョンから更新される方は旧来のIEベースのWebBrowserの設定(レジストリ)が残骸として残ります.このまま放置しても害はないのですが,気になる場合は以下の方法でクリーンナップしてください.
(方法)旧バージョンの外観設定ファイル(Appearance.XML)のInfoBox\Browser\performance\expand属性をfalseに変更後,旧バージョンのiCBM3を立ち上げて終了すれば完了です.

実行に必要なランタイムライブラリー

このソフトを実行するためには,下記の実行環境とランタイムライブラリーが必要です.
フリーのランタイムライブラリーをご提供されている作者様に,改めて御礼を申し上げます.ありがとうございます.

.NET Framework

このソフトはMicrosoft .NET Framework 4.7.2以上がインストールされた実行環境でのみ動作します.ご自身の環境に合わせたパッケージを以下のリンクから取得してください.

WebView2

ブラウザパネルとタグクラウドには,Edge(Chrome)ベースのWebView2コントロールを使用しています.Windows11の方はデフォルトでライブラリがインストールされていますが,Windows10以下の方はご自身でインストールする必要があります.以下のリンクからEvergreen Bootstrapperを取得してください.

Azuki.DLL

エディタパネルとHTMLソースビューワには,Azukiコントロールを使用しています.こちらはパッケージに同梱されているのでご自身でインストールする必要はありません.

System.Data.SQLite.DLL

Mozilla Firefox 3~のブックマーク,Opera 15~, Google Chrome, Microsoft Edgeの訪問履歴,更新チェッカーのデータベース入出力には,SQLiteライブラリー「System.Data.SQLite」を使用しています.こちらはパッケージに同梱されているのでご自身でインストールする必要はありません.

LitJSON.DLL

Google ChromeMozilla Firefox 3~Opera 25~VivaldiSleipnir 3~Microsoft Edgeのブックマークの入出力,はてなAPI (JSON)のコールバック処理には,JSONライブラリー「LitJSON」を使用しています.こちらはパッケージに同梱されているのでご自身でインストールする必要はありません.

改造履歴


Ver.0.224b

  • WebView2コントロールを最新版(1.0.1722.45)に更新しました.
  • Vivaldiブックマークのセパレータ項目の読み書きに対応しました.
  • Vivaldiのアドレスバーからのドラッグ&ドロップがやっと他のブラウザと同じくFileGroupDescriptorWにタイトルを返してくるようになりましたので,今までの訪問履歴を辿って無理やりタイトルを取得する方法を廃止しました.なんで,Vivaldiは随分長い間頑なにタイトルをドラッグ&ドロップデータに織り込まなかったんだろう?
  • はてなブックマーク数表示をAPIコールバック&jQueryを使って行う方式から,はてなが用意してくれている単純な「はてなブックマークボタン」に変更しました.
    • 上記ボタンに引数を渡すために,,"https://"などのURLスキームをURL文字列から取り除く環境変数関数Nを新たに新設しました.
  • 外観設定ファイルの情報ボックス表示用の各種テンプレートがIE仕様のままだったり&まどろっこしい記述が多かったりしたので全面的に書き換えました.
  • WebView2のショートカットキーとバッティングするのを避けるため,すべてのグローバルショートカットキーを廃止しました.
  • 「親フォルダへ移動」コマンドのショートカットキーを廃止しました.但し,ツリービューに元々備わっているBackSpaceによる同操作は生きています.
  • 前回廃止した「選択項目の完全削除」のショートカットキー「Delete」をしれっと復活させました.
  • 「ユーザー定義文コピー」のショートカットキーの数字はテンキーを使う方法に変更しました.
  • 更新チェックデータベース「updates.DB」をSQLiteで記述することにあまりメリットを感じられないので,XMLフォーマットに変更&「database」に改名しました.
  • defaultフォルダの「iCBM3.XML」&「Appearance.XML」を「default_iCBM3.XML」&「default_Appearance.XML」に改名しました.
  • 更新チェックデータベースの場所を初期設定ファイル「iCBM3.XML」に記述するのをやめました.これにより,任意の位置にデータベースファイルを配置することはできなくなります.必ず,スクラップブックマーク「scrap.OPML」と同じ場所に配置します.
  • ツールバーの進む・戻るボタンで表示履歴をたどる時,ブラウザパネルの表示がもたつくとメインウィンドウのフォーカスを失う時があります.解決策としてあまりエレガントではありませんが,タイマーで時間を空けてフォーカスを奪い返すことにしました.
  • feedマクロのreplaceサブキーのエレメントにclipを追加しました.clipサブキーで取得したテキストを整形するための検索テキスト&置換テキストを定義します.
  • リンクジャグラー機能をコマンドラインオプションから利用する際に,ブラウザ名パラメータを省略すると「IEで表示する」仕様でしたが,「Edgeで表示」に変更しました.
  • 起動時に速報ニュース&更新チェック開始のスレッドが表示の奪い合いをしてわちゃわちゃしてたので交通整理しました.また,起動時に空白ウィンドウが長い時間表示されるのが不細工なのでインビジブルタイムを設けました.

Ver.0.223b

  • 情報ボックス・ブラウザパネルとタグクラウドをIEベースのWebBrowserからEdge(Chrome)ベースのWebView2 v1.0.1661.34に変更しました.
    • これに伴い,「外観設定|Infobox|Browser」のWebBrowserに関する設定を削除し,WebView2のものに変更しました.
    • WebBrowserからWebView2への乗り換えに伴う仕様変更の都合で,タグクラウドのCSSは別ファイル定義ではなくAppearance.XML内のHTML雛形に直接記述することになりました.
    • タグクラウドで選択したタグに色付けする機能を追加しました.
    • 情報ボックス・ブラウザパネルのコンテキストメニューをオリジナルからカスタムメニューに変更しました.リンクを指定ブラウザで開いたり,選択テキストをブックマーク検索する機能などを追加しました.
    • 情報ボックス・エディタパネルのツールバーボタンのブラウザアイコンをIEからEdgeに変更しました.
  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.117.0)にリプレースしました.
  • Internet Explorer (IE)がまもなく機能停止するので,IE-Feedの読み込みおよびIEの訪問履歴に関する機能を全て廃止しました.
  • タグクラウドのフォントサイズを決定する関係式を刷新しました.
  • 排除タグの定義を複数行にわたって記述することができるようにしました.
  • アイテムの削除に関するコマンドはショートカットキーで操作できないようにしました.
  • 検索コンボボックスではマウスホイール回転イベントを全て禁止する仕様に変更しました.これで,リストスクロールをマウスホイール回転で行おうとしたつもりが,検索が実行されてしまいイラッとすることがなくなります.
  • ブックマーク項目のサムネイル画像を取得するウェブサービスがご臨終されたので,別サービスに乗り換えました.
  • スクラップブックマークでリンク切れになっていたブックーマークを差し替えました.

Ver.0.222b 差し替え版

  • 2020年12月にAdobe Flash Playerが廃止されるのに伴い,Podcastの再生はHTML5のaudioタグで行うように,外観設定ファイル(Appearance.XML)を修正しました.
  • スクラップブックマークのMozilla FirefoxLunascapeの更新チェックURLとパターンを変更しました.

Ver.0.222b

  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.113.0)にリプレースしました.
  • ChromeベースのMicrosoft Edge 79.0.309.65以降のお気に入り読み書き・ブラウザからのドラッグ&ドロップ・訪問履歴のリストアップ&検索に対応しました.
  • Vivaldi形式のエクスポート時に特殊フォルダの名称を最新の仕様に修正しました.
  • Vivaldi形式のエクスポート時に入力の自動分配が正常に働いていなかったバグを修正しました.
  • Vivaldi形式ブックマークの読み出し&書き出し時にJsonデータのブックマークバー要素のmetaInfo属性のBookmarkbarフラグを考慮していなかったバグを修正しました.
  • Mozilla Firefox 3~形式の特殊フォルダの並び順をブラウザと一致するように整列しました.
  • Mozilla Firefox 3~形式のmobileフォルダは使い道がないのでロードしないことにしました.
  • Opera 25~形式のエクスポート時に特殊フォルダの名称を最新の仕様に修正しました.
  • Opera 25~形式の特殊フォルダの並び順をブラウザと一致するように整列しました.
  • Opera 25~形式のブックマーク要素から特殊フォルダ「共有フォルダ」が消えたので廃止しました.
  • 別形式で保存ダイアログで,エクスポート時に入力からごみ箱フォルダを除外することができるオプションを追加しました.
  • 通知ウィンドウの表示位置をマルチディスプレイ対応して,任意のスクリーンの四隅に表示できるようにしました.
  • 通知ウィンドウの表示オプション「全画面時オフ」のコードをマルチディスプレイ対応版に書き換えました.
  • 環境変数の整形函数に「2個以上の連続するスペースを1個に縮める」動作をする「s」を追加しました.

Ver.0.221b

  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.112.0)にリプレースしました.

Ver.0.220b


Ver.0.219b

  • 開発環境をVS2019に変更して,.NET 4.7.2でビルドしました.
  • 各ウィンドウ/ダイアログのAutoScaleModeの設定を曖昧にしていたため,環境(OSやフォント)に依存してサイズが勝手に変更されてしまう不具合を修正しました.

Ver.0.218b 差し替え版

  • Facebookの公開APIが返してくるJSONにシェア数の情報がなくなったので,ソーシャルボタンの表示方法を修正しました.
  • スクラップブックマークのMozilla Firefoxの更新チェックURLとパターンを変更しました.

Ver.0.218b

  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.110.0)にリプレースしました.

Ver.0.217b

  • 開発を休んでいる間に,Mozilla Firefox 3~のブックマーク仕様がいろいろと変わってフォローしきれなくなったので,本バージョンからしばらくの間はエクスポートや同期出力の機能をオミットします.読み込みに関しては従来どおり動作します.
  • インターネットショートカットファイルの読み込みを自家製メソッドからWindowsAPIに変更します.
  • Mozilla Firefox 3~のキーワード要素やVivaldiのニックネーム要素の読み書きに対応しました.
  • 外観設定のソーシャルボタンから近々サービス終了するGoogle+を削除しました.
  • はてなブックマークの記事表示に使うスナップショットサービスをBlinky(旧MozShot)に変更しました.

Ver.0.216b

  • .NET 4.7.1でビルドしました.
  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.109.0)にリプレースしました.尚,今回より.NET 4.6でビルドしたパッケージを使用しています.
  • 64ビットOSで32ビット版と64ビット版アプリの格納場所を示す省略表記が明確に認識/区別されていないケースがあったので修正しました.また,デフォルトのiCBM3.XMLには32/64ビット両方のブラウザをリストアップしておくことにしました.
  • 初回起動時に無効状態あるいは存在しない項目をデフォルトブラウザとしてセットしてしまう場合がある問題を解決しました.
  • Windows10で他プログラムの「エンターキー打鍵」イベントをiCBM3が拾ってしまう問題が発生したので修正しました.
  • マルチディスプレイにしたとき,カスタムツールチップの表示位置が乱れるバグを修正しました.
  • Windows10になってインタネットショートカットやOPMLファイルのドラッグ&ドロップを受け付けなくなったバグを修正しました.原因はSQDNのドラッグ&ドロップと同じ理由です.
  • Windows10からInternet Explorerのインタネットショートカットのファイル拡張子が.websiteになったので(たぶん,Edgeとの区別を図るため),それに対応しました.
  • Vivaldiのインタネットショートカットは内容のテキスト行頭に空白を入れるという妙な癖があるので,通常のINIリーダーでは読み込むことができません.そこで,行頭の空白を取り除いてから読み込むことにしました.あ~,メンドクサイ.
  • オプション設定ダイアログのブックマークやブラウザタブで追加を2回以上続けて行うと自爆するバグを修正しました.
  • 検索メニューから「Flickr」を削除,「Instagram」を追加しました.また,「ニコニコ動画」の検索クエリーを修正しました.さらに,ほとんどのサイトについてヘッダをhttpsに変更しました.
  • Microsoft-Edgeで開くためのVBScriptを追加しました.
  • スクラップブックマークのCNN.co.jpのFeedから全文取得するクリッピングパターンおとびCSSの参照アドレスを修正しました.
  • 上記の修正によりソーシャルボタンの高さが相対的に小さくなってしまう不都合が起こったのでiCBM3.cssを修正しました.これによって「はてなブックマーク」のボタンは意味なくデカくなってしまったけど気にしない気にしない.

Ver.0.215b

  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.106.0)にリプレースしました.
  • 今まで隠しアイテムだった「モバイルのブックマーク」フォルダがFirefox Quantum (57.0)より正式にマウントされるようになったのでiCBM3も対応しました.ただし,今回はSQLite版のみ導入です.Json版に関してはまだ研究が必要と思われます.

Ver.0.214b

  • 「選択項目をゴミ箱へ」コマンドを実行した時に,ツリー/リスト項目はゴミ箱へ移動しているのにも関わらず,情報ボックスの表示がそのまま残ってしまうバグを修正しました.(自分はいつも「完全削除」コマンドしか使ってなかったので,こんな基本的コマンドのバグなのに長らく放置してました.お恥ずかしい.)
  • ゴミ箱内項目を「選択項目をゴミ箱へ」コマンドで捨てようとすると,今までは完全削除する仕様でしたが,何もしない仕様に変更しました.
  • 項目をダブルクリックしてブラウザ表示させる動作を一時的に無効にする機能(Omit_DoubleClick)は今まで再起動すると忘れてしまう仕様でしたが,次回もその状態を引き継ぐ仕様に変更しました.

Ver.0.213b 差し替え版2

  • スクラップブックマークのLunascapeの更新チェックURLを修正しました.
  • jQueryのGoogleAPI参照を最新版(1.12.4)に更新しました.
  • 「オプション設定|ソケット|パラメータ|既定エンコード」の初期値を"UTF-8"に変更しました.

Ver.0.213b 差し替え版

  • スクラップブックマークのCNN.co.jpのFeedから全文取得するクリッピングパターンを修正しました.

Ver.0.213b

  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.105.2)にリプレースしました.

Ver.0.212b

  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.105.1)にリプレースしました.
  • テキストコンバータ関連の大改造(v0.210bの続き)を行いました.
    • ダイアログ上部に変換アイテムの確認リストを追加しました.
    • 確認リストのチェックボックスから変換対象の取捨選択を行うことができます.
    • 変換後のメッセージをメインウィンドウではなくダイアログ内で表示することにしました.
    • 変換パラメータにミスがあって中断した場合,それ以前に変換を行っているにも関わらず,「取り消し」操作が実行できないバグを修正しました.
    • 検索置換で何も変化がない場合は,以後の整形関数の処理は行わない仕様に変更しました.
  • ツリーのFeedアイテムを情報ボックスに表示して,ミニタグクラウドからチェック日時を変更しても反映されないバグを修正
  • スクラップブックマークのSleipnirの更新チェックURLとパターンを変更しました.
  • 検索バーに関する設定をいくつか修正・削除しました
    • Dictionary.com」と「Thesaurus.com」の検索URLを修正しました.
    • USTREAM」を検索メニューから削除しました.
    • Bing」のファビコンを最新のものに更新しました.

Ver.0.211b 差し替え版

  • スクラップブックマークのLunascapeの更新チェック時に,ダウンロードページからバージョン番号を取得することができなくなったので,別ページから取得することにしました.

Ver.0.211b

  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.105.0)にリプレースしました.

Ver.0.210b

  • テキストコンバータ関連の大改造を行いました.
    • 複数の変換手順をまとめて実行する「一括変換」機能を追加しました.
    • モーダルからモーダレスダイアログに変更したことにより,ダイアログを閉じなくても,メインウィンドウの変換結果を確認できるようになりました.
    • 機能が増えたのでダイアログ上のレイアウトや配色を変更しました.
    • 変換取り消しの際に,更新チェックに係る項目の巻き戻しを行っていなかったバグを修正しました.
  • 情報ボックスのHTML表示のテンプレートのデータ構造を見直しました.呼び出し方は今まで通りですが,別々だった「基礎テンプレート」と「ボディ」をまとめて定義することにしました.これにより記述量は増えますが,テンプレートごとに異なるCSSやスクリプトを含むヘッダを使い分けることができます.
  • 情報ボックス・ブラウザパネルのHTML表示テンプレートで子テンプレートを呼び出す置換子について,通常版と条件付き版がある条件で混在してる場合にキャプチャを誤認してしまうバグを修正しました.
  • HTMLテキストに関連するいくつかの正規表現について,間違ってはいないが回りくどい表現なのでエレガントな書き方に改めました.
  • Feed記事などに表示するSNSボタンをカスタムメイドに変更しました.この記事を参考にさせていただきました.ありがとうございます.シェア数は各SNSのAPIを使ってコールバックで取得する方式なので,純正ボタンの時みたいHTML表示が糞詰まりになることなく,若干レスポンスも早くなったような気がします.

Ver.0.209b 差し替え版

  • Vivaldiの実行ファイルパスをGoogle Chromeに合わせて全ユーザー用に変更しました.
  • スクラップブックマークのOperaの更新チェックパターンを修正しました.

Ver.0.209b

  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.104.0)にリプレースしました.
  • 更新チェックを新規開始する際に,コメント文に%checkマクロの記述がない場合は,全体チェックモードとみなして引数なしの同マクロを自動挿入することにしました.
  • 編集ダイアログ&情報ボックス・エディタパネルのマクロ入力支援メニューに%checkを引数なしで挿入する項目を追加しました.
  • 2016年12月20日頃から,スクラップブックマークの「はてなブックマーク - 注目エントリー」の記事に貼り付けた「はてなブックマーク」のソーシャルボタンのJavaScriptの応答が極端に悪くなったので,暫定的に静的リンクのボタンに差し替えました.

Ver.0.208b

  • 検索バーなどの検索テキスト入力欄で検索オプションをコンテキストメニューを用いて挿入する場合の規則をSQDN v0.87bと同じになるように統一しました.
  • 更新チェック中にウィンドウを最小化状態から表示状態に戻すと,図らずも「ステータスバーの速報ニュース」がリスタートしてしまうバグを修正しました.
  • スクラップブックマークのGoogle ChromeOperaの更新チェックパターンを修正しました.

Ver.0.207b

  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.103.0)にリプレースしました.
  • エディタエンジン「Azuki」を最新版(v1.7.13)にリプレースしました.

Ver.0.206b

  • Mozilla Firefox v48.0において,ファイル「places.sqlite」のテーブル「moz_bookmarks_roots」が廃止されたことにより,SQLite形式のブックマークを読み書きできなくなったので,上記テーブルを参照しなくても良い別の方法に修正しました.
  • v0.205bで導入した「選択を変更した時にステータスバーをクリアする」仕組みは,更新チェック中にそれが起こると必要な表示も消えてしまうという無作法が起こるので改善しました.

Ver.0.205b2

  • facebookの箱型ソーシャルボタンのデザインが変更されたことにより,他サービスのボタンとのレイアウトが崩れてしまったので,シェアボタンと組み合わせて高さが揃ってるように見せかけることにしました.
  • ウェブサイトのスナップショット画像を取得するウェブサービス「Mozshot」が最近殆ど機能しなくなってしまったので,「HeartRails Capture」に再び乗り換えることにしました.
  • スクラップブックマークのFeedのサンプル/Podcastのサンプルを「As It Is - Voice of America」に変更しました.

Ver.0.205b

  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.102.0)にリプレースしました.
  • 訪問履歴検索でもwhere句を使って特定のブラウザの訪問履歴に検索対象を絞り込む事ができるようになりました.
  • ドラッグ&ドロップでiCBM3にアイテム登録する場合に,Vivaldiだけはドラッグデータにタイトル情報が埋め込まれていないので,今までURL情報しか取得することができません.この奇妙な仕様は旧Operaの頃から引き継がれており,開発者に何か拘りがあるのでしょう.しかし,それでは使い勝手が悪すぎるので,Vivaldiだけはタイトルを訪問履歴から取得する(上記のwhere句を使って)方法を導入しました.この方法は未訪問のページ内リンクに適用できないなどの不満点もありますが,オリジナルよりはかなりマシになります.
  • ステータスバーの速報ニュースが停止中に表示されたエラーメッセージはいつまで経っても消えません.これは非常にブサイクです.なので,別アイテムを表示する時にこっそりとメッセージエリアをクリアする仕様に変更しました.
  • ブックマーク検索のwhere句の引数が誤っていても,エラーと認識せず検索を実行してしまうバグを修正しました.
  • スクラップブックマークのLunascapeの更新チェックパターンを修正しました.

Ver.0.204b

  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.101.0)にリプレースしました.
  • 「標準OPML&拡張OPML&簡易HTML形式」でエクスポートを実行すると無限ループに陥ってしまうバグを修正しました.これらの形式では「自動分配モード」フラグを評価する必要が無いのに,それを行ってしまったがために,このような初歩的バグが発生してしまいました.お恥ずかしい.
  • 環境変数の一文字整形関数に「制御文字(0x00~0x19)を除去する」機能の"R"を追加しました.
  • ウィンドウタイトルの表示順を変更しました.
  • facebookのソーシャルボタンの端が欠けてしまったので表示幅を広げました.
  • スクラップブックマークにVivaldiの更新チェック項目を追加しました.

Ver.0.203b

  • 新ブラウザVivaldiのブックマーク読み書きと訪問履歴列挙&検索に対応しました.まだ,ベータ版なので仕様変更で対応できなくなるかもしれないのでご注意ください.
  • ブックマークのエクスポートにおいて,特殊フォルダの自動分配は入力と出力のフォルダタイプが完全に一致しない場合は,無理に中身をバラさず特殊フォルダのまま保持する仕様に変更しました.エクスポートされたブックマークをブラウザで整理し直す時に,バラされていると由来がわからず返って不便な場面が多いのでそうすることにしました.
  • ツールバーの「同期」と「開始」ボタンに,全同期だけのような単機能タイプのものを追加しました.既存のドロップダウンメニュータイプは操作が面倒だと感じる方のために用意しました.
  • 今まで「最大化」したウィンドウを「最小化」して元に戻すと,諸々の事情から強制的に「ノーマル状態」のウィンドウに復元していましたが,普通のアプリと同様の挙動をするように改良しました.
  • 横断検索を行うときの修飾キーと検索コンボボックスを選択した直後に即検索をしないようにする修飾キーは両方ともShiftキーです.同じタイミングで使うことはないので,コンフリクションは起こらないのですが,異なる動作に同じ修飾キーを割り当てるのは良くない仕様です.そこで,前者の修飾キーはAlt,後者の修飾キーはそのままShiftキーとすることにしました.
  • メイン検索バーやエディタパネルの検索バーで,修飾キーCtrlを押しながら検索を行うと検索履歴に記録を残さない機能を追加しました.
  • ブックマークの読み書きや着脱時のメッセージが未だしっくりこないので変更しました.
  • %tempマクロのspecial_folderキーのFirefox3_Menuのスペルが間違っていたので修正しました.
  • ウェブサイトのスナップショットを提供するSearchPreviewサービスの仕様がいつの間にか変更されたので,そのURLを作成するための環境変数/整形関数「a」の返り値を修正しました.
  • ブラウザのコンテキストメニューからiCBM3にアイテムを登録する機能は,Mozilla Firefoxのスクリプト支援ツールがサポート対象外になるなど,正常に動作するブラウザの方が少数派になってしまったので,機能削除はしないが使用推奨はしないobsolute扱いに格下げしました.

Ver.0.202b

  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.99.0)にリプレースしました.

Ver.0.201b

  • Twitterが2015年11月20日にツイート数付きのボタンAPIの提供を廃止したので,情報ボックスのソーシャルボタンレイアウトが崩れてしまいました.代替サービスも登場したようですが,登録制なのでiCBM3の用途にはそぐわないようです.そこで,レイアウトだけ整合するダミーの箱型ボタンを配置することにしました.
  • 「未読」コマンドを実行したとき,リストを未選択にしているにも関わらず,情報ボックスや選択項目数の表示がリセットされないバグを修正しました.

Ver.0.200b

  • テキストコンバーターに「使い捨て変換」モードを追加しました.その場限りの変換を行います.もちろん,気が変わって,定型変換としてリストに登録することも可能です.
  • テキストコンバーターに「出力=入力」スイッチを追加しました.v0.195bで導入したテキストコンバーターは入力に出力エレメント以外の項目を読み込むことができる柔軟な設計なのですが,単純な変換を行いたい場合は逆にこの仕様が煩わしく感じることもあります.そこで,このようなスイッチを設けました.
  • テキスト検索の検索式の{エレメント}に"アイコン"を追加しました.アイコン番号について検索を行うことができます.
  • %feedと%checkマクロのサブキーreadに新パラメータ"copy"を追加しました.コピーコマンドを実行したとき,このパラメータが定義されているならば,アイテムを読了(訪問)したとみなします.それ以外の動作はパラメータ"auto"と同じです.
  • ステータスバーの速報ニュースの表示条件に未読や新着をセットしているにも関わらず,既読Feed記事が表示されてしまうバグを修正しました.
  • テキストコンバーターの置換テキストに「クリッピング」オプションを付加えた状態で,複数の検索一致が見つかった場合の挙動がおかしいバグを修正しました.アルゴリズム的には二重ループの内と外を逆にしてしまっていたという,全くもって初歩的なミスです.お恥ずかしい..
  • 「ブラウザへURLを整形して送る」時に,2つ以上の修飾キーを押しても片方しか認識していなかったバグを修正しました.かなり前から巣食っていたみたいです.自分自身はこの機能を殆ど使ったことがなかったので発見が遅れてしまいました.
  • 起動直後にステータスバーの右端ドロップダウンメニューに新着数が表示されない場合があるバグを修正
  • インターネット検索にwolframalphatumblrを追加しました.

Ver.0.199b 差し替え版

  • 「初期設定|テキストコンバーター|タグマクロをクリア」のパラメータにミスが見つかったので修正しました.

Ver.0.199b

  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.98.0)にリプレースしました.
  • 通常は内容やマクロ指令に応じて,情報ボックスの表示パネルをブラウザもしくはエディタのどちらかに切り替えるのですが,エディタに固定したままにできるスイッチを導入しました.
  • 情報ボックスのブラウザパネルからリンクを開く際に,今までは新規ウィンドウの生成を一部許可していましたが,セキュリティ&操作性の観点から全面禁止することにしました.
  • 情報ボックスのエディタパネルのシンタックスハイライトで,グループタイプの正規表現パターンを複数指定すると,配色がすべて同じになってしまうバグを修正しました.(エディタコントロール Azukiの不具合っぽいのですが,よくわかりません.)
  • 情報ボックスのエディタパネルのマクロ入力支援メニューについて,フォルダアイテム編集時の%displayマクロのサブキーmeは原理上設定できないのでメニューから除外しました.
  • ダブルクリックでフォルダを開くタイミングを微調整しました.開いた後に子アイテムを選択できない場合があるのでチューニングしました.
  • 保存すべきブックマークや更新チェッカのデータベースが膨大になってくると,起動だけでなく終了も時間がかかるようになります.それを心理的に早く見せかけるため,終了時にブックマークやデータベース保存する前にウィンドウを見えなくしてしまうトリックを施しました.
  • Googleのロゴが新しくなったので,検索ボックスのファビコンを差し替えました.
  • スクラップブックマークの「はてなブックマーク - 注目エントリー」の記事などに表示されるソーシャルボタンの体裁を箱形に変更しました.(一応,従来型ボタンのコードも残してあります.)さらに,Pocketボタンを追加しました.
  • チェックアイテムにソーシャルボタンを表示しても意味が無いので削除しました.

Ver.0.198b

  • これまで,ブックマークファイルの読み込み時にエラーが起こった場合は,ブックマーク全体をアンマウントしてしまう仕様でしたが,読み込めたアイテムだけでもサルベージして活かせるようにしました.ただし,エラーが起こったブックマークファイルは,もしかしたら別の方法で読み込むことができるかもしれないので,iCBM3の同期で上書きしないようにするフラグも同時に設けました.
  • これまで,デフォルトスクラップやゴミ箱の二重定義があった場合も,上記と同様にアンマウントしてしまう仕様でしたが,むりやり通常スクラップとして読み込んでしまうことにしました.
  • Opera 25~形式のブックマークのフォルダ構成がまた変更されたので対応しました.こういう基本仕様は公開する時点でコンクリートに決めておいて欲しいもんです.変更が爺の小便みたいに後からちょろちょろ出てくると面倒なことこの上ないわけですよ.ブツブツ..
  • Opera 25~形式のブックマークのフォルダ構成が変更されて,ブックマークの中にスピードダイアルデータが統合されたので,専用ファイルを読み込む必要がなくなりました.なので,Opera 15~で導入したスピードダイアルファイル"favorites.db"の読み込み機能を廃止します.
  • Opera 25~形式のブックマークのフォルダ構成が変更された結果,「特殊項目の列挙」コマンドで共有ブックマーク,スピードダイアル,ゴミ箱,未整理のブックマーク,マイフォルダが列挙できていなかったバグを修正しました.
  • Opera 25~形式のブックマークファイルはGoogle Chromeのそれを独自拡張したフォーマットになっています.なので,Google Chromeと同じ「その他のブックマーク」フォルダも存在しますが,Opera 25~では「CustomRoot」があるために使われず「盲腸」のような立ち位置になっています.これまで,iCBM3はOpera 25~の「その他のブックマーク」フォルダも読み込んできましたが,使っていないフォルダが見えているのは紛らわしいと思われるので読み飛ばすことにしました.更に,前バージョンでは,「CustomRoot」フォルダも読み込んでいましたが,Opera 25~本体のブックマークマネージャーでは見えないようにしているので,それに倣ってiCBM3でも隠すことにしました.
  • Firefox(SQLite)形式のブックマークファイルについて,placesテーブルの構成レコードが増えたせいで書き出しできなくなっていたバグを修正しました.フォーマットがいつ変更されたのか?全く気づいてませんでした.お恥ずかしい.
  • Firefox(JSON)形式のブックマークファイルのタグとFeedに関する書式が変更されたので対応しました.
  • Firefox(JSON)形式のブックマークファイルを読み込む時,セパレータ項目にあるはずのないタイトルを取得しようとしてエラーになってしまうバグを修正しました.
  • Firefox(JSON)形式のブックマークファイルを書き出す時,日付に関する出力がlong型になっていなかったバグを修正しました.(厳密にはこちらのミスではなくLitJSONライブラリのバグに起因)
  • Google Chrome形式のブックマークファイルを書き出す時,コメントから%tempマクロを消去してなかったバグを修正しました.(ところが,この修正をした途端にGoogleがブックマークGUIを元に戻してしまった.なので,コメントを書き出しても標準では見ることができない.拡張機能を使えばあの毳毳しいGUIは復活するけど,どうしたもんだか..)
  • Sleipnir 1Sleipnir 2形式のブックマークファイルを書き出す時,エイリアスアイテムを展開するか否かのフラグが逆になっていたバグを修正しました.
  • Internet Explorer 8以降で導入された「Webスライス」アイテムをFeedと誤認してしまうバグを修正しました.
  • Google ChromeOpera 25~形式のブックマークファイルは両方とも"Bookmarks"と同じ名前なので,今まではマウントする際に中身を読み込んで固有のキーワードから識別するようにしていました.しかし,このやり方では ブックマークファイルが巨大になってくるとオーバーヘッドが大きくなり負担になります.これからは,まず上位フォルダ名から判断できるなら識別して,それがダメならば従来のように中身を読み込んで識別するようにします.
  • Firefox(JSON)Sleipnir 3~形式のブックマークファイルは両方とも"json"と同じ拡張子なので,上記と同様に今までは中身から識別していましたが,まずは上位フォルダ名から判別して,それがダメならば従来のように中身を読み込んで識別するようにします.
  • Firefox(JSON)Google ChromeOpera 25~形式でエクスポートするためのテンプレートファイルを新調しました.
  • Firefox(SQLite)Firefox(JSON)の「スマートブックマーク」やInternet Explorer 8以降の「Webスライス」アイテムは,他形式のブックマークに変換保存しても使い道がないので自動的にスキップすることにしました.
  • 「別形式で保存」コマンド実行時に,Feedアイテムやセパレータを出力するか否か,アイテムのコメントからマクロを取り除いたり,ダイアログを開いたままにするかを設定できるオプションを追加しました.
  • 「別形式で保存」コマンド実行時に,出力パスが重複する状態から,ファイル/フォルダセレクタで別ファイル/フォルダに変更したにもかかわらず,エラーメッセージが消えないバグを修正しました.
  • 「別形式で保存」コマンドをある条件(省略)で自動分配オプション付きで実行すると,元のブックマークの親子関係を崩してしまうことがあるバグを修正しました.具体的にはAddNodeをやめてchild.Addに変更しています.
  • 「ブックマーク同期」コマンド実行時に起こりえるエラーメッセージを,もっとわかりやすい表現に修正しました.
  • オプション設定でブックマークを追加するときに,サポートしていない形式や既に登録済みのファイル/フォルダの場合は,エラーメッセージを表示して弾くことことにしました.
  • オプション設定でブラウザを追加するときに,既に登録済みの実行ファイルの場合は,エラーメッセージを表示して弾くことことにしました.
  • テキストコンバーターダイアログの「入力」テキストボックスの枠を広げました.
  • テキストコンバーターの機能が充実してきたので,編集ウィンドウの複数アイテム編集モードを廃止します.
  • テキストコンバーターで変換した結果に伴う事後処理(タグクラウド更新,更新チェック,ニュース項目の再構成)をまったく考慮していなかった大ポカを修正しました.
  • テキストコンバーターと編集ウィンドウと情報ボックスで行われる事後処理を共通モジュール化しました.
  • これまで,各種コマンドに送る選択項目の定義を「フォーカスがあるコントロールの選択項目」としてきましたが,「リストが選択されている場合はその項目,選択されていなければ親フォルダ項目,親がなければ選択項目なし」に変更します.従来の仕様では,情報ボックスで表示している項目と選択項目が一致しない場合があって紛らわしかったのですが,新仕様では両者が必ず一致します.
  • 上記の仕様変更に伴い,「オプション設定|ツリー&リスト|ツリー|フォーカスコントロールによって選択項目が変化する」フラグを廃止します.
  • 上記の仕様変更に伴い,フォルダツリー選択項目を情報ボックスに表示した状態でミニタグクラウドをクリックしてもリストに選択状態を継承できなかったバグが解決しました.
  • 上記の仕様変更に伴い,ツリーやリストのFocusイベントでボタンやメニューをリフレッシュする必要がなくなったので該当コードを除去します.
  • 新しいメニュー項目 「すべてを選択解除」 を追加します.リストの選択状態を強制解除するコマンドです.また,選択中のフォルダツリーを再度クリックしても同じ動作をします.
  • これまで,タグクラウドモードでリスト項目を選択後に「親へ移動」コマンドを実行した時に,複数選択していても先頭項目しか選択状態を継承できませんでしたが,全部継承できるように改良しました.
  • 再起動時にリストの選択状態を再現する機能はセパレータを除外していましたが,新シリアライズ法の採用でなるべくセパレータも再現できるようにしました.ホントはこんな面倒くさいことしないで,GUIDを割り当てたいところなんですが..
  • セパレータを選択したときは,今まで情報ボックスのタイトルに「未選択」と表示していましたが,それでは連れないので「セパレータ」と明示することにしました.
  • エラーログの書式を変更しました.また,エラーログファイルはセッションごとにファイルを分けて,前回のエラーログは"ErrorLogBAK"と言う具合にバックアップすることにしました.さらに,通知は起動時のみダイアログで行い,実行中はステータスバーにさらっと表示するだけにしました.ダイアログ通知ってのは,鬱陶しいしドキッとしますからね.
  • 起動時のブックマーク読み込み数やオプション設定でブックマークをマウント/アンマウントした数の表示方法(書式)をまたまた変更しました.なかなか,これぞっていう書式が思いつかず試行錯誤が続いています.
  • WebBrowserコントロールでPDFを表示してプログラムを終了すると,ビューアプラグインのプロセスがゾンビ化してしまうことがありました.しかし,最近はそのような問題も解消され,対処する必要がなくなったので該当コードを除去します.
  • %newsマクロのpermitサブキーを編集してもニュース表示や通知ウィンドウにすぐ反映しないバグを修正しました.
  • 外部ブラウザからのドラッグ&ドロップを処理するコードを抜本的に改良しました.このコードは随分昔に作成したまま全然メンテナンスしてなかったので,ブラウザ側の仕様変更に対応しきれなくなっていました.
  • ステータスバーのニュースをクリックすると,条件によっては自爆する問題を解決しました.
  • 起動時の画像ファイル読み込みで,まれに自爆する問題は未だに原因不明ですが,リカバリーをして未練たらしく続行するより,必ず強制終了する道を選びました.

Ver.0.197b

  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.97.0)にリプレースしました.
  • 更新チェッカーのSQLiteデータベースファイルのフォーマットを一部変更しました.ただし,混乱を避けるために,ユーザーが手動で変更を指示するまでは,今までの旧フォーマットを使い続けることができます.
  • 直前に完全削除したフォルダが「進む・戻る」コマンドの表示履歴にゾンビ状態で残ってしまうバグを修正しました.随分前に対処したはずなのに,また再発してしまったようです.お恥ずかしい.
  • テキストコンバータデータをインポート&エクスポートする機能を追加しました.
  • スクラップブックマークのGoogle ChromeOpera 25~の更新チェックパターンを修正しました.

Ver.0.196b

  • Json形式のブックマークの読み込みやマクロ引数の解読で処理に時間がかかっていたコードを改良しました.Google ChromeOpera 25~のブックマークを読み込むスピードが早くなりました.
  • Google Chromeの新ブックマークでコメント(正式には「説明」や「メモ」という名称)がサポートされるようになったので読み書きできるようにしました.これでGoogle Chromeのアイテムにも分類タグを打つことができます.
  • %checkマクロのkeywordサブキーでキャプチャした内容をtitleやcommentやpopupサブキーに流し込むための置換子に{$N}や{$&}を追加しました.どのグループを展開するかなどを明示的に指定する用途に利用します.
  • 起動後に更新チェックするまでの遅延時間の初期値を若干長めにしてみました.

Ver.0.195b

  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.96.0)にリプレースしました.
  • 文字列置換などの操作を「テキストコンバーター」というひとつのダイアログにまとめました.これに伴い,今までごちゃまぜでわかりにくかった「文字列置換」と「環境変数」のパラメータを独立に入力する仕様に変更しました.更に,変換コマンドを取り消すコマンドも用意しました.
  • 情報ボックス・ブラウザパネルの表示用テンプレートを指定した要素(環境変数)がない場合は読み込まないというオプションを付加できるようにしました.例えば,Podcast記事と通常記事が混在するFeedの場合,通常記事にもMP3プレーヤーが無意味に表示されてしまうことを防ぐことができます.
  • 全エントリー項目の「次回チェック日時」をリストアップする機能を新設しました.
  • オプション設定|コピーに既存コピー項目の「複製」を作成するボタンを追加しました.
  • オプション設定ダイアログのサイズを少し大きくしました.
  • %feedマクロに監視テキストを設定するサブキーwatchを新設しました.記事内に監視テキストが見つかったら,記事のリスト項目の文字色を変更する機能です.
  • %feedマクロのincludeキーの合致条件を若干緩くしました.
  • 情報ボックス・エディタパネルで内容を編集中に,外部からそのアイテムに対する変更イベント(RSSの更新など)が来た場合に,編集内容がリセットされてしまう現在の仕様は明らかに不合理です.なので,編集フラグが立っている場合は,外部からの内容変更をリジェクトする仕様に変更しました.
  • 定型文コピーコマンドのショートカットキー(Ctrl+数字)とアイコン変更のショートカットキー(数字)がコンフリクションを起こしていたので解決しました.
  • Web検索結果を情報ボックスに表示したり,設定ファイルの編集を行っている状態で,リストやツリーの選択項目の「親に移動する」コマンドを実行すると条件によっては自爆するバグを修正しました.
  • 初期設定の差し替えフラグconfig_replaceがある条件でヌルオブジェクトになってしまうバグを修正しました.
  • 初期設定(iCBM3.XML)のGoogle Chromeの初期パスを変更しました.
  • スクラップブックマークのFeedのサンプルの「エイゴの時間【podcastで英語のレッスン】」のサイトアドレスと記事構成が変更されたので対応しました.そして,上記の改良した表示用テンプレートをさっそく使っています.

Ver.0.194b

  • エディタエンジン「Azuki」を最新版(v1.7.12)にリプレースしました.

Ver.0.193b

  • Opera 25.0.1614.50でやっと正式導入されたブックマークの読み書きに対応しました.
  • 旧Operaのツールバー項目の位置情報,IE8以降のウェブスライス項目のFeedUrl,IEお気に入りのフォルダの実際の名前,Mozilla Firefox 3以降のスマートブックマークは,それぞれにフラグや変数を用意してブックマーク項目に格納していましたが,それだけのために領域を占有するのはもったいないので,コメントに%tempマクロとして書き出すことにしました.
  • 各種ブラウザのブックマークツールバーなどの特殊フォルダに関するフラグも同様な理由から%tempマクロに書き出すことにしました.
  • Mozilla Firefox 3以降のスマートブックマークとIE8以降のウェブスライス項目への配色を廃止します.それに伴い,外観設定からその配色パラメータを削除しました.
  • 各ブックマーク項目からリストアイテムへの参照を保持しないことにします.その代わり,辞書配列を用意して,それを介して参照することにしました.
  • 「IEのお気に入りをレジストリから読み込む方法」のコード残骸がまだ残っていたので削除しました.
  • Sleipnir 2のブックマークファイルに記録されている並び順パラメータ(倍精度整数値)は,実はまったく使われないので読み飛ばすことにしました.
  • ブックマークを読み書き/アンマウント/同期したときに表示するメッセージ(実行数)が略号すぎて意味不明なので,丁寧に表記するようにしました.
  • 一時無効にしていたブックマークを再度マウントしようとすると,正常に読み込まれているにもかかわらず,アンマウントしたとカウントされてしまうバグを修正しました.
  • 任意のブックマーク項目がどの特殊フォルダに属しているのかを探す関数"FavTool.BelongsTo"をある条件で実行すると返り値がないという不具合を生じるので修正しました.
  • 表示履歴に「最近訪問した項目」が複数スタックされてしまうバグを修正しました.
  • 列挙モードのリストからフォルダ項目をゴミ箱へ捨てるもしくは完全削除する時,もしその子項目もリストに表示されているのならば一蓮托生で削除すべき所をまったく処置していなかったバグを修正しました.

Ver.0.192b

  • SQLiteライブラリー「System.Data.SQLite」を最新版(1.0.94.0)にリプレースしました.
  • 以前から掲示板で指摘があった「一部の環境で.NET 4.5.1版が起動できない」問題の原因が究明できたので対処しました.具体的にはSQLiteライブラリーを静的リンクバージョンに切替えることで,未参照になる不具合を回避してします.対処が必要なのは4.5.1版のみですが,そうすると非対称な依存関係となり管理が煩わしいので,3.5.1版も同時に静的リンクバージョンに切替えます.
  • Windows XPのIE7でしか動作しない「IEのお気に入りをレジストリから読み込む方法」を残しておいても,使い道がないので削除することにしました.
  • Feed記事を見ている最中に更新が発生した場合に,表示アイテムのリスト項目が表示域外に飛んでいかないように,スクロールを阻止する仕組みを導入しました.

Ver.0.191b

  • JSONライブラリー「LitJSON」を最新版(0.90)にリプレースしました.
  • 「情報ボックス|エディタパネル」と「%checkマクロ/keywordサブキーの専用編集ダイアログ」に関する外観設定に「ペア括弧強調」スイッチを追加しました.これに伴い「外観設定ファイル」の該当パラメータを含む要素の構成を変更しました.
  • 外観設定ファイルの読み込みで例外エラーが発生した場合は,有無を言わさずiCBM3を強制終了する仕様に変更します.長い間この問題が放置されていたことに,改めて自分の間抜けさを痛感しています.
  • 例外エラーが発生した時にエラーログをいきなり表示するのは唐突なので,エラー発生を知らせる簡単なメッセージダイアログを表示して,そこでログも開くかどうかを尋ねることにしました.
  • 更新チェックなどのソケットの仮のユーザーエージェント名が,古くなりすぎたので新しめの名称に変更しました.

Ver.0.190b

  • エディタエンジン「Azuki」を最新版(v1.7.11)にリプレースしました.
  • Google ChromeMozilla Firefox 3~のブラウザ訪問履歴を取得する際に,titleレコードがnullや空の項目はSQLite命令の段階で撥ねるようにしました.
  • スクラップブックマークのLunascapeに関する更新チェックページとパターンがレスポンスが悪くなったので修正しました.

Ver.0.189b

  • SQLiteライブラリー「System.Data.SQLite」を開発最新版(1.0.93.0)にリプレースしました.
  • 「別形式で保存」コマンドを改良しました.
    • 実行条件が整わなければ,「実行」ボタンをクリックできない仕組みにしました.
    • 出力するフォルダと名称を別々にセットするやり方は面倒なのでひとつにまとめました.
    • 同名出力名が存在する場合は,その都度派手にエラーメッセージを表示します.
    • 実行後に出力場所をエクスプローラで開くオプションを追加しました.
    • 実行後にメインウィンドウのステータスバーに結果メッセージ表示することにしました.
  • 「文字列置換」コマンドに「事後処理(整形関数)」オプションを追加しました.
  • %feedマクロのpagesサブキーにゼロをセットすると,新着記事を受信する場合は過去記事をすべて削除するオプションを追加しました.
  • 「ゴミ箱に捨てる」コマンドを実行した後に,ドラッグ&ドロップでアイテムを移動した時と同じく移動先に視点が移るのは,なんだか「ゴミ箱を覗きこんでいる」ようでお行儀が良くないので,このコマンド実行時は視点を移動しないことにしました.
  • Feed記事をドラッグ&ドロップしようとすると,「コピーに移行します」という音付きメッセージが表示されますが,けっこう鬱陶しいので事後にメッセージを表示することにしました.ついでに,「移動/コピー/削除/ゴミ箱を空に」コマンドも事後にメッセージを表示することにしました.
  • 「テキスト置換」系コマンドが終了したらメッセージを表示することにしました.
  • 「次回チェック日時」を変更した時のメッセージがあっさりしすぎなので少し詳しくすることにしました.
  • 「起動時のブックマーク読み込み」と「同期」コマンドと「オプション設定」コマンドでブックマークの着脱を行った後のメッセージを改良しました.ブックマークの読み書き数やアンマウント数の情報も表示することにしました.
  • スクラップブックマークのMozilla Firefoxに関する更新チェックパターンが変更になったので修正しました.

Ver.0.188b

  • CCBでの公開に引き続き,.NET Framework 4.5.1でビルドすることにしました.念の為,.NET 3.5でビルドしたパッケージも置いています.
  • Sleipnir 3~のブックマークの入出力に関する下記の不具合を修正しました.
    • 2種類あるFeedアイテムの定義方法の一方しか対応できていなかったバグを修正しました.(何故2種類もあるんだ.紛らわしい.(心の声))
    • 仕切り線(セパレータ)に対応しました.
  • 「別形式で保存」コマンドにて,ブックマークファイル"favorites3.json"を出力する場合は「Sleipnir 3~」という名称のメニュー選択肢にしました.
  • Operaのv12以前と15以降のブラウザ訪問履歴を今まで分けていましたが,両者を同時に使っているケースはよほどの物好きしかないだろうと想像します.そこで,これらをひとつにまとめて表示することにしました.
  • Opera 15~以降のブラウザ名を「Opera15」と表記していましたが,バージョン番号抜きの「Opera」と表記することにしました.但し,内部認識コードは今までどおり「Opera15」と記述します.
  • ConvertToHtmlText(HTMLテキストを平文化)コマンドに関して,以下の二つのケースは動作の軽量化を目指すためにCCBで採用した簡易版メソッドに置き換えることにしました.1)部分更新チェックの「ダイナミックタイトル/コメント」で{keyword}変数を平文化する場合,2)速報ニュースのツールチップを表示するときに内容を平文化する場合.その他の適用例に関しては従来通りのメソッドを使用します.
  • 未使用変数の除去しました.

Ver.0.187b

  • HtmlToolクラスのConvertToPlainTextメソッド(HTMLテキストを平文に変換する)のアルゴリズムを見直しました."script"や"style"などのタグを正常にスキップできない問題などを解消しました.
  • 「速報ニュース」をマウスホイールでスクロールする時は,ツールチップ(要約)がそれに呼応して変化するのですが,キー操作でスクロールするときは,この動作を考慮していなかったミスを修正しました.
  • SQLiteライブラリー「System.Data.SQLite」を開発最新版(1.0.92.0)にリプレースしました.

Ver.0.186b

  • CCBSQDNと同じように「暗黙の検索オプション」を事前に設定できるようにしました.
  • 今後の開発で生じうる混乱を避けるために,RegexTool.CreateRegexの引数規則をCCBSQDNに揃えました.
  • 検索パターン中の"&&"や"||"と言った文字列をエスケープ&アンエスケープをしていなかったバグを修正しました.

Ver.0.185b

  • エディタエンジン「Azuki」を最新版(v1.7.9)にリプレースしました.
  • SQLiteライブラリー「System.Data.SQLite」を開発最新版(1.0.91.0)にリプレースしました.

Ver.0.184b

  • SQLiteライブラリー「System.Data.SQLite」を開発最新版(1.0.90.0)にリプレースしました.
  • 検索と置換に関するコードを全面的に書き直しました.
    • CCBの検索書式を更に発展させたテキストパーサー
    • いくつかの検索オプションを廃止,その一方で置換オプションを新設
    • 置換コマンドにクリッピングモードを追加
    • 最大置換回数の設定
    • 検索ボックスの選択項目直上にツールチップを表示するように
    • 検索ボックスの最大幅を初期設定から設定
    • ウェブ検索の「bing」と「weblio」のアイコンを最新のものに差し替え
    • ウェブ検索の「Twitter」と「Ustream」と「Yahoo! 辞書」と「weblio」のクエリーを最新の書式に書き換え,また「Yahoo! 百科事典」はサービスが終了したので削除
    • 情報ボックス/エディタパネルの検索ボックスをコンボボックス化
    • 情報ボックス/エディタパネルの検索ボックスからブックマーク検索
    • 情報ボックス/エディタパネルの検索ボックスとソースウィンドウの更新チェックパターンの「検索オプション」はコンテキストメニューから入力することに
    • 「重複項目列挙」コマンドを廃止
    • エイリアスパスの書式を変更(%aliasマクロで囲まない,エスケープの簡略化)
    • ブラウザのコンテキストメニュー用スクリプトを新検索コマンド名に修正
  • ブックマークアイテムの要素に「作成日時」を追加しました.これに伴い,旧Operaブックマークの「作成日時」による自動整列に対応しました.
  • 今まで%feedマクロのclipサブキーはそれだけで自動的に記事取得してコメント欄に内容を流し込む仕様でしたが,これからは同マクロのcommentサブキーに"{$clip}"という置換子の記述を含んでいないと,記事取得に行かない仕組みにしました.従来に比べ.手順が複雑にはなりますが,コメント欄に記事内容以外の情報も工夫によっては取得/記述することができるメリットがあります.
  • はてなブックマークからタグを自動取得するアルゴリズムを改良しました.
    • 前回のチェックで取得失敗した場合に,次回チェック時に再試行する
    • ブックマーク数がある閾値を超えないと,自動取得に行かない
    • 自動取得失敗したときに残る"{$hatena}"置換子はタグクラウドに表示しない
  • タグクラウド表示に関する改良を行いました.
    • ブラウザコンポーネントがIE11になってCSSの仕様が変わったようで,選択タグの配色が上手く動作しなくなったので細工を施す.しかし,小手先の修正なので,これでいつまでもつかは不明.
    • 表示に関するレイアウトや配色を外部ファイル(外観設定ファイル&専用CSSファイル)から参照することに
    • 情報ボックスのミニタグクラウドの配色/フォントをメインのタグクラウドと独立に設定できるように
  • 「最近訪問した項目」コマンドのアイコンはブラウザ訪問履歴と同じなのは紛らわしいので独立したアイコンに変更しました.
  • Feedアイテムの記事を取得するアドレスの呼び名を"RSS"に統一しました.今まで入れ物(フォルダ)と取得アドレスを同じ"Feed"という名前で呼んでいましたが,区別をわかりやすくするために別々の呼称にすることにしました.
  • 環境変数の囲み記号に"[..]"も使えるようにしました.今までの"$..$"はコンフリクションの危険性は低いけれど,視認性に欠けるので導入しました.しかし,新記号がコンフリクションを起こす場合のために,旧記号の書式も残しておきます.
  • 環境変数の第1パラメータに作成日時を指定するaとA,RSSアドレスを指定するrを追加しました.
  • Opera 15~のブックマークファイル(未公開)の書式がGoogle Chromeとほぼ同じ(若干ローカルルールあり)になったので対応しました.実は随分前に変更されていたらしいのですが,まったく気づいてませんでした.普段,Opera 15~をまったく使っていないことがバレちゃいますね.
  • ステータスバーの速報ニュースを手動で移動するボタンを廃止しました.その代わり,グローバルショートカットキー(Cntrol+Left/Right)で操作できるようにしました.マウスホイールによる操作も従来通り使えます.
  • 重大な例外エラーが発生したときに表示するダイアログを廃止して,一般エラーと同様にステータスバーにメッセージを表示することにしました.ただし,今まで同様にエラーログは初期設定フォルダ内に出力します.
  • 削除などの外的理由で,アンマウントされたブックマークファイルに属するフォルダツリーの開閉状態を起動時に再現しようとして,実体がなくなっているのでヌル参照になるバグを修正しました.
  • Firefox(HTML)形式のブックマークのHTMLタグの属性値が空文字の場合に読み込めないバグを修正しました.
  • 「オプション設定|コピー」にて既存のパラメータを編集して設定ダイアログを閉じても,すぐにはツールバーやメニューに反映されないバグを修正しました.
  • 数値入力コントロールでエンターキーを押した時,BEEP音が鳴らないようにするトリックを施しました.
  • スクラップブックマークのSleipnirに関する更新チェックは,Sleipnir 5に限定して他のバージョンのチェックはやめることにしました.

Ver.0.183b

  • Ver.0.182bで「フォーカスと選択項目の関係」を仕様変更しましたが,また他コマンドと不整合が起こるケースが見つかりました.この調子だと未だ見つけていない不整合がありそうな気がします.そこで,v0.181b当時の仕様に戻して,様子を伺うことにしました.
  • ただし,例外的に「ブックマーク同期」と「更新チェック」ボタンは選択項目の状態に関係なく,常に有効にしておく仕様に変更しました.
  • IE11のJavaScriptではdocument.selectionが使えなくなりました.その結果,IE11のコンテキストメニューからページ登録等を行うスクリプトが実行できません.そこで,IE11でも下位バージョンでも動作するようにスクリプトコードを修正しました.
  • Podcast記事で動作するMP3プレーヤを"http://flash-mp3-player.net/"のものに差し替えました.
  • 初期設定にSleipnir 5のブックマークと実行ファイルの定義を追加しました.スクラップブックマークの更新チェックは,リリースノートの書式がまだ固まってないみたいなので,もう少しバージョンを重ねてから追加することにします.
  • SQLiteライブラリー「System.Data.SQLite」を開発最新版(1.0.89.0)にリプレースしました.

Ver.0.182b2

  • 前回の選択項目に関する仕様変更のせいで,更新チェック時間設定ができなくなってしまったバグを修正しました

Ver.0.182b

  • コマンドに送るアイテムについて,フォーカスがあるコントロールの選択項目を対象とするか,フォーカスがどこにあっても必ずアイテムリストの選択項目を対象とするか,選択できるオプションを設けました.
  • エディタパネルの検索強調をリセットするのに,Azuki 1.7.8から導入された方法を用いることにしました.一方,ソースウィンドウのマーカーはプリミティブな表示アルゴリズムなので,従来通り「山田の方法」でリセットしています.
  • ブラウザにURLを送るとき,"%"が過剰にURLエンコードされるバグを修正しました.
  • v0.177で採用したウェブサイトのサムネイル画像表示サービス「HeartRails Capture」より,以前使っていた「Mozshot」の方が最近調子が良いので,こっそり元に戻しました.

Ver.0.181b

  • エディタエンジン「Azuki」を最新版(v1.7.8)にリプレースしました.

Ver.0.180b

  • SQLiteライブラリー「System.Data.SQLite」を開発最新版(1.0.88.0)にリプレースしました.

これより以前の改造履歴

inserted by FC2 system
loading