Parcourir la source

Newline to <br>, ignore non-json files

master
Dylan Baker il y a 3 ans
Parent
révision
3f2118fe9d
2 fichiers modifiés avec 9 ajouts et 4 suppressions
  1. 8
    3
      src/main.rs
  2. 1
    1
      templates/admin/index.html

+ 8
- 3
src/main.rs Voir le fichier

1
 use std::env;
1
 use std::env;
2
+use std::ffi::OsStr;
2
 use std::fs::{read_dir, File};
3
 use std::fs::{read_dir, File};
3
 use std::io::prelude::*;
4
 use std::io::prelude::*;
4
 use std::io::{Error, ErrorKind};
5
 use std::io::{Error, ErrorKind};
57
 
58
 
58
     for file in read_dir(path)? {
59
     for file in read_dir(path)? {
59
         let file = file?;
60
         let file = file?;
60
-        let contents = read_to_string(file.path()).await?;
61
-        let post: Post = serde_json::from_str(&contents)?;
62
-        posts.push(post);
61
+        if let Some("json") = file.path().extension().and_then(OsStr::to_str) {
62
+            let contents = read_to_string(file.path()).await?;
63
+            let mut post: Post = serde_json::from_str(&contents)?;
64
+            post.body = post.body.replace("\n", "<br>");
65
+            posts.push(post);
66
+        }
63
     }
67
     }
64
 
68
 
65
     Ok(posts)
69
     Ok(posts)
101
             let mut post: Post = req.body_form().await?;
105
             let mut post: Post = req.body_form().await?;
102
             post.id = Uuid::new_v4().to_string();
106
             post.id = Uuid::new_v4().to_string();
103
             post.date = Local::now().date().naive_local().to_string();
107
             post.date = Local::now().date().naive_local().to_string();
108
+            post.body = post.body.trim().to_owned();
104
             post.save()?;
109
             post.save()?;
105
             Ok(tide::Redirect::new("/admin"))
110
             Ok(tide::Redirect::new("/admin"))
106
         });
111
         });

+ 1
- 1
templates/admin/index.html Voir le fichier

21
   <div class="posts__post post">
21
   <div class="posts__post post">
22
     <h3 class="post__heading">{{ post.title }} // {{ post.date }}</h3>
22
     <h3 class="post__heading">{{ post.title }} // {{ post.date }}</h3>
23
     <div class="post__body">
23
     <div class="post__body">
24
-      {{ post.body }}
24
+      {{ post.body | safe }}
25
     </div>
25
     </div>
26
   </div>
26
   </div>
27
   {% endfor %}
27
   {% endfor %}

Chargement…
Annuler
Enregistrer