{"action":"created","issue":{"url":"https://api.github.com/repos/getnikola/nikola/issues/2107","repository_url":"https://api.github.com/repos/getnikola/nikola","labels_url":"https://api.github.com/repos/getnikola/nikola/issues/2107/labels{/name}","comments_url":"https://api.github.com/repos/getnikola/nikola/issues/2107/comments","events_url":"https://api.github.com/repos/getnikola/nikola/issues/2107/events","html_url":"https://github.com/getnikola/nikola/issues/2107","id":107529592,"number":2107,"title":"Think about generalization of taxonomies.","user":{"login":"ralsina","id":1579,"avatar_url":"https://avatars.githubusercontent.com/u/1579?v=3","gravatar_id":"","url":"https://api.github.com/users/ralsina","html_url":"https://github.com/ralsina","followers_url":"https://api.github.com/users/ralsina/followers","following_url":"https://api.github.com/users/ralsina/following{/other_user}","gists_url":"https://api.github.com/users/ralsina/gists{/gist_id}","starred_url":"https://api.github.com/users/ralsina/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ralsina/subscriptions","organizations_url":"https://api.github.com/users/ralsina/orgs","repos_url":"https://api.github.com/users/ralsina/repos","events_url":"https://api.github.com/users/ralsina/events{/privacy}","received_events_url":"https://api.github.com/users/ralsina/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/getnikola/nikola/labels/idea","name":"idea","color":"bfdadc"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/getnikola/nikola/milestones/15","html_url":"https://github.com/getnikola/nikola/milestones/Whenever","labels_url":"https://api.github.com/repos/getnikola/nikola/milestones/15/labels","id":633525,"number":15,"title":"Whenever","description":"Things that have no deadline, or can be done as plugins, and have no implications for release.","creator":{"login":"ralsina","id":1579,"avatar_url":"https://avatars.githubusercontent.com/u/1579?v=3","gravatar_id":"","url":"https://api.github.com/users/ralsina","html_url":"https://github.com/ralsina","followers_url":"https://api.github.com/users/ralsina/followers","following_url":"https://api.github.com/users/ralsina/following{/other_user}","gists_url":"https://api.github.com/users/ralsina/gists{/gist_id}","starred_url":"https://api.github.com/users/ralsina/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ralsina/subscriptions","organizations_url":"https://api.github.com/users/ralsina/orgs","repos_url":"https://api.github.com/users/ralsina/repos","events_url":"https://api.github.com/users/ralsina/events{/privacy}","received_events_url":"https://api.github.com/users/ralsina/received_events","type":"User","site_admin":false},"open_issues":50,"closed_issues":96,"state":"open","created_at":"2014-04-18T00:51:25Z","updated_at":"2016-10-18T12:12:14Z","due_on":null,"closed_at":null},"comments":8,"created_at":"2015-09-21T14:50:33Z","updated_at":"2016-10-19T19:33:40Z","closed_at":null,"body":"So, we have a post / page. It has a tag. Then we:\r\n\r\n* Create a list of tags\r\n* Create a list of things for each tag\r\n* Link from the post to the tag\r\n\r\nThen the post has an author. We:\r\n\r\n* Create a list of authors\r\n* Create a list of things for each author\r\n* Link from the post to the author\r\n\r\nAnd then there are sections. We:\r\n\r\n* Create a list of sections\r\n* etc, etc etc.\r\n\r\nThis feels to me like it has reached a tipping point of special cases, and needs to be refactored into something that:\r\n\r\n1) Has a function to classify posts per \"something\"\r\n2) Provides a list of the different somethings in all the posts\r\n3) Can create a link to a specific something.\r\n\r\nAm I right?"},"comment":{"url":"https://api.github.com/repos/getnikola/nikola/issues/comments/254917078","html_url":"https://github.com/getnikola/nikola/issues/2107#issuecomment-254917078","issue_url":"https://api.github.com/repos/getnikola/nikola/issues/2107","id":254917078,"user":{"login":"felixfontein","id":5781356,"avatar_url":"https://avatars.githubusercontent.com/u/5781356?v=3","gravatar_id":"","url":"https://api.github.com/users/felixfontein","html_url":"https://github.com/felixfontein","followers_url":"https://api.github.com/users/felixfontein/followers","following_url":"https://api.github.com/users/felixfontein/following{/other_user}","gists_url":"https://api.github.com/users/felixfontein/gists{/gist_id}","starred_url":"https://api.github.com/users/felixfontein/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/felixfontein/subscriptions","organizations_url":"https://api.github.com/users/felixfontein/orgs","repos_url":"https://api.github.com/users/felixfontein/repos","events_url":"https://api.github.com/users/felixfontein/events{/privacy}","received_events_url":"https://api.github.com/users/felixfontein/received_events","type":"User","site_admin":false},"created_at":"2016-10-19T19:33:40Z","updated_at":"2016-10-19T19:33:40Z","body":"Ok, I finished a first experimental version of a generic taxonomy plugin in #2535. The main result is a new plugin category, `Taxonomy` (https://github.com/getnikola/nikola/blob/generalization-of-taxonomies/nikola/plugin_categories.py#L457), which contains quite a lot of stuff (to be very flexible and cover a log of corner cases in existing plugins), as well as conversion of most existing taxonomies to this new format. The only taxonomies missing are tags and categories, as they are inherently linked by the shared overview page. (Once that restriction is gone, conversion should be trivial, though.)\r\n\r\nSo far, the code size increased (partially due to long comments in the plugin interface), but I think the result is worth it: it is much easier to understand what the taxonomy plugins actually classify and it is also very simple to change them, like adding support for section hierarchies or hierarchical tags.\r\n\r\nAny comments/ideas/...?"}}
{"actor":{"display_login":"felixfontein"}}