Giter VIP home page Giter VIP logo

hackmdio / codimd Goto Github PK

View Code? Open in Web Editor NEW
9.1K 159.0 1.0K 26.31 MB

CodiMD - Realtime collaborative markdown notes on all platforms.

Home Page: https://hackmd.io/c/codimd-documentation

License: GNU Affero General Public License v3.0

JavaScript 75.24% CSS 9.82% Shell 0.23% HTML 1.07% Dockerfile 0.19% Handlebars 1.02% EJS 12.43% Procfile 0.01%
hackmd collaboration realtime notes markdown codimd

codimd's People

Contributors

a60814billy avatar alecdwm avatar bananaappletw avatar binotaliu avatar birdca avatar butlerx avatar ccoenen avatar crazypython avatar davidmehren avatar dilpreetsio avatar dylanderv avatar elct9620 avatar eronana avatar galaxian85 avatar gitonion avatar hoijui avatar jackycute avatar jamescamel avatar janniklorenz avatar literalplus avatar micedre avatar nakaeeee avatar nvsofts avatar pabloguerrero avatar peterdavehello avatar sisheogorath avatar stanley2058 avatar willibutz avatar yukaii avatar zergar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

codimd's Issues

Wrong file paths in pretty.ejs

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.

Owner & Contributors

Find a place to show the owner.
And record the contributors who ever change the note.

Either choose PostgreSQL or MongoDB

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. :)

Suggest edit

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.

Flow chart is not shown correctly

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
```

Support local signin

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.

Better table support

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.

Setup Problems

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?

Need tests

For now, it's hard to test anything.
But it should be done.

Use pandoc

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/

Inline popover or shortcut

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.

Annotation

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.

Standalone app

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.

DATABASE_URL这个是什么格式

➜ hackmd git:(master) ✗ bash run.sh
error: Forever cannot find process with id: hackmd

DATABASE_URL='change this'
MONGOLAB_URI='change this' \

这两个是什么格式?

Set document max length

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.

Allow *free url* mode like etherpad

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.

Refactor client codes

Client side codes now are really a mess.
Should divided scripts into parts according to its usage.
And minify them then include.

Group or Workspace

Need a group page or a workspace for a small team.
Should use subdomain to provided better experience.

Show profile image if available

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.

Markdown line breaks

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.

Database schema

For a local install the database schema is required. Is this provided somewhere here?

預覽頁面出現再製片段

default
敝人使用的是 Firefox Nightly 44.0a1
這份文件只有我一個人在編輯,可是在大量增刪內容時卻出現片段重複內容

原始碼沒有問題,可是預覽貌似沒有同步齊全

先求短期應變方法,老實說我不知道這算不算是一種bug

Browse restriction and noindex robot

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.

Feature Suggestions

  1. 支援AsciiDoc,除了使用偏好,許多md的擴充語法在ad已標準化,
  2. 所見即所得表格編輯,Hackpad的優點,點選複數表格欄位編輯,
  3. 往IPython/Beaker靠攏,除了貼上程式碼,也能執行顯示輸出結果,參考http://beakernotebook.com

AsciiDoc: http://www.methods.co.nz/asciidoc/
AsciiDoctor: http://asciidoctor.org/
Table: http://www.tablesgenerator.com/
Beaker: http://beakernotebook.com


  1. Support AsciiDoc, besides preferences, lots of extension in md already standardized in ad.
  2. WYSIWYG table editing, it's a pros in Hackpad - editing in multiple cells.
  3. Go with IPython/Beaker, not only copy/paste code but also show the output, refer: http://beakernotebook.com

Support operational transformation

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.

Authorship highlight

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: }])   -->

Open APIs

Maybe can open some APIs to let third-party application to use

空行

我需要空行的語法

Multiple Configs and Daemon Tools

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.

Use dependency managers

Use npm/bower + webpack and greenkeeper to help to manage the resources.
Reduce the repo size and redundant codes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.