Browse Source

Render markdown

master
Dylan Baker 5 years ago
parent
commit
db69c81d0b
4 changed files with 102 additions and 3 deletions
  1. 94
    0
      Cargo.lock
  2. 1
    0
      Cargo.toml
  3. 1
    0
      src/main.rs
  4. 6
    3
      src/render.rs

+ 94
- 0
Cargo.lock View File

@@ -56,6 +56,27 @@ dependencies = [
56 56
  "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
57 57
 ]
58 58
 
59
+[[package]]
60
+name = "comrak"
61
+version = "0.3.1"
62
+source = "registry+https://github.com/rust-lang/crates.io-index"
63
+dependencies = [
64
+ "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
65
+ "entities 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
66
+ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
67
+ "pest 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
68
+ "pest_derive 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
69
+ "regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
70
+ "twoway 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
71
+ "typed-arena 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
72
+ "unicode_categories 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
73
+]
74
+
75
+[[package]]
76
+name = "entities"
77
+version = "1.0.1"
78
+source = "registry+https://github.com/rust-lang/crates.io-index"
79
+
59 80
 [[package]]
60 81
 name = "fuchsia-zircon"
61 82
 version = "0.3.3"
@@ -90,6 +111,26 @@ dependencies = [
90 111
  "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
91 112
 ]
92 113
 
114
+[[package]]
115
+name = "pest"
116
+version = "1.0.6"
117
+source = "registry+https://github.com/rust-lang/crates.io-index"
118
+
119
+[[package]]
120
+name = "pest_derive"
121
+version = "1.0.8"
122
+source = "registry+https://github.com/rust-lang/crates.io-index"
123
+dependencies = [
124
+ "pest 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
125
+ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
126
+ "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
127
+]
128
+
129
+[[package]]
130
+name = "quote"
131
+version = "0.3.15"
132
+source = "registry+https://github.com/rust-lang/crates.io-index"
133
+
93 134
 [[package]]
94 135
 name = "rand"
95 136
 version = "0.5.5"
@@ -153,6 +194,24 @@ name = "strsim"
153 194
 version = "0.7.0"
154 195
 source = "registry+https://github.com/rust-lang/crates.io-index"
155 196
 
197
+[[package]]
198
+name = "syn"
199
+version = "0.11.11"
200
+source = "registry+https://github.com/rust-lang/crates.io-index"
201
+dependencies = [
202
+ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
203
+ "synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
204
+ "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
205
+]
206
+
207
+[[package]]
208
+name = "synom"
209
+version = "0.11.3"
210
+source = "registry+https://github.com/rust-lang/crates.io-index"
211
+dependencies = [
212
+ "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
213
+]
214
+
156 215
 [[package]]
157 216
 name = "termion"
158 217
 version = "1.5.1"
@@ -184,11 +243,25 @@ name = "tlon"
184 243
 version = "0.1.0"
185 244
 dependencies = [
186 245
  "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
246
+ "comrak 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
187 247
  "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
188 248
  "regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
189 249
  "uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
190 250
 ]
191 251
 
252
+[[package]]
253
+name = "twoway"
254
+version = "0.1.8"
255
+source = "registry+https://github.com/rust-lang/crates.io-index"
256
+dependencies = [
257
+ "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
258
+]
259
+
260
+[[package]]
261
+name = "typed-arena"
262
+version = "1.4.1"
263
+source = "registry+https://github.com/rust-lang/crates.io-index"
264
+
192 265
 [[package]]
193 266
 name = "ucd-util"
194 267
 version = "0.1.3"
@@ -199,6 +272,16 @@ name = "unicode-width"
199 272
 version = "0.1.5"
200 273
 source = "registry+https://github.com/rust-lang/crates.io-index"
201 274
 
275
+[[package]]
276
+name = "unicode-xid"
277
+version = "0.0.4"
278
+source = "registry+https://github.com/rust-lang/crates.io-index"
279
+
280
+[[package]]
281
+name = "unicode_categories"
282
+version = "0.1.1"
283
+source = "registry+https://github.com/rust-lang/crates.io-index"
284
+
202 285
 [[package]]
203 286
 name = "utf8-ranges"
204 287
 version = "1.0.2"
@@ -249,11 +332,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
249 332
 "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4"
250 333
 "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e"
251 334
 "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
335
+"checksum comrak 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a9bd60be8877a3343d25b9a3dadbaf7f02f9ac843b54e663ecef73e29e8b9c6b"
336
+"checksum entities 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca"
252 337
 "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
253 338
 "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
254 339
 "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1"
255 340
 "checksum libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)" = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d"
256 341
 "checksum memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0a3eb002f0535929f1199681417029ebea04aadc0c7a4224b46be99c7f5d6a16"
342
+"checksum pest 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0fce5d8b5cc33983fc74f78ad552b5522ab41442c4ca91606e4236eb4b5ceefc"
343
+"checksum pest_derive 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3294f437119209b084c797604295f40227cffa35c57220b1e99a6ff3bf8ee4"
344
+"checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
257 345
 "checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c"
258 346
 "checksum rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372"
259 347
 "checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db"
@@ -262,11 +350,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
262 350
 "checksum regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ee84f70c8c08744ea9641a731c7fadb475bf2ecc52d7f627feb833e0b3990467"
263 351
 "checksum regex-syntax 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fbc557aac2b708fe84121caf261346cc2eed71978024337e42eb46b8a252ac6e"
264 352
 "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
353
+"checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
354
+"checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
265 355
 "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096"
266 356
 "checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6"
267 357
 "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
358
+"checksum twoway 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1"
359
+"checksum typed-arena 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c6c06a92aef38bb4dc5b0df00d68496fc31307c5344c867bb61678c6e1671ec5"
268 360
 "checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86"
269 361
 "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
362
+"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
363
+"checksum unicode_categories 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e"
270 364
 "checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737"
271 365
 "checksum uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dab5c5526c5caa3d106653401a267fed923e7046f35895ffcb5ca42db64942e6"
272 366
 "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"

+ 1
- 0
Cargo.toml View File

@@ -5,6 +5,7 @@ authors = ["Dylan Baker"]
5 5
 
6 6
 [dependencies]
7 7
 clap = "2.32.0"
8
+comrak = "0.3"
8 9
 lazy_static = "1.2.0"
9 10
 regex = "1"
10 11
 uuid = { version = "0.7", features = ["v4"] }

+ 1
- 0
src/main.rs View File

@@ -1,4 +1,5 @@
1 1
 extern crate clap;
2
+extern crate comrak;
2 3
 #[macro_use]
3 4
 extern crate lazy_static;
4 5
 extern crate regex;

+ 6
- 3
src/render.rs View File

@@ -1,11 +1,14 @@
1
+use comrak::{markdown_to_html, ComrakOptions};
2
+
1 3
 use post::Post;
2 4
 
3 5
 pub fn render_post(layout: &str, post_template: &str, post: &Post) -> String {
4 6
     layout.replace(
5 7
         "{{ contents }}",
6
-        &post_template
7
-            .replace("{{ title }}", &post.title)
8
-            .replace("{{ body }}", &post.body),
8
+        &post_template.replace("{{ title }}", &post.title).replace(
9
+            "{{ body }}",
10
+            &markdown_to_html(&post.body, &ComrakOptions::default()),
11
+        ),
9 12
     )
10 13
 }
11 14
 

Loading…
Cancel
Save