4 Commits

5 changed files with 14 additions and 8 deletions

View File

@@ -1,6 +1,6 @@
[project] [project]
name = "rp" name = "rp"
version = "0.2.1" version = "0.2.3"
description = "Rich print files — markdown, JSON, code, and more — beautifully in your terminal" description = "Rich print files — markdown, JSON, code, and more — beautifully in your terminal"
readme = "README.md" readme = "README.md"
license = "MIT" license = "MIT"

View File

@@ -2,6 +2,6 @@
from __future__ import annotations from __future__ import annotations
__version__ = "0.2.1" __version__ = "0.2.3"
__author__ = "Yunxiao Xu" __author__ = "Yunxiao Xu"
__license__ = "MIT" __license__ = "MIT"

View File

@@ -90,10 +90,13 @@ def detect_type(
return EXTENSION_MAP[suffix] return EXTENSION_MAP[suffix]
if content is not None: if content is not None:
stripped = content.lstrip() stripped = content.strip()
if stripped and stripped[0] in ("{", "["): if stripped and (
(stripped[0] == "{" and stripped[-1] == "}")
or (stripped[0] == "[" and stripped[-1] == "]")
):
try: try:
json.loads(stripped[:1000]) json.loads(stripped)
return "json" return "json"
except (json.JSONDecodeError, ValueError): except (json.JSONDecodeError, ValueError):
pass pass

View File

@@ -7,6 +7,7 @@ from dataclasses import dataclass
from rich.console import Console, RenderableType from rich.console import Console, RenderableType
from rich.json import JSON as RichJSON from rich.json import JSON as RichJSON
from rich.markdown import Markdown from rich.markdown import Markdown
from rich.padding import Padding
from rich.syntax import Syntax from rich.syntax import Syntax
from rp.pager import MousePager from rp.pager import MousePager
@@ -75,8 +76,10 @@ def render(
content, "text", theme=options.theme, line_numbers=line_numbers content, "text", theme=options.theme, line_numbers=line_numbers
) )
padded = Padding(renderable, (1, 2))
if use_pager: if use_pager:
with console.pager(pager=MousePager(), styles=True): with console.pager(pager=MousePager(), styles=True):
console.print(renderable) console.print(padded)
else: else:
console.print(renderable) console.print(padded)

2
uv.lock generated
View File

@@ -198,7 +198,7 @@ wheels = [
[[package]] [[package]]
name = "rp" name = "rp"
version = "0.2.1" version = "0.2.3"
source = { editable = "." } source = { editable = "." }
dependencies = [ dependencies = [
{ name = "rich" }, { name = "rich" },