class RuneBlog::Widget::Links
Constants
- Title
Public Class Methods
new(repo)
click to toggle source
# File lib/widgets/links/links.rb, line 9 def initialize(repo) @blog = repo @datafile = input = "list.data" @lines = _get_data(@datafile) end
Public Instance Methods
_html_body(file, css = nil) { || ... }
click to toggle source
# File lib/widgets/links/links.rb, line 20 def _html_body(file, css = nil) file.puts "<html>" if css file.puts " <head>" file.puts " <style>\n#{css}\n </style>" file.puts " </head>" end file.puts " <body>" yield file.puts " </body>\n</html>" end
build()
click to toggle source
# File lib/widgets/links/links.rb, line 15 def build write_main write_card end
refresh()
click to toggle source
# File lib/widgets/links/links.rb, line 87 def refresh end
write_card()
click to toggle source
# File lib/widgets/links/links.rb, line 50 def write_card tag = "links" url = :widgets/tag/tag+"-main.html" card_title = "External links" # FIXME cardfile = "#{Type}-card" File.open("#{cardfile}.html", "w") do |f| f.puts <<-EOS <div class="card mb-3"> <div class="card-body"> <h5 class="card-title"> <button type="button" class="btn btn-primary" data-toggle="collapse" data-target="##{tag}">+</button> <a href="javascript: void(0)" onclick="javascript:open_main('#{url}')" style="text-decoration: none; color: black"> #{card_title}</a> </h5> <div class="collapse" id="#{tag}"> EOS @data.each do |url2, frameable, title| f.puts "<!-- #{[url2, frameable, title].inspect} -->" main_ref = %[href="javascript: void(0)" onclick="javascript:open_main('#{url2}')"] tab_ref = %[href="#{url2}"] url_ref = (frameable == "yes") ? main_ref : tab_ref anchor = %[<a #{url_ref}>#{title}</a>] wrapper = %[<li class="list-group-item">#{anchor}</li>] f.puts wrapper end f.puts <<-EOS </div> </div> </div> EOS end end
write_main()
click to toggle source
# File lib/widgets/links/links.rb, line 32 def write_main @data = @lines.map! {|x| x.chomp.split(/, */, 3) } css = "body { font-family: verdana }" card_title = Title File.open("#{Type}-main.html", "w") do |f| _html_body(f, css) do f.puts "<h1>#{card_title}</h1><br><hr>" url_ref = nil @data.each do |url, frameable, title| url_ref = "href = '#{url}'" url_ref << " target=blank" if frameable == "yes" css = "color: #8888FF; text-decoration: none; font-size: 21px" f.puts %[<a style="#{css}" #{url_ref}>#{title}</a> <br>] end end end end