Packages

Furlex is a structured data extraction tool written in Elixir. It currently supports unfurling oEmbed, Twitter Card, Facebook Open Graph, JSON-LD and plain ole' HTML `<meta />` data out of any url you supply.

Current section

Files

Jump to
furlex doc readme.html
Raw

doc/readme.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="ExDoc v0.20.2">
<meta name="project" content="Furlex v0.4.3">
<title>Furlex — Furlex v0.4.3</title>
<link rel="stylesheet" href="dist/html-d9f58a6320b5bfa6dd77.css" />
<link rel="canonical" href="https://hexdocs.pm/furlex/readme.html" />
<script src="dist/sidebar_items-7d5616bb45.js"></script>
<script src="docs_config.js"></script>
<script async src="dist/html-d9f58a6320b5bfa6dd77.js"></script>
</head>
<body data-type="extras">
<script>try { if(localStorage.getItem('night-mode')) document.body.className += ' night-mode'; } catch (e) { }</script>
<div class="main">
<button class="sidebar-button sidebar-toggle">
<span class="icon-menu" title="Collapse/expand sidebar"></span>
</button>
<section class="sidebar">
<form class="sidebar-search" action="search.html">
<button type="submit" class="search-button">
<span class="icon-search" aria-hidden="true"></span>
</button>
<button type="button" tabindex="-1" class="search-close-button">
<span class="icon-cross" title="Cancel search"></span>
</button>
<label class="search-label">
<input name="q" type="text" id="search-list" class="search-input" placeholder="Search..." aria-label="Search" autocomplete="off" />
</label>
</form>
<div class="autocomplete">
<div class="autocomplete-results">
</div>
</div>
<div class="sidebar-header">
<div class="sidebar-projectDetails">
<a href="Furlex.html" class="sidebar-projectName">
Furlex </a>
<h2 class="sidebar-projectVersion">
v0.4.3
</h2>
</div>
</div>
<ul class="sidebar-listNav">
<li><a id="extras-list" href="#full-list">Pages</a></li>
<li><a id="modules-list" href="#full-list">Modules</a></li>
</ul>
<div class="gradient"></div>
<ul id="full-list" class="sidebar-fullList"></ul>
</section>
<section class="content">
<div class="content-outer">
<div id="content" class="content-inner">
<h1>Furlex</h1>
<p>Furlex is a <a href="https://moz.com/learn/seo/schema-structured-data">structured data</a> extraction tool written in Elixir.</p>
<p>It currently supports unfurling oEmbed, Twitter Card, Facebook Open Graph, JSON-LD
and plain ole&#39; HTML <code class="inline">&lt;meta /&gt;</code> data out of any url you supply.</p>
<h2 id="installation" class="section-heading">
<a href="#installation" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
Installation
</h2>
<p>Add <code class="inline">:furlex</code> to your list of dependencies in <code class="inline">mix.exs</code>:</p>
<pre><code class="nohighlight makeup elixir"><span class="kd">def</span><span class="w"> </span><span class="nf">deps</span><span class="w"> </span><span class="k" data-group-id="9436670711-1">do</span><span class="w">
</span><span class="p" data-group-id="9436670711-2">[</span><span class="p" data-group-id="9436670711-3">{</span><span class="ss">:furlex</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;~&gt; 0.4.2&quot;</span><span class="p" data-group-id="9436670711-3">}</span><span class="p" data-group-id="9436670711-2">]</span><span class="w">
</span><span class="k" data-group-id="9436670711-1">end</span></code></pre>
<p>Then run <code class="inline">$ mix deps.get</code>. Also add <code class="inline">:furlex</code> to your applications list:</p>
<pre><code class="nohighlight makeup elixir"><span class="kd">def</span><span class="w"> </span><span class="nf">application</span><span class="w"> </span><span class="k" data-group-id="1195211712-1">do</span><span class="w">
</span><span class="p" data-group-id="1195211712-2">[</span><span class="ss">applications</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="1195211712-3">[</span><span class="ss">:furlex</span><span class="p" data-group-id="1195211712-3">]</span><span class="p" data-group-id="1195211712-2">]</span><span class="w">
</span><span class="k" data-group-id="1195211712-1">end</span></code></pre>
<p><a href="http://github.com/michalmuskala/jason">Jason</a> is the default json library in Furlex. You can however configure Furlex to use another library. For example:</p>
<pre><code class="nohighlight makeup elixir"><span class="n">config</span><span class="w"> </span><span class="ss">:furlex</span><span class="p">,</span><span class="w"> </span><span class="ss">:json_library</span><span class="p">,</span><span class="w"> </span><span class="nc">YourLibraryOfChoice</span></code></pre>
<h2 id="usage" class="section-heading">
<a href="#usage" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
Usage
</h2>
<p>To unfurl a url, simply pass it to <a href="Furlex.html#unfurl/1"><code class="inline">Furlex.unfurl/1</code></a></p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex(1)&gt; </span><span class="nc">Furlex</span><span class="o">.</span><span class="n">unfurl</span><span class="w"> </span><span class="s">&quot;https://www.youtube.com/watch?v=Gh6H7Md_L2k&quot;</span><span class="w">
</span><span class="p" data-group-id="3155759647-1">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w">
</span><span class="p" data-group-id="3155759647-2">%</span><span class="nc" data-group-id="3155759647-2">Furlex</span><span class="p" data-group-id="3155759647-2">{</span><span class="ss">canonical_url</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;https://www.youtube.com/watch?v=Gh6H7Md_L2k&quot;</span><span class="p">,</span><span class="w">
</span><span class="ss">facebook</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="3155759647-3">%{</span><span class="s">&quot;fb:app_id&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;87741124305&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;og:description&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;Watch the full episode: https://www.thisoldhouse.com/watch/ask-toh-future-house-offerman Ask This Old House host Kevin O’Connor visits Nick Offerman in Los A...&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;og:image&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;https://i.ytimg.com/vi/Gh6H7Md_L2k/maxresdefault.jpg&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;og:site_name&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;YouTube&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;og:title&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;Touring Nick Offerman’s Wood Shop&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;og:type&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;video&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;og:url&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;https://www.youtube.com/watch?v=Gh6H7Md_L2k&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;og:video:height&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="p" data-group-id="3155759647-4">[</span><span class="s">&quot;720&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;720&quot;</span><span class="p" data-group-id="3155759647-4">]</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;og:video:secure_url&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="p" data-group-id="3155759647-5">[</span><span class="s">&quot;https://www.youtube.com/embed/Gh6H7Md_L2k&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;https://www.youtube.com/v/Gh6H7Md_L2k?version=3&amp;autohide=1&quot;</span><span class="p" data-group-id="3155759647-5">]</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;og:video:type&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="p" data-group-id="3155759647-6">[</span><span class="s">&quot;text/html&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;application/x-shockwave-flash&quot;</span><span class="p" data-group-id="3155759647-6">]</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;og:video:url&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="p" data-group-id="3155759647-7">[</span><span class="s">&quot;https://www.youtube.com/embed/Gh6H7Md_L2k&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;http://www.youtube.com/v/Gh6H7Md_L2k?version=3&amp;autohide=1&quot;</span><span class="p" data-group-id="3155759647-7">]</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;og:video:width&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="p" data-group-id="3155759647-8">[</span><span class="s">&quot;1280&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;1280&quot;</span><span class="p" data-group-id="3155759647-8">]</span><span class="p" data-group-id="3155759647-3">}</span><span class="p">,</span><span class="w">
</span><span class="ss">json_ld</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="3155759647-9">[</span><span class="p" data-group-id="3155759647-10">%{</span><span class="s">&quot;@context&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;http://schema.org&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;@type&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;BreadcrumbList&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;itemListElement&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="p" data-group-id="3155759647-11">[</span><span class="p" data-group-id="3155759647-12">%{</span><span class="s">&quot;@type&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;ListItem&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;item&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="p" data-group-id="3155759647-13">%{</span><span class="s">&quot;@id&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;http://www.youtube.com/user/thisoldhouse&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;name&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;This Old House&quot;</span><span class="p" data-group-id="3155759647-13">}</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;position&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="3155759647-12">}</span><span class="p" data-group-id="3155759647-11">]</span><span class="p" data-group-id="3155759647-10">}</span><span class="p" data-group-id="3155759647-9">]</span><span class="p">,</span><span class="w">
</span><span class="ss">oembed</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="3155759647-14">%{</span><span class="s">&quot;author_name&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;This Old House&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;author_url&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;https://www.youtube.com/user/thisoldhouse&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;height&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="mi">270</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;html&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;&lt;iframe width=</span><span class="se">\&quot;</span><span class="s">480</span><span class="se">\&quot;</span><span class="s"> height=</span><span class="se">\&quot;</span><span class="s">270</span><span class="se">\&quot;</span><span class="s"> src=</span><span class="se">\&quot;</span><span class="s">https://www.youtube.com/embed/Gh6H7Md_L2k?feature=oembed</span><span class="se">\&quot;</span><span class="s"> frameborder=</span><span class="se">\&quot;</span><span class="s">0</span><span class="se">\&quot;</span><span class="s"> gesture=</span><span class="se">\&quot;</span><span class="s">media</span><span class="se">\&quot;</span><span class="s"> allow=</span><span class="se">\&quot;</span><span class="s">encrypted-media</span><span class="se">\&quot;</span><span class="s"> allowfullscreen&gt;&lt;/iframe&gt;&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;provider_name&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;YouTube&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;provider_url&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;https://www.youtube.com/&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;thumbnail_height&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="mi">360</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;thumbnail_url&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;https://i.ytimg.com/vi/Gh6H7Md_L2k/hqdefault.jpg&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;thumbnail_width&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="mi">480</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;title&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;Touring Nick Offerman’s Wood Shop&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;type&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;video&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;version&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;1.0&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;width&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="mi">480</span><span class="p" data-group-id="3155759647-14">}</span><span class="p">,</span><span class="w">
</span><span class="ss">other</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="3155759647-15">%{</span><span class="s">&quot;description&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;Watch the full episode: https://www.thisoldhouse.com/watch/ask-toh-future-house-offerman Ask This Old House host Kevin O’Connor visits Nick Offerman in Los A...&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;keywords&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;this old house, how-to, home improvement, Episode, TV Show, DIY, Ask This Old House, Nick Offerman, Kevin O&#39;Connor, woodworking, wood shop&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;theme-color&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;#ff0000&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;title&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;Touring Nick Offerman’s Wood Shop&quot;</span><span class="p" data-group-id="3155759647-15">}</span><span class="p">,</span><span class="w">
</span><span class="ss">status_code</span><span class="p">:</span><span class="w"> </span><span class="mi">200</span><span class="p">,</span><span class="w">
</span><span class="ss">twitter</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="3155759647-16">%{</span><span class="s">&quot;twitter:app:id:googleplay&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;com.google.android.youtube&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;twitter:app:id:ipad&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;544007664&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;twitter:app:id:iphone&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;544007664&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;twitter:app:name:googleplay&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;YouTube&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;twitter:app:name:ipad&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;YouTube&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;twitter:app:name:iphone&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;YouTube&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;twitter:app:url:googleplay&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;https://www.youtube.com/watch?v=Gh6H7Md_L2k&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;twitter:app:url:ipad&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;vnd.youtube://www.youtube.com/watch?v=Gh6H7Md_L2k&amp;feature=applinks&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;twitter:app:url:iphone&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;vnd.youtube://www.youtube.com/watch?v=Gh6H7Md_L2k&amp;feature=applinks&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;twitter:card&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;player&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;twitter:description&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;Watch the full episode: https://www.thisoldhouse.com/watch/ask-toh-future-house-offerman Ask This Old House host Kevin O’Connor visits Nick Offerman in Los A...&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;twitter:image&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;https://i.ytimg.com/vi/Gh6H7Md_L2k/maxresdefault.jpg&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;twitter:player&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;https://www.youtube.com/embed/Gh6H7Md_L2k&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;twitter:player:height&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;720&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;twitter:player:width&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;1280&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;twitter:site&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;@youtube&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;twitter:title&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;Touring Nick Offerman’s Wood Shop&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;twitter:url&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;https://www.youtube.com/watch?v=Gh6H7Md_L2k&quot;</span><span class="p" data-group-id="3155759647-16">}</span><span class="p" data-group-id="3155759647-2">}</span><span class="p" data-group-id="3155759647-1">}</span></code></pre>
<h2 id="configuration" class="section-heading">
<a href="#configuration" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
Configuration
</h2>
<p>Furlex accepts a few optional configuration parameters.</p>
<p>You may configure additional tags to capture under the Facebook
OpenGraph and TwitterCard parsers.</p>
<pre><code class="nohighlight makeup elixir"><span class="n">config</span><span class="w"> </span><span class="ss">:furlex</span><span class="p">,</span><span class="w"> </span><span class="nc">Furlex.Parser.Facebook</span><span class="p">,</span><span class="w">
</span><span class="ss">tags</span><span class="p">:</span><span class="w"> </span><span class="sx">~w(my:custom:facebook:tag another:custom:facebook:tag)</span><span class="w">
</span><span class="n">config</span><span class="w"> </span><span class="ss">:furlex</span><span class="p">,</span><span class="w"> </span><span class="nc">Furlex.Parser.Twitter</span><span class="p">,</span><span class="w">
</span><span class="ss">tags</span><span class="p">:</span><span class="w"> </span><span class="sx">~w(my:custom:twitter:tag)</span></code></pre>
<p>You may also configure the depth of the resulting Furlex map with a <code class="inline">:group_keys?</code> boolean.</p>
<pre><code class="nohighlight makeup elixir"><span class="n">config</span><span class="w"> </span><span class="ss">:furlex</span><span class="p">,</span><span class="w"> </span><span class="n">group_keys?</span><span class="p">:</span><span class="w"> </span><span class="no">true</span></code></pre>
<p>If this option is set to false or unconfigured, Furlex will return values mapped directly beneath OpenGraph and TwitterCard keys, i.e.</p>
<pre><code class="nohighlight makeup elixir"><span class="w"> </span><span class="p" data-group-id="6865346028-1">%</span><span class="nc" data-group-id="6865346028-1">Furlex</span><span class="p" data-group-id="6865346028-1">{</span><span class="ss">twitter</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="6865346028-2">%{</span><span class="w">
</span><span class="s">&quot;twitter:app:id:googleplay&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;com.google.android.youtube&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;twitter:app:id:ipad&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;544007664&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;twitter:app:id:iphone&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;544007664&quot;</span><span class="w">
</span><span class="p" data-group-id="6865346028-2">}</span><span class="p" data-group-id="6865346028-1">}</span></code></pre>
<p>If true, Furlex will return values grouped into colon-delimited map structures, i.e.</p>
<pre><code class="nohighlight makeup elixir"><span class="p" data-group-id="6316031294-1">%</span><span class="nc" data-group-id="6316031294-1">Furlex</span><span class="p" data-group-id="6316031294-1">{</span><span class="ss">twitter</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="6316031294-2">%{</span><span class="w">
</span><span class="s">&quot;twitter&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="p" data-group-id="6316031294-3">%{</span><span class="w">
</span><span class="s">&quot;app&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="p" data-group-id="6316031294-4">%{</span><span class="w">
</span><span class="s">&quot;id&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="p" data-group-id="6316031294-5">%{</span><span class="w">
</span><span class="s">&quot;googleplay&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;com.google.android.youtube&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;ipad&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;544007664&quot;</span><span class="p">,</span><span class="w">
</span><span class="s">&quot;iphone&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;544007664&quot;</span><span class="w">
</span><span class="p" data-group-id="6316031294-5">}</span><span class="w">
</span><span class="p" data-group-id="6316031294-4">}</span><span class="w">
</span><span class="p" data-group-id="6316031294-3">}</span><span class="w">
</span><span class="p" data-group-id="6316031294-2">}</span><span class="p" data-group-id="6316031294-1">}</span></code></pre>
<h2 id="license" class="section-heading">
<a href="#license" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
License
</h2>
<p>Copyright 2017 Clayton Gentry</p>
<p>Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
you may not use this file except in compliance with the License.
You may obtain a copy of the License at</p>
<pre><code class="nohighlight makeup elixir"><span class="n">http</span><span class="ss">:/</span><span class="o">/</span><span class="n">www</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">org</span><span class="o">/</span><span class="n">licenses</span><span class="o">/</span><span class="nc">LICENSE</span><span class="o">-</span><span class="mf">2.0</span><span class="err">`</span></code></pre>
<p>Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.</p>
<footer class="footer">
<p>
<span class="line">
Built using
<a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener">ExDoc</a> (v0.20.2),
</span>
<span class="line">
designed by
<a href="https://twitter.com/dignifiedquire" target="_blank" rel="noopener" title="@dignifiedquire">Friedel Ziegelmayer</a>.
</span>
</p>
<p>
<button class="line footer-button night-mode-toggle">
Toggle night mode
</button>
<button class="line footer-button display-shortcuts-help">
Display keyboard shortcuts
</button>
</p>
</footer>
</div>
</div>
</section>
</div>
</body>
</html>