Yet Another Memos Sync

by exusiaiwei
5
4
3
2
1
Score: 30/100

Description

Enhanced Memos sync plugin

Reviews

No reviews yet.

Stats

3
stars
816
downloads
2
forks
8
days
9
days
9
days
3
total PRs
0
open PRs
0
closed PRs
3
merged PRs
2
total issues
2
open issues
0
closed issues
57
commits

Latest Version

9 days ago

Changelog

🎉 What's New in 1.7.0

Changed

  • Requires Obsidian 1.13.0+: minAppVersion raised to 1.13.0 to adopt the declarative settings API (getSettingDefinitions()). Settings now appear in Obsidian's global settings search.
  • Settings UI migrated to the declarative API: the settings tab is now defined declaratively (requires 1.13.0). Profile cards are replaced by a compact list — click a profile to edit it in a modal, use the delete button or Delete key to remove one, and the "+" button to add a new account.
  • Destructive button styling: profile-removal confirmation and delete buttons now use setDestructive() instead of the deprecated setWarning().

Fixed

  • Community plugin scan findings: removed the forbidden eslint-disable for the sentence-case rule (copy moved into translations), replaced createEl('div') with createDiv, and upgraded the obsidian type definitions to 1.13.1 so the moment helper is fully typed (clearing the no-unsafe-* warnings).
  • Hardcoded strings: the "Skip Images" setting and the List Callouts hint were hardcoded in Chinese; both are now localized.

🎉 1.7.0 版本新功能

变更内容

  • 要求 Obsidian 1.13.0+: minAppVersion 提升到 1.13.0,以采用新的声明式设置 API(getSettingDefinitions())。设置项现在会出现在 Obsidian 的全局设置搜索中。
  • 设置界面迁移到声明式 API: 设置页改为声明式定义(需 1.13.0)。账户卡片改为紧凑列表 — 点击账户在弹窗中编辑,用删除按钮或 Delete 键删除,用 "+" 按钮添加新账户。
  • 破坏性按钮样式: 删除账户的确认与删除按钮改用 setDestructive() 样式,替换已弃用的 setWarning()

修复问题

  • 社区扫描发现项: 移除被禁止的 sentence-case 规则 eslint-disable(文案移入翻译文件);createEl('div') 改为 createDiv;升级 obsidian 类型到 1.13.1,moment 助手获得完整类型(清除 no-unsafe-* 警告)。
  • 硬编码字符串: "跳过图片" 设置和 List Callouts 提示原本硬编码为中文,现已本地化。

Installation / 安装方法:

  1. Download the plugin files below / 下载下方的插件文件
  2. Extract to your vault's plugins folder: <vault>/.obsidian/plugins/yet-another-memos-sync/ / 解压到你的库的插件文件夹
  3. Enable the plugin in Obsidian settings / 在 Obsidian 设置中启用插件

Requirements / 系统要求:

  • Obsidian v1.0.0 or higher / Obsidian v1.0.0 或更高版本
  • Memos server (supports v0.25.1 and legacy versions) / Memos 服务器(支持 v0.25.1 及历史版本)

Links / 相关链接:

README file from

Github

🗂️ Yet Another Memos Sync

An enhanced Obsidian plugin for synchronizing Memos with daily notes, featuring emoji timeline and intelligent formatting. 📝

English · 简体中文 · GitHub Repository · Community Plugin

Table of Contents

Background

Yet Another Memos Sync is an enhanced Obsidian plugin that seamlessly synchronizes your Memos with daily notes. Inspired by the original obsidian-memos-sync plugin, this version offers advanced features including emoji timeline, intelligent formatting, and robust synchronization strategies.

Unlike basic sync tools, it provides visual enhancements, smart synchronization, and supports both modern and legacy Memos API versions.

Features

🔄 Smart Synchronization

  • Incremental sync - Only updates changed content for better performance
  • Time-limited sync - Configurable day limits (default: 30 days) to control sync scope
  • Deletion detection - Automatically removes deleted memos from your notes
  • Auto-sync options - Startup and periodic synchronization capabilities

🎨 Visual Enhancements

  • List Callout Style - Enhanced Markdown lists with emoji timeline (recommended)
  • Callout Format - Rich card-style presentation for detailed viewing
  • Standard Format - Clean Markdown lists with emoji enhancements
  • Multi-line support - Proper indentation handling for complex memo structures

🌍 Internationalization

  • Full i18n support - English, Chinese, and extensible language system
  • Auto-detection - Automatically detects your Obsidian language preference
  • Consistent UI - Translated settings interface and user messages

⚙️ Flexible Configuration

  • API version support - Compatible with Memos v0.25.1 and legacy versions
  • Custom headers - Configurable memo section headers for organization
  • Attachment handling - Download and organize memo attachments automatically
  • Daily note integration - Seamless integration with Daily Notes plugin

