数学とのオンライン共同マークダウン。主な機能:
Codemirror、Mathjax、Firebaseの暖炉を搭載しています。 「CM」= CodeMirror、「MJ」= MathJaxの略語をプロジェクトでよく使用しています。
アルファ品質 - 数学を食べ、ブックマークを燃やし、秘密を公開します。私は真剣です。たとえば、#85を参照してください -半年間、貯蓄は静かに壊れることがあります!私はそれをより堅牢にする(そしてテストされた)ように取り組んでいますが、今のところは注意してください。
問題:
私のコードはMITライセンスの下にあります。例外:フォント/寛容なライセンスの下にサブセットされたビットストリームチャーターフォントが含まれています - フォント/ライセンスを参照してください。
依存関係:
CodemirrorもMITです。
MathjaxはApacheライセンス2.0に基づいています。
私のcodemirror-mathjax接着剤もmitです。
共同エディターFirePadはMITです。 Firebase Javascipt APIを呼び出します。
Firebaseは独自のサービスです。クライアント側のJavascipt API firebase.jsも独自のものですが、実際に配布することは明らかに問題ありません(#4)。 [firbease.jsはしばらくの間誤って測定されていますが、新しいバージョンにアップグレードしたので、これは適用されません。]
firebase.jsを直接含めるのではなく、gitサブモジュールとして使用しています。
すべてのユーザーデータは、現在Googleが所有しているFireBaseに保存されています。彼らのプライバシーポリシー。ドキュメントアクセス(読み取りと編集)は、URLの一部であるSecret Document IDによるものです。これは、HTTPSを使用しない限り、非常に無事です。
欠点は、ユーザーが実際にデータを制御できないことです。サイトの「自己ホスト」コピーを実行すると、すべてのデータがFirebaseの手に残ります。詳細については、#4を参照してください。
利点はすべてフォークが相互運用することです。デザインを変更したり、エディターを調整しても、同じドキュメントにアクセスできます。例:https://mathdown.net/index.html?doc=demo and http://rhythmus.be/mathdown/index.html?doc=demoは異なって見えますが、同じドキュメントにアクセスします。
私はこれまでのところ、無料のFireBaseプラン-100デバイス(ユーザーの1:1かどうかはわかりません)、1GBのデータストレージ(使用<100MB)です。 =>は、使用できない使用法を取得するとすぐに49USD/MOプランが必要になります。 https://mathdown.firebaseio.com/?page=analytics(私だけに見える)
現在のFireBaseセキュリティルールは、ドキュメント履歴のみを追加します。それは素晴らしい安全機能ですが、ドキュメントのURLが出ると、完全な歴史が世界で永遠にアクセスできることを意味します。これは最終的に変更する必要があります(#92)。
基本的に、Codemirrorがサポートするものは何でも、IE8+および他のすべてについて。しかし、現在、モバイルはほとんど使用できません(#81)。
JavaScriptが必要です(これには、ブラウザで非フリーFirebase.jsの実行が含まれます)。 JavaScriptなしでドキュメントを読むことさえできません。読書は修正するのが難しくありません(#7) - しかし、JavaScriptを使用してドキュメントを編集することは信じがたいです(Appendのみのフォームに解決する予定です)。
私が知っている唯一のクッキー:
mjx.menu Cookieセット(?)。Firebaseがクッキーを決してセットしないかどうかはわかりません。ログイン(#50)を実装すると、状況は変わります。
チェックアウトした後、これを実行してクライアント側の依存関係を実現します。
Gitサブモジュールアップデート - Init- Recursive
追加--remoteすべてのサブモジュールの最新バージョンにアップグレードすることをお勧めします(変更された場合は、後でコミットする必要があります)。すべてのdepsの更新に関する既知の制約:
* firepad only includes pre-built dist/firepad.js in tagged versions (after every release they strip it back).
* [CodeMirror-MathJax currently doesn't support MathJax 2.5](https://github.com/cben/CodeMirror-MathJax/issues/33).
(私はmasterブランチなしでgh-pagesブランチで直接作業しています。GHページはhttps:// ...サブモジュールを自動的に解決します。これはもはや主要なホスティングではありませんが、静的バージョンの作品をテストすることは依然として便利です。)
package.json runにリストされているサーバー側の依存関係(および開発者依存関係)をインストールするには:
npm install
(ただし、RhcloudまたはHerokuに展開すると、NPMインストールが--productionされる可能性があります。
更新が必要/可能かどうかを確認するには、 npm outdated実行します。実行を更新するには:
npm update --save
npm shrinkwrap
Then commit the new `package.json` and `npm-shrinkwrap.json`.
TODO:DEVと製品で同じnode.jsバージョンを使用する方法を見つけますか?
test/browser-on-saucelabs.spec.coffee Sause Labsの好意による無料のブラウザテストを使用していくつかのブラウザでテストを実行します。哀れなほどテストはほとんどありません。
テストを実行するには:
npm install # once
npm test
いくつかのテストやブラウザのみを実行するには、以下を使用してください。
./node_modules/.bin/mocha --grep firefox
テストは、コミットとプルリクエストで自動的に実行されます。私はこれのためにいくつかの無料サービスを試しましたが、現在トラビスを好みます。
.travis.ymlによって制御されます。wercker.ymlによって制御されます。.travis.ymlによって制御されます。主な展開は現在、Herokuで実行されています。詳細については、展開/サブディレクトリを参照してください。静的なホスティングに戻ることに興味があります。
実行しても、同じドキュメントID( doc=... )を開くことができ、リアルタイムのコラボレーションが機能します!
実行する簡単な方法:
Herokuに展開:
heroku create my-mathdown --remote heroku-my-mathdown
git push heroku-my-mathdown gh-pages:master
Herokuに展開する他のいくつかの方法は、サブモジュールの使用のために機能しない可能性があります(?)
ローカルサーバー( server.coffee )を実行します:
npm install # once
env PORT=8001 npm start # Prints URL you can click
(もちろん、任意のポートを選択できます。完了したらCtrl+C 。)
このアプリは主に純粋な静的ページとして機能し、このように保つつもりです。
チェックアウトから、ブラウザでindex.html開くだけです。
githubページは、https://cben.github.io/mathdownでGH-Pagesブランチを提供しています。
他の支店/コミットの場合、些細な解決策はありません - rawgit.comは素晴らしいですが、現在はサブモジュールをサポートしていません。
実行されていない変更を実行(および共有)する最も簡単な方法は、おそらくクラウド9です。TODO:テスト、詳細。
ダイナミックサーバーがもたらす唯一の利点(まだ実装されていない)は次のとおりです。
mathdown.net/?doc=foobar urls(#59)の代わりに、prettier mathdown.net/foobar 。「数学」と呼ばれる他のもの:
名前とドメインを使用していることが大丈夫かどうかにかかわらず、私はこれらの人々に本当に話すべきです...