From 6547ed0c04466ca0d1994c642e002f12ef0b0ace Mon Sep 17 00:00:00 2001
From: Yaman Qalieh <ybq987@gmail.com>
Date: Tue, 10 May 2022 03:37:53 -0400
Subject: [PATCH] [docs] Add documentation for html.php functions (#2714)

---
 docs/06_Helper_functions/index.md | 102 +++++++++++++++++++++++++++++-
 lib/html.php                      |   5 +-
 2 files changed, 103 insertions(+), 4 deletions(-)

diff --git a/docs/06_Helper_functions/index.md b/docs/06_Helper_functions/index.md
index da06d251..708155a8 100644
--- a/docs/06_Helper_functions/index.md
+++ b/docs/06_Helper_functions/index.md
@@ -89,4 +89,104 @@ $html = defaultLinkTo($html, $this->getURI()); // Using bridge URL
 
 // Output
 // <img src="https://www.github.com/rss-bridge/rss-bridge/blob/master/README.md">
-```
\ No newline at end of file
+```
+
+# backgroundToImg
+Replaces tags with styles of `backgroud-image` by `<img />` tags.
+
+```php
+backgroundToImg(mixed $htmlContent) : object
+```
+
+Returns a DOM object (even if provided a string).
+
+# extractFromDelimiters
+Extract the first part of a string matching the specified start and end delimiters.
+```php
+function extractFromDelimiters(string $string, string $start, string $end) : mixed
+```
+
+Returns the extracted string if delimiters were found and false otherwise.
+
+**Example**
+
+```php
+$string = '<div>Post author: John Doe</div>';
+$start = 'author: ';
+$end = '<';
+$extracted = extractFromDelimiters($string, $start, $end);
+
+// Output
+// 'John Doe'
+```
+
+# stripWithDelimiters
+Remove one or more part(s) of a string using a start and end delmiters.
+It is the inverse of `extractFromDelimiters`.
+
+```php
+function stripWithDelimiters(string $string, string $start, string $end) : string
+```
+
+Returns the cleaned string, even if no delimiters were found.
+
+**Example**
+
+```php
+$string = 'foo<script>superscript()</script>bar';
+$start = '<script>';
+$end = '</script>';
+$cleaned = stripWithDelimiters($string, $start, $end);
+
+// Output
+// 'foobar'
+```
+
+# stripRecursiveHTMLSection
+Remove HTML sections containing one or more sections using the same HTML tag.
+
+```php
+function stripRecursiveHTMLSection(string $string, string $tag_name, string $tag_start) : string
+```
+
+**Example**
+
+```php
+$string = 'foo<div class="ads"><div>ads</div>ads</div>bar';
+$tag_name = 'div';
+$tag_start = '<div class="ads">';
+$cleaned = stripRecursiveHTMLSection($string, $tag_name, $tag_start);
+
+// Output
+// 'foobar'
+```
+
+# markdownToHtml
+Converts markdown input to HTML using [Parsedown](https://parsedown.org/).
+
+```php
+function markdownToHtml(string $string) : string
+```
+
+**Example**
+```php
+$input = <<<EOD
+RELEASE-2.8
+ * Share QR code of a token
+ * Dark mode improvemnet
+ * Fix some layout issues
+ * Add shortcut to launch the app with screenshot mode on
+ * Translation improvements
+EOD;
+$html = markdownToHtml($input);
+
+// Output:
+// <p>RELEASE-2.8</p>
+// <ul>
+// <li>Share QR code of a token</li>
+// <li>Dark mode improvemnet</li>
+// <li>Fix some layout issues</li>
+// <li>Add shortcut to launch the app with screenshot mode on</li>
+// <li>Translation improvements</li>
+// </ul>
+```
diff --git a/lib/html.php b/lib/html.php
index 892ecb17..69bd1424 100644
--- a/lib/html.php
+++ b/lib/html.php
@@ -147,7 +147,7 @@ function extractFromDelimiters($string, $start, $end) {
  * Remove one or more part(s) of a string using a start and end delmiters
  *
  * @param string $string Input string, e.g. `foo<script>superscript()</script>bar`
- * @param string $start Start delimiter, e.g. `<script`
+ * @param string $start Start delimiter, e.g. `<script>`
  * @param string $end End delimiter, e.g. `</script>`
  * @return string Cleaned string, e.g. `foobar`
  */
@@ -197,8 +197,7 @@ function stripRecursiveHTMLSection($string, $tag_name, $tag_start){
 /**
  * Convert Markdown into HTML with Parsedown.
  *
- * @link https://daringfireball.net/projects/markdown/ Markdown
- * @link https://github.github.com/gfm/ GitHub Flavored Markdown Spec
+ * @link https://parsedown.org/ Parsedown
  *
  * @param string $string Input string in Markdown format
  * @return string output string in HTML format