This is an automated email from the ASF dual-hosted git repository. niallp pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/attic.git
The following commit(s) were added to refs/heads/main by this push: new d84cbfe Fix the project order in the Navigation sidebar: - projects with lowercase names (e.g. iBATIS) were at the end of the list - add lowercase name and sort project list on that - add "nav_order" to page attributes using index of the sorted project list d84cbfe is described below commit d84cbfee1ea047db75fab664ca98ad4fd08a243f Author: Niall Pemberton <niall.pember...@gmail.com> AuthorDate: Thu May 1 03:32:38 2025 +0100 Fix the project order in the Navigation sidebar: - projects with lowercase names (e.g. iBATIS) were at the end of the list - add lowercase name and sort project list on that - add "nav_order" to page attributes using index of the sorted project list --- _plugins/project-data-plugin.rb | 3 ++- _plugins/projects-plugin.rb | 13 +++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/_plugins/project-data-plugin.rb b/_plugins/project-data-plugin.rb index 84e319d..ad181e2 100644 --- a/_plugins/project-data-plugin.rb +++ b/_plugins/project-data-plugin.rb @@ -36,6 +36,7 @@ module ProjectDataPlugin site.data['projects'].each do | projectId, project| project['project_id'] = projectId project['project_name'] = project.fetch("project_name", projectId.capitalize()) + project['project_name_lower'] = project["project_name"].downcase project['project_longname'] = project.fetch("project_longname", project['project_name'] ) project['project_apachename'] = "Apache " + project["project_longname"] project['project_domain'] = project.fetch("project_domain", projectId + ".apache.org") @@ -60,7 +61,7 @@ module ProjectDataPlugin projects.push(project) end - site.data['project_array'] = projects + site.data['project_array'] = projects.sort_by { |project| project['project_name_lower'] } end end diff --git a/_plugins/projects-plugin.rb b/_plugins/projects-plugin.rb index 7d8b80a..30d5da5 100644 --- a/_plugins/projects-plugin.rb +++ b/_plugins/projects-plugin.rb @@ -26,8 +26,8 @@ module ProjectsPlugin safe true def generate(site) - site.data['project_array'].each do | project | - site.pages << ProjectPage.new(site, project['project_id'], project) + site.data['project_array'].each_with_index do | project, index | + site.pages << ProjectPage.new(site, index, project) end end end @@ -37,16 +37,16 @@ module ProjectsPlugin # # Subclass of `Jekyll::Page` with custom method definitions. class ProjectPage < Jekyll::Page - def initialize(site, projectId, project) + def initialize(site, index, project) @site = site # the current site instance. @base = site.source # path to the source directory. @dir = 'projects' # the directory the page will reside in. # Page name - @basename = projectId # filename without the extension. - @ext = '.html' # the extension. - @name = @basename + @ext # filename + @basename = project['project_id'] # filename without the extension. + @ext = '.html' # the extension. + @name = @basename + @ext # filename # Look up front matter defaults scoped to type `categories`, if given key # doesn't exist in the `data` hash. @@ -58,6 +58,7 @@ module ProjectsPlugin @data['layout'] ='project-layout' @data['title'] = project['project_name'] @data['parent'] = 'Retired Projects' + @data['nav_order'] = index @data['has_toc'] = true end end