Compare commits
2 commits
cf0264b5a6
...
c8faa30724
Author | SHA1 | Date | |
---|---|---|---|
c8faa30724 | |||
0d1d102f47 |
7 changed files with 57 additions and 78 deletions
1
Pipfile
1
Pipfile
|
@ -48,6 +48,7 @@ pyup-django = "*"
|
||||||
"jinja2" = "*"
|
"jinja2" = "*"
|
||||||
msgpack = "*"
|
msgpack = "*"
|
||||||
django-randomslugfield = "*"
|
django-randomslugfield = "*"
|
||||||
|
ago = "*"
|
||||||
|
|
||||||
[dev-packages]
|
[dev-packages]
|
||||||
ptpython = "*"
|
ptpython = "*"
|
||||||
|
|
106
Pipfile.lock
generated
106
Pipfile.lock
generated
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"_meta": {
|
"_meta": {
|
||||||
"hash": {
|
"hash": {
|
||||||
"sha256": "868083c903aad618a8a0907889d57326df0a7a0b4b521441464281cbaefd67b6"
|
"sha256": "64691d8ff1af1c678ce146dc2801ade76d3b44f364baeef46b8e956a8776d259"
|
||||||
},
|
},
|
||||||
"pipfile-spec": 6,
|
"pipfile-spec": 6,
|
||||||
"requires": {
|
"requires": {
|
||||||
|
@ -23,6 +23,14 @@
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==0.3.0"
|
"version": "==0.3.0"
|
||||||
},
|
},
|
||||||
|
"ago": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:81e838ef978a19f8a263e72e4ae75345b639943e9853b33c4572b04b1d6f01f9",
|
||||||
|
"sha256:aaba95a800e96aa50173d5fa32f3870dc9faa7355cb8b493ddfc7aad7259c4e8"
|
||||||
|
],
|
||||||
|
"index": "pypi",
|
||||||
|
"version": "==0.0.92"
|
||||||
|
},
|
||||||
"argon2-cffi": {
|
"argon2-cffi": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:05dd15949be3a7d9f65807fe58fad70526023a319747054bb89da209c4071a33",
|
"sha256:05dd15949be3a7d9f65807fe58fad70526023a319747054bb89da209c4071a33",
|
||||||
|
@ -198,11 +206,11 @@
|
||||||
},
|
},
|
||||||
"django-cors-headers": {
|
"django-cors-headers": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0e9532628b3aa8806442d4d0b15e56112e6cfbef3735e13401935c98b842a2b4",
|
"sha256:1460b67c51706307e3f66515e86b10181badd66448a2fc44278f47bf402c6fd3",
|
||||||
"sha256:c7ec4816ec49416517b84f317499d1519db62125471922ab78d670474ed9b987"
|
"sha256:3c618a964e3034ae4dad8bbb902e625daa6c894444ddeaf7b24125299add54f0"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==2.2.0"
|
"version": "==2.3.0"
|
||||||
},
|
},
|
||||||
"django-debug-toolbar": {
|
"django-debug-toolbar": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -396,36 +404,28 @@
|
||||||
},
|
},
|
||||||
"lxml": {
|
"lxml": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:01c45df6d90497c20aa2a07789a41941f9a1029faa30bf725fc7f6d515b1afe9",
|
"sha256:0941f4313208c07734410414d8308812b044fd3fb98573454e3d3a0d2e201f3d",
|
||||||
"sha256:0c9fef4f8d444e337df96c54544aeb85b7215b2ed7483bb6c35de97ac99f1bcd",
|
"sha256:0b18890aa5730f9d847bc5469e8820f782d72af9985a15a7552109a86b01c113",
|
||||||
"sha256:0e3cd94c95d30ba9ca3cff40e9b2a14e1a10a4fd8131105b86c6b61648f57e4b",
|
"sha256:21f427945f612ac75576632b1bb8c21233393c961f2da890d7be3927a4b6085f",
|
||||||
"sha256:0e7996e9b46b4d8b4ac1c329a00e2d10edcd8380b95d2a676fccabf4c1dd0512",
|
"sha256:24cf6f622a4d49851afcf63ac4f0f3419754d4e98a7a548ab48dd03c635d9bd3",
|
||||||
"sha256:1858b1933d483ec5727549d3fe166eeb54229fbd6a9d3d7ea26d2c8a28048058",
|
"sha256:2e43b2e5b7d2b9abe6e0301eef2c2c122ab45152b968910eae68bdee2c4cfae0",
|
||||||
"sha256:1b164bba1320b14905dcff77da10d5ce9c411ac4acc4fb4ed9a2a4d10fae38c9",
|
"sha256:329a6d8b6d36f7d6f8b6c6a1db3b2c40f7e30a19d3caf62023c9d6a677c1b5e1",
|
||||||
"sha256:1b46f37927fa6cd1f3fe34b54f1a23bd5bea1d905657289e08e1297069a1a597",
|
"sha256:4651ea05939374cfb5fe87aab5271ed38c31ea47997e17ec3834b75b94bd9f15",
|
||||||
"sha256:231047b05907315ae9a9b6925751f9fd2c479cf7b100fff62485a25e382ca0d4",
|
"sha256:4be3bbfb2968d7da6e5c2cd4104fc5ec1caf9c0794f6cae724da5a53b4d9f5a3",
|
||||||
"sha256:28f0c6652c1b130f1e576b60532f84b19379485eb8da6185c29bd8c9c9bc97bf",
|
"sha256:622f7e40faef13d232fb52003661f2764ce6cdef3edb0a59af7c1559e4cc36d1",
|
||||||
"sha256:34d49d0f72dd82b9530322c48b70ac78cca0911275da741c3b1d2f3603c5f295",
|
"sha256:6ec908b4c8a4faa7fe1a0080768e2ce733f268b287dfefb723273fb34141475f",
|
||||||
"sha256:3682a17fbf72d56d7e46db2e80ca23850b79c28cfe75dcd9b82f58808f730909",
|
"sha256:8c39babd923c431dcf1e5874c0f778d3a5c745a62c3a9b6bd755efd489ee8a1d",
|
||||||
"sha256:3cf2830b9a6ad7f6e965fa53a768d4d2372a7856f20ffa6ce43d2fe9c0d34b19",
|
"sha256:949ca5bc56d6cb73d956f4862ba06ad3c5d2808eac76304284f53ae0c8b2334a",
|
||||||
"sha256:5b653c9379ce29ce271fbe1010c5396670f018e78b643e21beefbb3dc6d291de",
|
"sha256:9f0daddeefb0791a600e6195441910bdf01eac470be596b9467e6122b51239a6",
|
||||||
"sha256:65a272821d5d8194358d6b46f3ca727fa56a6b63981606eac737c86d27309cdd",
|
"sha256:a359893b01c30e949eae0e8a85671a593364c9f0b8162afe0cb97317af0953bf",
|
||||||
"sha256:691f2cd97cf026c611df1ea5055755eec7f878f2d4f4330dc8686583de6fc5fd",
|
"sha256:ad5d5d8efed59e6b1d4c50c1eac59fb6ecec91b2073676af1e15fc4d43e9b6c5",
|
||||||
"sha256:6b6379495d3baacf7ed755ac68547c8dff6ce5d37bf370f0b7678888dc1283f9",
|
"sha256:bc1a36f95a6b3667c09b34995fc3a46a82e4cf0dc3e7ab281e4c77b15bd7af05",
|
||||||
"sha256:75322a531504d4f383264391d89993a42e286da8821ddc5ac315e57305cb84f0",
|
"sha256:be37b3f55b6d7d923f43bf74c356fc1878eb36e28505f38e198cb432c19c7b1a",
|
||||||
"sha256:7f457cbda964257f443bac861d3a36732dcba8183149e7818ee2fb7c86901b94",
|
"sha256:c45bca5e544eb75f7500ffd730df72922eb878a2f0213b0dc5a5f357ded3a85d",
|
||||||
"sha256:7ff1fc76d8804e0f870c343a72007ff587090c218b0f92d8ee784ac2b6eaf5b9",
|
"sha256:ccee7ebbb4735ebc341d347fca9ee09f2fa6c0580528c1414bc4e1d31372835c",
|
||||||
"sha256:8523fbde9c2216f3f2b950cb01ebe52e785eaa8a07ffeb456dd3576ca1b4fb9b",
|
"sha256:f7d9d5aa1c7e54167f1a3cba36b5c52c7c540f30952c9bd7d9302a1eda318424"
|
||||||
"sha256:8f37627f16e026523fca326f1b5c9a43534862fede6c3e99c2ba6a776d75c1ab",
|
|
||||||
"sha256:a7182ea298cc3555ea56ffbb0748fe0d5e0d81451e2bc16d7f4645cd01b1ca70",
|
|
||||||
"sha256:abbd2fb4a5a04c11b5e04eb146659a0cf67bb237dd3d7ca3b9994d3a9f826e55",
|
|
||||||
"sha256:accc9f6b77bed0a6f267b4fae120f6008a951193d548cdbe9b61fc98a08b1cf8",
|
|
||||||
"sha256:bd88c8ce0d1504fdfd96a35911dd4f3edfb2e560d7cfdb5a3d09aa571ae5fbae",
|
|
||||||
"sha256:c557ad647facb3c0027a9d0af58853f905e85a0a2f04dcb73f8e665272fcdc3a",
|
|
||||||
"sha256:defabb7fbb99f9f7b3e0b24b286a46855caef4776495211b066e9e6592d12b04",
|
|
||||||
"sha256:e2629cdbcad82b83922a3488937632a4983ecc0fed3e5cfbf430d069382eeb9b"
|
|
||||||
],
|
],
|
||||||
"version": "==4.2.1"
|
"version": "==4.2.3"
|
||||||
},
|
},
|
||||||
"markdown": {
|
"markdown": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -623,23 +623,10 @@
|
||||||
},
|
},
|
||||||
"pyyaml": {
|
"pyyaml": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0c507b7f74b3d2dd4d1322ec8a94794927305ab4cebbe89cc47fe5e81541e6e8",
|
"sha256:a9b322285f419429402d5ce15e8f6d5c7a64f659eb87251af8b35c106f00a8e3"
|
||||||
"sha256:16b20e970597e051997d90dc2cddc713a2876c47e3d92d59ee198700c5427736",
|
|
||||||
"sha256:3262c96a1ca437e7e4763e2843746588a965426550f3797a79fca9c6199c431f",
|
|
||||||
"sha256:326420cbb492172dec84b0f65c80942de6cedb5233c413dd824483989c000608",
|
|
||||||
"sha256:4474f8ea030b5127225b8894d626bb66c01cda098d47a2b0d3429b6700af9fd8",
|
|
||||||
"sha256:592766c6303207a20efc445587778322d7f73b161bd994f227adaa341ba212ab",
|
|
||||||
"sha256:5ac82e411044fb129bae5cfbeb3ba626acb2af31a8d17d175004b70862a741a7",
|
|
||||||
"sha256:5f84523c076ad14ff5e6c037fe1c89a7f73a3e04cf0377cb4d017014976433f3",
|
|
||||||
"sha256:827dc04b8fa7d07c44de11fabbc888e627fa8293b695e0f99cb544fdfa1bf0d1",
|
|
||||||
"sha256:b4c423ab23291d3945ac61346feeb9a0dc4184999ede5e7c43e1ffb975130ae6",
|
|
||||||
"sha256:bc6bced57f826ca7cb5125a10b23fd0f2fff3b7c4701d64c439a300ce665fff8",
|
|
||||||
"sha256:c01b880ec30b5a6e6aa67b09a2fe3fb30473008c85cd6a67359a1b15ed6d83a4",
|
|
||||||
"sha256:ca233c64c6e40eaa6c66ef97058cdc80e8d0157a443655baa1b2966e812807ca",
|
|
||||||
"sha256:e863072cdf4c72eebf179342c94e6989c67185842d9997960b3e69290b2fa269"
|
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==3.12"
|
"version": "==4.1"
|
||||||
},
|
},
|
||||||
"qrcode": {
|
"qrcode": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -824,10 +811,10 @@
|
||||||
},
|
},
|
||||||
"py": {
|
"py": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:29c9fab495d7528e80ba1e343b958684f4ace687327e6f789a94bf3d1915f881",
|
"sha256:3fd59af7435864e1a243790d322d763925431213b6b8529c6ca71081ace3bbf7",
|
||||||
"sha256:983f77f3331356039fdd792e9220b7b8ee1aa6bd2b25f567a963ff1de5a64f6a"
|
"sha256:e31fb2767eb657cbde86c454f02e99cb846d3cd9d61b318525140214fdc0e98e"
|
||||||
],
|
],
|
||||||
"version": "==1.5.3"
|
"version": "==1.5.4"
|
||||||
},
|
},
|
||||||
"pygments": {
|
"pygments": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -853,23 +840,10 @@
|
||||||
},
|
},
|
||||||
"pyyaml": {
|
"pyyaml": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0c507b7f74b3d2dd4d1322ec8a94794927305ab4cebbe89cc47fe5e81541e6e8",
|
"sha256:a9b322285f419429402d5ce15e8f6d5c7a64f659eb87251af8b35c106f00a8e3"
|
||||||
"sha256:16b20e970597e051997d90dc2cddc713a2876c47e3d92d59ee198700c5427736",
|
|
||||||
"sha256:3262c96a1ca437e7e4763e2843746588a965426550f3797a79fca9c6199c431f",
|
|
||||||
"sha256:326420cbb492172dec84b0f65c80942de6cedb5233c413dd824483989c000608",
|
|
||||||
"sha256:4474f8ea030b5127225b8894d626bb66c01cda098d47a2b0d3429b6700af9fd8",
|
|
||||||
"sha256:592766c6303207a20efc445587778322d7f73b161bd994f227adaa341ba212ab",
|
|
||||||
"sha256:5ac82e411044fb129bae5cfbeb3ba626acb2af31a8d17d175004b70862a741a7",
|
|
||||||
"sha256:5f84523c076ad14ff5e6c037fe1c89a7f73a3e04cf0377cb4d017014976433f3",
|
|
||||||
"sha256:827dc04b8fa7d07c44de11fabbc888e627fa8293b695e0f99cb544fdfa1bf0d1",
|
|
||||||
"sha256:b4c423ab23291d3945ac61346feeb9a0dc4184999ede5e7c43e1ffb975130ae6",
|
|
||||||
"sha256:bc6bced57f826ca7cb5125a10b23fd0f2fff3b7c4701d64c439a300ce665fff8",
|
|
||||||
"sha256:c01b880ec30b5a6e6aa67b09a2fe3fb30473008c85cd6a67359a1b15ed6d83a4",
|
|
||||||
"sha256:ca233c64c6e40eaa6c66ef97058cdc80e8d0157a443655baa1b2966e812807ca",
|
|
||||||
"sha256:e863072cdf4c72eebf179342c94e6989c67185842d9997960b3e69290b2fa269"
|
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==3.12"
|
"version": "==4.1"
|
||||||
},
|
},
|
||||||
"six": {
|
"six": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
|
|
@ -9,12 +9,12 @@
|
||||||
{{i}}<a class="u-uid u-url" href="{{ entry.url }}">
|
{{i}}<a class="u-uid u-url" href="{{ entry.url }}">
|
||||||
{{i}}<time class="dt-published media" datetime="{{ entry.published.isoformat() }}">
|
{{i}}<time class="dt-published media" datetime="{{ entry.published.isoformat() }}">
|
||||||
{{i}}<i class="fas fa-fw fa-calendar" aria-hidden="true"></i>
|
{{i}}<i class="fas fa-fw fa-calendar" aria-hidden="true"></i>
|
||||||
{{i}}<div class="media-body">{{ entry.published | naturaltime }}</div>
|
{{i}}<div class="media-body">{{ entry.published | ago }}</div>
|
||||||
{{i}}</time>
|
{{i}}</time>
|
||||||
{{i}}</a>
|
{{i}}</a>
|
||||||
{{i}}<time class="dt-updated media" datetime="{{ entry.updated.isoformat() }}"{% if (entry.updated | naturaltime) == (entry.published | naturaltime) %} hidden{% endif %}>
|
{{i}}<time class="dt-updated media" datetime="{{ entry.updated.isoformat() }}"{% if (entry.updated | ago) == (entry.published | ago) %} hidden{% endif %}>
|
||||||
{{i}}<i class="fas fa-fw fa-pencil-alt" aria-hidden="true"></i>
|
{{i}}<i class="fas fa-fw fa-pencil-alt" aria-hidden="true"></i>
|
||||||
{{i}}<div class="media-body">{{ entry.updated | naturaltime }}</div>
|
{{i}}<div class="media-body">{{ entry.updated | ago }}</div>
|
||||||
{{i}}</time>
|
{{i}}</time>
|
||||||
{{i}}<a class="u-url media" href="{{ entry.short_url }}">
|
{{i}}<a class="u-url media" href="{{ entry.short_url }}">
|
||||||
{{i}}<i class="fas fa-fw fa-link" aria-hidden="true"></i>
|
{{i}}<i class="fas fa-fw fa-link" aria-hidden="true"></i>
|
||||||
|
@ -37,14 +37,12 @@
|
||||||
|
|
||||||
{% for c in entry.cats.all() %}
|
{% for c in entry.cats.all() %}
|
||||||
{{i}}<a class="p-category card-link" href="{{ c.url }}">
|
{{i}}<a class="p-category card-link" href="{{ c.url }}">
|
||||||
{{i}}<i class="fas fa-paw" aria-hidden="true"></i>
|
{{i}}<i class="fas fa-paw" aria-hidden="true"></i> {{ c.name }}
|
||||||
{{i}}{{ c.name }}
|
|
||||||
{{i}}</a>
|
{{i}}</a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% for s in entry.syndications.all() %}
|
{% for s in entry.syndications.all() %}
|
||||||
{{i}}<a class="u-syndication card-link" href="{{ s.url }}">
|
{{i}}<a class="u-syndication card-link" href="{{ s.url }}">
|
||||||
{{i}}<i class="{{ s.profile.site.icon }}" aria-hidden="true"></i>
|
{{i}}<i class="{{ s.profile.site.icon }}" aria-hidden="true"></i> {{ s.profile }}
|
||||||
{{i}}{{ s.profile }}
|
|
||||||
{{i}}</a>
|
{{i}}</a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{{i}}</div>
|
{{i}}</div>
|
||||||
|
|
|
@ -17,7 +17,8 @@ ol.entries, div.entry
|
||||||
align-items flex-start
|
align-items flex-start
|
||||||
font-size 0.8rem
|
font-size 0.8rem
|
||||||
margin-right 0.4rem
|
margin-right 0.4rem
|
||||||
width 7rem
|
flex-basis 7rem
|
||||||
|
max-width 10%
|
||||||
|
|
||||||
a.p-author
|
a.p-author
|
||||||
align-self center
|
align-self center
|
||||||
|
@ -51,4 +52,3 @@ ol.entries, div.entry
|
||||||
margin-bottom 0
|
margin-bottom 0
|
||||||
.card-link
|
.card-link
|
||||||
font-size 0.8rem
|
font-size 0.8rem
|
||||||
white-space nowrap
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
from django.contrib.humanize.templatetags.humanize import naturaltime
|
|
||||||
from django.contrib.staticfiles.storage import staticfiles_storage
|
from django.contrib.staticfiles.storage import staticfiles_storage
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
|
@ -8,6 +7,7 @@ from compressor.contrib.jinja2ext import CompressorExtension
|
||||||
from django_activeurl.ext.django_jinja import ActiveUrl
|
from django_activeurl.ext.django_jinja import ActiveUrl
|
||||||
|
|
||||||
from entries.kinds import all as entry_kinds
|
from entries.kinds import all as entry_kinds
|
||||||
|
from .ago import ago
|
||||||
from .markdown import markdown
|
from .markdown import markdown
|
||||||
from ..theme import color as theme_color
|
from ..theme import color as theme_color
|
||||||
from ..utils import friendly_url, load_package_json
|
from ..utils import friendly_url, load_package_json
|
||||||
|
@ -21,9 +21,9 @@ def environment(**options):
|
||||||
**options
|
**options
|
||||||
)
|
)
|
||||||
env.filters.update({
|
env.filters.update({
|
||||||
|
'ago': ago,
|
||||||
'friendly_url': friendly_url,
|
'friendly_url': friendly_url,
|
||||||
'markdown': markdown,
|
'markdown': markdown,
|
||||||
'naturaltime': naturaltime,
|
|
||||||
})
|
})
|
||||||
env.globals.update({
|
env.globals.update({
|
||||||
'entry_kinds': entry_kinds,
|
'entry_kinds': entry_kinds,
|
||||||
|
|
6
lemoncurry/jinja2/ago.py
Normal file
6
lemoncurry/jinja2/ago.py
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
from ago import human
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
|
||||||
|
def ago(dt: datetime) -> str:
|
||||||
|
return human(dt, past_tense='{}', abbreviate=True)
|
|
@ -68,7 +68,7 @@ body
|
||||||
|
|
||||||
|
|
||||||
> main
|
> main
|
||||||
padding 2rem
|
padding 2rem 1rem
|
||||||
width 100%
|
width 100%
|
||||||
flex 1
|
flex 1
|
||||||
display flex
|
display flex
|
||||||
|
|
Loading…
Reference in a new issue