Current section

Files

Jump to
indieweb priv dist doc IndieWeb.Post.html
Raw

priv/dist/doc/IndieWeb.Post.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.19.3">
<title>IndieWeb.Post — IndieWeb v0.0.31</title>
<link rel="stylesheet" href="dist/html-399e30b9b028e3059575.css" />
<link rel="canonical" href="https://hexdocs.pm/indieweb/IndieWeb.Post.html" />
<script src="dist/sidebar_items-23b3c70799.js"></script>
<script async src="dist/html-399e30b9b028e3059575.js"></script>
</head>
<body data-type="modules">
<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" aria-hidden="true"></span>
<span class="sr-only">Toggle Sidebar</span>
</button>
<button class="sidebar-button night-mode-toggle">
<span class="icon-theme" aria-hidden="true"></span>
<span class="sr-only">Toggle Theme</span>
</button>
<section class="sidebar">
<a href="https://indieweb.org/" class="sidebar-projectLink">
<div class="sidebar-projectDetails">
<h1 class="sidebar-projectName">
IndieWeb </h1>
<h2 class="sidebar-projectVersion">
v0.0.31
</h2>
</div>
<img src="assets/logo.png" alt="IndieWeb" class="sidebar-projectImage">
</a>
<form class="sidebar-search" action="search.html">
<button type="submit" class="search-button">
<span class="icon-search" aria-hidden="true"></span>
</button>
<input name="q" type="text" id="search-list" class="search-input" placeholder="Search" aria-label="Search" autocomplete="off" />
</form>
<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>
<small class="visible-xs">IndieWeb v0.0.31</small>
IndieWeb.Post
<a href="https://git.jacky.wtf/indieweb/elixir" title="View Source" class="view-source" rel="help">
<span class="icon-code" aria-hidden="true"></span>
<span class="sr-only">View Source</span>
</a>
</h1>
<section id="moduledoc">
<p>Post-specific logic for the IndieWeb.</p>
<p>This module provides helper methods for parsing <a href="http://microformats.org/wiki/microformats2-parsing">MF2</a>
data in a handy and simple fashion. The structure of the properties you&#39;d use would be similar
to that of a <abbr tittle="Micformats2 JSON">MF2+JSON</abbr> object:</p>
<pre><code class="json">{
&quot;items&quot;: [
{
&quot;type&quot;: [
&quot;h-feed&quot;
],
&quot;properties&quot;: {
&quot;name&quot;: [
&quot;Updates&quot;
],
&quot;uid&quot;: [
&quot;https://v2.jacky.wtf/stream&quot;
],
&quot;url&quot;: [
&quot;https://v2.jacky.wtf/stream&quot;
]
},
&quot;lang&quot;: &quot;en&quot;,
&quot;children&quot;: [
{
&quot;type&quot;: [
&quot;h-entry&quot;
],
&quot;properties&quot;: {
&quot;summary&quot;: [
&quot;One big step for Koype is going to be bridging the IndieWeb into the IPFS landscape. I have concerns over it not being privacy-centric since there’s no sense of private data (everything is publishable outwards). IPFS provides pubsub logic so I thi...&quot;
],
&quot;url&quot;: [
&quot;https://v2.jacky.wtf/post/4fbdcd28-b558-42bc-99a9-802e33d01810&quot;,
&quot;https://v2.jacky.wtf/tag/7c1e5ef9-aa31-40e6-b26a-ecdba728b4a1&quot;,
&quot;https://v2.jacky.wtf/tag/bc945dde-95bb-468e-9127-620f1c35cd70&quot;
],
&quot;uid&quot;: [
&quot;https://v2.jacky.wtf/post/4fbdcd28-b558-42bc-99a9-802e33d01810&quot;
],
&quot;category&quot;: [
&quot;https://v2.jacky.wtf/tag/7c1e5ef9-aa31-40e6-b26a-ecdba728b4a1&quot;,
&quot;https://v2.jacky.wtf/tag/bc945dde-95bb-468e-9127-620f1c35cd70&quot;
],
&quot;published&quot;: [
&quot;2019-02-15T13:29:51.60956-08:00&quot;
]
},
&quot;lang&quot;: &quot;en&quot;
}
]
},
{
&quot;type&quot;: [
&quot;h-card&quot;
],
&quot;properties&quot;: {
&quot;name&quot;: [
&quot;Jacky Alcine&quot;
],
&quot;tz&quot;: [
&quot;America/Los_Angeles&quot;
],
&quot;note&quot;: [
&quot;I had a dream I could buy my way into heaven. When I woke up, I spent that on a m4.large from EvilCorp. Wait until I get my money right!&quot;
],
&quot;url&quot;: [
&quot;https://v2.jacky.wtf&quot;
],
&quot;photo&quot;: [
&quot;https://v2.jacky.wtf/media/image/floating/PhotoJacky%20n%203J5430.png?v=original&quot;
]
},
&quot;lang&quot;: &quot;en&quot;
}
]
}</code></pre>
</section>
<section id="summary" class="details-list">
<h1 class="section-heading">
<a class="hover-link" href="#summary">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this section</span>
</a>
Summary
</h1>
<div class="summary-functions summary">
<h2>
<a href="#functions">Functions</a>
</h2>
<div class="summary-row">
<div class="summary-signature">
<a href="#determine_type/2">determine_type(properties, types)</a>
</div>
<div class="summary-synopsis"><p>Determines the type of a post from a set of types and its MF2 properties</p>
</div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#extract_types/1">extract_types(properties)</a>
</div>
<div class="summary-synopsis"><p>Determines the potential types exposed by the set of provided properties</p>
</div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#is_response_type?/1">is_response_type?(type)</a>
</div>
<div class="summary-synopsis"><p>Determines if the provided type is a response type</p>
</div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#response_types/0">response_types()</a>
</div>
<div class="summary-synopsis"><p>Returns a list of atoms representing response post types</p>
</div>
</div>
</div>
</section>
<section id="functions" class="details-list">
<h1 class="section-heading">
<a class="hover-link" href="#functions">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this section</span>
</a>
Functions </h1>
<div class="functions-list">
<section class="detail" id="determine_type/2">
<div class="detail-header">
<a href="#determine_type/2" class="detail-link" title="Link to this function">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this function</span>
</a>
<h1 class="signature">determine_type(properties, types)</span>
<a href="https://git.jacky.wtf/indieweb/elixir" class="view-source" rel="help" title="View Source">
<span class="icon-code" aria-hidden="true"></span>
<span class="sr-only">View Source</span>
</a>
<span class="note">(since http://ptd.spec.indieweb.org/#changes-from-28-october-2016-wd-to-1-march-2017-wd)</span>
<div class="specs">
<pre>determine_type(<a href="https://hexdocs.pm/elixir/typespecs.html#basic-types">map</a>(), <a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">list</a>()) :: <a href="https://hexdocs.pm/elixir/typespecs.html#basic-types">atom</a>()</pre>
</div>
</div>
<section class="docstring">
<p>Determines the type of a post from a set of types and its MF2 properties.</p>
<p>This aims to apply the <a href="http://ptd.spec.indieweb.org/">Post Type Discovery</a> algorithm for discovering
what kind of post these properties result in.</p>
<h2 id="determine_type/2-examples" class="section-heading">
<a href="#determine_type/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
Examples
</h2>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">IndieWeb.Post</span><span class="o">.</span><span class="n">determine_type</span><span class="p" data-group-id="4411054662-1">(</span><span class="p" data-group-id="4411054662-2">%{</span><span class="s">&quot;content&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="4411054662-3">[</span><span class="s">&quot;Foo.&quot;</span><span class="p" data-group-id="4411054662-3">]</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="p" data-group-id="4411054662-4">[</span><span class="s">&quot;Foo.&quot;</span><span class="p" data-group-id="4411054662-4">]</span><span class="p" data-group-id="4411054662-2">}</span><span class="p">,</span><span class="w"> </span><span class="sx">~w(note article)a</span><span class="p" data-group-id="4411054662-1">)</span><span class="w">
</span><span class="ss">:article</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">IndieWeb.Post</span><span class="o">.</span><span class="n">determine_type</span><span class="p" data-group-id="4411054662-5">(</span><span class="p" data-group-id="4411054662-6">%{</span><span class="s">&quot;content&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="4411054662-7">%{</span><span class="s">&quot;value&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="4411054662-8">[</span><span class="s">&quot;Foo.&quot;</span><span class="p" data-group-id="4411054662-8">]</span><span class="p" data-group-id="4411054662-7">}</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="p" data-group-id="4411054662-9">[</span><span class="s">&quot;On Bar&quot;</span><span class="p" data-group-id="4411054662-9">]</span><span class="p" data-group-id="4411054662-6">}</span><span class="p">,</span><span class="w"> </span><span class="sx">~w(note article)a</span><span class="p" data-group-id="4411054662-5">)</span><span class="w">
</span><span class="ss">:article</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">IndieWeb.Post</span><span class="o">.</span><span class="n">determine_type</span><span class="p" data-group-id="4411054662-10">(</span><span class="p" data-group-id="4411054662-11">%{</span><span class="s">&quot;content&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="4411054662-12">%{</span><span class="s">&quot;value&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="4411054662-13">[</span><span class="s">&quot;Foo.&quot;</span><span class="p" data-group-id="4411054662-13">]</span><span class="p" data-group-id="4411054662-12">}</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;photo&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="4411054662-14">[</span><span class="s">&quot;https://magic/jpeg&quot;</span><span class="p" data-group-id="4411054662-14">]</span><span class="p" data-group-id="4411054662-11">}</span><span class="p">,</span><span class="w"> </span><span class="sx">~w(note photo)a</span><span class="p" data-group-id="4411054662-10">)</span><span class="w">
</span><span class="ss">:photo</span></code></pre>
</section>
</section>
<section class="detail" id="extract_types/1">
<div class="detail-header">
<a href="#extract_types/1" class="detail-link" title="Link to this function">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this function</span>
</a>
<h1 class="signature">extract_types(properties)</span>
<a href="https://git.jacky.wtf/indieweb/elixir" class="view-source" rel="help" title="View Source">
<span class="icon-code" aria-hidden="true"></span>
<span class="sr-only">View Source</span>
</a>
<div class="specs">
<pre>extract_types(<a href="https://hexdocs.pm/elixir/typespecs.html#basic-types">map</a>()) :: <a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">list</a>()</pre>
</div>
</div>
<section class="docstring">
<p>Determines the potential types exposed by the set of provided properties.</p>
<p>The provided properties are scanned and checked to determine if a particular
post type can be determined. The matching is a direct property to type mapping.
You should use <a href="#determine_type/2"><code class="inline">determine_type/2</code></a> to resolve the <em>actual</em> post type.</p>
<h2 id="extract_types/1-examples" class="section-heading">
<a href="#extract_types/1-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
Examples
</h2>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">IndieWeb.Post</span><span class="o">.</span><span class="n">extract_types</span><span class="p" data-group-id="9493962463-1">(</span><span class="p" data-group-id="9493962463-2">%{</span><span class="s">&quot;photo&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="9493962463-3">[</span><span class="s">&quot;https://magic/jpeg&quot;</span><span class="p" data-group-id="9493962463-3">]</span><span class="p" data-group-id="9493962463-2">}</span><span class="p" data-group-id="9493962463-1">)</span><span class="w">
</span><span class="p" data-group-id="9493962463-4">[</span><span class="ss">:photo</span><span class="p" data-group-id="9493962463-4">]</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">IndieWeb.Post</span><span class="o">.</span><span class="n">extract_types</span><span class="p" data-group-id="9493962463-5">(</span><span class="p" data-group-id="9493962463-6">%{</span><span class="s">&quot;content&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="9493962463-7">%{</span><span class="s">&quot;value&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="9493962463-8">[</span><span class="s">&quot;Just a note.&quot;</span><span class="p" data-group-id="9493962463-8">]</span><span class="p" data-group-id="9493962463-7">}</span><span class="p" data-group-id="9493962463-6">}</span><span class="p" data-group-id="9493962463-5">)</span><span class="w">
</span><span class="p" data-group-id="9493962463-9">[</span><span class="ss">:note</span><span class="p" data-group-id="9493962463-9">]</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">IndieWeb.Post</span><span class="o">.</span><span class="n">extract_types</span><span class="p" data-group-id="9493962463-10">(</span><span class="p" data-group-id="9493962463-11">%{</span><span class="s">&quot;content&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="9493962463-12">%{</span><span class="s">&quot;value&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="9493962463-13">[</span><span class="s">&quot;A whole blog post.&quot;</span><span class="p" data-group-id="9493962463-13">]</span><span class="p" data-group-id="9493962463-12">}</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="p" data-group-id="9493962463-14">[</span><span class="s">&quot;Magic.&quot;</span><span class="p" data-group-id="9493962463-14">]</span><span class="p" data-group-id="9493962463-11">}</span><span class="p" data-group-id="9493962463-10">)</span><span class="w">
</span><span class="p" data-group-id="9493962463-15">[</span><span class="ss">:article</span><span class="p" data-group-id="9493962463-15">]</span></code></pre>
</section>
</section>
<section class="detail" id="is_response_type?/1">
<div class="detail-header">
<a href="#is_response_type?/1" class="detail-link" title="Link to this function">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this function</span>
</a>
<h1 class="signature">is_response_type?(type)</span>
<a href="https://git.jacky.wtf/indieweb/elixir" class="view-source" rel="help" title="View Source">
<span class="icon-code" aria-hidden="true"></span>
<span class="sr-only">View Source</span>
</a>
<div class="specs">
<pre>is_response_type?(<a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">binary</a>()) :: <a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">boolean</a>()</pre>
</div>
</div>
<section class="docstring">
<p>Determines if the provided type is a response type.</p>
<h2 id="is_response_type?/1-examples" class="section-heading">
<a href="#is_response_type?/1-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
Examples
</h2>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">IndieWeb.Post</span><span class="o">.</span><span class="n">is_response_type?</span><span class="p" data-group-id="6947325470-1">(</span><span class="ss">:note</span><span class="p" data-group-id="6947325470-1">)</span><span class="w">
</span><span class="no">false</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">IndieWeb.Post</span><span class="o">.</span><span class="n">is_response_type?</span><span class="p" data-group-id="6947325470-2">(</span><span class="ss">:rsvp</span><span class="p" data-group-id="6947325470-2">)</span><span class="w">
</span><span class="no">true</span></code></pre>
</section>
</section>
<section class="detail" id="response_types/0">
<div class="detail-header">
<a href="#response_types/0" class="detail-link" title="Link to this function">
<span class="icon-link" aria-hidden="true"></span>
<span class="sr-only">Link to this function</span>
</a>
<h1 class="signature">response_types()</span>
<a href="https://git.jacky.wtf/indieweb/elixir" class="view-source" rel="help" title="View Source">
<span class="icon-code" aria-hidden="true"></span>
<span class="sr-only">View Source</span>
</a>
<div class="specs">
<pre>response_types() :: [<a href="https://hexdocs.pm/elixir/typespecs.html#basic-types">atom</a>()]</pre>
</div>
</div>
<section class="docstring">
<p>Returns a list of atoms representing response post types.</p>
</section>
</section>
</div>
</section>
<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.19.3),
</span>
<span class="line">
designed by
<a href="https://twitter.com/dignifiedquire" target="_blank" rel="noopener" title="@dignifiedquire">Friedel Ziegelmayer</a>.
</span>
</p>
</footer>
</div>
</div>
</section>
</div>
</body>
</html>