iPadからAppStoreで「Markdown」で検索してはアプリを入れまくっています。魚住です。

最近、「Spaces」というMarkdownアプリを見つけました。

新参者のアプリです。このアプリはプレミアムの売り方がちょっと特徴的です。

こちらの画像を見てください。「Only valid till 15th Jan or for the first 1000 users」とあります。

つまり、1月15日まで、もしくは先着1000名までは、4280円買い切りという意味です。モバイルバッテリーで有名なAnkerと同じ臭いがします。

しかも、公式サイトではまだドキュメントが間に合っていないものの、「Import from Ulysses」や「Import from Bear」という項目を用意していいます。なかなかの強気です。

まさに今、Markdownエディタ戦国時代と言っても過言ではないほどの激戦が繰り広げられています。新規参入や仕様のパクりがあまりにも多すぎる。

Spaces.
無料
(2021.01.05時点)
posted with ポチレバ

このSpacesというアプリは、少し使ってみるとUlyssesやBearと同じような、独自ライブラリ構築系のエディタでした。

Appleが用意したCloudKitというライブラリを使って、iCloudを使ったファイルの同期を行う機能が実装されてはいるものの、CloudKitで扱うファイルはiCloud Driveにそのまま保存されるわけではありません。

例えば、NotePlan3でiCloud Driveでの同期をやめてCloudKit方式に切り替えると、編集した時点で同期を試みて、iCloud Driveのようにいつ同期されるかわからないストレスを感じることなく読み書きできます。

しかし、Macからそのファイルの保存先を探ってみると、**「/Users/ユーザ名/Library/Containers/co.noteplan.NotePlan3/Data/Library/Application\ Support/co.noteplan.NotePlan3/」**という場所に保存されていることがわかりました。

これではNotePlan3同士でのファイルのやり取りがいくら快適になったとしても、肝心な他のエディタからの参照が出来なくなるわけです。上記のパスにあるファイルを別アプリで直接編集したとしても、NotePlan3で編集したわけではないので、CloudKit同期もされません。

話をSpacesに戻すと、このアプリも結局はUlyssesやBearで育ててきたプライベートな文書ライブラリを奪いたいわけです。

僕が欲しいのは独自ライブラリ構築系じゃないんじゃ。iCloud Driveに溜め込んだMarkdownファイル群を直接編集したいエディタが欲しいだけなんじゃ。

独自仕様のファイルの中身を覗いてみる

前回の記事で、Bearが次のMarkdownエディタを開発中という話を話題にしました。「Panda」と言うそうです。シロクマの次はパンダか。
このPandaのMac版のAlpha版が既に公開されていたので、試してみました。すると、画像を挿入した状態で「.panda」という拡張子のファイルを保存しようとしたのです。

おいおいまじかよって思いましたね。純粋なMarkdownエディタを作ってるんだろ?なに独自の拡張子で保存しようとしてんだ?と思ったわけです。

この時の想いをすぐフォーラムに書き込みました。

If you save the file with just text, you can save it as md. However, if I try to save it after inserting an image, it will be in .panda format.
Perhaps you have also included an image file in the file. However, I can’t edit it from other editors with this. Isn’t it possible to save the file as pure Markdown?

DeepLを頼りに想いを英訳して投稿しました。
https://beta.bear.app/t/why-is-the-file-format-panda/1003/2

すると、こういう返事が返ってきました。

Hi there,

Panda read and write in pure Markdown if there are no images/files attached to your document, as text files can only contain “text” :slight_smile:

If you add an image or a file to the document, the format is changed to .panda, which is an open format: Textpack which is a zipped TextBundle.

This is a common format used to bundle text and images/files together, there are other editors who support it, but you can always unzip it and extract your Markdown file and your attachments.

We’re trying to use open formats and let you in full control of your data, we’re also open to any suggestion on this matter.

Let me know what you think about this!

Best.

https://beta.bear.app/t/why-is-the-file-format-panda/1003/2

なるほど、.pandaはテキストと関連するファイルをzipで圧縮した、所謂Text Bundleなのね。

.pandaの中身

というわけで、実際に中身を覗いてみることにしました。

適当な見出しと本文と画像を挿入したファイルを.pandaとして保存したので、複製して拡張子をzipに変更してから解凍してみました。

これが.pandaの中身です。メタデータのinfo.json、本文のtext.md、画像がassetsに入っていました。

text.mdの中身は確かにMarkdown記法に準拠したものでした。

むむむ、中身は確かにMarkdownだ。しかし、.pandaなんて拡張子のファイルを作られてもなぁ。
という感じに文句ばかり言っても仕方ないので、何故.pandaにしたのかという理由を考えました。

  • 関連付けが取り合いにならない
  • 別アプリで開かない

こんなところでしょうか。まず独自の拡張子にすることで、ファイルの関連付けの取り合いが無くなります。つまり、ダブルクリックすればPandaで開くことになります。そして拡張子をzipのままにしておけば、ダブルクリックでPandaで開かずに、設定によっては解凍が始まってしまうわけです。
この事故を未然に防ぎ、確実にPandaでファイルを開くためには、独自の拡張子にするしかなかったわけです。

ん〜そう考えるとある意味納得できるかも?

いやいや、騙されてはいけません。

現在のPandaの仕様はやばいんですよ。

「aaaa.md」をPandaで開いて、画像を挿入すると、「aaaa.panda」として上書きされるんですよ。
何この謎仕様!元のmdファイルを返せ!せめて同じフォルダにassetsフォルダ作ってそこに画像を入れてくれよ!しかも.pandaの中にあるのは「aaaa.md」じゃなくて「text.md」だったあ”あ”あ”あ”あ”あ”あ”あ”

結局、シロクマもパンダも、絶対浮気させないように束縛するメンヘラかまってちゃんだったってことかよ・・・。

.ulyzの中身

はぁ。Pandaめ。ああいう独自仕様まじでやめてほしぃ。
では、Ulyssesが吐き出す独自形式「.ulzy」についても少し触れようと思います。
これも所謂Text Bundleです。正しい拡張子はzipです。

「.ulyz」を「.zip」に変えて、解凍します。すると、「.ulysses」が出てきました。

「.ulysses」を更に「.zip」に変更して中身を見てみると、Content.xmlとMediaフォルダが入っていました。Mediaフォルダの中には、画像ファイルがありました。


Content.xmlの中身は、xmlなのでhtmlに近いタグが並んでいます。段落とかは

タグが入っていますね。xmlはhtmlの仕様に近い、言わば親戚みたいなものなので納得できます。

というか、xmlで保存しているあたり、ちょっとUlyssesには時代を感じます。設計思想が古いのかもしれませんね。

ええいiPadで動く理想のMarkdownはまだか

TwitterやRedditを覗いてみると、海外でもiPadで動くMarkdownエディタを欲している人が多いようです。まぁ現時点の大半がiAWriterか1Writerなんですけどね。
iAWriterのiPad版の日本語入力バグが直って、画像の仕様が変更されたら最高なんだよなぁ。