focomy 0.1.117__py3-none-any.whl → 0.1.119__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- core/admin/routes.py +7 -0
- core/engine/routes.py +1 -0
- core/services/theme.py +1 -0
- core/templates/admin/base.html +3 -0
- {focomy-0.1.117.dist-info → focomy-0.1.119.dist-info}/METADATA +1 -1
- {focomy-0.1.117.dist-info → focomy-0.1.119.dist-info}/RECORD +11 -10
- themes/corporate/customizations.json +29 -0
- themes/default/templates/base.html +19 -1
- {focomy-0.1.117.dist-info → focomy-0.1.119.dist-info}/WHEEL +0 -0
- {focomy-0.1.117.dist-info → focomy-0.1.119.dist-info}/entry_points.txt +0 -0
- {focomy-0.1.117.dist-info → focomy-0.1.119.dist-info}/licenses/LICENSE +0 -0
core/admin/routes.py
CHANGED
|
@@ -198,6 +198,12 @@ async def get_context(
|
|
|
198
198
|
except Exception:
|
|
199
199
|
pass # Post content type may not exist
|
|
200
200
|
|
|
201
|
+
# Get active theme for customize link
|
|
202
|
+
from ..services.settings import SettingsService
|
|
203
|
+
settings_svc = SettingsService(db)
|
|
204
|
+
theme_settings = await settings_svc.get_by_category("theme")
|
|
205
|
+
active_theme = theme_settings.get("active", "default")
|
|
206
|
+
|
|
201
207
|
return {
|
|
202
208
|
"request": request,
|
|
203
209
|
"content_types": content_types,
|
|
@@ -208,6 +214,7 @@ async def get_context(
|
|
|
208
214
|
"user_role": user_role,
|
|
209
215
|
"channels": channels,
|
|
210
216
|
"orphan_post_count": orphan_post_count,
|
|
217
|
+
"active_theme": active_theme,
|
|
211
218
|
}
|
|
212
219
|
|
|
213
220
|
|
core/engine/routes.py
CHANGED
|
@@ -160,6 +160,7 @@ async def render_theme(
|
|
|
160
160
|
if admin_info:
|
|
161
161
|
context["is_admin"] = True
|
|
162
162
|
context["admin_user"] = admin_info["user_data"]
|
|
163
|
+
context["active_theme"] = active_theme # For customize link
|
|
163
164
|
# Build edit URL if entity provided
|
|
164
165
|
if entity and content_type:
|
|
165
166
|
context["edit_url"] = f"/admin/{content_type}/{entity.id}/edit"
|
core/services/theme.py
CHANGED
|
@@ -1194,6 +1194,7 @@ body {
|
|
|
1194
1194
|
|
|
1195
1195
|
# Add theme CSS to context
|
|
1196
1196
|
context["theme_css"] = self.get_css_variables(theme_name)
|
|
1197
|
+
context["customizations"] = self.get_customizations(theme_name)
|
|
1197
1198
|
context["current_year"] = datetime.now().year
|
|
1198
1199
|
context.setdefault("site_name", "Focomy")
|
|
1199
1200
|
|
core/templates/admin/base.html
CHANGED
|
@@ -551,6 +551,9 @@
|
|
|
551
551
|
</a>
|
|
552
552
|
|
|
553
553
|
<div class="nav-section">外観</div>
|
|
554
|
+
<a href="/admin/themes/{{ active_theme }}/customize" class="nav-item {% if current_page == 'customize' %}active{% endif %}">
|
|
555
|
+
カスタマイズ
|
|
556
|
+
</a>
|
|
554
557
|
<a href="/admin/themes" class="nav-item {% if current_page == 'themes' %}active{% endif %}">
|
|
555
558
|
テーマ
|
|
556
559
|
</a>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: focomy
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.119
|
|
4
4
|
Summary: The Most Beautiful CMS - A metadata-driven, zero-duplicate-code content management system
|
|
5
5
|
Project-URL: Homepage, https://github.com/focomy/focomy
|
|
6
6
|
Project-URL: Documentation, https://focomy.dev/docs
|
|
@@ -7,7 +7,7 @@ core/rate_limit.py,sha256=CX5UjmsU03aFWKXSKjweoHvH2xn0v4NBHNN5ynJC8LE,180
|
|
|
7
7
|
core/relations.yaml,sha256=7GUCrphKaouEXNkyd8Ht99e6TcUPERhc4m36RGcc41U,2128
|
|
8
8
|
core/utils.py,sha256=Rqs1WStB0JjTb8-750jL-xJ_kaPH3ddupvqt46BXIBc,2754
|
|
9
9
|
core/admin/__init__.py,sha256=IXrr-z-IDXmYodaZ-cVDou6wr_vsVhyWmXHdSNKkQsk,94
|
|
10
|
-
core/admin/routes.py,sha256=
|
|
10
|
+
core/admin/routes.py,sha256=6l24uI8gNiwBTa6YzOstMYik8DzBZaBcqsuCPzST4oU,150908
|
|
11
11
|
core/admin/url.py,sha256=FlusKnSz3bZgPSBmRu-dI3W-bQo7lKBDZ3zN8cFHwQc,2243
|
|
12
12
|
core/api/__init__.py,sha256=H1StbYGDVRS6g-Jk3UUf17ibAz1K8IUa27NfPMkaNrA,19
|
|
13
13
|
core/api/auth.py,sha256=Zb37IHcUSjf8_hXiVzhoZPQw6WAiOOS_AoMqE96yat8,11565
|
|
@@ -44,7 +44,7 @@ core/content_types/user.yaml,sha256=y3SwqzIc9_6C7R1GULk7AwYJPxcTT38ZmZe4_wekfyU,
|
|
|
44
44
|
core/content_types/widget.yaml,sha256=Jotbts5QQtHaF2bJWQL3rkEoCkp_aq_A3gN-58eJwv8,1454
|
|
45
45
|
core/content_types/workflow_history.yaml,sha256=3wi58LNLYbk7t6Z2QDRi9whQSedJCXKVKuyBhixNUK0,518
|
|
46
46
|
core/engine/__init__.py,sha256=ycR0Kdn6buwdCH6QFG8bV69wFciFSKEg9Ro26cHpa2U,83
|
|
47
|
-
core/engine/routes.py,sha256=
|
|
47
|
+
core/engine/routes.py,sha256=r81cRjXcSpCMqr4CZDrfmGQnupPE7_yVAMLJL9psRiA,43922
|
|
48
48
|
core/migrations/env.py,sha256=1dLI8qcGojLDR_--MdgwP5q-V0p2Z-32klSPjokXx4M,1389
|
|
49
49
|
core/migrations/script.py.mako,sha256=LyYLSC7HzBBGwHZ8s2SguBPMXsWCph0FJp49kPsGhU8,590
|
|
50
50
|
core/migrations/versions/2038bdf6693b_add_import_jobs_table.py,sha256=v8lPC5WmwpUfHUG_YgQn6jepPtfKWFn0JIj9XvD9224,2325
|
|
@@ -124,7 +124,7 @@ core/services/seo.py,sha256=qFKKnAzZ2CspWzlHHxvfKx4JBVgNhPWxCSn-adX-2z4,15658
|
|
|
124
124
|
core/services/settings.py,sha256=oZJx1HgFNeSicagtURXHbqq0_O3yPwvcwosuqDmZ13c,8822
|
|
125
125
|
core/services/spam_filter.py,sha256=2O8YWDlZoCr7MhGzsEsx6AKm2SgBP3-kxsXaETVd-0A,11314
|
|
126
126
|
core/services/storage.py,sha256=gaaVf594Ck-zkZMtdt--YcIMvWgPBs7ZGPY0FRIVIzQ,8807
|
|
127
|
-
core/services/theme.py,sha256=
|
|
127
|
+
core/services/theme.py,sha256=4_X8WuemsaONHqy1h4agCI5gZAu7tcIA9sWVr6_ZRbE,52982
|
|
128
128
|
core/services/theme_inheritance.py,sha256=v4AT_VmVLQ0o3O0bO1S9qGZpnGX5d41JPrID1lmAxZI,9418
|
|
129
129
|
core/services/thumbnail.py,sha256=ey1Gxl5sXr-u9GoiLe6cr9Mu6ez2kjkDrWWcQWD-Rnw,6726
|
|
130
130
|
core/services/update.py,sha256=8me-Gy2Esi5HeTX1PdFI0U4vVMqKkeBHzc_SpaGuJ5g,9281
|
|
@@ -150,7 +150,7 @@ core/services/wordpress_import/rollback.py,sha256=NomM71QsBI3nt1Y_Hpod2nw-E9kpXQ
|
|
|
150
150
|
core/services/wordpress_import/verification.py,sha256=efaTdah8oc63MsqJv-OWuse81ukxuLxl1xSwMYybJNY,19701
|
|
151
151
|
core/services/wordpress_import/wxr_parser.py,sha256=GrfiMoSj75hp3beHx9aLe-lxXtoWmq5eP_Jzx8UajKE,15982
|
|
152
152
|
core/templates/admin/backup.html,sha256=Di93BRvmyxdvF-eOAMKTYFB7qubH1Fms7ppYbJ3YHiA,3165
|
|
153
|
-
core/templates/admin/base.html,sha256=
|
|
153
|
+
core/templates/admin/base.html,sha256=jsOz2mG2HzDhTriZ3Pi6Z3MjsxGnoGvMqDzlSJz737Q,24127
|
|
154
154
|
core/templates/admin/comments.html,sha256=AEzCMYu1-EdFC1yUa9oIObtRS-U9RlMTe_5P3O5alb8,10012
|
|
155
155
|
core/templates/admin/customize.html,sha256=UohKyxBDmKhtbOiipyRkFJlrD_5u0JIc8b7--U5EuUk,18631
|
|
156
156
|
core/templates/admin/dashboard.html,sha256=WzURfANu1k9AIjdP82fwJE1o3sRhNVr77iUCRfUoBm8,3439
|
|
@@ -179,6 +179,7 @@ themes/blog/theme.yaml,sha256=ic_WJaBg9fKMOTFf8-E-wP3GODjdizoj9-CepSzCBFE,2207
|
|
|
179
179
|
themes/blog/templates/base.html,sha256=kD93PGSKCMEOEVieuPwHGmGlIsUGDm84O1n9E1lOUOA,11705
|
|
180
180
|
themes/blog/templates/home.html,sha256=TqCgSP9Uz_ALyc59jbdZnMtJrerey7zd9_yl0jUjnVI,1911
|
|
181
181
|
themes/blog/templates/post.html,sha256=-h4DwJuMTAAJmoNkg0NJDqe6StzuEfJtfRDDZ5L9MmI,6229
|
|
182
|
+
themes/corporate/customizations.json,sha256=UgAoQniAcTcUm5rPu0uoSdBZ2xvN5SpuoMt9Rh8hU9E,820
|
|
182
183
|
themes/corporate/theme.yaml,sha256=jPVAkwmKr6KniZ0uBw6PJNkZLdbOF7mq6j_drf3IGPI,2503
|
|
183
184
|
themes/corporate/templates/base.html,sha256=qN1bwJjc3Q7j7rCs_Y-Tg76KVPllENCWYC91o6t6hUQ,13976
|
|
184
185
|
themes/corporate/templates/home.html,sha256=PrbLkEup19Eg-lYS9QpcSJyOTycmv0mhaoKRJqy_eFY,3216
|
|
@@ -188,7 +189,7 @@ themes/default/theme.yaml,sha256=tgcUP1YFptyXVNL2a8DBiPrP7zTjWNH62Cy9D_w6Chk,187
|
|
|
188
189
|
themes/default/templates/404.html,sha256=6pYUz7zg5hx3nikgxiZWSkwYnv2nENCSV3KjdIF0_lE,1105
|
|
189
190
|
themes/default/templates/500.html,sha256=CtU3gEsHsxAh-vbcnx5McH8V8ruKtdP8usj8hPuu8zY,1174
|
|
190
191
|
themes/default/templates/archive.html,sha256=ZHBxPYewvc2TbrsB745LYO2uM5SJbTFQQR6savWUzYg,2385
|
|
191
|
-
themes/default/templates/base.html,sha256=
|
|
192
|
+
themes/default/templates/base.html,sha256=7M0D8J5SX-Y4V8_GYVO22Rk7BOx7Ob_OFfcjpNYBuBo,12635
|
|
192
193
|
themes/default/templates/category.html,sha256=k-yN0vFoOpgxgg6DlGin5X4IzVDBG9xRZ0FOD7OJtU8,3061
|
|
193
194
|
themes/default/templates/channel.html,sha256=1i1zkAWmvpcqyoEfaeQNDc2zrMao2xSXCkjRuwzxOUU,3213
|
|
194
195
|
themes/default/templates/form.html,sha256=KFrFS6qxHELPrpRB0B_BNU-uqM3k11oMYwd6oY3qoPQ,8685
|
|
@@ -203,8 +204,8 @@ themes/minimal/templates/base.html,sha256=LFkx-XLDMGH7oFHHa0e6KPB0DJITOBvr6GtPkD
|
|
|
203
204
|
themes/minimal/templates/home.html,sha256=ygYQgYj1OGCiKwmfsxwkPselVKT8vDH3jLLbfphpqKI,1577
|
|
204
205
|
themes/minimal/templates/page.html,sha256=7Xcoq-ryaxlp913H2S1ishrAro2wsqqGmvsm1osXxd4,389
|
|
205
206
|
themes/minimal/templates/post.html,sha256=FkTRHci8HNIIi3DU6Mb3oL0aDisGyDcsT_IUDwHmrvo,1387
|
|
206
|
-
focomy-0.1.
|
|
207
|
-
focomy-0.1.
|
|
208
|
-
focomy-0.1.
|
|
209
|
-
focomy-0.1.
|
|
210
|
-
focomy-0.1.
|
|
207
|
+
focomy-0.1.119.dist-info/METADATA,sha256=oY4MenoazpK5kOyrGpp65GOSipjHfzdKbaPYMfeYzHo,7042
|
|
208
|
+
focomy-0.1.119.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
209
|
+
focomy-0.1.119.dist-info/entry_points.txt,sha256=_rF-wxGI1axY7gox3DBsTLHq-JrFKkMCjA65a6b_oqE,41
|
|
210
|
+
focomy-0.1.119.dist-info/licenses/LICENSE,sha256=z9Z7gN7NNV7zYCaY-Knh3bv8RBCu89VueYtAlN_-lro,1063
|
|
211
|
+
focomy-0.1.119.dist-info/RECORD,,
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"site_logo": "",
|
|
3
|
+
"site_icon": "",
|
|
4
|
+
"header_image": "",
|
|
5
|
+
"background_image": "",
|
|
6
|
+
"color_primary": "#0066cc",
|
|
7
|
+
"color_primary-hover": "#0052a3",
|
|
8
|
+
"color_secondary": "#ff6b35",
|
|
9
|
+
"color_secondary-hover": "#e55a2b",
|
|
10
|
+
"color_background": "#ffffff",
|
|
11
|
+
"color_surface": "#f8f9fa",
|
|
12
|
+
"color_text": "#212529",
|
|
13
|
+
"color_text-muted": "#6c757d",
|
|
14
|
+
"color_border": "#dee2e6",
|
|
15
|
+
"color_success": "#28a745",
|
|
16
|
+
"color_error": "#dc3545",
|
|
17
|
+
"color_warning": "#ffc107",
|
|
18
|
+
"font_sans": "'Noto Sans JP', -apple-system, BlinkMacSystemFont, sans-serif",
|
|
19
|
+
"font_serif": "'Noto Serif JP', Georgia, serif",
|
|
20
|
+
"font_mono": "ui-monospace, monospace",
|
|
21
|
+
"space_xs": "0.25rem",
|
|
22
|
+
"space_sm": "0.5rem",
|
|
23
|
+
"space_md": "1rem",
|
|
24
|
+
"space_lg": "1.5rem",
|
|
25
|
+
"space_xl": "2rem",
|
|
26
|
+
"space_2xl": "3rem",
|
|
27
|
+
"space_3xl": "4rem",
|
|
28
|
+
"custom_css": ""
|
|
29
|
+
}
|
|
@@ -37,9 +37,14 @@
|
|
|
37
37
|
{% endif %}
|
|
38
38
|
|
|
39
39
|
<!-- Favicon -->
|
|
40
|
+
{% if customizations and customizations.site_icon %}
|
|
41
|
+
<link rel="icon" href="{{ customizations.site_icon }}" type="image/png">
|
|
42
|
+
<link rel="apple-touch-icon" href="{{ customizations.site_icon }}">
|
|
43
|
+
{% else %}
|
|
40
44
|
<link rel="icon" href="/static/favicon.ico" sizes="32x32">
|
|
41
45
|
<link rel="icon" href="/static/favicon.svg" type="image/svg+xml">
|
|
42
46
|
<link rel="apple-touch-icon" href="/static/apple-touch-icon.png">
|
|
47
|
+
{% endif %}
|
|
43
48
|
<link rel="manifest" href="/manifest.json">
|
|
44
49
|
|
|
45
50
|
<!-- Preload critical resources -->
|
|
@@ -56,6 +61,12 @@
|
|
|
56
61
|
<link rel="stylesheet" href="/css/theme.css">
|
|
57
62
|
|
|
58
63
|
<style>
|
|
64
|
+
/* Site logo image */
|
|
65
|
+
.site-logo-img {
|
|
66
|
+
max-height: 50px;
|
|
67
|
+
width: auto;
|
|
68
|
+
vertical-align: middle;
|
|
69
|
+
}
|
|
59
70
|
|
|
60
71
|
/* Dropdown menu styles */
|
|
61
72
|
.nav-item { position: relative; display: inline-block; }
|
|
@@ -135,6 +146,7 @@
|
|
|
135
146
|
{% endif %}
|
|
136
147
|
</div>
|
|
137
148
|
</div>
|
|
149
|
+
<a href="/admin/themes/{{ active_theme }}/customize">カスタマイズ</a>
|
|
138
150
|
{% if edit_url %}
|
|
139
151
|
<a href="{{ edit_url }}">編集</a>
|
|
140
152
|
{% endif %}
|
|
@@ -218,7 +230,13 @@
|
|
|
218
230
|
<header class="site-header">
|
|
219
231
|
{% block header %}
|
|
220
232
|
<div class="container">
|
|
221
|
-
<a href="/" class="site-logo">
|
|
233
|
+
<a href="/" class="site-logo">
|
|
234
|
+
{% if customizations and customizations.site_logo %}
|
|
235
|
+
<img src="{{ customizations.site_logo }}" alt="{{ site_name }}" class="site-logo-img">
|
|
236
|
+
{% else %}
|
|
237
|
+
{{ site_name }}
|
|
238
|
+
{% endif %}
|
|
239
|
+
</a>
|
|
222
240
|
<nav class="site-nav">
|
|
223
241
|
{% block nav %}
|
|
224
242
|
{% if menus and menus.header %}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|