| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ImageMagick does not handle resizing of animated gifs wery well.
Optimized gifs will usually have individual sizes for each frame,
only containing the actually changed image data. Each frame also have
an offset from the origin. When ImageMagick tries to resize such an
image, the offsets gets messed up and the result looks rather terrible.
There's ways to handle this in ImageMagick, by first making all frames
the same size (`convert -coalesce ...`) then resize (`convert -resize
...`) and finally optimize the gif again (`convert -layers Optimize
...`). However, this is a bit too much to handle when trying to download
the animation, so it should be done on or before upload.
For now, I think doing it offline before upload should be good enough.
This _requires_ though, that the animation has the correct dimensions
before upload!
|
|
|
|
|
|
|
|
|
|
|
| |
Why? Implementing our own search is quite involved if we want it to
be any good. So outsourcing makes sense. Qwant is hosted in Europe
(France,) and takes privacy seriously and doesn't track you.
See https://help.qwant.com/help/overview/our-philosophy/
And https://help.qwant.com/help/overview/how-does-qwant-make-money/
For more information.
|
|
|
|
|
|
|
|
|
| |
Main page and header now use flexbox instead of not quite working
floats and position relative/absolute. This really simplifies things.
Perhaps we'll even be able to make a mobile friendly site some day.
Various other cosmetic tweaks have snuch in too. The page now has a
max size of about 25cm, and some other minor tweaks.
|
| |
|
| |
|
|
|
|
| |
This reverts commit 9859504bb8a1dd94dbd2eb33984c00d11041d2e1.
|
|
|
|
| |
This reverts commit 8a5db8a2844d9356a87f95cf7d784c8faf7f592d.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
- Module headings now go all the way out.
- Side body content is included like a module only if not empty.
|
| |
|
| |
|
|
|
|
| |
Also fixes DOM id of sidebar modules with spaces in their title.
|
|
|
|
| |
Also strip out modules with empty bodies.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There was some problems with the approach in the previous commits.
- render_collection (render @sidebar_modules in our case) requires
that all objects return the same partial path. Ours may not do that,
so we wrote our own `render_sidebar_modules`-helper.
- The way render_partial finds the correct path to the partial is
to append what's returned by to_partial_path with whatever root
the parent view is in. That would require duplication of the partials
under all the different engines namespaces. Our `render_sidebar_modules`
does it differently, and just looks up the partial according to the
root namespace. This means the sidebar_module code can move back under
the root application so we don't mess up the refinery namespaces.
- Finally found the proper way to link to a blog_post so that it
works from all namespaces. The correct way is:
refinery.blog_post_path(post)
This works in views (and presumably helpers,) but not in controllers
which is why we struggled with it before.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rewrite the _sidebar_module partial to render only one module,
and to not make any assumptions about the contents of a module.
(Except that it has a title and a body.)
Move the actual module logic into model classes, and use the
ActiveModel magic to have it find it's own partial. Now we
have the view logic for each module in it's own partial that
in turn renders as part of the _sidebar_module partial.
Only implementation this far is the blog-category module
listing the latest blog entries within each category.
|
|
|
|
|
|
| |
I would like to just render the refinery/blog/index template for
this, but I did not find a way to do it, so I copied it instead. May
need to revisit this if upgrading to a new refinery or blog engine.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Note to self, use model decorators to massage model data, but leave
the markup to the views where it belong.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also did some code cleanup in
PagesControllerDecorator::populate_sidebars.
The controller will now populate left and right sidebars (only
left for now,) while the SidebarPostDecorator will provide the
markup for each post that is to be shown in a sidebar.
The plan is to further expand the system with other Sidebar-
Decorators, so each item can be rendered using the same in the
partial.
|
|
|
|
|
| |
List blog categories and 10 most resent posts in each category in
the left sidebar.
|
| |
|
|
|