0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-15 04:30:25 +00:00

Add an example with custom middleware

This commit is contained in:
Adam Cammack 2013-02-09 04:04:49 -06:00
parent 26935cbfb0
commit 09f1a8d55b
12 changed files with 157 additions and 0 deletions

View file

@ -0,0 +1,29 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(markdown_converter).
-behaviour(cowboy_middleware).
-export([execute/2]).
execute(Req, Env) ->
{[Path], Req1} = cowboy_req:path_info(Req),
case filename:extension(Path) of
<<".html">> -> maybe_generate_markdown(resource_path(Path));
_Ext -> ok
end,
{ok, Req1, Env}.
maybe_generate_markdown(Path) ->
ModifiedAt = filelib:last_modified(source_path(Path)),
GeneratedAt = filelib:last_modified(Path),
case ModifiedAt > GeneratedAt of
true -> erlmarkdown:conv_file(source_path(Path), Path);
false -> ok
end.
resource_path(Path) ->
{ok, Cwd} = file:get_cwd(),
filename:join([Cwd, "priv", Path]).
source_path(Path) ->
<< (filename:rootname(Path))/binary, ".md" >>.