A practical Python toolkit for bloggers, content creators, and SEO workflows.
Blogger Toolkit focuses on simple, transparent utilities that help analyze, structure, and improve written content. It is designed for people who want lightweight tools they can understand, extend, and integrate into real editorial workflows.
Many blogging tools focus on interfaces, dashboards, and automation layers. This project focuses on the mechanics underneath the workflow.
It helps answer practical questions such as:
- How often does a target keyword or phrase appear in a draft?
- Are sentences becoming too long or difficult to scan?
- What repeated terms might be useful for internal links or metadata?
- What quick editorial signals can be generated before publishing?
The goal is not to automate writing. The goal is to support better editorial decisions with clear, inspectable logic.
- Keyword density analysis with support for single-word and multi-word phrases.
- Basic keyword extraction from normalized text.
- N-gram analysis for repeated phrase detection.
- Headings extraction for quick structure review.
- Basic slug generation for blog posts.
- Readability scoring using Flesch Reading Ease and Flesch-Kincaid Grade Level.
- Sentence analysis with averages and longest-sentence reporting.
- Passive voice estimation using lightweight heuristics.
- Intro paragraph extraction for summaries and previews.
- Internal link suggestions based on keyword-to-URL mappings.
- Metadata generation for titles and descriptions.
- Draft summary generation for quick editorial review.
- Outline extraction from Markdown headings.
- Text cleaning and normalization helpers.
- File loading helpers for plain text and Markdown content.
Clone the repository:
git clone https://github.com/brandonhimpfen/blogger-toolkit-python.git
cd blogger-toolkit-pythonInstall dependencies:
pip install -r requirements.txtFor development:
pip install -e .[dev]from blogger_toolkit.seo.keyword_density import calculate_keyword_density
text = "SEO content strategy helps bloggers build better content systems."
keywords = ["seo", "content strategy", "bloggers"]
result = calculate_keyword_density(text, keywords)
for keyword, data in result.items():
print(keyword, data["count"], f'{data["density"]:.2f}%')from blogger_toolkit.automation.metadata_generator import generate_metadata
text = """Building a lightweight content workflow starts with simple, repeatable steps.
This article explains how to reduce friction without losing editorial quality."""
metadata = generate_metadata(text, max_title_words=8)
print(metadata)from blogger_toolkit.automation.draft_summary import generate_draft_summary
summary = generate_draft_summary(text)
print(summary)You can run several tools directly from the command line.
python -m cli.main keyword-density --file examples/sample_blog_post.txt --keywords seo "content strategy" bloggers
python -m cli.main readability --file examples/sample_blog_post.txt
python -m cli.main metadata --file examples/sample_blog_post.txt
python -m cli.main slug --text "How to Build a Better Blogging Workflow"
python -m cli.main headings --file examples/sample_markdown_post.md
python -m cli.main summary --file examples/sample_blog_post.txtseo: count=3 density=1.61%
content strategy: count=2 density=1.08%
bloggers: count=1 density=0.54%
blogger-toolkit-python/
├── blogger_toolkit/
│ ├── automation/
│ ├── content/
│ ├── seo/
│ └── utils/
├── cli/
├── docs/
├── examples/
├── tests/
└── .github/workflows/
This project follows a few simple principles.
- Keep tools lightweight and understandable.
- Avoid black-box scoring systems.
- Prefer useful signals over inflated claims.
- Treat outputs as editorial aids, not absolute truths.
- Keep dependencies minimal where possible.
Keyword density is not a ranking factor on its own. Readability scores are approximations. Passive voice detection is heuristic. Automated suggestions should always be reviewed manually before publishing.
This toolkit supports editorial decision-making. It does not replace it.
Planned areas for future development include:
- Topic clustering utilities.
- Content gap analysis.
- Markdown and HTML processing helpers.
- More robust metadata suggestions.
- Optional notebook examples for content audits.
Contributions are welcome.
When adding a new tool:
- Keep dependencies minimal
- Document the use case clearly
- Include example usage
- Add tests where practical
- Avoid unnecessary complexity
See CONTRIBUTING.md for more detail.
This project is licensed under the MIT License. See LICENSE.