Coding
PromptBeginner5 minmarkdown
Markdown Converter
Agent skill for markdown-converter
7
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Sign in to like and favorite skills
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Bookmark Organizer is a Python tool for reorganizing and categorizing Chrome bookmarks. It can parse exported bookmark HTML files, check URL accessibility, use AI for intelligent categorization, and generate a new categorized bookmark file.
# Install in development mode pip install -e ".[dev]" # Or using uv uv sync --dev
# Parse and organize bookmarks python -m bookmark_organizer --input bookmarks.html --output organized.html # Enable AI classification (requires .env configuration) cp .env.example .env # Edit .env with your OPENAI_API_KEY # Use caching for faster re-runs python -m bookmark_organizer --cache bookmarks_cache.json
# Run all tests python -m pytest tests/ # Run specific test file python -m pytest tests/test_models.py # Run with coverage python -m pytest tests/ --cov=src/bookmark_organizer --cov-report=html # Run tests in verbose mode python -m pytest tests/ -v # Run specific test python -m pytest tests/test_models.py::TestBookmarkItem::test_init_basic
# Lint and format code ruff check . ruff format . # Type checking mypy src/ # All quality checks ruff check . && ruff format . && mypy src/
# Copy environment variables template cp .env.example .env # Check current configuration python examples/env_usage_example.py
# Show help python -m bookmark_organizer --help # Check version python -m bookmark_organizer --version # Run with different configurations python -m bookmark_organizer --verbose python -m bookmark_organizer --max-workers 20 python -m bookmark_organizer --request-timeout 15
The project follows a pipeline architecture with clearly separated responsibilities:
src/bookmark_organizer/parser.py)src/bookmark_organizer/checker.py)src/bookmark_organizer/classifier.py)src/bookmark_organizer/generator.py)src/bookmark_organizer/models.py)src/bookmark_organizer/config.py).env files using python-dotenvBOOKMARK_ORGANIZER_* prefixsrc/bookmark_organizer/cli.py)HTML Input → Parser → [Bookmarks] → Checker → [Bookmarks + Status] → Classifier → [Bookmarks + Category] → Generator → HTML Output ↓ [Cache] ←───────────────────────────────────────────────┘
OPENAI_API_KEY: Required for AI classificationOPENAI_BASE_URL: API base URL (default: https://api.deepseek.com/v1)AI_MODEL: Model name (default: deepseek-chat)BOOKMARK_ORGANIZER_MAX_WORKERS: Concurrent threads (default: 10)BOOKMARK_ORGANIZER_REQUEST_TIMEOUT: HTTP timeout in seconds (default: 10)BOOKMARK_ORGANIZER_BATCH_SIZE: AI batch size (default: 20)See
.env.example for complete configuration template.
list, dict instead of List, Dict)def test_new_feature(self) -> None: """Test description""" # Arrange pass # Act pass # Assert assert True
# In config.py class AppConfig(BaseModel): new_option: int = Field(default=10, description="Description")
src/bookmark_organizer/tests/test_<module>.py__init__.pypip install -e .conftest.py for path configurationpython -m pytest --cache-clearOPENAI_API_KEY is validOPENAI_BASE_URL matches your API provider.env file (already in .gitignore)