     end
   end
 
-  defp extract_title_tags(file, proj) do
-    try do
-      ["# " <> title, "#" <> tags] =
-        File.open! file, [:read, :utf8], &([IO.gets(&1, ""), IO.gets(&1, "")])
-      title = title |> String.trim
-      tags = tags |> String.split(~r/, ?/)
-                  |> Enum.filter(&(String.trim(&1) != ""))
-                  |> Enum.map(fn x ->
-                    tag = String.trim x
-                    %{name: tag, list_url: "#{Keyword.get proj, :base_url}tags/#{tag}/"}
-                  end)
-      {:ok, {title, tags}}
-    rescue
-      _ in MatchError ->
-        {:error, :invalid_header}
-    end
-  end
-
   defp copy_assets(src, dest) do
     IO.puts "Cleaning assets and media directories..."
     File.rm_rf! "#{dest}assets/"

    []
  end

  def post_task1(srcdir, dstdir, file, template) do
    proj = Agent.get Global, &(Map.get &1, :proj)

    [l1, l2|lines] = "#{srcdir}#{file}.md" |> File.read! |> String.split("\n")

    Agent.stop Serum.Build.PostInfoStorage
  end

  defp launch_post(:parallel, files, srcdir, dstdir, template) do
    files
    |> Enum.map(&(Task.async Serum.Build, :post_task, [srcdir, dstdir, &1, template]))
  end

  defp launch_post(:sequential, files, srcdir, dstdir, template) do
    files
    |> Enum.each(&(post_task srcdir, dstdir, &1, template))
    []
  end
