@@ -40,9 +40,14 @@ func (server *Server) Serve(param *Param) error {
4040 port = server .port
4141 }
4242
43- filename , err := targetFile (param .filename )
44- if err != nil {
45- return err
43+ // Use a empty filename for stdin
44+ filename := ""
45+ if ! param .useStdin {
46+ var err error
47+ filename , err = targetFile (param .filename )
48+ if err != nil {
49+ return err
50+ }
4651 }
4752
4853 dir := filepath .Dir (filename )
@@ -96,10 +101,15 @@ func handler(filename string, param *Param, h http.Handler) http.Handler {
96101 return
97102 }
98103
99- markdown , err := slurp (filename )
100- if err != nil {
101- http .Error (w , err .Error (), http .StatusInternalServerError )
102- return
104+ var markdown string
105+ if param .useStdin && param .stdinContent != "" && filename == "" {
106+ markdown = param .stdinContent
107+ } else {
108+ markdown , err = slurp (filename )
109+ if err != nil {
110+ http .Error (w , err .Error (), http .StatusInternalServerError )
111+ return
112+ }
103113 }
104114
105115 html , err := toHTML (markdown , param )
@@ -118,11 +128,16 @@ func handler(filename string, param *Param, h http.Handler) http.Handler {
118128
119129func mdResponse (w http.ResponseWriter , filename string , param * Param ) {
120130 w .Header ().Set ("Content-Type" , "text/html; charset=utf-8" )
121-
122- markdown , err := slurp (filename )
123- if err != nil {
124- http .Error (w , err .Error (), 500 )
125- return
131+ var markdown string
132+ var err error
133+ if param .useStdin && param .stdinContent != "" && filename == "" {
134+ markdown = param .stdinContent
135+ } else {
136+ markdown , err = slurp (filename )
137+ if err != nil {
138+ http .Error (w , err .Error (), 500 )
139+ return
140+ }
126141 }
127142
128143 html , err := toHTML (markdown , param )
0 commit comments