diff --git a/Pipfile b/Pipfile index 510587f..85fcd25 100644 --- a/Pipfile +++ b/Pipfile @@ -12,7 +12,6 @@ aiohttp = "==3.5.1" click = "==7.0" sanic-oauth = "==0.2.5" sanic-mako = "==0.4.0" -aiocontextvars = "==0.1.2" wtforms = "==2.2.1" sanic-auth = "==0.2.0" sanic-wtf = "==0.5.0" diff --git a/Pipfile.lock b/Pipfile.lock deleted file mode 100644 index 4c1677b..0000000 --- a/Pipfile.lock +++ /dev/null @@ -1,355 +0,0 @@ -{ - "_meta": { - "hash": { - "sha256": "b565ebc590daac513a65cc4076cb7506bdf502ddaac56bcd4c0792f306f70530" - }, - "pipfile-spec": 6, - "requires": { - "python_version": "3.6" - }, - "sources": [ - { - "name": "pypi", - "url": "https://pypi.python.org/simple", - "verify_ssl": true - } - ] - }, - "default": { - "aenum": { - "hashes": [ - "sha256:3df9b84cce5dc9ed77c337079f97b66c44c0053eb87d6f4d46b888dc45801e38", - "sha256:7a77c205c4bc9d7fe9bd73b3193002d724aebf5909fa0d297534208953891ec8", - "sha256:a3208e4b28db3a7b232ff69b934aef2ea1bf27286d9978e1e597d46f490e4687" - ], - "version": "==2.1.2" - }, - "aiofiles": { - "hashes": [ - "sha256:021ea0ba314a86027c166ecc4b4c07f2d40fc0f4b3a950d1868a0f2571c2bbee", - "sha256:1e644c2573f953664368de28d2aa4c89dfd64550429d0c27c4680ccd3aa4985d" - ], - "version": "==0.4.0" - }, - "aiomysql": { - "hashes": [ - "sha256:2a3fa18b9c058a29f99d1172539d6960edbeababf879eda9a3c0aec66932c793", - "sha256:e7a08a3dbe61baa40d7fe08d291b0fd9d0c6bbf94f7715702e6e9205988a3f16" - ], - "index": "pypi", - "version": "==0.0.19" - }, - "aiosqlite": { - "hashes": [ - "sha256:554669169488785f56e2f186583a9d1023bb3dedb1fd08847966e78ce8854c96" - ], - "version": "==0.8.0" - }, - "appnope": { - "hashes": [ - "sha256:5b26757dc6f79a3b7dc9fab95359328d5747fcb2409d331ea66d0272b90ab2a0", - "sha256:8b995ffe925347a2138d7ac0fe77155e4311a0ea6d6da4f5128fe4b3cbe5ed71" - ], - "markers": "sys_platform == 'darwin'", - "version": "==0.1.0" - }, - "asn1crypto": { - "hashes": [ - "sha256:2f1adbb7546ed199e3c90ef23ec95c5cf3585bac7d11fb7eb562a3fe89c64e87", - "sha256:9d5c20441baf0cb60a4ac34cc447c6c189024b6b4c6cd7877034f4965c464e49" - ], - "version": "==0.24.0" - }, - "backcall": { - "hashes": [ - "sha256:38ecd85be2c1e78f77fd91700c76e14667dc21e2713b63876c0eb901196e01e4", - "sha256:bbbf4b1e5cd2bdb08f915895b51081c041bac22394fdfcfdfbe9f14b77c08bf2" - ], - "version": "==0.1.0" - }, - "cffi": { - "hashes": [ - "sha256:151b7eefd035c56b2b2e1eb9963c90c6302dc15fbd8c1c0a83a163ff2c7d7743", - "sha256:1553d1e99f035ace1c0544050622b7bc963374a00c467edafac50ad7bd276aef", - "sha256:1b0493c091a1898f1136e3f4f991a784437fac3673780ff9de3bcf46c80b6b50", - "sha256:2ba8a45822b7aee805ab49abfe7eec16b90587f7f26df20c71dd89e45a97076f", - "sha256:3bb6bd7266598f318063e584378b8e27c67de998a43362e8fce664c54ee52d30", - "sha256:3c85641778460581c42924384f5e68076d724ceac0f267d66c757f7535069c93", - "sha256:3eb6434197633b7748cea30bf0ba9f66727cdce45117a712b29a443943733257", - "sha256:495c5c2d43bf6cebe0178eb3e88f9c4aa48d8934aa6e3cddb865c058da76756b", - "sha256:4c91af6e967c2015729d3e69c2e51d92f9898c330d6a851bf8f121236f3defd3", - "sha256:57b2533356cb2d8fac1555815929f7f5f14d68ac77b085d2326b571310f34f6e", - "sha256:770f3782b31f50b68627e22f91cb182c48c47c02eb405fd689472aa7b7aa16dc", - "sha256:79f9b6f7c46ae1f8ded75f68cf8ad50e5729ed4d590c74840471fc2823457d04", - "sha256:7a33145e04d44ce95bcd71e522b478d282ad0eafaf34fe1ec5bbd73e662f22b6", - "sha256:857959354ae3a6fa3da6651b966d13b0a8bed6bbc87a0de7b38a549db1d2a359", - "sha256:87f37fe5130574ff76c17cab61e7d2538a16f843bb7bca8ebbc4b12de3078596", - "sha256:95d5251e4b5ca00061f9d9f3d6fe537247e145a8524ae9fd30a2f8fbce993b5b", - "sha256:9d1d3e63a4afdc29bd76ce6aa9d58c771cd1599fbba8cf5057e7860b203710dd", - "sha256:a36c5c154f9d42ec176e6e620cb0dd275744aa1d804786a71ac37dc3661a5e95", - "sha256:a6a5cb8809091ec9ac03edde9304b3ad82ad4466333432b16d78ef40e0cce0d5", - "sha256:ae5e35a2c189d397b91034642cb0eab0e346f776ec2eb44a49a459e6615d6e2e", - "sha256:b0f7d4a3df8f06cf49f9f121bead236e328074de6449866515cea4907bbc63d6", - "sha256:b75110fb114fa366b29a027d0c9be3709579602ae111ff61674d28c93606acca", - "sha256:ba5e697569f84b13640c9e193170e89c13c6244c24400fc57e88724ef610cd31", - "sha256:be2a9b390f77fd7676d80bc3cdc4f8edb940d8c198ed2d8c0be1319018c778e1", - "sha256:ca1bd81f40adc59011f58159e4aa6445fc585a32bb8ac9badf7a2c1aa23822f2", - "sha256:d5d8555d9bfc3f02385c1c37e9f998e2011f0db4f90e250e5bc0c0a85a813085", - "sha256:e55e22ac0a30023426564b1059b035973ec82186ddddbac867078435801c7801", - "sha256:e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4", - "sha256:ecbb7b01409e9b782df5ded849c178a0aa7c906cf8c5a67368047daab282b184", - "sha256:ed01918d545a38998bfa5902c7c00e0fee90e957ce036a4000a88e3fe2264917", - "sha256:edabd457cd23a02965166026fd9bfd196f4324fe6032e866d0f3bd0301cd486f", - "sha256:fdf1c1dc5bafc32bc5d08b054f94d659422b05aba244d6be4ddc1c72d9aa70fb" - ], - "version": "==1.11.5" - }, - "ciso8601": { - "hashes": [ - "sha256:01c44f93addee3cfd599ba6ae8d1b772ed642b89132e504c629feb57cc63a177" - ], - "version": "==2.1.1" - }, - "cryptography": { - "hashes": [ - "sha256:05a6052c6a9f17ff78ba78f8e6eb1d777d25db3b763343a1ae89a7a8670386dd", - "sha256:0eb83a24c650a36f68e31a6d0a70f7ad9c358fa2506dc7b683398b92e354a038", - "sha256:0ff4a3d6ea86aa0c9e06e92a9f986de7ee8231f36c4da1b31c61a7e692ef3378", - "sha256:1699f3e916981df32afdd014fb3164db28cdb61c757029f502cb0a8c29b2fdb3", - "sha256:1b1f136d74f411f587b07c076149c4436a169dc19532e587460d9ced24adcc13", - "sha256:21e63dd20f5e5455e8b34179ac43d95b3fb1ffa54d071fd2ed5d67da82cfe6dc", - "sha256:2454ada8209bbde97065453a6ca488884bbb263e623d35ba183821317a58b46f", - "sha256:3cdc5f7ca057b2214ce4569e01b0f368b3de9d8ee01887557755ccd1c15d9427", - "sha256:418e7a5ec02a7056d3a4f0c0e7ea81df374205f25f4720bb0e84189aa5fd2515", - "sha256:471a097076a7c4ab85561d7fa9a1239bd2ae1f9fd0047520f13d8b340bf3210b", - "sha256:5ecaf9e7db3ca582c6de6229525d35db8a4e59dc3e8a40a331674ed90e658cbf", - "sha256:63b064a074f8dc61be81449796e2c3f4e308b6eba04a241a5c9f2d05e882c681", - "sha256:6afe324dfe6074822ccd56d80420df750e19ac30a4e56c925746c735cf22ae8b", - "sha256:70596e90398574b77929cd87e1ac6e43edd0e29ba01e1365fed9c26bde295aa5", - "sha256:70c2b04e905d3f72e2ba12c58a590817128dfca08949173faa19a42c824efa0b", - "sha256:8908f1db90be48b060888e9c96a0dee9d842765ce9594ff6a23da61086116bb6", - "sha256:af12dfc9874ac27ebe57fc28c8df0e8afa11f2a1025566476b0d50cdb8884f70", - "sha256:b4fc04326b2d259ddd59ed8ea20405d2e695486ab4c5e1e49b025c484845206e", - "sha256:da5b5dda4aa0d5e2b758cc8dfc67f8d4212e88ea9caad5f61ba132f948bab859" - ], - "version": "==2.4.2" - }, - "decorator": { - "hashes": [ - "sha256:2c51dff8ef3c447388fe5e4453d24a2bf128d3a4c32af3fabef1f01c6851ab82", - "sha256:c39efa13fbdeb4506c476c9b3babf6a718da943dab7811c206005a4a956c080c" - ], - "version": "==4.3.0" - }, - "httptools": { - "hashes": [ - "sha256:04c7703bbef0e8ca28b09811547352b8c7c20549eab70dc24e536bb24fd2b7c5" - ], - "version": "==0.0.11" - }, - "idna": { - "hashes": [ - "sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407", - "sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c" - ], - "version": "==2.8" - }, - "ipython": { - "hashes": [ - "sha256:6a9496209b76463f1dec126ab928919aaf1f55b38beb9219af3fe202f6bbdd12", - "sha256:f69932b1e806b38a7818d9a1e918e5821b685715040b48e59c657b3c7961b742" - ], - "index": "pypi", - "version": "==7.2.0" - }, - "ipython-genutils": { - "hashes": [ - "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8", - "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8" - ], - "version": "==0.2.0" - }, - "jedi": { - "hashes": [ - "sha256:0191c447165f798e6a730285f2eee783fff81b0d3df261945ecb80983b5c3ca7", - "sha256:b7493f73a2febe0dc33d51c99b474547f7f6c0b2c8fb2b21f453eef204c12148" - ], - "version": "==0.13.1" - }, - "multidict": { - "hashes": [ - "sha256:024b8129695a952ebd93373e45b5d341dbb87c17ce49637b34000093f243dd4f", - "sha256:041e9442b11409be5e4fc8b6a97e4bcead758ab1e11768d1e69160bdde18acc3", - "sha256:045b4dd0e5f6121e6f314d81759abd2c257db4634260abcfe0d3f7083c4908ef", - "sha256:047c0a04e382ef8bd74b0de01407e8d8632d7d1b4db6f2561106af812a68741b", - "sha256:068167c2d7bbeebd359665ac4fff756be5ffac9cda02375b5c5a7c4777038e73", - "sha256:148ff60e0fffa2f5fad2eb25aae7bef23d8f3b8bdaf947a65cdbe84a978092bc", - "sha256:1d1c77013a259971a72ddaa83b9f42c80a93ff12df6a4723be99d858fa30bee3", - "sha256:1d48bc124a6b7a55006d97917f695effa9725d05abe8ee78fd60d6588b8344cd", - "sha256:31dfa2fc323097f8ad7acd41aa38d7c614dd1960ac6681745b6da124093dc351", - "sha256:34f82db7f80c49f38b032c5abb605c458bac997a6c3142e0d6c130be6fb2b941", - "sha256:3d5dd8e5998fb4ace04789d1d008e2bb532de501218519d70bb672c4c5a2fc5d", - "sha256:4a6ae52bd3ee41ee0f3acf4c60ceb3f44e0e3bc52ab7da1c2b2aa6703363a3d1", - "sha256:4b02a3b2a2f01d0490dd39321c74273fed0568568ea0e7ea23e02bd1fb10a10b", - "sha256:4b843f8e1dd6a3195679d9838eb4670222e8b8d01bc36c9894d6c3538316fa0a", - "sha256:5de53a28f40ef3c4fd57aeab6b590c2c663de87a5af76136ced519923d3efbb3", - "sha256:61b2b33ede821b94fa99ce0b09c9ece049c7067a33b279f343adfe35108a4ea7", - "sha256:6a3a9b0f45fd75dc05d8e93dc21b18fc1670135ec9544d1ad4acbcf6b86781d0", - "sha256:76ad8e4c69dadbb31bad17c16baee61c0d1a4a73bed2590b741b2e1a46d3edd0", - "sha256:7ba19b777dc00194d1b473180d4ca89a054dd18de27d0ee2e42a103ec9b7d014", - "sha256:7c1b7eab7a49aa96f3db1f716f0113a8a2e93c7375dd3d5d21c4941f1405c9c5", - "sha256:7fc0eee3046041387cbace9314926aa48b681202f8897f8bff3809967a049036", - "sha256:8ccd1c5fff1aa1427100ce188557fc31f1e0a383ad8ec42c559aabd4ff08802d", - "sha256:8e08dd76de80539d613654915a2f5196dbccc67448df291e69a88712ea21e24a", - "sha256:c18498c50c59263841862ea0501da9f2b3659c00db54abfbf823a80787fde8ce", - "sha256:c49db89d602c24928e68c0d510f4fcf8989d77defd01c973d6cbe27e684833b1", - "sha256:ce20044d0317649ddbb4e54dab3c1bcc7483c78c27d3f58ab3d0c7e6bc60d26a", - "sha256:d1071414dd06ca2eafa90c85a079169bfeb0e5f57fd0b45d44c092546fcd6fd9", - "sha256:d3be11ac43ab1a3e979dac80843b42226d5d3cccd3986f2e03152720a4297cd7", - "sha256:db603a1c235d110c860d5f39988ebc8218ee028f07a7cbc056ba6424372ca31b" - ], - "version": "==4.5.2" - }, - "parso": { - "hashes": [ - "sha256:35704a43a3c113cce4de228ddb39aab374b8004f4f2407d070b6a2ca784ce8a2", - "sha256:895c63e93b94ac1e1690f5fdd40b65f07c8171e3e53cbd7793b5b96c0e0a7f24" - ], - "version": "==0.3.1" - }, - "pexpect": { - "hashes": [ - "sha256:2a8e88259839571d1251d278476f3eec5db26deb73a70be5ed5dc5435e418aba", - "sha256:3fbd41d4caf27fa4a377bfd16fef87271099463e6fa73e92a52f92dfee5d425b" - ], - "markers": "sys_platform != 'win32'", - "version": "==4.6.0" - }, - "pickleshare": { - "hashes": [ - "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca", - "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56" - ], - "version": "==0.7.5" - }, - "prompt-toolkit": { - "hashes": [ - "sha256:c1d6aff5252ab2ef391c2fe498ed8c088066f66bc64a8d5c095bbf795d9fec34", - "sha256:d4c47f79b635a0e70b84fdb97ebd9a274203706b1ee5ed44c10da62755cf3ec9", - "sha256:fd17048d8335c1e6d5ee403c3569953ba3eb8555d710bfc548faf0712666ea39" - ], - "version": "==2.0.7" - }, - "ptyprocess": { - "hashes": [ - "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0", - "sha256:d7cc528d76e76342423ca640335bd3633420dc1366f258cb31d05e865ef5ca1f" - ], - "version": "==0.6.0" - }, - "pycparser": { - "hashes": [ - "sha256:a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3" - ], - "version": "==2.19" - }, - "pygments": { - "hashes": [ - "sha256:6301ecb0997a52d2d31385e62d0a4a4cf18d2f2da7054a5ddad5c366cd39cee7", - "sha256:82666aac15622bd7bb685a4ee7f6625dd716da3ef7473620c192c0168aae64fc" - ], - "version": "==2.3.0" - }, - "pymysql": { - "hashes": [ - "sha256:95f057328357e0e13a30e67857a8c694878b0175797a9a203ee7adbfb9b1ec5f", - "sha256:9ec760cbb251c158c19d6c88c17ca00a8632bac713890e465b2be01fdc30713f" - ], - "version": "==0.9.2" - }, - "pypika": { - "hashes": [ - "sha256:b97ce8ffac85a7f63c0276864fc16d6ca2a2a24ed8c16cc1c60d2994e9748e1c" - ], - "version": "==0.18.4" - }, - "sanic": { - "hashes": [ - "sha256:36aede00c7b82eb3755accca6e3a411e43d4b61e345a6f2b750daf1d14fefb00", - "sha256:ba2d3c493a885fbdd5434856890875e6f44d61ffaf65d22681e9a3b1bcc55647" - ], - "index": "pypi", - "version": "==0.8.3" - }, - "six": { - "hashes": [ - "sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c", - "sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73" - ], - "version": "==1.12.0" - }, - "tortoise-orm": { - "hashes": [ - "sha256:2c35b9b846650f865378cfe8876a33d62514a98acbd2ce0de47b04b76559c918" - ], - "index": "pypi", - "version": "==0.10.11" - }, - "traitlets": { - "hashes": [ - "sha256:9c4bd2d267b7153df9152698efb1050a5d84982d3384a37b2c1f7723ba3e7835", - "sha256:c6cb5e6f57c5a9bdaa40fa71ce7b4af30298fbab9ece9815b5d995ab6217c7d9" - ], - "version": "==4.3.2" - }, - "ujson": { - "hashes": [ - "sha256:f66073e5506e91d204ab0c614a148d5aa938bdbf104751be66f8ad7a222f5f86" - ], - "markers": "sys_platform != 'win32' and implementation_name == 'cpython'", - "version": "==1.35" - }, - "uvloop": { - "hashes": [ - "sha256:159331750bfce6f0f2bd227fd5e3ccb8db8d2bbe08e84b9db5b6c647f651f5c0", - "sha256:1cf6c111a19f782813ca57fa51a993978f4686de5e3ab5746bcd57af1a3ae4f8", - "sha256:48da0b548a341c1add4c7bc9dd453a9e9feb3b260c6055751fe6c209f957aeda", - "sha256:6549c9384a0256c97628f7a000b647e9496f7f8b211736f2e0b6858a738006bd", - "sha256:708654c8e445f92160fc9e5c93387ca73f38904632527e5d38eb13eaa4fd0a12", - "sha256:8b53ed6d07b3aa8c8255d2f9fcaf7107cd4949c6892fa561472021ecec205764", - "sha256:8f92c4ae4fcf497ca48e5d2f2032b1eabd48878b7a46b7748dfa8d607ef250b1", - "sha256:951331edad369cb9c000085e31da6bbb8af8ab791a726f7b29a608ccd79a6b74", - "sha256:ab435a1ba78931ca8694a58478a7449b481c8442789e3420f31a593794c1c481", - "sha256:fd5042d0a2ea07b92d0e2190f7711feb91cde31cf2bf1829e2e8c4c0fdd1f1aa" - ], - "markers": "sys_platform != 'win32' and implementation_name == 'cpython'", - "version": "==0.11.3" - }, - "wcwidth": { - "hashes": [ - "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e", - "sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c" - ], - "version": "==0.1.7" - }, - "websockets": { - "hashes": [ - "sha256:0b7b561bcbf992edd54e961b89551b5b6073415a0446fe445bd6554d41dabb95", - "sha256:2469c98f2254878a49a6eda248d3ed8a89bbdca85cc316ff72ea15924cec9e1f", - "sha256:29b676568e4fcb1a05064473b96243ef4e9391f251b4c485cf7f93507787b459", - "sha256:2a05e42400de009c1c330167cd6d90b300d2364d2dd1e6539d01a6a22901967b", - "sha256:39241fb291c1648e33dc41208be876a5771466291f0f6f7bff8f6732373084bd", - "sha256:43c332fc331541c57d40c124089b270d668c25a6b04908bd688969375db7327f", - "sha256:480259ec6e80f28859f23b5c231beb856fb96ab30e64ee621fdaf27da1515604", - "sha256:9049ec652713f5132b512d3498c2d37264580714ccc95dbc0f7f9622c3f6da7e", - "sha256:a17c45716178a42cc8f66f587507f01e169a75556749d88f714e4c1d295885d1", - "sha256:a49d315db5a7a19d55422e1678e8a1c3b9661d7296bef3179fa620cf80b12674", - "sha256:a911beb8149d7dae9d4c942927c448c05c41dfaa9c002a6bc26e269df932769b", - "sha256:cf34479130704797ce28a478f0b5985abe71ea90999a1c956e15fe0b0b11d0dc", - "sha256:d3724acff61ee1029fefc614cf005982338b033998a0b71fbb13a0a2fd99ab6f" - ], - "version": "==5.0.1" - } - }, - "develop": {} -} diff --git a/README.md b/README.md index 747aff0..b8dbaf4 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,47 @@ # lyanna -My Blog Using Sanic +
+ My Blog Using Sanic +
-文档准备中.. ++ 查看文档 📖 +
+ +## Overview + +这是一个使用asyncio生态开发的个人技术博客。具体如下: + +* Web框架: Sanic +* 模板: Mako/Sanic-Mako +* 数据库: TortoiseORM/aiomysql +* 缓存: aiomcache +* KV数据库: aioredis + +其他aio扩展: Sanic-Auth、Sanic-wtf、sanic-session、aiotask-context、asyncblink、sanic-sentry + +## Demo + +[DEMO](https://blog.pycourses.com) + ++ +
+ +## Features + +* 可以通过后台对文章、标签等做增删改查 +* 后台支持Markdown编辑/预览 +* 支持代码语法高亮 +* 支持TOC +* 支持文章搜索 +* 支持Github登录评论 +* 支持Github登录对文章和平台表态 +* 可以分享文章到微信/微博/豆瓣/印象笔记/Linkedin +* 支持Hexo等其他Markdown源文件的导入 +* 支持文章的语法高亮 +* 可以增加个人设置(设置头像,个人介绍,添加Github等链接) +* 支持定制导航栏 +* 支持RSS/Sitemap +* 相关文章推荐(根据相似标签) +* 响应式设计 diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..98b51af --- /dev/null +++ b/docs/README.md @@ -0,0 +1,9 @@ +# Lyanna + +> You are a Targaryen but you’re also a Stark. You’re fire and ice. + +`Lyanna` My Blog Using Sanic + +![Lyanna](https://user-images.githubusercontent.com/841395/51306517-7900bd00-1a78-11e9-8e4d-96d840c8cc99.gif) + + diff --git a/docs/_sidebar.md b/docs/_sidebar.md new file mode 100644 index 0000000..9920a59 --- /dev/null +++ b/docs/_sidebar.md @@ -0,0 +1,18 @@ +- 入门 + - [快速开始](quickstart.md) + - [功能](features.md) + - [配置项](configuration.md) + - [部署](deploying.md) + +- 高级 + + - [前端开发](front-dev.md) + - [后端开发](python-dev.md) + +- 相关课程 + + - [Python项目实战](https://www.pycourses.com/article/python-project/) + - [爱湃森店铺](https://appv72m4Msi7516.h5.xiaoeknow.com) + +- [Todo](todo.md) +- [Changelog](changelog.md) diff --git a/docs/changelog.md b/docs/changelog.md new file mode 100644 index 0000000..442cb48 --- /dev/null +++ b/docs/changelog.md @@ -0,0 +1,5 @@ +# Changelog + +## 1.0 (2019-01-17) + +Init commit diff --git a/docs/configuration.md b/docs/configuration.md new file mode 100644 index 0000000..a8e9c27 --- /dev/null +++ b/docs/configuration.md @@ -0,0 +1,99 @@ +# 配置项 + +全部配置项都在 config.py 中可以找到 + +## DB_URL + +- 默认值:`mysql://root:@localhost:3306/test?charset=utf8` + +设置数据库的URL + +## DEBUG + +- 默认值:`False` + +是否开启DEBUG模式,开启后可以看到详细错误,修改代码后不用重启就可以autoreload + +## WTF_CSRF_SECRET_KEY + +- 默认值:`123` + +Sanic-wtf 需要的 CSRF KEY + +## MEMCACHED_HOST + +- 默认值: `127.0.0.1` + +Memcached的主机名或者IP + +## MEMCACHED_PORT + +- 默认值: `11211` + +Memcached的端口 + +## redirect_uri + +- 默认值: `http://127.0.0.1:8000/oauth` + +在Github申请的应用的回调地址,如果只是使用默认的 http://127.0.0.1:8000 不需要改变 + +## client_id + +- 默认值: `098a2e6da880878e05da` + +Github申请的应用client_id,如果只是使用默认的 http://127.0.0.1:8000 不需要改变 + +## client_secret + +- 默认值: `854cc0d86e61a83bb1dd00c3b23a3cc5b832d45c` + +Github申请的应用client_secret,如果只是使用默认的 http://127.0.0.1:8000 不需要改变 + +## REACT_PROMPT + +- 默认值: `喜欢这篇文章吗? 记得给我留言或订阅哦` + +文章下的默认提示语 + +## SHOW_PROFILE + +- 默认值: `False` + +是否显示个人设置项,开启后需要通过后台配置 + +注意: 这会改变主要的布局! + +## AUTHOR + +- 默认值: `xiaoming` + +指定博客作者名字 + +## SITE_TITLE + +- 默认值: `My Blog` + +指定博客标题 + +## PER_PAGE + +- 默认值: `10` + +首页文章列表每页文章数量 + +## GOOGLE_ANALYTICS + +- 默认值: `''` + +指定GA,为空表示不开启 + +## SENTRY_DSN + +- 默认值: `''` + +指定Sentry的DSN(Data Source Name),为空表示不追踪错误堆栈 + +## SITE_NAV_MENUS + +可以定制导航栏,具体默认值可以看 config.py diff --git a/docs/deploying.md b/docs/deploying.md new file mode 100644 index 0000000..7770722 --- /dev/null +++ b/docs/deploying.md @@ -0,0 +1,15 @@ +# 部署 + +我的部署方案是使用 Ansbile: + +```bash +ansible-playbook deploy.yml --ask-sudo-pass +``` + +启动应用的方式: + +``` +gunicorn app:app --bind unix:/XXX/lyanna.sock --worker-class sanic.worker.GunicornWorker --log-file /XXX/lyanna.log +``` + +通过 Ansbile 剧本把 local_settings.py, nginx.conf, supervisor.conf 部署到服务器上 diff --git a/docs/features.md b/docs/features.md new file mode 100644 index 0000000..7cb7d60 --- /dev/null +++ b/docs/features.md @@ -0,0 +1,19 @@ +# 功能 + +支持如下功能 + +* 可以通过后台对文章、标签等做增删改查 +* 后台支持Markdown编辑/预览 +* 支持代码语法高亮 +* 支持TOC +* 支持文章搜索 +* 支持Github登录评论 +* 支持Github登录对文章和平台表态 +* 可以分享文章到微信/微博/豆瓣/印象笔记/Linkedin +* 支持Hexo等其他Markdown源文件的导入 +* 支持文章的语法高亮 +* 可以增加个人设置(设置头像,个人介绍,添加Github等链接) +* 支持定制导航栏 +* 支持RSS/Sitemap +* 相关文章推荐(根据相似标签) +* 响应式网站设计 diff --git a/docs/front-dev.md b/docs/front-dev.md new file mode 100644 index 0000000..c4a6d9c --- /dev/null +++ b/docs/front-dev.md @@ -0,0 +1,27 @@ +# 前端开发 + +博客的前端分2部分 + +## 后台和博客的Javascript + +使用 Webpack+ES6+Sass ,首先需要安装依赖: + +```bash +yarn install +``` + +接着启动开发环境: + +```bash +yarn run start +``` + +修改src目录下代码即可看到效果 + +## 博客的CSS + +修改static/css下非`min.css`后缀的CSS文件,然后执行如下命令合并和压缩: + +``` +python manage.py build-css +``` diff --git a/docs/index.html b/docs/index.html index 572da27..99ae376 100644 --- a/docs/index.html +++ b/docs/index.html @@ -15,10 +15,21 @@ +