Loading lib/jsduck/app.rb +2 −0 Original line number Diff line number Diff line require 'jsduck/batch_parser' require 'jsduck/assets' require 'jsduck/meta_tag_registry' require 'jsduck/builtins_registry' require 'jsduck/export_writer' require 'jsduck/web_writer' Loading Loading @@ -39,6 +40,7 @@ module JsDuck # Give access to assets from all meta-tags MetaTagRegistry.instance.assets = @assets BuiltinsRegistry.assets = @assets end def generate_export Loading lib/jsduck/tag/aside.rb→lib/jsduck/builtins/aside.rb +70 −0 Original line number Diff line number Diff line require "jsduck/meta_tag" require "jsduck/builtins/tag" require "jsduck/logger" module JsDuck::Tag # Implementation of @aside tag. class Aside < JsDuck::MetaTag module JsDuck::Builtins class Aside < Tag def initialize @name = "aside" @pattern = "aside" @key = :aside @position = :top @allowed_types = { :guide => true, :video => true, :example => true, } @html_position = :top end def to_value(asides) asides.map do |line| if line =~ /\A(\w+) +([^ ].*)\Z/ type = $1.to_sym name = $2.strip if @allowed_types[type] {:type => type, :name => name} else warn("Unknown @aside type: #{type}") def parse(p) p.add_tag(:aside) p.skip_horiz_white maybe_aside_type(p) p.skip_horiz_white p.maybe_name end else warn("Bad syntax: @aside #{line}") def maybe_aside_type(p) p.current_tag[:type] = p.ident.to_sym if p.look(/\w+/) end end.compact def process_doc(tags) tags end def to_html(asides) asides.map do |aside| def to_html(context) context[:aside].map do |aside| type = aside[:type] name = aside[:name] assets_group = get_assets_group(type) Loading @@ -49,11 +43,14 @@ module JsDuck::Tag </div> EOHTML else warn("Unknown @aside name: #{type} #{name}") warn("Unknown @aside name: #{type} #{name}", context) end end.compact end # special accessor for @aside alone through which assets are set attr_accessor :assets def get_assets_group(type) case type when :guide then @assets.guides Loading @@ -63,12 +60,11 @@ module JsDuck::Tag end end def warn(msg) ctx = @context ? @context[:files][0] : {} JsDuck::Logger.warn(:aside, msg, ctx[:filename], ctx[:linenr]) def warn(msg, context) file = context[:files][0] JsDuck::Logger.warn(:aside, msg, file[:filename], file[:linenr]) nil end end end lib/jsduck/builtins_registry.rb +5 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,11 @@ module JsDuck # Array of attributes to be shown in member signatures # (and in order they should be shown in). attr_reader :signatures # Gives access to assets from @aside tag def assets=(assets) @keys[:aside].assets = assets end end end Loading
lib/jsduck/app.rb +2 −0 Original line number Diff line number Diff line require 'jsduck/batch_parser' require 'jsduck/assets' require 'jsduck/meta_tag_registry' require 'jsduck/builtins_registry' require 'jsduck/export_writer' require 'jsduck/web_writer' Loading Loading @@ -39,6 +40,7 @@ module JsDuck # Give access to assets from all meta-tags MetaTagRegistry.instance.assets = @assets BuiltinsRegistry.assets = @assets end def generate_export Loading
lib/jsduck/tag/aside.rb→lib/jsduck/builtins/aside.rb +70 −0 Original line number Diff line number Diff line require "jsduck/meta_tag" require "jsduck/builtins/tag" require "jsduck/logger" module JsDuck::Tag # Implementation of @aside tag. class Aside < JsDuck::MetaTag module JsDuck::Builtins class Aside < Tag def initialize @name = "aside" @pattern = "aside" @key = :aside @position = :top @allowed_types = { :guide => true, :video => true, :example => true, } @html_position = :top end def to_value(asides) asides.map do |line| if line =~ /\A(\w+) +([^ ].*)\Z/ type = $1.to_sym name = $2.strip if @allowed_types[type] {:type => type, :name => name} else warn("Unknown @aside type: #{type}") def parse(p) p.add_tag(:aside) p.skip_horiz_white maybe_aside_type(p) p.skip_horiz_white p.maybe_name end else warn("Bad syntax: @aside #{line}") def maybe_aside_type(p) p.current_tag[:type] = p.ident.to_sym if p.look(/\w+/) end end.compact def process_doc(tags) tags end def to_html(asides) asides.map do |aside| def to_html(context) context[:aside].map do |aside| type = aside[:type] name = aside[:name] assets_group = get_assets_group(type) Loading @@ -49,11 +43,14 @@ module JsDuck::Tag </div> EOHTML else warn("Unknown @aside name: #{type} #{name}") warn("Unknown @aside name: #{type} #{name}", context) end end.compact end # special accessor for @aside alone through which assets are set attr_accessor :assets def get_assets_group(type) case type when :guide then @assets.guides Loading @@ -63,12 +60,11 @@ module JsDuck::Tag end end def warn(msg) ctx = @context ? @context[:files][0] : {} JsDuck::Logger.warn(:aside, msg, ctx[:filename], ctx[:linenr]) def warn(msg, context) file = context[:files][0] JsDuck::Logger.warn(:aside, msg, file[:filename], file[:linenr]) nil end end end
lib/jsduck/builtins_registry.rb +5 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,11 @@ module JsDuck # Array of attributes to be shown in member signatures # (and in order they should be shown in). attr_reader :signatures # Gives access to assets from @aside tag def assets=(assets) @keys[:aside].assets = assets end end end