-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP #1
Comments
Let's leave WYSIWYQ out of the main package. Quill seemed to inject iframes and other black magic on to the page, which really kills the whole simplicity thing. Homepage and complete CRUD options are now available on posts. |
Added search. Now that I'm only menus short of some sort of milestone, I have decided to look into adding native analytics middleware to this program. |
Very simple analytics have now been added as well as documentation on all functions. |
Added RSS and Atom support even though it was not in roadmap... Adding email sending and lost password etc to roadmap. |
Also, DB could be migrated from RethinkDB to something embedded. Getting started with the current build is kind of a horrible experience. |
It has surely been a long time since last feature commit, but yes, something as pointless as password recovery is now in place. Though I bit cut corners by implementing email sending with Mailgun, but that shall be just fine for the sake of my mental sanity. At the same time the project kind of got the basis of mail sending in place, but for the moment no other helper functions than Anyhow, since I'll be also starting to separate the RethinkDB from the source code to make it easier to implement new database modules. I've been playing some with embedded Go databases, but for now there's not a lot to comment on that. Also, first fork was done today by @drejohnson! Cheers! |
"Site-wide settings" were installed yesterday (@f083a8294ef7fbc404bfa8d7ad319f2e9cb5fd44). Now there is an installation wizard when the system notices a fresh installation. That also skips the need of declaring the Mailgun API keys manually in the The global settings can be accessed throughout the application by using the |
I've recently started out making tests (a0a758a). For a start, they will be mainly covering the JSON routes, as those usually expose more data and therefore are better to be tested more throughout. The testing library used is ginkgo, as it seems to provide a lot of useful features for web server testing. CI platform is currently wercker. |
I'm now starting a new branch where the database will be switched to SQL. The database methods will use the gorm package, which will make it easy to switch between SQLite, MySQL and PostgreSQL depending on your needs. |
Database driver used now is gorm. The old repo with the rethinkdb driver can be found in its own branch at least temporarily as I test trough everything with the new driver. |
I'm removing The current roadmap now only includes adding tests, but dealing with some features like password reminder is bit more complicated, but surely something that should be covered as well. I'm having bit controversial thoughts on using Mailgun, as even though I'd like Vertigo to be as independent as possible, requiring the end-user to run their own mail server might just be a shot to the leg for everyone. |
As for test coverage see #13. I consider tests now as done. |
Databases clients, or more like DALs were imported as packages today. Due to constrains in language design in Go, this also required me to import some other parts of the application as packages, such as the misc, crypto and settings, as these packages need to be accessible from DALs and the main package. Since you can't do an import cycle in Go, eg. import functions from main package to DAL and vice versa, this was a necessary change. The change is quite significant since it changes a lot of the codebase, but it will also make the application a lot more portable. One reason I started the migration was because the ORM library currently used, gorm, had some rather annoying bugs (can't change a single field in a row, a string field can't be modified to empty...) and the second is moving away from martini to some more idiomatic web "framework". Currently I've looked at negroni and gin. I hope the current design open more possibilities to contributors or anyone who might want to use Vertigo as a starting point for their own web application. I'll also start documenting how to extend the application, since DALs currently require you to include some necessary methods for both users and posts. I'll start it by bringing the old RethinkDB driver back to life, which should give contributors an example how the DALs might differentiate from each other. Also since @dancannon's has done such a great job with the RethinkDB driver, I believe I will end up with better code than with gorm, which should leave less question marks for anyone reading the source. Implementing a new driver will also open up questions, such as should the structure ID's on posts and uses be switched from int64 to GUID string. This is a tough choice, since changing it will break all current Vertigo installations, but I'm unsure whether NoSQL databases such as RethinkDB can be adjusted to work with incrementing primary key. Only time will tell. |
I decided to not add tagging of posts. I think the search will be enough. Also afaik people file most posts under uncategorized tag anyway. |
Martini removed in 210ba20. Also on the same commit:
Next steps would be to look into making Google App Engine compatibility a reality, maybe in a different branch if master cannot be updated to work with it. After Go authors decide on the introduction of net.Context to the standard library, start to migrate Settings and Render package into context based rather than global variable. |
p.s. I love vertigo! |
Hi, thank you for the kind words! I think I won't be implementing HTTPS support, since using a proxy server like CloudFlare or Caddy gives you HTTPS support a lot easier than I could ever do it. I've been thinking of category support lately as well, since my own posts are starting to become bit scrambled on different topics. Category could just be a string array on Post struct, which could then be used on search in addition to frontend. If you have a better idea or other improvement ideas, let me know! |
p.s. sorry for my bad English. I'm from Russia. |
You do category, and I will make a beautiful fron-end. And sent to you, if you like. |
Good point. I make sure to remember that when I write categories.
I think I could write a manual for Caddy, since I like to help other Go projects get publicity (even small publicity is good publicity). Caddy should also be simpler to use than nginx.
Thanks, but no thanks. The front-end is ugly on purpose. This is because I want it to be easy to make your own beautiful front-end. You see, if the frontend would be beautiful, it would require more code, which would take more time from the developer to make it beautiful. Also because Vertigo is mainly for coders only (you can only get it from Github) then I can assume that every user can make it as beautiful as they like. That's why I think its a bad idea to make it beautiful from the start. However, I do respect that you would like to help, but for now, Vertigo is ugly on purpose. :) Last thing, I do have some other projects going on, so unfortunately I cannot say when I will write changes to vertigo again. It might take a long time, but I'll keep your ideas in mind! |
π§ WIP π§
β Done:
Search@c1bbae93fb4ecef44470faf8f9fe21631408c9c0Editing of postsSite-wide settings@f083a8294ef7fbc404bfa8d7ad319f2e9cb5fd44Password reminder@07d3dde2713b3199c1e9973824f5cfbfaed68333Analytics middleware(kind of)Documentation on useful functionsHomepage which lists posts from all usersMigrate RethinkDB to embedded database (sqlite?)@bbcba13bc1abb6d2e1c0667f125859854642b1cfT-te-tests?!(I was very skeptical to add these in the first place, but I'm very glad I did)Import databases as driversget rid of martini and replace it with idiomatic HTTP serverπ§ Backlog:
π« Won't be implemented:
RethinkDB DALtagging? (aka hashtags, tags, or whatnot)Embed .tmpl and other static files into the binaryMenus?A WYSIWYG editor such as Quill would be niceThe text was updated successfully, but these errors were encountered: