implement getLinks method

This commit is contained in:
ghost 2024-02-01 18:18:22 +02:00
parent 35893d2db2
commit 590096afef
2 changed files with 45 additions and 4 deletions

View file

@ -75,15 +75,33 @@ echo $reader->toGemini(
Get document title
```
echo $reader->getH1(
$gemini = $reader->toGemini(
file_get_contents(
'/host/data/pages/index.txt'
)
);
echo $reader->getH1(
$gemini
);
```
#### Reader::getLinks
Get document links
```
$gemini = $reader->toGemini(
file_get_contents(
'/host/data/pages/index.txt'
)
);
echo $reader->getLinks(
$gemini
);
```
### Filesystem
Provides methods for simple and secure interaction with DokuWiki file storage

View file

@ -246,12 +246,12 @@ class Reader
);
}
public function getH1(string $data): ?string
public function getH1(string $gemini, ?string $regex = '/^[\s]?#([^#]+)/'): ?string
{
foreach ((array) explode(PHP_EOL, $data) as $line)
foreach ((array) explode(PHP_EOL, $gemini) as $line)
{
preg_match_all(
'/^[\s]?#([^#]+)/',
$regex,
$line,
$matches
);
@ -266,4 +266,27 @@ class Reader
}
}
}
public function getLinks(string $gemini, ?string $regex = '/[A-z]+:\/\/\S+/'): array
{
$links = [];
preg_match_all(
$regex,
$gemini,
$matches
);
if (!empty($matches[0]))
{
foreach ((array) $matches[0] as $link)
{
$links[] = trim(
$link
);
}
}
return $links;
}
}