doc support for mixins.
This commit is contained in:
parent
4afca420c3
commit
d7a9864ee2
@ -12,3 +12,9 @@
|
|||||||
- imports(@item).each do |import|
|
- imports(@item).each do |import|
|
||||||
%li= import
|
%li= import
|
||||||
|
|
||||||
|
%h2 Mixins
|
||||||
|
|
||||||
|
- mixins(@item).each do |mixin|
|
||||||
|
%h3= mixin_signature mixin
|
||||||
|
|
||||||
|
%pre= mixin.comment
|
||||||
|
@ -26,3 +26,38 @@ def imports(item)
|
|||||||
end
|
end
|
||||||
imports
|
imports
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def mixins(item)
|
||||||
|
sass_tree = tree(item)
|
||||||
|
mixins = []
|
||||||
|
comment = nil
|
||||||
|
sass_tree.children.each do |child|
|
||||||
|
if child.is_a?(Sass::Tree::MixinDefNode)
|
||||||
|
child.comment = comment
|
||||||
|
comment = nil
|
||||||
|
mixins << child
|
||||||
|
elsif child.is_a?(Sass::Tree::CommentNode)
|
||||||
|
comment ||= ""
|
||||||
|
comment << "\n" unless comment.empty?
|
||||||
|
comment << child.docstring
|
||||||
|
else
|
||||||
|
comment = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
mixins
|
||||||
|
end
|
||||||
|
|
||||||
|
def mixin_signature(mixin)
|
||||||
|
signature = "+#{mixin.name}"
|
||||||
|
if mixin.args && mixin.args.any?
|
||||||
|
signature << "("
|
||||||
|
signature << mixin.args.map do |a|
|
||||||
|
var = a.first
|
||||||
|
default_value = a.last
|
||||||
|
"#{var.inspect}#{" = " + default_value.inspect if default_value}"
|
||||||
|
end.join(", ")
|
||||||
|
signature << ")"
|
||||||
|
end
|
||||||
|
signature
|
||||||
|
end
|
||||||
|
|
||||||
|
@ -6,9 +6,15 @@ module Sass
|
|||||||
class MixinDefNode < Node
|
class MixinDefNode < Node
|
||||||
attr_accessor :name unless method_defined? :name
|
attr_accessor :name unless method_defined? :name
|
||||||
attr_accessor :args unless method_defined? :args
|
attr_accessor :args unless method_defined? :args
|
||||||
|
attr_accessor :comment unless method_defined? :comment
|
||||||
end
|
end
|
||||||
class ImportNode < Node
|
class ImportNode < RootNode
|
||||||
attr_accessor :imported_filename unless method_defined? :imported_filename
|
attr_accessor :imported_filename unless method_defined? :imported_filename
|
||||||
end
|
end
|
||||||
|
class CommentNode < Node
|
||||||
|
def docstring
|
||||||
|
([value] + lines).join("\n")
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
Loading…
Reference in New Issue
Block a user