
Hi Thomas, On 28/09/15 19:12, thomas lörtsch wrote:
1) Atom is also available for Mac and Windows - maybe you can drop the note about Linux. But can you add a link to the markdown plugin that you refer to?
Thanks! I've added the link to the "Markdown preview" plugin [1].
2) Content editors are usually keen to put stuff they wrote online immediatly and not have to wait for an admin to hit the publish button. Would that be possible? Like: "give editor A the permission to edit and publish stuff in category B or specifically on page C”?
Good question! Indeed, if you use separated repositories, then you could "create" your own set of rules for authorizing contributors. For example, the articles repo could have a set of authorized core-editors to push directly, without needing review, and at the same time accept patches (with review) from non-core-editors. You could go even further with the possibility of having different teams of "editors" for different type of posts. I've updated the example repository [2] and you can see that inside the folder '_posts' there are two git submodules (abbreviated to A and B) and, as they are different repositories, they can have different users authorized for each one of them. The good thing is that Jekyll ignores the subfolders in '_posts' and publishes all the articles, so you could create as many folders as roles you need! If you visit the main website [3] you will see that there are 3 published articles... 2 came from tor-website-articles and the other from tor-website-articlesb. I haven't tried yet, but I'm pretty sure you could play with git hooks [4][5] to "automatize" the process of pulling the changes in the main repository after a push was done on the articles repository.
3) Although I haven’t done any research on that topic lately I suppose there are CMS that allow to publish static sites, provide interfaces for finegrained access control, configurable wysiwyg editors etc. What’s the benefit of using Jekyll and Git? Robustness? Less administration and strain on the server (no DB)? Familiarity of tools? My apologies if this has already been discussed!
AFAIK jekyll and pelican are the most popular solutions out there (last time I checked... though I might need to update my research on that). A CMS is kind of the opposite of static websites. With a CMS you can handle authorization, roles, UI, etc. but with a cost of resources (DB, dynamic languages) and security. A static website generator removes all of that features (to reduce resource requirements and improve security) and let the "owner" take care of that issues as he pleases. That could be the reason why static website generators are more focused on personal websites rather than communities. In this case, a combination of a static website generator with tools such as git would enable us to emulate, partially, a CMS (git -> versioning and distributed content, git submodules -> authorization and roles, atom -> UI, etc). The production server (torproject.org) would need nothing more than a web server to render HTML files (Nginx or Apache). That means: more security (less attack vectors), better performance (less strain on the server), less maintenance issues, easier to perform load balancing, etc.
Ciao Thomas
Thanks for your questions! Don't hesitate to reply back if something is unclear. - Best, Cristóbal [1] https://atom.io/packages/markdown-preview [2] https://github.com/leivaburto/tor-website-main/tree/gh-pages/_posts [3] https://leivaburto.github.io/tor-website-main [4] http://githooks.com/ [5] https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Hooks