Legal stuff about this site and your private life:

  • We use a cookie to keep your preferences (language, NSFW status, login status) during navigation.
  • We use your local storage to save the announces you closed (like this one).
  • We don't save informations you don't give
  • We don't share your email address if you comment or register
  • There is no tracker of any kind.

If you're not OK with this, move your way.

Elabs engine has been updated with an announcement system and a totally new UI.

Updating to this version breaks the original style and layout.

Join the project !


  • New "license-icons" webfont to provide licenses icons.
  • icon helper now have a new pack parameter, which allows to specify a custom icon pack.
  • A elabs:images generator has been added, to copy images for override
  • Admins can make announces for specific targets (global, members or admins) that are displayed in public and member layouts. Announcements are dismissible, this information being stored in localStorage.
  • A really simple system to avoid dumb bots on comments and reports: an additional field is added to the form, the user is asked to leave it blank. The field is hidden by JS on page load, for people who use JS everywhere. If the field is filled, a success message is displayed but nothing is actually saved. This can be disabled with the Elabs:.trap_dumb_bots option in the initializer.
  • JS helpers: new hasClass(element, className) and toggleClass(element, className) methods
  • SCSS elements: ability to create dropdown menus


  • DeviseViews generator is now DeviseMailerViews, as it's what it does.
  • Helpers are split in more files for more sense.
  • The way comment notifications are managed is changed: notification now points to the comment. All existing comment notification are deleted.
  • Shortcodes for content types and users now uses slugs


  • Fonts an images are no longer in "public" folder. They have been moved in app/assets and are now processed by the assets pipeline
  • Shortcode helpers were improved, and tests are now more precise on the shortcodes behaviors
  • Cards for content types are now a generic partial. Edit layout/_content_card to override it
  • "Related content" areas with tabs are now a generic partial. Edit layout/_content_associations to override them.
  • Forms for content now have a _form_commons partial for generic inputs
  • Comments:
    • Comments can be archived and deleted
    • Associated notification are removed on delete/archive
  • Notifications links displays content title for comments notifications.
  • Notifications are deleted when reports are destroyed
  • All SCSS files are now sorted in better sub-folders:
    • "app/admin-members" stays the same for now
    • "app/components" for styles applied to whole widgets
    • "app/elements" for standalone elements (i.e: button, form, badge, ...)
    • "app/helpers" for elements to be extended (i.e: %clickable
    • "app/layout" for layout elements (i.e: pages, typo, ...)
    • "app/mixins" stays the same.
  • Overall style was enhanced:
    • Responsive design
    • More space around elements
    • Dropdowns menu
    • Popping panels
    • ...
  • Variables were extracted from SCSS components and put in a big _variables.scs file
  • Language page now only shows languages with content
  • In "Related content" areas:
    • the default tab is now the first with content
    • the "Show all" link is disabled when there is no related content
  • All Ruby and Node dependencies were updated


  • Yarn command sass:lint-fix is no longer available: stylelint ignores the inline "disable" rules when autofixing; resulting in a total mess when executed.


  • Licenses icons are removed from /licenses/xxx page titles, so no html is inserted in the layout title

Leave a comment

You want to react to this content or ask something to the author? Just leave a comment here!

Note that the comments are not publicly visible, so don't worry if you don't see yours.

All the information you give will only be visible to the author. We don't share anything with anyone.

Don't fill this field if you want this form to be saved.