class Jekyll::URL
Public Class Methods
new(options)
click to toggle source
options - One of :permalink or :template must be supplied.
:template - The String used as template for URL generation, for example "/:path/:basename:output_ext", where a placeholder is prefixed with a colon. :placeholders - A hash containing the placeholders which will be replaced when used inside the template. E.g. { "year" => Time.now.strftime("%Y") } would replace the placeholder ":year" with the current year. :permalink - If supplied, no URL will be generated from the template. Instead, the given permalink will be used as URL.
# File lib/jekyll/url.rb, line 24 def initialize(options) @template = options[:template] @placeholders = options[:placeholders] || {} @permalink = options[:permalink] if (@template || @permalink).nil? raise ArgumentError, "One of :template or :permalink must be supplied." end end
Public Instance Methods
generate_url()
click to toggle source
sanitize_url(in_url)
click to toggle source
Returns a sanitized String URL
# File lib/jekyll/url.rb, line 52 def sanitize_url(in_url) # Remove all double slashes url = in_url.gsub(/\/\//, "/") # Remove every URL segment that consists solely of dots url = url.split('/').reject{ |part| part =~ /^\.+$/ }.join('/') # Append a trailing slash to the URL if the unsanitized URL had one url += "/" if in_url =~ /\/$/ # Always add a leading slash url.gsub!(/\A([^\/])/, '/\1') url end