picata 0.0.3__py3-none-any.whl → 0.0.5__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
entrypoint.tsx CHANGED
@@ -167,12 +167,13 @@ function renderPageContents(): void {
167
167
  const listStack: HTMLUListElement[] = [tocList];
168
168
  let currentLevel = 1;
169
169
 
170
- // Find all anchor-linked headings
170
+ // Find all anchor-linked headings inside articles
171
171
  const headings = document.querySelectorAll<HTMLElement>(
172
- "h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]",
172
+ "article h1[id], article h2[id], article h3[id], article h4[id], article h5[id], article h6[id]",
173
173
  );
174
+
174
175
  headings.forEach((heading) => {
175
- const headingLevel = parseInt(heading.tagName.substring(1)); // Extract the heading level (e.g., "1" for "H1")
176
+ const headingLevel = parseInt(heading.tagName.substring(1));
176
177
 
177
178
  // Adjust the stack to match the heading level
178
179
  while (headingLevel > currentLevel) {
picata/apps.py CHANGED
@@ -28,6 +28,6 @@ class Config(AppConfig):
28
28
 
29
29
  ## Add anchored pillcrows to headings in designated pages
30
30
  anchor_inserter = AnchorInserter(
31
- root="//main/article", targets=".//h1 | .//h2 | .//h3 | .//h4 | .//h5 | .//h6"
31
+ root=".//article", targets=".//h1 | .//h2 | .//h3 | .//h4 | .//h5 | .//h6"
32
32
  )
33
33
  HTMLProcessingMiddleware.add_transformer(anchor_inserter)
@@ -1,4 +1,4 @@
1
- {% extends "base.html" %}
1
+ {% extends "picata/base.html" %}
2
2
  {% comment %}
3
3
  Three-column layout, at `lg`-up, with a 25% aside, 50% article, and 25% nav.
4
4
 
@@ -1,4 +1,4 @@
1
- {% extends "base.html" %}
1
+ {% extends "picata/base.html" %}
2
2
 
3
3
  {% block title %}Page not found{% endblock %}
4
4
 
@@ -1,4 +1,4 @@
1
- {% extends "3_column.html" %}
1
+ {% extends "picata/3_column.html" %}
2
2
  {% load wagtailcore_tags %}
3
3
 
4
4
  {% block main_classes %}{{ block.super }} article{% endblock %}
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover" />
6
- <title>{% block document_title %}{% if title %}{{ title }} · {% endif %}[Example Site]{% endblock %}</title>
6
+ <title>{% block document_title %}{% if title %}{{ title }} · {% endif %}hpk.io{% endblock %}</title>
7
7
 
8
8
  <style>
9
9
  @font-face { font-family: 'Sacramento'; src: url("{% static 'fonts/Sacramento-Regular.ttf' %}") format("truetype"); font-weight: 400; font-style: normal; }
@@ -14,6 +14,8 @@
14
14
  @font-face { font-family: 'Zilla Slab Highlight'; src: url("{% static 'fonts/ZillaSlabHighlight-Bold.ttf' %}") format("truetype"); font-weight: 700; font-style: normal; }
15
15
  @font-face { font-family: 'Bitter'; src: url("{% static 'fonts/Bitter-Light.ttf' %}") format("truetype"); font-weight: 300; font-style: normal; }
16
16
  @font-face { font-family: 'Bitter'; src: url("{% static 'fonts/Bitter-LightItalic.ttf' %}") format("truetype"); font-weight: 300; font-style: italic; }
17
+ @font-face { font-family: 'Bitter'; src: url("{% static 'fonts/Bitter-Bold.ttf' %}") format("truetype"); font-weight: 700; font-style: normal; }
18
+ @font-face { font-family: 'Bitter'; src: url("{% static 'fonts/Bitter-BoldItalic.ttf' %}") format("truetype"); font-weight: 700; font-style: italic; }}
17
19
  @font-face { font-family: 'Fira Code'; src: url("{% static 'fonts/FiraCode-Light.ttf' %}") format("truetype"); font-weight: 300; font-style: normal; }
18
20
  @font-face { font-family: 'Fira Code'; src: url("{% static 'fonts/FiraCode-SemiBold.ttf' %}") format("truetype"); font-weight: 600; font-style: normal; }
19
21
  </style>
@@ -25,7 +27,7 @@
25
27
 
26
28
  <meta property="og:title" content="{% block og_title %}Hpk.io{% endblock %}">
27
29
  <meta property="og:description" content="{% block og_description %}Ada Wrights's website - Hpk.io{% endblock %}">
28
- <meta property="og:image" content="{% block og_image %}{% if settings.picata.SocialSettings.default_social_image %}{{ request.scheme }}://{{ request.get_host }}/{% image_url settings.hpk.SocialSettings.default_social_image 'fill-1200x630' %}{% else %}{% absolute_static 'ada-social-bear.jpg' %}{% endif %}{% endblock %}">
30
+ <meta property="og:image" content="{% block og_image %}{% if settings.picata.SocialSettings.default_social_image %}{{ request.scheme }}://{{ request.get_host }}/{% image_url settings.picata.SocialSettings.default_social_image 'fill-1200x630' %}{% else %}{% absolute_static 'ada-social-bear.jpg' %}{% endif %}{% endblock %}">
29
31
  <meta property="og:url" content="{{ request.build_absolute_uri }}">
30
32
  <meta property="og:type" content="{% block og_type %}website{% endblock %}">
31
33
 
@@ -121,7 +123,7 @@
121
123
  {% block content %}{% endblock %}
122
124
  </main>
123
125
 
124
- <footer>
126
+ <footer class="footer">
125
127
  <div>
126
128
  <p>&copy; 2024 Ada Wright</p>
127
129
  </div>
@@ -1,4 +1,4 @@
1
- {% extends "base.html" %}
1
+ {% extends "picata/base.html" %}
2
2
  {% load wagtailcore_tags %}
3
3
 
4
4
  {% block content %}
@@ -1,4 +1,4 @@
1
- {% extends "base.html" %}
1
+ {% extends "picata/base.html" %}
2
2
  {% comment %}
3
3
  Two-column layout (25%/75%), with a 2px line between the columns.
4
4
 
@@ -1,4 +1,4 @@
1
- {% extends "split_view.html" %}
1
+ {% extends "picata/split_view.html" %}
2
2
  {% load wagtailcore_tags %}
3
3
  {% comment %}
4
4
  Template for the HomePage class, utilising a split-view page layout.
@@ -1,4 +1,4 @@
1
- {% extends "dl_view.html" %}
1
+ {% extends "picata/dl_view.html" %}
2
2
  {% load wagtailcore_tags %}
3
3
 
4
4
  {% block main_classes %}{{ block.super }} post-list{% endblock %}
@@ -10,7 +10,7 @@
10
10
  </dd>
11
11
 
12
12
  {% for year, posts in posts_by_year.items %}
13
- {% include "_post_list.html" with posts=posts year=year %}
13
+ {% include "picata/_post_list.html" with posts=posts year=year %}
14
14
  {% endfor %}
15
15
 
16
16
  </dl>
@@ -1,4 +1,4 @@
1
- {% extends "3_column.html" %}
1
+ {% extends "picata/3_column.html" %}
2
2
 
3
3
  {% block title %}Home{% endblock %}
4
4
 
@@ -1,4 +1,4 @@
1
- {% extends "dl_view.html" %}
1
+ {% extends "picata/dl_view.html" %}
2
2
 
3
3
  {% block definitions %}
4
4
  <dt><p><a href="#what-is-lorem-ipsum">What is Lorem Ipsum?</a></p></dt>
@@ -1,4 +1,4 @@
1
- {% extends "split_view.html" %}
1
+ {% extends "picata/split_view.html" %}
2
2
 
3
3
  {% block content %}
4
4
  <div><p><a href="#what-is-lorem-ipsum">What is Lorem Ipsum?</a></p></div>
@@ -1,4 +1,4 @@
1
- {% extends "article.html" %}
1
+ {% extends "picata/article.html" %}
2
2
  {% load wagtailimages_tags %}
3
3
 
4
4
 
@@ -1,4 +1,4 @@
1
- {% extends "dl_view.html" %}
1
+ {% extends "picata/dl_view.html" %}
2
2
  {% load wagtailcore_tags stringify %}
3
3
 
4
4
  {% block main_classes %}{{ block.super }} post-list search-results{% endblock %}
@@ -22,7 +22,7 @@
22
22
  {% endif %}
23
23
  </dd>
24
24
 
25
- {% include "_post_list.html" with posts=pages %}
25
+ {% include "picata/_post_list.html" with posts=pages %}
26
26
 
27
27
  </dl>
28
28
  {% endblock %}
@@ -1,4 +1,4 @@
1
- {% extends "base.html" %}
1
+ {% extends "picata/base.html" %}
2
2
  {% comment %}
3
3
  Two-column layout (50%/50%), with a 2px line between the columns.
4
4
 
@@ -1,8 +1,5 @@
1
- <nav>
2
- <a href="{{ root_page.url }}">{{ root_page.title }}</a>
3
- {% for page in menu_pages %}
4
- <a href="{{ page.url }}">
5
- {{ page.title }}{% if not page.live %} (not live){% endif %}
6
- </a>
7
- {% endfor %}
8
- </nav>
1
+ {% for page in menu_pages %}
2
+ <a {% if page == current_section %}class="current" {% endif %}href="{{ page.url }}">
3
+ {{ page.title }}{% if not page.live %} (not live){% endif %}
4
+ </a>
5
+ {% endfor %}
@@ -0,0 +1,62 @@
1
+ """Filter to wrap the last two words of text in a span which prevents word-wrapping."""
2
+
3
+ from html.parser import HTMLParser
4
+
5
+ from django import template
6
+ from django.utils.html import escape
7
+ from django.utils.safestring import mark_safe
8
+
9
+ register = template.Library()
10
+
11
+
12
+ class KillOrphansParser(HTMLParser):
13
+ """Parser that wraps the last two words of visible text in a span tag."""
14
+
15
+ result: list[str]
16
+ text_chunks: list[str]
17
+
18
+ def __init__(self) -> None:
19
+ """Initialize the parser and result containers."""
20
+ super().__init__()
21
+ self.result = []
22
+ self.text_chunks = []
23
+
24
+ def handle_starttag(self, tag: str, attrs: list[tuple[str, str | None]]) -> None:
25
+ """Handle start tags and store them."""
26
+ start_tag_text = self.get_starttag_text()
27
+ if start_tag_text is not None:
28
+ self.result.append(start_tag_text)
29
+
30
+ def handle_endtag(self, tag: str) -> None:
31
+ """Handle end tags and store them."""
32
+ self.result.append(f"</{tag}>")
33
+
34
+ def handle_data(self, data: str) -> None:
35
+ """Handle text data and store it."""
36
+ self.text_chunks.append(data)
37
+ self.result.append(data)
38
+
39
+ def get_wrapped_html(self) -> str:
40
+ """Return HTML with the last two words wrapped in a span."""
41
+ full_text = "".join(self.text_chunks)
42
+ words = full_text.split()
43
+
44
+ if len(words) < 2: # noqa: PLR2004
45
+ return "".join(self.result)
46
+
47
+ wrapped_words = (
48
+ " ".join(words[:-2])
49
+ + f' <span class="whitespace-nowrap">{escape(" ".join(words[-2:]))}</span>'
50
+ )
51
+
52
+ return mark_safe( # noqa: S308
53
+ "".join(wrapped_words if chunk in full_text else chunk for chunk in self.result)
54
+ )
55
+
56
+
57
+ @register.filter
58
+ def killorphans(value: str) -> str:
59
+ """Wrap the last two words of visible text in a span tag."""
60
+ parser = KillOrphansParser()
61
+ parser.feed(value)
62
+ return parser.get_wrapped_html()
@@ -1,4 +1,4 @@
1
- """Template tags to transform Python types into human-readable strings."""
1
+ """Filter to transform Python types into human-readable strings."""
2
2
 
3
3
  from django import template
4
4
 
@@ -8,7 +8,10 @@ register = template.Library()
8
8
  @register.filter
9
9
  def stringify(value: list, quote_style: str | None = None) -> str:
10
10
  """Convert a list of strings into a human-readable string with optional quoting."""
11
- if not isinstance(value, list):
11
+ if not value:
12
+ return ""
13
+
14
+ if not (isinstance(value, list | set | tuple)):
12
15
  raise TypeError("The 'stringify' filter currently only supports lists.")
13
16
 
14
17
  quote = "'" if quote_style == "single" else '"' if quote_style == "double" else ""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: picata
3
- Version: 0.0.3
3
+ Version: 0.0.5
4
4
  Summary: Ada's Wagtail-based CMS & blog
5
5
  Project-URL: Documentation, https://github.com/hipikat/picata#readme
6
6
  Project-URL: Issues, https://github.com/hipikat/picata/issues
@@ -39,7 +39,6 @@ Classifier: Programming Language :: Python
39
39
  Classifier: Programming Language :: Python :: 3.13
40
40
  Classifier: Programming Language :: Python :: Implementation :: CPython
41
41
  Requires-Python: >=3.13
42
- Requires-Dist: gunicorn~=23.0.0
43
42
  Requires-Dist: lxml~=5.3.0
44
43
  Requires-Dist: psutil~=6.1.0
45
44
  Requires-Dist: psycopg~=3.2.3
@@ -1,12 +1,12 @@
1
1
  LICENSE.md,sha256=Bv8sMyZI5NI6DMrfiAvCwIFRLSfJkimLF2KVcUMteKU,1103
2
2
  README.md,sha256=7IWS68r8WrNkr78JVuw4qKzTbZjv_g4rXw36mn-QfTI,2846
3
- entrypoint.tsx,sha256=Tk6L2rCk0KrE5kaSL0GFuL3S19yG-BsUgvNAGe32uy8,8820
3
+ entrypoint.tsx,sha256=rXpHc3syUVomgTkY-xRwzmhjVD-ZHeymOXPBeSQloh8,8835
4
4
  manage.py,sha256=BkGWS_zb8HTvlrOxDiBaQoahUEJGCoV5ePhX-P6jIaw,426
5
5
  pygments.sass,sha256=zbDYpWda3EoGmjoC3JshZy-_CECNf6WU9abYPF8EHms,6369
6
- styles.sass,sha256=4Jb-Gxn9AP09pZzwLlCGGfeacCyrncpJAOCYcy-dyB4,8486
6
+ styles.sass,sha256=SCG5WCr0jIGzdM_Vp_j_gKxFfcTsTwLWOmaEc6uMpvU,8501
7
7
  components/HelloWorld.tsx,sha256=Kp7gvhGehfrX1mw0jgr2_D6AueFgqgfMYGkyQgvWekg,180
8
8
  picata/__init__.py,sha256=ZCIoFQ_z3ias_sP4C77EU2IUJnyv4qR0xUdJ3PIdLLM,48
9
- picata/apps.py,sha256=r5UQNm2CDP5tq22vQ_j6KuD6AGU3ODkvEQUeRvzJW0k,1259
9
+ picata/apps.py,sha256=kr6OBcYbBw9HCGG-PkoMTHR4QeyzJO8_KIWTljCTHRo,1255
10
10
  picata/blocks.py,sha256=iVNxJM_uWlQIqZA-9Nao4svkG26oK5DQEogK0q_F2Po,5286
11
11
  picata/log_utils.py,sha256=BRdB3PqpFx1XAhIyAzIOyQKiqrjbT3PBmkhH6-wAWJg,1555
12
12
  picata/middleware.py,sha256=BbAifo--C4VYg1VhU8_qbdDcJUD9zYdbxU_9nqGpMa8,2067
@@ -41,33 +41,34 @@ picata/static/picata/fonts/ZillaSlab-BoldItalic.ttf,sha256=xra8p0e0zYZ5gyu5w6BeR
41
41
  picata/static/picata/fonts/ZillaSlab-Light.ttf,sha256=x9c6KiQ-iPpyqCDb2yYgDqi0GW-DNM8YIyTXqehumJ8,239836
42
42
  picata/static/picata/fonts/ZillaSlab-LightItalic.ttf,sha256=8pgf5nlQb5DBqfaNKDj2P7iDMRwaW80YjaC3hXb72PA,245200
43
43
  picata/static/picata/fonts/ZillaSlabHighlight-Bold.ttf,sha256=MbNNCVxe1Kt-j8rJpognUmTZrh9R9je-35MgwoeL7eU,245180
44
- picata/templates/picata/3_column.html,sha256=4SYfqTbmAtYICEulpx1RWocBCQUUn32EnZJrcxfVWwA,790
45
- picata/templates/picata/404.html,sha256=4q8kKGGHWDk9Z8ThW2rP70T3SQrGNGRf153pvYcV7VE,230
44
+ picata/templates/picata/3_column.html,sha256=LdoL-Ei3zPOvzwLDve6F3iGle8fu7Dj79o7GB-SllOQ,797
45
+ picata/templates/picata/404.html,sha256=sN5q0-wM7UqU8zv_vdo8upRR1cnahiCFT92gHuytNKc,237
46
46
  picata/templates/picata/500.html,sha256=1xvvK2uoiZKkc2EuVVnbfg69KmrCJUdplR0vvFtWvKo,369
47
47
  picata/templates/picata/_post_list.html,sha256=JpvNAOGmupLQIC6lTyjoyNOyRGMUQwOqEvEaZgSPrsM,915
48
- picata/templates/picata/article.html,sha256=NBwXpicb_oL2xy3FN8_6KJNbrrQD2rTrNIu1ngOietk,794
49
- picata/templates/picata/base.html,sha256=HUzVThUqYeyeY9GGIapcWAwiBJxJ32mDFQb7Jn5yf94,8157
50
- picata/templates/picata/basic_page.html,sha256=1FS_xdL6erskk9T-_TP3JWARczVstOLzs2ttvkbPbdk,173
51
- picata/templates/picata/dl_view.html,sha256=epAV72HR2f0I3GWBEngUtYOQnHSsXs_SsNlhH7u-JbU,494
52
- picata/templates/picata/home_page.html,sha256=nVDZwlsXfKtdSwQR80e0cHtiX7hf91ws5tYhu_ug_gU,635
53
- picata/templates/picata/post_listing.html,sha256=3aSWYdPfwvYblE4s7b2P_dOLiiCWcrT1uvXRuDBak5Y,428
54
- picata/templates/picata/search_results.html,sha256=P5HwdkLX2iQjZFEtD4YOp4Mun17btshjKBw__z6q8Hs,957
55
- picata/templates/picata/split_view.html,sha256=DqRUKT5wc_-ByibQRZoyDU91omK6TgK7wC3Rp72bbgM,402
48
+ picata/templates/picata/article.html,sha256=dlrqrJLbQNMpaG6rgkN9oUZNXUFMnj8al8dG-LL8V5Y,801
49
+ picata/templates/picata/base.html,sha256=4QlQ7rS9ZDd_1-8_2awBs_6guKaKVjo731OfWd_zkVE,8476
50
+ picata/templates/picata/basic_page.html,sha256=-oVigKCOqNt-dnBKCW_pXpvs7aBu8LZCJW0i-XuyI-4,180
51
+ picata/templates/picata/dl_view.html,sha256=VMZqmA_Wy3BCT0pHP4mHtiZnnkNC--TmjBNHYuKyuTQ,501
52
+ picata/templates/picata/home_page.html,sha256=UmOONJuVC_YsscNHW-q9QnQX-VCS88_kl-pgLLgsHIo,642
53
+ picata/templates/picata/post_listing.html,sha256=nmJZEFCjtWS56BmlK0SwwdiufZM8quEaqxs_QEYYz_M,442
54
+ picata/templates/picata/search_results.html,sha256=kYckF1a9X9xkTzc04Ax7-GqafUxKR2pGvjOFNyGQIzg,971
55
+ picata/templates/picata/split_view.html,sha256=TaJT72DuWXhrpCDdCVgqmmfppHL_RO25OJZkNm_EQsM,409
56
56
  picata/templates/picata/blocks/icon_link_item.html,sha256=t-9LoA00Nv-H031yIL8es89zevbn315jlr5LTiAyM_o,301
57
57
  picata/templates/picata/blocks/icon_link_list.html,sha256=7KU-hLOhAdKnoecLcugqWNzO5SgPnN9XfTDs1y60f0c,261
58
58
  picata/templates/picata/blocks/icon_link_list_stream.html,sha256=B7yz5Ss_dT_5NIMsVwggnGFGmRgawNQrvnowaJUSUnw,69
59
- picata/templates/picata/previews/3col.html,sha256=CwnWJpK5dvmVxqhBuu0QSFHWKhZlnc3xEowMQk3ltBo,4473
60
- picata/templates/picata/previews/dl.html,sha256=ANOqlD3nlj5NF-4sPmya3eo0CNwmxgmUXswmz22Bh30,2095
61
- picata/templates/picata/previews/split.html,sha256=hqv27u4wKTX8jJiNMazXioyRU9Uajpys_7LVQeI3NtE,2106
62
- picata/templates/picata/previews/theme_gallery.html,sha256=A3HRSP5mc5FbpN9VXcZxgof-4sGR8Ylv6hXHY6Y_Ydo,8013
63
- picata/templates/picata/tags/site_menu.html,sha256=Tb_BjV88ZH-nRb76alzSXPVUokPC9O2mVByKmeAgQWA,223
59
+ picata/templates/picata/previews/3col.html,sha256=geY0cLqkq72mVcHOcYrpLBJfOYs0KYbcUgKP2jswl8E,4480
60
+ picata/templates/picata/previews/dl.html,sha256=iO-Aqa7UxhTlJlgbHr8nN_YTtFxy8ge_cqQdyFmaWvs,2102
61
+ picata/templates/picata/previews/split.html,sha256=FtkVTs8f3G9uqMciioUyGtbJ_9jtNo5Iwek7Vb-Vziw,2113
62
+ picata/templates/picata/previews/theme_gallery.html,sha256=FzeaOpS9mcZpg5AwqBFbmqIN5kz2a7QwJjJMXUu7BBI,8020
63
+ picata/templates/picata/tags/site_menu.html,sha256=5V7uo71FFsAPMoXo6NUMsOeu5eHpVor60iNgSt_QoR4,201
64
64
  picata/templatetags/__init__.py,sha256=YNGfxmI00gewcJkkUlH219BHimHD_4p5Lz-zXPvgO-U,47
65
65
  picata/templatetags/absolute_static.py,sha256=YpkPQhquvk2dRcnGy4g2yeLEBzRirOaQNs8AlGyM8tc,457
66
+ picata/templatetags/kill_orphans.py,sha256=d549iZdeaicslDm4atf5bC1QsRkHTgkp9xuMkMX14lQ,1965
66
67
  picata/templatetags/menu_tags.py,sha256=QBv2HNA-phOedijP2YErBkO067oHZUD8Bh80SaGwjdY,1844
67
- picata/templatetags/stringify.py,sha256=QxStfcCgn29IGinH_bdsZoaiTLL7pz30ObDitlagecs,850
68
+ picata/templatetags/stringify.py,sha256=XwSRNgaDlDm38TWOXcb8nl8NEttXXZ7C5_06znhv1ms,896
68
69
  picata/typing/__init__.py,sha256=7qXco9cqvbveKX0Xprrc8DmgXa3MpkIQXtFsHDe77os,405
69
70
  picata/typing/wagtail.py,sha256=V0n9GYYb_CM5ic54lcRtpN6lhN37-QdRzz2mGKm3Cwc,664
70
- picata-0.0.3.dist-info/METADATA,sha256=zs5razB4JggccKL9khkUsHAqauD_YaFh-a7t0IkY6Fw,5124
71
- picata-0.0.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
72
- picata-0.0.3.dist-info/licenses/LICENSE.md,sha256=Bv8sMyZI5NI6DMrfiAvCwIFRLSfJkimLF2KVcUMteKU,1103
73
- picata-0.0.3.dist-info/RECORD,,
71
+ picata-0.0.5.dist-info/METADATA,sha256=m1fHFygjHAS6VJjttS73BVVosW3brx87N-XPpNR_16o,5092
72
+ picata-0.0.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
73
+ picata-0.0.5.dist-info/licenses/LICENSE.md,sha256=Bv8sMyZI5NI6DMrfiAvCwIFRLSfJkimLF2KVcUMteKU,1103
74
+ picata-0.0.5.dist-info/RECORD,,
styles.sass CHANGED
@@ -9,6 +9,7 @@
9
9
  @layer base
10
10
  body
11
11
  @apply text-base font-serif font-light
12
+
12
13
  h1, h2, h3, h4, h5, h6
13
14
  @apply font-heading font-normal
14
15
  &:not(:first-child)
@@ -26,7 +27,9 @@
26
27
  h6
27
28
  @apply text-sm leading-relaxed
28
29
  strong, b
29
- @apply font-serif font-bold
30
+ @apply font-bold
31
+ em, i
32
+ @apply italic
30
33
  code, pre
31
34
  @apply font-mono font-light
32
35
  &.strong
@@ -34,7 +37,6 @@
34
37
  .highlight
35
38
  @apply font-highlight font-bold
36
39
 
37
-
38
40
  // Main page layout
39
41
  html
40
42
  scroll-behavior: smooth
File without changes