Installation

  1. Open Obsidian Settings → Community plugins
  2. Disable Safe mode if not already disabled
  3. Click "Browse" and search for "Yet Another Memos Sync"
  4. Install and enable the plugin

Manual Installation

  1. Download the latest release from GitHub Releases
  2. Extract the files to <vault>/.obsidian/plugins/yet-another-memos-sync/
  3. Reload Obsidian and enable the plugin in Settings → Community Plugins

Build from Source

# Clone the repository
git clone https://github.com/exusiaiwei/yet-another-memos-sync.git
cd yet-another-memos-sync

# Install dependencies
npm install

# Build the plugin
npm run build

Configuration

Basic Setup

  1. Open SettingsYet Another Memos Sync
  2. Configure your Memos server:
    • API URL: Your Memos server address (e.g., https://your-memos.com)
    • API Token: Generate from your Memos settings page
    • API Version: Select your server version (v0.25.1 recommended)

Visual Style Selection

Choose one format that best suits your workflow:

  • 🎨 List Callout Style: Enhanced lists with emoji timeline (recommended with List Callouts plugin)
  • 📋 Callout Format: Rich card-style presentation for detailed viewing
  • 📝 Standard Format: Simple emoji-enhanced Markdown lists

Advanced Configuration

  • Sync Days Limit: Control sync scope (0 = unlimited, default: 30 days)
  • Daily Note Headers: Customize memo section titles
  • Auto-create Notes: Automatically create missing daily note files
  • Attachment Folder: Configure memo attachment storage location
  • Startup Sync: Automatically sync when Obsidian starts
  • Startup Delay: Wait time before initial sync (default: 5 seconds)
  • Skip if Synced Today: Avoid duplicate syncs on the same day
  • Periodic Sync: Regular interval syncing (0 = disabled)

Usage

Basic Operations

  • 🔄 Manual Sync: Click the sync button in the ribbon or use Command Palette (Ctrl/Cmd + P → "Sync Memos")
  • ⚡ Force Sync: Re-sync all memos, ignoring incremental sync cache
  • 🤖 Auto Sync: Automatically syncs on Obsidian startup and at periodic intervals (if enabled)

Command Palette Commands

  • Yet Another Memos Sync: Sync Memos - Standard incremental sync
  • Yet Another Memos Sync: Force Sync All Memos - Complete re-sync
  • Yet Another Memos Sync: Open Settings - Quick access to plugin settings

Visual Formats

The List Callout style creates beautiful, themed memo lists that integrate seamlessly with the List Callouts plugin:

- 🌅 07:30 Morning coffee and planning the day
  - Reviewed project timeline
  - Prepared meeting agenda
- ☀️ 14:20 Productive afternoon work session
- 🌆 18:30 Evening wrap-up and notes review
- 🌙 22:15 Late night reading session

When paired with List Callouts plugin, each time period gets beautiful colored themes

📋 Time Period Mapping

The plugin uses a simplified 4-period emoji system for intuitive time organization:

Period Emoji Time Range List Callout Theme Description
Early Morning 🌅 05:00-12:00 [!info] Blue Peaceful dawn hours
Noon ☀️ 12:00-17:00 [!tip] Green Energetic daytime
Evening 🌆 17:00-21:00 [!warning] Orange Warm sunset
Night 🌙 21:00-05:00 [!note] Purple Quiet nighttime

🔄 Other Format Examples

Callout Format
> [!memo] 🌅 07:30 Morning Memo
> Planning the day with coffee ☕
> - Review project timeline
> - Prepare meeting agenda
Standard Format
- 🌅 07:30 Morning coffee and planning
- ☀️ 14:20 Productive work session
- 🌆 18:30 Evening wrap-up

Development

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn

Development Setup

# Clone the repository
git clone https://github.com/exusiaiwei/yet-another-memos-sync.git
cd yet-another-memos-sync

# Install dependencies
npm install

# Development mode with auto-rebuild
npm run dev

# Build for production
npm run build

# Run tests
npm test

Supported Memos Versions

  • v0.25.1 (Latest, recommended)
  • v0.24.x (Fully supported)
  • v0.23.x (Fully supported)
  • v0.22.x (Fully supported)
  • v0.21.x (Fully supported)
  • Legacy versions (v0.20 and below)

Contributing

We welcome contributions from the community! Here's how you can help:

Ways to Contribute

  • 🐛 Report bugs via GitHub Issues
  • 💡 Suggest features through GitHub Discussions
  • 🔀 Submit pull requests for improvements
  • 📖 Improve documentation and translations
  • 🌟 Star the repository to show your support

Development Guidelines

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments


💝 Support

If this plugin helps you, consider:

  • Star this repository
  • 🐛 Report issues to help improve
  • 🔀 Contribute code or documentation
  • 💬 Share feedback and suggestions

Made with ❤️ for the Obsidian community