class NotionToMd::Block
Public Class Methods
add_annotations(text, content)
click to toggle source
# File lib/notion_to_md/block.rb, line 110 def add_annotations(text, content) annotations = text[:annotations].select { |_key, value| !!value } annotations.keys.inject(content) do |enriched_content, annotation| TextAnnotation.send(annotation.to_sym, enriched_content) end end
add_link(text, content)
click to toggle source
# File lib/notion_to_md/block.rb, line 103 def add_link(text, content) href = text[:href] return content if href.nil? "[#{content}](#{href})" end
blank()
click to toggle source
# File lib/notion_to_md/block.rb, line 78 def blank '<br />' end
bookmark(block)
click to toggle source
# File lib/notion_to_md/block.rb, line 69 def bookmark(block) url = block[:url] "[#{url}](#{url})" end
bulleted_list_item(block)
click to toggle source
# File lib/notion_to_md/block.rb, line 32 def bulleted_list_item(block) "- #{convert_text(block)}" end
callout(block)
click to toggle source
# File lib/notion_to_md/block.rb, line 22 def callout(block) icon = get_icon(block[:icon]) text = convert_text(block) "#{icon} #{text}" end
code(block)
click to toggle source
# File lib/notion_to_md/block.rb, line 48 def code(block) language = block[:language] text = convert_text(block) "```#{language}\n#{text}\n```" end
convert_caption(block)
click to toggle source
# File lib/notion_to_md/block.rb, line 89 def convert_caption(block) convert_text(rich_text: block[:caption]) end
convert_text(block)
click to toggle source
# File lib/notion_to_md/block.rb, line 82 def convert_text(block) block[:rich_text].map do |text| content = Text.send(text[:type], text) enrich_text_content(text, content) end.join end
divider(_block)
click to toggle source
# File lib/notion_to_md/block.rb, line 74 def divider(_block) '---' end
embed(block)
click to toggle source
# File lib/notion_to_md/block.rb, line 55 def embed(block) url = block[:url] "[#{url}](#{url})" end
enrich_text_content(text, content)
click to toggle source
# File lib/notion_to_md/block.rb, line 98 def enrich_text_content(text, content) enriched_content = add_link(text, content) add_annotations(text, enriched_content) end
get_icon(block)
click to toggle source
# File lib/notion_to_md/block.rb, line 93 def get_icon(block) type = block[:type].to_sym block[type] end
heading_1(block)
click to toggle source
# File lib/notion_to_md/block.rb, line 10 def heading_1(block) "# #{convert_text(block)}" end
heading_2(block)
click to toggle source
# File lib/notion_to_md/block.rb, line 14 def heading_2(block) "## #{convert_text(block)}" end
heading_3(block)
click to toggle source
# File lib/notion_to_md/block.rb, line 18 def heading_3(block) "### #{convert_text(block)}" end
image(block)
click to toggle source
# File lib/notion_to_md/block.rb, line 61 def image(block) type = block[:type].to_sym url = block.dig(type, :url) caption = convert_caption(block) "\n\n#{caption}" end
numbered_list_item(block)
click to toggle source
# File lib/notion_to_md/block.rb, line 36 def numbered_list_item(block) Logger.info('numbered_list_item type not supported. Shown as bulleted_list_item.') bulleted_list_item(block) end
paragraph(block)
click to toggle source
# File lib/notion_to_md/block.rb, line 6 def paragraph(block) convert_text(block) end
quote(block)
click to toggle source
# File lib/notion_to_md/block.rb, line 28 def quote(block) "> #{convert_text(block)}" end
to_do(block)
click to toggle source
# File lib/notion_to_md/block.rb, line 41 def to_do(block) checked = block[:checked] text = convert_text(block) "- #{checked ? '[x]' : '[ ]'} #{text}" end