chore: Issue closure 125 cleanup
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
"""
|
||||
CLI commands for content operations.
|
||||
"""
|
||||
|
||||
import click
|
||||
import json
|
||||
from pathlib import Path
|
||||
from .parser import ContentParser
|
||||
|
||||
|
||||
@click.command('content-get')
|
||||
@click.option('--file', 'file_path', required=True, type=click.Path(exists=True),
|
||||
help='Path to markdown file')
|
||||
def content_get(file_path):
|
||||
"""Extract content without frontmatter and tailmatter."""
|
||||
try:
|
||||
file_path = Path(file_path)
|
||||
with open(file_path, 'r', encoding='utf-8') as f:
|
||||
text = f.read()
|
||||
|
||||
parser = ContentParser()
|
||||
content = parser.extract_content(text)
|
||||
|
||||
click.echo(content)
|
||||
|
||||
except Exception as e:
|
||||
click.echo(f"Error: {e}", err=True)
|
||||
raise click.ClickException(f"Failed to extract content from {file_path}")
|
||||
|
||||
|
||||
@click.command('content-stats')
|
||||
@click.option('--file', 'file_path', required=True, type=click.Path(exists=True),
|
||||
help='Path to markdown file')
|
||||
@click.option('--format', 'output_format', default='json', type=click.Choice(['json', 'text']),
|
||||
help='Output format (json or text)')
|
||||
def content_stats(file_path, output_format):
|
||||
"""Calculate content statistics."""
|
||||
try:
|
||||
file_path = Path(file_path)
|
||||
with open(file_path, 'r', encoding='utf-8') as f:
|
||||
text = f.read()
|
||||
|
||||
parser = ContentParser()
|
||||
content = parser.extract_content(text)
|
||||
stats = parser.calculate_stats(content)
|
||||
|
||||
if output_format == 'json':
|
||||
click.echo(json.dumps(stats.to_dict(), indent=2))
|
||||
else:
|
||||
click.echo(f"Word count: {stats.word_count}")
|
||||
click.echo(f"Line count: {stats.line_count}")
|
||||
click.echo(f"Paragraph count: {stats.paragraph_count}")
|
||||
click.echo(f"Character count: {stats.character_count}")
|
||||
|
||||
except Exception as e:
|
||||
click.echo(f"Error: {e}", err=True)
|
||||
raise click.ClickException(f"Failed to calculate stats for {file_path}")
|
||||
Reference in New Issue
Block a user