@@ -263,11 +263,34 @@ func (p *Partial) getPartialHeader() string {
263263 return ""
264264}
265265
266+ // RenderWithRequest renders the partial with the given http.Request.
266267func (p * Partial ) RenderWithRequest (ctx context.Context , r * http.Request ) (template.HTML , error ) {
267268 renderTarget := r .Header .Get (p .getPartialHeader ())
268269 return p .renderWithTarget (ctx , r , renderTarget )
269270}
270271
272+ // WriteWithRequest writes the partial to the http.ResponseWriter.
273+ func (p * Partial ) WriteWithRequest (ctx context.Context , w http.ResponseWriter , r * http.Request ) error {
274+ out , err := p .RenderWithRequest (ctx , r )
275+ if err != nil {
276+ return err
277+ }
278+
279+ _ , err = w .Write ([]byte (out ))
280+ if err != nil {
281+ return err
282+ }
283+
284+ return nil
285+ }
286+
287+ // Render renders the partial without requiring an http.Request.
288+ // It can be used when you don't need access to the request data.
289+ func (p * Partial ) Render (ctx context.Context ) (template.HTML , error ) {
290+ // Since we don't have an http.Request, we'll pass nil where appropriate.
291+ return p .render (ctx , nil )
292+ }
293+
271294func (p * Partial ) renderWithTarget (ctx context.Context , r * http.Request , renderTarget string ) (template.HTML , error ) {
272295 if renderTarget == "" || renderTarget == p .id {
273296 out , err := p .render (ctx , r )
0 commit comments