Skip to content

Object-oriented PHP 8 library for Gemini / Gemtext operations

License

Notifications You must be signed in to change notification settings

YGGverse/gemtext-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gemtext-php

Lightweight, object-oriented PHP 8 library for Gemtext markup

See also

  • gemini-php - PHP 8 Client library for Gemini protocol connections

Integrations

  • gemini-dl - CLI batch downloader for Gemini protocol
  • Yoda - PHP-GTK Browser for Gemini protocol

Install

composer require yggverse/gemtext

Example

Parse existing document

// Load document from file
$document = new \Yggverse\Gemtext\Document(
    file_get_contents(
        'tests/data/document.gmi'
    )
);

// Get links
foreach ($document->getLinks() as $link)
{
    print(
        $link->toString()
    );
}

Create new document

// Init new document
$document = new \Yggverse\Gemtext\Document;

// Append header
$document->append(
    new \Yggverse\Gemtext\Entity\Header(
        'Hello world'
    )
);

// Init new link
$link = new \Yggverse\Gemtext\Entity\Link(
    'gemini://geminiprotocol.net',
    'The Gemini Program',
    '1965-01-19'
);

// Change link date
$link->setDate(
    date('Y-m-d')
);

// Append link
$document->append(
    $link
);

// Get gemtext
print(
    $document->toString()
);

// Save to file
file_put_contents(
    '/path/to/file.gmi',
    $document->toString()
)