Add (initial): futurewalker code
This commit is contained in:
@@ -3,6 +3,24 @@
|
||||
use GrahamCampbell\Markdown\Facades\Markdown;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
if (! function_exists('is_valid_url')) {
|
||||
function is_valid_url($url)
|
||||
{
|
||||
// Check if the URL is a valid full URL
|
||||
if (filter_var($url, FILTER_VALIDATE_URL)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Check if it's a valid relative URL
|
||||
// Modify this regex as needed for your specific URL formats
|
||||
if (preg_match('/^\/[\w\/_.-]+(\.[\w]+)?$/i', $url)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (! function_exists('epoch_now_timestamp')) {
|
||||
function epoch_now_timestamp()
|
||||
{
|
||||
@@ -17,6 +35,14 @@ function read_duration($text)
|
||||
}
|
||||
}
|
||||
|
||||
if (! function_exists('remove_newline')) {
|
||||
|
||||
function remove_newline($string)
|
||||
{
|
||||
return preg_replace('/\s+/', ' ', trim($string));
|
||||
}
|
||||
}
|
||||
|
||||
if (! function_exists('plain_text')) {
|
||||
function plain_text($content)
|
||||
{
|
||||
@@ -24,6 +50,32 @@ function plain_text($content)
|
||||
}
|
||||
}
|
||||
|
||||
if (! function_exists('markdown_to_plaintext')) {
|
||||
function markdown_to_plaintext($markdown)
|
||||
{
|
||||
// Headers
|
||||
$markdown = preg_replace('/^#.*$/m', '', $markdown);
|
||||
// Links and images
|
||||
$markdown = preg_replace('/\[(.*?)\]\(.*?\)/', '$1', $markdown);
|
||||
// Bold and italic
|
||||
$markdown = str_replace(['**', '__', '*', '_'], '', $markdown);
|
||||
// Ordered and unordered lists
|
||||
$markdown = preg_replace('/^[-\*].*$/m', '', $markdown);
|
||||
// Horizontal line
|
||||
$markdown = str_replace(['---', '***', '- - -', '* * *'], '', $markdown);
|
||||
// Inline code and code blocks
|
||||
$markdown = preg_replace('/`.*?`/', '', $markdown);
|
||||
$markdown = preg_replace('/```[\s\S]*?```/', '', $markdown);
|
||||
// Blockquotes
|
||||
$markdown = preg_replace('/^>.*$/m', '', $markdown);
|
||||
|
||||
// Remove multiple spaces, leading and trailing spaces
|
||||
$plaintext = trim(preg_replace('/\s+/', ' ', $markdown));
|
||||
|
||||
return $plaintext;
|
||||
}
|
||||
}
|
||||
|
||||
if (! function_exists('markdown_min_read')) {
|
||||
function markdown_min_read($markdown)
|
||||
{
|
||||
@@ -48,12 +100,12 @@ function str_slug($string, $delimiter = '-')
|
||||
if (! function_exists('str_first_sentence')) {
|
||||
function str_first_sentence($str)
|
||||
{
|
||||
// Split the string at ., !, or ?
|
||||
$sentences = preg_split('/(\.|!|\?)(\s|$)/', $str, 2);
|
||||
// Split the string at ., !, or ? but include these characters in the match
|
||||
$sentences = preg_split('/([.!?])\s/', $str, 2, PREG_SPLIT_DELIM_CAPTURE);
|
||||
|
||||
// Return the first part of the array if available
|
||||
if (isset($sentences[0])) {
|
||||
return trim($sentences[0]);
|
||||
// Check if we have captured the first sentence and its punctuation
|
||||
if (isset($sentences[0]) && isset($sentences[1])) {
|
||||
return trim($sentences[0].$sentences[1]);
|
||||
}
|
||||
|
||||
// If no sentence ending found, return the whole string
|
||||
|
||||
Reference in New Issue
Block a user