1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-06-15 23:35:34 +00:00

[gemini] Use paragraph tags on gemtext empty lines

This patch makes paragraphs separated by an empty new line appear after
an empty new line when rendered in elinks.

Previously, for a gemtext source that looks like this:

    First para
    Second line

    Second para

It renders like this:

    First para
    Second line
    Second para

After this patch, they now render like this:

    First para
    Second line

    Second para

Unfortunately this also adds a </p> to the start of the HTML, as well as
a <p> at the end, both redundant; but since the HTML is parsed and
rendered later on, it does not seem to alter how the document would
look.

    </p><p> First para <br> Second line </p><p> Second para </p><p>

I could possibly add a `first_paragraph` variable and a `i !=
buffer->length` check to remove the first </p> and last <p> in the HTML,
making the HTML source "prettier". But I don't believe that would be too
beneficial, considering the performance tradeoff in executing these two
extra checks for each empty new line encountered.

For testing please see: gemini://hedy.tilde.cafe/tmp/paragraphs.gmi
This commit is contained in:
hedy 2023-09-28 14:19:41 +08:00
parent b0127bec3b
commit 7266ac4cbd
No known key found for this signature in database
GPG Key ID: B51B5A8D1B176372

View File

@ -152,6 +152,10 @@ render_gemini_document(struct cache_entry *cached, struct document *document,
if (buffer->source[i] == 13 || buffer->source[i] == 10) break;
}
if (begin == i) {
add_to_string(&html, "</p><p>");
}
if (begin < i) {
int len = i - begin;