/bear-sync

Access your Bear notes in Laravel

Primary LanguagePHP

Bear-Sync

This package provides an Eloquent model called BearNote that can access your local Bear notes without any configuration at all.

Install

composer require calebporzio/bear-sync

Use

Basic Usage

$note = BearSync\BearNote::whereTitle('Some Note Title')->first();

App\Post::create([
    'title' => $note->title,
    'content' => $note->content,
])

Full API

// Search all your Bear notes.
$notes = BearSync\BearNote::searchByTitle('Some Note Title');

// Find a specific note.
$note = BearSync\BearNote::whereTitle('Some Note Title')->first();

// Get tags by note
$tags = $note->tags

// Find a Bear tag named "blog"
$tag = BearSync\BearTag::whereTitle('blog')->first();

// Get Bear notes by tag
$notes = $tag->notes;

// Access the note's contents.
$note->id; // Bear's note id.
$note->title;
$note->content;
$note->checksum; // A checksum of the note's content, so you can detect updates.

// Fetch it's content and replace/store images.
$note->getContentAndStoreImages(function ($originalPath, $newFileName) {
    $publicFileName = "/images/{$newFileName}";

    // Copy the image and store it locally (presumably in a public directory).
    \File::copy($originalPath, public_path($publicFileName));

    // Return the file path to be referenced in the Bear note's markdown.
    // ![]($publicFileName)
    return $publicFileName;
});