Add (initial): futurewalker code

This commit is contained in:
2023-11-20 00:15:18 +08:00
parent f8602cb456
commit 9ce3e5c82a
166 changed files with 15941 additions and 1072 deletions

View File

@@ -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