hackmdio / codimd Goto Github PK
View Code? Open in Web Editor NEWCodiMD - Realtime collaborative markdown notes on all platforms.
Home Page: https://hackmd.io/c/codimd-documentation
License: GNU Affero General Public License v3.0
CodiMD - Realtime collaborative markdown notes on all platforms.
Home Page: https://hackmd.io/c/codimd-documentation
License: GNU Affero General Public License v3.0
Let user to annotate some parts of the text or paragraph to comment and discuss.
Like google doc dose.
Need to do more research on this.
For now, it's hard to test anything.
But it should be done.
Example:
It's formatted correctly on GitHub but not in Hackmd.
➜ hackmd git:(master) ✗ bash run.sh
error: Forever cannot find process with id: hackmd
DATABASE_URL='change this'
MONGOLAB_URI='change this' \
这两个是什么格式?
First of all, thank you for open source this software!
I only have one issue with it: It uses two full-tiered databases. As far as I can see there is only one table in the PostgreSQL database. That looks like is a huge overhead. Could you please reduce the number of database systems to 1?
I plan to use hackmd for ad-hoc documentation running in a vagrant box. It would be great to reduce the footprint of hackmd in this box. :)
I'd like to configure apache to serve hackmd at any route like http://example.com/hackmd.
Find a place to show the owner.
And record the contributors who ever change the note.
For a local install the database schema is required. Is this provided somewhere here?
Privacy and security are really important.
Some users might want to restrict even browsing.
And also prevent search engine index those notes.
Let's do it.
commit a6d1bdd (Updated other packages to lastest versions)
broken the hackmd view and edit function.
I just revert this commit and everything work.
When two user input in same time, it might cause race condition if the operation request reach the server at a moment.
Or user might undo & redo to other peoples' changes.
To solve these situation, there is a technique called Operational Transformation.
And below are some open source library we can use:
https://github.com/Operational-Transformation/ot.js
https://github.com/share/ShareJS
ot.js seems a better solution, because it also use codemirror as it's editor.
ShareJS will spend more effort, because it use it's own custom db.
the following is not rendered correctly
Testing:
something strange with $\LaTeX$. QQ
BTW, this is really an amazing project!! 👍
I really like hackmd, I have a dedicated local instance for my personal notes and use it everyday for my projects.
In this context I'd like to be able to choose my URLs instead of having them generated trough uuid
.
This would allow a better organisation of notes and easy linking between them.
So basically, entering a non existing url eg: /projects/foobar
will automatically create a note at this url.
This coupled to a kind of global userspace
option, hackmd could even be used as a wiki or an internal reference web space.
I understand this feature is incompatible with the default usage of hackmd which has a per-user context separated design, this is why I propose to allow this new behavior as an opt-in configuration option.
If you agree with the principle I'll work on that and propose a pull request some day.
The first thing I need to know when I set up an instance of HackMD, ist where the config is located. But it looks like there are many redundancies here.
The DATABASE_URL
and MONGOLAB_URI
are located in the config.js
, processes.son
and run.sh
.
Why? And why we need those daemon tools at all? All my node projects I've done so far contains a single config.js
file which is included everywhere I need to and do not contain daemon tools at all.
They sometimes may have advantages, but this should not be a part of the project. If some user decide to use it, he can set it up himself, but the server should be able to be started with a simple node(js) app.js
command.
Need a group page or a workspace for a small team.
Should use subdomain to provided better experience.
Currently we support extra tags in blockquote and todo list.
But it should be done in other ways like encode.
like below:
<!--meta(paragraph_by: ..., line_segment_by: [{foo: , bar: }]) -->
Sometimes cookie not set and even though cookie will authorize successfully.
If user don't have the permission but want to involve in.
They can use annotation to suggest, like a comment.
Then can be accepted later by owners.
We may also show the markdown as slides.
see more as below:
https://github.com/hakimel/reveal.js
https://github.com/webpro/reveal-md
https://github.com/gnab/remark
https://github.com/jdan/cleaver
you can suggestion more
Should use grunt or gulp to process builds.
Can make a chrome extension looks like https://dragdis.com/
Would be great to quick access notes and organize them.
Chrome apps can help to do an offline editing and saving images in local.
Even more convenient to access notes without loading remote resources.
As my observation, people want to talk or discuss topic in notes.
And that might cause the note like a mess.
There was an idea to make or integrate some chat system.
But now I think Disqus is another great choice.
To make the experiment better, will also make it SSO.
https://help.disqus.com/customer/portal/articles/236206-integrating-single-sign-on
It's kinda important and useful to support YAML.
It can generate metadata of the doc.
https://github.com/blog/1647-viewing-yaml-metadata-in-your-documents
http://www.yaml.org/
https://en.wikipedia.org/wiki/YAML
Table always a big issue in markdown.
Not only hard to maintain or collaborate and also ugly.
May think a unique way to solve.
Not a critical issue.
Client side codes now are really a mess.
Should divided scripts into parts according to its usage.
And minify them then include.
Support export to pdf is important.
Previous research the result is not very satisfied.
But we found gitprint and it's opensource, might try that again.
https://github.com/adamburmister/gitprint.com
https://github.com/alanshaw/markdown-pdf
It's a little bit hard to know other people editing position.
So maybe keep their cursor on the position when they leaving.
Then hide them after period of time.
我需要空行的語法
Need to allow owner to delete the note
I hope hackpad's note could be export to gist.
It'll be helpful to discuss & backup
just like sassmeister or codepen.
Hi,
When writing some markdown using hackmd there's only one thing that bothers me, it's the carriage return ==
behavior which is not supposed to happen.
Original markdown "spec" states:
When you do want to insert a <br /> break tag using Markdown, you end
a line with two or more spaces, then type return.
Yes, this takes a tad more effort to create a <br />, but a simplistic
“every line break is a <br />” rule wouldn’t work for Markdown.
Markdown’s email-style blockquoting and multi-paragraph list items work
best — and look better — when you format them with hard breaks.
I understand that this is a debatable behavior, maybe an option to select the behaviour could work.
Github is a huge base of markdown documents.
People might need to fetch from there and commit back, so we will try to support that.
As people ask for, to have a popover toolbar(bold, italic...) on the selection text or shortcut keys for markdown will be more friendly to beginners.
This morning an error occur and cause server down.
It's a 586218 long document and server too long time to parsing it.
Now we need to set a limit and remind user if reach the top.
Use npm/bower + webpack and greenkeeper to help to manage the resources.
Reduce the repo size and redundant codes.
There might be some users not using any services we used to do a third-party auth.
So we need a local signin solution, currently we're using passport as the auth middleware.
Then using passport-local to support this will be the best.
Actually pandoc is pretty good.
It support so many export format and conversions (even export to pdf).
And it can support asciidoc as a cool guy suggested.
http://pandoc.org/
Related:
jfromaniello/passport.socketio#110
Currently we support facebook, twitter, github and dropbox signin.
If user have a profile image then show it, and if not, find avatar via profile email, else show the color.
AsciiDoc: http://www.methods.co.nz/asciidoc/
AsciiDoctor: http://asciidoctor.org/
Table: http://www.tablesgenerator.com/
Beaker: http://beakernotebook.com
I tried to set up a development instance yesterday, and I can't get it running. The redirect form /new to /:id works, then the page loads and stucks with the loading indicator. I think it could be a socket.io problem, but I haven't debugged it further (no client JS errors are shown).
Are your familiar with this issue or have an advice?
To review note changes and revert.
It's necessary to have change history or blame log.
Should support a permission of invitee only.
Only the invitee from email or link can edit the note.
PostgreSQL没用过,不了解啊。另外这个程序有中文文档吗?
In /public/views/pretty.ejs
almost all script paths are combined with the 'url' var to absolute paths
For example:
<link rel="stylesheet" href='<%- url %>/css/site.css'>
This makes some problems behind a proxy.
Is there any reason, why absolute paths are needed here? The only one I could imagine would be to enable the possibility to embed the page on another webpage or in some download.
And where ist this url taken form? It's not the domain
or getserverurl()
, which is defined in the config.
Some flowcharts are not shown correctly.
For example:
```flow
s=>start: Start
e=>end: End
c=>condition: condition
o=>operation: operation
s->o
o->c
c(yes)->o
c(no)->e
```
Maybe can open some APIs to let third-party application to use
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.