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
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)

  "![](#{url})\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