Skip to content

Commit

Permalink
Merge pull request #159 from ReagentX/feat/cs/link-replies
Browse files Browse the repository at this point in the history
Feat/cs/link replies
  • Loading branch information
ReagentX committed Aug 20, 2023
2 parents 995c81b + 9853ef6 commit 6059d0f
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 2 deletions.
36 changes: 34 additions & 2 deletions imessage-exporter/src/exporters/html.rs
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,18 @@ impl<'a> Writer<'a> for HTML<'a> {
let mut formatted_message = String::new();

// Message div
self.add_line(&mut formatted_message, "<div class=\"message\">", "", "");
if message.is_reply() && indent_size == 0 {
// Add an ID for any top-level message so we can link to them in threads
self.add_line(
&mut formatted_message,
&format!("<div class=\"message\", id=\"r-{}\">", message.guid),
"",
"",
);
} else {
// No ID needed if the message has no replies
self.add_line(&mut formatted_message, "<div class=\"message\">", "", "");
}

// Start message div
if message.is_from_me {
Expand All @@ -176,6 +187,27 @@ impl<'a> Writer<'a> for HTML<'a> {
"</span>",
);

// Add reply anchor if necessary
if message.is_reply() {
if indent_size > 0 {
// If we are indented it means we are rendering in a thread
self.add_line(
&mut formatted_message,
&format!("<a href=\"#r-{}\">⇲</a>", message.guid),
"<span class=\"reply_anchor\">",
"</span>",
);
} else {
// If there is no ident we are rendering a top-level message
self.add_line(
&mut formatted_message,
&format!("<a href=\"#{}\">⇱</a>", message.guid),
"<span class=\"reply_anchor\">",
"</span>",
);
}
}

// Add message sender
self.add_line(
&mut formatted_message,
Expand Down Expand Up @@ -377,7 +409,7 @@ impl<'a> Writer<'a> for HTML<'a> {
self.add_line(
&mut formatted_message,
&self.format_message(reply, 1)?,
"<div class=\"reply\">",
&format!("<div class=\"reply\" id=\"{}\">", reply.guid),
"</div>",
);
}
Expand Down
9 changes: 9 additions & 0 deletions imessage-exporter/src/exporters/resources/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ xmp {
margin: 0px;
}

a[href^="#"] {
text-decoration: none;
color: darkblue;
}

.message {
margin: 1%;
overflow-wrap: break-word;
Expand Down Expand Up @@ -217,6 +222,10 @@ span.timestamp {
opacity: 60%;
}

span.reply_anchor {
opacity: 100%;
}

span.sender {
opacity: 100%;
}
Expand Down

0 comments on commit 6059d0f

Please sign in to comment.