careteditor / issues

Caret issues
https://caret.io
325 stars 12 forks source link

Custom Publish targets #496

Open clockler opened 7 years ago

clockler commented 7 years ago

I'd like to see the option for user-made targets for the Publish option, rather than only to Caret's own service.

The main usecases for this would be publishing directly to Markdown-supporting services, such as Gollum wikis, Ghost blogs or possibly just to other quick-access document stores (including user hosted ones, for people who just want to publish markdown writing quickly to their own sites).

astoilkov commented 7 years ago

Have you seen something like this somewhere else? How do you imagine this to work? I imagine this would require more advanced configuration of authentication and service specific settings.

clockler commented 7 years ago

I can't say I've seen a fully user-extensible system for something like this anywhere else. You'd definitely need a system for displaying authentication flows to the user - either regular login forms or OAuth flows - and keeping the grants, cookies etc these produce in a cache, which would be non-trivial for any service more complex than a simple pastebin.

My thought is you'd identify a HTTP endpoint and configurable parameters via a JSON or similar file; by providing something similar to a JSON-schema entry describing the expected format of the content of a particular key you could build forms to ask users for input when first using the endpoint, or identify authentication flows to retrieve that information, which would then be cached for future use.

Another option would be to expect conformity to a fairly standard HTTP upload from the endpoint, providing users only the option of defining custom HTTP headers and cookies for manually authenticating themselves, and then offload the complexity to that endpoint - so users can write their own service which does the heavy lifting outside of Caret if they are so inclined, saving your team the development time for what is admittedly a minor enhancement.

m1guelpf commented 7 years ago

If you take the second option, I could build a proxy as a separate app where users can add their sources using pr's