home / github / issue_comments

Menu
  • Search all tables
  • GraphQL API

issue_comments: 1278198145

This data as json

html_url issue_url id node_id user created_at updated_at author_association body reactions issue performed_via_github_app
https://github.com/simonw/datasette/issues/1831#issuecomment-1278198145 https://api.github.com/repos/simonw/datasette/issues/1831 1278198145 IC_kwDOBm6k_c5ML8GB 9599 2022-10-13T21:28:30Z 2022-10-13T21:28:30Z OWNER

This has turned into a full refactor of how breadcrumbs work.

I'm using my first ever Jinja macro for this - I import that at the top of base.html so that it will be available everywhere else:

html+jinja {% import "_crumbs.html" as crumbs with context %}<!DOCTYPE html> The with context bit is needed so the macro can see the new crumb_items() function that I'm adding to the global template rendering scope.

Here's the full content of _crumbs.html:

```html+jinja {% macro nav(request, database=None, table=None) -%} {% set items=crumb_items(request=request, database=database, table=table) %} {% if items %}

{% for item in items %} {{ item.label }} {% if not loop.last %} / {% endif %} {% endfor %}

{% endif %} {%- endmacro %} `` This means custom template authors can use their own_crumbs.html` template to do something different with the breadcrumbs.

In the actual templates I display breadcrumbs like this:

html+jinja {% block crumbs %} {{ crumbs.nav(request=request, database=database) }} {% endblock %} Pass database= to get home / database_name - pass table= as well to get home / database_name / table_name - if you just send request= you just get home.

I've also made the default base template show the home breadcrumbs - other pages such as table.html and row.html can then over-ride {% block crumbs %} to get different breadcrumbs.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
1397084281  
Powered by Datasette · Queries took 1.184ms · About: github-to-sqlite