Codimd: Allow *free url* mode like etherpad

Created on 26 Nov 2015  Â·  26Comments  Â·  Source: hackmdio/codimd

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.

feature

Most helpful comment

@jackycute you're right about not breaking the flow, I'd be fine with specifying the name on publish.

You got me right, forget about automatically taking the name from the title, you convinced me otherwise:) Would be nice to suggest the URL name from the title and display that as default in the naming dialog, maybe.

All 26 comments

Wow, Thank you!
I think this is the biggest praise to this project (and me).

Yes, you're totally right.
When it comes more notes, it will need a good method to rearrange them.
And customizable url seems to be the best choice to remind and store at same time.

Also, I was planned and would like to build a collection or folder mechanism.
But I'm busy on other things in this time, and that will be great if you want to help.
You can also see whole feedback and suggestions here:
https://hackmd.io/EYdmEYENwFgZgLQAYngGYJgJgCbAZAKygKxYw4CmMIkaSAnEAAA=

I agreed with your proposal of auto creation in empty note url and userspace division.
To build this feature I would also recommend to have a dropdown to let user do what they want.
Like jsfiddle dose:
image

This idea is not conflict with the experience which hackmd what to give.
It's mainly want to provide one-site, for personal or groups using, collaborable doc, blog, note, slides at a time.
Sounds very greedy, but that's what I want to do: push markdown and plain text writing to a even upper level.

Thanks again!

I really like this suggestion and would like to see it implemented too.

I think it is important to split this features in single steps: My priority definitely would by user-defined URLs, before user-space or other features...
@jackycute Also, in your pending features list, it is not very clear, what you refer to with "Share features, like jsfiddle below"

Hi @eppfel !
I plan to make user space before user-defined URLs because these two issues are related.
The note url will become like https://xxx.xx/@username/custom_url, so the user space will be needed.

And about the jsfiddle did need refer to above image, when user click "publish" button will popup a dropdown dialog which contains possible sharing options and reminder of some metadata.

Hope this answer your questions.

Awesome project btw. Hopefully I find some time to contribute.

This is the only feature missing for our company to be able to ditch our old ether pad installation and start using HackMd instead! Awesome project!

For us the URL's would really need to be global though, not user spaced. This is for two use cases, both for an internal wiki and for our project stories where we create shared pads with the story number in the URL.

Is there anything we can do to help out developing this feature? :)

OK, I will support doing global space note first.
Like visit /free-url will create a note with that alias.

This won't available in official service and will required user signed in.
Is that OK? @esbite

It's pretty hard to support multiple level on free url.
Is it acceptable to use like /projects-foobar for now?
@amigrave and other participants?

Yes of course ! Etherpad does not handle multiple levels urls either when creating a note.
I was just illustrating the use case, but dashes and/or low-dashes are as good as slashes.

Functionally, those urls

/projects      # list of projects
/projects/foo  # project foo 
/projects/bar  # project bar

are the same as those

/projects      # list of projects
/projects-foo  # project foo 
/projects-bar  # project bar

I think it's even better for future features url mapping because if you consider that root ( / ) and multiple level urls ( /_(/_)+ ) are not valid "free-urls", then you know that you still can add more features without url namespace clashes (eg: adding an api will not interfere with free-urls):

/api/notes/list
/api/notes/create
/api/user/create
...

I'm sorry I can't help on hackmd but I accepted a side project that eats up all my free time.

@jackycute Oh yes we would host our own instance locally anyway so that would be awesome!

Supported in 5bb3de2675967eb2f6ea295e7c3e969769ed2a70
If anyone wants a further implementation, please open another issue.

Can only join the praise for HackMD, my favorite collab tool currently.
Following this issue and seeing the patch, I'd really love to see a more Wiki-style approach to this (as an addition) - that is, taking the name automatically from the title, what do you think @jackycute ?

Thanks for your kind words @grexe !

