You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
219 lines
3.7 KiB
219 lines
3.7 KiB
# gemini-php 0.1.0 |
|
|
|
Initial release dedicated to β-Doku project |
|
|
|
At this point, toolkit provides DokuWiki API for Gemini protocol |
|
|
|
## Example |
|
|
|
### Reader |
|
|
|
Read DokuWiki and convert to Gemini |
|
|
|
``` php |
|
$reader = new \Yggverse\Gemini\Dokuwiki\Reader( |
|
// optional regex rule set array |
|
); |
|
``` |
|
|
|
Get or change existing regex rule (or just skip by using build-in set) |
|
|
|
``` php |
|
echo $reader->setRule( |
|
'/subject/ui', |
|
'replacement' |
|
); |
|
``` |
|
|
|
Convert DokuWiki text to Gemini markup |
|
|
|
As wiki has lot of inline links, to make converted document well-readable, this method does not replace links with new line => macros, but uses inline context: Name ( URL ). |
|
|
|
This model useful with Reader::getLinks method, that for example appends all those related links to the document footer. |
|
|
|
If you don't like this implementation, feel free to change it by Reader::setRule method! |
|
|
|
``` php |
|
echo $reader->toGemini( |
|
file_get_contents( |
|
'/host/data/pages/index.txt' |
|
) |
|
); |
|
``` |
|
|
|
Get document title |
|
|
|
``` php |
|
$gemini = $reader->toGemini( |
|
file_get_contents( |
|
'/host/data/pages/index.txt' |
|
) |
|
); |
|
|
|
echo $reader->getH1( |
|
$gemini |
|
); |
|
``` |
|
|
|
Get document links |
|
|
|
``` php |
|
$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 |
|
|
|
``` php |
|
$filesystem = new \Yggverse\Gemini\Dokuwiki\Filesystem( |
|
'/host/data' // storage location |
|
); |
|
``` |
|
|
|
Return simple array of all files in storage |
|
|
|
``` php |
|
var_dump ( |
|
$filesystem->getList( |
|
'hello:world' |
|
) |
|
); |
|
``` |
|
|
|
Return all files under the storage folder in tree format |
|
|
|
``` php |
|
var_dump ( |
|
$filesystem->getTree( |
|
'hello:world' |
|
) |
|
); |
|
``` |
|
|
|
Return pages under the given data directory |
|
|
|
``` php |
|
var_dump ( |
|
$filesystem->getPagePathsByPath( |
|
// absolute path to target data directory (e.g. Filesystem::getDirectoryPathByUri) |
|
) |
|
); |
|
``` |
|
|
|
Return absolute path to stored page file |
|
|
|
``` php |
|
var_dump ( |
|
$filesystem->getPagePathByUri( |
|
'hello:world' |
|
) |
|
); |
|
``` |
|
|
|
Return page URI in dokuwiki:format |
|
|
|
``` php |
|
var_dump ( |
|
$filesystem->getPageUriByPath( |
|
'/full/path/to/page.txt' |
|
) |
|
); |
|
``` |
|
|
|
Return absolute path to stored media file |
|
|
|
``` php |
|
var_dump ( |
|
$filesystem->getMediaPathByUri( |
|
'hello:world' |
|
) |
|
); |
|
``` |
|
|
|
Return file MIME if path match storage item |
|
|
|
``` php |
|
var_dump ( |
|
$filesystem->getMimeByPath( |
|
'/full/path/to/page.txt' |
|
) |
|
); |
|
``` |
|
|
|
Return file content if path match storage item |
|
|
|
``` php |
|
var_dump ( |
|
$filesystem->getDataByPath( |
|
'/full/path/to/page.txt' |
|
) |
|
); |
|
``` |
|
|
|
Check path exist and match storage item |
|
|
|
``` php |
|
var_dump ( |
|
$filesystem->isPath( |
|
'/full/path/to/page.txt' |
|
) |
|
); |
|
``` |
|
|
|
### Helper |
|
|
|
Useful methods to minify controller codebase |
|
|
|
``` php |
|
$helper = new \Yggverse\Gemini\Dokuwiki\Helper( |
|
new \Yggverse\Gemini\Dokuwiki\Filesystem(), |
|
new \Yggverse\Gemini\Dokuwiki\Reader() |
|
); |
|
``` |
|
|
|
Return simple array of children section links in Gemini format |
|
|
|
``` php |
|
var_dump ( |
|
$helper->getChildrenSectionLinksByUri( |
|
'hello:world' |
|
) |
|
); |
|
``` |
|
|
|
Return simple array of children page links in Gemini format |
|
|
|
``` php |
|
var_dump ( |
|
$helper->getChildrenPageLinksByUri( |
|
'hello:world' |
|
) |
|
); |
|
``` |
|
|
|
Return page link (that contain document name) in Gemini format |
|
|
|
``` php |
|
var_dump ( |
|
$helper->getPageLinkByPath( |
|
$filesystem->getPagePathByUri( |
|
'hello:world' |
|
) |
|
) |
|
); |
|
``` |
|
|
|
## Links |
|
|
|
=> https://github.com/YGGverse/gemini-php/releases/tag/0.1.0 Download gemini-php 0.1.0 |
|
=> https://github.com/YGGverse/gemini-php#dokuwiki API documentation |
|
=> /gemini/bdoku/index.gmi β-Doku is DokuWiki Satellite for Gemini Protocol |