bfloydd_streams/README.md
2025-10-10 22:26:36 -06:00

101 lines
No EOL
3.8 KiB
Markdown

# Streams
*Create and manage multiple daily note streams*
- > Replaces the Daily Note core plugin.
- > Inspired by the Periodic Notes and Calendar plugins.
![assets/logo-transparent](assets/logo-transparent-500.png)
## Support
If you find this plugin helpful, please consider supporting its development:
[![GitHub Sponsors](https://img.shields.io/badge/GitHub%20Sponsors-❤️-red?style=for-the-badge&logo=github)](https://github.com/sponsors/bfloydd)
[![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-☕-yellow?style=for-the-badge&logo=buymeacoffee&logoColor=black)](https://buymeacoffee.com/floydpro)
[![Venmo](https://img.shields.io/badge/Donate%20via%20Venmo-3D95CE?style=for-the-badge&logo=venmo&logoColor=white)](https://venmo.com/floydpro?txn=pay)
[![PayPal](https://img.shields.io/badge/Donate%20via%20PayPal-00457C?style=for-the-badge&logo=paypal&logoColor=white)](https://paypal.me/bfloydd)
**Donation Options:**
- [GitHub Sponsors](https://github.com/sponsors/bfloydd) - Monthly sponsorship ❤️
- [Buy Me a Coffee](https://buymeacoffee.com/floydpro) - Support with a coffee ☕
- [Venmo](https://venmo.com/floydpro?txn=pay) - Quick mobile payment
- [PayPal](https://paypal.me/bfloydd) - Direct PayPal donation
Your support helps maintain and improve this plugin! 🙏
## Other Plugins
Check out my other Obsidian plugins:
- **[Coalesce](https://github.com/bfloydd/coalesce)**
*Follow me on [GitHub](https://github.com/bfloydd) for updates.*
## Features
- Multiple daily note streams.
- Full calendar for each stream.
- New view for missing notes.
- **Public API** for other plugins to access stream data.
## Benefits
- Divide up messy Daily Notes.
- Create a private stream for work.
- Encrypt a single stream for added data security.
- Quickly find and add notes.
## Getting started
- Add new stream in settings, "Daily Notes", pointing to where you store your daily notes.
- Then create another stream for Work of School.
- Use the navigation bar to select any stream.
## Streams Widget
![Streams Widget](assets/new-streams-with-calendar.png)
## Configure Streams
![Configure Streams](assets/new-streams-options.png)
## Move content between streams
![Move Content](assets/new-streams-move.png)
## Public API for Other Plugins
The Streams plugin provides a public API that other Obsidian plugins can use to access stream data and functionality.
### Quick Start
```typescript
// Get the Streams plugin instance
const streamsPlugin = this.app.plugins.getPlugin('streams') as StreamsPlugin;
if (streamsPlugin) {
// Get all streams
const streams = streamsPlugin.getStreams();
// Get active stream
const activeStream = streamsPlugin.getActiveStream();
// Get stream for current file
const activeFile = this.app.workspace.getActiveFile();
if (activeFile) {
const stream = streamsPlugin.getStreamForFile(activeFile.path);
}
}
```
### Available Methods
- `getStreams()` - Get all configured streams
- `getStream(streamId)` - Get a specific stream by ID
- `getActiveStream()` - Get the currently active stream
- `getStreamsByFolder(folderPath)` - Get streams matching a folder path
- `getStreamForFile(filePath)` - Get the stream containing a file
- `getStreamInfo(streamId)` - Get basic stream information for a specific stream
- `hasStream(streamId)` - Check if a stream exists
- `getStreamCount()` - Get total number of streams
- `getVersion()` - Get plugin version info
- `getStreamsByIcon(icon)` - Get streams with a specific icon
- `getRibbonStreams()` - Get streams enabled for ribbon display
- `getCommandStreams()` - Get streams with commands enabled
- `hasStreams()` - Check if any streams are configured
- `updateStreamBarFromFile(filePath)` - Update the stream bar to match an opened file
For detailed API documentation, see [src/api/README.md](src/api/README.md).