diff --git a/datasette/default_column_types.py b/datasette/default_column_types.py index f90a733e..f5811aef 100644 --- a/datasette/default_column_types.py +++ b/datasette/default_column_types.py @@ -5,6 +5,7 @@ import markupsafe from datasette import hookimpl from datasette.column_types import ColumnType, SQLiteType +from datasette.utils import is_url class UrlColumnType(ColumnType): @@ -15,7 +16,10 @@ class UrlColumnType(ColumnType): async def render_cell(self, value, column, table, database, datasette, request): if not value or not isinstance(value, str): return None - escaped = markupsafe.escape(value.strip()) + stripped = value.strip() + if not is_url(stripped): + return None + escaped = markupsafe.escape(stripped) return markupsafe.Markup(f'{escaped}') async def validate(self, value, datasette):