Skip to content

Commit

Permalink
updated apps pages generator
Browse files Browse the repository at this point in the history
  • Loading branch information
mariotaku committed Jan 10, 2022
1 parent ce9545f commit 383e575
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 25 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/repo-sitegen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
run: python3 -m pip install -r ./requirements.txt

- name: Generate repository data
run: python3 -m repogen -i ./packages -o ./content -D
run: python3 -m repogen -i ./packages -o ./content -D -L

- name: Generate site content
run: invoke build
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sitegen-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
run: python3 -m pip install -r ./requirements.txt

- name: '[Dry run] Generate repository data'
run: python3 -m repogen -i ./packages -o ./content -D
run: python3 -m repogen -i ./packages -o ./content -D -L

- name: '[Dry run] Generate site content'
run: invoke build
2 changes: 1 addition & 1 deletion pelicanconf.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
('openlgtv', 'https://openlgtv.github.io/'),
)

DEFAULT_PAGINATION = 30
DEFAULT_PAGINATION = 20

# Uncomment following line if you want document-relative URLs when developing
# RELATIVE_URLS = True
Expand Down
35 changes: 33 additions & 2 deletions repogen/plugin.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
import logging
import os
from itertools import chain

from markdown import Markdown
from pelican import signals, Readers
from more_itertools import chunked
from pelican import signals, Readers, PagesGenerator
from pelican.contents import Page
from pelican.readers import BaseReader
from pelican.themes.webosbrew import pagination_data

from repogen.common import parse_package_info

Expand All @@ -28,7 +32,8 @@ def read(self, filename):
'status': 'hidden',
'modified': info['lastmodified'],
'manifest': info['manifest'],
'detailIcon': info.get('detailIconUri', info['iconUri'])
'detailIcon': info.get('detailIconUri', info['iconUri']),
'package_info': info
}
return self._md.convert(info['description']), metadata

Expand All @@ -38,6 +43,32 @@ def readers_init(readers: Readers):
readers.reader_classes['py'] = PackageInfoReader


def add_app_indices(generator: PagesGenerator):
packages = list(
sorted(filter(lambda x: x is not None, map(lambda page: page.metadata.get('package_info', None),
chain(generator.pages, generator.hidden_pages))),
key=lambda info: info['title'].lower()))

pages = list(chunked(packages, generator.settings['DEFAULT_PAGINATION']))
pages_count = len(pages)
for index, items in enumerate(pages):
metadata = {
'title': 'Apps',
'override_save_as': 'apps/index.html' if index == 0 else f'apps/page/{index + 1}.html',
'template': 'apps',
'status': 'hidden',
'packages': items,
'pagination': pagination_data(index + 1, pages_count, apps_list_href) if pages_count > 1 else None,
}
generator.hidden_pages.append(Page('', metadata=metadata, settings=generator.settings,
source_path=f'apps-page-{index + 1}.html', context=generator.context))


def apps_list_href(page):
return '/apps' if page <= 1 else f'/apps/page/{page}'


def register():
signals.readers_init.connect(readers_init)
signals.page_generator_finalized.connect(add_app_indices)
pass
17 changes: 5 additions & 12 deletions theme/static/styles/apps.scss
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
@import "variables";

ul.apps-list {
list-style-type: none;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
grid-template-columns: #{repeat(auto-fill, minmax(112px, 1fr))};
margin: 10px;
padding: 0px;

Expand Down Expand Up @@ -37,25 +39,16 @@ ul.apps-list {
}
}


.apps-paginator {
text-align: center;
}

.apps-paginator a.current {
font-weight: bold;
}

@media screen and (max-width: 320px) {
ul.apps-list {
grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
grid-template-columns: #{repeat(auto-fill, minmax(80px, 1fr))};
margin: 5px;
}
}

@media screen and (max-width: 480px) {
ul.apps-list {
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
grid-template-columns: #{repeat(auto-fill, minmax(100px, 1fr))};
margin: 5px;
}
}
23 changes: 15 additions & 8 deletions theme/templates/apps.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,21 @@

{% block content %}
<h1>{{ page.title }}</h1>
{% import 'translations.html' as translations with context %}
{{ translations.translations_for(page) }}

{{ page.content }}
<ul class="apps-list">
{% for package in page.metadata.packages %}
<li class="app-item">
<a href="/apps/{{package.id}}">
<div class="app-icon">
<img src="{{package.iconUri}}"/>
</div>
<div class="app-title">{{package.title}}</div>
</a>
</li>
{% endfor %}
</ul>

{% set pagination = page.metadata.pagination %}
{% include "pagination.html" %}

{% if page.modified %}
<p>
Last updated: {{ page.locale_modified }}
</p>
{% endif %}
{% endblock %}

0 comments on commit 383e575

Please sign in to comment.