Packages
tableau
0.10.1
0.30.0
0.29.0
0.28.0
0.27.1
0.27.0
0.26.1
0.26.0
0.25.1
0.25.0
0.24.1
0.24.0
0.23.1
0.23.0
0.22.0
0.21.0
0.20.1
0.20.0
0.19.0
0.18.0
0.17.1
0.17.0
0.16.0
0.15.3
0.15.2
0.15.1
0.15.0
0.14.3
0.14.2
0.14.1
0.14.0
0.13.0
0.12.0
0.11.1
0.11.0
0.10.1
0.10.0
0.9.0
0.8.0
0.7.1
0.7.0
0.6.0
0.5.0
0.4.0
0.3.1
0.3.0
0.2.0
0.1.2
0.1.1
0.1.0
Static site generator for elixir
Current section
Files
Jump to
Current section
Files
lib/tableau/router.ex
defmodule Tableau.Router do
@moduledoc false
use Plug.Router, init_mode: :runtime
import Tableau.Strung
require Logger
@not_found ~g'''
<!DOCTYPE html><html lang="en"><head></head><body>Not Found</body></html>
'''html
plug :recompile
plug :rerender
plug Tableau.IndexHtml
plug Plug.Static, at: "/", from: "_site", cache_control_for_etags: "no-cache"
plug :match
plug :dispatch
get "/ws/index.html" do
conn
|> WebSockAdapter.upgrade(Tableau.Websocket, [], timeout: 60_000)
|> halt()
end
match _ do
Logger.error("File not found: #{conn.request_path}")
send_resp(conn, 404, @not_found)
end
defp recompile(conn, _) do
WebDevUtils.CodeReloader.reload()
conn
end
defp rerender(conn, _) do
Mix.Task.rerun("tableau.build", ["--out", "_site"])
conn
end
end