空談録

世界で5人くらいに役立ちたい

OneNote XMLからHTMLが作りたかった

作りたかった(願望)

というわけで最近いじってるOneNoteXMLをもとにHTMLを作り出すよくわからないプロジェクトのソースコードを公開しました
fantasticswallow/tanets-blue · GitHub
いやまあちょっと前からartfulplace.netに転がってましたがGitHubに投げつけました

注意:以下よくわからないポエムが続きます。ご了承ください。



tanets-blueという名前です。名前はどうでもいいのでぜひともこんな感じのを誰か作ってください。お願いします
個人的には
XML内に大量に配置された無駄なstyle(主にfont-familyとfont-size)を削除してくれる
・spanタグが多くてうざいので消してくれる
・Outlineの位置は維持してくれる
・ImageとかInkStrokeも頑張ってくれる
こんな感じのをぜひともよろしくお願いします(自分でやれ)

まあ願望書いててもしょうがないですのでとりあえず解説します
tanets-blueの目的は「OneNote XMLの容量を可能な限り減らしたHTMLを再構築すること」です

普通に考えてください。"font-family:Meiryo UI;" って文字が10文字進むごとに出てきたら邪魔でしかありません
ましてや普通のサイトであれば自分でフォントなどを指定するでしょう。フォントサイズだって設定したいと思うかもしれません。
しかしすべてインラインスタイルで記述されてしまうため、.cssファイルなどで定義したものは完全に無効になります
その対策としてOneNoteのフォントとサイトのフォントをいちいち共通化するのはありでしょう。しかしなぜこちらがそこまでしなくてはいけないのかっていう感じになります。
大体スマートフォンでいじった時はそれはそれでフォント違うし…

とまあいろいろとあるのです。正直なところOneNote APIのpages/{ID}/contentを見たとき、あり方として正しいとは思いますが、それを使いたいと私は思いませんでした
どういう意味かって? OneNote APIOneNoteの再現を目的とする以上、元のOneNoteに戻せる必要があります。しかし私は普通にサイトとして見せれるだけのものが欲しいわけです


いい加減ポエム書くのに飽きてきたのでサンプルを置きます

http://artfulplace.azurewebsites.net/labs/tanets-blue/apitest.html
http://artfulplace.azurewebsites.net/labs/tanets-blue/E19510497082714812342720169972170736842254101.php

上はOneNote APIのpages/{ID}/contentで取得したHTMLをそのまま張り付けたもの。下はtanets-blueを使って同じページからHTMLを作成したものです。
え? phpじゃんって? .phpの部分を.htmlにすると生成したHTMLが見れます
中身は若干昔の内容なのであんまり気にせず。プロセスとかは書いてあります

さて、とりあえずファイルサイズを比較してみるとこんな感じ

f:id:fantasticswallow:20150914194133p:plain

お前phpに頼りまくりだろ!って? まあ間違ってはいませんけど追加分合わせて3600 bytesくらいです。どっちにしろ2倍以上削減してます
つまるところブラウザで表示するだけならこんくらい頑張れるというわけですよ。お作法その他を完全に無視してますが

ちなみに対応状況としては、上の内容の3つ目までは何とかできたほうです
InkStrokeなんてなかった









とまあいろいろ書きましたが、私がとりあえずほしいものっぽいものを作ったのでソースコードを公開しましたって話です
ちょっと試してみたいぜ~って方はソースコードをダウンロード→.slnを開く→"tanets-blue-addin"を消してビルド→"tanets-blue-cluent"を実行 でいけます
ちなみにうちのサイト向けとはソースが違うので、指定したフォルダに.htmlのみを保存します

addinのほうを使いたい方はVisual Studioを"管理者権限"でビルドした後に、regFilesの中の自分のWindowsのOSにあったほうの.regファイルを実行します
それでとりあえず読み込めたら成功です。失敗する可能性は否めませんので自己責任で

ソース全体を公開した理由は、もし使いたいというやばい人がいた際に、その人好みのHTMLを生成できるような方法で公開したかったというとこです
今のままだと私が欲しいHTMLを生成しますし
あとはまあCOMの登録方法知らないっていう


何が書きたかったのかわからないまま書いて1時間が経ちました。無駄な時間を過ごしてしまった…
まあはい、興味があったら見てあげてください
できればつくってくd

いろいろ機能が足りないのでもっと努力したいのですが、それこそブログでよくね感が出てしまい…
HTML埋め込みとInkStrokeまでは努力したい

あとTumblrLikesSavingにバグがあったので直さないと…ぐわああああ

この辺で