Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a guides index and generator #2671

Merged
merged 2 commits into from
Apr 5, 2018
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Add a guides index generator
Run generator with

    ./list.rb > index.md
  • Loading branch information
tvdeyen committed Apr 4, 2018
commit ce18658c8f24ddba025c160bb31dc757aced4c3e
43 changes: 43 additions & 0 deletions guides/list.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/usr/bin/env ruby

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lint/ScriptPermission: Script file list.rb doesn't have execute permission.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried to, but git doesn't let me to.

# frozen_string_literal: true

require 'active_support/core_ext/string/inflections'

# Generates a new guides index
#
# Usage
#
# ./index.rb > index.md
#
def generate_index(files)
current_dir = nil

puts "# Solidus Guides"
puts ""

files.each do |file|
next unless File.file?(file)
file_path = file.sub(/^\.\//, '')
dir_name = nicify(File.dirname(file))
file_name = nicify(File.basename(file))
new_dir = current_dir != dir_name
if new_dir && !current_dir
puts "## #{dir_name}"
elsif current_dir && new_dir
puts ""
puts "## #{dir_name}"
end
puts " - [#{file_name}](#{file_path})"
current_dir = dir_name
end
end

def nicify(name)
name.sub(/^\.\//, '').tr('-', ' ').sub(/\.md$/, '').titleize
end

files = Dir.glob("**/*").sort.reject do |file|
File.basename(file) == File.basename(__FILE__) || File.basename(file) == 'index.md'
end

generate_index(files)