nDiki : URL

URL - Uniform Resource Locator

URI escape (Perl)

によると

 $str =~ s/(\W)/'%' . unpack('H2', $1)/eg;

 $str =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg;

がはやいそうです。

application/x-www-form-urlencoded でのエンコード (Perl)

同じく

によれば、

 $str =~ s/([^\w ])/'%' . unpack('H2', $1)/eg;
 $str =~ tr/ /+/;

 $str =~ tr/+/ /;
 $str =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg;

がはやいそうです。

RFC

  • RFC1738 - Uniform Resource Locators (URL).
  • RFC1808 - Relative Uniform Resource Locators.
  • RFC2368 - The mailto URL scheme.
  • RFC2396 - Uniform Resource Identifiers (URI): Generic Syntax.

関連情報

スポンサード リンク

2021年2月17日 (水)

Obsidian Publish したノートGoogle Chrome の新しいタブに表示させる

Obsidian Publish したノートにアクセスした時の表示が速くて驚いている。

これはいいと Google Chrome のホームボタンで表示するページ用に Obsidianノートを2日前に作成し設定した。いい感じなのでさらに Google Chrome で新しいタブを開いた時にも表示しちゃおう。

Chrome 拡張機能 New Tab Redirect を入れて Obsidian Publish したノートURL を設定。

最近の関心事をブラウズするための内部リンクだったり、よくアクセスするためのリンクを書いておくとなかなか便利だ。

[ スタートページ ]

スポンサード リンク
[ 2月17日全て ]

2021年2月24日 (水)

Google ドキュメントで社内向け Top of Mind ノートを作った

ディスカッションのきっかけになっていいのかもと社内向け Top of Mind ノートを作ってみた。共有範囲の管理を考えてまずは Google ドキュメントで作成。自分の Google Chrome のスタート ページとタブを開いた時のページにも指定してみた(多少表示が速くなるかなと /preview な URL を指定)。

最初は直接 Google ドキュメントに入力していたけれど手元の Markdown ファイルと別々だと煩雑すぎるので、他のドキュメントでやっている Marked 2 で変換して貼り付ける方法で更新することにした。

インターネット公開している Top of Mind ノートに比べて「読まれるかも/読まれているかも」感が薄くて(明示的に誰にも共有していないからそれはそうだ)まだそれほどテンション上がっていないけれど、しばらく続けてみる。

[ Markdown で書いているノートを Google ドライブで共有する ] [ スタートページ ]

[ 2月24日全て ]

2021年2月25日 (木)

Obsidian Publish サイト内のフォルダ名を先頭が大文字の複数形に変更した

Obsidian Publish サイト nNodes 内でのフォルダ名を「先頭が大文字の複数形」に変更した。もし気が変わってサイトの左側にナビゲーションを表示することにした際、「先頭が大文字の複数形」の方が目次的にしっくりくるかなと。

多くのノートURL が変わるが、被リンク・ Google 登録インデックスもほとんど無いので今のタイミングならまだいいだろう。

今、ナビゲーションを表示していない理由

Obsidian Publish で「ナビゲーションを表示」を有効にするとサイトの左側にノートがディレクトリ表示される。

目次やアウトラインのように見えつつも辞書式順序なので違和感があるのが表示していない理由の1つ。

それからディレクトリ表示で気になるノートを直接開くより、ノートの中のリンク・バックリンク・グラフビューで順番に辿っていった方がエキサイティングだろうというのがもう1つの理由。

[ 2月25日全て ]

2021年2月26日 (金)

Obsidian 内部リンク形式を参照解決して Markdown 形式に置き換えるフィルタを書いた

Obsidian ノートとして内部リンク方言([[ファイルベース名]] や [[ファイルベース名|表示テキスト]])を書いた Markdown ファイルを HTML ファイルに変換する場合は Marked 2 から[[・]]を消す自作フィルタをプリプロセッサとして呼ぶようにしている。

単独ファイルとして HTML ファイルに変換する場合はこれで良かった。しかし最近はノート間のリンクを残しつつ変換したくなってきた。

ノートYAML front matter にそのノートURL (今だとノートGoogle ドキュメントにして共有しているので Google ドキュメントURL)を URL キーで宣言してある。内部リンク先の Markdown ファイルを探して URL が宣言されていれば [ファイルベース名](URL) あるいは [表示テキスト](URL) に書きかえるよう自作フィルタを改良した。

これでリンク元 Markdown ファイルではリンク先ノートURL を記述しておく必要がなくなり、普通に Obsidian ノートして書くだけでよくなった。めでたし。

[ Markdown で書いているノートを Google ドライブで共有する ]

[ 2月26日全て ]

2021年5月7日 (金)

PopClip の「リンクを開く」アクションで認識する URI scheme を増やす

PopClip の「リンクを開く」でアクションで認識する URI scheme (URL scheme) を増やすには defaults コマンドを使う。 obsidian://〜 を認識できるようにするには

 defaults write com.pilotmoon.popclip OtherURLSchemes -array obsidian

を実行する。

Obisidian 上のプロジェクト支援資料ノートを開くリンク obisidan://open?〜 をタスク管理ツール Remember The Milk のタスクノートに書いておき、 PopClip で開けるようにしたいので設定した。

PopClip 便利。

[ 5月7日全て ]

2021年6月14日 (月)

Google ドライブに同期して共有する Markdown ノートテキストファイル に ID を埋め込む

Markdown ノートテキストファイルを rclone で Google ドライブに同期して共有できるようにして、さっそく「共有用の URL をどうしようか」となった。

