Liquor Tags - Fetch OpenGraph data and Render the output
Camilo

Camilo @clsource

About: 🐱‍👤

Location:
Chile
Joined:
Feb 22, 2017

Liquor Tags - Fetch OpenGraph data and Render the output

Publish Date: Mar 26 '24
2 0

Liquor Tags. Inspired by dev.to embed tags (liquid tags),
takes Open Graph data from URLs and generate output using pseudo EEx templates.
Useful when creating previews of websites using Open Graph data.

Installation

Mix.install([
  {:liquor, "~> 1.0.0"},
  {:req, "~> 0.4.14"}, # Just for demostration
  {:kino, "~> 0.12.3"} # Just for demostration
])
Enter fullscreen mode Exit fullscreen mode
alias Liquor.Tags.Tag

content = """
{% github ElixirCL %}
{% embed https://ninjas.cl %}
"""

tags = [
  Tag.new("github", "Github: <%= og.url %>", "https://github.com"),
  Tag.new("embed", "Website: <%= og.title %>")
]

# Fetch only needs to return the HTML string
fetch = fn url -> Req.get!(url) |> then(& &1.body) end

Liquor.render(content, tags, fetch)
|> Kino.Text.new()
Enter fullscreen mode Exit fullscreen mode

Renders

Github: https://github.com/ElixirCL
Website: Ninja Software Chile (Ninjas.cl)
Enter fullscreen mode Exit fullscreen mode

Comments 0 total

    Add comment