Browse Source

reboot my work

main
crunk 2 weeks ago
parent
commit
b6a2c7687d
  1. 48
      distribusi/distribusi.py
  2. 0
      distribusi/templates/__init__.py
  3. 4
      distribusi/templates/image_templates.py
  4. 25
      distribusi/templates/page_template.py
  5. 2
      setup.py

48
distribusi/distribusi.py

@ -2,8 +2,13 @@ import os
import magic import magic
from PIL import Image from PIL import Image
from jinja2 import Environment, FileSystemLoader
from distribusi.page_template import html_footer, html_head from distribusi.page_template import html_footer, html_head
from distribusi.image_templates import (
no_description,
with_description,
with_alttext,
full_figure,
)
from distribusi.mappings import CODE_TYPES, FILE_TYPES, SUB_TYPES from distribusi.mappings import CODE_TYPES, FILE_TYPES, SUB_TYPES
MIME_TYPE = magic.Magic(mime=True) MIME_TYPE = magic.Magic(mime=True)
@ -96,11 +101,21 @@ def check_distribusi_index(args, index):
def write_index(args, index, html): def write_index(args, index, html):
env = Environment(loader = FileSystemLoader('templates'))
template = env.get_template('main.jinja')
with open(index, "w") as index_file: with open(index, "w") as index_file:
rendered_html = template.render(content = html) if not args.no_template:
index_file.write(rendered_html) if args.style:
file_style = open(args.style, "r")
style = file_style.read()
styled_html_head = html_head % style
else:
styled_html_head = html_head % ""
index_file.write(styled_html_head)
for line in html:
index_file.write(line + "\n")
if not args.no_template:
index_file.write(html_footer)
def handle_text_files(name, full_path, subtype): def handle_text_files(name, full_path, subtype):
@ -132,11 +147,26 @@ def handle_image_files(name, full_path, args):
image_description = add_description(full_path) image_description = add_description(full_path)
if image_alttext is None: if image_alttext is None:
if image_description is None: if image_description is None:
return f'<a href="{name}"><img class="thumbnail" src="{thumbnail_filename}" alt="{name}"></a>' return image_no_description.format(
return f'<figure><a href="{name}"><img class="thumbnail" src="{thumbnail_filename}"></a><figcaption>{image_description}</figcaption></figure>' name=name, thumbnail_filename=thumbnail_filename
)
return image_with_description.format(
name=name,
thumbnail_filename=thumbnail_filename,
image_description=image_description,
)
if image_description is None: if image_description is None:
return f'<a href="{name}"><img class="thumbnail" src="{thumbnail_filename}" alt="{image_alttext}"></a>' return image_with_alttext.format(
return f'<figure><a href="{name}"><img class="thumbnail" src="{thumbnail_filename}" alt="{image_alttext}"></a><figcaption>{image_description}</figcaption></figure>' name=name,
thumbnail_filename=thumbnail_filename,
image_alttext=image_alttext,
)
return image_full_figure.format(
name=name,
thumbnail_filename=thumbnail_filename,
image_alttext=image_alttext,
image_description=image_description,
)
return FILE_TYPES["image"].format(name, image_alttext) return FILE_TYPES["image"].format(name, image_alttext)

0
distribusi/templates/__init__.py

4
distribusi/templates/image_templates.py

@ -0,0 +1,4 @@
image_no_description = '<a href="{name}"><img class="thumbnail" src="{thumbnail_filename}" alt="{name}"></a>'
image_with_description = '<figure><a href="{name}"><img class="thumbnail" src="{thumbnail_filename}"></a><figcaption>{image_description}</figcaption></figure>'
image_with_alttext = '<a href="{name}"><img class="thumbnail" src="{thumbnail_filename}" alt="{image_alttext}"></a>'
image_full_figure = '<figure><a href="{name}"><img class="thumbnail" src="{thumbnail_filename}" alt="{image_alttext}"></a><figcaption>{image_description}</figcaption></figure>'

25
distribusi/templates/page_template.py

@ -0,0 +1,25 @@
html_head = """
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Generated with distribusi https://git.vvvvvvaria.org/crunk/distribusi -->
<meta name="generator" content="distribusi" />
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<style>
.image{max-width: 100%%;}
.pdf object{width:640px;height: 640px;}
.dir::before{content:"📁 ";font-size:18px;}
.filename{display:block;font-family:mono;}
.unkown-file::before{content:"📄 ";font-size:18px;}
div{max-width: 640px;display:inline-block;vertical-align:top;margin:1em;padding:1em;}
video {width:640px;max-height:640px;}
%s
</style>
</head>
<body>
"""
html_footer = """
</body>
</html>
"""

2
setup.py

@ -10,7 +10,7 @@ with open("README.md", "r") as handle:
setup( setup(
name="distribusi", name="distribusi",
version="0.0.11", version="0.0.12",
url="https://git.vvvvvvaria.org/crunk/distribusi", url="https://git.vvvvvvaria.org/crunk/distribusi",
license="GPLv3", license="GPLv3",
author="Varia", author="Varia",

Loading…
Cancel
Save