0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ブックマーク.htmlを初心者でもJavaScriptで整理整頓できるのか

Last updated at Posted at 2020-06-03

iPhone3G-5sまでアップル漬け。
それ以降Android所有。
Googleを信用せずマイクロソフトを信じてる人。

古いiPhoneのバックアップデータ(10年前~4年くらい前)をiBackupbotで読み取り、SafariブックマークをHTMLに書き出す。
iPhoneを定期的に初期化し清潔を保っていたため毎度UUIDが変わるためバックアップもちらかっていた。
およそ20個ほどのUUIDから20個のHTMLを作成。この時点で奇人。

PC上のとっちらかってるエクスポートブックマーク.htmlをEverythingで30個ほど見つける。

Edge, Firefox, Chrome, Ironの最新ブックマークをHTMLに書き出す。

type *.html > merge.txt

で適当に連結。12万行になる。

テキストエディタで掃除、整理整頓、ソート、フォルダ削除。簡易的な重複削除。1万行。

JavascriptでURLが全く同じであれば重複削除。5000行まで圧縮。

10年間で5000ブックマーク。暇人すぎる。

閑話休題。

目標1は
・フォルダ構造をぶっ壊してしまったため機会的にフォルダ分けして動作を軽くしなければならない。
・サブドメインを含めないドメイン名主体で整理。
・互換性のあるフォーマットでHTML出力。

ブックマークバー/アーカイブ/ドメイン頭文字/ドメイン/固有のブックマークという構造
(例)
ブックマークバー/アーカイブ/a/apple.com/<a href="https://music.apple.com">‎Apple Music</a>

目標2は
フェッチAPIでDNS解決可否、サーバからお返事があるのか聴く。
なければ
ブックマークバー/インターネット・アーカイブ/a/apple.com/<a href="https://web.archive.org/web/*/https://music.apple.com">[IA] Apple Music</a>
のリンクに差し替える。
(フェッチAPIが有用なのかはわからないけれど)

目標は今月末まで。

ざっと調べた限りでは
Location, URLインターフェイス他ネイティブで用意されているパーツも使えそうであるがサブドメインやら扱うのが難しい。
正規表現でやってみようと思ったが汚くなるのでやめた。

document.querySelectorAll("a")[50].hostname;
"foo.bar.com"

見立てでは初心者でもかんたんで少量の記述量で済むjQuery, URI.jsに頼って書くが楽そうだ。

プログラミングに関することも書いておかないと規約上いけませんので

let uri = new URI("http://abcd.efgh.example.org/foo/hello.html");

uri.subdomain(); 
"abcd.efgh"

uri.domain(); 
"example.org"

uri.tld();
"org"

uri.domain()[0]; 
"e"

JR東海のポスターのごとく「ラクだ!」

プロなら30分の仕事かもしれない。

URI.js - https://medialize.github.io/URI.js/docs.html

目標1達成

ブックマークのHTMLフォーマットが厄介で悪戦苦闘

ok.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?