diff --git a/README.md b/README.md index 2dd961a..2082583 100644 --- a/README.md +++ b/README.md @@ -119,10 +119,12 @@ Basic methods to work with `text/gemini` documents ``` php $body = new \Yggverse\Gemini\Gemtext\Body( - $response->getBody() // gemtext body from client response or .gmi file + $response->getBody() // gemtext body from client response or .gmi file content ); ``` +#### Body::getLines +#### Body::getLine #### Body::getH1 #### Body::getH2 #### Body::getH3 @@ -130,7 +132,7 @@ $body = new \Yggverse\Gemini\Gemtext\Body( ``` php var_dump( - $body->getLinks() // returns array of inline links + $body->getLinks() // returns array of links (with line number in key) ); ``` @@ -140,7 +142,7 @@ Find context links by protocol as argument, `gemini` by default ``` php var_dump( - $body->findLinks('http') // returns array of http links found + $body->findLinks('http') // returns array of http links only (with line number in key) ); ``` diff --git a/src/Gemtext/Body.php b/src/Gemtext/Body.php index fabac2d..0ce16d0 100644 --- a/src/Gemtext/Body.php +++ b/src/Gemtext/Body.php @@ -10,12 +10,22 @@ class Body public function __construct(string $gemtext) { - foreach ((array) explode(PHP_EOL, $gemtext) as $line) + foreach ((array) explode(PHP_EOL, $gemtext) as $index => $line) { - $this->_lines[] = $line; + $this->_lines[$index] = $line; } } + public function getLine(int $index): ?int + { + return isset($this->_lines[$index]) ? $this->_lines[$index] : null; + } + + public function getLines(): array + { + return $this->_lines; + } + public function getH1(): array { $matches = [];