RayLee's picture
Upload folder using huggingface_hub
5584590 verified
import gradio as gr
from gradio_markdownlabel import MarkdownLabel
with gr.Blocks(title="Markdown Label Demo") as demo:
gr.Markdown("# MarkdownLabel Component Demo")
# Simple position-based example
example = {
"markdown_content": """# Comprehensive Markdown Example
## Introduction
*The* quick **brown fox** jumps over the lazy dog. This is a simple quick example with various **formatting** elements.
### Lists and Items
Here are some important points:
1. **First item** - This is the primary consideration
2. *Second item* - Another important point
3. Third item with `inline code`
4. Fourth item containing [a link](https://example.com)
#### Unordered Lists
- Bullet point one
- Bullet point two with **bold text**
- Final bullet point
### Code Block Example
```python
def hello_world():
print("Hello, World!")
return "success"
```
### Tables
| Column 1 | Column 2 | Column 3 |
|----------|----------|----------|
| Cell 1 | Cell 2 | Cell 3 |
| Data A | Data B | Data C |
### Blockquotes
> This is a blockquote with some **important** information.
>
> It can span multiple lines and contain *emphasis*.
### Mixed Content
The document contains various **formatting** options including:
- *Italicized text* for emphasis
- **Bold text** for importance
- `Inline code` for technical terms
- Links like [this one](https://example.com)
#### Final Section
This concludes our comprehensive example with multiple markdown elements for testing position-based highlighting accuracy.""",
"highlights": [
{
"position": [56, 61], # "quick" in "The quick brown fox", note the 2nd quick is not highlighted
"title": "Quick",
"content": "Highlighted using exact character positions.",
"category": "Position Demo",
"color": "#ffeb3b"
},
{
"term": "brown fox",
"title": "Brown Fox (Term Match)",
"content": "Highlighted using term matching - will match anywhere this term appears.",
"category": "Term Demo",
"color": "#e3f2fd"
},
{
"position": [91, 95], # "lazy" in "the lazy dog"
"title": "Lazy",
"content": "Position-based highlight",
"category": "Position Demo",
"color": "#ffeb3b"
},
{
"position": [989, 999],
"title": "Italicized",
"content": "Highlighting 'Italicized'",
"category": "Position Demo",
"color": "#ff9800"
},
{
"term": "formatting",
"title": "formatting (Term Match)",
"content": "Highlighted using term matching - will match anywhere this term appears.",
"category": "Term Demo",
"color": "#d0167f91"
},
{
"position": [30, 37],
"title": "regression test",
"content": "Highlight across lines should not render",
"category": "Position Demo",
"color": "#ffeb3b"
},
]
}
gr.Markdown("## Position vs Term Highlighting Comparison")
gr.Markdown("This example shows the difference between position-based (yellow) and term-based (blue) highlighting.")
MarkdownLabel(
value=example,
label="Simple Position vs Term Example",
show_side_panel=True,
panel_width="300px",
interactive=True
)
if __name__ == "__main__":
demo.launch()