Ich versuche einen CamelCase Jekyll Filter zu machen.CamelCase Jekyll Filter
=begin
# Custom to camelcase function
# Usage:
# 'string'.camelize
# 'string'.camelize(:lower)
=end
class String
def camelize(*separators)
case separators.first
when Symbol, TrueClass, FalseClass, NilClass
first_letter = separators.shift
end
separators = ['_', '\s'] if separators.empty?
str = self.dup
separators.each do |s|
str = str.gsub(/(?:#{s}+)([a-z])/){ $1.upcase }
end
case first_letter
when :upper, true
str = str.gsub(/(\A|\s)([a-z])/){ $1 + $2.upcase }
when :lower, false
str = str.gsub(/(\A|\s)([A-Z])/){ $1 + $2.downcase }
end
str
end
end
=begin
Jekyll filter to convert string to camelcase
Usage:
{% 'string' | camelcase %}
=end
module Jekyll
module CamelCase
def camelcase(input)
input.camelize(:lower)
end
end
end
Liquid::Template.register_filter(Jekyll::CamelCase)
Es ist dann erfolgreich, wenn eine Zeichenfolge Filterung:
{{ 'Page Title' | camelcase }} # pageTitle
... aber nicht, wenn auf einer Seite Variable verwendet:
{{ page.title | camelcase }} # Page Title
Könnte es etwas sein, ich vermisse ich? Könnte jemand das auf seiner eigenen Jekyll-Installation versuchen?
Es ist nicht sehr wichtig, aber es hat mich stundenlang abgehört.
Danke an alle. =)
hier beide Produkte ' "Seitentitel"=> "Seitentitel"'. Jekyll 3.0.x, 3.1.x, Ruby 2.1.8, 2.3.0 –
Bedeutet das, dass etwas mit der Camelize-Funktion nicht stimmt? – evolutionxbox
Ja, ich denke schon. –