Open TohidN opened 6 months ago
Many RSS readers do not support html at all and don't parse html content. Thus I want the description to be as close to plain text as possible. I did a lot of experimentation to make sure the RSS description was as readable as possible in multiple environments.
Including the full html for the file isn't really possible, again RSS feeds do not support many html features and if the full html was included it would look completely broken in almost every RSS reader.
The first option you described is basically what I am doing right now but I am keeping the most common tags that are either almost always supported or don't add much clutter if they are not supported, or are particularly important for RSS feeds that do support it
Thanks for your response @KosmosisDire, here is a few comments I would like to add:
Many RSS readers do not support html at all and don't parse html content. Thus I want the description to be as close to plain text as possible. I did a lot of experimentation to make sure the RSS description was as readable as possible in multiple environments.
You are right that the some html code used in web pages can't be used in RSS, but many supported and useful tags are either stripped of their formatting or removed. I suggest using a MD Parser and HTML convertor module with a few changes in conversion process to get much better results.
Including the full html for the file isn't really possible, again RSS feeds do not support many html features and if the full html was included it would look completely broken in almost every RSS reader.
-
), quotation(>
), horizontal ruler(---
) and tables which are removed or stripped of their formatting.$$
markdown) and mermaidjs's markdown blocks can't be processed in the description
tag, as they require rendering via JS libraries, They should be kept as markdown code(or changed to code block) so content is not lost.I suggest performing parsing(getting blocks) and pre-processing(cleaning) on blocks before converting them to rss specific HTML code:
![[*]]
with [[*]]
to fix embeds showing as plain text file name.> [!*]
and > [!*]-
it with >
. if first line's content is exactly >
, then remove line from text. This will preserve callout titles while removing callout formatting, turning it into normal blockquote.mermaid
which is natively supported, or others added by plugins. Also the MD-to-HTML module should convert them to <pre><code></code></pre>
html code for compatibility.$$expression$$
) into a code block(replace $$
with ```) might be needed.---
(I remember this issue happens in web page generation as well and following code would prevent rendering all content after ---
):
```mermaid
---
title: Node with text
---
flowchart LR
id1[This is the text in the box]
The first option you described is basically what I am doing right now but I am keeping the most common tags that are either almost always supported or don't add much clutter if they are not supported, or are particularly important for RSS feeds that do support it
- My request regarding option for creating "Page summery" mainly focuses on adding only the first paragraph(or option for first $n$ words). It helps keep the size of XML file down as some lite RSS readers or devices can't properly handle processing large files. In this case in the RSS Reader's interface, most notes will look like a plain-text excerpt of a blog post with a "continue reading" link. "Full Page" option can have full rendered html content with fixes mentioned above.
Thanks, there is absolutely a lot that could be done to improve the RSS generation. I am focusing on other features right now, but I am happy to accept pull requests and I might take another swing at it in the farther future. Thanks again!
Description In RSS file's description tags, anchors are included, however tags such as toggle lists, numbered lists and horizontal ruler are striped. Visit
lib/rss.xml
file and checkout content of<description>
tags or follow rss feed. You will see that certain elements such as list are missing and content of math blocks are completely removed.Describe the solution you'd like option for: