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.
- {openwrite-0.13.2/openwrite.egg-info → openwrite-0.13.3}/PKG-INFO +2 -4
- {openwrite-0.13.2 → openwrite-0.13.3}/README.md +1 -3
- openwrite-0.13.3/openwrite/static/style/blog_design.css +290 -0
- openwrite-0.13.3/openwrite/static/style/default.css +145 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/themes/light.css +20 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/themes/warmnight.css +1 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/blog_header.html +4 -2
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/footer.html +0 -1
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/post.html +1 -1
- {openwrite-0.13.2 → openwrite-0.13.3/openwrite.egg-info}/PKG-INFO +2 -4
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite.egg-info/SOURCES.txt +2 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/pyproject.toml +1 -1
- {openwrite-0.13.2 → openwrite-0.13.3}/LICENSE +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/MANIFEST.in +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/__init__.py +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/cli.py +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/db/__init__.py +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/db/base.py +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/gemini_multi.py +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/gemini_single.py +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/routes/admin.py +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/routes/auth.py +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/routes/blog.py +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/routes/dashboard.py +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/routes/federation.py +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/routes/main.py +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/routes/upload.py +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/IBMPlexSans-Regular.ttf +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/Merriweather.ttf +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/avatar.png +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/emoji.json +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/favicon.ico +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/logo.png +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/script/chart.js +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/script/highlight.min.js +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/script/nativeEmoji.js +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/script/openwrite.js +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/script/papaparse.min.js +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/script/showdown.min.js +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/script/showdown.min.js.map +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/script/site.compat.min.js +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/script/site.min.js +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/hl.css +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/nativeEmoji.min.css +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/style.css +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/themes/cyberpunk.css +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/themes/obscura.css +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/themes/stickynote.css +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/themes/terminal.css +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/static/style/themes/windows98.css +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/admin.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/blog.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/blog_footer.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/blog_preview.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/changepw.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/create.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/dashboard.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/discover.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/edit.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/header.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/import.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/index.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/instances.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/login.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/new_page.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/new_post.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/page_preview.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/preview.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/register.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/settings.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/stats.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/templates/translations.html +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/utils/create_db.py +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/utils/db.py +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/utils/helpers.py +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/utils/i18n.json +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite/utils/models.py +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite.egg-info/dependency_links.txt +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite.egg-info/entry_points.txt +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite.egg-info/requires.txt +0 -0
- {openwrite-0.13.2 → openwrite-0.13.3}/openwrite.egg-info/top_level.txt +0 -0
- {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.
|
|
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
|

|
|
691
|
-
|
|
692
691
|
openwrite is a minimalist blogging platform built for writing freely, hosting independently, and publishing without noise.
|
|
693
692
|
|
|
694
693
|

|
|
695
694
|

|
|
696
695
|
[](LICENSE)
|
|
697
696
|

|
|
698
|
-

|
|
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
|
|
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
|

|
|
2
|
-
|
|
3
2
|
openwrite is a minimalist blogging platform built for writing freely, hosting independently, and publishing without noise.
|
|
4
3
|
|
|
5
4
|

|
|
6
5
|

|
|
7
6
|
[](LICENSE)
|
|
8
7
|

|
|
9
|
-

|
|
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
|
|
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;
|
|
@@ -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/
|
|
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
|
|
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" %}
|
|
@@ -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.
|
|
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
|

|
|
691
|
-
|
|
692
691
|
openwrite is a minimalist blogging platform built for writing freely, hosting independently, and publishing without noise.
|
|
693
692
|
|
|
694
693
|

|
|
695
694
|

|
|
696
695
|
[](LICENSE)
|
|
697
696
|

|
|
698
|
-

|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|