But I don't think take the name directly from title is a good idea in here.
Because the freeurl is now root level naming, which means it will need to add hash to solve the naming conflicts (just like hackpad or medium did) (I don't like blend random string to static strings).
And what if you change the title by accident or just in typing? It won't able to access via the old urls.

So we might let user "choose" their permalink to the note, which relatively static to the user space like: https://hackmd.io/@jackycute/that-is-how-we-do-it.

What do you say?

I see the issue, true, just searching for a way to mimic the common
Wiki-behavior...
What about prompting the user for a page name that is used for the URL
right when creating the note?
Is this what you proposed?
Then I'd be all for it, seems to be a good compromise.

On Mon, 6 Feb 2017 at 16:43 Max Wu notifications@github.com wrote:

Thanks for your kind words @grexe https://github.com/grexe !

But I don't think take the name directly from title is a good idea in here.
Because the freeurl is now root level naming, which means it will need to
add hash to solve the naming conflicts (just like hackpad or medium did) (I
don't like blend random string to static strings).
And what if you change the title by accident or just in typing? It won't
able to access via the old urls.

So we might let user "choose" their permalink to the note, which
relatively static to the user space like:
https://hackmd.io/@jackycute/that-is-how-we-do-it.

What do you say?

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/hackmdio/hackmd/issues/44#issuecomment-277720787, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAYt2NdJvAofhp-evahdIyyh_Rxjt36gks5rZz-DgaJpZM4Gp0Fl
.

@grexe Something like that, yes.
But I think we could postpone the page naming after creating the note.
I would prefer add the page name option in the "publish" process.
Because it's a bit pain if you got interrupted when you're full ready to type.

Wait, I think I get you wrong.
Let's make it clear, why do you what to taking the name automatically from the title?
And what do Wiki-style approach benefits?
Could you explain you need more detail? @grexe
I would like to figure out a way that suits us the best.

@jackycute you're right about not breaking the flow, I'd be fine with specifying the name on publish.

You got me right, forget about automatically taking the name from the title, you convinced me otherwise:) Would be nice to suggest the URL name from the title and display that as default in the naming dialog, maybe.

"This won't available in official service"

Any chance of deploying it there as well? I believe that the official version is the way for most to get familiar with this great project and the free-url feature is really important.

It is already "used" at least in the documentation pages like: https://hackmd.io/features

I was lucky to end up here (after random googling) so that I know that this feature even exists in self-deployed versions. If not, I might have mis-judged that HackMD is not fulfilling our needs.

Anyhow, thanks for the project!

@apoikola You can try out free URL mode on a public instance documented at https://discuss.okfn.org/t/shutting-down-pad-okfn-org/4893/3?u=almereyda

Hello, I come back on this issue, cause we have a 1.2.1 instance (not so old then), and in config.json, in the "production" section, we have "allowFreeURL": true.

And… nothing, when we access ourinstance/anystring, we always have a 404 error.

How to trace the problem?

@rastapopougros please feel free to join our communtiy channel for debugging. Otherwise I would suggest to open an own issue, since this is a feature request, while yours, given that it's not a misconfiguration, is a bug.

(I tried, dozen of times, to register to Riot, "email was sent to x@x" but never received. And the address works well, and nothing in spam.)

Matrix is just a service we use, so we sadly don't have any control the signup problem.

If your free url problem still persists now that we've released 1.3, we can certainly also discuss it in one of these issues.

I can confirm the issue exists on my instance.

I am also seeing this issue on my instance as well, version 1.3

Issue has been fixed in the community fork, https://github.com/codimd/server

Was this page helpful?
0 / 5 - 0 ratings

Related issues

farleylai picture farleylai  Â·  5Comments

ccoenen picture ccoenen  Â·  4Comments

neopostmodern picture neopostmodern  Â·  4Comments

almereyda picture almereyda  Â·  4Comments

LukasKalbertodt picture LukasKalbertodt  Â·  4Comments