Javi Martín
68ca29fa8b
Convert markdown to HTML on demand
...
We were converting markdown to HTML every time we saved a record, which
has the same problems as sanitizing HTML before saving it to the
database, particularly because the body of a legislation draft is stored
in a translations table.
Performance-wise this isn't a problem: converting a text with more than
200_000 characters takes about a milisecond on my machine.
Note we need to modify a migration generated by globalize, since the
method `create_translation_table!` would fail now that we don't define
`translates :body_html` in the model.
2019-10-21 21:32:43 +02:00
..
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-23 17:12:47 +02:00
2019-04-23 17:12:47 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-24 19:24:01 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-05-28 16:40:52 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-05-28 16:40:52 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-24 19:24:01 +02:00
2019-04-29 13:08:43 -05:00
2019-04-29 13:08:43 -05:00
2019-04-29 13:08:43 -05:00
2019-04-17 17:40:56 +02:00
2019-04-29 13:08:43 -05:00
2019-04-29 13:08:43 -05:00
2019-04-24 19:24:01 +02:00
2019-04-29 13:08:43 -05:00
2019-04-29 13:08:43 -05:00
2019-04-29 13:08:43 -05:00
2019-04-29 13:08:43 -05:00
2019-04-24 19:24:01 +02:00
2019-04-24 19:24:01 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-29 13:08:43 -05:00
2019-04-29 13:08:43 -05:00
2019-04-29 13:08:43 -05:00
2019-04-29 13:08:43 -05:00
2019-04-29 13:08:43 -05:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-21 21:32:43 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-05-28 16:40:52 +02:00
2019-06-27 09:19:36 +02:00
2019-06-27 09:19:36 +02:00
2019-06-27 09:19:37 +02:00
2019-06-27 09:20:25 +02:00
2019-04-17 17:40:56 +02:00
2019-06-27 09:20:24 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-29 13:08:43 -05:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-06-27 09:19:35 +02:00
2019-06-27 09:19:35 +02:00
2019-06-27 09:19:35 +02:00
2019-06-27 09:19:35 +02:00
2019-06-27 09:19:36 +02:00
2019-06-27 09:19:36 +02:00
2019-04-17 17:40:56 +02:00
2019-06-27 09:19:36 +02:00
2019-06-27 09:20:24 +02:00
2019-06-27 09:19:37 +02:00
2019-06-27 09:19:36 +02:00
2019-06-27 09:19:37 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-05-28 16:40:52 +02:00
2019-05-28 16:40:52 +02:00
2019-05-31 18:23:03 +02:00
2019-05-31 18:23:03 +02:00
2019-08-07 13:53:27 +02:00
2019-06-07 17:36:22 +02:00
2019-08-07 13:53:27 +02:00
2019-05-31 18:23:03 +02:00
2019-08-07 13:53:27 +02:00
2019-05-21 13:50:19 +02:00
2019-06-07 17:36:22 +02:00
2019-04-29 13:08:43 -05:00
2019-06-07 17:36:22 +02:00
2019-06-07 17:36:22 +02:00
2019-08-07 13:53:27 +02:00
2019-05-22 11:50:03 +02:00
2019-06-07 17:36:22 +02:00
2019-06-12 16:23:40 +02:00
2019-06-12 16:23:40 +02:00
2019-06-12 16:23:40 +02:00
2019-05-22 11:50:03 +02:00
2019-08-07 13:53:27 +02:00
2019-08-07 13:53:27 +02:00
2019-08-07 13:53:27 +02:00
2019-07-29 13:07:24 +02:00
2019-06-12 18:03:53 +02:00
2019-06-12 19:32:41 +02:00
2019-06-12 18:03:53 +02:00
2019-06-12 18:03:53 +02:00
2019-06-12 18:03:53 +02:00
2019-06-12 19:32:41 +02:00
2019-06-12 18:03:53 +02:00
2019-06-12 19:32:41 +02:00
2019-06-12 19:32:41 +02:00
2019-06-12 19:32:41 +02:00
2019-06-12 19:32:41 +02:00
2019-07-29 13:07:24 +02:00
2019-09-12 16:49:01 +02:00
2019-06-07 18:55:29 +02:00
2019-10-21 21:32:43 +02:00
2019-10-20 17:36:36 +02:00
2019-10-20 17:36:36 +02:00