Add support for generating a simple Web App Manifest file, which helps mobile browsers display the site smartly
This commit is contained in:
parent
5987e54105
commit
55731c63ce
7 changed files with 63 additions and 1 deletions
|
@ -7,5 +7,6 @@ urlpatterns = [
|
|||
url(r'^keybase.txt$', views.keybase, name='keybase'),
|
||||
url(r'^host-meta$', views.host_meta_xml, name='host-meta'),
|
||||
url(r'^host-meta.json$', views.host_meta_json, name='host-meta.json'),
|
||||
url(r'^manifest.json$', views.manifest, name='manifest'),
|
||||
url(r'^webfinger$', views.webfinger, name='webfinger'),
|
||||
]
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
from .static import keybase
|
||||
from .host_meta import host_meta_xml, host_meta_json
|
||||
from .manifest import manifest
|
||||
from .webfinger import webfinger
|
||||
|
|
28
wellknowns/views/manifest.py
Normal file
28
wellknowns/views/manifest.py
Normal file
|
@ -0,0 +1,28 @@
|
|||
from django.conf import settings
|
||||
from django.http import JsonResponse
|
||||
from favicon.models import FaviconImg
|
||||
from lemoncurry import utils
|
||||
from lemoncurry.theme import theme
|
||||
from urllib.parse import urljoin
|
||||
|
||||
|
||||
def manifest(request):
|
||||
origin = utils.origin(request)
|
||||
app = {
|
||||
'name': settings.LEMONCURRY_SITE_NAME,
|
||||
'background_color': '#' + theme['base00'],
|
||||
'theme_color': '#' + theme['base02'],
|
||||
}
|
||||
|
||||
rels = ('shortcut icon', 'apple-touch-icon')
|
||||
icons = FaviconImg.objects.filter(
|
||||
faviconFK__isFavicon=True,
|
||||
rel__in=rels,
|
||||
).order_by('size')
|
||||
app['icons'] = [{
|
||||
'type': 'image/png',
|
||||
'size': '{0}x{0}'.format(icon.size),
|
||||
'src': urljoin(origin, icon.faviconImage.url),
|
||||
} for icon in icons]
|
||||
|
||||
return JsonResponse(app, content_type='application/manifest+json')
|
Loading…
Add table
Add a link
Reference in a new issue