MarkDown: in the regular UI too

See #127
This commit is contained in:
Klaas van Schelven
2025-09-15 15:27:08 +02:00
parent 5bb4dc1f20
commit 17007d5f55
3 changed files with 17 additions and 1 deletions
+2 -1
View File
@@ -1,6 +1,6 @@
from django.urls import path
from .views import event_download, event_plaintext
from .views import event_download, event_plaintext, event_markdown
urlpatterns = [
@@ -8,4 +8,5 @@ urlpatterns = [
path('event/<uuid:event_pk>/raw/', event_download, kwargs={"as_attachment": False}),
path('event/<uuid:event_pk>/download/', event_download, kwargs={"as_attachment": True}),
path('event/<uuid:event_pk>/plain/', event_plaintext),
path('event/<uuid:event_pk>/md/', event_markdown),
]
+14
View File
@@ -5,6 +5,8 @@ from django.shortcuts import render
from bugsink.decorators import event_membership_required, atomic_for_request_method
from issues.utils import get_values
from .markdown_stacktrace import render_stacktrace_md
@atomic_for_request_method
@event_membership_required
@@ -25,3 +27,15 @@ def event_plaintext(request, event):
"event": event,
"exceptions": exceptions,
}, content_type="text/plain")
@atomic_for_request_method
@event_membership_required
def event_markdown(request, event, as_attachment=False):
text = render_stacktrace_md(event, frames="in_app", exceptions="last", include_locals=True)
result = HttpResponse(text, content_type="text/markdown; charset=utf-8")
if as_attachment:
result["Content-Disposition"] = content_disposition_header(
as_attachment=True, filename=event.id.hex + ".md"
)
return result
+1
View File
@@ -129,6 +129,7 @@
{% if is_event_page %}
<a href="{{ script_prefix }}/events/event/{{ event.id }}/download/">{% translate "Download" %}</a>
| <a href="{{ script_prefix }}/events/event/{{ event.id }}/raw/" >{% translate "JSON" %}</a>
| <a href="{{ script_prefix }}/events/event/{{ event.id }}/md/" >{% translate "Markdown" %}</a>
| <a href="{{ script_prefix }}/events/event/{{ event.id }}/plain/" >{% translate "Plain" %}</a>
{% endif %}