openwrite 0.13.2__tar.gz → 0.13.3__tar.gz

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.
Files changed (82) hide show
  1. {openwrite-0.13.2/openwrite.egg-info → openwrite-0.13.3}/PKG-INFO +2 -4
  2. {openwrite-0.13.2 → openwrite-0.13.3}/README.md +1 -3
  3. openwrite-0.13.3/openwrite/static/style/blog_design.css +290 -0
  4. openwrite-0.13.3/openwrite/static/style/default.css +145 -0
  5. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/themes/light.css +20 -0
  6. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/themes/warmnight.css +1 -0
  7. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/blog_header.html +4 -2
  8. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/footer.html +0 -1
  9. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/post.html +1 -1
  10. {openwrite-0.13.2 → openwrite-0.13.3/openwrite.egg-info}/PKG-INFO +2 -4
  11. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite.egg-info/SOURCES.txt +2 -0
  12. {openwrite-0.13.2 → openwrite-0.13.3}/pyproject.toml +1 -1
  13. {openwrite-0.13.2 → openwrite-0.13.3}/LICENSE +0 -0
  14. {openwrite-0.13.2 → openwrite-0.13.3}/MANIFEST.in +0 -0
  15. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/__init__.py +0 -0
  16. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/cli.py +0 -0
  17. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/db/__init__.py +0 -0
  18. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/db/base.py +0 -0
  19. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/gemini_multi.py +0 -0
  20. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/gemini_single.py +0 -0
  21. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/routes/admin.py +0 -0
  22. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/routes/auth.py +0 -0
  23. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/routes/blog.py +0 -0
  24. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/routes/dashboard.py +0 -0
  25. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/routes/federation.py +0 -0
  26. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/routes/main.py +0 -0
  27. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/routes/upload.py +0 -0
  28. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/IBMPlexSans-Regular.ttf +0 -0
  29. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/Merriweather.ttf +0 -0
  30. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/avatar.png +0 -0
  31. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/emoji.json +0 -0
  32. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/favicon.ico +0 -0
  33. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/logo.png +0 -0
  34. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/script/chart.js +0 -0
  35. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/script/highlight.min.js +0 -0
  36. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/script/nativeEmoji.js +0 -0
  37. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/script/openwrite.js +0 -0
  38. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/script/papaparse.min.js +0 -0
  39. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/script/showdown.min.js +0 -0
  40. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/script/showdown.min.js.map +0 -0
  41. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/script/site.compat.min.js +0 -0
  42. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/script/site.min.js +0 -0
  43. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/hl.css +0 -0
  44. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/nativeEmoji.min.css +0 -0
  45. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/style.css +0 -0
  46. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/themes/cyberpunk.css +0 -0
  47. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/themes/obscura.css +0 -0
  48. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/themes/stickynote.css +0 -0
  49. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/themes/terminal.css +0 -0
  50. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/themes/windows98.css +0 -0
  51. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/admin.html +0 -0
  52. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/blog.html +0 -0
  53. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/blog_footer.html +0 -0
  54. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/blog_preview.html +0 -0
  55. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/changepw.html +0 -0
  56. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/create.html +0 -0
  57. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/dashboard.html +0 -0
  58. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/discover.html +0 -0
  59. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/edit.html +0 -0
  60. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/header.html +0 -0
  61. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/import.html +0 -0
  62. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/index.html +0 -0
  63. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/instances.html +0 -0
  64. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/login.html +0 -0
  65. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/new_page.html +0 -0
  66. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/new_post.html +0 -0
  67. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/page_preview.html +0 -0
  68. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/preview.html +0 -0
  69. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/register.html +0 -0
  70. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/settings.html +0 -0
  71. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/stats.html +0 -0
  72. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/translations.html +0 -0
  73. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/utils/create_db.py +0 -0
  74. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/utils/db.py +0 -0
  75. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/utils/helpers.py +0 -0
  76. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/utils/i18n.json +0 -0
  77. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/utils/models.py +0 -0
  78. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite.egg-info/dependency_links.txt +0 -0
  79. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite.egg-info/entry_points.txt +0 -0
  80. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite.egg-info/requires.txt +0 -0
  81. {openwrite-0.13.2 → openwrite-0.13.3}/openwrite.egg-info/top_level.txt +0 -0
  82. {openwrite-0.13.2 → openwrite-0.13.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openwrite
3
- Version: 0.13.2
3
+ Version: 0.13.3
4
4
  License: GNU AFFERO GENERAL PUBLIC LICENSE
5
5
  Version 3, 19 November 2007
6
6
 
@@ -688,14 +688,12 @@ Requires-Dist: user-agents
688
688
  Dynamic: license-file
689
689
 
690
690
  ![logo](https://openwrite.io/static/logo.png)
691
-
692
691
  openwrite is a minimalist blogging platform built for writing freely, hosting independently, and publishing without noise.
693
692
 
694
693
  ![PyPI - Downloads](https://img.shields.io/pypi/dw/openwrite)
695
694
  ![PyPI - Version](https://img.shields.io/pypi/v/openwrite)
696
695
  [![License: AGPL-3.0-or-later](https://img.shields.io/badge/License-AGPL--3.0--or--later-blue.svg)](LICENSE)
697
696
  ![pythonver](https://img.shields.io/badge/python%20version-3.11-blue)
698
- ![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/openwriteio/openwrite/python-tests.yml)
699
697
 
700
698
  ---
701
699
 
@@ -715,7 +713,7 @@ openwrite is a minimalist blogging platform built for writing freely, hosting in
715
713
  - Lightweight
716
714
  - No tracking, only data collected is anonymized(hashed) IP for post view counting and likes
717
715
  - Custom CSS per blog
718
- - Federation using ActivityPub protocol: Follow and Like
716
+ - Federation using ActivityPub protocol
719
717
  - Likes system
720
718
  - Posts importing from xml/csv
721
719
  - Blog themes
@@ -1,12 +1,10 @@
1
1
  ![logo](https://openwrite.io/static/logo.png)
2
-
3
2
  openwrite is a minimalist blogging platform built for writing freely, hosting independently, and publishing without noise.
4
3
 
5
4
  ![PyPI - Downloads](https://img.shields.io/pypi/dw/openwrite)
6
5
  ![PyPI - Version](https://img.shields.io/pypi/v/openwrite)
7
6
  [![License: AGPL-3.0-or-later](https://img.shields.io/badge/License-AGPL--3.0--or--later-blue.svg)](LICENSE)
8
7
  ![pythonver](https://img.shields.io/badge/python%20version-3.11-blue)
9
- ![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/openwriteio/openwrite/python-tests.yml)
10
8
 
11
9
  ---
12
10
 
@@ -26,7 +24,7 @@ openwrite is a minimalist blogging platform built for writing freely, hosting in
26
24
  - Lightweight
27
25
  - No tracking, only data collected is anonymized(hashed) IP for post view counting and likes
28
26
  - Custom CSS per blog
29
- - Federation using ActivityPub protocol: Follow and Like
27
+ - Federation using ActivityPub protocol
30
28
  - Likes system
31
29
  - Posts importing from xml/csv
32
30
  - Blog themes
@@ -0,0 +1,290 @@
1
+ * {
2
+ margin: 0px;
3
+ padding: 0px;
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ @font-face {
8
+ font-family: 'IBMPlexSans';
9
+ src: url('/static/IBMPlexSans-Regular.ttf') format('truetype');
10
+ }
11
+
12
+ @font-face {
13
+ font-family: 'Merriweather';
14
+ src: url('/static/Merriweather.ttf') format('truetype');
15
+ }
16
+
17
+ .container {
18
+ display: flex;
19
+ flex-direction: column;
20
+ width: 60%;
21
+ margin: 0 auto;
22
+ min-height: 60vh;
23
+ }
24
+
25
+ .container-row-fluid {
26
+ display: flex;
27
+ flex-direction: row;
28
+ width: 100%;
29
+ margin: 0 auto;
30
+ justify-content: space-between;
31
+ align-items: center;
32
+ }
33
+
34
+ .header {
35
+ display: flex;
36
+ justify-content: space-between;
37
+ align-items: center;
38
+ padding: 1rem 0;
39
+ border-bottom: 1px solid;
40
+ }
41
+
42
+ .header #logo {
43
+ background-image: url('/static/logo.png');
44
+ background-size: contain;
45
+ background-repeat: no-repeat;
46
+ width: 280px;
47
+ height: 70px;
48
+ }
49
+
50
+ .header #menu {
51
+ display: flex;
52
+ flex-wrap: wrap;
53
+ justify-content: center;
54
+ gap: 2rem;
55
+ }
56
+
57
+ .header #menu a {
58
+ text-decoration: none;
59
+ transition: 0.3s;
60
+ opacity: 0.85;
61
+ }
62
+
63
+ .header #menu a:hover {
64
+ opacity: 1;
65
+ }
66
+
67
+ .header #menu a.link-active, .link-active {
68
+ text-decoration: underline;
69
+ opacity: 1;
70
+ }
71
+
72
+ .content {
73
+ display: flex;
74
+ justify-content: space-between;
75
+ flex-direction: column;
76
+ padding: 3rem 0;
77
+ }
78
+
79
+ .content .centered {
80
+ text-align: center;
81
+ width: 100%;
82
+ display: block;
83
+ margin: 1rem;
84
+ }
85
+
86
+ h1.blog-name a {
87
+ text-decoration: none;
88
+ }
89
+
90
+ h1.post-title {
91
+ margin-bottom: 1rem;
92
+ margin-top: 1rem;
93
+ }
94
+
95
+ i.post-date.updated {
96
+ opacity: 0.5;
97
+ }
98
+
99
+ article.main-content {
100
+ padding: 3rem 0;
101
+ text-align: justify;
102
+ }
103
+
104
+ article.blog-content {
105
+ text-align: justify;
106
+ margin-bottom: 1rem;
107
+ }
108
+
109
+ article.post-content {
110
+ display: flex;
111
+ flex-direction: column;
112
+ gap: 1rem;
113
+ line-height: 30px;
114
+ margin-bottom: 1rem;
115
+ margin-top: 1rem;
116
+ }
117
+
118
+ article.post-content h1, article.post-content h2 {
119
+ margin-top: 1.5rem;
120
+ }
121
+
122
+ article.post-content blockquote {
123
+ margin-left: 2rem;
124
+ border-left: 4px solid;
125
+ padding-left: 1em;
126
+ font-style: italic;
127
+ }
128
+
129
+ article.post-content a {
130
+ text-decoration: none;
131
+ }
132
+
133
+ article.post-content a:hover {
134
+ text-decoration: underline;
135
+ }
136
+
137
+ article.post-content ol, article.post-content ul, article.post-content img {
138
+ max-width: 90%;
139
+ height: auto;
140
+ }
141
+
142
+ article.post-content ol, article.post-content ul {
143
+ padding-left: 2.5rem;
144
+ }
145
+
146
+ article.post-content p > img {
147
+ display: block;
148
+ margin: 0 auto;
149
+ }
150
+
151
+ div.postlist_item {
152
+ display: flex;
153
+ flex-direction: row;
154
+ gap: 1rem;
155
+ margin-bottom: -10px;
156
+ align-items: center;
157
+ }
158
+
159
+ .post-content#posts {
160
+ gap: 0;
161
+ }
162
+
163
+ div.bloginfo {
164
+ display: flex;
165
+ flex-direction: column;
166
+ gap: 1rem;
167
+ margin-top: 2rem;
168
+ border-bottom: 1px solid;
169
+ padding: 1.5rem;
170
+ }
171
+
172
+ footer.footer {
173
+ display: flex;
174
+ justify-content: center;
175
+ align-items: center;
176
+ flex-direction: row;
177
+ gap: 1rem;
178
+ font-family: "Merriweather";
179
+ border-top: 1px solid;
180
+ padding: 2rem 0;
181
+ color: #757575;
182
+ }
183
+
184
+ footer.blog.footer {
185
+ gap: 3px;
186
+ }
187
+
188
+ .footer a {
189
+ text-decoration: none;
190
+ color: #757575;
191
+ transition: 0.3s;
192
+ }
193
+
194
+ .footer a:hover {
195
+ text-decoration: underline;
196
+ color: #fff;
197
+ }
198
+
199
+ .flex {
200
+ display: flex;
201
+ }
202
+
203
+ .row {
204
+ flex-direction: row;
205
+ }
206
+
207
+ .column {
208
+ flex-direction: column;
209
+ }
210
+
211
+ .small-gap {
212
+ gap: 5px;
213
+ }
214
+
215
+ .medium-gap {
216
+ gap: 1rem;
217
+ }
218
+
219
+ .big-gap {
220
+ gap: 2rem;
221
+ }
222
+
223
+ .to-right {
224
+ justify-content: right;
225
+ }
226
+
227
+ .to-left {
228
+ justify-content: left;
229
+ }
230
+
231
+ .to-center {
232
+ justify-content: center;
233
+ }
234
+
235
+ .space-between {
236
+ justify-content: space-between;
237
+ }
238
+
239
+ p.column {
240
+ display: flex;
241
+ flex-direction: column;
242
+ }
243
+
244
+ i.caption {
245
+ display: block;
246
+ text-align: center;
247
+ }
248
+
249
+ .discover_post {
250
+ display: flex;
251
+ flex-direction: row;
252
+ gap: 1rem;
253
+ }
254
+
255
+ #like {
256
+ cursor: pointer;
257
+ }
258
+
259
+ @media only screen and (max-width: 850px) {
260
+ .container {
261
+ width: 80% !important;
262
+ }
263
+
264
+ .header #logo {
265
+ width: 245px !important;
266
+ }
267
+
268
+ .header {
269
+ flex-direction: column;
270
+ align-items: center;
271
+ }
272
+
273
+ .header #menu {
274
+ margin-top: 1rem;
275
+ gap: 1rem !important;
276
+ }
277
+
278
+ article.post-content {
279
+ line-height: 23px !important;
280
+ }
281
+
282
+ footer.footer {
283
+ flex-direction: column !important;
284
+ }
285
+
286
+ .discover_post {
287
+ flex-direction: column !important;
288
+ gap: unset !important;
289
+ }
290
+ }
@@ -0,0 +1,145 @@
1
+ @font-face {
2
+ font-family: 'IBMPlexSans';
3
+ src: url('/static/IBMPlexSans-Regular.ttf') format('truetype');
4
+ }
5
+
6
+ @font-face {
7
+ font-family: 'Merriweather';
8
+ src: url('/static/Merriweather.ttf') format('truetype');
9
+ }
10
+
11
+ body {
12
+ background: #18171c;
13
+ color: #e9d4ce;
14
+ }
15
+
16
+ .header {
17
+ border-bottom: 1px solid #3333333b;
18
+ font-family: "IBMPlexSans";
19
+ }
20
+
21
+ .header #menu a {
22
+ color: #eeeeee;
23
+ }
24
+
25
+ .header #menu a:hover {
26
+ color: #e9d4ce;
27
+ }
28
+
29
+ .content {
30
+ color: #dfd9d9;
31
+ }
32
+
33
+ .content h1, .content h2, .content h3 {
34
+ font-family: "Merriweather";
35
+ }
36
+
37
+ .content h1 {
38
+ font-size: 50px;
39
+ }
40
+
41
+ article.main-content {
42
+ font-size: 18px;
43
+ font-family: "IBMPlexSans";
44
+ }
45
+
46
+ article.blog-content {
47
+ font-size: 18px;
48
+ font-family: "IBMPlexSans";
49
+ }
50
+
51
+ h1.blog-name {
52
+ font-family: "Merriweather";
53
+ }
54
+
55
+ h1.blog-name a {
56
+ color: #e9d4ce;
57
+ }
58
+
59
+ h1.post-title {
60
+ font-family: "IBMPlexSans";
61
+ font-size: 40px;
62
+ }
63
+
64
+ i.post-date {
65
+ font-size: 15px;
66
+ }
67
+
68
+ article.post-content {
69
+ color: #e6e6e6;
70
+ }
71
+
72
+ article.post-content h1 {
73
+ font-size: 30px;
74
+ }
75
+
76
+ article.post-content blockquote {
77
+ color: #888;
78
+ border-left: 4px solid #888;
79
+ }
80
+
81
+ article.post-content a {
82
+ color: #af9cfb;
83
+ }
84
+
85
+ div.bloginfo {
86
+ border-bottom: 1px solid #3333333b;
87
+ }
88
+
89
+ span.bloginfo {
90
+ font-size: 20px;
91
+ font-family: "IBMSansPlex";
92
+ }
93
+
94
+ footer.footer {
95
+ font-family: "Merriweather";
96
+ border-top: 1px solid #3333333b;
97
+ color: #757575;
98
+ }
99
+
100
+ .footer a {
101
+ color: #757575;
102
+ }
103
+
104
+ .footer a:hover {
105
+ color: #fff;
106
+ }
107
+
108
+ i.caption {
109
+ color: #555;
110
+ font-size: 15px;
111
+ }
112
+
113
+ p code {
114
+ background: #282c34;
115
+ color: #abb2bf;
116
+ }
117
+
118
+ a.link {
119
+ color: #795EB5;
120
+ text-decoration: none;
121
+ }
122
+
123
+ a.link:hover {
124
+ text-decoration: underline;
125
+ }
126
+
127
+ a.action {
128
+ text-decoration: none;
129
+ color: #d2c5ff;
130
+ }
131
+
132
+ a.action:hover {
133
+ text-decoration: underline;
134
+ }
135
+
136
+ @media only screen and (max-width: 850px) {
137
+ .content h1 {
138
+ font-size: 30px !important;
139
+ }
140
+
141
+ article.main-content {
142
+ font-size: 15px !important;
143
+ }
144
+ }
145
+ @media only screen and (max-width: 850px) {
@@ -1,3 +1,14 @@
1
+ @font-face {
2
+ font-family: 'IBMPlexSans';
3
+ src: url('/static/IBMPlexSans-Regular.ttf') format('truetype');
4
+ }
5
+
6
+ @font-face {
7
+ font-family: 'Merriweather';
8
+ src: url('/static/Merriweather.ttf') format('truetype');
9
+ }
10
+
11
+
1
12
  body {
2
13
  background: #efefef;
3
14
  color: #464646;
@@ -11,10 +22,19 @@ article.post-content a {
11
22
  color: #6834ab;
12
23
  }
13
24
 
25
+ h1.blog-name {
26
+ font-family: "Merriweather";
27
+ }
28
+
14
29
  h1.blog-name a {
15
30
  color: #6834ab;
16
31
  }
17
32
 
33
+ .header {
34
+ border-bottom: 1px solid #3333333b;
35
+ font-family: "IBMPlexSans";
36
+ }
37
+
18
38
  .header #menu a {
19
39
  color: #6834ab;
20
40
  font-weight: bold;
@@ -1,5 +1,6 @@
1
1
  body {
2
2
  background: #201917;
3
+ color: #fff;
3
4
  }
4
5
 
5
6
  header.header {
@@ -16,13 +16,15 @@
16
16
  {% if blog.index == "off" %}<meta name="robots" content="noindex, nofollow"> {% endif %}
17
17
  <title>{% if post %}{{ post.title }} | {% endif %}{{ blog.title }}</title>
18
18
  <meta name="description" content="Minimalist, opensource blog. Write, freely.">
19
- <link rel="stylesheet" href="{{ url_for('static', filename='style/style.css') }}">
19
+ <link rel="stylesheet" href="{{ url_for('static', filename='style/blog_design.css') }}">
20
20
  <link rel="stylesheet" href="{{ url_for('static', filename='style/hl.css') }}">
21
21
 
22
22
  <script src="{{ url_for('static', filename='script/highlight.min.js') }}"></script>
23
23
  <script nonce="{{ g.nonce }}">hljs.highlightAll();</script>
24
24
  <script src="{{ url_for('static', filename='script/openwrite.js') }}"></script>
25
- {% if blog.theme != "default" %}
25
+ {% if blog.theme == "default" %}
26
+ <link rel="stylesheet" href="{{ url_for('static', filename='style/default.css') }}">
27
+ {% else %}
26
28
  <link rel="stylesheet" href="{{ url_for('static', filename='style/themes/'+blog.theme) }}.css">
27
29
  {% endif %}
28
30
  {% if blog.name == "themes-test" %}
@@ -14,4 +14,3 @@
14
14
  </div>
15
15
  </body>
16
16
  </html>
17
-
@@ -10,7 +10,7 @@
10
10
  {{ _('last-updated') }}: <span class="datetime">{{ post.updated }}</span>
11
11
  {% endif %}
12
12
  </i>
13
- <span>{{ post.likes }} <svg id="like" width="20px" height="20px" viewBox="0 0 36 36" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--twemoji" preserveAspectRatio="xMidYMid meet"><path style="{% if post.liked > 0 %}fill: #DD2E44;{% else %}fill: none{% endif %}" stroke="#DD2E44" stroke-width="2" d="M35.885 11.833c0-5.45-4.418-9.868-9.867-9.868c-3.308 0-6.227 1.633-8.018 4.129c-1.791-2.496-4.71-4.129-8.017-4.129c-5.45 0-9.868 4.417-9.868 9.868c0 .772.098 1.52.266 2.241C1.751 22.587 11.216 31.568 18 34.034c6.783-2.466 16.249-11.447 17.617-19.959c.17-.721.268-1.469.268-2.242z"></path></svg></span>
13
+ <span><span id="likes">{{ post.likes }}</span> <svg id="like" width="20px" height="20px" viewBox="0 0 36 36" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--twemoji" preserveAspectRatio="xMidYMid meet"><path style="{% if post.liked > 0 %}fill: #DD2E44;{% else %}fill: none{% endif %}" stroke="#DD2E44" stroke-width="2" d="M35.885 11.833c0-5.45-4.418-9.868-9.867-9.868c-3.308 0-6.227 1.633-8.018 4.129c-1.791-2.496-4.71-4.129-8.017-4.129c-5.45 0-9.868 4.417-9.868 9.868c0 .772.098 1.52.266 2.241C1.751 22.587 11.216 31.568 18 34.034c6.783-2.466 16.249-11.447 17.617-19.959c.17-.721.268-1.469.268-2.242z"></path></svg></span>
14
14
  </div>
15
15
 
16
16
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openwrite
3
- Version: 0.13.2
3
+ Version: 0.13.3
4
4
  License: GNU AFFERO GENERAL PUBLIC LICENSE
5
5
  Version 3, 19 November 2007
6
6
 
@@ -688,14 +688,12 @@ Requires-Dist: user-agents
688
688
  Dynamic: license-file
689
689
 
690
690
  ![logo](https://openwrite.io/static/logo.png)
691
-
692
691
  openwrite is a minimalist blogging platform built for writing freely, hosting independently, and publishing without noise.
693
692
 
694
693
  ![PyPI - Downloads](https://img.shields.io/pypi/dw/openwrite)
695
694
  ![PyPI - Version](https://img.shields.io/pypi/v/openwrite)
696
695
  [![License: AGPL-3.0-or-later](https://img.shields.io/badge/License-AGPL--3.0--or--later-blue.svg)](LICENSE)
697
696
  ![pythonver](https://img.shields.io/badge/python%20version-3.11-blue)
698
- ![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/openwriteio/openwrite/python-tests.yml)
699
697
 
700
698
  ---
701
699
 
@@ -715,7 +713,7 @@ openwrite is a minimalist blogging platform built for writing freely, hosting in
715
713
  - Lightweight
716
714
  - No tracking, only data collected is anonymized(hashed) IP for post view counting and likes
717
715
  - Custom CSS per blog
718
- - Federation using ActivityPub protocol: Follow and Like
716
+ - Federation using ActivityPub protocol
719
717
  - Likes system
720
718
  - Posts importing from xml/csv
721
719
  - Blog themes
@@ -36,6 +36,8 @@ openwrite/static/script/showdown.min.js
36
36
  openwrite/static/script/showdown.min.js.map
37
37
  openwrite/static/script/site.compat.min.js
38
38
  openwrite/static/script/site.min.js
39
+ openwrite/static/style/blog_design.css
40
+ openwrite/static/style/default.css
39
41
  openwrite/static/style/hl.css
40
42
  openwrite/static/style/nativeEmoji.min.css
41
43
  openwrite/static/style/style.css
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "openwrite"
7
- version = "0.13.2"
7
+ version = "0.13.3"
8
8
  license = { file = "LICENSE" }
9
9
  dependencies = [
10
10
  "flask",
File without changes
File without changes
File without changes
File without changes