Current section
Files
Jump to
Current section
Files
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.0">
<title>Furlex — Furlex v0.4.0</title>
<link rel="stylesheet" href="dist/html-d9f58a6320b5bfa6dd77.css" />
<link rel="canonical" href="https://hexdocs.pm/furlex/readme.html" />
<script src="dist/sidebar_items-044cb6094c.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.0
</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' HTML <code class="inline"><meta /></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="5771471353-1">do</span><span class="w">
</span><span class="p" data-group-id="5771471353-2">[</span><span class="p" data-group-id="5771471353-3">{</span><span class="ss">:furlex</span><span class="p">,</span><span class="w"> </span><span class="s">"~> 0.4.0"</span><span class="p" data-group-id="5771471353-3">}</span><span class="p" data-group-id="5771471353-2">]</span><span class="w">
</span><span class="k" data-group-id="5771471353-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="4521299118-1">do</span><span class="w">
</span><span class="p" data-group-id="4521299118-2">[</span><span class="ss">applications</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="4521299118-3">[</span><span class="ss">:furlex</span><span class="p" data-group-id="4521299118-3">]</span><span class="p" data-group-id="4521299118-2">]</span><span class="w">
</span><span class="k" data-group-id="4521299118-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)> </span><span class="nc">Furlex</span><span class="o">.</span><span class="n">unfurl</span><span class="w"> </span><span class="s">"https://www.youtube.com/watch?v=Gh6H7Md_L2k"</span><span class="w">
</span><span class="p" data-group-id="4134628931-1">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w">
</span><span class="p" data-group-id="4134628931-2">%</span><span class="nc" data-group-id="4134628931-2">Furlex</span><span class="p" data-group-id="4134628931-2">{</span><span class="ss">canonical_url</span><span class="p">:</span><span class="w"> </span><span class="s">"https://www.youtube.com/watch?v=Gh6H7Md_L2k"</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="4134628931-3">%{</span><span class="s">"fb:app_id"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"87741124305"</span><span class="p">,</span><span class="w">
</span><span class="s">"og:description"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"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..."</span><span class="p">,</span><span class="w">
</span><span class="s">"og:image"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"https://i.ytimg.com/vi/Gh6H7Md_L2k/maxresdefault.jpg"</span><span class="p">,</span><span class="w">
</span><span class="s">"og:site_name"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"YouTube"</span><span class="p">,</span><span class="w">
</span><span class="s">"og:title"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"Touring Nick Offerman’s Wood Shop"</span><span class="p">,</span><span class="w"> </span><span class="s">"og:type"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"video"</span><span class="p">,</span><span class="w">
</span><span class="s">"og:url"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"https://www.youtube.com/watch?v=Gh6H7Md_L2k"</span><span class="p">,</span><span class="w">
</span><span class="s">"og:video:height"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="p" data-group-id="4134628931-4">[</span><span class="s">"720"</span><span class="p">,</span><span class="w"> </span><span class="s">"720"</span><span class="p" data-group-id="4134628931-4">]</span><span class="p">,</span><span class="w">
</span><span class="s">"og:video:secure_url"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="p" data-group-id="4134628931-5">[</span><span class="s">"https://www.youtube.com/embed/Gh6H7Md_L2k"</span><span class="p">,</span><span class="w">
</span><span class="s">"https://www.youtube.com/v/Gh6H7Md_L2k?version=3&autohide=1"</span><span class="p" data-group-id="4134628931-5">]</span><span class="p">,</span><span class="w">
</span><span class="s">"og:video:type"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="p" data-group-id="4134628931-6">[</span><span class="s">"text/html"</span><span class="p">,</span><span class="w"> </span><span class="s">"application/x-shockwave-flash"</span><span class="p" data-group-id="4134628931-6">]</span><span class="p">,</span><span class="w">
</span><span class="s">"og:video:url"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="p" data-group-id="4134628931-7">[</span><span class="s">"https://www.youtube.com/embed/Gh6H7Md_L2k"</span><span class="p">,</span><span class="w">
</span><span class="s">"http://www.youtube.com/v/Gh6H7Md_L2k?version=3&autohide=1"</span><span class="p" data-group-id="4134628931-7">]</span><span class="p">,</span><span class="w">
</span><span class="s">"og:video:width"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="p" data-group-id="4134628931-8">[</span><span class="s">"1280"</span><span class="p">,</span><span class="w"> </span><span class="s">"1280"</span><span class="p" data-group-id="4134628931-8">]</span><span class="p" data-group-id="4134628931-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="4134628931-9">[</span><span class="p" data-group-id="4134628931-10">%{</span><span class="s">"@context"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"http://schema.org"</span><span class="p">,</span><span class="w"> </span><span class="s">"@type"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"BreadcrumbList"</span><span class="p">,</span><span class="w">
</span><span class="s">"itemListElement"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="p" data-group-id="4134628931-11">[</span><span class="p" data-group-id="4134628931-12">%{</span><span class="s">"@type"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"ListItem"</span><span class="p">,</span><span class="w">
</span><span class="s">"item"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="p" data-group-id="4134628931-13">%{</span><span class="s">"@id"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"http://www.youtube.com/user/thisoldhouse"</span><span class="p">,</span><span class="w">
</span><span class="s">"name"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"This Old House"</span><span class="p" data-group-id="4134628931-13">}</span><span class="p">,</span><span class="w"> </span><span class="s">"position"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="4134628931-12">}</span><span class="p" data-group-id="4134628931-11">]</span><span class="p" data-group-id="4134628931-10">}</span><span class="p" data-group-id="4134628931-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="4134628931-14">%{</span><span class="s">"author_name"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"This Old House"</span><span class="p">,</span><span class="w">
</span><span class="s">"author_url"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"https://www.youtube.com/user/thisoldhouse"</span><span class="p">,</span><span class="w">
</span><span class="s">"height"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="mi">270</span><span class="p">,</span><span class="w">
</span><span class="s">"html"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"<iframe width=</span><span class="se">\"</span><span class="s">480</span><span class="se">\"</span><span class="s"> height=</span><span class="se">\"</span><span class="s">270</span><span class="se">\"</span><span class="s"> src=</span><span class="se">\"</span><span class="s">https://www.youtube.com/embed/Gh6H7Md_L2k?feature=oembed</span><span class="se">\"</span><span class="s"> frameborder=</span><span class="se">\"</span><span class="s">0</span><span class="se">\"</span><span class="s"> gesture=</span><span class="se">\"</span><span class="s">media</span><span class="se">\"</span><span class="s"> allow=</span><span class="se">\"</span><span class="s">encrypted-media</span><span class="se">\"</span><span class="s"> allowfullscreen></iframe>"</span><span class="p">,</span><span class="w">
</span><span class="s">"provider_name"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"YouTube"</span><span class="p">,</span><span class="w"> </span><span class="s">"provider_url"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"https://www.youtube.com/"</span><span class="p">,</span><span class="w">
</span><span class="s">"thumbnail_height"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="mi">360</span><span class="p">,</span><span class="w">
</span><span class="s">"thumbnail_url"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"https://i.ytimg.com/vi/Gh6H7Md_L2k/hqdefault.jpg"</span><span class="p">,</span><span class="w">
</span><span class="s">"thumbnail_width"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="mi">480</span><span class="p">,</span><span class="w"> </span><span class="s">"title"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"Touring Nick Offerman’s Wood Shop"</span><span class="p">,</span><span class="w">
</span><span class="s">"type"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"video"</span><span class="p">,</span><span class="w"> </span><span class="s">"version"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"1.0"</span><span class="p">,</span><span class="w"> </span><span class="s">"width"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="mi">480</span><span class="p" data-group-id="4134628931-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="4134628931-15">%{</span><span class="s">"description"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"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..."</span><span class="p">,</span><span class="w">
</span><span class="s">"keywords"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"this old house, how-to, home improvement, Episode, TV Show, DIY, Ask This Old House, Nick Offerman, Kevin O'Connor, woodworking, wood shop"</span><span class="p">,</span><span class="w">
</span><span class="s">"theme-color"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"#ff0000"</span><span class="p">,</span><span class="w">
</span><span class="s">"title"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"Touring Nick Offerman’s Wood Shop"</span><span class="p" data-group-id="4134628931-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="4134628931-16">%{</span><span class="s">"twitter:app:id:googleplay"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"com.google.android.youtube"</span><span class="p">,</span><span class="w">
</span><span class="s">"twitter:app:id:ipad"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"544007664"</span><span class="p">,</span><span class="w">
</span><span class="s">"twitter:app:id:iphone"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"544007664"</span><span class="p">,</span><span class="w">
</span><span class="s">"twitter:app:name:googleplay"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"YouTube"</span><span class="p">,</span><span class="w">
</span><span class="s">"twitter:app:name:ipad"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"YouTube"</span><span class="p">,</span><span class="w">
</span><span class="s">"twitter:app:name:iphone"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"YouTube"</span><span class="p">,</span><span class="w">
</span><span class="s">"twitter:app:url:googleplay"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"https://www.youtube.com/watch?v=Gh6H7Md_L2k"</span><span class="p">,</span><span class="w">
</span><span class="s">"twitter:app:url:ipad"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"vnd.youtube://www.youtube.com/watch?v=Gh6H7Md_L2k&feature=applinks"</span><span class="p">,</span><span class="w">
</span><span class="s">"twitter:app:url:iphone"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"vnd.youtube://www.youtube.com/watch?v=Gh6H7Md_L2k&feature=applinks"</span><span class="p">,</span><span class="w">
</span><span class="s">"twitter:card"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"player"</span><span class="p">,</span><span class="w">
</span><span class="s">"twitter:description"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"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..."</span><span class="p">,</span><span class="w">
</span><span class="s">"twitter:image"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"https://i.ytimg.com/vi/Gh6H7Md_L2k/maxresdefault.jpg"</span><span class="p">,</span><span class="w">
</span><span class="s">"twitter:player"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"https://www.youtube.com/embed/Gh6H7Md_L2k"</span><span class="p">,</span><span class="w">
</span><span class="s">"twitter:player:height"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"720"</span><span class="p">,</span><span class="w"> </span><span class="s">"twitter:player:width"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"1280"</span><span class="p">,</span><span class="w">
</span><span class="s">"twitter:site"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"@youtube"</span><span class="p">,</span><span class="w">
</span><span class="s">"twitter:title"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"Touring Nick Offerman’s Wood Shop"</span><span class="p">,</span><span class="w">
</span><span class="s">"twitter:url"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"https://www.youtube.com/watch?v=Gh6H7Md_L2k"</span><span class="p" data-group-id="4134628931-16">}</span><span class="p" data-group-id="4134628931-2">}</span><span class="p" data-group-id="4134628931-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="3677531288-1">%</span><span class="nc" data-group-id="3677531288-1">Furlex</span><span class="p" data-group-id="3677531288-1">{</span><span class="ss">twitter</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="3677531288-2">%{</span><span class="w">
</span><span class="s">"twitter:app:id:googleplay"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"com.google.android.youtube"</span><span class="p">,</span><span class="w">
</span><span class="s">"twitter:app:id:ipad"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"544007664"</span><span class="p">,</span><span class="w">
</span><span class="s">"twitter:app:id:iphone"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"544007664"</span><span class="w">
</span><span class="p" data-group-id="3677531288-2">}</span><span class="p" data-group-id="3677531288-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="6390726801-1">%</span><span class="nc" data-group-id="6390726801-1">Furlex</span><span class="p" data-group-id="6390726801-1">{</span><span class="ss">twitter</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="6390726801-2">%{</span><span class="w">
</span><span class="s">"twitter"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="p" data-group-id="6390726801-3">%{</span><span class="w">
</span><span class="s">"app"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="p" data-group-id="6390726801-4">%{</span><span class="w">
</span><span class="s">"id"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="p" data-group-id="6390726801-5">%{</span><span class="w">
</span><span class="s">"googleplay"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"com.google.android.youtube"</span><span class="p">,</span><span class="w">
</span><span class="s">"ipad"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"544007664"</span><span class="p">,</span><span class="w">
</span><span class="s">"iphone"</span><span class="w"> </span><span class="o">=</span><span class="o">></span><span class="w"> </span><span class="s">"544007664"</span><span class="w">
</span><span class="p" data-group-id="6390726801-5">}</span><span class="w">
</span><span class="p" data-group-id="6390726801-4">}</span><span class="w">
</span><span class="p" data-group-id="6390726801-3">}</span><span class="w">
</span><span class="p" data-group-id="6390726801-2">}</span><span class="p" data-group-id="6390726801-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 "License");
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 "AS IS" 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>