継続的なノート整理でファイル名変更・フォルダ移動をローカルホスト上でしつつ rclone で同期するので Google ドライブでのファイル ID が変わり URL も変わってしまう。

Zettlr を試した時にやっていた ID を 「yyyymmddHHMMSS」形式で YAML front matter に埋め込んでおくのが妥当かな。で

 https://drive.google.com/drive/search?q=ID

URL を共有すると。

[ ノート・日記はテキストファイルに ] [ Markdown で書いているノートを Google ドライブで共有する ]

[ 6月14日全て ]

2021年6月15日 (火)

今日のさえずり: ユニーク ID を検索する URL をもってファイルの疑似 permalink とする作戦、昔から幾度となくやってる気がする

  • 07:48 Automattic Inc. が Day One を買収か。びっくり。
  • 10:05 Harajuku Station #photography #Pixel4 https://t.co/yk71UmMnSw
  • 10:08 今日は原宿駅から代々木公園を通って渋谷へ。 気温・湿度的に朝歩くのちょっと大変になってきた。
  • 11:50 サラダチキン + 生野菜ランチ生活20日目。 だんだんワカメの甘みがわかってきたので、ワカメを増量気味に。
  • 12:16 ファイルにユニーク ID を書き込んでおいて、そのユニーク ID を検索する URL をもってファイルの疑似 permalink とする作戦、昔から幾度となくやってる気がする。
  • 21:24 朱 #photography RICOH GR III #GR #GRIII #GR3 https://t.co/syjwJXtazp
  • 22:03 小学生の頃、学研の科学のふろくでゲルマニウムラジオを作った記憶がある。
  • 22:06 あとシーモンキーも飼育した。 最終的に干からびさせたような。うろ覚え。
  • 24:52 @maru_kei 火縄銃! 学研の学習の方も子供心をくすぐる付録があったんですねー。
[ 6月15日全て ]

2021年8月13日 (金)

Next.js で nDiki を作り直そうと考えて引っ込めた

Web サイトの移行の話が出た流れで、この Web 日記についてちょっと考えたりした。

Perl で書いた自作の日記システム (CGI プログラム) で問題なく動いているが、手を入れずに使い続けているので将来環境(Perl やライブラリ)のアップデート時にハマるのではというのがあると、このまま記事が増え続けた時に問題が起きるのではというのがあり、気掛かりではある。

配信環境に依存しないように静的サイトジェネレータで生成する形に変えたらいいのではと、以前から思ったりしている。

ちょっとしか使ったことがない JavaScript を学ぶ機会としても Next.js とかどうかなとちょっと調べてみた。

個別記事ページを静的ページとして生成するのはいいとして、自動リンク機能で実現しているキーワード別ページとそのページングがちょっと厄介そう。やれるとしても今の URL 体系も一部変えなければいけないな。

今の日記システムに手を入れるのを再開して、 Markdown 対応させるのが先かな。

[ 8月13日全て ]

2021年8月15日 (日)

Web ブラウザで表示した Obsidian Publish ノートをデスクトップアプリで開くブックマークレット

Obisidian Publish サイトで公開している自分のノートWeb ブラウザで見ていて編集したくなった時に、 Obsidian デスクトップアプリでそのノートを開くのがまどろっこしい。

Obsidian デスクトップアプリは obsidian という URI scheme でファイルを開けるのでブックマークレットを作った。

Obsidian vault 名が nNodes、Obsidian Publish サイトの URLhttps://notes.naney.org/ (独自ドメインを設定)なので以下。

 javascript:window.open("obsidian://open?vault=nNodes&file=" + location.href.replace("https://notes.naney.org/","").replace(/\+/g, " "))

今までどうしてやらなかったのというぐらい便利。

[ 8月15日全て ]

2021年8月22日 (日)

過去の Web 日記を移行し直す

Web 日記システムを2004年2月22日に今の自作のもの変えたのだが、それ以前の記事の移行が不完全なままで止まっておりでずっと気になっていた。やはりちゃんと移行しよう。

考えると過去に進まなかった原因の1つが「1日単位」の日記エントリから、「トピック単位」の日記エントリに分割することだった。

「移行すると1日の中の順序情報が失われるなー」「分割した記事ごとに URL (ファイル名)を決めるのが大変だなー」「ハイパー日記システム (hns) 時代の日記には Tweet のように短いエントリ(セクション)もいろいろあって、そのまま分割すると細分割しすぎ感が出たりするよなー」あたりがモヤモヤしていた。

自動リンク機能によりキーワードで記事を串刺し表示する今の Web 日記システム的には、1日単位ではなくトピック単位で分割した方が情報構造的にいいのだけれど、まあ「日記」なので記録として残っている(移行済みである)ことの方が大切だな。

「古いものは無理して分割せず1日1エントリにする」「そこから適宜トピックを取り出して別エントリにする」で移行しなおすことにしよ。

[ 8月22日全て ]

About Me

Naney Naney

Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

About nDiki

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。

#nNote タグがついている記事は他の記事に比べて、より断片的・未整理・不完全なちょっとしたノートです。まだ結論に至っていない考えなども含まれます。頻繁/大幅に更新したり削除したりすることがあります。

※本サイトの内容は個人的見解であり所属組織とは関係ありません。

Other Notes

ナレッジベースアプリケーション Obsidian で書いているノートの一部を notes.naney.org で 公開しています。

最近検索されている記事

Process Time: 0.090124s / load averages: 0.41, 0.46, 0.53
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker