use lemmy_db_queries::{ApubObject, Crud, DbPool};
use lemmy_db_schema::source::community::Community;
use lemmy_structs::blocking;
-use lemmy_utils::{location_info, settings::Settings, utils::convert_datetime, LemmyError};
+use lemmy_utils::{
+ location_info,
+ settings::Settings,
+ utils::{convert_datetime, markdown_to_html},
+ LemmyError,
+};
use lemmy_websocket::LemmyContext;
use url::Url;
.set_media_type(mime_markdown()?);
object.set_source(source.into_any_base()?);
- // set `content` to markdown for compatibility with older Lemmy versions
- // TODO: change this to HTML in a while
- object.set_content(markdown_text);
- object.set_media_type(mime_markdown()?);
- //object.set_content(markdown_to_html(markdown_text));
+ object.set_content(markdown_to_html(markdown_text));
+ object.set_media_type(mime_html()?);
Ok(())
}
.flatten()
.map(|s| s.to_string());
if content.is_some() {
- let source = object.source();
- // updated lemmy version, read markdown from `source.content`
- if let Some(source) = source {
- let source = Object::<()>::from_any_base(source.to_owned())?.context(location_info!())?;
- check_is_markdown(source.media_type())?;
- let source_content = source
- .content()
- .map(|s| s.as_single_xsd_string())
- .flatten()
- .context(location_info!())?
- .to_string();
- return Ok(Some(source_content));
- }
- // older lemmy version, read markdown from `content`
- // TODO: remove this after a while
- else {
- return Ok(content);
- }
+ let source = object.source().context(location_info!())?;
+ let source = Object::<()>::from_any_base(source.to_owned())?.context(location_info!())?;
+ check_is_markdown(source.media_type())?;
+ let source_content = source
+ .content()
+ .map(|s| s.as_single_xsd_string())
+ .flatten()
+ .context(location_info!())?
+ .to_string();
+ return Ok(Some(source_content));
}
Ok(None)
}
-pub(in crate::objects) fn mime_markdown() -> Result<Mime, FromStrError> {
+fn mime_markdown() -> Result<Mime, FromStrError> {
"text/markdown".parse()
}
+fn mime_html() -> Result<Mime, FromStrError> {
+ "text/html".parse()
+}
+
pub(in crate::objects) fn check_is_markdown(mime: Option<&Mime>) -> Result<(), LemmyError> {
let mime = mime.context(location_info!())?;
if !mime.eq(&mime_markdown()?) {