diff --git a/pagure/doc_utils.py b/pagure/doc_utils.py index 0506489..6765063 100644 --- a/pagure/doc_utils.py +++ b/pagure/doc_utils.py @@ -89,13 +89,17 @@ def convert_readme(content, ext, view_file_url=None): provided. ''' output = content + safe = False if ext and ext in ['.rst']: + safe = True output = convert_doc(content, view_file_url) elif ext and ext in ['.mk']: output = markdown.markdown(content) + safe = True elif not ext or (ext and ext in ['.text', '.txt']): + safe = True output = '
%s
' % content - return output + return output, safe def load_doc(endpoint): diff --git a/pagure/templates/docs.html b/pagure/templates/docs.html index 29ff911..0ca64cc 100644 --- a/pagure/templates/docs.html +++ b/pagure/templates/docs.html @@ -72,9 +72,9 @@ {% if content %}
- {% autoescape false %} - {{ content }} - {% endautoescape %} + {% if safe }} + {{ content |safe }} + {% endif %}
{% endif %} diff --git a/pagure/ui/docs.py b/pagure/ui/docs.py index c4f2362..7d6cf59 100644 --- a/pagure/ui/docs.py +++ b/pagure/ui/docs.py @@ -64,10 +64,10 @@ def __get_tree_and_content(repo_obj, commit, path): if isinstance(blob_or_tree, pygit2.TreeEntry): # Returned a file ext = os.path.splitext(blob_or_tree.name)[1] blob_obj = repo_obj[blob_or_tree.oid] - content = pagure.doc_utils.convert_readme(blob_obj.data, ext) + content, safe = pagure.doc_utils.convert_readme(blob_obj.data, ext) tree = sorted(tree_obj, key=lambda x: x.filemode) - return (tree, content, extended) + return (tree, content, safe, extended) # URLs @@ -124,7 +124,7 @@ def view_docs(repo, username=None, branchname=None, filename=None): if commit: try: - (tree, content, extended) = __get_tree_and_content( + (tree, content, safe, extended) = __get_tree_and_content( repo_obj, commit, path) if extended: filename += '/' @@ -141,4 +141,5 @@ def view_docs(repo, username=None, branchname=None, filename=None): filename=filename, tree=tree, content=content, + safe=safe, )