Logs for #nikola for 2016-06-13

01:28:59 * ralsina reads backlog, shakes head a little.
02:10:40 <[Tritium]> at what?
02:25:26 <[Tritium]> What kind of plugin would you create if you wanted to post process the output of a page renderer (like markdown or pandoc) before a post gets split for a teaser?
02:48:59 <[Tritium]> actually it doesnt look like there is a place for me intercept between the call to compile a page and having it written to the output
03:15:51 <[Tritium]> What would be involved in adding a signal for 'post rendered'?
03:16:08 <[Tritium]> or 'post compiled', rather
03:33:26 <KwBot> [nikola] tritium21 opened issue #2369: Add a signal after a post is compiled. https://github.com/getnikola/nikola/issues/2369
04:16:42 <kbhat> Hi! I'm trying to embed a slideshow in a blog post, but the slides directive isn't working for me. Is there anything else that I need to take care of apart from https://getnikola.com/handbook.html#slideshows ?
04:17:50 <punchagan> kbhat: is there an error that you see? 
04:17:57 <kbhat> punchagan: nope
04:18:30 <punchagan> just to be sure, you are using it inside an rst post, right?
04:18:31 <kbhat> The `.. slides:: ` and the filenames are just rendered as plaintext.
04:18:36 <kbhat> Ah.
04:18:39 <kbhat> Oops.
04:18:40 <kbhat> No.
04:18:50 <kbhat> I'm using Markdown. Is there an equivalent for that?
04:19:42 <punchagan> I'm not aware of anything for Markdown, but this directive could possibly be converted to a shortcode. 
04:19:55 <kbhat> Shortcode?
04:19:56 <punchagan> https://getnikola.com/handbook.html#shortcodes
04:20:13 <kbhat> punchagan: awesome. Thanks a lot!
04:21:46 <punchagan> kbhat: again, I don't think there's already a shortcode that makes this ReST directive available to other markup formats, but it could be done. post-list for example has been made available in that way. 
04:22:29 <kbhat> punchagan: Alright. I'll see if I can figure it out.
04:22:59 <punchagan> kbhat: I can try and help you in a couple of hours, if you aren't done by then. 
04:24:29 <kbhat> punchagan: I'll probably be asleep by then. It isn't ultra-high-priority for me; just thought it'd be nicer in a blog post than a string of images one below the other.
04:24:42 <kbhat> I may come back to this at a later point though.
04:24:47 <punchagan> Cool
15:14:38 -GitHub[nikola]:#nikola- [nikola] tritium21 opened pull request #2370: Added 'compiled' signal (master...post_compile_signal) https://git.io/voCZw
15:20:49 -GitHub[nikola]:#nikola- [nikola] Kwpolska closed pull request #2370: Added 'compiled' signal (master...post_compile_signal) https://git.io/voCZw
15:21:01 <KwBot> [nikola] Kwpolska closed issue #2369: Add a signal after a post is compiled. https://github.com/getnikola/nikola/issues/2369
15:23:18 <[Tritium]> I tend to write one-line feature adds
15:23:34 <[Tritium]> thats the second one i had merged into nikola >.>
15:25:48 -travis-ci:#nikola- getnikola/nikola#7177 (master - 70fcee8 : Chris Warrick): The build passed.
15:25:49 -travis-ci:#nikola- Change view: https://github.com/getnikola/nikola/compare/43d3c51ccbc5...70fcee8548ce
15:25:49 -travis-ci:#nikola- Build details: https://travis-ci.org/getnikola/nikola/builds/137274950
15:40:54 <ChrisWarrick> any contribution is good
15:44:48 <ralsina> [Tritium]: one-line features are the best features
15:45:13 <ralsina> [Tritium]: because they not only are a feature, they make us feel warm and fuzzy about the internal design not being a piece of shit
15:46:44 <[Tritium]> Honestly, if i had to touch more than one method, I wouldnt have done it
15:48:00 <ralsina> [Tritium]: that's the beauty of signals
15:48:03 * ChrisWarrick looks for other one-method changes for [Tritium]
15:48:27 <ralsina> ChrisWarrick: like "hey, rewrite Post.text()"? ;-)
15:48:51 <ralsina> or the one that scans for posts. That one is a pile of crap :-)
15:49:19 <[Tritium]> ralsina: I will just replace it with a plugin (...since that is just a plugin) :)
15:49:54 <ralsina> There are a bunch of places in Nikola I would kill with fire, but I suspect the rewrite would be just as bad
15:52:35 <ChrisWarrick> we could do something about all those lists of posts (aka taxonomies aka tags/posts/…)
15:52:40 <ChrisWarrick> s/posts/categories/
15:54:37 <ralsina> yep
15:54:53 <ralsina> like, creating a taxonomy class
15:55:16 <ralsina> and the specialize it for each thing, and have a single copy of all the RSS / index / whatever generations
15:55:17 <[Tritium]> I tried doing something smarter when I was writing my restricted clone.... lists are really efficent...
15:55:24 <ralsina> the timeline is just a very lax taxonomy
15:55:41 <ralsina> we can inherit list ;-)
16:00:19 * [Tritium] replaces it with sqlite
16:01:04 <[Tritium]> I mean, no, im not going to even try that...
16:02:00 <[Tritium]> but we gather a big data set, then want to query it on various properties.  its done now by creating a list for every query we want to run.
16:02:12 <[Tritium]> thats what sql does
16:02:41 <[Tritium]> s/does/provides/
16:02:46 <ralsina> yes, we are materializing things
16:03:42 <[Tritium]> how horrible of a performance hit would it be to have a list, and for all the taxonomies, we just iterate it with a generator?
16:03:54 <ralsina> so, a taonomy would be like a materialized query on the posts/pages database, and then RSS, indexes, etc would just be a function that takes a query and a config
16:04:09 <ralsina> [Tritium]: probably unnoticeable :-)
16:04:17 <ralsina> Nikola is very very IO bound
16:05:26 <[Tritium]> Thats a way to do it then... just have a big list of everything (as an instance member of a class or something), and for everything we want we just filter inside of a generator
16:07:25 <ChrisWarrick> building nikola on a SQL-esque database could be a fun idea
16:11:40 <[Tritium]> Of course changing the way nikola holds its posts internally will probably break a lot of people's sites and a number of plugins
16:13:05 <ChrisWarrick> murdering the Post class might be problematic
16:13:29 <ChrisWarrick> I actually do something like this (using a Redis hack instead of SQL) in Coil, but that’s probably not good for performance
16:22:58 <ralsina> well, everything can look as anything else in Python with a little ingenuity
16:23:22 <ralsina> I don't think anything accesses the internal data structure other than going through the timeline
16:23:49 <[Tritium]> so if the timeline changes to another object, it just has to be iterable (maybe indexable)
16:24:05 <ralsina> right