add backlinks
This commit is contained in:
		| @@ -1,4 +1,5 @@ | |||||||
| # v0.1.19 | # v0.1.19 | ||||||
|  | - Add backlinks | ||||||
| - Fix visibility issues with multiple users | - Fix visibility issues with multiple users | ||||||
|  |  | ||||||
| # v0.1.18 | # v0.1.18 | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								home.png
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								home.png
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 340 KiB | 
| @@ -88,6 +88,42 @@ defmodule Memex.Contexts do | |||||||
|     ) |     ) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|  |   @doc """ | ||||||
|  |   Returns the list of contexts that link to a particular slug. | ||||||
|  |  | ||||||
|  |   ## Examples | ||||||
|  |  | ||||||
|  |       iex> backlink(%User{id: 123}) | ||||||
|  |       [%Context{}, ...] | ||||||
|  |  | ||||||
|  |       iex> backlink("[other-context]", %User{id: 123}) | ||||||
|  |       [%Context{content: "[other-context]"}, ...] | ||||||
|  |  | ||||||
|  |   """ | ||||||
|  |   @spec backlink(String.t(), User.t()) :: [Context.t()] | ||||||
|  |   def backlink(link, %{id: user_id}) when user_id |> is_binary() do | ||||||
|  |     link = link |> String.replace("[", "\\[") |> String.replace("]", "\\]") | ||||||
|  |     link_regex = "(^|[^\[])#{link}($|[^\]])" | ||||||
|  |  | ||||||
|  |     Repo.all( | ||||||
|  |       from c in Context, | ||||||
|  |         where: fragment("? ~ ?", c.content, ^link_regex), | ||||||
|  |         order_by: c.slug | ||||||
|  |     ) | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   def backlink(link, _invalid_user) do | ||||||
|  |     link = link |> String.replace("[", "\\[") |> String.replace("]", "\\]") | ||||||
|  |     link_regex = "(^|[^\[])#{link}($|[^\]])" | ||||||
|  |  | ||||||
|  |     Repo.all( | ||||||
|  |       from c in Context, | ||||||
|  |         where: fragment("? ~ ?", c.content, ^link_regex), | ||||||
|  |         where: c.visibility == :public, | ||||||
|  |         order_by: c.slug | ||||||
|  |     ) | ||||||
|  |   end | ||||||
|  |  | ||||||
|   @doc """ |   @doc """ | ||||||
|   Gets a single context. |   Gets a single context. | ||||||
|  |  | ||||||
|   | |||||||
| @@ -86,6 +86,42 @@ defmodule Memex.Notes do | |||||||
|     ) |     ) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|  |   @doc """ | ||||||
|  |   Returns the list of notes that link to a particular slug. | ||||||
|  |  | ||||||
|  |   ## Examples | ||||||
|  |  | ||||||
|  |       iex> backlink(%User{id: 123}) | ||||||
|  |       [%Note{}, ...] | ||||||
|  |  | ||||||
|  |       iex> backlink("[other-note]", %User{id: 123}) | ||||||
|  |       [%Note{content: "[other-note]"}, ...] | ||||||
|  |  | ||||||
|  |   """ | ||||||
|  |   @spec backlink(String.t(), User.t()) :: [Note.t()] | ||||||
|  |   def backlink(link, %{id: user_id}) when user_id |> is_binary() do | ||||||
|  |     link = link |> String.replace("[", "\\[") |> String.replace("]", "\\]") | ||||||
|  |     link_regex = "(^|[^\[])#{link}($|[^\]])" | ||||||
|  |  | ||||||
|  |     Repo.all( | ||||||
|  |       from n in Note, | ||||||
|  |         where: fragment("? ~ ?", n.content, ^link_regex), | ||||||
|  |         order_by: n.slug | ||||||
|  |     ) | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   def backlink(link, _invalid_user) do | ||||||
|  |     link = link |> String.replace("[", "\\[") |> String.replace("]", "\\]") | ||||||
|  |     link_regex = "(^|[^\[])#{link}($|[^\]])" | ||||||
|  |  | ||||||
|  |     Repo.all( | ||||||
|  |       from n in Note, | ||||||
|  |         where: fragment("? ~ ?", n.content, ^link_regex), | ||||||
|  |         where: n.visibility == :public, | ||||||
|  |         order_by: n.slug | ||||||
|  |     ) | ||||||
|  |   end | ||||||
|  |  | ||||||
|   @doc """ |   @doc """ | ||||||
|   Gets a single note. |   Gets a single note. | ||||||
|  |  | ||||||
|   | |||||||
| @@ -142,6 +142,50 @@ defmodule Memex.Pipelines do | |||||||
|     ) |     ) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|  |   @doc """ | ||||||
|  |   Returns the list of pipelines that link to a particular slug. | ||||||
|  |  | ||||||
|  |   ## Examples | ||||||
|  |  | ||||||
|  |       iex> backlink(%User{id: 123}) | ||||||
|  |       [%Pipeline{}, ...] | ||||||
|  |  | ||||||
|  |       iex> backlink("[other-pipeline]", %User{id: 123}) | ||||||
|  |       [%Pipeline{description: "[other-pipeline]"}, ...] | ||||||
|  |  | ||||||
|  |   """ | ||||||
|  |   @spec backlink(String.t(), User.t()) :: [Pipeline.t()] | ||||||
|  |   def backlink(link, %{id: user_id}) when user_id |> is_binary() do | ||||||
|  |     link = link |> String.replace("[", "\\[") |> String.replace("]", "\\]") | ||||||
|  |     link_regex = "(^|[^\[])#{link}($|[^\]])" | ||||||
|  |  | ||||||
|  |     Repo.all( | ||||||
|  |       from p in Pipeline, | ||||||
|  |         left_join: s in assoc(p, :steps), | ||||||
|  |         where: | ||||||
|  |           fragment("? ~ ?", p.description, ^link_regex) or | ||||||
|  |             fragment("? ~ ?", s.content, ^link_regex), | ||||||
|  |         distinct: true, | ||||||
|  |         order_by: p.slug | ||||||
|  |     ) | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   def backlink(link, _invalid_user) do | ||||||
|  |     link = link |> String.replace("[", "\\[") |> String.replace("]", "\\]") | ||||||
|  |     link_regex = "(^|[^\[])#{link}($|[^\]])" | ||||||
|  |  | ||||||
|  |     Repo.all( | ||||||
|  |       from p in Pipeline, | ||||||
|  |         left_join: s in assoc(p, :steps), | ||||||
|  |         where: | ||||||
|  |           fragment("? ~ ?", p.description, ^link_regex) or | ||||||
|  |             fragment("? ~ ?", s.content, ^link_regex), | ||||||
|  |         where: p.visibility == :public, | ||||||
|  |         distinct: true, | ||||||
|  |         order_by: p.slug | ||||||
|  |     ) | ||||||
|  |   end | ||||||
|  |  | ||||||
|   @doc """ |   @doc """ | ||||||
|   Creates a pipeline. |   Creates a pipeline. | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| defmodule MemexWeb.ContextLive.Show do | defmodule MemexWeb.ContextLive.Show do | ||||||
|   use MemexWeb, :live_view |   use MemexWeb, :live_view | ||||||
|   alias Memex.Contexts |   alias Memex.{Contexts, Pipelines} | ||||||
|  |  | ||||||
|   @impl true |   @impl true | ||||||
|   def mount(_params, _session, socket) do |   def mount(_params, _session, socket) do | ||||||
| @@ -23,7 +23,9 @@ defmodule MemexWeb.ContextLive.Show do | |||||||
|       socket |       socket | ||||||
|       |> assign( |       |> assign( | ||||||
|         context: context, |         context: context, | ||||||
|         page_title: page_title(live_action, context) |         page_title: page_title(live_action, context), | ||||||
|  |         context_backlinks: Contexts.backlink("[#{context.slug}]", current_user), | ||||||
|  |         pipeline_backlinks: Pipelines.backlink("[[#{context.slug}]]", current_user) | ||||||
|       ) |       ) | ||||||
|  |  | ||||||
|     {:noreply, socket} |     {:noreply, socket} | ||||||
|   | |||||||
| @@ -11,6 +11,27 @@ | |||||||
|  |  | ||||||
|   <.context_content context={@context} /> |   <.context_content context={@context} /> | ||||||
|  |  | ||||||
|  |   <div | ||||||
|  |     :if={@context_backlinks ++ @pipeline_backlinks != []} | ||||||
|  |     class="flex flex-wrap justify-end items-center self-end" | ||||||
|  |   > | ||||||
|  |     <p><%= gettext("Backlinked by:") %></p> | ||||||
|  |     <.link | ||||||
|  |       :for={backlink <- @context_backlinks} | ||||||
|  |       class="m-1 hover:underline" | ||||||
|  |       patch={~p"/context/#{backlink}"} | ||||||
|  |     > | ||||||
|  |       <%= gettext("[%{slug}]", slug: backlink.slug) %> | ||||||
|  |     </.link> | ||||||
|  |     <.link | ||||||
|  |       :for={backlink <- @pipeline_backlinks} | ||||||
|  |       class="m-1 hover:underline" | ||||||
|  |       patch={~p"/pipeline/#{backlink}"} | ||||||
|  |     > | ||||||
|  |       <%= gettext("[[%{slug}]]", slug: backlink.slug) %> | ||||||
|  |     </.link> | ||||||
|  |   </div> | ||||||
|  |  | ||||||
|   <p class="self-end"> |   <p class="self-end"> | ||||||
|     <%= gettext("Visibility: %{visibility}", visibility: @context.visibility) %> |     <%= gettext("Visibility: %{visibility}", visibility: @context.visibility) %> | ||||||
|   </p> |   </p> | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| <div class="mx-auto flex flex-col justify-center items-stretch space-y-4 max-w-lg"> | <div class="flex flex-col justify-center items-stretch mx-auto space-y-4 max-w-lg"> | ||||||
|   <h1 class="title text-primary-400 text-xl"> |   <h1 class="text-xl title text-primary-400"> | ||||||
|     <%= gettext("memEx") %> |     <%= gettext("memEx") %> | ||||||
|   </h1> |   </h1> | ||||||
|  |  | ||||||
| @@ -31,7 +31,7 @@ | |||||||
|       </p> |       </p> | ||||||
|     </li> |     </li> | ||||||
|  |  | ||||||
|     <li class="flex flex-col justify-center items-center text-right space-y-2"> |     <li class="flex flex-col justify-center items-center space-y-2 text-right"> | ||||||
|       <.link navigate={~p"/faq"} class="btn btn-primary"> |       <.link navigate={~p"/faq"} class="btn btn-primary"> | ||||||
|         <%= gettext("read more on how to use memEx") %> |         <%= gettext("read more on how to use memEx") %> | ||||||
|       </.link> |       </.link> | ||||||
| @@ -41,7 +41,7 @@ | |||||||
|   <hr class="hr" /> |   <hr class="hr" /> | ||||||
|  |  | ||||||
|   <ul class="flex flex-col space-y-4"> |   <ul class="flex flex-col space-y-4"> | ||||||
|     <h2 class="title text-primary-400 text-lg"> |     <h2 class="text-lg title text-primary-400"> | ||||||
|       <%= gettext("features") %> |       <%= gettext("features") %> | ||||||
|     </h2> |     </h2> | ||||||
|  |  | ||||||
| @@ -71,12 +71,21 @@ | |||||||
|         <%= gettext("accessible from any internet-capable device") %> |         <%= gettext("accessible from any internet-capable device") %> | ||||||
|       </p> |       </p> | ||||||
|     </li> |     </li> | ||||||
|  |  | ||||||
|  |     <li class="flex flex-col justify-center items-center space-y-2"> | ||||||
|  |       <b class="whitespace-nowrap"> | ||||||
|  |         <%= gettext("backlinks:") %> | ||||||
|  |       </b> | ||||||
|  |       <p> | ||||||
|  |         <%= gettext("view referencing items from the referenced item") %> | ||||||
|  |       </p> | ||||||
|  |     </li> | ||||||
|   </ul> |   </ul> | ||||||
|  |  | ||||||
|   <hr class="hr" /> |   <hr class="hr" /> | ||||||
|  |  | ||||||
|   <ul class="flex flex-col justify-center space-y-4"> |   <ul class="flex flex-col justify-center space-y-4"> | ||||||
|     <h2 class="title text-primary-400 text-lg"> |     <h2 class="text-lg title text-primary-400"> | ||||||
|       <%= gettext("instance information") %> |       <%= gettext("instance information") %> | ||||||
|     </h2> |     </h2> | ||||||
|  |  | ||||||
| @@ -124,7 +133,7 @@ | |||||||
|   <hr class="hr" /> |   <hr class="hr" /> | ||||||
|  |  | ||||||
|   <ul class="flex flex-col space-y-2"> |   <ul class="flex flex-col space-y-2"> | ||||||
|     <h2 class="title text-primary-400 text-lg"> |     <h2 class="text-lg title text-primary-400"> | ||||||
|       <%= gettext("get involved") %> |       <%= gettext("get involved") %> | ||||||
|     </h2> |     </h2> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| defmodule MemexWeb.NoteLive.Show do | defmodule MemexWeb.NoteLive.Show do | ||||||
|   use MemexWeb, :live_view |   use MemexWeb, :live_view | ||||||
|   alias Memex.Notes |   alias Memex.{Contexts, Notes, Pipelines} | ||||||
|  |  | ||||||
|   @impl true |   @impl true | ||||||
|   def mount(_params, _session, socket) do |   def mount(_params, _session, socket) do | ||||||
| @@ -22,8 +22,11 @@ defmodule MemexWeb.NoteLive.Show do | |||||||
|     socket = |     socket = | ||||||
|       socket |       socket | ||||||
|       |> assign( |       |> assign( | ||||||
|  |         context_backlinks: Contexts.backlink("[[#{note.slug}]]", current_user), | ||||||
|  |         note_backlinks: Notes.backlink("[#{note.slug}]", current_user), | ||||||
|         note: note, |         note: note, | ||||||
|         page_title: page_title(live_action, note) |         page_title: page_title(live_action, note), | ||||||
|  |         pipeline_backlinks: Pipelines.backlink("[[[#{note.slug}]]]", current_user) | ||||||
|       ) |       ) | ||||||
|  |  | ||||||
|     {:noreply, socket} |     {:noreply, socket} | ||||||
|   | |||||||
| @@ -11,6 +11,34 @@ | |||||||
|  |  | ||||||
|   <.note_content note={@note} /> |   <.note_content note={@note} /> | ||||||
|  |  | ||||||
|  |   <div | ||||||
|  |     :if={@note_backlinks ++ @context_backlinks ++ @pipeline_backlinks != []} | ||||||
|  |     class="flex flex-wrap justify-end items-center self-end" | ||||||
|  |   > | ||||||
|  |     <p><%= gettext("Backlinked by:") %></p> | ||||||
|  |     <.link | ||||||
|  |       :for={backlink <- @note_backlinks} | ||||||
|  |       class="m-1 hover:underline" | ||||||
|  |       patch={~p"/note/#{backlink}"} | ||||||
|  |     > | ||||||
|  |       <%= gettext("[%{slug}]", slug: backlink.slug) %> | ||||||
|  |     </.link> | ||||||
|  |     <.link | ||||||
|  |       :for={backlink <- @context_backlinks} | ||||||
|  |       class="m-1 hover:underline" | ||||||
|  |       patch={~p"/context/#{backlink}"} | ||||||
|  |     > | ||||||
|  |       <%= gettext("[[%{slug}]]", slug: backlink.slug) %> | ||||||
|  |     </.link> | ||||||
|  |     <.link | ||||||
|  |       :for={backlink <- @pipeline_backlinks} | ||||||
|  |       class="m-1 hover:underline" | ||||||
|  |       patch={~p"/pipeline/#{backlink}"} | ||||||
|  |     > | ||||||
|  |       <%= gettext("[[[%{slug}]]]", slug: backlink.slug) %> | ||||||
|  |     </.link> | ||||||
|  |   </div> | ||||||
|  |  | ||||||
|   <p class="self-end"> |   <p class="self-end"> | ||||||
|     <%= gettext("Visibility: %{visibility}", visibility: @note.visibility) %> |     <%= gettext("Visibility: %{visibility}", visibility: @note.visibility) %> | ||||||
|   </p> |   </p> | ||||||
|   | |||||||
| @@ -23,6 +23,7 @@ defmodule MemexWeb.PipelineLive.Show do | |||||||
|       socket |       socket | ||||||
|       |> assign( |       |> assign( | ||||||
|         page_title: page_title(live_action, pipeline), |         page_title: page_title(live_action, pipeline), | ||||||
|  |         pipeline_backlinks: Pipelines.backlink("[#{pipeline.slug}]", current_user), | ||||||
|         pipeline: pipeline, |         pipeline: pipeline, | ||||||
|         steps: pipeline |> Steps.list_steps(current_user) |         steps: pipeline |> Steps.list_steps(current_user) | ||||||
|       ) |       ) | ||||||
|   | |||||||
| @@ -11,6 +11,17 @@ | |||||||
|  |  | ||||||
|   <.pipeline_content pipeline={@pipeline} /> |   <.pipeline_content pipeline={@pipeline} /> | ||||||
|  |  | ||||||
|  |   <div :if={@pipeline_backlinks != []} class="flex flex-wrap justify-end items-center self-end"> | ||||||
|  |     <p><%= gettext("Backlinked by:") %></p> | ||||||
|  |     <.link | ||||||
|  |       :for={backlink <- @pipeline_backlinks} | ||||||
|  |       class="m-1 hover:underline" | ||||||
|  |       patch={~p"/pipeline/#{backlink}"} | ||||||
|  |     > | ||||||
|  |       <%= gettext("[%{slug}]", slug: backlink.slug) %> | ||||||
|  |     </.link> | ||||||
|  |   </div> | ||||||
|  |  | ||||||
|   <p class="self-end"> |   <p class="self-end"> | ||||||
|     <%= gettext("Visibility: %{visibility}", visibility: @pipeline.visibility) %> |     <%= gettext("Visibility: %{visibility}", visibility: @pipeline.visibility) %> | ||||||
|   </p> |   </p> | ||||||
|   | |||||||
| @@ -40,12 +40,12 @@ msgid "create invite" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/index.html.heex:50 | #: lib/memex_web/live/context_live/index.html.heex:50 | ||||||
| #: lib/memex_web/live/context_live/show.html.heex:30 | #: lib/memex_web/live/context_live/show.html.heex:51 | ||||||
| #: lib/memex_web/live/note_live/index.html.heex:50 | #: lib/memex_web/live/note_live/index.html.heex:50 | ||||||
| #: lib/memex_web/live/note_live/show.html.heex:30 | #: lib/memex_web/live/note_live/show.html.heex:58 | ||||||
| #: lib/memex_web/live/pipeline_live/index.html.heex:52 | #: lib/memex_web/live/pipeline_live/index.html.heex:52 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:30 | #: lib/memex_web/live/pipeline_live/show.html.heex:41 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:101 | #: lib/memex_web/live/pipeline_live/show.html.heex:112 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "delete" | msgid "delete" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -56,12 +56,12 @@ msgid "delete user" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/index.html.heex:40 | #: lib/memex_web/live/context_live/index.html.heex:40 | ||||||
| #: lib/memex_web/live/context_live/show.html.heex:20 | #: lib/memex_web/live/context_live/show.html.heex:41 | ||||||
| #: lib/memex_web/live/note_live/index.html.heex:40 | #: lib/memex_web/live/note_live/index.html.heex:40 | ||||||
| #: lib/memex_web/live/note_live/show.html.heex:20 | #: lib/memex_web/live/note_live/show.html.heex:48 | ||||||
| #: lib/memex_web/live/pipeline_live/index.html.heex:40 | #: lib/memex_web/live/pipeline_live/index.html.heex:40 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:20 | #: lib/memex_web/live/pipeline_live/show.html.heex:31 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:90 | #: lib/memex_web/live/pipeline_live/show.html.heex:101 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "edit" | msgid "edit" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -112,7 +112,7 @@ msgstr "" | |||||||
| msgid "save" | msgid "save" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:116 | #: lib/memex_web/live/pipeline_live/show.html.heex:127 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "add step" | msgid "add step" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -145,24 +145,24 @@ msgid "copy invite link for %{invite_name}" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/index.html.heex:48 | #: lib/memex_web/live/context_live/index.html.heex:48 | ||||||
| #: lib/memex_web/live/context_live/show.html.heex:28 | #: lib/memex_web/live/context_live/show.html.heex:49 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "delete %{context_slug}" | msgid "delete %{context_slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/note_live/index.html.heex:48 | #: lib/memex_web/live/note_live/index.html.heex:48 | ||||||
| #: lib/memex_web/live/note_live/show.html.heex:28 | #: lib/memex_web/live/note_live/show.html.heex:56 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "delete %{note_slug}" | msgid "delete %{note_slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/index.html.heex:49 | #: lib/memex_web/live/pipeline_live/index.html.heex:49 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:28 | #: lib/memex_web/live/pipeline_live/show.html.heex:39 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "delete %{pipeline_slug}" | msgid "delete %{pipeline_slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:99 | #: lib/memex_web/live/pipeline_live/show.html.heex:110 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "delete %{step_title}" | msgid "delete %{step_title}" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -187,7 +187,7 @@ msgstr "" | |||||||
| msgid "edit %{pipeline_slug}" | msgid "edit %{pipeline_slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:88 | #: lib/memex_web/live/pipeline_live/show.html.heex:99 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "edit %{step_title}" | msgid "edit %{step_title}" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -197,12 +197,12 @@ msgstr "" | |||||||
| msgid "edit invite for %{invite_name}" | msgid "edit invite for %{invite_name}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:78 | #: lib/memex_web/live/pipeline_live/show.html.heex:89 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "move %{step_title} down" | msgid "move %{step_title} down" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:62 | #: lib/memex_web/live/pipeline_live/show.html.heex:73 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "move %{step_title} up" | msgid "move %{step_title} up" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -40,12 +40,12 @@ msgid "create invite" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/index.html.heex:50 | #: lib/memex_web/live/context_live/index.html.heex:50 | ||||||
| #: lib/memex_web/live/context_live/show.html.heex:30 | #: lib/memex_web/live/context_live/show.html.heex:51 | ||||||
| #: lib/memex_web/live/note_live/index.html.heex:50 | #: lib/memex_web/live/note_live/index.html.heex:50 | ||||||
| #: lib/memex_web/live/note_live/show.html.heex:30 | #: lib/memex_web/live/note_live/show.html.heex:58 | ||||||
| #: lib/memex_web/live/pipeline_live/index.html.heex:52 | #: lib/memex_web/live/pipeline_live/index.html.heex:52 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:30 | #: lib/memex_web/live/pipeline_live/show.html.heex:41 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:101 | #: lib/memex_web/live/pipeline_live/show.html.heex:112 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "delete" | msgid "delete" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -56,12 +56,12 @@ msgid "delete user" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/index.html.heex:40 | #: lib/memex_web/live/context_live/index.html.heex:40 | ||||||
| #: lib/memex_web/live/context_live/show.html.heex:20 | #: lib/memex_web/live/context_live/show.html.heex:41 | ||||||
| #: lib/memex_web/live/note_live/index.html.heex:40 | #: lib/memex_web/live/note_live/index.html.heex:40 | ||||||
| #: lib/memex_web/live/note_live/show.html.heex:20 | #: lib/memex_web/live/note_live/show.html.heex:48 | ||||||
| #: lib/memex_web/live/pipeline_live/index.html.heex:40 | #: lib/memex_web/live/pipeline_live/index.html.heex:40 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:20 | #: lib/memex_web/live/pipeline_live/show.html.heex:31 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:90 | #: lib/memex_web/live/pipeline_live/show.html.heex:101 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "edit" | msgid "edit" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -112,7 +112,7 @@ msgstr "" | |||||||
| msgid "save" | msgid "save" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:116 | #: lib/memex_web/live/pipeline_live/show.html.heex:127 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "add step" | msgid "add step" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -145,24 +145,24 @@ msgid "copy invite link for %{invite_name}" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/index.html.heex:48 | #: lib/memex_web/live/context_live/index.html.heex:48 | ||||||
| #: lib/memex_web/live/context_live/show.html.heex:28 | #: lib/memex_web/live/context_live/show.html.heex:49 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "delete %{context_slug}" | msgid "delete %{context_slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/note_live/index.html.heex:48 | #: lib/memex_web/live/note_live/index.html.heex:48 | ||||||
| #: lib/memex_web/live/note_live/show.html.heex:28 | #: lib/memex_web/live/note_live/show.html.heex:56 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "delete %{note_slug}" | msgid "delete %{note_slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/index.html.heex:49 | #: lib/memex_web/live/pipeline_live/index.html.heex:49 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:28 | #: lib/memex_web/live/pipeline_live/show.html.heex:39 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "delete %{pipeline_slug}" | msgid "delete %{pipeline_slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:99 | #: lib/memex_web/live/pipeline_live/show.html.heex:110 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "delete %{step_title}" | msgid "delete %{step_title}" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -187,7 +187,7 @@ msgstr "" | |||||||
| msgid "edit %{pipeline_slug}" | msgid "edit %{pipeline_slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:88 | #: lib/memex_web/live/pipeline_live/show.html.heex:99 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "edit %{step_title}" | msgid "edit %{step_title}" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -197,12 +197,12 @@ msgstr "" | |||||||
| msgid "edit invite for %{invite_name}" | msgid "edit invite for %{invite_name}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:78 | #: lib/memex_web/live/pipeline_live/show.html.heex:89 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "move %{step_title} down" | msgid "move %{step_title} down" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:62 | #: lib/memex_web/live/pipeline_live/show.html.heex:73 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "move %{step_title} up" | msgid "move %{step_title} up" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -17,9 +17,9 @@ msgstr "" | |||||||
| msgid "Reconnecting..." | msgid "Reconnecting..." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/show.html.heex:15 | #: lib/memex_web/live/context_live/show.html.heex:36 | ||||||
| #: lib/memex_web/live/note_live/show.html.heex:15 | #: lib/memex_web/live/note_live/show.html.heex:43 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:15 | #: lib/memex_web/live/pipeline_live/show.html.heex:26 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Visibility: %{visibility}" | msgid "Visibility: %{visibility}" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -29,7 +29,7 @@ msgstr "" | |||||||
| msgid "accessible from any internet-capable device" | msgid "accessible from any internet-capable device" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:85 | #: lib/memex_web/live/home_live.html.heex:94 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "admins:" | msgid "admins:" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -118,12 +118,12 @@ msgstr "" | |||||||
| msgid "features" | msgid "features" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:149 | #: lib/memex_web/live/home_live.html.heex:158 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "help translate" | msgid "help translate" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:80 | #: lib/memex_web/live/home_live.html.heex:89 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "instance information" | msgid "instance information" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -133,7 +133,7 @@ msgstr "" | |||||||
| msgid "invite disabled" | msgid "invite disabled" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:105 | #: lib/memex_web/live/home_live.html.heex:114 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "invite only" | msgid "invite only" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -217,7 +217,7 @@ msgstr "" | |||||||
| msgid "provide context around a single topic and hotlink to your notes" | msgid "provide context around a single topic and hotlink to your notes" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:104 | #: lib/memex_web/live/home_live.html.heex:113 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "public signups" | msgid "public signups" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -227,12 +227,12 @@ msgstr "" | |||||||
| msgid "register" | msgid "register" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:101 | #: lib/memex_web/live/home_live.html.heex:110 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "registration:" | msgid "registration:" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:160 | #: lib/memex_web/live/home_live.html.heex:169 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "report bugs or request features" | msgid "report bugs or request features" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -288,12 +288,12 @@ msgstr "" | |||||||
| msgid "users" | msgid "users" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:111 | #: lib/memex_web/live/home_live.html.heex:120 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "version:" | msgid "version:" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:138 | #: lib/memex_web/live/home_live.html.heex:147 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "view the source code" | msgid "view the source code" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -350,11 +350,11 @@ msgid "%{slug} created" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/index.ex:65 | #: lib/memex_web/live/context_live/index.ex:65 | ||||||
| #: lib/memex_web/live/context_live/show.ex:42 | #: lib/memex_web/live/context_live/show.ex:44 | ||||||
| #: lib/memex_web/live/note_live/index.ex:65 | #: lib/memex_web/live/note_live/index.ex:65 | ||||||
| #: lib/memex_web/live/note_live/show.ex:42 | #: lib/memex_web/live/note_live/show.ex:45 | ||||||
| #: lib/memex_web/live/pipeline_live/index.ex:65 | #: lib/memex_web/live/pipeline_live/index.ex:65 | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:77 | #: lib/memex_web/live/pipeline_live/show.ex:78 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{slug} deleted" | msgid "%{slug} deleted" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -367,11 +367,11 @@ msgid "%{slug} saved" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/index.ex:25 | #: lib/memex_web/live/context_live/index.ex:25 | ||||||
| #: lib/memex_web/live/context_live/show.ex:49 | #: lib/memex_web/live/context_live/show.ex:51 | ||||||
| #: lib/memex_web/live/note_live/index.ex:25 | #: lib/memex_web/live/note_live/index.ex:25 | ||||||
| #: lib/memex_web/live/note_live/show.ex:49 | #: lib/memex_web/live/note_live/show.ex:52 | ||||||
| #: lib/memex_web/live/pipeline_live/index.ex:24 | #: lib/memex_web/live/pipeline_live/index.ex:24 | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:123 | #: lib/memex_web/live/pipeline_live/show.ex:124 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "edit %{slug}" | msgid "edit %{slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -422,7 +422,7 @@ msgstr "" | |||||||
| msgid "what is this?" | msgid "what is this?" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:48 | #: lib/memex_web/live/pipeline_live/show.html.heex:59 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{position}. %{title}" | msgid "%{position}. %{title}" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -432,7 +432,7 @@ msgstr "" | |||||||
| msgid "%{title} created" | msgid "%{title} created" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:95 | #: lib/memex_web/live/pipeline_live/show.ex:96 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{title} deleted" | msgid "%{title} deleted" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -442,17 +442,17 @@ msgstr "" | |||||||
| msgid "%{title} saved" | msgid "%{title} saved" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:125 | #: lib/memex_web/live/pipeline_live/show.ex:126 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "add step to %{slug}" | msgid "add step to %{slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:42 | #: lib/memex_web/live/pipeline_live/show.html.heex:53 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "no steps" | msgid "no steps" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:37 | #: lib/memex_web/live/pipeline_live/show.html.heex:48 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "steps:" | msgid "steps:" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -598,7 +598,7 @@ msgstr "" | |||||||
| msgid "uses: %{uses_count}" | msgid "uses: %{uses_count}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:128 | #: lib/memex_web/live/home_live.html.heex:137 | ||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
| msgid "get involved" | msgid "get involved" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -721,3 +721,38 @@ msgstr "" | |||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "(This note is empty)" | msgid "(This note is empty)" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/memex_web/live/context_live/show.html.heex:18 | ||||||
|  | #: lib/memex_web/live/note_live/show.html.heex:18 | ||||||
|  | #: lib/memex_web/live/pipeline_live/show.html.heex:15 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "Backlinked by:" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/memex_web/live/context_live/show.html.heex:24 | ||||||
|  | #: lib/memex_web/live/note_live/show.html.heex:24 | ||||||
|  | #: lib/memex_web/live/pipeline_live/show.html.heex:21 | ||||||
|  | #, elixir-autogen, elixir-format, fuzzy | ||||||
|  | msgid "[%{slug}]" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/memex_web/live/context_live/show.html.heex:31 | ||||||
|  | #: lib/memex_web/live/note_live/show.html.heex:31 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "[[%{slug}]]" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/memex_web/live/note_live/show.html.heex:38 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "[[[%{slug}]]]" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/memex_web/live/home_live.html.heex:77 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "backlinks:" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/memex_web/live/home_live.html.heex:80 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "view referencing items from the referenced item" | ||||||
|  | msgstr "" | ||||||
|   | |||||||
| @@ -66,12 +66,12 @@ msgid "are you sure you want to make %{invite_name} unlimited?" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/index.html.heex:47 | #: lib/memex_web/live/context_live/index.html.heex:47 | ||||||
| #: lib/memex_web/live/context_live/show.html.heex:27 | #: lib/memex_web/live/context_live/show.html.heex:48 | ||||||
| #: lib/memex_web/live/note_live/index.html.heex:47 | #: lib/memex_web/live/note_live/index.html.heex:47 | ||||||
| #: lib/memex_web/live/note_live/show.html.heex:27 | #: lib/memex_web/live/note_live/show.html.heex:55 | ||||||
| #: lib/memex_web/live/pipeline_live/index.html.heex:47 | #: lib/memex_web/live/pipeline_live/index.html.heex:47 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:27 | #: lib/memex_web/live/pipeline_live/show.html.heex:38 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:98 | #: lib/memex_web/live/pipeline_live/show.html.heex:109 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "are you sure?" | msgid "are you sure?" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -86,7 +86,7 @@ msgstr "" | |||||||
| msgid "language updated successfully." | msgid "language updated successfully." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:90 | #: lib/memex_web/live/home_live.html.heex:99 | ||||||
| #, elixir-autogen, elixir-format, fuzzy | #, elixir-autogen, elixir-format, fuzzy | ||||||
| msgid "register to setup memEx" | msgid "register to setup memEx" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -15,9 +15,9 @@ msgstr "" | |||||||
| msgid "Reconnecting..." | msgid "Reconnecting..." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/show.html.heex:15 | #: lib/memex_web/live/context_live/show.html.heex:36 | ||||||
| #: lib/memex_web/live/note_live/show.html.heex:15 | #: lib/memex_web/live/note_live/show.html.heex:43 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:15 | #: lib/memex_web/live/pipeline_live/show.html.heex:26 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Visibility: %{visibility}" | msgid "Visibility: %{visibility}" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -27,7 +27,7 @@ msgstr "" | |||||||
| msgid "accessible from any internet-capable device" | msgid "accessible from any internet-capable device" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:85 | #: lib/memex_web/live/home_live.html.heex:94 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "admins:" | msgid "admins:" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -116,12 +116,12 @@ msgstr "" | |||||||
| msgid "features" | msgid "features" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:149 | #: lib/memex_web/live/home_live.html.heex:158 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "help translate" | msgid "help translate" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:80 | #: lib/memex_web/live/home_live.html.heex:89 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "instance information" | msgid "instance information" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -131,7 +131,7 @@ msgstr "" | |||||||
| msgid "invite disabled" | msgid "invite disabled" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:105 | #: lib/memex_web/live/home_live.html.heex:114 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "invite only" | msgid "invite only" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -215,7 +215,7 @@ msgstr "" | |||||||
| msgid "provide context around a single topic and hotlink to your notes" | msgid "provide context around a single topic and hotlink to your notes" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:104 | #: lib/memex_web/live/home_live.html.heex:113 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "public signups" | msgid "public signups" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -225,12 +225,12 @@ msgstr "" | |||||||
| msgid "register" | msgid "register" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:101 | #: lib/memex_web/live/home_live.html.heex:110 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "registration:" | msgid "registration:" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:160 | #: lib/memex_web/live/home_live.html.heex:169 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "report bugs or request features" | msgid "report bugs or request features" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -286,12 +286,12 @@ msgstr "" | |||||||
| msgid "users" | msgid "users" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:111 | #: lib/memex_web/live/home_live.html.heex:120 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "version:" | msgid "version:" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:138 | #: lib/memex_web/live/home_live.html.heex:147 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "view the source code" | msgid "view the source code" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -348,11 +348,11 @@ msgid "%{slug} created" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/index.ex:65 | #: lib/memex_web/live/context_live/index.ex:65 | ||||||
| #: lib/memex_web/live/context_live/show.ex:42 | #: lib/memex_web/live/context_live/show.ex:44 | ||||||
| #: lib/memex_web/live/note_live/index.ex:65 | #: lib/memex_web/live/note_live/index.ex:65 | ||||||
| #: lib/memex_web/live/note_live/show.ex:42 | #: lib/memex_web/live/note_live/show.ex:45 | ||||||
| #: lib/memex_web/live/pipeline_live/index.ex:65 | #: lib/memex_web/live/pipeline_live/index.ex:65 | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:77 | #: lib/memex_web/live/pipeline_live/show.ex:78 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{slug} deleted" | msgid "%{slug} deleted" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -365,11 +365,11 @@ msgid "%{slug} saved" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/index.ex:25 | #: lib/memex_web/live/context_live/index.ex:25 | ||||||
| #: lib/memex_web/live/context_live/show.ex:49 | #: lib/memex_web/live/context_live/show.ex:51 | ||||||
| #: lib/memex_web/live/note_live/index.ex:25 | #: lib/memex_web/live/note_live/index.ex:25 | ||||||
| #: lib/memex_web/live/note_live/show.ex:49 | #: lib/memex_web/live/note_live/show.ex:52 | ||||||
| #: lib/memex_web/live/pipeline_live/index.ex:24 | #: lib/memex_web/live/pipeline_live/index.ex:24 | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:123 | #: lib/memex_web/live/pipeline_live/show.ex:124 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "edit %{slug}" | msgid "edit %{slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -420,7 +420,7 @@ msgstr "" | |||||||
| msgid "what is this?" | msgid "what is this?" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:48 | #: lib/memex_web/live/pipeline_live/show.html.heex:59 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{position}. %{title}" | msgid "%{position}. %{title}" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -430,7 +430,7 @@ msgstr "" | |||||||
| msgid "%{title} created" | msgid "%{title} created" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:95 | #: lib/memex_web/live/pipeline_live/show.ex:96 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{title} deleted" | msgid "%{title} deleted" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -440,17 +440,17 @@ msgstr "" | |||||||
| msgid "%{title} saved" | msgid "%{title} saved" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:125 | #: lib/memex_web/live/pipeline_live/show.ex:126 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "add step to %{slug}" | msgid "add step to %{slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:42 | #: lib/memex_web/live/pipeline_live/show.html.heex:53 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "no steps" | msgid "no steps" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:37 | #: lib/memex_web/live/pipeline_live/show.html.heex:48 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "steps:" | msgid "steps:" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -596,7 +596,7 @@ msgstr "" | |||||||
| msgid "uses: %{uses_count}" | msgid "uses: %{uses_count}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:128 | #: lib/memex_web/live/home_live.html.heex:137 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "get involved" | msgid "get involved" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -719,3 +719,38 @@ msgstr "" | |||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "(This note is empty)" | msgid "(This note is empty)" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/memex_web/live/context_live/show.html.heex:18 | ||||||
|  | #: lib/memex_web/live/note_live/show.html.heex:18 | ||||||
|  | #: lib/memex_web/live/pipeline_live/show.html.heex:15 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "Backlinked by:" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/memex_web/live/context_live/show.html.heex:24 | ||||||
|  | #: lib/memex_web/live/note_live/show.html.heex:24 | ||||||
|  | #: lib/memex_web/live/pipeline_live/show.html.heex:21 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "[%{slug}]" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/memex_web/live/context_live/show.html.heex:31 | ||||||
|  | #: lib/memex_web/live/note_live/show.html.heex:31 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "[[%{slug}]]" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/memex_web/live/note_live/show.html.heex:38 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "[[[%{slug}]]]" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/memex_web/live/home_live.html.heex:77 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "backlinks:" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/memex_web/live/home_live.html.heex:80 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "view referencing items from the referenced item" | ||||||
|  | msgstr "" | ||||||
|   | |||||||
| @@ -41,12 +41,12 @@ msgid "create invite" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/index.html.heex:50 | #: lib/memex_web/live/context_live/index.html.heex:50 | ||||||
| #: lib/memex_web/live/context_live/show.html.heex:30 | #: lib/memex_web/live/context_live/show.html.heex:51 | ||||||
| #: lib/memex_web/live/note_live/index.html.heex:50 | #: lib/memex_web/live/note_live/index.html.heex:50 | ||||||
| #: lib/memex_web/live/note_live/show.html.heex:30 | #: lib/memex_web/live/note_live/show.html.heex:58 | ||||||
| #: lib/memex_web/live/pipeline_live/index.html.heex:52 | #: lib/memex_web/live/pipeline_live/index.html.heex:52 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:30 | #: lib/memex_web/live/pipeline_live/show.html.heex:41 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:101 | #: lib/memex_web/live/pipeline_live/show.html.heex:112 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "delete" | msgid "delete" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -57,12 +57,12 @@ msgid "delete user" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/index.html.heex:40 | #: lib/memex_web/live/context_live/index.html.heex:40 | ||||||
| #: lib/memex_web/live/context_live/show.html.heex:20 | #: lib/memex_web/live/context_live/show.html.heex:41 | ||||||
| #: lib/memex_web/live/note_live/index.html.heex:40 | #: lib/memex_web/live/note_live/index.html.heex:40 | ||||||
| #: lib/memex_web/live/note_live/show.html.heex:20 | #: lib/memex_web/live/note_live/show.html.heex:48 | ||||||
| #: lib/memex_web/live/pipeline_live/index.html.heex:40 | #: lib/memex_web/live/pipeline_live/index.html.heex:40 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:20 | #: lib/memex_web/live/pipeline_live/show.html.heex:31 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:90 | #: lib/memex_web/live/pipeline_live/show.html.heex:101 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "edit" | msgid "edit" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -113,7 +113,7 @@ msgstr "" | |||||||
| msgid "save" | msgid "save" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:116 | #: lib/memex_web/live/pipeline_live/show.html.heex:127 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "add step" | msgid "add step" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -146,24 +146,24 @@ msgid "copy invite link for %{invite_name}" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/index.html.heex:48 | #: lib/memex_web/live/context_live/index.html.heex:48 | ||||||
| #: lib/memex_web/live/context_live/show.html.heex:28 | #: lib/memex_web/live/context_live/show.html.heex:49 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "delete %{context_slug}" | msgid "delete %{context_slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/note_live/index.html.heex:48 | #: lib/memex_web/live/note_live/index.html.heex:48 | ||||||
| #: lib/memex_web/live/note_live/show.html.heex:28 | #: lib/memex_web/live/note_live/show.html.heex:56 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "delete %{note_slug}" | msgid "delete %{note_slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/index.html.heex:49 | #: lib/memex_web/live/pipeline_live/index.html.heex:49 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:28 | #: lib/memex_web/live/pipeline_live/show.html.heex:39 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "delete %{pipeline_slug}" | msgid "delete %{pipeline_slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:99 | #: lib/memex_web/live/pipeline_live/show.html.heex:110 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "delete %{step_title}" | msgid "delete %{step_title}" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -188,7 +188,7 @@ msgstr "" | |||||||
| msgid "edit %{pipeline_slug}" | msgid "edit %{pipeline_slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:88 | #: lib/memex_web/live/pipeline_live/show.html.heex:99 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "edit %{step_title}" | msgid "edit %{step_title}" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -198,12 +198,12 @@ msgstr "" | |||||||
| msgid "edit invite for %{invite_name}" | msgid "edit invite for %{invite_name}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:78 | #: lib/memex_web/live/pipeline_live/show.html.heex:89 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "move %{step_title} down" | msgid "move %{step_title} down" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:62 | #: lib/memex_web/live/pipeline_live/show.html.heex:73 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "move %{step_title} up" | msgid "move %{step_title} up" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -16,9 +16,9 @@ msgstr "" | |||||||
| msgid "Reconnecting..." | msgid "Reconnecting..." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/show.html.heex:15 | #: lib/memex_web/live/context_live/show.html.heex:36 | ||||||
| #: lib/memex_web/live/note_live/show.html.heex:15 | #: lib/memex_web/live/note_live/show.html.heex:43 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:15 | #: lib/memex_web/live/pipeline_live/show.html.heex:26 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "Visibility: %{visibility}" | msgid "Visibility: %{visibility}" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -28,7 +28,7 @@ msgstr "" | |||||||
| msgid "accessible from any internet-capable device" | msgid "accessible from any internet-capable device" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:85 | #: lib/memex_web/live/home_live.html.heex:94 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "admins:" | msgid "admins:" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -117,12 +117,12 @@ msgstr "" | |||||||
| msgid "features" | msgid "features" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:149 | #: lib/memex_web/live/home_live.html.heex:158 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "help translate" | msgid "help translate" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:80 | #: lib/memex_web/live/home_live.html.heex:89 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "instance information" | msgid "instance information" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -132,7 +132,7 @@ msgstr "" | |||||||
| msgid "invite disabled" | msgid "invite disabled" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:105 | #: lib/memex_web/live/home_live.html.heex:114 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "invite only" | msgid "invite only" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -216,7 +216,7 @@ msgstr "" | |||||||
| msgid "provide context around a single topic and hotlink to your notes" | msgid "provide context around a single topic and hotlink to your notes" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:104 | #: lib/memex_web/live/home_live.html.heex:113 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "public signups" | msgid "public signups" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -226,12 +226,12 @@ msgstr "" | |||||||
| msgid "register" | msgid "register" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:101 | #: lib/memex_web/live/home_live.html.heex:110 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "registration:" | msgid "registration:" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:160 | #: lib/memex_web/live/home_live.html.heex:169 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "report bugs or request features" | msgid "report bugs or request features" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -287,12 +287,12 @@ msgstr "" | |||||||
| msgid "users" | msgid "users" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:111 | #: lib/memex_web/live/home_live.html.heex:120 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "version:" | msgid "version:" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:138 | #: lib/memex_web/live/home_live.html.heex:147 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "view the source code" | msgid "view the source code" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -349,11 +349,11 @@ msgid "%{slug} created" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/index.ex:65 | #: lib/memex_web/live/context_live/index.ex:65 | ||||||
| #: lib/memex_web/live/context_live/show.ex:42 | #: lib/memex_web/live/context_live/show.ex:44 | ||||||
| #: lib/memex_web/live/note_live/index.ex:65 | #: lib/memex_web/live/note_live/index.ex:65 | ||||||
| #: lib/memex_web/live/note_live/show.ex:42 | #: lib/memex_web/live/note_live/show.ex:45 | ||||||
| #: lib/memex_web/live/pipeline_live/index.ex:65 | #: lib/memex_web/live/pipeline_live/index.ex:65 | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:77 | #: lib/memex_web/live/pipeline_live/show.ex:78 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{slug} deleted" | msgid "%{slug} deleted" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -366,11 +366,11 @@ msgid "%{slug} saved" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/index.ex:25 | #: lib/memex_web/live/context_live/index.ex:25 | ||||||
| #: lib/memex_web/live/context_live/show.ex:49 | #: lib/memex_web/live/context_live/show.ex:51 | ||||||
| #: lib/memex_web/live/note_live/index.ex:25 | #: lib/memex_web/live/note_live/index.ex:25 | ||||||
| #: lib/memex_web/live/note_live/show.ex:49 | #: lib/memex_web/live/note_live/show.ex:52 | ||||||
| #: lib/memex_web/live/pipeline_live/index.ex:24 | #: lib/memex_web/live/pipeline_live/index.ex:24 | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:123 | #: lib/memex_web/live/pipeline_live/show.ex:124 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "edit %{slug}" | msgid "edit %{slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -421,7 +421,7 @@ msgstr "" | |||||||
| msgid "what is this?" | msgid "what is this?" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:48 | #: lib/memex_web/live/pipeline_live/show.html.heex:59 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{position}. %{title}" | msgid "%{position}. %{title}" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -431,7 +431,7 @@ msgstr "" | |||||||
| msgid "%{title} created" | msgid "%{title} created" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:95 | #: lib/memex_web/live/pipeline_live/show.ex:96 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "%{title} deleted" | msgid "%{title} deleted" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -441,17 +441,17 @@ msgstr "" | |||||||
| msgid "%{title} saved" | msgid "%{title} saved" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.ex:125 | #: lib/memex_web/live/pipeline_live/show.ex:126 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "add step to %{slug}" | msgid "add step to %{slug}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:42 | #: lib/memex_web/live/pipeline_live/show.html.heex:53 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "no steps" | msgid "no steps" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:37 | #: lib/memex_web/live/pipeline_live/show.html.heex:48 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "steps:" | msgid "steps:" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -597,7 +597,7 @@ msgstr "" | |||||||
| msgid "uses: %{uses_count}" | msgid "uses: %{uses_count}" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:128 | #: lib/memex_web/live/home_live.html.heex:137 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "get involved" | msgid "get involved" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -720,3 +720,38 @@ msgstr "" | |||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "(This note is empty)" | msgid "(This note is empty)" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/memex_web/live/context_live/show.html.heex:18 | ||||||
|  | #: lib/memex_web/live/note_live/show.html.heex:18 | ||||||
|  | #: lib/memex_web/live/pipeline_live/show.html.heex:15 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "Backlinked by:" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/memex_web/live/context_live/show.html.heex:24 | ||||||
|  | #: lib/memex_web/live/note_live/show.html.heex:24 | ||||||
|  | #: lib/memex_web/live/pipeline_live/show.html.heex:21 | ||||||
|  | #, elixir-autogen, elixir-format, fuzzy | ||||||
|  | msgid "[%{slug}]" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/memex_web/live/context_live/show.html.heex:31 | ||||||
|  | #: lib/memex_web/live/note_live/show.html.heex:31 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "[[%{slug}]]" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/memex_web/live/note_live/show.html.heex:38 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "[[[%{slug}]]]" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/memex_web/live/home_live.html.heex:77 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "backlinks:" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | #: lib/memex_web/live/home_live.html.heex:80 | ||||||
|  | #, elixir-autogen, elixir-format | ||||||
|  | msgid "view referencing items from the referenced item" | ||||||
|  | msgstr "" | ||||||
|   | |||||||
| @@ -67,12 +67,12 @@ msgid "are you sure you want to make %{invite_name} unlimited?" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/index.html.heex:47 | #: lib/memex_web/live/context_live/index.html.heex:47 | ||||||
| #: lib/memex_web/live/context_live/show.html.heex:27 | #: lib/memex_web/live/context_live/show.html.heex:48 | ||||||
| #: lib/memex_web/live/note_live/index.html.heex:47 | #: lib/memex_web/live/note_live/index.html.heex:47 | ||||||
| #: lib/memex_web/live/note_live/show.html.heex:27 | #: lib/memex_web/live/note_live/show.html.heex:55 | ||||||
| #: lib/memex_web/live/pipeline_live/index.html.heex:47 | #: lib/memex_web/live/pipeline_live/index.html.heex:47 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:27 | #: lib/memex_web/live/pipeline_live/show.html.heex:38 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:98 | #: lib/memex_web/live/pipeline_live/show.html.heex:109 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "are you sure?" | msgid "are you sure?" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -87,7 +87,7 @@ msgstr "" | |||||||
| msgid "language updated successfully." | msgid "language updated successfully." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:90 | #: lib/memex_web/live/home_live.html.heex:99 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "register to setup memEx" | msgid "register to setup memEx" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -66,12 +66,12 @@ msgid "are you sure you want to make %{invite_name} unlimited?" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/context_live/index.html.heex:47 | #: lib/memex_web/live/context_live/index.html.heex:47 | ||||||
| #: lib/memex_web/live/context_live/show.html.heex:27 | #: lib/memex_web/live/context_live/show.html.heex:48 | ||||||
| #: lib/memex_web/live/note_live/index.html.heex:47 | #: lib/memex_web/live/note_live/index.html.heex:47 | ||||||
| #: lib/memex_web/live/note_live/show.html.heex:27 | #: lib/memex_web/live/note_live/show.html.heex:55 | ||||||
| #: lib/memex_web/live/pipeline_live/index.html.heex:47 | #: lib/memex_web/live/pipeline_live/index.html.heex:47 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:27 | #: lib/memex_web/live/pipeline_live/show.html.heex:38 | ||||||
| #: lib/memex_web/live/pipeline_live/show.html.heex:98 | #: lib/memex_web/live/pipeline_live/show.html.heex:109 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "are you sure?" | msgid "are you sure?" | ||||||
| msgstr "" | msgstr "" | ||||||
| @@ -86,7 +86,7 @@ msgstr "" | |||||||
| msgid "language updated successfully." | msgid "language updated successfully." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/memex_web/live/home_live.html.heex:90 | #: lib/memex_web/live/home_live.html.heex:99 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "register to setup memEx" | msgid "register to setup memEx" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| # memEx | # memEx | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| memEx is an easy way to digitize the structured processes of your life. | A structured personal knowledge base, inspired by zettlekasten and org-mode. | ||||||
|  |  | ||||||
| - Notes: Document notes about individual items or concepts | - Notes: Document notes about individual items or concepts | ||||||
| - Contexts: Provide context around a single topic and hotlink to individual | - Contexts: Provide context around a single topic and hotlink to individual | ||||||
| @@ -14,6 +14,7 @@ memEx is an easy way to digitize the structured processes of your life. | |||||||
| - Multi-user: Built with sharing and collaboration in mind | - Multi-user: Built with sharing and collaboration in mind | ||||||
| - Privacy: Privacy controls on a per-note, context or pipeline basis | - Privacy: Privacy controls on a per-note, context or pipeline basis | ||||||
| - Convenient: Accessible from any internet-capable device | - Convenient: Accessible from any internet-capable device | ||||||
|  | - Backlinks: View referencing items from the referenced item | ||||||
|  |  | ||||||
| # Installation | # Installation | ||||||
|  |  | ||||||
|   | |||||||
| @@ -108,6 +108,25 @@ defmodule Memex.ContextsTest do | |||||||
|       assert Contexts.get_context_by_slug("c", user) == context |       assert Contexts.get_context_by_slug("c", user) == context | ||||||
|     end |     end | ||||||
|  |  | ||||||
|  |     test "backlink/2 returns contexts with backlinks", %{user: user} do | ||||||
|  |       context_fixture(%{slug: "a", visibility: :public}, user) | ||||||
|  |       assert Contexts.backlink("[a]", user) == [] | ||||||
|  |  | ||||||
|  |       context = context_fixture(%{slug: "b", content: "[a]", visibility: :unlisted}, user) | ||||||
|  |       assert Contexts.backlink("[a]", user) == [context] | ||||||
|  |       assert Contexts.backlink("[b]", user) == [] | ||||||
|  |     end | ||||||
|  |  | ||||||
|  |     test "backlink/2 only returns public contexts for empty user", %{user: user} do | ||||||
|  |       context_fixture(%{slug: "a", visibility: :public}, user) | ||||||
|  |       context_fixture(%{slug: "b", content: "[a]", visibility: :unlisted}, user) | ||||||
|  |       context_fixture(%{slug: "c", content: "[a]", visibility: :private}, user) | ||||||
|  |       assert Contexts.backlink("[a]", nil) == [] | ||||||
|  |  | ||||||
|  |       context = context_fixture(%{slug: "d", content: "[a]", visibility: :public}, user) | ||||||
|  |       assert Contexts.backlink("[a]", nil) == [context] | ||||||
|  |     end | ||||||
|  |  | ||||||
|     test "create_context/1 with valid data creates a context", %{user: user} do |     test "create_context/1 with valid data creates a context", %{user: user} do | ||||||
|       valid_attrs = %{ |       valid_attrs = %{ | ||||||
|         content: "some content", |         content: "some content", | ||||||
|   | |||||||
| @@ -109,6 +109,25 @@ defmodule Memex.NotesTest do | |||||||
|       assert Notes.get_note_by_slug("c", user) == note |       assert Notes.get_note_by_slug("c", user) == note | ||||||
|     end |     end | ||||||
|  |  | ||||||
|  |     test "backlink/2 returns notes with backlinks", %{user: user} do | ||||||
|  |       note_fixture(%{slug: "a", visibility: :public}, user) | ||||||
|  |       assert Notes.backlink("[a]", user) == [] | ||||||
|  |  | ||||||
|  |       note = note_fixture(%{slug: "b", content: "[a]", visibility: :unlisted}, user) | ||||||
|  |       assert Notes.backlink("[a]", user) == [note] | ||||||
|  |       assert Notes.backlink("[b]", user) == [] | ||||||
|  |     end | ||||||
|  |  | ||||||
|  |     test "backlink/2 only returns public notes for empty user", %{user: user} do | ||||||
|  |       note_fixture(%{slug: "a", visibility: :public}, user) | ||||||
|  |       note_fixture(%{slug: "b", content: "[a]", visibility: :unlisted}, user) | ||||||
|  |       note_fixture(%{slug: "c", content: "[a]", visibility: :private}, user) | ||||||
|  |       assert Notes.backlink("[a]", nil) == [] | ||||||
|  |  | ||||||
|  |       note = note_fixture(%{slug: "d", content: "[a]", visibility: :public}, user) | ||||||
|  |       assert Notes.backlink("[a]", nil) == [note] | ||||||
|  |     end | ||||||
|  |  | ||||||
|     test "create_note/1 with valid data creates a note", %{user: user} do |     test "create_note/1 with valid data creates a note", %{user: user} do | ||||||
|       valid_attrs = %{ |       valid_attrs = %{ | ||||||
|         content: "some content", |         content: "some content", | ||||||
|   | |||||||
| @@ -108,6 +108,25 @@ defmodule Memex.PipelinesTest do | |||||||
|       assert Pipelines.get_pipeline_by_slug("c", user) == pipeline |       assert Pipelines.get_pipeline_by_slug("c", user) == pipeline | ||||||
|     end |     end | ||||||
|  |  | ||||||
|  |     test "backlink/2 returns pipelines with backlinks", %{user: user} do | ||||||
|  |       pipeline_fixture(%{slug: "a", visibility: :public}, user) | ||||||
|  |       assert Pipelines.backlink("[a]", user) == [] | ||||||
|  |  | ||||||
|  |       pipeline = pipeline_fixture(%{slug: "b", description: "[a]", visibility: :unlisted}, user) | ||||||
|  |       assert Pipelines.backlink("[a]", user) == [pipeline] | ||||||
|  |       assert Pipelines.backlink("[b]", user) == [] | ||||||
|  |     end | ||||||
|  |  | ||||||
|  |     test "backlink/2 only returns public pipelines for empty user", %{user: user} do | ||||||
|  |       pipeline_fixture(%{slug: "a", visibility: :public}, user) | ||||||
|  |       pipeline_fixture(%{slug: "b", description: "[a]", visibility: :unlisted}, user) | ||||||
|  |       pipeline_fixture(%{slug: "c", description: "[a]", visibility: :private}, user) | ||||||
|  |       assert Pipelines.backlink("[a]", nil) == [] | ||||||
|  |  | ||||||
|  |       pipeline = pipeline_fixture(%{slug: "d", description: "[a]", visibility: :public}, user) | ||||||
|  |       assert Pipelines.backlink("[a]", nil) == [pipeline] | ||||||
|  |     end | ||||||
|  |  | ||||||
|     test "create_pipeline/1 with valid data creates a pipeline", %{user: user} do |     test "create_pipeline/1 with valid data creates a pipeline", %{user: user} do | ||||||
|       valid_attrs = %{ |       valid_attrs = %{ | ||||||
|         description: "some description", |         description: "some description", | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user