Skip to content

Commit

Permalink
Added Apple web-app meta tag #358 (#359)
Browse files Browse the repository at this point in the history
* Added Apple web-app meta tag #358

* Added manifest file for web app

* Changed manifest to use template #358

* Small tweaks, add tests

---------

Co-authored-by: Sascha Ißbrücker <sascha.issbruecker@gmail.com>
  • Loading branch information
acbgbca and sissbruecker authored May 23, 2023
1 parent 84f13dd commit cd66dce
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 1 deletion.
2 changes: 2 additions & 0 deletions bookmarks/templates/bookmarks/layout.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
<meta charset="UTF-8">
<link rel="icon" href="{% static 'favicon.png' %}"/>
<link rel="apple-touch-icon" href="{% static 'apple-touch-icon.png' %}">
<link rel="manifest" href="{% url 'bookmarks:manifest' %}">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimal-ui">
<meta name="description" content="Self-hosted bookmark service">
<meta name="robots" content="index,follow">
Expand Down
33 changes: 33 additions & 0 deletions bookmarks/tests/test_metadata_view.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
from django.test import TestCase, override_settings


class MetadataViewTestCase(TestCase):

def test_default_manifest(self):
response = self.client.get("/manifest.json")

self.assertEqual(response.status_code, 200)

response_body = response.json()
expected_body = {
"short_name": "linkding",
"start_url": "bookmarks",
"display": "standalone",
"scope": "/"
}
self.assertDictEqual(response_body, expected_body)

@override_settings(LD_CONTEXT_PATH="linkding/")
def test_manifest_respects_context_path(self):
response = self.client.get("/manifest.json")

self.assertEqual(response.status_code, 200)

response_body = response.json()
expected_body = {
"short_name": "linkding",
"start_url": "bookmarks",
"display": "standalone",
"scope": "/linkding/"
}
self.assertDictEqual(response_body, expected_body)
4 changes: 3 additions & 1 deletion bookmarks/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,7 @@
path('feeds/<str:feed_key>/all', AllBookmarksFeed(), name='feeds.all'),
path('feeds/<str:feed_key>/unread', UnreadBookmarksFeed(), name='feeds.unread'),
# Health check
path('health', views.health, name='health')
path('health', views.health, name='health'),
# Manifest
path("manifest.json", views.manifest, name='manifest')
]
1 change: 1 addition & 0 deletions bookmarks/views/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@
from .settings import *
from .toasts import *
from .health import health
from .manifest import manifest
13 changes: 13 additions & 0 deletions bookmarks/views/manifest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from django.http import JsonResponse
from django.conf import settings


def manifest(request):
response = {
"short_name": "linkding",
"start_url": "bookmarks",
"display": "standalone",
"scope": "/" + settings.LD_CONTEXT_PATH
}

return JsonResponse(response, status=200)

0 comments on commit cd66dce

Please sign in to comment.