[hibernate-dev] Hibernate.org layouts

Steve Ebersole steve at hibernate.org
Sat Aug 22 10:22:01 EDT 2015


I went ahead for now with your first (1) option.  So for ORM, the left-hand
"Documentation" link now becomes 3: "Documentation (5.0)", "Documentation
(4.3)", "Documentation (4.2)".

Not ideal long term, but as you said, the easiest solution for now and it
works.  But it got me thinking that a lot of the website content is
actually version specific, docs and downloads being the 2 main ones.  I'd
like to discuss options for this a little bit in Barcelona


On Thu, Aug 20, 2015 at 4:13 AM Hardy Ferentschik <hardy at hibernate.org>
wrote:

> Hi,
>
> I am not a great expert on the templating side either, but I can tell you
> how it
> is put together atm.
>
> The left hand menu items for the different projects (About, Downloads,
> Documentation, etc)
> are actually generated from the site config.
>
> If you look into _config/site.yml, you see that each project defines a
> menu section which
> is in itself split between intern and extern. The menu items specified in
> site.yml are
> then displayed depending on the chosen project.
>
> The place where this is happening is
> _layouts/project/project-frame.html.haml:
>
> {code}
>       %ul.nav.nav-list
>         -# removes index.html and then replace download.html to download/
>         - current_path = page.output_path.sub(/index\.html$/,
> "").sub(/\.html$/,"/")
>         - project_description.menu.intern.each do |menu|
>           -# active if path is a subpath of the menu item. The project
> home has to be treated differently as every path is a subpath of home
>           - active = (menu.href == "/#{page.project}/" && menu.href ==
> current_path) || (menu.href != "/#{page.project}/" &&
> current_path.start_with?(menu.href))
>           %li{:class => "#{(active ? "active" : "")}"}
>             %a{:href => "#{relative("#{menu.href}")}"}
>               %i{:class => "#{menu.css_class} menu-icon"}
>               #{menu.name}
>         %li.divider
>         - project_description.menu.extern.each do |menu|
>           %li
>             %a{:href => "#{menu.href}"}
>               %i{:class => "#{menu.css_class} menu-icon"}
>               #{menu.name}
> {code}
>
> project_description.menu.intern.each will iterate over the intern links
> for a given project whereas
> project_description.menu.extern.each iterates the external links.
>
> So far so good. Depending on how dynamic you want all this to work you
> have multiple options.
>
> 1) Work with the current approach and just define your different
> documentation links. If you work
>    with the current structure you would get multiple Downloads links
> pointing to the different
>    doc versions. This is the simplest approach and does not require any
> template change at all
> 2) Create a sub hash orm:menu:intern:documentation:versions (just
> extending the nested structure
>    we already have. YAML will automatically create the nested hashes out
> of this.) In the template
>    you would then need to handle the ORM case a bit different (eg by
> checking whether the current
>    project is ORM). This way I could envision a single Download link which
> would point to the
>    current docs together with a little expander icon next to it which when
> clicked makes the
>    other documentation links visible by expanding some sort of div. I
> think this would be visually
>    much more appealing. Obviously you need to deal with template changes
> as well as HTML + CSS changes
>    for getting the drop out menu right.
> 3) In the template check whether your current items is the ORM Download
> and if so, do whatever you want.
>    This bypasses site.yml completely.
>
> Personally I think 1) is a great way to get started verify the new
> approach and its navigation. Once all is
> working as it should I would look into 2) since I think it would be
> visually much more appealing. Maybe
> Davide could help with the CSS/HTML part. I am pretty bad with this.
>
> Anyways, hope this points you into the right direction.
>
> --Hardy
>
>
>
>
>
> On Wed, Aug 19, 2015 at 10:52:32PM +0000, Steve Ebersole wrote:
> > In regards to WEBSITE-382
> > <https://hibernate.atlassian.net/browse/WEBSITE-382>[1], I would love to
> > get the "list" of version family specific doc page links into the left
> nav
> > ideally as another section there.  Anyone able to give me some pointers
> how
> > to hook into the left-hand nav links are managed?
> >
> > I see 'bothcol.html.haml' defines 'leftcol.html.haml' and
> > 'rightcol.html.haml' are defined.  But I have no idea if that is the
> right
> > place.  I have never even seen a right-hand column in use in the website.
> > And I have not found any specific 'leftcol.html.haml' or
> > 'rightcol.html.haml' files.
> >
> > [1] https://hibernate.atlassian.net/browse/WEBSITE-382
> > _______________________________________________
> > hibernate-dev mailing list
> > hibernate-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/hibernate-dev
>


More information about the hibernate-dev mailing list