超軽量なScrapboxクライアントを作った
と言っても、まだ結構プロトタイプ段階なんだけど、基本的な構文は全て実装した
もろちんこのページも表示できる(動的に生成してる)
重大なタイプミスがありませんか…?
3年越しの衝撃の事実
誰も気づかなかったなんて……
確信犯だったらどうしよう、、
さんに限ってそんなこと……
うぉおおお!よい!!
Scrapboxがブロックされていたり,IEしか使えない会社で,ページを見せるのに良いかもしれない
Scrapboxをブロックしてるところあるのか まじか
サポートの切れた端末で見るのに良い
こんな感じかな?
その通り!
javascript:location.host = location.host === 'scrapbox.io' ? 'scrapbox-reader.vercel.app' : 'scrapbox.io'
ダークテーマ版
UserCSSとかも再現できたらよさそう
それを前々から考えてた、けど今改めて考えるとProjectCSSってどれもユーザーによって読みやすいか?と思うようになった
Readerなのでなるべく読みやすい状態に保ちたい。だからといって質素すぎるのもどうにかはしたい
それだと確かに下手にUserCSSを読まないほうが良さそうですね。
とはいえoptionとしてUserCSSを読み込む設定を入れてもいいかも
読めればいいし、流石にそこまで再現する必要もないか
ちょっとそれは想定していなかった、どんな感じになってるか気になる
そうなると読み込めるようになってても良いなと確かに思う
どれだけ最低限のDOMで再現できるかっていうのが課題になりそう
よく使われているclass( .deco-なんとか
等)だけ実装してみるとか?
特徴・目的
とにかく軽量
サーバー側で生成しておくことでページ遷移がものすごく早い
Static Site Generatorで作ったサイト並みに早い!
動的に取得してるだけで、ほとんどSSGと同じことをやってる
readerの通り、編集機能を無くすことで、HTML構造をシンプルにすることでブラウザの描画も早くなる(と思う)
特にスマホだとものすごく体感速度に差が出てくる
いやそれはちょっと違うな うまく言語化出来ない
少し引っかかっているのは、scrapboxの特徴が死んでしまっているのでは?ということ リンク機構を組み込めば解決するかな?
apiから
2 hop link含めてリンク先リストを取得できるので、それをどこかに表示すれば、読み取り専用scrapboxとして機能すると思います。
それは確かにあったほうがよさそう!でもそれを踏まえても引っかかりがある
途中から作ること自体が目的化して本来の目的を忘れてるかもしれない
「軽量」だけで片付かない何かがそこにはあったはず...
思い出した。
accessibleでcustomizableなものを作りたかった
Scrapbox本体は、自由度は高いものの色々と成約があって出来なかったことをやりたかった
例えば普通のサイトのようにホストしたり、そこにJavaScriptを埋め込んで任意の処理をさせたり
Scrapboxで書き込んだ内容をもとにStatic Site Generatorみたいなことが出来たら便利そうだなと
外部サイトから
をimportできないとか
あとUserScriptで
を使いたい
後はインタラクティブに編集できるようにするためにHTML構造がすごいことになっていてaccessibleではなくなってたのも(個人的に)不便だった
(使い慣れた)ブラウザネイティブのテキスト選択ではなかったり、ユーザー補助機能がまともにうごかなくなったり...
ただよく考えたら今Scrapboxを普通に使っている人には特に嬉しさはないのかもしれない...
なので引っかかっていたのかも
scrapboxのpluginを作るという方向で行くのはどうでしょうか?
はforkして改造を試してみている
例えばスマホでもサクサク見られてaccessibleにするのは難しい
もしかしたら「Scrapboxをすでに使っている人」ではない人向けのものになるのかもしれない
ちゃんと考えられてなかったけど、Scrapboxを使ってる人ならできることができなくなるだけなので使うメリットが少なすぎる...
これもスマホ向けではない・・?
offlineのscrapbox viewerなら需要あると思います
てか
がほしい
確かScrapboxは
キャッシュされるからオフラインでも見れたはず
もしかしたらPWAとしてインストールする必要があるかもしれない
の使っているPWAだと、ネット切断したら
No connection
になってしまいます
環境
Windows10 x64
Google Chrome
No connection ! 1 chang are not saved yet
になってしまう
編集していなければOffline modeとして接続できるみたい
ページの編集はできるのか
保存されないだけ
ページ遷移は出来ない?
編集はできないけど、閲覧はできる
@hitode909が作ってたな
翻訳にも使えるじゃんこれ!
標準的なDOMに変換できるという利点があったか
privateなプロジェクトでも使えるようになると嬉しい...
Googleのログイン処理ができればいい?
CORSの影響でブラウザ側からも取得できない
唯一できるのがブラウザ側のクッキーに保存されているconnect.sidを付けて(サーバー側から)リクエストする方法
セキュリティ的にあまりやりたくない
アクセス範囲を制限できなく、任意のタイミングで確実に無効化することが難しい
高速化のためにScrapbox Reader側でキャッシュを持っていて認証不備で漏洩させかねない
データをURLフラグメントに含めてURLから表示する機能の案があるのですが、これならどうですか?
手動で表示する部分を取得することになるので、リンクからのページ移動がほとんどできなくなってしまいますが
その分、部分的に他の人と共有したいようなケースには便利だと思います
これすごくよい
Scrapboxはおそらく共同編集のために、プログラムから書き換えるAPIを用意してない
一人で編集してる僕のプロジェクトなどでは「邪魔な制約」でしかない
例えば自分の公開プロジェクトの機械翻訳版を作って定期的に更新したい的なユースケース
ページを更新するAPIがないのでインポートで上書きするしかない
そもそも他人は閲覧オンリーなので訳したものを載せるのがScrapboxである必要がない
静的HTML書き出しなどを検討したが、記法のサポートが大変だから諦めてた
これを使えば解決するのでは
ざっくりソースを読んだ
ページごとのAPIを叩いてscrapbox-parserでパースして、レンダリングする、という理解
"/text"のAPIを使ってるからリンク情報がないけど、それを削ればリンク情報付きのJSONが得られるのでリンクもさほど難しくなく表示できそう
>Scrapboxを使ってる人ならできることができなくなるだけなので使うメリットが少なすぎる...
いやいや、例えばユーザの手元でも動くユーザスクリプトを仕込むとか、ユーザが機械翻訳できるようになるとか、コメント欄をつけるとか、Scrapboxではできないと諦めてる系のことができるようになって割と今後の拡張の夢が広がるのでは
+1
アイコン記法に他の記法を使うとアイコン記法がリンク化してしまう
ってこれはissueに書くべきか
類似のproject