Browse Source

implement getPageLinkByPath method, fix readme

main
ghost 10 months ago
parent
commit
fbfaed02fc
  1. 32
      README.md
  2. 39
      src/Dokuwiki/Helper.php

32
README.md

@ -121,7 +121,7 @@ var_dump (
$filesystem->getList( $filesystem->getList(
'hello:world' 'hello:world'
) )
) );
``` ```
#### Filesystem::getTree #### Filesystem::getTree
@ -133,7 +133,7 @@ var_dump (
$filesystem->getTree( $filesystem->getTree(
'hello:world' 'hello:world'
) )
) );
``` ```
#### Filesystem::getPagePathsByPath #### Filesystem::getPagePathsByPath
@ -145,7 +145,7 @@ var_dump (
$filesystem->getPagePathsByPath( $filesystem->getPagePathsByPath(
// absolute path to target data directory (e.g. Filesystem::getDirectoryPathByUri) // absolute path to target data directory (e.g. Filesystem::getDirectoryPathByUri)
) )
) );
``` ```
#### Filesystem::getDirectoryPathByUri #### Filesystem::getDirectoryPathByUri
@ -158,7 +158,7 @@ var_dump (
$filesystem->getPagePathByUri( $filesystem->getPagePathByUri(
'hello:world' 'hello:world'
) )
) );
``` ```
#### Filesystem::getDirectoryUriByPath #### Filesystem::getDirectoryUriByPath
@ -171,7 +171,7 @@ var_dump (
$filesystem->getPageUriByPath( $filesystem->getPageUriByPath(
'/full/path/to/page.txt' '/full/path/to/page.txt'
) )
) );
``` ```
### Helper ### 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 Return simple array of children section links in Gemini format
@ -194,10 +194,10 @@ var_dump (
$helper->getChildrenSectionLinksByUri( $helper->getChildrenSectionLinksByUri(
'hello:world' 'hello:world'
) )
) );
``` ```
#### Filesystem::getChildrenPageLinksByUri #### Helper::getChildrenPageLinksByUri
Return simple array of children page links in Gemini format Return simple array of children page links in Gemini format
@ -206,5 +206,19 @@ var_dump (
$helper->getChildrenPageLinksByUri( $helper->getChildrenPageLinksByUri(
'hello:world' 'hello:world'
) )
) );
```
#### Helper::getPageLinkByPath
Return page link (that contain document name) in Gemini format
```
var_dump (
$helper->getPageLinkByPath(
$filesystem->getPagePathByUri(
'hello:world'
)
)
);
``` ```

39
src/Dokuwiki/Helper.php

@ -110,19 +110,10 @@ class Helper
{ {
foreach ((array) $this->_filesystem->getPagePathsByPath($directory) as $file) foreach ((array) $this->_filesystem->getPagePathsByPath($directory) as $file)
{ {
$pages[] = sprintf( if ($link = $this->getPageLinkByPath($file))
'=> /%s %s', {
$this->_filesystem->getPageUriByPath( $pages[] = $link;
$file }
),
$this->_reader->getH1(
$this->_reader->toGemini(
file_get_contents(
$file
)
)
)
);
} }
} }
@ -138,4 +129,26 @@ class Helper
return $pages; 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;
}
} }
Loading…
Cancel
Save