All the template are now compiled at compile-time with the `ructe` crate.
I preferred to use it instead of askama because it allows more complex Rust expressions, where askama only supports a small subset of expressions and doesn't allow them everywhere (for instance, `{{ macro!() | filter }}` would result in a parsing error).
The diff is quite huge, but there is normally no changes in functionality.
Fixes #161 and unblocks #110 and #273
		
	
			
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| @use templates::base;
 | |
| @use template_utils::*;
 | |
| @use plume_models::medias::{Media, MediaCategory};
 | |
| 
 | |
| @(ctx: BaseContext, media: Media)
 | |
| 
 | |
| @:base(ctx, "Media details", {}, {}, {
 | |
|     <h1>@i18n!(ctx.1, "Media details")</h1>
 | |
|     <section>
 | |
|         <a href="/medias">@i18n!(ctx.1, "Go back to the gallery")</a>
 | |
|     </section>
 | |
| 
 | |
|     <section>
 | |
|         <figure class="media">
 | |
|             @Html(media.html(ctx.0))
 | |
|             <figcaption>@media.alt_text</figcaption>
 | |
|         </figure>
 | |
|         <div>
 | |
|             <p>
 | |
|                 @i18n!(ctx.1, "Markdown code")
 | |
|                 <small>@i18n!(ctx.1, "Copy it in your articles to insert this media.")</small>
 | |
|             </p>
 | |
|             <code>@media.markdown(ctx.0)</code>
 | |
|         </div>
 | |
|         <div>
 | |
| 	    @if media.category() == MediaCategory::Image {
 | |
|                 <form class="inline" method="post" action="/medias/@media.id/avatar">
 | |
| 		    <input class="button" type="submit" value="@i18n!(ctx.1, "Use as avatar")">
 | |
|                 </form>
 | |
| 	    }
 | |
|             <form class="inline" method="post" action="/medias/@media.id/delete">
 | |
|                 <input class="button" type="submit" value="@i18n!(ctx.1, "Delete")">
 | |
|             </form>
 | |
|         </div>
 | |
|     </section>
 | |
| })
 |