Skip to content

codingnooob/blogbranch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Blog Link Analyzer

πŸš€ Automated Release Pipeline Status: βœ… ACTIVE - v1.1.3 deployed successfully

A browser extension that detects blog posts and extracts linked blog content with AI-powered summarization capabilities.

🌟 Features

  • Blog Detection: Automatically identifies blog posts on any webpage
  • Link Extraction: Extracts all blog post links with titles and metadata
  • AI Summarization: Summarize current page and linked blogs using multiple AI providers
  • Nested Exploration: Multi-level link exploration with breadcrumb navigation
  • Smart Filtering: Filter by internal links, extracted content, and search functionality
  • Export Options: Export link data for further analysis
  • Cross-Browser: Works on Chrome (Manifest V3) and Firefox (Manifest V2)

🌐 Browser Compatibility

  • Chrome: Manifest V3 compatible
  • Firefox: Manifest V2 compatible
  • Edge: Chrome Web Store compatible
  • Safari: Not currently supported

πŸ“‹ Requirements

Operating System

  • Windows 10+ or macOS 10.15+ or Ubuntu 18.04+

Development Tools

  • Node.js: 16.0.0 or higher
  • npm: 8.0.0 or higher
  • Git: 2.0.0 or higher (for cloning)

Build Dependencies

  • webpack: 5.89.0+ (JavaScript bundling)
  • archiver: 6.0.1+ (ZIP file creation)
  • web-ext: 9.1.0+ (Firefox XPI generation)
  • @babel/core: 7.28.5+ (JavaScript transpilation)
  • @babel/preset-env: Latest (Browser compatibility)

πŸš€ Installation

1. Clone Repository

git clone https://github.com/codingnooob/blogbranch.git
cd blogbranch

2. Install Dependencies

npm install

3. Verify Installation

npm run --help
# Should show all available scripts

πŸ”§ Build Instructions

Development Build

npm run build:dev

Creates development bundles with source maps and watches for changes.

Production Build

npm run build

Creates optimized production bundles in dist/ directory.

Create Chrome Extension

npm run package:chrome

Creates blog-link-analyzer-v1.1.1.zip ready for Chrome Web Store upload.

Create Firefox Extension

npm run package:firefox

Creates blog-link-analyzer-firefox-v1.1.1.zip ready for Firefox Add-ons upload.

Create All Package Formats

npm run package:all-formats

Creates all package formats:

  • Chrome ZIP: blog-link-analyzer-v1.1.1.zip
  • Chrome CRX: blog-link-analyzer-v1.1.1.crx
  • Firefox ZIP: blog-link-analyzer-firefox-v1.1.1.zip
  • Firefox XPI: blog-link-analyzer-firefox-v1.1.1.xpi

πŸ“ Project Structure

blogbranch/
β”œβ”€β”€ πŸ“„ Core Extension Files
β”‚   β”œβ”€β”€ manifest.json              # Chrome manifest (V3)
β”‚   β”œβ”€β”€ manifest-firefox.json       # Firefox manifest (V2)
β”‚   β”œβ”€β”€ popup.html                 # Main popup interface
β”‚   β”œβ”€β”€ popup.js, popup.css        # Popup assets
β”‚   β”œβ”€β”€ ai-service.js              # AI provider abstraction
β”‚   β”œβ”€β”€ storage-manager.js           # Settings & caching
β”‚   └── content-fetcher.js          # Content extraction
β”œβ”€β”€ πŸ“ Essential Directories
β”‚   β”œβ”€β”€ background/                 # Service worker
β”‚   β”‚   └── service-worker.js
β”‚   β”œβ”€β”€ content/                    # Content scripts
β”‚   β”‚   β”œβ”€β”€ blog-detector.js      # Blog detection
β”‚   β”‚   β”œβ”€β”€ link-extractor.js     # Link extraction
β”‚   β”‚   └── content-styles.css     # Content styling
β”‚   β”œβ”€β”€ scripts/                    # Build & packaging scripts
β”‚   β”œβ”€β”€ utils/                      # Additional utilities
β”‚   └── icons/                      # Extension icons
β”œβ”€β”€ πŸ“¦ Build Artifacts
β”‚   β”œβ”€β”€ *.zip, *.crx, *.xpi       # Generated packages
β”‚   └── build-firefox/               # Temporary build dir
β”œβ”€β”€ πŸ”§ Configuration
β”‚   β”œβ”€β”€ package.json                # Project configuration
β”‚   β”œβ”€β”€ webpack.config.js            # Build configuration
β”‚   └── .gitignore                  # Git ignore rules
└── πŸ“š Documentation
    β”œβ”€β”€ README.md                   # This file
    β”œβ”€β”€ LICENSE, PRIVACY.md        # Legal documents
    └── *.md                        # Additional docs

πŸ€– AI Functionality

