在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):cben/mathdown开源软件地址(OpenSource Url):https://github.com/cben/mathdown开源编程语言(OpenSource Language):CoffeeScript 33.7%开源软件介绍(OpenSource Introduction):https://www.mathdown.netSource ofOnline collaborative markdown with math. Main features:
Powered by CodeMirror, MathJax and Firebase's Firepad. I'm using "CM" = CodeMirror, "MJ" = MathJax abbreviations a lot in the project. Alpha quality – will eat your math, burn your bookmarks & expose your secrets. I mean it. See for example #85 — saving would sometimes be silently broken, for half a year! I'm working to make it more robust (and tested) but for now, be careful. LicenseMy code is under MIT License. Exception: font/ contains a subsetted Bitstream Charter font under a permissive license - see fonts/LICENSE. Dependencies:
Document hosting and privacy(?) on FirebaseAll user data is stored in Firebase, now owned by Google. Their privacy policy. Documents access (read AND edit) is by secret document id which is part of the url. This is grossly unsecure unless using HTTPS. The downside is users can't really control their data. Running a "self-hosted" copy of the site still leaves all data in the hands of Firebase. See #4 for more discussion. The upside is all forks interoperate; you can change the design or tweak the editor and still access same documents. E.g. https://mathdown.net/index.html?doc=demo and http://rhythmus.be/mathdown/index.html?doc=demo look different but access the same doc -- and real-time collaboration between them works! I'm so far on the free Firebase plan - 100 devices (not sure if 1:1 with users), 1GB Data Storage (used < 100MB). => Will need 49USD/mo plan as soon as I get non-negligible usage. https://mathdown.firebaseio.com/?page=Analytics (only visible to me) Deletion is impossibleThe current Firebase security rules make document history append-only. That's a nice safety feature but it means that once a document's URL gets out, it's full history is forever accessible to the the world. This must change eventually (#92). Browser supportBasically whatever CodeMirror supports: IE8+ and about everything else. But mobile is currently almost unusable (#81). JavaScript is required (and this includes running the non-Free firebase.js in your browser). You can't even read documents without JavaScript; reading won't be hard to fix (#7) — but editing documents without JavaScript is implausible (I plan to settle for append-only form). CookiesThe only cookies I'm aware of:
I'm not sure Firebase never sets cookies. Things will change once I implement login (#50). Installing dependencies
Append
(I'm directly working in
(But when deploying to RHcloud or Heroku, npm install might run in To see whether any updates are needed/possible, run
TODO: find way to use same node.js version in dev and prod? Test(s)
To run the tests:
To run only some tests and/or browsers, use:
The test runs automatically on any commit and pull request. I've tried several free services for this, and currently prefer Travis:
Where it's deployed and how to run your forkThe main deployment currently runs on Heroku. See deployment/ subdirectory for details. I'm interested at going back to static hosting. However you run it, you can open the same document ids ( Quick ways to run: Deploy on Heroku:
some other ways to deploy on Heroku might not work due to my use of submodules (?) Run local server (
(you can choose any port of course. Ctrl+C when done.) This app mostly works as pure static pages, and I intend to keep it this way.
The only benefits the dynamic server is going to bring (not implemented yet) will be:
Other things called "mathdown":
I should really talk to these folk whether it's OK that I'm using the name and the domain... |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论