diff --git a/datasette/app.py b/datasette/app.py index de6d0b91..7cd56cda 100644 --- a/datasette/app.py +++ b/datasette/app.py @@ -242,12 +242,13 @@ class BaseView(RenderMixin): **{ 'url_json': path_with_ext(request, '.json'), 'url_jsono': path_with_ext(request, '.jsono'), - 'metadata': self.ds.metadata, 'extra_css_urls': self.ds.extra_css_urls(), 'extra_js_urls': self.ds.extra_js_urls(), 'datasette_version': __version__, } } + if 'metadata' not in context: + context['metadata'] = self.ds.metadata r = self.render( templates, **context, @@ -379,6 +380,9 @@ class DatabaseView(BaseView): 'database_hash': hash, 'show_hidden': request.args.get('_show_hidden'), 'editable': True, + 'metadata': self.ds.metadata.get( + 'databases', {} + ).get(name, {}), }, ('database-{}.html'.format(to_css_class(name)), 'database.html') @@ -686,7 +690,10 @@ class TableView(RowTableShared): '_rows_and_columns-{}-{}.html'.format(to_css_class(name), to_css_class(table)), '_rows_and_columns-table-{}-{}.html'.format(to_css_class(name), to_css_class(table)), '_rows_and_columns.html', - ] + ], + 'metadata': self.ds.metadata.get( + 'databases', {} + ).get(name, {}).get('tables', {}).get(table, {}), } return { @@ -750,7 +757,10 @@ class RowView(RowTableShared): '_rows_and_columns-{}-{}.html'.format(to_css_class(name), to_css_class(table)), '_rows_and_columns-row-{}-{}.html'.format(to_css_class(name), to_css_class(table)), '_rows_and_columns.html', - ] + ], + 'metadata': self.ds.metadata.get( + 'databases', {} + ).get(name, {}).get('tables', {}).get(table, {}), } data = { diff --git a/datasette/templates/_description_source_license.html b/datasette/templates/_description_source_license.html new file mode 100644 index 00000000..eba4eb1a --- /dev/null +++ b/datasette/templates/_description_source_license.html @@ -0,0 +1,25 @@ +{% if metadata.description_html or metadata.description %} +
+ {% if metadata.description_html %} + {{ metadata.description_html|safe }} + {% else %} + {{ metadata.description }} + {% endif %} +
+{% endif %} +{% if metadata.license or metadata.license_url or metadata.source or metadata.source_url %} +

+ {% if metadata.license or metadata.license_url %}Data license: + {% if metadata.license_url %} + {{ metadata.license or metadata.license_url }} + {% else %} + {{ metadata.license }} + {% endif %} + {% endif %} + {% if metadata.source or metadata.source_url %}{% if metadata.license or metadata.license_url %}·{% endif %} + Data source: {% if metadata.source_url %} + + {% endif %}{{ metadata.source or metadata.source_url }}{% if metadata.source_url %}{% endif %} + {% endif %} +

+{% endif %} diff --git a/datasette/templates/base.html b/datasette/templates/base.html index 3614a790..0c21af0e 100644 --- a/datasette/templates/base.html +++ b/datasette/templates/base.html @@ -20,19 +20,17 @@
Powered by Datasette {% if query_ms %}· Query took {{ query_ms|round(3) }}ms{% endif %} - {% if metadata.license %}· Data license: + {% if metadata.license or metadata.license_url %}· Data license: {% if metadata.license_url %} - {{ metadata.license }} + {{ metadata.license or metadata.license_url }} {% else %} {{ metadata.license }} {% endif %} {% endif %} - {% if metadata.source_url %}· - {% if metadata.source %} - Data source: {{ metadata.source }} - {% else %} - Data source - {% endif %} + {% if metadata.source or metadata.source_url %}· + Data source: {% if metadata.source_url %} + + {% endif %}{{ metadata.source or metadata.source_url }}{% if metadata.source_url %}{% endif %} {% endif %}
diff --git a/datasette/templates/database.html b/datasette/templates/database.html index 4793743e..8867578a 100644 --- a/datasette/templates/database.html +++ b/datasette/templates/database.html @@ -12,7 +12,9 @@ {% block content %}
home
-

{{ database }}

+

{{ metadata.title or database }}

+ +{% block description_source_license %}{% include "_description_source_license.html" %}{% endblock %}

Custom SQL query

diff --git a/datasette/templates/index.html b/datasette/templates/index.html index 85987d0c..d1cc0eee 100644 --- a/datasette/templates/index.html +++ b/datasette/templates/index.html @@ -6,24 +6,8 @@ {% block content %}

{{ metadata.title or "Datasette" }}

-{% if metadata.license or metadata.source_url %} -

- {% if metadata.license %}Data license: - {% if metadata.license_url %} - {{ metadata.license }} - {% else %} - {{ metadata.license }} - {% endif %} - {% endif %} - {% if metadata.source_url %}{% if metadata.license %}·{% endif %} - {% if metadata.source %} - Data source: {{ metadata.source }} - {% else %} - Data source - {% endif %} - {% endif %} -

-{% endif %} + +{% block description_source_license %}{% include "_description_source_license.html" %}{% endblock %} {% for database in databases %}

{{ database.name }}

diff --git a/datasette/templates/row.html b/datasette/templates/row.html index b338f007..53cbd15d 100644 --- a/datasette/templates/row.html +++ b/datasette/templates/row.html @@ -20,6 +20,8 @@

{{ table }}: {{ ', '.join(primary_key_values) }}

+{% block description_source_license %}{% include "_description_source_license.html" %}{% endblock %} +

This data as .json, .jsono

{% include custom_rows_and_columns_templates %} diff --git a/datasette/templates/table.html b/datasette/templates/table.html index 6b014c12..70262bc7 100644 --- a/datasette/templates/table.html +++ b/datasette/templates/table.html @@ -19,7 +19,9 @@ {% block content %}
home / {{ database }}
-

{{ table }}{% if is_view %} (view){% endif %}

+

{{ metadata.title or table }}{% if is_view %} (view){% endif %}

+ +{% block description_source_license %}{% include "_description_source_license.html" %}{% endblock %} {% if filtered_table_rows or human_filter_description %}

{% if filtered_table_rows or filtered_table_rows == 0 %}{{ "{:,}".format(filtered_table_rows) }} row{% if filtered_table_rows == 1 %}{% else %}s{% endif %}{% endif %}