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