Skip to content
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

Tracking bugs and parity with Ghost [ongoing] #31

Closed
12 of 34 tasks
tomkwok opened this issue May 2, 2015 · 15 comments
Closed
12 of 34 tasks

Tracking bugs and parity with Ghost [ongoing] #31

tomkwok opened this issue May 2, 2015 · 15 comments

Comments

@tomkwok
Copy link
Contributor

tomkwok commented May 2, 2015

Here's a reference for @kabukky and everyone who would like to contribute to this project. I've discovered multiple bugs and features that are lacking. I know I'm kind of demanding, but I hope Journey can be a full replacement for Ghost which has a pretty high memory footprint (80MB+), while the memory usage of Journey is around 10MB.

This list will be updated from time to time.


TODO

Admin:

  • post: add date/time field (currently the publish date/time of a post can't be changed to an arbitrary value)
  • post scheduling Add Post Scheduling #43
  • markdown keyboard shortcuts, all those implemented in Ghost
  • tag management: meta_description / slug / name of tags should be modifiable
  • markdown engine: ==blah== for <mark>blah</mark>

Code cleanup

  • controller code in /built-in/admin/admin-angular.js is quite redundant
    • $scope.navbarHtml = $sce.trustAsHtml('<blah blah blah>'); appears 4 times
    • EditCtrl and CreateCtrl can share a large portion of code
  • <nav class="navbar navbar-default navbar-fixed-top">blah blah</nav> repeatedly appears in multiple html template files

Template:

Extra miscellaneous enhancement (maybe less frequently used / less important):

  • for SEO purposes, generate and serve /sitemap.xml
  • helpers & admin: tag settings: name / slug / description / image
    • currently there are warnings in logs: Warning: This helper is not implemented: tag.image Warning: This helper is not implemented: tag.description
  • admin: notify users when session expired / server rebooted / is disconnected from the Internet, which causes loss of settings

Also those @kabukky has mentioned on HN:

Plus my suggestions:

  • new option: listen to UNIX socket rather than TCP ports (and users can specify path to socket file descriptor via config.json)
  • post search in admin UI (For a public blog post search feature, I think we can simply include a Google CSE box, if we'd like to.)
    • post filtering: exactly like this one: Post Filter Menu TryGhost/Ghost#2640, with search functionality by keywords
    • intra-site hyperlink auto-complete: suggest links when users insert anchors ![blah](/) in the markdown editor
      • That would be a time-saving feature for users who frequently insert hyperlinks to their own blog posts.
      • It is inspired by the auto-complete feature here on GitHub: whenever I type # in the editor right here, a list of project issues pops up. I can click or press key up/down to select a link, or type in keywords to search for a post.
  • "Channels", a WIP feature in Ghost. Take a look here: https://github.com/TryGhost/Ghost/wiki/Channels-101

Done

General:

  • navigation navigation and router issues  #25
  • user: add author name field (for example, the user name slug tomkwok is output (instead of a customizable name field in which I can fill in Tom Kwok) for {{#author}}{{name}}{{/author}})
  • post: meta_description
  • markdown: support for footnotes
  • SEO: canonical url output
  • noplugins build tag; conditional compilation of the plugin system

RSS:

  • change: use absolute URL in link to post, not something like <link>/new-post</link>
  • bugfix: CDATA tag output RSS Feed #9
  • bugfix: wrong date format; it should be like <pubDate>Sat, 30 Aug 2014 08:54:00 GMT</pubDate>
  • enhancement: ability to use post image in RSS feed, like <media:content url="https://example.com/blah.jpg" medium="image"/>
@kabukky
Copy link
Owner

kabukky commented May 2, 2015

Hi tomkwok,
great work, thank you!
Things I've been working on but are not committed yet:

  • navigation (helpers are done, still need to create input fields in the admin interface to make it editable).
  • pagination.hbs and navigation.hbs are now read from the theme. If they are not available, the default ones will be used.
  • contentFor and block helpers are implemented.

I'm away from home until Tuesday, I will commit them then hopefully.

@tomkwok
Copy link
Contributor Author

tomkwok commented May 2, 2015

pagination.hbs and navigation.hbs are now read from the theme. If they are not available, the default ones will be used.

In the current version on Github, pagination.hbs is already read from theme if it's present.

No matter if it uses pagination.hbs or not, the code for page number calculation is very buggy. A ceiling function should be used instead of maxPages := int64((float64(count) / float64(values.Blog.PostsPerPage)) + 0.5) which may even give 0 for {{pages}}.
Please see my comments in this commit which fixes this particular issue b561e7c

@kabukky
Copy link
Owner

kabukky commented May 6, 2015

The whole Code generating the html in paginationFunc was unnecessary once I changed it to just executing the pagination.hbs that comes with the theme or the default built-in/pagination.hbs.
I'm using your positiveCeilingInt64 now, thanks for that :)
pagesFunc will default to 1 if positiveCeilingInt64 returns 0.
See a9b4531 and 947712e

@kabukky
Copy link
Owner

kabukky commented May 6, 2015

bugfix: adding html comments in .hbs files in theme will cause runtime error: index out of range (from log.txt) for example,

That's interesting. I can't seem to reproduce this. Can you give me an example .hbs file?

@kabukky
Copy link
Owner

kabukky commented May 6, 2015

user: add author name field (currently, for example, the user name slug tomkwok is output (instead of a customizable name field in which I can fill in Tom Kwok) for {{#author}}{{name}}{{/author}})

That shouldn't output the user slug. For me, it outputs the actual user name. There was wrong behavior when using {{author}} and {{author.name}} but that has been fixed with 5c74d93

@kabukky
Copy link
Owner

kabukky commented May 7, 2015

bugfix: wrong date format; it should be like <pubDate>Sat, 30 Aug 2014 08:54:00 GMT</pubDate>

I'm using github.com/gorilla/feeds to generate the RSS feed. The RSS specification says:

All date-times in RSS conform to the Date and Time Specification of RFC 822

github.com/gorilla/feeds uses Go's time.RFC822 to format the date, which formats as 02 Jan 06 15:04 MST. Your suggestion looks like time.RFC1123, which formats as Mon, 02 Jan 2006 15:04:05 MST. I could fork github.com/gorilla/feeds and change to time.RFC1123 but maybe we should get them to change if it's really wrong behavior.

@tomkwok
Copy link
Contributor Author

tomkwok commented May 7, 2015

I could fork github.com/gorilla/feeds and change to time.RFC1123 but maybe we should get them to change if it's really wrong behavior.

If that's github.com/gorilla/feeds's fault, then absolutely. But I don't know what is going on.

For example, these seem to be okay:

But these are not okay (see http://stackoverflow.com/questions/25658897/is-utc-a-valid-timezone-name-for-rfc-1123-specification):

So your blog is outputting EDT and UTC in different entries in the same feed!?

@tomkwok
Copy link
Contributor Author

tomkwok commented May 7, 2015

That's interesting. I can't seem to reproduce this. Can you give me an example .hbs file?

I don't have that problem anymore with the latest version.

@tomkwok
Copy link
Contributor Author

tomkwok commented May 7, 2015

I still can't find an author name field under admin -> 'Settings'. Users shouldn't have to configure it by messing with the sqlite database...

@kabukky
Copy link
Owner

kabukky commented May 7, 2015

So your blog is outputting EDT and UTC in different entries in the same feed!?

That's probably because I had to manually set the publication date in the database when updating from an older Journey version. I will investigate.

I still can't find an author name field under admin -> 'Settings'. Users shouldn't have to configure it by messing with the sqlite database...

Ah, I misunderstood. I will add a field in the admin interface to change the user name.

@tomkwok
Copy link
Contributor Author

tomkwok commented Jun 22, 2015

@tomkwok tomkwok changed the title Tracking bugs and parity with Ghost Tracking bugs and parity with Ghost [ongoing] Jun 27, 2015
@kabukky
Copy link
Owner

kabukky commented Jun 29, 2015

  • I would put off implementing meta_title as well. I don't think that is used very often.
  • Forking http://github.com/gorilla/feeds is the best option in my eyes. We could then change it to use time.RFC1123 as well.

@tomkwok
Copy link
Contributor Author

tomkwok commented Nov 13, 2015

@kabukky What are the next features to come?

@dmyates
Copy link

dmyates commented Nov 13, 2015

A small (little-known?) feature Ghost has that I find utterly indispensable is that you can append /edit to the URL of any post to be taken immediately to its editing screen on the admin page. Really great for when you notice a spelling mistake in an old post.

@tomkwok
Copy link
Contributor Author

tomkwok commented Nov 14, 2015

@dmyates Somebody already implemented that feature for Journey and created a pull request #65

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants