*F)Z;w<1?#U?)NqIx^{>sMz($^V14OuL#{)zzhI_SOVQu=#6xR#tz}
zt;1f12Kk)yR2t#q=f5kTKMxl*79I-7uBWH8RF7x`GwE^iu{~v0-7a*j*qKruOZLcW
z!oGtg2f50%`;hiq9@XcFADlm5j~?cpcKFz_Kaj9czJ)OXaNrRTckE`!0KVT)yzRV@6~-?6GKC}H`h4u5?wX#Y*)c5s1Xi$Vf*>=h(=I^LYDF2t`Sn^}{m=b-CG5{wFGM|Is0%4m3fl
zX9)yZs>+Jb$q85FynN*fa)?*2W~8Lt%j#Sp4XbPG=*Z8`2LHr08$|pa;6UA8IGbxI
z8V@sm-gB?d3+Xc)^eg3iPq2C0Af6G{sDKb(wWJ2CuN*Bsmwmg?k*$9seKy;$qwdY6
zvT2K_N*k(d>EQ(@{8{!wGZmFEsD2Lx8@n7fN)zSkjv=KEit9FwY8wo`O>9M
zOk#qF^WIp#`h81J$@0A7D`y!67yhO)jm1pSX7#woxP}(+ZTlpz}u?@eJhUSrW`(Q%p34DF%H`^
zK+xJVEKjhuXMpR)8;%SQSC2SaTUiA@HB5@_K&)vHp#ccNP?wMCX1>-qvVHq@2pj9`
zi~Rr#uJhwMJQ3T)Yv&ghyq2aDU?ZSyV8ntJBx~~mVV5|LD8mrLG&MKZ*3d9EHO)1t
zrkqzt7m&ngpQnT`3zOr%A}11|m-DV4;^A?WfTtBRJv|LJSnfLW3P=vD2iE`zbl0w3
z(8<6jlasHvr(XQu!)TN??SxjBl;_GEZ1;Pc2JkO2;i0R3G#2t&9@#?>_o@-u`krsC
zixP$t0B$R0`yGh}g)Q9@Toqn0tZanVdP`jFpdo?XXr_Jn{2B65I~0&q?Qz)rqPFR5
zoYY&O2J;(YJAkbF+EPwbR1eZ($f)jo%b%d}JUl$d_D8W``O*;H(O%pN1Feuu8WevF
zy9JjBRS*K|kXr|4)}UW+d?+hm#CfFpxLW}u*4Eeev9coghmUV+5*HQaKX%N&MqWYT
zf~u^JmBkFQTKb>gmCLCC!)F2k(Pl(*=OnUUA_2qO{#?V_}-Y%o)2@$V1!Ndt(jHKxa7cj@|r2!q{W;8!yLh@}r!
zESq=|CP#aUOF65xr6o$-t`EURjMOitIRMld8v_3)?IV`eeQvY`vn;&c9O&0v_@syk
zqsy7%n(Au*8q@i9Q6My=wJ}N)vFJbjSBdu5%9|y)TqWaZ5@{;tu~TL)OE#
z6MqZ6RpVW{uID^EqHo4jin;(9YwR1z-!YJdgy`82y?pudWtZXOm>2^CgZ15u<3<4C
z3&=6-ynT#5Xw#H_j#oHp|E^s*7ENrva>!lRpP!kZFZ13k*W=sLwIMko
z2ny?iguqY%x1b=jb+-n82?if@84?l_*BIW&^uj`xFqa2GK}u?BY~r>r-Ix;PIFyu?
zVWR;4LYCjZ<2STTco9O?*AR{bc)-DdQpCJfpCjzyg&a?7t0sDuOW&Qk`ud}X51&iW
zfLjEEgZ>g#!;{F!T~v2L(O@X#_F(!AL46R5o*WpMh6wjq={1IhjK>o0My
z-hKM?>9|>KC3Q$hNPzs7PKLDy1-XDN5w3*%6XWjP?_H)0W#Wv`lCbw9BlEZ3v)`Nj
zYhd?Hv50yp`+>^CKvM%%WO|V?F$W&=&?`hC(Yf+_@K8kkOCS|!%E7_)z+@!%4#5(G
zZ3X$kZ0up(@ZccXBUsLeG+KBdZfJYs#zA^2;4|=6gH3iya`MU@Dm)P+1f(g;6IVdn
z}0d5U?U~0eFEEum2O}r1vD>7<6`~I0(3guqZke
za1Wlt*Y55@Fy4)!@^b4+A>_t~z8zDrKfY`0NJ2&iO&DBK6GaX6O_OYahm7G$9*aL*
zV1XpOzngIh-3Bpah^4HemPgbP+)dN|@UN<>N@&Lwg2
zW16~b@+K9k*q2)lKy>i(SSb|&V~&4>o|l=P?&qBe-v(Z2p&9orYr4p+#`%v^XrO%0LuwdGkZPELpulBZ4;zpaBb?ma-7VuQyY>mAmXxiqqy&UwFEQ|c$lH=@iC{P+X<}bC0tnsP$?k<^MdxM-3}usE0j-nn
zKy9{8vRNTG=!NJ5;iJgO4}~908_FEtZfg)>g5csxL?{J8bz4CsSKT(&PR2DY&dgMK
zFL%t$&8e!XWxjdC6s*X@!vjn-`r;8M2M33w?ITP=e4oF56*zb>Aw3;gDV%a~
zbrFj`z{K?0f&V`!dt_WkGwoe*@m8|J0`}m&YTvs3J5sQKg7Y71YPJV_=xab%y`-zF
zlBBt$nV^xa_r|vI7;W`W$2-8kQ_j=@AK-6BD#NVp)M@ie)kfr}qqWs94w1PxI4Lof
zEkqlkoCKwZRTm;@!i9IUi((SNlS>{Oz@C9-!i8u?4_QT(&FZc^>D~c&>}V>9L_84X
z&d+Z*xwk|kcPlA!(!e%5#B9_&Yi0I*2S;mIdUw2PIek!h^OT!T
z+*!IU87}P4|B~U{dKKtWva_4NeJjagwwaza
zlMX{4aX<@r2&lO>bRVh!#kVcF1EPzDw)PwzO>OPjC5CYwJhS((BpyD*uQ|E7_k)9H
z78iHI=nW0cfA{W$xOj!f^1q3mye$19hP`{wC$<2L4~S(vDnF}Gej_&x|Gd2B@Pr^f
z>DsjfFKqTO~@B*lB;hSAWc>T}#c#Z^(
zLgOkwfJ(cb+yFU_Y1dL{jr@kCg>TtnFg-nElapokgYs(^`H2D03WGX6fB+2FT8G-2nxeu&CMG5i2wPD9ak(FbzI1iD
zRQXXrPX`X3X22OY=wC?bl2Mz{Lqz}uhU-D{KQom&MkRqbPl9QMnnufqUyM00-kx?L
zS`6vpl;q^CI2R7}RSzNq0JjPeXDQe(P}Oj@AS@b>A83dnm|I513mXD=0wGoCWl?f6
zWwj9G?MP)raY(k#vSEw$y}QAPp@6rC@fY#nJ6-D|2PeeHYwP1T4xx{+h90G38-34aHtW@Q>g;P1Pv9Yj{P__C3FmqciPlPs4U~7AbDkA@eCx#aarmXBh
zp!~7O&zN`6u5@*~5Lhe3**S4>U7m=eOw>41$`cVM?T(WJuVv;n>o8~1(zgGvM|h5o
zwLbZjq~wf2WUwOV24nBr3c{D`4pOR37R5Y|{p4ROCvh?aFCB*eaxhA@FWW@n^yw<>
z+3-h?==bggxyJbloE(xD8DATOQ0|9?^%px^3zjrsigQ*|A2;8t
zSC;NVOH2FfYYdp2!?tbrko4id`reWWNW2V3m=qPs1LRNM`Nu7@b?5+`Z!2zw6kx-M
zJ^693wI#;GY6x}?wQR!x4!eKf(b*Z5i*Z9nAim@=+bB*;iPM#iz#7Owo?xBaIur3t
zAno@jip_e>k-RQs=m&WC`6qvD9ZyE-qnVVRlG7lNK?0Y;9`N{00gSXe1QNnb|135kju1kE
zKQ0c>BN}qPPl445Rh~pgy?Hez14@1bk%y-GvRlmP$Q5}ahc{hXd+9hqpiPE4>1@F`_apNbMdNTVFrg*#+$K{hqaj;u
z_Ii;Jh=t68@mIWuFaDW#XDf9FbR#Yt0Dcfe|4zy|)}DBO(o4w0AHqKr+%Z
zGf}=qIi>+<_Q=e_bVX3AGt0;u=Y^5*dHHfb1SG(degu(tBXLm95q$6e<^YH2v12Nn
z;Yc2C3EKY&A_|=D9nJS@OaX1HhLKeS&0p(L)YODeS_7d1GAu;E|5Axq)*rdoXkyd^
zj~&a)&R&9Rjzil;%X5;HtKiZvg|B^vUP6lFPrH|JsYuU3`}9WmNA#b=L4;Wj
zJ}I-Zzu1*yROaRkgbZchpwOO#fGaAOq-j*@ipPc{VyZWG(bGd9hTJAZJBx}8&YmVK
zykCTrpsp@j+2xBDNwho(!Z`ILPE%VvG7Mnh3shW4PY46})zM*=iiL)SLoPUFvD1h*
z5~>m<<5i>|_atX%x>VZxDp$W&R#la9`Kyof*xz?jwoYASp!z7+EZCEA_QREGBuZfZ
zv&(p}?B7pIJZcz$Z#m6R>2G3ZH#IcG8BxD=Bv?T~u%#ba01~#Xp9`?6c`(ofiwKFB
zKV0ccef{3Tr(E=8B$>L*b}HN{MMW553m
D(kA{^
diff --git a/translations/zh_CN/LC_MESSAGES/messages.po b/translations/zh_CN/LC_MESSAGES/messages.po
index 6ddfb89..71fe32f 100644
--- a/translations/zh_CN/LC_MESSAGES/messages.po
+++ b/translations/zh_CN/LC_MESSAGES/messages.po
@@ -1,38 +1,43 @@
-# Chinese (Simplified, China) translations for Flex.
-# Copyright (C) 2017 Alexandre Vicenzi
+# Translations template for Flex.
+# Copyright (C) 2019 Alexandre Vicenzi
# This file is distributed under the same license as the Flex project.
-# FIRST AUTHOR , 2017.
-#
+# FIRST AUTHOR , 2019.
+#
+# Translators:
+# Shiao Qu , 2016
+# Casey Tsui , 2019
+#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Flex 2.1.0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-03-14 00:10-0300\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Shiao Qu , 2016\n"
-"Language: zh_Hans_CN\n"
+"POT-Creation-Date: 2019-01-03 00:10+0100\n"
+"PO-Revision-Date: 2016-08-25 02:15+0000\n"
+"Last-Translator: Casey Tsui , 2019\n"
"Language-Team: Chinese (China) (https://www.transifex.com/alexandrevicenzi/teams/66327/zh_CN/)\n"
-"Plural-Forms: nplurals=1; plural=0\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.3.4\n"
+"Generated-By: Babel 2.6.0\n"
+"Language: zh_CN\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
#: templates/archives.html:2 templates/archives.html:7
+#: templates/period_archives.html:2 templates/period_archives.html:7
msgid "Archives"
msgstr "归档"
-#: templates/article.html:17 templates/index.html:20
+#: templates/article.html:22 templates/index.html:20
#, python-format
msgid "Posted on %(when)s in %(category)s"
msgstr "在 %(when)s 发布于 %(category)s 分类"
-#: templates/article.html:52
+#: templates/article.html:57
msgid "Like this article? Share it with your friends!"
msgstr "喜欢这篇文章吗?将它与您的朋友分享吧!"
-#: templates/article.html:61
+#: templates/article.html:68
msgid "You might enjoy"
msgstr "您可能还喜欢"
@@ -41,23 +46,23 @@ msgstr "您可能还喜欢"
msgid "Posts by %(name)s"
msgstr "%(name)s 发布的文章"
-#: templates/authors.html:2 templates/authors.html:7
+#: templates/authors.html:3 templates/authors.html:8
msgid "Authors"
msgstr "作者"
-#: templates/base.html:142
+#: templates/base.html:159
msgid "Home"
msgstr "主页"
-#: templates/base.html:149
+#: templates/base.html:166
msgid "Atom"
msgstr "Atom订阅"
-#: templates/base.html:153
+#: templates/base.html:170
msgid "RSS"
msgstr "RSS订阅"
-#: templates/categories.html:2 templates/categories.html:7
+#: templates/categories.html:3 templates/categories.html:8
msgid "Categories"
msgstr "分类"
@@ -70,7 +75,7 @@ msgstr "%(name)s 分类"
msgid "Tagged with"
msgstr "标签为"
-#: templates/index.html:43
+#: templates/index.html:44
msgid "Continue reading"
msgstr "阅读全文"
@@ -79,18 +84,26 @@ msgstr "阅读全文"
msgid "Tag %(name)s"
msgstr "%(name)s 标签"
-#: templates/tags.html:2 templates/tags.html:7
+#: templates/tags.html:3 templates/tags.html:8
msgid "Tags"
msgstr "标签"
-#: templates/partial/disqus.html:12
+#: templates/partial/disqus.html:13
msgid "Please enable JavaScript to view comments."
msgstr "请启用浏览器的Javascript功能以查看评论。"
#: templates/partial/flex.html:1
#, python-format
-msgid "Powered by %(pelican_url)s - %(flex_url)s theme by %(alexandrevicenzi_url)s"
-msgstr "本站由 %(pelican_url)s 驱动,并使用了 %(alexandrevicenzi_url)s 开发的 %(flex_url)s 主题。"
+msgid "Built with %(pelican_url)s using %(flex_url)s theme"
+msgstr "本站由%(pelican_url)s驱动,并使用%(flex_url)s主题"
+
+#: templates/partial/neighbors.html:5
+msgid "Previous Post"
+msgstr "上一篇文章"
+
+#: templates/partial/neighbors.html:10
+msgid "Next Post"
+msgstr "下一篇文章"
#: templates/partial/pagination.html:5
msgid "Older Posts"
@@ -99,4 +112,3 @@ msgstr "更旧的文章"
#: templates/partial/pagination.html:10
msgid "Newer Posts"
msgstr "更新的文章"
-
From fd30f0f057fe4f4c1faf374e71d06afcc3a0ab25 Mon Sep 17 00:00:00 2001
From: Alexandre Vicenzi
Date: Sat, 19 Oct 2019 22:47:25 +0200
Subject: [PATCH 12/19] Update demo.
---
docs/Makefile | 74 +
docs/README.md | 8 +-
docs/blog/archives.html | 71 +-
docs/blog/author/alexandre-vicenzi.html | 111 +-
docs/blog/authors.html | 59 +-
docs/blog/categories.html | 61 +-
docs/blog/category/news.html | 111 +-
docs/blog/feeds/all.atom.xml | 25 +-
docs/blog/feeds/news.atom.xml | 25 +-
.../blog/flex-pelican-theme-update-1-1-1.html | 69 +-
docs/blog/flex-pelican-theme-update-1-1.html | 69 +-
.../blog/flex-pelican-theme-update-1-2-0.html | 69 +-
docs/blog/flex-pelican-theme-update-2-0.html | 69 +-
docs/blog/flex-pelican-theme-update-2-1.html | 69 +-
docs/blog/flex-pelican-theme-update-2-2.html | 69 +-
docs/blog/flex-pelican-theme.html | 69 +-
docs/blog/index.html | 111 +-
docs/blog/pages/about.html | 57 +-
docs/blog/pages/contact.html | 57 +-
docs/blog/tag/pelican.html | 111 +-
docs/blog/tag/python.html | 111 +-
docs/blog/tag/theme.html | 111 +-
docs/blog/tags.html | 65 +-
docs/blog/theme/font-awesome/css/brands.css | 5 +
.../theme/font-awesome/css/fontawesome.css | 5 +
docs/blog/theme/font-awesome/css/solid.css | 5 +
.../font-awesome/webfonts/fa-brands-400.eot | Bin 0 -> 115052 bytes
.../font-awesome/webfonts/fa-brands-400.svg | 1127 +++++++++
.../font-awesome/webfonts/fa-brands-400.ttf | Bin 0 -> 114816 bytes
.../font-awesome/webfonts/fa-brands-400.woff | Bin 0 -> 73920 bytes
.../font-awesome/webfonts/fa-brands-400.woff2 | Bin 0 -> 63376 bytes
.../font-awesome/webfonts/fa-solid-900.eot | Bin 0 -> 160768 bytes
.../font-awesome/webfonts/fa-solid-900.svg | 2231 +++++++++++++++++
.../font-awesome/webfonts/fa-solid-900.ttf | Bin 0 -> 160548 bytes
.../font-awesome/webfonts/fa-solid-900.woff | Bin 0 -> 76632 bytes
.../font-awesome/webfonts/fa-solid-900.woff2 | Bin 0 -> 59572 bytes
docs/blog/theme/stylesheet/style.less | 25 +-
docs/blog/theme/stylesheet/style.min.css | 2 +-
docs/blog/theme/stylesheet/variables.less | 2 +
docs/develop_server.sh | 103 -
docs/pelicanconf.py | 2 -
docs/publishconf.py | 2 -
docs/tasks.py | 112 +
43 files changed, 4347 insertions(+), 925 deletions(-)
create mode 100644 docs/Makefile
create mode 100644 docs/blog/theme/font-awesome/css/brands.css
create mode 100644 docs/blog/theme/font-awesome/css/fontawesome.css
create mode 100644 docs/blog/theme/font-awesome/css/solid.css
create mode 100644 docs/blog/theme/font-awesome/webfonts/fa-brands-400.eot
create mode 100644 docs/blog/theme/font-awesome/webfonts/fa-brands-400.svg
create mode 100644 docs/blog/theme/font-awesome/webfonts/fa-brands-400.ttf
create mode 100644 docs/blog/theme/font-awesome/webfonts/fa-brands-400.woff
create mode 100644 docs/blog/theme/font-awesome/webfonts/fa-brands-400.woff2
create mode 100644 docs/blog/theme/font-awesome/webfonts/fa-solid-900.eot
create mode 100644 docs/blog/theme/font-awesome/webfonts/fa-solid-900.svg
create mode 100644 docs/blog/theme/font-awesome/webfonts/fa-solid-900.ttf
create mode 100644 docs/blog/theme/font-awesome/webfonts/fa-solid-900.woff
create mode 100644 docs/blog/theme/font-awesome/webfonts/fa-solid-900.woff2
delete mode 100755 docs/develop_server.sh
create mode 100644 docs/tasks.py
diff --git a/docs/Makefile b/docs/Makefile
new file mode 100644
index 0000000..6f3adc5
--- /dev/null
+++ b/docs/Makefile
@@ -0,0 +1,74 @@
+PY?=python3
+PELICAN?=pelican
+PELICANOPTS=
+
+BASEDIR=$(CURDIR)
+INPUTDIR=$(BASEDIR)/content
+OUTPUTDIR=$(BASEDIR)/output
+CONFFILE=$(BASEDIR)/pelicanconf.py
+PUBLISHCONF=$(BASEDIR)/publishconf.py
+
+GITHUB_PAGES_BRANCH=gh-pages
+
+
+DEBUG ?= 0
+ifeq ($(DEBUG), 1)
+ PELICANOPTS += -D
+endif
+
+RELATIVE ?= 0
+ifeq ($(RELATIVE), 1)
+ PELICANOPTS += --relative-urls
+endif
+
+help:
+ @echo 'Makefile for a pelican Web site '
+ @echo ' '
+ @echo 'Usage: '
+ @echo ' make html (re)generate the web site '
+ @echo ' make clean remove the generated files '
+ @echo ' make regenerate regenerate files upon modification '
+ @echo ' make publish generate using production settings '
+ @echo ' make serve [PORT=8000] serve site at http://localhost:8000'
+ @echo ' make serve-global [SERVER=0.0.0.0] serve (as root) to $(SERVER):80 '
+ @echo ' make devserver [PORT=8000] serve and regenerate together '
+ @echo ' '
+ @echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html '
+ @echo 'Set the RELATIVE variable to 1 to enable relative urls '
+ @echo ' '
+
+html:
+ $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
+
+clean:
+ [ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR)
+
+regenerate:
+ $(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
+
+serve:
+ifdef PORT
+ $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT)
+else
+ $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
+endif
+
+serve-global:
+ifdef SERVER
+ $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) -b $(SERVER)
+else
+ $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) -b 0.0.0.0
+endif
+
+
+devserver:
+ifdef PORT
+ $(PELICAN) -lr $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT)
+else
+ $(PELICAN) -lr $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
+endif
+
+publish:
+ $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS)
+
+.PHONY: html help clean regenerate serve serve-global devserver publish
diff --git a/docs/README.md b/docs/README.md
index 296abc8..d140b91 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,9 +1,3 @@
# Flex Blog Example
-## Build
-
-`pelican -s pelicanconf.py`
-
-## Publish
-
-`pelican -s publishconf.py`
+Visit [http://flex.alxd.me/blog](http://flex.alxd.me/blog).
diff --git a/docs/blog/archives.html b/docs/blog/archives.html
index b25caf3..70e9072 100644
--- a/docs/blog/archives.html
+++ b/docs/blog/archives.html
@@ -10,28 +10,21 @@
-
+
+
-
-
+
+
+
+
-
+
-
+
-
-
-
@@ -49,7 +42,7 @@
-
+
Flex – Archives
@@ -65,23 +58,31 @@