From fbfaed02fc63260df413033e97a43f306c71d0e1 Mon Sep 17 00:00:00 2001 From: ghost Date: Fri, 2 Feb 2024 22:27:52 +0200 Subject: [PATCH] implement getPageLinkByPath method, fix readme --- README.md | 32 +++++++++++++++++++++++--------- src/Dokuwiki/Helper.php | 39 ++++++++++++++++++++++++++------------- 2 files changed, 49 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 49550f4..39a4a2a 100644 --- a/README.md +++ b/README.md @@ -121,7 +121,7 @@ var_dump ( $filesystem->getList( 'hello:world' ) -) +); ``` #### Filesystem::getTree @@ -133,7 +133,7 @@ var_dump ( $filesystem->getTree( 'hello:world' ) -) +); ``` #### Filesystem::getPagePathsByPath @@ -145,7 +145,7 @@ var_dump ( $filesystem->getPagePathsByPath( // absolute path to target data directory (e.g. Filesystem::getDirectoryPathByUri) ) -) +); ``` #### Filesystem::getDirectoryPathByUri @@ -158,7 +158,7 @@ var_dump ( $filesystem->getPagePathByUri( 'hello:world' ) -) +); ``` #### Filesystem::getDirectoryUriByPath @@ -171,7 +171,7 @@ var_dump ( $filesystem->getPageUriByPath( '/full/path/to/page.txt' ) -) +); ``` ### Helper @@ -185,7 +185,7 @@ $helper = new \Yggverse\Gemini\Dokuwiki\Helper( ); ``` -#### Filesystem::getChildrenSectionLinksByUri +#### Helper::getChildrenSectionLinksByUri Return simple array of children section links in Gemini format @@ -194,10 +194,10 @@ var_dump ( $helper->getChildrenSectionLinksByUri( 'hello:world' ) -) +); ``` -#### Filesystem::getChildrenPageLinksByUri +#### Helper::getChildrenPageLinksByUri Return simple array of children page links in Gemini format @@ -206,5 +206,19 @@ var_dump ( $helper->getChildrenPageLinksByUri( 'hello:world' ) -) +); +``` + +#### Helper::getPageLinkByPath + +Return page link (that contain document name) in Gemini format + +``` +var_dump ( + $helper->getPageLinkByPath( + $filesystem->getPagePathByUri( + 'hello:world' + ) + ) +); ``` \ No newline at end of file diff --git a/src/Dokuwiki/Helper.php b/src/Dokuwiki/Helper.php index 964fee6..69c2a4b 100644 --- a/src/Dokuwiki/Helper.php +++ b/src/Dokuwiki/Helper.php @@ -110,19 +110,10 @@ class Helper { foreach ((array) $this->_filesystem->getPagePathsByPath($directory) as $file) { - $pages[] = sprintf( - '=> /%s %s', - $this->_filesystem->getPageUriByPath( - $file - ), - $this->_reader->getH1( - $this->_reader->toGemini( - file_get_contents( - $file - ) - ) - ) - ); + if ($link = $this->getPageLinkByPath($file)) + { + $pages[] = $link; + } } } @@ -138,4 +129,26 @@ class Helper return $pages; } + + public function getPageLinkByPath(string $path): ?string + { + if (in_array($path, $this->_filesystem->getList()) && is_file($path) && is_readable($path)) + { + return sprintf( + '=> /%s %s', + $this->_filesystem->getPageUriByPath( + $path + ), + $this->_reader->getH1( + $this->_reader->toGemini( + file_get_contents( + $path + ) + ) + ) + ); + } + + return null; + } } \ No newline at end of file