Supported AI Providers

  • OpenAI: GPT-4, GPT-3.5-turbo, GPT-3.5
  • Anthropic: Claude-3-sonnet, Claude-3-haiku, Claude-3-opus
  • Ollama: Local models (llama2, mistral, custom)
  • Custom: Any OpenAI-compatible API endpoint

AI Features

  • Current Page Summary: Summarize the blog post you're currently viewing
  • Link Summaries: Summarize individual blog posts from extracted links
  • Batch Processing: Summarize multiple links efficiently
  • Caching: Intelligent summary caching to reduce API calls
  • Connection Testing: Verify AI provider connectivity before use
  • Custom Models: Support for custom model configurations

πŸ› οΈ Development

Local Development

npm run dev

Starts development server with hot reloading and watches for file changes.

Testing

npm run test

Runs the test suite with Jest framework.

Linting

npm run lint

Checks code quality with ESLint.

Type Checking

npm run typecheck

Validates TypeScript types (if applicable).

Validation

npm run validate

Runs linting, type checking, and tests in sequence.

πŸ“¦ Build Process

Chrome Extension

  1. Bundle Creation: Webpack bundles popup.js and dependencies
  2. Manifest Processing: Uses manifest.json (Manifest V3)
  3. File Packaging: Includes all necessary files in ZIP
  4. Output: blog-link-analyzer-v1.1.1.zip

Firefox Extension

  1. Structure Build: Copies files to build-firefox/ directory
  2. Manifest Conversion: Converts to Manifest V2 format
  3. Utils Organization: Places AI files in utils/ directory
  4. File Packaging: Creates ZIP with Firefox-specific structure
  5. XPI Generation: Uses web-ext to create signed XPI
  6. Output: blog-link-analyzer-firefox-v1.1.1.xpi

Output Files

  • Chrome ZIP: blog-link-analyzer-v1.1.1.zip (~78KB)
  • Chrome CRX: blog-link-analyzer-v1.1.1.crx (~78KB)
  • Firefox ZIP: blog-link-analyzer-firefox-v1.1.1.zip (~78KB)
  • Firefox XPI: blog-link-analyzer-firefox-v1.1.1.xpi (~78KB)

πŸ”§ Configuration

Environment Variables

  • NODE_ENV: Set to 'production' for optimized builds
  • EXTENSION_VERSION: Automatically set from package.json

Customization

  • AI Providers: Configure in extension settings
  • API Keys: Set in extension popup settings
  • Model Selection: Choose specific models per provider
  • Caching: Enable/disable summary caching

πŸ› Troubleshooting

Common Build Issues

Permission Denied

# Fix: Ensure proper file permissions
chmod +x scripts/*.js

Missing Dependencies

# Fix: Clean install
rm -rf node_modules package-lock.json
npm install

Web-ext Not Found

# Fix: Install globally
npm install -g web-ext

Firefox-Specific Issues

Manifest Validation Errors

  • Content Scripts: Ensure all files exist in content/ directory
  • Icons: Verify all icon sizes are present in icons/ directory
  • Permissions: Check required permissions in manifest-firefox.json

XPI Generation Fails

  • Node Version: Ensure Node.js 16+ is installed
  • Build Directory: Clean build-firefox/ directory first
  • Web-ext Version: Update to latest web-ext version

Chrome-Specific Issues

Manifest V3 Errors

  • Service Worker: Ensure background/service-worker.js exists
  • Action Handlers: Verify proper action API usage
  • CSP Rules: Check content security policy compliance

🀝 Contributing

Development Workflow

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make changes and test thoroughly
  4. Run validation: npm run validate
  5. Commit changes: git commit -m "Add feature description"
  6. Push branch: git push origin feature-name
  7. Create pull request

Code Style

  • Indentation: 2 spaces
  • Quotes: Single quotes for strings
  • Trailing Commas: Required in objects/arrays
  • Line Length: Maximum 80 characters
  • ESLint: Follow project ESLint configuration

πŸ“„ License

MIT License - see LICENSE file for details.

πŸ”— Links

πŸš€ Current Status

  • βœ… Automated Build System: Webpack compilation with zero errors
  • βœ… Quality Assurance: ESLint, TypeScript, Jest testing, and security scanning
  • βœ… Automated Release: Semantic-release with changelog generation
  • βœ… Store Deployment: Chrome Web Store and Firefox Add-ons deployment
  • βœ… CI/CD Pipeline: GitHub Actions with comprehensive testing and deployment
  • πŸ”„ Store Secrets: Configured but need verification for production deployment

πŸ“ˆ Version History

  • v1.2.9: Store deployment infrastructure with automated CI/CD pipeline
  • v1.1.1: Version synchronization across all platforms, bug fixes
  • v1.1.0: AI summarization functionality, project structure optimization
  • v1.0.2: Initial release with basic blog detection
  • v1.0.1: Beta testing release

πŸ“ž Support

For issues, questions, or contributions:


Built with ❀️ for the blogging community

Test deployment fix

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •