| Name | docx-comments-to-text JSON | 
            
| Version | 
                  0.2.2
                   
                  JSON | 
            
 | download  | 
            
| home_page | None  | 
            
| Summary | Extract reviewer comments from .docx files and insert them inline with the text | 
            | upload_time | 2025-08-09 23:31:18 | 
            | maintainer | None | 
            
            | docs_url | None | 
            | author | None | 
            
            | requires_python | >=3.13 | 
            
            
            | license | None | 
            | keywords | 
                
                    docx
                
                     comments
                
                     document
                
                     text
                
                     review
                 | 
            | VCS | 
                
                     | 
                
            
            | bugtrack_url | 
                
                 | 
             
            
            | requirements | 
                
                  No requirements were recorded.
                
             | 
            
| Travis-CI | 
                
                   No Travis.
                
             | 
            | coveralls test coverage | 
                
                   No coveralls.
                
             | 
        
        
            
            # docx-comments-to-text
Extract reviewer comments from `.docx` files and insert them inline with the text they reference, creating a plain text output that keeps feedback in context.
## Installation
### From PyPI (recommended)
```bash
pip install docx-comments-to-text
```
### From source
```bash
# Clone the repository
git clone https://github.com/platelminto/docx-comments-to-text
cd docx-comments-to-text
# Install in development mode
uv sync --dev
# or: pip install -e .
```
## Usage
### Command Line Interface
```bash
# Basic usage - output to stdout
docx-comments-to-text document.docx
# Save to file
docx-comments-to-text document.docx -o output.txt
# Control author display
docx-comments-to-text document.docx --authors never    # Hide authors
docx-comments-to-text document.docx --authors always   # Always show authors
docx-comments-to-text document.docx --authors auto     # Show authors when multiple exist (default)
# Control comment placement
docx-comments-to-text document.docx --placement inline         # Inline with text (default)
docx-comments-to-text document.docx --placement end-paragraph  # At end of each paragraph
docx-comments-to-text document.docx --placement comments-only  # Comments only with context
```
### Development Usage
If working from source:
```bash
# Run with uv
uv run docx-comments-to-text document.docx
# Or use module syntax
uv run python -m docx_comments_to_text.cli document.docx
```
### Example Output
#### Inline placement (default)
```
Original text with [reviewer feedback] [COMMENT: "This needs clarification"] continues here.
More content [needs examples] [COMMENT John: "Consider adding examples"] and final text.
```
#### End-paragraph placement
```
Original text with reviewer feedback[1] continues here.
More content needs examples[2] and final text.
Comments:
1. This needs clarification
2. John: Consider adding examples
```
#### Comments-only placement
```
"reviewer feedback": This needs clarification
"needs examples": John: Consider adding examples
```
## Features
- Accurate comment positioning and text preservation
- Handles overlapping comments and multiple comment types  
- Configurable author display
- Multiple comment placement styles (inline, end-of-paragraph, comments-only)
## Technical Details
### DOCX Structure
- DOCX files are ZIP archives containing XML files
- `word/document.xml` - main document content
- `word/comments.xml` - comment definitions
- Comment ranges marked with `<w:commentRangeStart>` and `<w:commentRangeEnd>`
### Comment Insertion Strategy
1. Parse document XML to extract text and track character positions
2. Map comment ranges to their start/end positions in the text
3. Sort comments by position for safe insertion (reverse order)
4. Wrap commented text in brackets: `[commented text]`
5. Insert comment content after bracketed text: `[COMMENT: "feedback"]`
## Dependencies
- `python-docx` - DOCX file handling
- `lxml` - XML parsing
- `click` - Command line interface
            
         
        Raw data
        
            {
    "_id": null,
    "home_page": null,
    "name": "docx-comments-to-text",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.13",
    "maintainer_email": null,
    "keywords": "docx, comments, document, text, review",
    "author": null,
    "author_email": "Giorgio Momigliano <gmomigliano@protonmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/49/98/25124c274ab947eb3f7cf0f5c0c3af7a3a73df30224bdbf9298ef5b16291/docx_comments_to_text-0.2.2.tar.gz",
    "platform": null,
    "description": "# docx-comments-to-text\n\nExtract reviewer comments from `.docx` files and insert them inline with the text they reference, creating a plain text output that keeps feedback in context.\n\n## Installation\n\n### From PyPI (recommended)\n```bash\npip install docx-comments-to-text\n```\n\n### From source\n```bash\n# Clone the repository\ngit clone https://github.com/platelminto/docx-comments-to-text\ncd docx-comments-to-text\n\n# Install in development mode\nuv sync --dev\n# or: pip install -e .\n```\n\n## Usage\n\n### Command Line Interface\n\n```bash\n# Basic usage - output to stdout\ndocx-comments-to-text document.docx\n\n# Save to file\ndocx-comments-to-text document.docx -o output.txt\n\n# Control author display\ndocx-comments-to-text document.docx --authors never    # Hide authors\ndocx-comments-to-text document.docx --authors always   # Always show authors\ndocx-comments-to-text document.docx --authors auto     # Show authors when multiple exist (default)\n\n# Control comment placement\ndocx-comments-to-text document.docx --placement inline         # Inline with text (default)\ndocx-comments-to-text document.docx --placement end-paragraph  # At end of each paragraph\ndocx-comments-to-text document.docx --placement comments-only  # Comments only with context\n```\n\n### Development Usage\n\nIf working from source:\n```bash\n# Run with uv\nuv run docx-comments-to-text document.docx\n\n# Or use module syntax\nuv run python -m docx_comments_to_text.cli document.docx\n```\n\n### Example Output\n\n#### Inline placement (default)\n```\nOriginal text with [reviewer feedback] [COMMENT: \"This needs clarification\"] continues here.\nMore content [needs examples] [COMMENT John: \"Consider adding examples\"] and final text.\n```\n\n#### End-paragraph placement\n```\nOriginal text with reviewer feedback[1] continues here.\nMore content needs examples[2] and final text.\n\nComments:\n1. This needs clarification\n2. John: Consider adding examples\n```\n\n#### Comments-only placement\n```\n\"reviewer feedback\": This needs clarification\n\"needs examples\": John: Consider adding examples\n```\n\n## Features\n\n- Accurate comment positioning and text preservation\n- Handles overlapping comments and multiple comment types  \n- Configurable author display\n- Multiple comment placement styles (inline, end-of-paragraph, comments-only)\n\n## Technical Details\n\n### DOCX Structure\n- DOCX files are ZIP archives containing XML files\n- `word/document.xml` - main document content\n- `word/comments.xml` - comment definitions\n- Comment ranges marked with `<w:commentRangeStart>` and `<w:commentRangeEnd>`\n\n### Comment Insertion Strategy\n1. Parse document XML to extract text and track character positions\n2. Map comment ranges to their start/end positions in the text\n3. Sort comments by position for safe insertion (reverse order)\n4. Wrap commented text in brackets: `[commented text]`\n5. Insert comment content after bracketed text: `[COMMENT: \"feedback\"]`\n\n## Dependencies\n\n- `python-docx` - DOCX file handling\n- `lxml` - XML parsing\n- `click` - Command line interface\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Extract reviewer comments from .docx files and insert them inline with the text",
    "version": "0.2.2",
    "project_urls": {
        "Homepage": "https://github.com/platelminto/docx-comments-to-text",
        "Issues": "https://github.com/platelminto/docx-comments-to-text/issues",
        "Repository": "https://github.com/platelminto/docx-comments-to-text"
    },
    "split_keywords": [
        "docx",
        " comments",
        " document",
        " text",
        " review"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "eae3edb9254c5b567e437c5a96c0faf69a6f5bbd54e7aeb71974e0dad8c47a9c",
                "md5": "5ef1aff45e38f5156d72d9399ad1bf84",
                "sha256": "fcf9ba5e1c74a4e8917f5565f826dcfa5664e3b540a661ba3759eaa1739f31e5"
            },
            "downloads": -1,
            "filename": "docx_comments_to_text-0.2.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5ef1aff45e38f5156d72d9399ad1bf84",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.13",
            "size": 9372,
            "upload_time": "2025-08-09T23:31:17",
            "upload_time_iso_8601": "2025-08-09T23:31:17.375096Z",
            "url": "https://files.pythonhosted.org/packages/ea/e3/edb9254c5b567e437c5a96c0faf69a6f5bbd54e7aeb71974e0dad8c47a9c/docx_comments_to_text-0.2.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "499825124c274ab947eb3f7cf0f5c0c3af7a3a73df30224bdbf9298ef5b16291",
                "md5": "3698eefd03ec6a0e72c423ec0effb5ff",
                "sha256": "bed74040e67a1824072ad6878dd7e5121cb75311895b11632b6c1c9bd253526b"
            },
            "downloads": -1,
            "filename": "docx_comments_to_text-0.2.2.tar.gz",
            "has_sig": false,
            "md5_digest": "3698eefd03ec6a0e72c423ec0effb5ff",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.13",
            "size": 15278,
            "upload_time": "2025-08-09T23:31:18",
            "upload_time_iso_8601": "2025-08-09T23:31:18.307322Z",
            "url": "https://files.pythonhosted.org/packages/49/98/25124c274ab947eb3f7cf0f5c0c3af7a3a73df30224bdbf9298ef5b16291/docx_comments_to_text-0.2.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-09 23:31:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "platelminto",
    "github_project": "docx-comments-to-text",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "docx-comments-to-text"
}