Sha256: ab7973a826b71d3ba1f84bf5b8d747a1c40fe465707933f664a96e027605f124
Contents?: true
Size: 1.9 KB
Versions: 12
Compression:
Stored size: 1.9 KB
Contents
module Evertils module Type class Weekly < Type::Base NOTEBOOK = :Weekly COLOUR = 0xffe8b7 # # @since 0.3.7 def initialize(config, *args) super(config, *args) @title = @format.date_templates[NOTEBOOK] @content = @format.template_contents(NOTEBOOK) end # # @since 0.3.9 def tags [ "week-#{Date.today.cweek}", "month-#{Date.today.month}" ] end # # @since 0.3.15 def add_daily_note_link da_entity = @note_helper.wait_for_by_notebook(:Daily).entity # parse the ENML note data into something we can work with xml = @api.from_str(@entity.content) # include the XML element builder xml_helper = Evertils::Helper.load('Xml', xml) # internal URL for the linked note note_url = @note_helper.internal_url_for(da_entity) # don't add the note link if it is already there unless xml.search("a[href='#{note_url}']").size.zero? return Notify.warning('Daily note link already exists here, exiting to avoid duplicate content') end a = xml_helper.a( note_url, @format.date_templates[:Daily] ) li = xml_helper.li(a) br = xml_helper.br xml.search('en-note>div:first-child>ul li:last-child').after(li) # add a line break after the UL if one is not there yet if xml.search('en-note>div:first-child').first.next_element.name != 'br' xml.search('en-note>div:first-child').after(br) end # remove XML processing definition if it is the second element if xml.children[1].is_a?(Nokogiri::XML::ProcessingInstruction) xml.children[1].remove end @entity.content = xml.to_s Notify.success("#{self.class.name} updated, added daily note link") if @note.update end end end end
Version data entries
12 entries across 12 versions & 1 rubygems