gma / nesta

File Based CMS and Static Site Generator
http://nestacms.com
MIT License
902 stars 120 forks source link

Edit pages via web-interface #3

Closed trans closed 12 years ago

trans commented 14 years ago

It would most awesome if there were an online admin interface in which one could edit a sites pages. That's the one feature I've been missing in a file-base CMS.

gma commented 14 years ago

It's a great idea in principle, but I'm not really sure how it'd work. Are you thinking it would just allow you to edit the files that are stored on disk?

Would it need to talk to a version control system when you save a change? Incorporating VCS support seems a little too complicated to me, and yet without it I can't imagine myself using it. Distributed version control provides a backup for free.

Warrants further thought. Perhaps I've not managed to see a great way to do it? Feel free to persuade me... (or contribute a front end - it would make sense for it to be a separate app).

tuupola commented 14 years ago

IMO the web based admin interface defies the whole idea of Nesta. CMS for developers who like to edit their text using their favourite text editor :)

gma commented 14 years ago

It does rather. It's not just editing the content, it's the flexibility that Sinatra gives you over design and layout that I'd worry about. You can start flinging your Markdown into a new directory, tweak a bit of the code, and it'll just get served up. You can create sidebars in templates that couldn't be controlled by the UI.

Having a UI would make me feel resistant to doing this kind of quick hack; I'd feel as though I'd be giving something up by hacking a Nesta site into something that wouldn't work with a UI. That might be reason enough not to make one.

The other side of the coin; it's really easy for me to make a friend a small site with Nesta, and it's much faster to develop a design in TextMate than in a "proper" CMS like Radiant. But when I'm done, they can't edit their content on a Nesta site. A few weeks back I set a site up in Nesta and then spent 45 minutes porting the whole thing to Radiant. The finished site was much better than it would have been had I built it in Radiant from the outset (where layout changes are more painful to test). But then it didn't really take me long to port it. I've got another friend (a designer) who is yet to get his shiny new Nesta site installed on his laptop. He's adamant he's up for learning how to add and push new content; will be interesting to see how he gets on.

My current thoughts are that it might be better to spend the effort on knocking out more themes.

trans commented 14 years ago

I don't think the two have to be mutually exclusive. Basically we are talking about adding a web-based file manager as an admin interface with file editing capabilities and integration with the git repo. There would be no limit to what you could do with the admin interface beyond the ususal limitations of working via browser vs. a command-line. Then any commits made on the web can easily be gained downstream via a simple git pull.

I'm thinking the best of both worlds here --not one or the other.

I have the same issue gma mentions. I want an elegant file-based CMS that I can give my friends and customers access to reduce my maintenance overhead.

gma commented 14 years ago

Okay. I'm envisaging a UI with it's own copy of the content git repo (the repo that you push to when you publish a page needs to be a bare repo, so we can't use that).

The UI should therefore know how to commit a local change and then publish that change to the site (this sounds like a good workflow, as well as a requirement due to how git works). It would be well worth teaching the UI (and the user) how to resolve conflicts when git push fails, having done a git pull (preferably a git pull --rebase) first.

It'd be great, and I'd love to see such a thing as an option (I don't think it belongs in the core code base), but it's not at the top of my priority list at the moment. Current todo list goes something like this:

  1. Get it working out of the box on heroku.
  2. Document deployment properly.
  3. Move the Nesta site to it's own domain.
  4. Make a few themes and slap them on the new site.
  5. ?

Of course, there's nothing to stop somebody else starting something, and I could chip in later... You're not the only person who's asked about it:

http://twitter.com/IntegralHack/status/14709817037

rbq commented 13 years ago

VCS backed Markdown in a content directory sounds familiar. But I guess Gollum won't spare the metadata when editing.

gma commented 13 years ago

Interesting thought, thanks – perhaps we could fork and patch it…

efoxepstein commented 13 years ago

I needed a very simple web UI for a project, so I started a gem. It's still very, very buggy and primitive. If anyone wants to help out, it'd be much appreciated.

https://github.com/elitheeli/nestadmin

Eli

lilith commented 13 years ago

How about Cloud9 integration? Perhaps we could even get content editing working on Heroku that way..

gma commented 13 years ago

Cloud9 is an interesting thought; has anybody tried it?

A while ago I was thinking "if I were to do a UI, I'd start with an API and build user interfaces on top of it…". I'd also like a desktop app for it you see, and then I'd have to make an iOS version…

But it's nowhere near the top of my todo list at the moment. Where is nestadmin unto @elitheeli? Any thoughts about how to make git commits from the UI?

efoxepstein commented 13 years ago

This project's still on my todo list, but also somewhat towards the bottom. I can't imagine wanting to merge copy, so I'd have the server just serve up the latest version of each page. Does this make any sense?

On Aug 25, 2011, at 5:14 PM, gma wrote:

Cloud9 is an interesting thought; has anybody tried it?

A while ago I was thinking "if I were to do a UI, I'd start with an API and build user interfaces on top of it…". I'd also like a desktop app for it you see, and then I'd have to make an iOS version…

But it's nowhere near the top of my todo list at the moment. Where is nestadmin unto @elitheeli? Any thoughts about how to make git commits from the UI?

Reply to this email directly or view it on GitHub: https://github.com/gma/nesta/issues/3#issuecomment-1904064

lilith commented 13 years ago

What do you mean by "merge copy"?

efoxepstein commented 13 years ago

"Copy" (the noun) as in text or content. Sorry, rereading that now it seems ambiguous.

On Aug 26, 2011, at 11:04 AM, nathanaeljonesreply@reply.github.com wrote:

What do you mean by "merge copy"?

Reply to this email directly or view it on GitHub: https://github.com/gma/nesta/issues/3#issuecomment-1913372

lilith commented 13 years ago

Well, you wouldn't need to handle merging in the CMS, I'd just run 'pull', 'commit', and 'push' from the Cloud9 side. Although all of this is a moot point until Cloud9 opens up an API. Right now you'd have to run your own copy of Cloud9 on a separate server, which would be pointless.

gma commented 13 years ago

On 26 Aug 2011, at 01:56, elitheeli wrote:

This project's still on my todo list, but also somewhat towards the bottom. I can't imagine wanting to merge copy, so I'd have the server just serve up the latest version of each page. Does this make any sense?

It does make sense, especially given that Nesta doesn't actually depend on git at all.

If two people edit the same page at the same time, I suppose one would lose their changes, but that's arguably not going to be a significant problem in most of the places that people would use Nesta.

lilith commented 12 years ago

In my experience, sites that have enough concurrent editors to have issues with file conflicts are using a DB-backed beast of a CMS.

Online editing for Nesta would probably never be a primary edit method, but would be extremely useful for fixing broken links or spelling errors when we're away from our development machine.

If there was a way to tell GitHub to push changes to a server, it would be easy to do from GitHub.

On my non-heroku servers, I'm already using GitHub/Cloud9 to edit content live. I just have a admin page on the web site that runs git pull and restarts the server.

gma commented 12 years ago

I'm closing this for the moment; no plans to incorporate it into Nesta itself.