├── libs ├── TableContents.php ├── Language.php ├── Comments.php └── lang │ ├── zh-cn.php │ ├── moe.php │ ├── zh-tw.php │ └── en-us.php ├── alipay.png ├── banner.png ├── favicon.ico ├── screenshot.png ├── .github ├── FUNDING.yml └── ISSUE_TEMPLATE │ ├── feature.md │ ├── help.md │ └── bug.md ├── images ├── postbg │ ├── 1.jpg │ ├── 2.jpg │ ├── 3.jpg │ ├── 4.jpg │ ├── 5.jpg │ ├── 6.jpg │ ├── 7.jpg │ ├── 8.jpg │ ├── 9.jpg │ ├── 10.jpg │ ├── 11.jpg │ ├── 12.jpg │ ├── 13.jpg │ ├── 14.jpg │ └── 15.jpg ├── icons │ ├── home.png │ ├── info.png │ ├── skin.png │ ├── night.png │ └── remove.png ├── loading │ ├── block.gif │ ├── owo.png │ ├── shojo.gif │ ├── avatar.jpg │ ├── octopus.gif │ └── bilibili.gif └── biaoqing │ ├── twemoji │ ├── cry.png │ ├── ok.png │ ├── shy.png │ ├── angry.png │ ├── cool.png │ ├── family.png │ ├── gift.png │ ├── happy.png │ ├── kiss.png │ ├── love.png │ ├── notalk.png │ ├── prayer.png │ ├── proud.png │ ├── smile.png │ ├── star.png │ ├── sweat.png │ ├── tilted.png │ ├── tongue.png │ ├── bigsmile.png │ ├── dtongue.png │ ├── smilecry.png │ ├── tiaomei.png │ ├── frightened.png │ ├── uncomfort.png │ └── congratulate.png │ ├── aru │ ├── E59090_2x.png │ ├── E6B197_2x.png │ ├── E4B8ADE58880_2x.png │ ├── E4B8ADE68C87_2x.png │ ├── E4B8ADE69EAA_2x.png │ ├── E4BAB2E4BAB2_2x.png │ ├── E4BEBFE4BEBF_2x.png │ ├── E582BBE7AC91_2x.png │ ├── E58685E4BCA4_2x.png │ ├── E587BBE68E8C_2x.png │ ├── E58FA3E6B0B4_2x.png │ ├── E59090E8888C_2x.png │ ├── E591B2E78999_2x.png │ ├── E592BDE6B094_2x.png │ ├── E593ADE6B3A3_2x.png │ ├── E596B7E6B0B4_2x.png │ ├── E596B7E8A180_2x.png │ ├── E59D90E7AD89_2x.png │ ├── E5A4A7E59BA7_2x.png │ ├── E5AEB3E7BE9E_2x.png │ ├── E5B08FE68092_2x.png │ ├── E5B0B4E5B0AC_2x.png │ ├── E5BE97E6848F_2x.png │ ├── E6838AE5969C_2x.png │ ├── E684A4E68092_2x.png │ ├── E68A95E9998D_2x.png │ ├── E68AA0E9BCBB_2x.png │ ├── E68ABDE7839F_2x.png │ ├── E697A0E5A588_2x.png │ ├── E697A0E8AFAD_2x.png │ ├── E69C9FE5BE85_2x.png │ ├── E6ACA2E591BC_2x.png │ ├── E6B7B1E6809D_2x.png │ ├── E78B82E6B197_2x.png │ ├── E78CAEE88AB1_2x.png │ ├── E79AB1E79C89_2x.png │ ├── E882BFE58C85_2x.png │ ├── E884B8E7BAA2_2x.png │ ├── E89CA1E7839B_2x.png │ ├── E8A782E5AF9F_2x.png │ ├── E982AAE681B6_2x.png │ ├── E99481E79C89_2x.png │ ├── E99481E79C90_2x.png │ ├── E995BFE88D89_2x.png │ ├── E998B4E69A97_2x.png │ ├── E9AB98E585B4_2x.png │ ├── E9BB91E7BABF_2x.png │ ├── E9BC93E68E8C_2x.png │ ├── E4B88DE8AFB4E8AF9D_2x.png │ ├── E4B88DE9AB98E585B4_2x.png │ ├── E5B08FE79CBCE79D9B_2x.png │ ├── E683B3E4B880E683B3_2x.png │ ├── E68987E880B3E58589_2x.png │ ├── E697A0E68980E8B093_2x.png │ ├── E78CAEE9BB84E7939C_2x.png │ ├── E79C8BE4B88DE8A781_2x.png │ ├── E79C8BE783ADE997B9_2x.png │ ├── E8A385E5A4A7E6ACBE_2x.png │ ├── E8B59EE4B880E4B8AA_2x.png │ ├── E4B88DE587BAE68980E69699_2x.png │ ├── E59090E8A180E58092E59CB0_2x.png │ ├── E5969CE69E81E8808CE6B3A3_2x.png │ └── E69A97E59CB0E8A782E5AF9F_2x.png │ └── paopao │ ├── OK_2x.png │ ├── haha_2x.png │ ├── what_2x.png │ ├── E4B996_2x.png │ ├── E586B7_2x.png │ ├── E59090_2x.png │ ├── E591BC_2x.png │ ├── E592A6_2x.png │ ├── E5958A_2x.png │ ├── E596B7_2x.png │ ├── E5BCB1_2x.png │ ├── E68092_2x.png │ ├── E6B197_2x.png │ ├── E6B3AA_2x.png │ ├── E985B7_2x.png │ ├── E992B1_2x.png │ ├── E4BEBFE4BEBF_2x.png │ ├── E58B89E5BCBA_2x.png │ ├── E59083E7939C_2x.png │ ├── E59083E7BF94_2x.png │ ├── E59090E8888C_2x.png │ ├── E591B5E591B5_2x.png │ ├── E59388E59388_2x.png │ ├── E5989AE7919F_2x.png │ ├── E5A4AAE998B3_2x.png │ ├── E5A794E5B188_2x.png │ ├── E5B08FE4B996_2x.png │ ├── E5BC80E5BF83_2x.png │ ├── E5BDA9E899B9_2x.png │ ├── E5BF83E7A28E_2x.png │ ├── E6838AE593AD_2x.png │ ├── E6838AE68190_2x.png │ ├── E6838AE8AEB6_2x.png │ ├── E6898BE7BAB8_2x.png │ ├── E68C96E9BCBB_2x.png │ ├── E6B299E58F91_2x.png │ ├── E6BB91E7A8BD_2x.png │ ├── E781AFE6B3A1_2x.png │ ├── E788B1E5BF83_2x.png │ ├── E78A80E588A9_2x.png │ ├── E78B82E6B197_2x.png │ ├── E78EABE791B0_2x.png │ ├── E7949FE6B094_2x.png │ ├── E79691E997AE_2x.png │ ├── E79C9FE6A392_2x.png │ ├── E79DA1E8A789_2x.png │ ├── E7A4BCE789A9_2x.png │ ├── E7AC91E5B0BF_2x.png │ ├── E7AC91E79CBC_2x.png │ ├── E8839CE588A9_2x.png │ ├── E88AB1E5BF83_2x.png │ ├── E88CB6E69DAF_2x.png │ ├── E88DAFE4B8B8_2x.png │ ├── E89B8BE7B395_2x.png │ ├── E89CA1E7839B_2x.png │ ├── E98499E8A786_2x.png │ ├── E985B8E788BD_2x.png │ ├── E992B1E5B881_2x.png │ ├── E998B4E999A9_2x.png │ ├── E99FB3E4B990_2x.png │ ├── E9A699E89589_2x.png │ ├── E9BB91E7BABF_2x.png │ ├── E4B88DE9AB98E585B4_2x.png │ ├── E4BDA0E68782E79A84_2x.png │ ├── E59180E592A9E788B9_2x.png │ ├── E5A4A7E68B87E68C87_2x.png │ ├── E5A4AAE5BC80E5BF83_2x.png │ ├── E5B08FE7BAA2E884B8_2x.png │ ├── E68792E5BE97E79086_2x.png │ ├── E68D82E598B4E7AC91_2x.png │ ├── E7BAA2E9A286E5B7BE_2x.png │ ├── E6989FE6989FE69C88E4BAAE_2x.png │ └── list.txt ├── docs ├── images │ ├── about.png │ ├── Untitled.png │ ├── Untitled 1.png │ ├── Untitled 2.png │ ├── Untitled 3.png │ ├── Untitled 4.png │ ├── QQ20200321145145.png │ ├── QQ20200321151919.png │ ├── QQ20200321152106.png │ ├── QQ20200321154231.png │ ├── QQ20200321161814.png │ └── QQ20200321174300.png ├── block-list.json ├── block-list.md ├── project-management.md └── change-log.md ├── page.php ├── 404.php ├── assets ├── js │ ├── editor.js │ ├── update.miracles.js │ ├── toaster.js │ ├── nprogress.js │ ├── pjax.jquery.js │ ├── details-element-polyfill.js │ └── cmt.miracles.js ├── linkData.sample.json └── css │ ├── nprogress.css │ ├── toaster.css │ ├── gazeimg.css │ ├── owo.min.css │ ├── main │ ├── component.css │ ├── element.css │ ├── page.css │ ├── comment.css │ ├── col.css │ └── nav.css │ ├── setting.miracles.css │ └── codestyle.css ├── themeConfig.php ├── post.php ├── about.php ├── archive.php ├── pagefile.php ├── index.php ├── functions.php ├── saying.php ├── LICENSE ├── includes ├── footer.php ├── head.php └── comments.php └── README.md /libs/TableContents.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /alipay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/alipay.png -------------------------------------------------------------------------------- /banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/banner.png -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/favicon.ico -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/screenshot.png -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | open_collective: miracles 2 | custom: ['https://afdian.net/@Eltrac'] 3 | -------------------------------------------------------------------------------- /images/postbg/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/postbg/1.jpg -------------------------------------------------------------------------------- /images/postbg/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/postbg/2.jpg -------------------------------------------------------------------------------- /images/postbg/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/postbg/3.jpg -------------------------------------------------------------------------------- /images/postbg/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/postbg/4.jpg -------------------------------------------------------------------------------- /images/postbg/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/postbg/5.jpg -------------------------------------------------------------------------------- /images/postbg/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/postbg/6.jpg -------------------------------------------------------------------------------- /images/postbg/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/postbg/7.jpg -------------------------------------------------------------------------------- /images/postbg/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/postbg/8.jpg -------------------------------------------------------------------------------- /images/postbg/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/postbg/9.jpg -------------------------------------------------------------------------------- /docs/images/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/docs/images/about.png -------------------------------------------------------------------------------- /images/icons/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/icons/home.png -------------------------------------------------------------------------------- /images/icons/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/icons/info.png -------------------------------------------------------------------------------- /images/icons/skin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/icons/skin.png -------------------------------------------------------------------------------- /images/postbg/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/postbg/10.jpg -------------------------------------------------------------------------------- /images/postbg/11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/postbg/11.jpg -------------------------------------------------------------------------------- /images/postbg/12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/postbg/12.jpg -------------------------------------------------------------------------------- /images/postbg/13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/postbg/13.jpg -------------------------------------------------------------------------------- /images/postbg/14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/postbg/14.jpg -------------------------------------------------------------------------------- /images/postbg/15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/postbg/15.jpg -------------------------------------------------------------------------------- /docs/images/Untitled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/docs/images/Untitled.png -------------------------------------------------------------------------------- /images/icons/night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/icons/night.png -------------------------------------------------------------------------------- /images/icons/remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/icons/remove.png -------------------------------------------------------------------------------- /images/loading/block.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/loading/block.gif -------------------------------------------------------------------------------- /images/loading/owo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/loading/owo.png -------------------------------------------------------------------------------- /images/loading/shojo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/loading/shojo.gif -------------------------------------------------------------------------------- /docs/images/Untitled 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/docs/images/Untitled 1.png -------------------------------------------------------------------------------- /docs/images/Untitled 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/docs/images/Untitled 2.png -------------------------------------------------------------------------------- /docs/images/Untitled 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/docs/images/Untitled 3.png -------------------------------------------------------------------------------- /docs/images/Untitled 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/docs/images/Untitled 4.png -------------------------------------------------------------------------------- /images/loading/avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/loading/avatar.jpg -------------------------------------------------------------------------------- /images/loading/octopus.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/loading/octopus.gif -------------------------------------------------------------------------------- /images/loading/bilibili.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/loading/bilibili.gif -------------------------------------------------------------------------------- /images/biaoqing/twemoji/cry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/cry.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/ok.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/shy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/shy.png -------------------------------------------------------------------------------- /docs/images/QQ20200321145145.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/docs/images/QQ20200321145145.png -------------------------------------------------------------------------------- /docs/images/QQ20200321151919.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/docs/images/QQ20200321151919.png -------------------------------------------------------------------------------- /docs/images/QQ20200321152106.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/docs/images/QQ20200321152106.png -------------------------------------------------------------------------------- /docs/images/QQ20200321154231.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/docs/images/QQ20200321154231.png -------------------------------------------------------------------------------- /docs/images/QQ20200321161814.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/docs/images/QQ20200321161814.png -------------------------------------------------------------------------------- /docs/images/QQ20200321174300.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/docs/images/QQ20200321174300.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E59090_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E59090_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E6B197_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E6B197_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/OK_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/OK_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/haha_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/haha_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/what_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/what_2x.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/angry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/angry.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/cool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/cool.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/family.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/family.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/gift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/gift.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/happy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/happy.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/kiss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/kiss.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/love.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/love.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/notalk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/notalk.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/prayer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/prayer.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/proud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/proud.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/smile.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/star.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/sweat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/sweat.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/tilted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/tilted.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/tongue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/tongue.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E4B996_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E4B996_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E586B7_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E586B7_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E59090_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E59090_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E591BC_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E591BC_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E592A6_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E592A6_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E5958A_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E5958A_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E596B7_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E596B7_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E5BCB1_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E5BCB1_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E68092_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E68092_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E6B197_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E6B197_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E6B3AA_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E6B3AA_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E985B7_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E985B7_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E992B1_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E992B1_2x.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/bigsmile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/bigsmile.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/dtongue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/dtongue.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/smilecry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/smilecry.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/tiaomei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/tiaomei.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E4B8ADE58880_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E4B8ADE58880_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E4B8ADE68C87_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E4B8ADE68C87_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E4B8ADE69EAA_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E4B8ADE69EAA_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E4BAB2E4BAB2_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E4BAB2E4BAB2_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E4BEBFE4BEBF_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E4BEBFE4BEBF_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E582BBE7AC91_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E582BBE7AC91_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E58685E4BCA4_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E58685E4BCA4_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E587BBE68E8C_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E587BBE68E8C_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E58FA3E6B0B4_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E58FA3E6B0B4_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E59090E8888C_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E59090E8888C_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E591B2E78999_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E591B2E78999_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E592BDE6B094_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E592BDE6B094_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E593ADE6B3A3_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E593ADE6B3A3_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E596B7E6B0B4_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E596B7E6B0B4_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E596B7E8A180_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E596B7E8A180_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E59D90E7AD89_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E59D90E7AD89_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E5A4A7E59BA7_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E5A4A7E59BA7_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E5AEB3E7BE9E_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E5AEB3E7BE9E_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E5B08FE68092_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E5B08FE68092_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E5B0B4E5B0AC_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E5B0B4E5B0AC_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E5BE97E6848F_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E5BE97E6848F_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E6838AE5969C_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E6838AE5969C_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E684A4E68092_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E684A4E68092_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E68A95E9998D_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E68A95E9998D_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E68AA0E9BCBB_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E68AA0E9BCBB_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E68ABDE7839F_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E68ABDE7839F_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E697A0E5A588_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E697A0E5A588_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E697A0E8AFAD_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E697A0E8AFAD_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E69C9FE5BE85_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E69C9FE5BE85_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E6ACA2E591BC_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E6ACA2E591BC_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E6B7B1E6809D_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E6B7B1E6809D_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E78B82E6B197_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E78B82E6B197_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E78CAEE88AB1_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E78CAEE88AB1_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E79AB1E79C89_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E79AB1E79C89_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E882BFE58C85_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E882BFE58C85_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E884B8E7BAA2_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E884B8E7BAA2_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E89CA1E7839B_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E89CA1E7839B_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E8A782E5AF9F_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E8A782E5AF9F_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E982AAE681B6_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E982AAE681B6_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E99481E79C89_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E99481E79C89_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E99481E79C90_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E99481E79C90_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E995BFE88D89_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E995BFE88D89_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E998B4E69A97_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E998B4E69A97_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E9AB98E585B4_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E9AB98E585B4_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E9BB91E7BABF_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E9BB91E7BABF_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E9BC93E68E8C_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E9BC93E68E8C_2x.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/frightened.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/frightened.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/uncomfort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/uncomfort.png -------------------------------------------------------------------------------- /images/biaoqing/twemoji/congratulate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/twemoji/congratulate.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E4BEBFE4BEBF_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E4BEBFE4BEBF_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E58B89E5BCBA_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E58B89E5BCBA_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E59083E7939C_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E59083E7939C_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E59083E7BF94_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E59083E7BF94_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E59090E8888C_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E59090E8888C_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E591B5E591B5_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E591B5E591B5_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E59388E59388_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E59388E59388_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E5989AE7919F_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E5989AE7919F_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E5A4AAE998B3_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E5A4AAE998B3_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E5A794E5B188_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E5A794E5B188_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E5B08FE4B996_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E5B08FE4B996_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E5BC80E5BF83_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E5BC80E5BF83_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E5BDA9E899B9_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E5BDA9E899B9_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E5BF83E7A28E_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E5BF83E7A28E_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E6838AE593AD_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E6838AE593AD_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E6838AE68190_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E6838AE68190_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E6838AE8AEB6_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E6838AE8AEB6_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E6898BE7BAB8_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E6898BE7BAB8_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E68C96E9BCBB_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E68C96E9BCBB_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E6B299E58F91_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E6B299E58F91_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E6BB91E7A8BD_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E6BB91E7A8BD_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E781AFE6B3A1_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E781AFE6B3A1_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E788B1E5BF83_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E788B1E5BF83_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E78A80E588A9_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E78A80E588A9_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E78B82E6B197_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E78B82E6B197_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E78EABE791B0_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E78EABE791B0_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E7949FE6B094_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E7949FE6B094_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E79691E997AE_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E79691E997AE_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E79C9FE6A392_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E79C9FE6A392_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E79DA1E8A789_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E79DA1E8A789_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E7A4BCE789A9_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E7A4BCE789A9_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E7AC91E5B0BF_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E7AC91E5B0BF_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E7AC91E79CBC_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E7AC91E79CBC_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E8839CE588A9_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E8839CE588A9_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E88AB1E5BF83_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E88AB1E5BF83_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E88CB6E69DAF_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E88CB6E69DAF_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E88DAFE4B8B8_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E88DAFE4B8B8_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E89B8BE7B395_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E89B8BE7B395_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E89CA1E7839B_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E89CA1E7839B_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E98499E8A786_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E98499E8A786_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E985B8E788BD_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E985B8E788BD_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E992B1E5B881_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E992B1E5B881_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E998B4E999A9_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E998B4E999A9_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E99FB3E4B990_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E99FB3E4B990_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E9A699E89589_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E9A699E89589_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E9BB91E7BABF_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E9BB91E7BABF_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E4B88DE8AFB4E8AF9D_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E4B88DE8AFB4E8AF9D_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E4B88DE9AB98E585B4_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E4B88DE9AB98E585B4_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E5B08FE79CBCE79D9B_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E5B08FE79CBCE79D9B_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E683B3E4B880E683B3_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E683B3E4B880E683B3_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E68987E880B3E58589_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E68987E880B3E58589_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E697A0E68980E8B093_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E697A0E68980E8B093_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E78CAEE9BB84E7939C_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E78CAEE9BB84E7939C_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E79C8BE4B88DE8A781_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E79C8BE4B88DE8A781_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E79C8BE783ADE997B9_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E79C8BE783ADE997B9_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E8A385E5A4A7E6ACBE_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E8A385E5A4A7E6ACBE_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E8B59EE4B880E4B8AA_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E8B59EE4B880E4B8AA_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E4B88DE9AB98E585B4_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E4B88DE9AB98E585B4_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E4BDA0E68782E79A84_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E4BDA0E68782E79A84_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E59180E592A9E788B9_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E59180E592A9E788B9_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E5A4A7E68B87E68C87_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E5A4A7E68B87E68C87_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E5A4AAE5BC80E5BF83_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E5A4AAE5BC80E5BF83_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E5B08FE7BAA2E884B8_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E5B08FE7BAA2E884B8_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E68792E5BE97E79086_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E68792E5BE97E79086_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E68D82E598B4E7AC91_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E68D82E598B4E7AC91_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E7BAA2E9A286E5B7BE_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E7BAA2E9A286E5B7BE_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E4B88DE587BAE68980E69699_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E4B88DE587BAE68980E69699_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E59090E8A180E58092E59CB0_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E59090E8A180E58092E59CB0_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E5969CE69E81E8808CE6B3A3_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E5969CE69E81E8808CE6B3A3_2x.png -------------------------------------------------------------------------------- /images/biaoqing/aru/E69A97E59CB0E8A782E5AF9F_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/aru/E69A97E59CB0E8A782E5AF9F_2x.png -------------------------------------------------------------------------------- /images/biaoqing/paopao/E6989FE6989FE69C88E4BAAE_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BigCoke233/miracles/HEAD/images/biaoqing/paopao/E6989FE6989FE69C88E4BAAE_2x.png -------------------------------------------------------------------------------- /docs/block-list.json: -------------------------------------------------------------------------------- 1 | { 2 | "list": [ 3 | { 4 | "id": 1, 5 | "name": "流情", 6 | "domain": "liuqingwushui.top", 7 | "ssl": false, 8 | "reason": "删除主题版权信息" 9 | }, 10 | { 11 | "id": 2, 12 | "name": "华姐博客", 13 | "domain": "blog.52-love.cn", 14 | "ssl": true, 15 | "reason": "修改主题版权信息" 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 想法建议 3 | about: 如如果你些建议或是对现有功能的新想法,欢迎提交。 4 | title: '' 5 | labels: 优化 6 | assignees: '' 7 | --- 8 | 9 | > 注意,在报告之前请先确认:**这个想法能被多数人接受;这个想法会让这个程序更好。** 10 | > 当你确定你的想法满足以上条件之后,请删除这段文本并继续。 11 | 12 | **这是什么方面的想法?** 13 | 14 | 现有内容的优化 / 新增功能 / UI 界面 / 用户体验 15 | 16 | **这个想法具体是要实现什么?** 17 | 18 | 19 | **这个想法实现后有什么帮助?** 20 | 21 | 22 | **是否有具体的实现思路?** 23 | 24 | 25 | **补充信息:** 26 | -------------------------------------------------------------------------------- /page.php: -------------------------------------------------------------------------------- 1 | need('includes/head.php'); 3 | $this->need('includes/header.php'); 4 | ?> 5 |
6 |
7 |
8 | content(); ?> 9 |
10 |
11 | need('includes/comments.php'); ?> 12 |
13 | need('includes/footer.php'); ?> -------------------------------------------------------------------------------- /docs/block-list.md: -------------------------------------------------------------------------------- 1 | # 封锁名单 2 | 3 | ## 说明 4 | 5 | 这些站点在使用 Miracles 主题时删除/修改了主题内的版权信息,违反了 MIT 协议,予以警告未改正。 6 | 目前尚未对侵犯版权的网站进行任何功能上的限制和实质意义地惩罚,仅展示违规站点。 7 | 但不排除会在未来限制或者停用违规用户的主题功能,请自重。 8 | 9 | ## 站点列表 10 | 11 | - https://blog.52-love.cn (修改主题页脚版权信息,目前无法访问) 12 | - http://liuqingwushui.top (删除主题页脚版权信息) 13 | 14 | ## API 15 | 我准备了一个储存违规站点信息的 json 文件,可以通过以下的链接调用,为以后的惩罚功能做准备(微笑 16 | 17 | ``` 18 | https://cdn.jsdelivr.net/gh/BigCoke233/miracles/docs/block-list.json 19 | ``` 20 | -------------------------------------------------------------------------------- /404.php: -------------------------------------------------------------------------------- 1 | need('includes/head.php'); 3 | $this->need('includes/header.php'); 4 | ?> 5 |
6 |
7 |
8 |

404

9 |

10 | 肥肠抱歉,你访问的页面被猫吃掉了

11 | 返回首页 12 |

13 |
14 |
15 |
16 | need('includes/footer.php'); ?> -------------------------------------------------------------------------------- /assets/js/editor.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | if($('#wmd-button-row').length>0){ 3 | $('#wmd-button-row').append('
  • '); 4 | var owo = new OwO({ 5 | logo: 'OωO', 6 | container: document.getElementsByClassName('OwO')[0], 7 | target: document.getElementById('text'), 8 | api: '/usr/themes/Miracles/assets/OwO.json', 9 | position: 'down', 10 | width: '400px', 11 | maxHeight: '250px' 12 | }); 13 | } 14 | }); -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/help.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 需要帮助 3 | about: 如果你遇到了说明文档无法解决的问题,并且这也不像是一个 bug,可以在这里求助 4 | title: '' 5 | labels: 求助 6 | assignees: '' 7 | 8 | --- 9 | 10 | > 注意,在求助的时候请描述清楚你的问题,并保持耐心 11 | > 在你阅读过这段文本之后,就可以删除这段引用文本 12 | 13 | **大致范围:** 14 | 15 | 这是哪一方面的问题?你是否知道问题所牵连到的文件以及在文件的哪一行? 16 | 17 | **具体行为描述:** 18 | 19 | 你的问题具体是什么? 20 | 21 | **尝试:** 22 | 23 | 你有试过自己解决吗?如果有,请描述你解决的方法和过程,即使它失败了 24 | 25 | **配置与环境:** 26 | 27 | - 问题页面:(如果有,请提供一个触发此问题的页面链接) 28 | - PHP 版本: 29 | - 数据库类型 / 版本: 30 | - Typecho 版本: 31 | - 主题版本:(Release 标注的版本号,开发版则写 Dev.) 32 | - 使用的插件:(所有使用中的的插件,以便判断兼容性问题) 33 | - 浏览器:(浏览器名称及版本号) 34 | 35 | **截图(若有)** 36 | 37 | 提供一个此问题触发的截图或报错信息。若没有,则留空。 38 | 39 | **补充信息:** 40 | 41 | 提供尽可能多的相关信息。 42 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 问题报告 3 | about: 如果程序的某一功能出现问题,请向我们报告 4 | title: '' 5 | labels: 问题 6 | assignees: '' 7 | 8 | --- 9 | 10 | > 注意,在报告之前请先确认:**你已经清除过浏览器 / CDN 缓存;你没有修改过相关源代码。** 11 | > 在确定这的确是原项目中的问题之后,请删除这段文本,并继续报告。 12 | 13 | **问题出处:** 14 | 15 | 这个问题出在程序的哪一个具体功能? 16 | 17 | **实际行为描述:** 18 | 19 | 触发问题后造成了什么效果及影响? 20 | 21 | **预期的行为:** 22 | 23 | 这个功能应该有怎样的效果和影响? 24 | 25 | **复现步骤:** 26 | 27 | 怎样才能再次触发这个问题? 28 | 29 | **配置与环境:** 30 | 31 | - 问题页面:(如果有,请提供一个触发此问题的页面链接) 32 | - PHP 版本: 33 | - 数据库类型 / 版本: 34 | - Typecho 版本: 35 | - 主题版本:(Release 标注的版本号,开发版则写 Dev.) 36 | - 使用的插件:(所有使用中的的插件,以便判断兼容性问题) 37 | - 浏览器:(浏览器名称及版本号) 38 | 39 | **截图(若有)** 40 | 41 | 提供一个此问题触发的截图或报错信息。若没有,则留空。 42 | 43 | **补充信息:** 44 | 45 | 提供尽可能多的相关信息。 46 | -------------------------------------------------------------------------------- /assets/linkData.sample.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "Eltrac", 4 | "link": "https://guhub.cn/", 5 | "avatar": "https://cdn.jsdelivr.net/gh/BigCoke233/image-hosting/avatars/avatar.jpeg", 6 | "des": "暗夜行路,终遇奇迹。" 7 | }, 8 | { 9 | "name": "Example", 10 | "link": "https://example.io/", 11 | "avatar": "https://cdn.jsdelivr.net/gh/BigCoke233/image-hosting/avatars/avatar.jpeg", 12 | "des": "这是一个示例。" 13 | }, 14 | { 15 | "name": "Example", 16 | "link": "https://example.io/", 17 | "avatar": "https://cdn.jsdelivr.net/gh/BigCoke233/image-hosting/avatars/avatar.jpeg", 18 | "des": "这是一个示例。" 19 | }, 20 | { 21 | "name": "Example", 22 | "link": "https://example.io/", 23 | "avatar": "https://cdn.jsdelivr.net/gh/BigCoke233/image-hosting/avatars/avatar.jpeg", 24 | "des": "这是一个示例。" 25 | }, 26 | { 27 | "name": "Example", 28 | "link": "https://example.io/", 29 | "avatar": "https://cdn.jsdelivr.net/gh/BigCoke233/image-hosting/avatars/avatar.jpeg", 30 | "des": "这是一个示例。" 31 | } 32 | ] -------------------------------------------------------------------------------- /assets/css/nprogress.css: -------------------------------------------------------------------------------- 1 | #nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;-webkit-transform:rotate(3deg) translate(0,-4px);-ms-transform:rotate(3deg) translate(0,-4px);transform:rotate(3deg) translate(0,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}100%{transform:rotate(360deg)}} -------------------------------------------------------------------------------- /libs/Language.php: -------------------------------------------------------------------------------- 1 | themeFile("lang/*.php")); 16 | if(in_array($GLOBALS['miraclesLang'].'.php', $provided_lang)){ 17 | require_once("lang/"+$GLOBALS['miraclesLang'].".php"); 18 | $GLOBALS['miraclesLangError']=false; 19 | }else{ 20 | require_once("lang/zh-cn.php"); 21 | $GLOBALS['miraclesLangError']=true; 22 | } 23 | } 24 | } 25 | 26 | //快速获取对应语言文本 27 | function gt($a, $b) { 28 | return $GLOBALS[$a][$b]; 29 | } 30 | function gtecho($a, $b) { 31 | echo $GLOBALS[$a][$b]; 32 | } 33 | //有参数的文本获取 34 | function gta($a, $b, $c) { 35 | $content = str_replace('%s', $c, $GLOBALS[$a][$b]); 36 | return $content; 37 | } 38 | function gtaecho($a, $b, $c) { 39 | $content = str_replace('%s', $c, $GLOBALS[$a][$b]); 40 | echo $content; 41 | } -------------------------------------------------------------------------------- /assets/js/update.miracles.js: -------------------------------------------------------------------------------- 1 | (function($){ 2 | var api = "https://api.github.com/repos/BigCoke233/miracles/releases"; 3 | $.ajax({ 4 | url: api, 5 | type: "GET", 6 | dataType: "json", 7 | success:function(data){ 8 | var latest = data[0]['tag_name']; 9 | var assets_url = data[0]['assets_url']; 10 | 11 | if(version==latest){ 12 | $("#miracles-update").html(",你已经是最新版了!"); 13 | } 14 | else if(version点击下载最新版。'); 23 | } 24 | }); 25 | } 26 | else if(version>latest){ 27 | $("#miracles-update").html(",看起来你是在使用开发版。"); 28 | } 29 | else { 30 | $("#miracles-update").html(",哇哦,你个 BigHack,居然召唤了根本不可能的错误。"); 31 | } 32 | console.log("Miracles 最新发行版:"+latest); 33 | $("#miracles-update").removeClass("waiting"); 34 | }, 35 | error:function(){ 36 | $("#miracles-update").html("最新版本获取失败,刷新试试?"); 37 | $("#miracles-update").removeClass("waiting").css('color', 'red'); 38 | 39 | } 40 | }); 41 | })(jQuery); -------------------------------------------------------------------------------- /themeConfig.php: -------------------------------------------------------------------------------- 1 | 'on', //是否开启字体 CDN(使用思源宋体/黑体) 18 | 'cdn' => 'google_font' //默认 Google Font,可选项:google_font / font_lolinet,或者直接输入字体文件 url 19 | ); 20 | 21 | /* 文章缩略图 */ 22 | 23 | //是否剪裁文章缩略图 24 | //使用 TimThumb 剪裁文章缩略图能达到最好效果,但会消耗服务器资源 25 | $GLOBALS['miraclesIfTimThumb'] = 'off'; 26 | 27 | //图片剪裁大小(开启上一条才会有效) 28 | $GLOBALS['miraclesIfTimThumbSize'] = 'regular';//可选:regular / big / large / huge 29 | 30 | //TimThumb 允许的外部链接 31 | //如果你使用的外部图床或者 CDN 被 TimThumb 屏蔽,请将其域名加入到下面的数组 32 | $GLOBALS['miraclesTimThumbAllowList'] = array ( 33 | 'flickr.com', 34 | 'staticflickr.com', 35 | 'picasa.com', 36 | 'img.youtube.com', 37 | 'upload.wikimedia.org', 38 | 'photobucket.com', 39 | 'imgur.com', 40 | 'imageshack.us', 41 | 'tinypic.com', 42 | 'jsdelivr.net' 43 | ); 44 | 45 | /* 页面压缩 */ 46 | 47 | //是否压缩 HTML 源代码 48 | //压缩能优化页面传输速度,但可能会给服务器增加一定负担(不过也还好 49 | $GLOBALS['miraclesIfCompressHTML'] = 'off'; 50 | 51 | /** ========= NOTICE ========== * 52 | * 每次更新前都请备份您的 themeConfig.php 文件 53 | * 新 release 发布时会提示此文件是否有变动 54 | * 若无,则无需更新 themeConfig.php,覆盖其他文件即可; 55 | * 若有,则会在更新内容之前用注释分割, 56 | * 请复制源文件的所有内容并覆盖新文件注释之前的内容 */ -------------------------------------------------------------------------------- /post.php: -------------------------------------------------------------------------------- 1 | need('includes/head.php'); 3 | $this->need('includes/header.php'); 4 | ?> 5 |
    6 |
    7 |
    8 | is('post')): ?> 9 |
    10 |
    11 |
    12 |
    13 |
    14 |
    15 | 16 | options->ifShowRTA!=0): ?> 17 |
    18 |
    19 |
    20 |
    21 |
    22 |
    23 |
    24 | 25 | content(); ?> 26 |
    27 | 30 |
    31 | need('includes/comments.php'); ?> 32 |
    33 | need('includes/footer.php'); ?> 34 | -------------------------------------------------------------------------------- /images/biaoqing/paopao/list.txt: -------------------------------------------------------------------------------- 1 | E4B88DE9AB98E585B4_2x.png 2 | E4B996_2x.png 3 | E4BDA0E68782E79A84_2x.png 4 | E4BEBFE4BEBF_2x.png 5 | E586B7_2x.png 6 | E58B89E5BCBA_2x.png 7 | E59083E7939C_2x.png 8 | E59083E7BF94_2x.png 9 | E59090E8888C_2x.png 10 | E59090_2x.png 11 | E59180E592A9E788B9_2x.png 12 | E591B5E591B5_2x.png 13 | E591BC_2x.png 14 | E592A6_2x.png 15 | E59388E59388_2x.png 16 | E5958A_2x.png 17 | E596B7_2x.png 18 | E5989AE7919F_2x.png 19 | E5A4A7E68B87E68C87_2x.png 20 | E5A4AAE5BC80E5BF83_2x.png 21 | E5A4AAE998B3_2x.png 22 | E5A794E5B188_2x.png 23 | E5B08FE4B996_2x.png 24 | E5B08FE7BAA2E884B8_2x.png 25 | E5BC80E5BF83_2x.png 26 | E5BCB1_2x.png 27 | E5BDA9E899B9_2x.png 28 | E5BF83E7A28E_2x.png 29 | E68092_2x.png 30 | E6838AE593AD_2x.png 31 | E6838AE68190_2x.png 32 | E6838AE8AEB6_2x.png 33 | E68792E5BE97E79086_2x.png 34 | E6898BE7BAB8_2x.png 35 | E68C96E9BCBB_2x.png 36 | E68D82E598B4E7AC91_2x.png 37 | E6989FE6989FE69C88E4BAAE_2x.png 38 | E6B197_2x.png 39 | E6B299E58F91_2x.png 40 | E6B3AA_2x.png 41 | E6BB91E7A8BD_2x.png 42 | E781AFE6B3A1_2x.png 43 | E788B1E5BF83_2x.png 44 | E78A80E588A9_2x.png 45 | E78B82E6B197_2x.png 46 | E78EABE791B0_2x.png 47 | E7949FE6B094_2x.png 48 | E79691E997AE_2x.png 49 | E79C9FE6A392_2x.png 50 | E79DA1E8A789_2x.png 51 | E7A4BCE789A9_2x.png 52 | E7AC91E5B0BF_2x.png 53 | E7AC91E79CBC_2x.png 54 | E7BAA2E9A286E5B7BE_2x.png 55 | E8839CE588A9_2x.png 56 | E88AB1E5BF83_2x.png 57 | E88CB6E69DAF_2x.png 58 | E88DAFE4B8B8_2x.png 59 | E89B8BE7B395_2x.png 60 | E89CA1E7839B_2x.png 61 | E98499E8A786_2x.png 62 | E985B7_2x.png 63 | E985B8E788BD_2x.png 64 | E992B1E5B881_2x.png 65 | E992B1_2x.png 66 | E998B4E999A9_2x.png 67 | E99FB3E4B990_2x.png 68 | E9A699E89589_2x.png 69 | E9BB91E7BABF_2x.png 70 | haha_2x.png 71 | OK_2x.png 72 | what_2x.png 73 | -------------------------------------------------------------------------------- /docs/project-management.md: -------------------------------------------------------------------------------- 1 | # 项目管理 2 | 3 | 这篇文档记录一些 Miracles 主题在更新维护过程中一些不成文的习惯,写在文档里当作一种规范。 4 | 5 | ## Commit 6 | 7 | 在提交 commit 的时候,需要书写 message,通常来说,Miracles 主题所有的 commit message 都应该按照一下格式书写 8 | 9 | ``` 10 | :emoji: : 11 | ``` 12 | 13 | 这里面提到的几个部分不太好直接理解,以下是对他们的解释 14 | 15 | - `:emoji:`:就是 emoji 字符,应选用和这个 commit 内容有关的 emoji,但主要是为了美观(以 [gitmoji](https://gitmoji.carloscuesta.me/) 为规范) 16 | - ``:这个 sign 用来提醒用户这个 commit 更新了什么类型的内容,通常用一下的字符替换 17 | - `Add`:顾名思义,用在添加新内容/功能的 commit 里 18 | - `Perf`:这是 perfect 的缩写,通常用于对现有功能进行优化的 commit 里 19 | - `Del`:即 Delete,表示移除了某些内容 20 | - `Docs`:即 Documents,表示对某些文档进行了修改,不涉及主体代码 21 | - `Update`:用于一些无法被归类的 commit,例如:修改版本号 22 | - ``:意为总结,就是对更新的内容进行简短的阐述,作为摘要 23 | 24 | 例子:`📐 Perf: 优化了文章盒子的边距` 25 | 26 | 这就是一个普通 commit message 的组成,通常只适用于 message 的 header 部分,body 部分是可有可无的,除非你觉得 header 无法完整地表达这次 commit 更新的内容, 27 | 就可以在 body 里对这次更新内容进行详细地阐述,没有固定的格式,表述清楚即可。 28 | 29 | ## 版本号 30 | 31 | 如果你仔细观察 Miracles 主题的 release 页面,或者是每个版本的更新日志,你会看到它们通常是这样的 32 | 33 | ``` 34 | :emoji: Ver. 35 | ``` 36 | 37 | - `:emoji`:就是 emoji 字符,通常选用和这次更新**主题**相关的 emoji 38 | - ``:版本号,发行版和开发版的版本号有区别 39 | - 发行版:通常只有发行版才会有正式的版本号,类似`1.5.2`,`1` 增加代表一次超大更新(几乎重写的那种吧),`5`增加代表一次大更新(增加了许多新功能),`2`增加代表补丁这样的小更新(通常只有修复和优化) 40 | - 开发版:开发版的版本号通常以`v`开头,之后是日期,如果这一天有多次开发版更新,则用`A-Z`来区分,例如:`v20200503A`、`v20191223B` 41 | - ``:这个版本的名字,一般是根据更新内容和这次更新的主题来命名 42 | 43 | > 通常来说,开发版的更新不会写入正式的更新日志(change-log.md) 44 | 45 | ## issue 46 | 47 | Miracles 主题有三个自带的 issue 模板,分别是: 48 | 49 | - 问题报告(label:问题) 50 | - 想法建议(label:优化) 51 | - 需要帮助(label:求助) 52 | 53 | 正常来说,这三个模板能满足大多数人的要求,并且如果他们按照模板书写 issue 会让开发者更方便。 54 | 55 | 满足以下条件的 issue,会被 close: 56 | 57 | - 问题已被完美解决(label:解决) 58 | - 问题根本不存在(label:错误) 59 | - 这个想法没有必要(label:拒绝) 60 | - 存在相同的内容(label:重复) 61 | 62 | -------------------------------------------------------------------------------- /libs/Comments.php: -------------------------------------------------------------------------------- 1 | -->'; 20 | echo ''; 21 | echo ''; 22 | } 23 | 24 | /** 25 | * 获取上级评论人 26 | */ 27 | public static function getCommentHF($coid){ 28 | $db = Typecho_Db::get(); 29 | $prow = $db->fetchRow($db->select('parent') 30 | ->from('table.comments') 31 | ->where('coid = ? AND status = ?', $coid, 'approved')); 32 | $parent = $prow['parent']; 33 | if ($parent != "0") { 34 | $arow = $db->fetchRow($db->select('text','author','status') 35 | ->from('table.comments') 36 | ->where('coid = ?', $parent)); 37 | $author = $arow['author']; 38 | $status = $arow['status']; 39 | if($author){ 40 | if($status=='approved'){ 41 | $href = '@'.$author.'';; 42 | }else if($status=='waiting'){ 43 | $href = '评论审核中···'; 44 | } 45 | } 46 | echo $href; 47 | } else { 48 | echo ""; 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /about.php: -------------------------------------------------------------------------------- 1 | need('includes/head.php'); 8 | $this->need('includes/header.php'); 9 | ?> 10 |
    11 |
    12 |


    13 |
    14 |
    15 | options->avatar==''): echo $this->author->gravatar(500); 16 | else: ?> 17 | fields->name==!''): ?> 18 |

    fields->name(); ?>

    19 | 20 |
    21 |
    22 | fields->github==!''): ?> 23 | 24 | 25 | fields->qq==!''): ?> 26 | 27 | 28 | fields->bilibili==!''): ?> 29 | 30 | 31 | fields->email==!''): ?> 32 | 33 | 34 |
    35 |
    36 |
    37 | content(); ?> 38 |
    39 |
    40 | need('includes/comments.php'); ?> 41 |
    42 | need('includes/footer.php'); ?> 43 | -------------------------------------------------------------------------------- /assets/js/toaster.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Toaster.js 3 | * 4 | * Repository: https://github.com/BigCoke233/toaster.js 5 | * Version: 1.0.0 6 | * 7 | * jQuery required! 8 | */ 9 | 10 | Toaster = function() { 11 | 12 | Toaster.amount = 0; 13 | 14 | Toaster.default = { 15 | color: '#C5C56A', 16 | autoClose: true, 17 | autoCloseDelay: 2000, 18 | position: 'right-top' 19 | }; 20 | 21 | //core method 22 | Toaster.toast = function(m, options = Toaster.default){ 23 | if($('#toast-'+Toaster.amount).length) Toaster.dismiss('#toast-'+Toaster.amount); 24 | Toaster.amount++; 25 | 26 | var id = 'toast-'+Toaster.amount; 27 | var selector = '#'+id; 28 | $toast = $('
    ').attr('id',id).text(m).css({'background': options.color || Toaster.default.color}).addClass('toaster-'+(options.position || Toaster.default.position)); 29 | $('body').append($toast); 30 | setTimeout(function(){ 31 | $(selector).addClass('toasting'); 32 | }, 1); 33 | 34 | $(selector).click(function(){ 35 | if(options.onClick) options.onClick(); 36 | Toaster.dismiss(selector); 37 | }); 38 | 39 | var autoClose=Toaster.default.autoClose; 40 | if(options.autoClose!==undefined) autoClose=options.autoClose; 41 | if(autoClose) { 42 | setTimeout(function(){ 43 | Toaster.dismiss(selector); 44 | }, options.autoCloseDelay || Toaster.default.autoCloseDelay); 45 | } 46 | } 47 | Toaster.send = Toaster.toast; //for downward compatibility 48 | 49 | //quick method 50 | Toaster.error = function(m, options) { 51 | Toaster.default.color='#F44236'; 52 | Toaster.toast(m, options); 53 | Toaster.default.color='#C5C56A'; 54 | } 55 | 56 | //dismiss given toast 57 | Toaster.dismiss = function(toast) { 58 | $(toast).removeClass('toasting').addClass('toast-dismissed'); 59 | setTimeout(function(){ 60 | $(toast).remove(); 61 | }, 1000); 62 | } 63 | }; 64 | 65 | new Toaster(); -------------------------------------------------------------------------------- /archive.php: -------------------------------------------------------------------------------- 1 | need('includes/head.php'); 3 | $this->need('includes/header.php'); 4 | ?> 5 |
    6 |
    7 | have()): ?> 8 | 9 |

    居然没有找到相关内容

    10 | 11 | next()): ?> 12 |
    13 |
    14 |
    15 | 16 |
    17 | 18 |
    19 |
    20 |
    21 |
    22 | 23 |

    sticky(); ?>title(); ?>

    24 |
    25 |

    26 | fields->excerpt && $this->fields->excerpt!='') { 27 | echo $this->fields->excerpt; 28 | }else{ 29 | echo $this->excerpt(130); 30 | } 31 | ?> 32 |

    33 | 34 |

    Read More

    35 |
    36 |
    37 |
    38 |
    39 | 40 |
    41 | pageLink(''); ?> 42 | pageLink('','next'); ?> 43 |
    44 |
    45 | 46 |
    47 | need('includes/footer.php'); ?> 48 | -------------------------------------------------------------------------------- /pagefile.php: -------------------------------------------------------------------------------- 1 | need('includes/head.php'); 9 | $_SESSION["isPageArchive"] = true; //归档页面标识 10 | $this->need('includes/header.php'); 11 | ?> 12 |
    13 |
    14 |
    15 | widget('Widget_Metas_Tag_Cloud', 'sort=mid&ignoreZeroCount=1&desc=0&limit=30')->to($tags); ?> 16 |

    17 | have()): ?> 18 | 23 | 24 | 25 |

    26 | widget('Widget_Metas_Category_List')->to($category); ?> 27 | 32 | 33 |

    34 |
      $posts) { 38 | $detailsOpen = ($number === 0) ? ' open' : NULL; 39 | echo ''; 40 | echo ''.$year.' '.gt('archivePageTexts','archiveTimeYear').''.gta('archivePageTexts','archiveYearTotal',count($posts)).''; 41 | foreach($posts as $created => $post) { 42 | echo '
    • 43 | '.date('m-d', $created).' 44 | '.$post['title'].' 45 |
    • '; 46 | } 47 | echo ''; 48 | $number++; 49 | }?> 50 |
    51 |
    52 |
    53 |
    54 | need('includes/footer.php'); ?> -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | Eltrac | 帮助文档:Wiki 5 | * 6 | * @package Miracles 7 | * @author Eltrac 8 | * @version 2.0.0 9 | * @link https://guhub.cn 10 | */ 11 | if (!defined('__TYPECHO_ROOT_DIR__')) exit; 12 | $this->need('includes/head.php'); 13 | $this->need('includes/header.php'); 14 | ?> 15 |
    16 |
    17 | next()): ?> 18 |
    19 | 20 |
    21 |
    22 |
    23 | 24 |
    25 | 26 |
    27 |
    28 |
    29 |
    30 | 31 |

    sticky(); ?>title(); ?>

    32 |
    33 |

    34 | fields->excerpt && $this->fields->excerpt!='') { 35 | echo $this->fields->excerpt; 36 | }else{ 37 | echo $this->excerpt(130); 38 | } 39 | ?> 40 |

    41 | 42 |

    43 |
    44 |
    45 |
    46 |
    47 | 48 | 49 |
    50 | pageLink(''); ?> 51 | pageLink('','next'); ?> 52 |
    53 |
    54 |
    55 | need('includes/footer.php'); ?> 56 | -------------------------------------------------------------------------------- /libs/lang/zh-cn.php: -------------------------------------------------------------------------------- 1 | "简体中文", 5 | "author" => "Eltrac", 6 | "last_update" => "2020\/7\/14" 7 | ); 8 | //文章 9 | $GLOBALS['postTexts'] = array( 10 | "read_more" => "阅读全文", 11 | "sort_title" => "文章分类:%s", 12 | "post_time" => "该文章发布于 %s", 13 | "post_views" => "该文章被浏览 %s 次", 14 | "post_anchor" => "章节链接", 15 | "post_share" => "分享至:", 16 | "post_tag" => "这人还没有写标签哦~", 17 | "post_timeAlert_1" => "本文编写于 %s 天前,", 18 | "post_timeAlert_2" => "最后修改于 %s 天前,其中某些信息可能已经过时。" 19 | ); 20 | //评论表单 21 | $GLOBALS['commentFormTexts'] = array( 22 | "nameInput" => "称呼*", 23 | "emailInput" => "邮箱*", 24 | "urlInput" => "http(s):\/\/", 25 | "submit" => "评论", 26 | "submitLoading" => "提交中..." 27 | ); 28 | //评论列表 29 | $GLOBALS['commentListTexts'] = array( 30 | "byAuthor" => "博主", 31 | "commentNum" => "已有 %s 条评论", 32 | "commentNumNone" => "暂无评论", 33 | "commentHidden" => "博主已关闭本页面的评论显示,您评论后将不会看到您的评论内容", 34 | "commentClosed" => "博主已关闭本页面的评论功能", 35 | "commentWaiting" => "您的评论正在等待审核!", 36 | "commentStatus" => "登陆身份:", 37 | "commentLogout" => "登出" 38 | ); 39 | //页脚 40 | $GLOBALS['footerTexts'] = array( 41 | "startTime" => "记录已延续了", 42 | "startTimeDay" => " 天 ", 43 | "startTimeHour" => " 小时 ", 44 | "startTimeMin" => " 分 ", 45 | "startTimeSec" => " 秒 ", 46 | "startTimeYear" => " 年 " 47 | ); 48 | //页眉 49 | $GLOBALS['headerTexts'] = array( 50 | "loginAlready" => "你已经登陆了", 51 | "loginAlreadyInfo" => "不过很乐意再次见到 %s~", 52 | "loginAdminEntrance" => "进入后台", 53 | "loginTitle" => "登录后台", 54 | "loginUsername" => "请输入用户名", 55 | "loginPassword" => "请输入密码", 56 | "loginSubmit" => "登录", 57 | "navTitle" => "页面导航", 58 | "drawerHome" => "首页" 59 | ); 60 | //归档页面 61 | $GLOBALS['archivePageTexts'] = array( 62 | "archiveTagTitle" => "文章标签", 63 | "archivePostTitle" => "文章归档", 64 | "archiveCategoryTitle" => "文章分类", 65 | "archiveTimeYear" => "年", 66 | "archiveYearTotal" => "共 %s 篇文章", 67 | "archiveStart" => "一切开始于 %s" 68 | ); 69 | //检索 70 | $GLOBALS['archivesTitles'] = array( 71 | 'category' => _t('分类 %s 下的文章'), 72 | 'search' => _t('包含关键字 %s 的文章'), 73 | 'tag' => _t('标签 %s 下的文章'), 74 | 'author' => _t('%s 发布的文章') 75 | ); 76 | //关于页面 77 | $GLOBALS['aboutPageTexts'] = array( 78 | "aboutShareGithub" => "GitHub", 79 | "aboutShareQQ" => "QQ", 80 | "aboutShareB" => "哔哩哔哩", 81 | "aboutShareEmail" => "电子邮件" 82 | ); 83 | //说说页面 84 | $GLOBALS['sayingPageTexts'] = array( 85 | "sayingPlaceholder" => "有什么有趣的事情吗?", 86 | "sayingSubmit" => "发表新鲜事" 87 | ); 88 | //其他 89 | $GLOBALS['otherTexts'] = array( 90 | "copyrightAlert" => "文章内容若未经过特别声明均为原创内容,转载需要注明原文作者和本文的链接:%s。原文中的任何内容不允许转载者进行修改、演绎以及一些商业用途,请尊重版权。", 91 | "goTop" => "返回顶部" 92 | ); -------------------------------------------------------------------------------- /functions.php: -------------------------------------------------------------------------------- 1 | contentEx = array('Contents','parseContent'); 21 | Typecho_Plugin::factory('Widget_Abstract_Contents')->excerptEx = array('Contents','parseContent'); 22 | Typecho_Plugin::factory('admin/write-post.php')->bottom = array('Utils', 'addButton'); 23 | Typecho_Plugin::factory('admin/write-page.php')->bottom = array('Utils', 'addButton'); 24 | 25 | /** 26 | * 主题启用时执行的方法 27 | */ 28 | function themeInit($archive) { 29 | if ($archive->hidden) header('HTTP/1.1 200 OK');//暴力解决访问加密文章会被 pjax 刷新页面的问题 30 | //Helper::options()->commentsAntiSpam = false; 关闭反垃圾 31 | Helper::options()->commentsHTMLTagAllowed = ' '; 32 | Helper::options()->commentsMaxNestingLevels = '9999';//最大嵌套层数 33 | Helper::options()->commentsPageDisplay = 'first';//强制评论第一页 34 | Helper::options()->commentsOrder = 'DESC';//将最新的评论展示在前 35 | Helper::options()->commentsCheckReferer = false;//关闭检查评论来源URL与文章链接是否一致判断(否则会无法评论) 36 | //将设置储存到全局变量以便使用 37 | $GLOBALS['miraclesOptions_randomBanner'] = Helper::options()->randomBanner; 38 | $GLOBALS['miraclesOptions_CDN'] = Helper::options()->CDN; 39 | $GLOBALS['miraclesOptions_loading_image'] = Helper::options()->loading_image; 40 | } 41 | 42 | /** 43 | * 文章与独立页自定义字段 44 | */ 45 | function themeFields(Typecho_Widget_Helper_Layout $layout) { 46 | $banner = new Typecho_Widget_Helper_Form_Element_Text('banner', NULL, NULL,_t('文章头图'), _t('输入一个图片 url,作为缩略图显示在文章列表,没有则不显示')); 47 | $layout->addItem($banner); 48 | $excerpt = new Typecho_Widget_Helper_Form_Element_Text('excerpt', NULL, NULL,_t('文章摘要'), _t('输入一段文本来自定义摘要,如果为空则自动提取文章前 130 字。')); 49 | $layout->addItem($excerpt); 50 | $meta = new Typecho_Widget_Helper_Form_Element_Text('meta', NULL, NULL,_t('元信息'), _t('页面/文章内页会显示该页面的评论数和创建日期(元信息),如果你不需要,可以写一段文字来代替这些内容。')); 51 | $layout->addItem($meta); 52 | $commentShow = new Typecho_Widget_Helper_Form_Element_Select('commentShow',array('0'=>'显示','1'=>'隐藏'),'0','是否显示评论列表'); 53 | $layout->addItem($commentShow); 54 | } 55 | 56 | /** 57 | * 获取主题版本号 58 | */ 59 | function themeVersion() { 60 | $info = Typecho_Plugin::parseInfo(__DIR__ . '/index.php'); 61 | return $info['version']; 62 | } -------------------------------------------------------------------------------- /libs/lang/moe.php: -------------------------------------------------------------------------------- 1 | "萌语", 5 | "author" => "Eltrac", 6 | "last_update" => "2020\/5\/3" 7 | ); 8 | //文章 9 | $GLOBALS['postTexts'] = array( 10 | "read_more" => "戳进去康", 11 | "sort_title" => "垃圾分类:这是 %s 垃圾", 12 | "post_time" => "在 %s 的时候粗生的", 13 | "post_views" => "被偷窥 %s 次惹", 14 | "post_anchor" => "戳我!戳我!", 15 | "post_share" => "种草给:", 16 | "post_tag" => "这个人好懒哦,连标签都不写的", 17 | "post_timeAlert_1" => "这篇文是在 %s 天前水的,", 18 | "post_timeAlert_2" => "憨憨作者 %s 天前改了下,估计不能看了。" 19 | ); 20 | //评论表单 21 | $GLOBALS['commentFormTexts'] = array( 22 | "nameInput" => "你叫啥名啊*", 23 | "emailInput" => "你的邮箱在哪哇*", 24 | "urlInput" => "http(s):\/\/", 25 | "submit" => "发粗去", 26 | "submitLoading" => "在发了在发了" 27 | ); 28 | //评论列表 29 | $GLOBALS['commentListTexts'] = array( 30 | "byAuthor" => "傻子", 31 | "commentNum" => "%s 条咸鱼躺在这", 32 | "commentNumNone" => "连一条咸鱼都没有", 33 | "commentHidden" => "评论列表被博主吃了!你看不到评论了!", 34 | "commentClosed" => "评论功能被博主吃了!你不能评论了!", 35 | "commentWaiting" => "博主正在检查你有没有 ghs", 36 | "commentStatus" => "你素 ", 37 | "commentLogout" => "我不做人了!" 38 | ); 39 | //页脚 40 | $GLOBALS['footerTexts'] = array( 41 | "startTime" => "苟延残喘了", 42 | "startTimeDay" => " 天 ", 43 | "startTimeHour" => " 小时 ", 44 | "startTimeMin" => " 分 ", 45 | "startTimeSec" => " 秒 ", 46 | "startTimeYear" => " 年 " 47 | ); 48 | //页眉 49 | $GLOBALS['headerTexts'] = array( 50 | "loginAlready" => "登陆了,快爪巴", 51 | "loginAlreadyInfo" => "你素 %s!奶思吐蜜特由", 52 | "loginAdminEntrance" => "去后宫", 53 | "loginTitle" => "快点进来", 54 | "loginUsername" => "你哒名字", 55 | "loginPassword" => "密码!我不会看的 qwq", 56 | "loginSubmit" => "爪巴进去", 57 | "navTitle" => "要去哪里", 58 | "drawerHome" => "回家" 59 | ); 60 | //归档页面 61 | $GLOBALS['archivePageTexts'] = array( 62 | "archiveTagTitle" => "博主贴的标签", 63 | "archiveCategoryTitle" => "乱分的类", 64 | "archivePostTitle" => "博主写的水文", 65 | "archiveTimeYear" => "年的水", 66 | "archiveYearTotal" => "这年水了 %s 篇文", 67 | "archiveStart" => "从 %s 开始水文" 68 | ); 69 | //检索 70 | $GLOBALS['archivesTitles'] = array( 71 | 'category' => _t('分类 %s 下的水文'), 72 | 'search' => _t('搜 %s 粗来的水文'), 73 | 'tag' => _t('标签 %s 下的水文'), 74 | 'author' => _t('%s 这个憨憨水的文章') 75 | ); 76 | //关于页面 77 | $GLOBALS['aboutPageTexts'] = array( 78 | "aboutShareGithub" => "GayHub", 79 | "aboutShareQQ" => "疼讯扣扣", 80 | "aboutShareB" => "某破站", 81 | "aboutShareEmail" => "是邮箱呢!" 82 | ); 83 | //说说页面 84 | $GLOBALS['sayingPageTexts'] = array( 85 | "sayingPlaceholder" => "嘤嘤嘤 QAQ", 86 | "sayingSubmit" => "发粗去" 87 | ); 88 | //其他 89 | $GLOBALS['otherTexts'] = array( 90 | "copyrightAlertTitle" => "水文也有版权!", 91 | "copyrightAlert" => "文章内容若未经过特别声明均为原创内容,转载需要注明原文作者和本文的链接:%s。原文中的任何内容不允许转载者进行修改、演绎以及一些商业用途,不尊重版权的憨憨会被大灰狼次掉。", 92 | "goTop" => "爬到上面" 93 | ); -------------------------------------------------------------------------------- /libs/lang/zh-tw.php: -------------------------------------------------------------------------------- 1 | "簡體中文", 5 | "author" => "Eltrac", 6 | "last_update" => "2020\/5\/3" 7 | ); 8 | //文章 9 | $GLOBALS['postTexts'] = array( 10 | "read_more" => "閱讀全文", 11 | "sort_title" => "文章分類:%s", 12 | "post_time" => "該文章發佈於 %s", 13 | "post_views" => "該文章被瀏覽 %s 次", 14 | "post_anchor" => "章節鏈接", 15 | "post_share" => "分享至:", 16 | "post_tag" => "這人還沒有寫標籤哦~", 17 | "post_timeAlert_1" => "本文編寫於 %s 天前,", 18 | "post_timeAlert_2" => "最後修改於 %s 天前,其中某些信息可能已經過時。" 19 | ); 20 | //評論表單 21 | $GLOBALS['commentFormTexts'] = array( 22 | "nameInput" => "稱呼 *", 23 | "emailInput" => "郵箱 *", 24 | "urlInput" => "http(s):\/\/", 25 | "submit" => "評論", 26 | "submitLoading" => "提交中..." 27 | ); 28 | //評論列表 29 | $GLOBALS['commentListTexts'] = array( 30 | "byAuthor" => "博主", 31 | "commentNum" => "已有 %s 條評論", 32 | "commentNumNone" => "暫無評論", 33 | "commentHidden" => "博主已關閉本頁面的評論顯示,您評論後將不會看到您的評論內容", 34 | "commentClosed" => "博主已關閉本頁面的評論功能", 35 | "commentWaiting" => "您的評論正在等待審核!", 36 | "commentStatus" => "登陸身份:", 37 | "commentLogout" => "登出" 38 | ); 39 | //頁腳 40 | $GLOBALS['footerTexts'] = array( 41 | "startTime" => "記錄已延續了", 42 | "startTimeDay" => " 天 ", 43 | "startTimeHour" => " 小時 ", 44 | "startTimeMin" => " 分 ", 45 | "startTimeSec" => " 秒 ", 46 | "startTimeYear" => " 年 " 47 | ); 48 | //頁眉 49 | $GLOBALS['headerTexts'] = array( 50 | "loginAlready" => "你已經登陸了", 51 | "loginAlreadyInfo" => "不過很樂意再次見到 %s~", 52 | "loginAdminEntrance" => "進入後台", 53 | "loginTitle" => "登錄後台", 54 | "loginUsername" => "請輸入用戶名", 55 | "loginPassword" => "請輸入密碼", 56 | "loginSubmit" => "登錄", 57 | "navTitle" => "頁面導航", 58 | "drawerHome" => "首頁" 59 | ); 60 | //歸檔頁面 61 | $GLOBALS['archivePageTexts'] = array( 62 | "archiveTagTitle" => "文章標籤", 63 | "archivePostTitle" => "文章歸檔", 64 | "archiveCategoryTitle" => "文章分類", 65 | "archiveTimeYear" => "年", 66 | "archiveYearTotal" => "共 %s 篇文章", 67 | "archiveStart" => "壹切開始於 %s" 68 | ); 69 | //检索 70 | $GLOBALS['archivesTitles'] = array( 71 | 'category' => _t('分類 %s 下的文章'), 72 | 'search' => _t('包含關鍵字 %s 的文章'), 73 | 'tag' => _t('標簽 %s 下的文章'), 74 | 'author' => _t('%s 發布的文章') 75 | ); 76 | //關於頁面 77 | $GLOBALS['aboutPageTexts'] = array( 78 | "aboutShareGithub" => "GitHub", 79 | "aboutShareQQ" => "QQ", 80 | "aboutShareB" => "Bilibili", 81 | "aboutShareEmail" => "E-mail" 82 | ); 83 | //說說頁面 84 | $GLOBALS['sayingPageTexts'] = array( 85 | "sayingPlaceholder" => "Anything interesting happening?", 86 | "sayingSubmit" => "發表新鮮事" 87 | ); 88 | //其他 89 | $GLOBALS['otherTexts'] = array( 90 | "copyrightAlertTitle" => "版權", 91 | "copyrightAlert" => "文章內容若未經過特別聲明均為原創內容,轉載需要註明原文作者和本文的鏈接:%s。原文中的任何內容不允許轉載者進行修改、演繹以及壹些商業用途,請尊重版權。", 92 | "goTop" => "返回頂部" 93 | ); -------------------------------------------------------------------------------- /saying.php: -------------------------------------------------------------------------------- 1 | need('includes/head.php'); 8 | $this->need('includes/header.php'); 9 | function threadedComments($comments, $options) { 10 | $commentClass = ''; 11 | if ($comments->authorId) { 12 | if ($comments->authorId == $comments->ownerId) { 13 | $commentClass .= ' comment-by-author'; //如果是文章作者的评论添加 .comment-by-author 样式 14 | } else { 15 | $commentClass .= ' comment-by-user'; //如果是评论作者的添加 .comment-by-user 样式 16 | } 17 | } 18 | $commentLevelClass = $comments->_levels > 0 ? ' comment-child' : ' comment-parent'; //评论层数大于0为子级,否则是父级 19 | ?> 20 |
    30 |
    31 |
    32 |

    33 | gravatar('100', ''); ?>author(); ?>
    34 | date('Y-m-d H:i'); ?> 35 |

    36 |
    37 |
    38 |
    39 | content); ?> 40 |
    41 |
    42 |
    43 | 44 |
    45 |
    46 | user->hasLogin()): ?> 47 |
    48 |

    49 | 50 |

    51 |

    52 | 53 |

    54 |
    55 |
    56 | 57 | comments()->to($comments); ?> 58 | listComments(array( 59 | 'before' => '
    ', 60 | 'after' => '
    ', 61 | 'avatarSize' => 200, 62 | 'dateFormat' => 'Y-m-d H:i' 63 | )); ?> 64 |
    65 | pageNav('', ''); ?> 66 |
    67 |
    68 |
    69 | need('includes/footer.php'); ?> -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The Star And Thank Author but No Politics License (SATA-BNP) 2 | 3 | Copyright © 2019-2020 Eltrac(hi@guhub.cn) 4 | 5 | Project Url: https://github.com/BigCoke233/miracles 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | And wait, the most important, you shall star/+1/like the project(s) in project url 18 | section above first, and then thank the author(s) in Copyright section. 19 | 20 | Here are some suggested ways: 21 | 22 | - Email the authors a thank-you letter, and make friends with him/her/them. 23 | - Report bugs or issues. 24 | - Tell friends what a wonderful project this is. 25 | - And, sure, you can just express thanks in your mind without telling the world. 26 | 27 | Contributors of this project by forking have the option to add his/her name and 28 | forked project url at copyright and project url sections, but shall not delete 29 | or modify anything else in these two sections. 30 | 31 | Besides, you are NOT allowed to publish anything about politics with this software 32 | or use the software for political advocacy. 33 | 34 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 35 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 36 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 37 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 38 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 39 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 40 | THE SOFTWARE. 41 | 42 | --- 43 | 44 | 中文译本: 45 | 46 | The Star And Thank Author but No Politics License (SATA-BNP) 47 | 48 | Copyright © 2019-2020 Eltrac(hi@guhub.cn) 49 | 50 | 项目网址:https://github.com/BigCoke233/miracles 51 | 52 | 兹准予任何人免费获得一份副本。 53 | 本软件及相关的文档文件(以下称"软件"),以授予任何使用软件的人 54 | 不受限制地使用本软件的权利,包括但不限于以下权利 55 | 使用、复制、修改、合并、出版、分发、再授权和/或出售。 56 | 本软件的副本,并允许接受本软件的人使用本软件。 57 | 在符合下列条件的情况下,可以这样做。 58 | 59 | 上述版权声明和本许可声明应包括在以下内容中: 60 | 软件的所有副本或实质性的部分。 61 | 62 | 最重要的是,你应在项目网址中的项目中的星级/+1/喜欢的项目。 63 | 然后用一定的方式感谢作者。 64 | 65 | 以下是一些建议的方法。 66 | 67 | - 给作者发一封感谢信,和作者交朋友。 68 | - 报告 bug 或问题。 69 | - 告诉朋友们这是一个多么棒的项目。 70 | - 当然,你也可以只在心中表示感谢,不告诉全世界。 71 | 72 | 本项目的投稿者可以选择添加 TA 的名字 73 | 在版权和项目网址部分的分叉项目网址,但不得删除 74 | 或修改这两个部分中的任何其他内容。 75 | 76 | 此外,你不允许用这个软件发布任何关于政治的东西。 77 | 或使用该软件进行政治宣传。 78 | 79 | 本软件是 "按原样 "提供的,不作任何形式的保证,无论明示或暗示。 80 | 暗示的,包括但不限于适销性保证。 81 | 适当于某一特定目的和不侵权。在任何情况下,任何情况下都不得 82 | 作者或版权持有人对任何索赔、损害赔偿或其他责任。 83 | 赔偿责任,无论是在合同、侵权行为还是其他方面的诉讼中,由于以下原因而产生的责任: 84 | 由于或与该软件的使用或其他交易有关的或与之有关的 85 | 该软件。 86 | -------------------------------------------------------------------------------- /libs/lang/en-us.php: -------------------------------------------------------------------------------- 1 | "English", 4 | "author" => "Eltrac", 5 | "last_update" => "2020\/5\/3" 6 | ); 7 | $GLOBALS['postTexts'] = array( 8 | "read_more" => "Read More", 9 | "sort_title" => "Category: %s", 10 | "post_time" => "Published on %s", 11 | "post_views" => "Viewd by %s people", 12 | "post_anchor" => "Paragraph Link", 13 | "post_share" => "Share by: ", 14 | "post_tag" => "None.", 15 | "post_timeAlert_1" => "This articles is published %s days ago and ", 16 | "post_timeAlert_2" => "last updated %s days ago, some information may be out of date." 17 | ); 18 | $GLOBALS['commentFormTexts'] = array( 19 | "nameInput" => "Name*", 20 | "emailInput" => "Email*", 21 | "urlInput" => "http(s):\/\/", 22 | "submit" => "Comment", 23 | "submitLoading" => "Posting..." 24 | ); 25 | $GLOBALS['commentListTexts'] = array( 26 | "byAuthor" => "Author", 27 | "commentNum" => "There're %s comments", 28 | "commentNumNone" => "Not any comments", 29 | "commentHidden" => "The author has hidden the comment list, you won't see your comment, either.", 30 | "commentClosed" => "The author has turned the comment function off.", 31 | "commentWaiting" => "Your comment is awaiting moderation!", 32 | "commentStatus" => "Hello, ", 33 | "commentLogout" => "Sign out" 34 | ); 35 | $GLOBALS['footerTexts'] = array( 36 | "startTime" => "The site has built for", 37 | "startTimeDay" => " days ", 38 | "startTimeHour" => "h ", 39 | "startTimeMin" => "min ", 40 | "startTimeSec" => "s ", 41 | "startTimeYear" => " years " 42 | ); 43 | $GLOBALS['headerTexts'] = array( 44 | "loginAlready" => "You've already loged in", 45 | "loginAlreadyInfo" => "But still nice to see you, %s~", 46 | "loginAdminEntrance" => "Enter the Dashboard", 47 | "loginTitle" => "Login", 48 | "loginUsername" => "Username", 49 | "loginPassword" => "Password", 50 | "loginSubmit" => "login", 51 | "navTitle" => "Navigation", 52 | "drawerHome" => "Home" 53 | ); 54 | $GLOBALS['archivePageTexts'] = array( 55 | "archiveTagTitle" => "Tags", 56 | "archivePostTitle" => "Posts", 57 | "archiveCategoryTitle" => "Category", 58 | "archiveTimeYear" => "", 59 | "archiveYearTotal" => "%s articles in total", 60 | "archiveStart" => "Everything started on %s" 61 | ); 62 | $GLOBALS['archivesTitles'] = array( 63 | 'category' => _t('Posts with category %s'), 64 | 'search' => _t('Posts with keyword %s'), 65 | 'tag' => _t('Posts with tag %s'), 66 | 'author' => _t('Posts by %s') 67 | ); 68 | $GLOBALS['aboutPageTexts'] = array( 69 | "aboutShareGithub" => "GitHub", 70 | "aboutShareQQ" => "QQ", 71 | "aboutShareB" => "Bilibili", 72 | "aboutShareEmail" => "E-mail" 73 | ); 74 | $GLOBALS['sayingPageTexts'] = array( 75 | "sayingPlaceholder" => "Anything interesting happening?", 76 | "sayingSubmit" => "Publish" 77 | ); 78 | $GLOBALS['otherTexts'] = array( 79 | "copyrightAlertTitle" => "Copyright", 80 | "copyrightAlert" => "The content of the article is original unless otherwise stated. If you need to reproduce this article, remember to link to the original document (%s).The reproduction of any content is not allowed for modification, interpretation or commercial use, please respect the copyright.", 81 | "goTop" => "Go Top" 82 | ); -------------------------------------------------------------------------------- /assets/css/toaster.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Toaster.css 3 | * 4 | * Repository: https://github.com/BigCoke233/toaster.js 5 | * Version: 0.1 6 | */ 7 | 8 | @charset 'utf-8'; 9 | 10 | .toaster { 11 | position: fixed; 12 | transition-property: top, bottom, left, right, transform; 13 | transition: .3s; 14 | font-size: 16px; 15 | font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; 16 | line-height: 1.5; 17 | word-break: break-all; 18 | overflow: hidden; 19 | z-index: 20220819; 20 | user-select: none; 21 | 22 | max-width: 25vw; 23 | color: #fff; 24 | padding: 1em 1.3em; 25 | border-radius: 2px; 26 | box-shadow: 0.2em 0 .5em rgba(0,0,0,.06); 27 | cursor: pointer 28 | } 29 | 30 | .toaster-right-top, 31 | .toaster-left-top { 32 | top: -6em; 33 | } 34 | .toaster-right-bottom, 35 | .toaster-right-top { 36 | right: 1em; 37 | } 38 | .toaster-right-bottom, 39 | .toaster-left-bottom { 40 | bottom: -6em; 41 | } 42 | .toaster-left-bottom, 43 | .toaster-left-top { 44 | left: 1em; 45 | } 46 | .toaster-center { 47 | top: auto; 48 | bottom: auto; 49 | left: auto; 50 | right: auto; 51 | opacity: 0; 52 | transform: scale(0); 53 | transition: .3s 54 | } 55 | 56 | .toaster-right-top.toasting, 57 | .toaster-right-top.toast-dismissed, 58 | .toaster-left-top.toasting, 59 | .toaster-left-top.toast-dismissed { 60 | top: 1em 61 | } 62 | .toaster-right-bottom.toasting, 63 | .toaster-right-bottom.toast-dismissed, 64 | .toaster-left-bottom.toasting, 65 | .toaster-left-bottom.toast-dismissed { 66 | bottom: 1em 67 | } 68 | 69 | .toaster-left-top.toast-dismissed, 70 | .toaster-left-bottom.toast-dismissed, 71 | .toaster-right-top.toast-dismissed, 72 | .toaster-right-bottom.toast-dismissed { 73 | transition: .6s; 74 | animation: fadeOut .4s; 75 | } 76 | .toaster-right-top.toast-dismissed, 77 | .toaster-right-bottom.toast-dismissed { 78 | transform: translateX(30vw); 79 | } 80 | .toaster-left-top.toast-dismissed, 81 | .toaster-left-bottom.toast-dismissed { 82 | transform: translateX(-30vw); 83 | } 84 | .toaster-center.toasting { 85 | opacity: 1; 86 | transform: scale(1); 87 | } 88 | @media(max-width: 768px){ 89 | .toaster-right-top.toast-dismissed, 90 | .toaster-left-top.toast-dismissed { 91 | transition: .8s; 92 | transform: translateX(0); 93 | transform: translateY(-50vh); 94 | } 95 | .toaster-left-bottom.toast-dismissed, 96 | .toaster-right-bottom.toast-dismissed { 97 | transition: .8s; 98 | transform: translateX(0); 99 | transform: translateY(50vh); 100 | } 101 | .toaster { 102 | left: 0; 103 | right: 0; 104 | width: 100vw; 105 | max-width: 100vw 106 | } 107 | .toaster-left-top.toasting, 108 | .toaster-right-top.toasting { 109 | top: 0 110 | } 111 | .toaster-left-bottom.toasting, 112 | .toaster-right-bottom.toasting { 113 | bottom: 0; 114 | } 115 | } 116 | 117 | @keyframes fadeOut { 118 | 0% { opacity: 1 } 119 | 10% { opacity: 1 } 120 | 100% { opacity: 0 } 121 | } -------------------------------------------------------------------------------- /assets/css/gazeimg.css: -------------------------------------------------------------------------------- 1 | /* ================================================== 2 | * GazeImg v1.4.1 3 | * 4 | * 采用 GPLv3 许可证供开源使用 5 | * 或用于商业用途的 GazeImg 商业许可证 6 | * 所有商业应用程序(包括您计划出售的网站,主题和应用程序) 7 | * 都需要具有商业许可证。 8 | * 9 | * Licensed GPLv3 for open source use 10 | * or GazeImg Commercial License for commercial use 11 | * 12 | * http://www.ganxiaozhe.com/p/gazeimg/ 13 | * Copyright 2020 Ganxiaozhe 14 | * 15 | ================================================== */ 16 | img[data-giwait-text],img[data-gionload] {filter: brightness(.2);transition: filter 1s ease-in;} 17 | img[data-gazeimg],.gazeimg-content[data-rlong="n"] img {cursor: pointer;} 18 | .gazeimg-content[data-rlong="y"] img {cursor: zoom-in !important;} 19 | .gazeimg-content[data-gzoom="out"] img {cursor: zoom-out;} 20 | 21 | .gi-darken { 22 | filter: brightness(1);animation:gia-darken 2s infinite linear alternate-reverse; 23 | display: flex;align-items: center;justify-content: center; 24 | vertical-align: top;overflow: hidden;position: relative; 25 | } 26 | .gi-darken.gi-failload {animation: none;} 27 | .gi-darken a {display: block;text-decoration: none;color: #fff !important;text-align: center;word-break: break-all;} 28 | @-webkit-keyframes gia-darken {to{filter: brightness(.75);}} 29 | @keyframes gia-darken {to{filter: brightness(.75);}} 30 | 31 | .gi-zoomIn {animation: gia-zoomIn 1s cubic-bezier(0, 0, 0, 1) 1;} 32 | @-webkit-keyframes gia-zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}} 33 | @keyframes gia-zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}} 34 | 35 | .gi-fadeIn {animation: gia-fadeIn 0.3s cubic-bezier(0, 0, 0, 1) 1;} 36 | @-webkit-keyframes gia-fadeIn{0%{opacity:0;}100%{opacity:1}} 37 | @keyframes gia-fadeIn{0%{opacity:0;}100%{opacity:1}} 38 | 39 | .gazeimg-nobar {overflow: hidden;height: auto;} 40 | .gazeimg-container { 41 | position: fixed;left: 0;top: 0;height: 100%;width: 100%; 42 | outline: none;z-index: 20020214;transition-duration: 0.35s; 43 | } 44 | .gazeimg-bg { 45 | background: rgb(20,20,20);opacity: 0.9; 46 | transition-property: opacity;transition-duration: inherit;transition-timing-function: cubic-bezier(.5, 0, .7, .7); 47 | } 48 | .gazeimg-bg,.gazeimg-inner { 49 | position: absolute;top: 0;left: 0;bottom: 0;right: 0; 50 | } 51 | .gazeimg-stage { 52 | direction: ltr;transform: translateZ(0); 53 | width:100%;height:100%;padding:50px 0; 54 | } 55 | .gazeimg-content { 56 | position: absolute;top:0;left:0;width:38px;height:38px;overflow: visible; 57 | transform-origin: center; 58 | transition: height 0.3s ease,width 0.3s ease; 59 | } 60 | .gazeimg-content img { 61 | width:100%;height:100%;max-width:100%;max-height:100%;overflow: hidden; 62 | position: absolute;top: 0;left: 0; 63 | border:none;padding:0;margin:0; 64 | user-select: none;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none; 65 | } 66 | .gazeimg-content .loader,.gilazy-loader { 67 | display: block;width: 46px;height: 46px; 68 | position: absolute;top:calc(50% - 23px);left:calc(50% - 23px); 69 | border: 4px solid #f3f3f3;border-radius: 100%; 70 | border-top: 4px solid transparent; 71 | transition: border 0.3s ease; 72 | } 73 | 74 | .gi-spin {-webkit-animation:gi-spin 0.8s infinite linear;animation:gi-spin 0.8s infinite linear;} 75 | @-webkit-keyframes gi-spin{ 76 | 0%{-webkit-transform:rotate(0);transform:rotate(0);} 77 | 100%{-webkit-transform:rotate(360deg);transform:rotate(360deg);} 78 | } 79 | @keyframes gi-spin{ 80 | 0%{-webkit-transform:rotate(0);transform:rotate(0);} 81 | 100%{-webkit-transform:rotate(360deg);transform:rotate(360deg);} 82 | } 83 | -------------------------------------------------------------------------------- /assets/css/owo.min.css: -------------------------------------------------------------------------------- 1 | .OwO { 2 | position: relative; 3 | -webkit-user-select: none; 4 | -moz-user-select: none; 5 | -ms-user-select: none; 6 | user-select: none; 7 | } 8 | 9 | .OwO:hover .OwO-logo { 10 | color: #444; 11 | } 12 | 13 | .OwO.OwO-open .OwO-logo { 14 | border-radius: 4px 4px 0 0; 15 | color: #444; 16 | } 17 | 18 | .OwO.OwO-open .OwO-body { 19 | display: block; 20 | border-top: 1px solid #ddd; 21 | border: 1px solid #ddd; 22 | } 23 | 24 | .OwO.OwO-up .OwO-body { 25 | top: inherit; 26 | bottom: 21px; 27 | border-radius: 4px 4px 4px 0; 28 | } 29 | 30 | .OwO.OwO-up .OwO-body .OwO-bar .OwO-packages li:nth-child(1) { 31 | border-radius: 0; 32 | } 33 | 34 | .OwO.OwO-up.OwO-open .OwO-logo { 35 | border: none; 36 | border-top: none; 37 | border-radius: 0 0 4px 4px; 38 | } 39 | 40 | .OwO .OwO-logo { 41 | position: relative; 42 | z-index: 2; 43 | display: inline-block; 44 | box-sizing: border-box; 45 | padding: 2px 3px; 46 | height: 22px; 47 | border: 1px solid #ddd; 48 | border-radius: 4px; 49 | background: #fff; 50 | color: #888; 51 | font-size: 13px; 52 | cursor: pointer; 53 | transform: all .2s; 54 | } 55 | 56 | .OwO .OwO-logo:hover { 57 | background: #f4f4f4; 58 | } 59 | 60 | .OwO .OwO-logo:hover span { 61 | display: inline-block; 62 | } 63 | 64 | .OwO .OwO-body { 65 | position: absolute; 66 | top: 21px; 67 | z-index: 3; 68 | display: none; 69 | width: 300px; 70 | border-radius: 0 6px 6px 6px; 71 | background: #fff; 72 | } 73 | 74 | .OwO .OwO-body .OwO-items { 75 | display: none; 76 | overflow: scroll; 77 | margin: 0; 78 | padding: 10px; 79 | font-size: 0; 80 | -webkit-user-select: none; 81 | -moz-user-select: none; 82 | -ms-user-select: none; 83 | user-select: none; 84 | } 85 | 86 | .OwO .OwO-body .OwO-items::-webkit-scrollbar-thumb { 87 | background: #ddd; 88 | } 89 | 90 | .OwO .OwO-body .OwO-items .OwO-item { 91 | display: inline-block; 92 | margin: 0 10px 12px 0; 93 | padding: 5px 10px; 94 | border-radius: 3px; 95 | background: rgba(0,0,0,0); 96 | list-style-type: none; 97 | font-size: 12px; 98 | line-height: 14px; 99 | cursor: pointer; 100 | -webkit-transition: .3s; 101 | transition: .3s; 102 | } 103 | 104 | .OwO .OwO-body .OwO-items .OwO-item:hover { 105 | background: #f2f2f2; 106 | box-shadow: 0 2px 3px #bababa; 107 | transform: scale(1.1); 108 | } 109 | 110 | .OwO .OwO-body .OwO-items-emoji .OwO-item { 111 | font-size: 20px; 112 | line-height: 19px; 113 | } 114 | 115 | .OwO .OwO-body .OwO-items-image .OwO-item { 116 | box-sizing: border-box; 117 | max-width: calc(25% - 10px); 118 | } 119 | 120 | .OwO .OwO-body .OwO-items-image .OwO-item img { 121 | max-width: 100%; 122 | } 123 | 124 | .OwO .OwO-body .OwO-items-show { 125 | display: block; 126 | } 127 | 128 | .OwO .OwO-body .OwO-bar { 129 | width: 100%; 130 | height: 30px; 131 | border-radius: 0 0 4px 4px; 132 | background: #f0f0f0; 133 | color: #444; 134 | } 135 | 136 | .OwO .OwO-body .OwO-bar .OwO-packages { 137 | margin: 0; 138 | padding: 0; 139 | font-size: 0; 140 | } 141 | 142 | .OwO .OwO-body .OwO-bar .OwO-packages li { 143 | display: inline-block; 144 | margin-right: 3px; 145 | padding: 0 10px; 146 | list-style-type: none; 147 | font-size: 14px; 148 | line-height: 30px; 149 | cursor: pointer; 150 | } 151 | 152 | .OwO .OwO-body .OwO-bar .OwO-packages li:nth-child(1) { 153 | border-radius: 0 0 0 3px; 154 | } 155 | 156 | .OwO .OwO-body .OwO-bar .OwO-packages li:hover { 157 | background: #fff; 158 | } 159 | 160 | .OwO .OwO-body .OwO-bar .OwO-packages .OwO-package-active { 161 | background: #fff; 162 | -webkit-transition: .3s; 163 | transition: .3s; 164 | }} -------------------------------------------------------------------------------- /assets/css/main/component.css: -------------------------------------------------------------------------------- 1 | @charset 'utf-8'; 2 | /* 3 | * Style of some component 4 | * Author: Eltrac 5 | * License: MIT 6 | */ 7 | /* Button */ 8 | button { 9 | outline: none; 10 | cursor: pointer 11 | } 12 | .button { 13 | border: 3px solid #ccc; 14 | border-radius: 30px; 15 | padding: 8px 12px; 16 | transition: all .2s; 17 | } 18 | .button:hover { 19 | border-color: #000; 20 | background: #000; 21 | color: #fff 22 | } 23 | .button-sm { 24 | padding: 3px 5px; 25 | } 26 | .button-md { 27 | border: none; 28 | border-radius: 3px; 29 | } 30 | .button-md:hover { 31 | background: rgb(235,235,235); 32 | color: #fff; 33 | } 34 | /* Alert */ 35 | .alert { 36 | bottom: 0; 37 | left: 50%; 38 | transform: translate(-50%, 0px); 39 | z-index: 10; 40 | padding: 1em; 41 | position: fixed; 42 | color: #fff; 43 | background: rgba(50,50,50,.95); 44 | border-radius: 2px; 45 | margin: 0 auto 1em auto; 46 | box-shadow: 0 2px 6px gray; 47 | transition: .2s; 48 | } 49 | .alert.success { 50 | background: #2ECC71; 51 | color: #fff 52 | } 53 | .alert.failed { 54 | background: #DD4B39; 55 | color: #fff 56 | } 57 | .alert.adding { 58 | -webkit-animation: slideDown 0.2s ease forwards; 59 | animation: slideDown 0.3s ease forwards; 60 | } 61 | .alert.remove { 62 | -webkit-animation: slideUp 0.2s ease forwards; 63 | animation: slideUp 0.3s ease forwards; 64 | } 65 | @-webkit-keyframes slideDown { 66 | 0%{ 67 | bottom: -100px; 68 | } 69 | 25%{ 70 | bottom: -50px; 71 | } 72 | 50%{ 73 | bottom: 0; 74 | } 75 | 100%{ 76 | bottom: 5px; 77 | } 78 | } 79 | @-webkit-keyframes slideUp { 80 | 0%{ 81 | bottom: 5px; 82 | } 83 | 25%{ 84 | bottom: 0; 85 | } 86 | 50%{ 87 | bottom: -50px; 88 | } 89 | 100%{ 90 | bottom: -100px; 91 | } 92 | } 93 | 94 | 95 | /* Mask */ 96 | .mask { 97 | position: fixed; 98 | top: 0; 99 | bottom: 0; 100 | left: 0; 101 | right: 0; 102 | background: rgb(70,70,70,0); 103 | z-index: -100; 104 | transition: background 0.4s; 105 | } 106 | .mask-open { 107 | background: rgb(70,70,70,0.7); 108 | z-index: 25; 109 | } 110 | /* Fixed Buttons */ 111 | .fixed-button { 112 | background: #fdfdfd; 113 | font-size: 16px; 114 | height: 3.5rem; 115 | width: 3.5rem; 116 | display: flex; 117 | justify-content:center; 118 | align-items:center; 119 | border: none; 120 | border-radius: 10000px; 121 | box-shadow: 0 1px 5px #bababa; 122 | -webkit-box-shadow: 0 1px 5px #bababa; 123 | -moz-box-shadow: 0 1px 5px #bababa; 124 | position: fixed; 125 | cursor: pointer; 126 | outline: 0; 127 | right: 6px; 128 | transition: all 0.3s; 129 | } 130 | .fixed-button:hover { 131 | box-shadow: 0 3px 25px #bababa; 132 | -webkit-box-shadow: 0 3px 25px #bababa; 133 | -moz-box-shadow: 0 3px 25px #bababa; 134 | background: rgb(248,248,248)!important; 135 | } 136 | .gotop-button { 137 | bottom: 8px; 138 | background: #fff!important; 139 | color: rgb(80,80,80)!important; 140 | right: 1rem; 141 | } 142 | /* Bubble */ 143 | .bubble { 144 | position: relative; 145 | background: #f1f1f1; 146 | border-radius: 2px; 147 | padding: 0; 148 | color: #000; 149 | display: inline-block; 150 | min-width: 180px; 151 | transition: all 0.3s; 152 | } 153 | .bubble::before{ 154 | content: ''; 155 | position: absolute; 156 | right: 100%; 157 | top: 18px; 158 | width: 0; 159 | height: 0; 160 | border-radius: 2px; 161 | border-width: 9px; 162 | border-style: solid; 163 | border-color: transparent; 164 | margin-bottom: -14px; 165 | border-right-width: 18px; 166 | border-right-color: currentColor; 167 | color: #f1f1f1; 168 | } 169 | .bubble:hover { 170 | transform: translateY(-6px); 171 | box-shadow: 2px 8px 17px #bababa; 172 | } -------------------------------------------------------------------------------- /assets/css/main/element.css: -------------------------------------------------------------------------------- 1 | @charset 'utf-8'; 2 | /* 3 | * Style of all elements 4 | * Author: Eltrac 5 | * Used-by: Normalize 6 | * License: MIT 7 | */ 8 | /* Normalize */ 9 | html { 10 | line-height: 1.15; /* 1 */ 11 | -webkit-text-size-adjust: 100%; /* 2 */ 12 | } 13 | body { 14 | margin: 0; 15 | } 16 | 17 | main { 18 | display: block; 19 | } 20 | h1 { 21 | font-size: 2em; 22 | margin: 0.67em 0; 23 | } 24 | hr { 25 | box-sizing: content-box; /* 1 */ 26 | height: 0; /* 1 */ 27 | overflow: visible; /* 2 */ 28 | } 29 | pre { 30 | font-family: monospace, monospace; /* 1 */ 31 | font-size: 1em; /* 2 */ 32 | } 33 | a { 34 | background-color: transparent; 35 | } 36 | abbr[title] { 37 | border-bottom: none; /* 1 */ 38 | text-decoration: underline; /* 2 */ 39 | text-decoration: underline dotted; /* 2 */ 40 | } 41 | b, 42 | strong { 43 | font-weight: bolder; 44 | } 45 | code, 46 | kbd, 47 | samp { 48 | font-family: monospace, monospace; /* 1 */ 49 | font-size: 1em; /* 2 */ 50 | } 51 | small { 52 | font-size: 80%; 53 | } 54 | sub, 55 | sup { 56 | font-size: 75%; 57 | line-height: 0; 58 | position: relative; 59 | vertical-align: baseline; 60 | } 61 | sub { 62 | bottom: -0.25em; 63 | } 64 | sup { 65 | top: -0.5em; 66 | } 67 | img { 68 | border-style: none; 69 | } 70 | button, 71 | input, 72 | optgroup, 73 | select, 74 | textarea { 75 | font-family: inherit; /* 1 */ 76 | font-size: 100%; /* 1 */ 77 | line-height: 1.15; /* 1 */ 78 | margin: 0; /* 2 */ 79 | } 80 | button, 81 | input { /* 1 */ 82 | overflow: visible; 83 | } 84 | button, 85 | select { /* 1 */ 86 | text-transform: none; 87 | } 88 | button, 89 | [type="button"], 90 | [type="reset"], 91 | [type="submit"] { 92 | -webkit-appearance: button; 93 | } 94 | button::-moz-focus-inner, 95 | [type="button"]::-moz-focus-inner, 96 | [type="reset"]::-moz-focus-inner, 97 | [type="submit"]::-moz-focus-inner { 98 | border-style: none; 99 | padding: 0; 100 | } 101 | button:-moz-focusring, 102 | [type="button"]:-moz-focusring, 103 | [type="reset"]:-moz-focusring, 104 | [type="submit"]:-moz-focusring { 105 | outline: 1px dotted ButtonText; 106 | } 107 | fieldset { 108 | padding: 0.35em 0.75em 0.625em; 109 | } 110 | legend { 111 | box-sizing: border-box; /* 1 */ 112 | color: inherit; /* 2 */ 113 | display: table; /* 1 */ 114 | max-width: 100%; /* 1 */ 115 | padding: 0; /* 3 */ 116 | white-space: normal; /* 1 */ 117 | } 118 | progress { 119 | vertical-align: baseline; 120 | } 121 | textarea { 122 | overflow: auto; 123 | } 124 | [type="checkbox"], 125 | [type="radio"] { 126 | box-sizing: border-box; /* 1 */ 127 | padding: 0; /* 2 */ 128 | } 129 | [type="number"]::-webkit-inner-spin-button, 130 | [type="number"]::-webkit-outer-spin-button { 131 | height: auto; 132 | } 133 | [type="search"] { 134 | -webkit-appearance: textfield; /* 1 */ 135 | outline-offset: -2px; /* 2 */ 136 | } 137 | [type="search"]::-webkit-search-decoration { 138 | -webkit-appearance: none; 139 | } 140 | ::-webkit-file-upload-button { 141 | -webkit-appearance: button; /* 1 */ 142 | font: inherit; /* 2 */ 143 | } 144 | details { 145 | display: block; 146 | } 147 | summary { 148 | display: list-item; 149 | } 150 | template { 151 | display: none; 152 | } 153 | [hidden] { 154 | display: none; 155 | } 156 | /* Elements */ 157 | * { 158 | box-sizing: border-box 159 | } 160 | a { 161 | text-decoration: none; 162 | color: #000 163 | } 164 | html { 165 | font-size: 16px; 166 | } 167 | body,html { 168 | padding: 0; 169 | margin: 0; 170 | background: #fafafa; 171 | overflow: auto; 172 | transition: background 0.2s; 173 | width: 100% 174 | } 175 | body { 176 | font-family: 'Noto Sans SC',sans-serif; 177 | transition: all 0.3s; 178 | } 179 | hr { 180 | border: none; 181 | border-bottom: 1px solid #ccc; 182 | margin: 10px 0 183 | } 184 | -------------------------------------------------------------------------------- /includes/footer.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
    21 | 22 |
    23 | 24 |
    25 | 26 | options->customCDN): $custom=$this->options->customCDN; else: $custom=Helper::options()->themeUrl("","Miracles"); endif; 29 | Utils::addRequires($js_files,"js",$this->options->CDN,$custom); 30 | ?> 31 | 32 | 50 | 51 | options->customCDN): $custom=$this->options->customCDN; else: $custom=Helper::options()->themeUrl("","Miracles"); endif; 54 | Utils::addRequires($js_files,"js",$this->options->CDN,$custom); 55 | ?> 56 | 57 | 60 | 61 | 62 | 63 | footer(); ?> 64 | 65 | 66 | 70 | 83 | -------------------------------------------------------------------------------- /assets/css/setting.miracles.css: -------------------------------------------------------------------------------- 1 | @charset 'utf-8'; 2 | 3 | :root { 4 | --theme-color: #4D90FE; 5 | } 6 | 7 | body { 8 | width: 100%; 9 | background: #fcfcfc; 10 | font-family: 'Noto Sans SC',sans-serif; 11 | } 12 | 13 | hr { 14 | margin: 30px 0; 15 | border: none; 16 | border-bottom: 1px solid #dcdcdc; 17 | } 18 | 19 | .miracles-pannel { 20 | margin: 40px 0; 21 | margin-top: 10px; 22 | padding: 28px 30px; 23 | border-radius: 5px; 24 | background: rgba(90,90,90,.8); 25 | -webkit-box-shadow: 0 2px 8px #ddd; 26 | -moz-box-shadow: 0 2px 8px #ddd; 27 | box-shadow: 0 2px 8px #ddd; 28 | color: #fff; 29 | } 30 | 31 | .miracles-pannel a { 32 | position: relative; 33 | color: #fafafa; 34 | } 35 | 36 | .miracles-pannel a:hover { 37 | text-decoration: none; 38 | } 39 | 40 | .miracles-pannel a::before { 41 | position: absolute; 42 | right: 0; 43 | bottom: 0; 44 | left: 0; 45 | height: 2px; 46 | background-color: #fafafa; 47 | content: ''; 48 | transition: transform .5s ease; 49 | transform: scaleX(0); 50 | transform-origin: bottom right; 51 | } 52 | 53 | .miracles-pannel a:hover::before { 54 | transform: scaleX(1); 55 | transform-origin: bottom left; 56 | } 57 | 58 | .tongzhi { 59 | bottom: 0; 60 | left: 50%; 61 | transform: translate(-50%, 0px); 62 | z-index: 10; 63 | padding: 1em; 64 | position: fixed; 65 | color: #fff; 66 | background: rgba(50,50,50,.95); 67 | border-radius: 2px; 68 | margin: 0 auto 1em auto; 69 | box-shadow: 0 2px 6px gray; 70 | transition: .2s; 71 | -webkit-animation: slideDown 0.2s ease forwards; 72 | animation: slideDown 0.3s ease forwards; 73 | max-width: 520px; 74 | text-align: center; 75 | font-size: 1.06em 76 | } 77 | 78 | .waiting { 79 | color: rgb(230,230,230) 80 | } 81 | 82 | @-webkit-keyframes slideDown { 83 | 0%{ 84 | bottom: -100px; 85 | } 86 | 25%{ 87 | bottom: -50px; 88 | } 89 | 50%{ 90 | bottom: 0; 91 | } 92 | 100%{ 93 | bottom: 50px; 94 | } 95 | } 96 | 97 | .miracles-backup-div { 98 | margin: 15px 0; 99 | margin-bottom: 0 100 | } 101 | 102 | .miracles-backup-button { 103 | padding: 6px 10px; 104 | border: none; 105 | border-radius: 2px; 106 | background: #646464; 107 | -webkit-box-shadow: 0 1px 1px #000; 108 | -moz-box-shadow: 0 1px 1px #000; 109 | box-shadow: 0 1px 1px #000; 110 | color: #fff; 111 | cursor: pointer; 112 | } 113 | 114 | .miracles-para-attention { 115 | padding: 10px 12px; 116 | border-radius: 3px; 117 | background: red; 118 | color: #fff; 119 | } 120 | 121 | ::-webkit-scrollbar { 122 | width: 6px; 123 | height: 5px; 124 | } 125 | 126 | ::-webkit-scrollbar-button { 127 | display: none; 128 | } 129 | 130 | ::-webkit-scrollbar-thumb { 131 | background: gray; 132 | } 133 | 134 | .typecho-head-nav { 135 | position: fixed; 136 | top: 0; 137 | right: 0; 138 | left: 0; 139 | padding: 15px 0; 140 | -webkit-box-shadow: 0 0 30px #ddd; 141 | -moz-box-shadow: 0 0 30px #ddd; 142 | box-shadow: 0 0 30px #ddd; 143 | font-size: 15px; 144 | z-index: 10 145 | } 146 | 147 | .typecho-page-title { 148 | visibility: hidden; 149 | margin-top: 90px; 150 | } 151 | 152 | .typecho-option .btn,.typecho-option li input,.typecho-option li select,.typecho-option li textarea { 153 | padding: 10px 12px; 154 | border-color: #ddd; 155 | border-radius: 4px; 156 | background: #fff; 157 | -webkit-box-shadow: 0 1px 5px #ddd; 158 | -moz-box-shadow: 0 1px 5px #ddd; 159 | box-shadow: 0 1px 5px #ddd; 160 | outline: none; 161 | } 162 | 163 | .typecho-option li select { 164 | padding: 0 4px; 165 | min-width: 100px; 166 | } 167 | 168 | .typecho-option li textarea { 169 | height: 160px!important; 170 | resize: none; 171 | } 172 | 173 | .typecho-option li .typecho-label { 174 | margin: 15px 0; 175 | margin-top: 20px; 176 | letter-spacing: 1px; 177 | font-size: 15px; 178 | } 179 | 180 | .typecho-option .btn { 181 | position: fixed; 182 | bottom: 15px; 183 | right: 15px; 184 | border-radius: 4px; 185 | background: #000; 186 | box-shadow: 0 0 6px #bababa; 187 | padding: 8px 14px; 188 | font-size: 1.1em 189 | } 190 | 191 | .wmd-button-row { 192 | height: auto!important 193 | } 194 | 195 | input#slug { 196 | z-index: 1 197 | } 198 | 199 | @media (min-width:768px) { 200 | .typecho-option-tabs { 201 | margin-left: 122px; 202 | } 203 | } 204 | 205 | @media (min-width:992px) { 206 | .typecho-option-tabs { 207 | margin-left: 160px; 208 | } 209 | } 210 | 211 | @media (min-width:1200px) { 212 | .typecho-option-tabs { 213 | margin-left: 194px; 214 | } 215 | } 216 | #edit-secondary .typecho-option-tabs { 217 | margin-left: 0!important 218 | } -------------------------------------------------------------------------------- /includes/head.php: -------------------------------------------------------------------------------- 1 | 3 | 4 | options->grayTheme && $this->options->grayTheme=1): ?> class="html-filter-gray"> 5 | 6 | 7 | 8 | 9 | 10 | 11 | is('post') || $this->is('page')){ 15 | if(isset($this->fields->excerpt)) 16 | $description = $this->fields->excerpt; 17 | }else{ 18 | $description = Helper::options()->description; 19 | }?> 20 | <?php Contents::title($this); ?> 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 43 | 44 | header('generator=&pingback=&xmlrpc=&wlw=&commentReply=&description=&antiSpam='); ?> 45 | options->headerEcho(); ?> 46 | 47 | options->customCDN): $custom=$this->options->customCDN; else: $custom=Helper::options()->themeUrl("","Miracles"); endif; 50 | Utils::addRequires($css_files,"css",$this->options->CDN,$custom); 51 | ?> 52 | 53 | 62 | 63 | 64 | 66 | 67 | -------------------------------------------------------------------------------- /assets/css/main/page.css: -------------------------------------------------------------------------------- 1 | @charset 'utf-8'; 2 | /* 3 | * Style of Some parts of custom pages 4 | * Author: Eltrac 5 | * License: MIT 6 | */ 7 | /* About Page */ 8 | .about-avatar img { 9 | margin: 0 auto; 10 | display: block; 11 | padding: 2px; 12 | border: 3px solid #ddd; 13 | border-radius: 100%; 14 | height: 200px; 15 | width: 200px; 16 | } 17 | .about-name { 18 | text-align: center; 19 | font-size: 35px; 20 | margin: 20px 0; 21 | margin-bottom: 0; 22 | } 23 | .about-social { 24 | text-align: center; 25 | margin-top: 15px; 26 | } 27 | .about-social a { 28 | transform: scale(1.2); 29 | border-radius: 100%; 30 | padding: 5px 10px; 31 | } 32 | .about-social a:hover { 33 | background: rgb(246,246,246); 34 | } 35 | 36 | /* Tag List */ 37 | .tags-list { 38 | margin-left: -30px 39 | } 40 | 41 | .tags-item a { 42 | background: rgb(240,240,240); 43 | border-radius: 80px; 44 | color: rgb(60,60,60); 45 | padding: 6px 14px; 46 | font-size: 15px; 47 | transition: all .2s; 48 | margin: 5px 3px; 49 | } 50 | .tags-item a:hover { 51 | background: rgb(230,230,230); 52 | } 53 | .tags-item { 54 | position: relative; 55 | display: inline-block; 56 | margin-top: 10px; 57 | } 58 | /* Archives 归档 */ 59 | .archives-list { 60 | list-style-type: none; 61 | margin-left: -40px 62 | } 63 | .archives-list a { 64 | display: block; 65 | border-radius: 3px; 66 | transition: background .2s; 67 | padding: 6px 10px; 68 | white-space:nowrap; 69 | width: 100%; 70 | overflow: hidden; 71 | text-overflow:ellipsis; 72 | white-space: nowrap; 73 | } 74 | .archives-list a:hover { 75 | background: #e6e6e6 76 | } 77 | .archives-date, 78 | .archives-count { 79 | color: gray!important; 80 | letter-spacing: 0; 81 | } 82 | .archives-count { 83 | margin-left: 5px 84 | } 85 | /* Links */ 86 | .links-box { 87 | margin: 10px; 88 | margin-left: 0; 89 | margin-top: 10px 90 | } 91 | .links-box h2 { 92 | text-align: Center; 93 | border-bottom: 1px solid #e6e6fa; 94 | padding-bottom: 20px; 95 | font-weight: 700; 96 | color: black; 97 | } 98 | .links-link { 99 | color: black!important; 100 | } 101 | .links-link:hover { 102 | opacity: 1!important 103 | } 104 | .links-item { 105 | background: #fff; 106 | box-shadow: 0 1px 3px #ccc; 107 | -webkit-box-shadow: 0 1px 3px #ccc; 108 | -moz-box-shadow: 0 1px 3px #ccc; 109 | overflow: hidden; 110 | transition: all .2s!important; 111 | margin-bottom: 5px; 112 | border-radius: 3px 113 | } 114 | .links-item:hover { 115 | transform: scale(1.05); 116 | box-shadow: 0 6px 28px #ccc; 117 | -webkit-box-shadow: 0 6px 28px #ccc; 118 | -moz-box-shadow: 0 6px 28px #ccc; 119 | transform: translateY(-6px) 120 | } 121 | .link-box a { 122 | color: #000 123 | } 124 | .links-title { 125 | text-align: center 126 | } 127 | .links-title h4 { 128 | font-weight: 700; 129 | letter-spacing: 2px; 130 | white-space: nowrap; 131 | font-size: 15px; 132 | margin: 14px 0 133 | } 134 | .links-container { 135 | padding: 6px; 136 | } 137 | .links-img { 138 | padding: 0; 139 | width: 100%; 140 | height: 100% 141 | } 142 | .links-img img { 143 | margin: 0; 144 | width: 100%; 145 | height: 100%; 146 | object-fit: cover 147 | } 148 | 149 | /* Saying 说说 */ 150 | .saying-meta { 151 | color: gray!important; 152 | margin-top: -5px!important; 153 | line-height: 22px; 154 | } 155 | .saying-meta img { 156 | float: left; 157 | height: 45px; 158 | width: 45px; 159 | border-radius: 100%; 160 | margin-right: 15px; 161 | box-shadow: 1px 1px 2px #bababa; 162 | webkit-box-shadow: 1px 1px 2px #bababa; 163 | -moz-box-shadow: 1px 1px 2px #bababa; 164 | } 165 | .saying-author { 166 | font-size: 18px; 167 | } 168 | .saying-hr { 169 | border-bottom: 1px solid #ddd; 170 | } 171 | .saying-header.saying-inner { 172 | padding-bottom: 0; 173 | } 174 | .saying-middle.saying-inner { 175 | padding-top: 0; 176 | padding-bottom: 10px; 177 | } 178 | .saying-form { 179 | margin-bottom: -10px!important; 180 | } 181 | 182 | /* bangumi 追番 */ 183 | .bangumi-item { 184 | padding-top: 0; 185 | padding-bottom: 0; 186 | border: none; 187 | } 188 | .bangumi-link { 189 | padding: 12px; 190 | border: none 191 | } 192 | .bangumi-banner { 193 | position: relative; 194 | overflow: hidden 195 | } 196 | .bangumi-banner img { 197 | width: 100% 198 | } 199 | .bangumi-des { 200 | position: absolute; 201 | top: 0; 202 | bottom: 0; 203 | left: 0; 204 | right: 0; 205 | background: rgba(255,255,255,0.8); 206 | padding: 6px; 207 | opacity: 0; 208 | transition: .3s; 209 | backdrop-filter: blur(4px); 210 | -webkit-backdrop-filter: blur(4px); 211 | overflow: auto 212 | } 213 | .bangumi-des p { 214 | margin: 0 215 | } 216 | .bangumi-banner:hover .bangumi-des { 217 | opacity: 1 218 | } 219 | .bangumi-title { 220 | border: none!important; 221 | text-align: center; 222 | overflow: hidden; 223 | text-overflow: ellipsis; 224 | white-space: nowrap; 225 | } 226 | .bangumi-progress, .bangumi-progress-bar { 227 | border-radius: 4px; 228 | height: 8px 229 | } 230 | .bangumi-progress { 231 | background: #ddd 232 | } 233 | .bangumi-progress-bar { 234 | background: gray 235 | } -------------------------------------------------------------------------------- /assets/css/codestyle.css: -------------------------------------------------------------------------------- 1 | /* from https://github.com/atom/one-dark-syntax 2 | edited by Eltrac */ 3 | .hljs { 4 | display: block; 5 | overflow-x: auto; 6 | color: #abb2bf; 7 | background: #2d2d2d!important; 8 | font-family: 'Noto Sans SC',sans-serif!important; 9 | font-size: .8em!important; 10 | padding: 0!important; 11 | margin: 0!important; 12 | max-height: 90vh; 13 | position: relative; 14 | background: rgb(63,63,63)!important 15 | } 16 | 17 | .hljs::before { 18 | content: ''; 19 | display: block; 20 | height: 27px; 21 | border-top-left-radius: 5px; 22 | border-top-right-radius: 5px; 23 | background: url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAAaAEMDAREAAhEBAxEB/8QAGwABAAICAwAAAAAAAAAAAAAAAAgKBgkCBAf/xAAkEAACAwEAAgIBBQEAAAAAAAACBAEDBQYABwgRIQkSFCIxFf/EAB0BAQACAgIDAAAAAAAAAAAAAAAHCAYJBAUBAgr/xAAmEQACAwACAQQCAgMAAAAAAAABAgMEBQAGEQcSEyEIFCIxQVFh/9oADAMBAAIRAxEAPwCvv4448cceOOPHHHjjjxxx4448cceOOZVwmIl0vccbzmmzKebv9Xz2JoOQQhKqWrrpotswZf1CaKL7LYIv6j+z7n8RPnA1bUtLL0rkCfJNUoXLUMZBIklr15JY0IH2fc6BfA+z5+uZR0fGpdj7r1Dr2lZNPO3u0dfxr9sMENWlqa1Sjash28qpggnkl9zAhfb5P0OWLMzhuNxucr5DN5fCV5etYVJwozFLc2+gQiuYcWuqsB6y0Y+2L3IvvasI7WLLbTMyp5PqaNm4dGa9ae8XMn7RnkWdXJ8gxurKYgp+kWP2KgAVFVQAPoXzej9Ox+ux9Szur4VbrKV1qnDGZUkzp4VQRkW600UiXZJVHmxPcE89mRnlsSSyu7toT+RXH4PBe6u/5TmIAMLN1Vrc9esysrRDUys/XuzKzMjOa8tl+7OriwztEFRG0ysgim1vTtG3rdayb94k2poJFmcj2tKYLE1dZ2AAHunSJZm8AKS5KgAgc0S/kJ1HC6J6zd96t1oImHnateWhXjdpI6KaeXQ1pc2N3Z3MeXYvTZyCR3kVKoWR2cMx3Zforek/We1xfsj3TuYuL0HsLL7weKwrNZNbQY5HGQ57E3C1MepkLBz3ugd271LNSusXYXwSUUZpov0amdev53997XQ3er9Ez79/N61b66d7QWnPLWj2r1jTv54qXniZWs182ChHOtRmMBl0RNNFJJHWeKTfxz63i2c7Y7FarVretBpjNqmxGkz0K8dStZM9dXBEUtuSy0ZnA+UJVMcbqjyrJIL9Xv0n6z3fjPve4W8XFzPZPB7vJf8AG6VVNZTb30ug6PM5vR5nRcqCu7WTBPUs3VqW5YsQuxrLETWqZ0RZjb8Ku+9rz/VXO6RDfv2+rdiz9n97KmnlmoZ0+bl2tSrq1YHZkpztPUTOleERpZS8q2FleKq0OV+vvW8Wz0212B61aDYy7VD9e4kaR2bUdu3DUmpzSKA08YjmNpFk9zRNXYxFFeYSVjODxEem7jjOc02ZSzeg6vncTQcgoCVEdXXTQbZgy/qM0UMWW/uL8D+z7n8RPm2Pcuz5uJsaNaP5rNDK0LteHwT8s9WpNPFH4H2ffJGq+B9nz45QDuGtbwepdo3KEAtXsbru3rUqpUsLNvOzLVytAVX+TCaaFI/aPs+7wPs8sc5fB8Xjc3Xx+ZyuAry9awqTgxlqW5t9A1xXMOLX1Wg9baMfbDDsXsNWEdrNttpmZa8bO5s3NFtezqX5dNpDL+8bUy2Uct7vMMiMrQKp+o44fZHGoCxqqqANHmh2/tOpuv2a/wBh2LHYHnayNg6FmO/DKzlwas8Ukb1I4yfEENUww10CxwRxxoqjQP8AI3jsDgPdnsHk+XgAwczWWtz16zKytCvUys/Xty6zMjsmvKZfuza4sM7RBWBtMrIIpvf6ea9/e6XgaumWa9ZqSLYkZQrTtVtWKiWWAAX3Wo4EsMVAUmUlQFIA3H+h/Z9juXpT0zse+WfYv508d2d0CPcfP0buZHoOqqiB9GCnFecxosbNYLRqqFQPE/M05K3OQkQEJgRAYFBAYzIkJDMSJCUTEiQzETExMTExExP354IBBBAIIIII8gg/RBB+iCP7HPZWZGV0ZkdGDI6kqysp8qysCCrKQCCCCCPIPnkxMz50e+MznK8CXOZ0WqVhVp6fTxLWujAawiuu2ywdCrHcZAYiSYfxm7WDibWyYtOwyjqf0t6rPcNv470MbOXajBZVKZJPllCmFrMaEk+Eisxqg/jGEUAC3mb+b/rpm9djwTd63oWYa61oezaWLJZ7EixoI45ZJBfiyLdhVClrF/HtS2HBltNPK8jvEjV1NHc039nYdY0dXVcY0NF9uwrmnHW7SvZZvtKZI7brTIzKf9mfxER9R5IMEENWCKtXiSGCCNIYYo1CpHHGoVERR9BVUAAf85VDU1NHb0r+xr3LGjqaluxf0L9uRprNy5blaaxZnlYlnlmldndj/ZJ8ADwOSH+NXy09z/FHotTe9T7aNSvQUq0dLy/QIFr8t0IIHdYgejngwk1S2iTDEKaWW/naVNLLSoufxW2aLYw9U/RrovrDmVM7uNCw8ua80mVr5tgUtfMayqLZWrZaKeF4bAiiM1W3WtVZHihlMHzQxSJkXTu99i6NbntYVmNUtqiXKVqL56VsRFjEZog8brJEXf45oZYZlV5EEnxyOrZh8nvnV78+WSuVj+ydPByeSxXY1UeK4nLaxubnYii1UNZ0dHT2tjTeoWvvoTnS1210AZb/AIC6xuNFd0npN+Pnpz6NzXL3Vqmjc2b9f9Oxvb1uG9qCkZEmalAa1ShSqV5JY45JxVpQyWWih/ZklWCER9h3T1N7T3tIK+xPVgoVpfnizc2B69P9j2sgnkEs1mxNKqMyRmaxIsQeT4lQySFodiRAQmBEBgUEBjMiQkMxIkJRMSJDMRMTExMTETE/fk3EBgVYAqQQQQCCCPBBB+iCPog/RHI9ZVdWR1DKwKsrAMrKw8FWB8gggkEEEEHweTIy/nb78zObr5+XuZ0WqVhVo6jUw7WukrGuuK67bLY0KsdxkBEZNnQxm7mLIm1s2LTsM4gs+h3RLOi1/wCHSrxPIZXzK11Ys5ize5lVTXa3DGST4jguRJGp9sQjUKBWDQ/EP0dv7r7P6m9RryztYl6/n60dfCdncvJGkZpSadWBmJCwUtStFAhEdZYY1RFiJq6uluaehs7DrOlq6rjGho6DlpXNOut2leyyxacyR23WmRmU/wCzM/X1H1HksVatajWr06cMdarVhjr14IlCRQwxKEjjRR9KqIoUD/Q5ZTOz6OTQp5eZVgo52dVgpUadaNYq9WrWjWKCCGNQFSOKNFRVH9Af5P3zoecjnM48cceOOPHHHjjjxxx4448cceOOPHHP/9k=') no-repeat; 24 | background-color: rgb(63,63,63); 25 | position: absolute; 26 | top: 0; 27 | left: 0; 28 | right: 0; 29 | width: 100% 30 | } 31 | 32 | .hljs::-webkit-scrollbar-corner { 33 | background: 0 0 34 | } 35 | 36 | .hljs table,.hljs td,.hljs th { 37 | border: none!important; 38 | background: #2d2d2d; 39 | line-height: 1.5; 40 | } 41 | 42 | .hljs tr:first-child hljs-line { 43 | padding-top: 10px 44 | } 45 | 46 | .hljs tr:last-child hljs-line { 47 | padding-bottom: 10px 48 | } 49 | 50 | .hljs-ln { 51 | margin-top: 27px 52 | } 53 | 54 | .hljs-ln-numbers { 55 | background: #414141!important; 56 | padding: 0!important; 57 | width: 30px!important; 58 | text-align: center!important; 59 | margin-left: 0!important; 60 | color: #c8c8c8 61 | } 62 | 63 | .hljs-ln-code { 64 | padding: 0 10px!important 65 | } 66 | 67 | .hljs-comment,.hljs-quote { 68 | color: #5c6370; 69 | font-style: italic 70 | } 71 | 72 | .hljs-doctag,.hljs-formula,.hljs-keyword { 73 | color: #c678dd 74 | } 75 | 76 | .hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst { 77 | color: #e06c75 78 | } 79 | 80 | .hljs-literal { 81 | color: #56b6c2 82 | } 83 | 84 | .hljs-addition,.hljs-attribute,.hljs-meta-string,.hljs-regexp,.hljs-string { 85 | color: #98c379 86 | } 87 | 88 | .hljs-built_in,.hljs-class .hljs-title { 89 | color: #e6c07b 90 | } 91 | 92 | .hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable { 93 | color: #d19a66 94 | } 95 | 96 | .hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title { 97 | color: #61aeee 98 | } 99 | 100 | .hljs-emphasis { 101 | font-style: italic 102 | } 103 | 104 | .hljs-strong { 105 | font-weight: 700 106 | } 107 | 108 | .hljs-link { 109 | text-decoration: underline 110 | } 111 | -------------------------------------------------------------------------------- /includes/comments.php: -------------------------------------------------------------------------------- 1 | authorId) { 4 | if ($comments->authorId == $comments->ownerId) { 5 | $commentClass .= ' comment-by-author'; //如果是文章作者的评论添加 .comment-by-author 样式 6 | } else { 7 | $commentClass .= ' comment-by-user'; //如果是评论作者的添加 .comment-by-user 样式 8 | } 9 | } 10 | $commentLevelClass = $comments->_levels > 0 ? ' comment-child' : ' comment-parent'; //评论层数大于0为子级,否则是父级 11 | ?> 12 | 51 | 52 | 53 |
    54 | comments()->to($comments); ?> 55 | fields->commentShow == 0)://如果显示评论列表 ?> 56 | have())://如果有评论 则显示 ?> 57 |
    58 |

    commentsNum(_t(gt('commentListTexts','commentNumNone')), _t(gta('commentListTexts','commentNum','1')), _t(gta('commentListTexts','commentNum','%d'))); ?>

    59 | listComments(array( 60 | 'before' => '
    ', 61 | 'after' => '
    ', 62 | 'avatarSize' => 200, 63 | 'dateFormat' => 'Y-m-d H:i' 64 | )); ?> 65 |
    66 | pageNav('', ''); ?> 67 |
    68 |
    69 | 70 | 71 | 72 | allow('comment')): ?>
    73 | 74 | 75 |
    76 | 77 | allow('comment')): ?> 78 |
    79 | 80 |
    81 | 82 | user->hasLogin()): ?> 83 | 84 |

    user->screenName(); ?>.

    85 | 86 | 87 | 88 |
    89 | 90 | options->commentsRequireMail): ?> required /> 91 | options->commentsRequireURL): ?> required /> 92 |
    93 | 94 | 95 |

    96 | 97 |

    98 |

    99 |

    100 |
    cancelReply(); ?>
    101 | 102 |

    103 |
    104 |
    105 | 106 | 107 |
    108 | 109 |
    110 |
    111 | options->commentsAntiSpam) { Comments::AntiSpam($this->respondId, Typecho_Common::shuffleScriptVar($this->security->getToken(preg_replace('/\??&?_pjax=[^&]+/i','',$this->request->getRequestUrl())))); } ?> 113 | -------------------------------------------------------------------------------- /assets/js/nprogress.js: -------------------------------------------------------------------------------- 1 | /* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress 2 | * @license MIT */ 3 | ;(function(root,factory){if(typeof define==='function'&&define.amd){define(factory)}else if(typeof exports==='object'){module.exports=factory()}else{root.NProgress=factory()}})(this,function(){var NProgress={};NProgress.version='0.2.0';var Settings=NProgress.settings={minimum:0.08,easing:'linear',positionUsing:'',speed:200,trickle:true,trickleSpeed:200,showSpinner:true,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:'body',template:'
    '};NProgress.configure=function(options){var key,value;for(key in options){value=options[key];if(value!==undefined&&options.hasOwnProperty(key))Settings[key]=value}return this};NProgress.status=null;NProgress.set=function(n){var started=NProgress.isStarted();n=clamp(n,Settings.minimum,1);NProgress.status=(n===1?null:n);var progress=NProgress.render(!started),bar=progress.querySelector(Settings.barSelector),speed=Settings.speed,ease=Settings.easing;progress.offsetWidth;queue(function(next){if(Settings.positionUsing==='')Settings.positionUsing=NProgress.getPositioningCSS();css(bar,barPositionCSS(n,speed,ease));if(n===1){css(progress,{transition:'none',opacity:1});progress.offsetWidth;setTimeout(function(){css(progress,{transition:'all '+speed+'ms linear',opacity:0});setTimeout(function(){NProgress.remove();next()},speed)},speed)}else{setTimeout(next,speed)}});return this};NProgress.isStarted=function(){return typeof NProgress.status==='number'};NProgress.start=function(){if(!NProgress.status)NProgress.set(0);var work=function(){setTimeout(function(){if(!NProgress.status)return;NProgress.trickle();work()},Settings.trickleSpeed)};if(Settings.trickle)work();return this};NProgress.done=function(force){if(!force&&!NProgress.status)return this;return NProgress.inc(0.3+0.5*Math.random()).set(1)};NProgress.inc=function(amount){var n=NProgress.status;if(!n){return NProgress.start()}else if(n>1){return}else{if(typeof amount!=='number'){if(n>=0&&n<0.2){amount=0.1}else if(n>=0.2&&n<0.5){amount=0.04}else if(n>=0.5&&n<0.8){amount=0.02}else if(n>=0.8&&n<0.99){amount=0.005}else{amount=0}}n=clamp(n+amount,0,0.994);return NProgress.set(n)}};NProgress.trickle=function(){return NProgress.inc()};(function(){var initial=0,current=0;NProgress.promise=function($promise){if(!$promise||$promise.state()==="resolved"){return this}if(current===0){NProgress.start()}initial++;current++;$promise.always(function(){current--;if(current===0){initial=0;NProgress.done()}else{NProgress.set((initial-current)/initial)}});return this}})();NProgress.render=function(fromStart){if(NProgress.isRendered())return document.getElementById('nprogress');addClass(document.documentElement,'nprogress-busy');var progress=document.createElement('div');progress.id='nprogress';progress.innerHTML=Settings.template;var bar=progress.querySelector(Settings.barSelector),perc=fromStart?'-100':toBarPerc(NProgress.status||0),parent=document.querySelector(Settings.parent),spinner;css(bar,{transition:'all 0 linear',transform:'translate3d('+perc+'%,0,0)'});if(!Settings.showSpinner){spinner=progress.querySelector(Settings.spinnerSelector);spinner&&removeElement(spinner)}if(parent!=document.body){addClass(parent,'nprogress-custom-parent')}parent.appendChild(progress);return progress};NProgress.remove=function(){removeClass(document.documentElement,'nprogress-busy');removeClass(document.querySelector(Settings.parent),'nprogress-custom-parent');var progress=document.getElementById('nprogress');progress&&removeElement(progress)};NProgress.isRendered=function(){return!!document.getElementById('nprogress')};NProgress.getPositioningCSS=function(){var bodyStyle=document.body.style;var vendorPrefix=('WebkitTransform'in bodyStyle)?'Webkit':('MozTransform'in bodyStyle)?'Moz':('msTransform'in bodyStyle)?'ms':('OTransform'in bodyStyle)?'O':'';if(vendorPrefix+'Perspective'in bodyStyle){return'translate3d'}else if(vendorPrefix+'Transform'in bodyStyle){return'translate'}else{return'margin'}};function clamp(n,min,max){if(nmax)return max;return n}function toBarPerc(n){return(-1+n)*100}function barPositionCSS(n,speed,ease){var barCSS;if(Settings.positionUsing==='translate3d'){barCSS={transform:'translate3d('+toBarPerc(n)+'%,0,0)'}}else if(Settings.positionUsing==='translate'){barCSS={transform:'translate('+toBarPerc(n)+'%,0)'}}else{barCSS={'margin-left':toBarPerc(n)+'%'}}barCSS.transition='all '+speed+'ms '+ease;return barCSS}var queue=(function(){var pending=[];function next(){var fn=pending.shift();if(fn){fn(next)}}return function(fn){pending.push(fn);if(pending.length==1)next()}})();var css=(function(){var cssPrefixes=['Webkit','O','Moz','ms'],cssProps={};function camelCase(string){return string.replace(/^-ms-/,'ms-').replace(/-([\da-z])/gi,function(match,letter){return letter.toUpperCase()})}function getVendorProp(name){var style=document.body.style;if(name in style)return name;var i=cssPrefixes.length,capName=name.charAt(0).toUpperCase()+name.slice(1),vendorName;while(i--){vendorName=cssPrefixes[i]+capName;if(vendorName in style)return vendorName}return name}function getStyleProp(name){name=camelCase(name);return cssProps[name]||(cssProps[name]=getVendorProp(name))}function applyCss(element,prop,value){prop=getStyleProp(prop);element.style[prop]=value}return function(element,properties){var args=arguments,prop,value;if(args.length==2){for(prop in properties){value=properties[prop];if(value!==undefined&&properties.hasOwnProperty(prop))applyCss(element,prop,value)}}else{applyCss(element,args[1],args[2])}}})();function hasClass(element,name){var list=typeof element=='string'?element:classList(element);return list.indexOf(' '+name+' ')>=0}function addClass(element,name){var oldList=classList(element),newList=oldList+name;if(hasClass(oldList,name))return;element.className=newList.substring(1)}function removeClass(element,name){var oldList=classList(element),newList;if(!hasClass(element,name))return;newList=oldList.replace(' '+name+' ',' ');element.className=newList.substring(1,newList.length-1)}function classList(element){return(' '+(element&&element.className||'')+' ').replace(/\s+/gi,' ')}function removeElement(element){element&&element.parentNode&&element.parentNode.removeChild(element)}return NProgress}); -------------------------------------------------------------------------------- /assets/css/main/comment.css: -------------------------------------------------------------------------------- 1 | @charset 'utf-8'; 2 | /* 3 | * Style of comments 4 | * Author: Eltrac 5 | * License: MIT 6 | */ 7 | /* 评论 */ 8 | .comment { 9 | margin-top: 40px; 10 | display: flex; 11 | flex-direction: column-reverse; 12 | } 13 | .comment .row { 14 | margin: -32px!important; 15 | } 16 | .comment-title { 17 | margin: 60px 0; 18 | margin-top: 100!important; 19 | font-size: 26px; 20 | text-align: center; 21 | } 22 | .comment-list,.comment-list li { 23 | list-style-type: none 24 | } 25 | .comment-list { 26 | margin-left: 0; 27 | } 28 | .comment-children { 29 | margin-left: 20px; 30 | } 31 | .comment-children .comment-list { 32 | margin: 0; 33 | } 34 | .comment-children .comment-body { 35 | margin: 15px 0; 36 | padding: 0; 37 | } 38 | .comment-body { 39 | margin: 28px 0; 40 | padding: 0; 41 | position: relative; 42 | } 43 | .comment-body-inner { 44 | display: flex; 45 | flex-wrap: nowrap; 46 | } 47 | .comment-main, 48 | .comment-author-avatar { 49 | margin: 0; 50 | padding: 0; 51 | } 52 | .comment-author-avatar img { 53 | border-radius: 10000px; 54 | height: 50px; 55 | width: 50px 56 | } 57 | .comment-author-info p { 58 | margin: 0; 59 | margin-top: 5px; 60 | color: gray; 61 | font-size: 15px 62 | } 63 | .comment-content p { 64 | color: #000; 65 | font-size: 16px; 66 | word-break: break-all; 67 | vertical-align: center; 68 | padding: 10px 16px; 69 | line-height: 1.5 70 | } 71 | .comment-content img { 72 | max-width: 100% 73 | } 74 | .comment-meta { 75 | font-size: 17px; 76 | margin-left: 25px!important; 77 | } 78 | .comment-author { 79 | font-size: 0.8em; 80 | background: rgb(240,240,240); 81 | border-radius: 3px; 82 | padding: 2px 3px; 83 | letter-spacing: 2px; 84 | transition: all 0.2s; 85 | } 86 | .comment-author:hover { 87 | background: rgb(235,235,235); 88 | } 89 | .bubble.comment-content { 90 | background: rgb(238,238,238); 91 | padding: 3px 8px; 92 | padding-right: 12px; 93 | padding-top: -3px; 94 | border-radius: 4px; 95 | min-width: 10px!important; 96 | margin-left: 25px; 97 | scroll-margin-top: 5em 98 | } 99 | .bubble.comment-content:before { 100 | border-right-color: rgb(238,238,238); 101 | } 102 | .bubble.comment-content:hover { 103 | transform: none; 104 | box-shadow: 0 0 0 #fff; 105 | -moz-box-shadow: 0 0 0 #fff; 106 | -webkit-box-shadow: 0 0 0 #fff; 107 | } 108 | .comment-by-author > .comment-body-inner > .comment-main > .comment-meta > .comment-date:before { 109 | color: gray; 110 | font-size: 0.8em; 111 | background: rgb(240,240,240); 112 | border-radius: 3px; 113 | padding: 2px 3px; 114 | letter-spacing: 2px; 115 | margin-right: 5px; 116 | } 117 | .comment-logined-sign { 118 | margin: 0; 119 | margin-left: -15px; 120 | } 121 | .at { 122 | margin-left: 0; 123 | color: gray; 124 | margin-right: -10px; 125 | } 126 | .comment-children .comment-content { 127 | padding: 15px 25px!important; 128 | } 129 | .comment-children .comment-content p { 130 | display: inline; 131 | } 132 | .comment-reply a { 133 | position: absolute; 134 | top: 5px; 135 | right: 4px; 136 | display: inline-block; 137 | font-size: 90%; 138 | border-radius: 2px; 139 | padding: 3px 4px; 140 | transition: color 0.2s; 141 | color: rgb(120,120,120); 142 | } 143 | .comment-reply a:hover { 144 | color: rgb(150,150,150) 145 | } 146 | /* 评论按钮 */ 147 | .comment-submit, 148 | .cancel-comment-reply a { 149 | display: inline-block; 150 | margin: 0; 151 | border-radius: 4px; 152 | border: none; 153 | background: rgb(237,237,237); 154 | padding: 10px 16px; 155 | cursor: pointer; 156 | transition: opacity .2s; 157 | margin-top: -14px; 158 | vertical-align: middle; 159 | float: right; 160 | transition: .2s; 161 | } 162 | .comment-submit:hover { 163 | background: rgb(227,227,227) 164 | } 165 | .cancel-comment-reply a { 166 | margin-left: 5px; 167 | background: #DD4B39; 168 | color: #fff!important 169 | } 170 | /* OwO */ 171 | .owo-img { 172 | height: 30px; 173 | vertical-align: middle; 174 | margin: 0 3px; 175 | display: inline!important 176 | } 177 | .OwO { 178 | margin: 0; 179 | display: inline-block; 180 | vertical-align: middle; 181 | } 182 | /* 评论表单 */ 183 | #comment-form { 184 | position: relative; 185 | padding: 26px; 186 | background: #fff; 187 | box-sizing: border-box; 188 | margin-bottom: 30px; 189 | } 190 | .comment-textarea { 191 | width: 100%; 192 | border: none; 193 | max-width: 100% 194 | } 195 | .comment-input input { 196 | display: block; 197 | width: 100%; 198 | border: none; 199 | resize: none; 200 | outline: none; 201 | padding: 10px 5px; 202 | transition: .2s; 203 | margin-top: 10px; 204 | } 205 | .comment-input input, 206 | .comment-textarea { 207 | background: none; 208 | outline: none; 209 | background-color: rgb(248,248,248); 210 | border-radius: 3px; 211 | padding: 8px 10px 212 | } 213 | 214 | #comment-form label { 215 | display: none 216 | } 217 | .comment-pagenav { 218 | margin-left: -40px; 219 | } 220 | .comment-pagenav li { 221 | list-style-type: none; 222 | display: inline-block; 223 | } 224 | .comment-pagenav li a { 225 | background: #fff; 226 | padding: 5px 13px; 227 | margin-right: 5px; 228 | box-shadow: 0 1px 4px #ccc; 229 | -moz-box-shadow: 0 1px 4px #ccc; 230 | -webkit-box-shadow: 0 1px 4px #ccc; 231 | transition: all .2s; 232 | } 233 | .comment-pagenav li a:hover { 234 | background: rgb(249,249,249); 235 | box-shadow: 0 1px 8px #ccc; 236 | -moz-box-shadow: 0 1px 8px #ccc; 237 | -webkit-box-shadow: 0 1px 8px #ccc; 238 | } 239 | .comment-pagenav-icon { 240 | margin: 0 -3px; 241 | } 242 | .comment-children { 243 | margin-left: 30px 244 | } 245 | .comment-children .comment-children { 246 | margin-left: 0!important 247 | } 248 | .comment-hidden { 249 | margin: 0; 250 | margin-top: 20px; 251 | background: #f1f1f1; 252 | padding: 20px; 253 | text-align: center; 254 | border-radius: 2px; 255 | } 256 | #response { 257 | text-align: center; 258 | margin-top: 60px; 259 | } 260 | .respond { 261 | margin: 10px 0; 262 | } 263 | 264 | /* ===== 从左到右淡入 ===== */ 265 | @keyframes fadein { 266 | 0% { 267 | opacity: 0; 268 | transform: translateX(5vh); 269 | } 270 | 271 | 100% { 272 | opacity: 1; 273 | transform: translateX(0); 274 | } 275 | } 276 | 277 | @-webkit-keyframes fadein { 278 | 0% { 279 | opacity: 0; 280 | transform: translateX(5vh); 281 | } 282 | 283 | 100% { 284 | opacity: 1; 285 | transform: translateX(0); 286 | } 287 | } 288 | 289 | .comment-animation-fadein { 290 | animation: fadein; 291 | animation-duration: 0.3s; 292 | -webkit-animation: fadein 0.3s; 293 | } 294 | 295 | /* 发送评论时评论框样式 */ 296 | .comment-form { 297 | transition: opacity .2s; 298 | } 299 | .comment-sending { 300 | opacity: 0.6; 301 | } -------------------------------------------------------------------------------- /docs/change-log.md: -------------------------------------------------------------------------------- 1 | # 更新日志 2 | 这里是 Miracles 主题的更新日志,每个发行版以及开发版的更新内容都会在这里记录,历史版本以及最新版本的下载请到 [Releases](https://github.com/BigCoke233/miracles/releases) 页面,若在使用中有任何问题,请在 issues 中提出或 Pull requests,感谢! 3 | 4 | ## Ver.1.5.4 Your best nightmare 5 | 6 | - 增加:适配夜间模式的图标 7 | 可在根目录下创建 faviconDark.ico,如果这个文件存在而系统又为深色模式的时候,就将 favicon 替换成这个文件 8 | - 优化:移动端下,追番项目一行显示两个 9 | - 优化:优化夜间模和日落模式 10 | - 优化:导航栏 :hover 毛玻璃效果优化 11 | - 移除:提交评论时小电视动画 12 | 13 | ## Ver.1.5.2 Slow Down 14 | 15 | - 增加:短链接 `[notice][/notice]`,相当于带有 role="note" 的 div 16 | - 增加:短链接 `[shadow][/shadow]`,在这个容器里的图片都会带上阴影 17 | - 增加:加入 GitHack CDN 作为静态资源加速选择(实际上是减速x) 18 | - 增加:小太提供的 9jojo CDN 作为静态资源加速选择 19 | - 增加:支持在设置中自定义 favicon 20 | - 增加:支持设置是否开启顶部导航栏收缩 21 | - 增加:后台设置自动检测更新 22 | - 增加:支持图题解析 23 | - 优化:平滑的锚点动画 24 | - 优化:文章章节链接的锚点链接改为读取标题内容 25 | - 优化:部分未能通过 CDN 调用的静态文件通过选择的 CDN 调用 26 | - 优化:为 owo 表情提供单独的懒加载动画 27 | - 优化:为友情链接头像提供单独的懒加载动画 28 | - 优化:夜间模式下文章二维码的背景色 29 | - 优化:降低导航栏的透明度 30 | - 修复:CDN 加速静态资源中选用 GitHack https 失效 31 | 32 | ## Ver.1.5.1 Oops 33 | 34 | - 增加:支持自定义懒加载动画 35 | - 增加:能够自定义 CDN,并增加 GitHack 作为~~凑数~~备用 CDN 36 | - 优化:移除无用的二维码 API 设置项 37 | - 优化:能够设置是否开启 Pangu.js 分割中英文 38 | - 优化:友情链接头像由 div 背景图改为 img 标签 39 | - 修复:建站时间无法正常输出 40 | 41 | ## Ver.1.5.0 To The Dream 42 | 43 | - 增加:Mac 风格代码块 44 | - 增加:支持日落模式 45 | - 增加:生成文章二维码,实现跨设备阅读 46 | - 增加:友情链接支持调用外部数据(json)(Helped by Kengwang) 47 | - 增加:发送评论时的加载动画 48 | - 增加:拓展 Markdown 语法,支持 kbd 标签(~键盘按键~) 49 | - 优化:页面内元素的 ARIA(即 Role 属性) 50 | - 优化:每篇文章固定缩略图,刷新不改变(Done by outtimes) 51 | - 优化:Snackbar 移动到中央(Done by outtimes) 52 | - 优化:使用更加轻量的默认文章封面,减小体积(Done by outtimes) 53 | - 优化:优化评论框样式 54 | - 优化:优化一些元素在夜间模式和日落模式下的显示 55 | - 优化:文章字数统计的输出判断 56 | - 优化:后台保存设置按钮移动到右侧固定 57 | - 优化:删除文章编辑页面无用的 CSS 58 | - 优化:一些细节 59 | - 修复:夜间模式下文章头图分类链接文字颜色错误 60 | - 修复:选择左侧抽屉栏时报错 61 | - 修复:关于页面社交按钮邮箱无法直接点击打开 62 | - 修复:关于页面邮箱地址无法直接打开 63 | - 修复:哀悼模式设置项失效 64 | - 修复:背景图片不居中的问题(Done by sizau) 65 | - 修复:后台设置无法备份 66 | 67 | ## Ver.1.4.3 Be gentle 68 | 69 | - 添加:可以自定义导航栏的项目 70 | - 优化:替换日间模式的图标 71 | - 优化:切换夜间模式时弹出更多的提示(包括自动切换) 72 | - 优化:移除每个页面多余的 owo 容器 73 | - 优化:加密 js 版权信息 74 | - 优化:加入删除版权信息的惩罚 75 | - 修复:追番页面内含有无 ep 的番剧时报错(Done by kengwang) 76 | - 修复:owo 表情在文章中排版错误 77 | - 修复:分享到 Twitter 时不显示图片 78 | - 修复:导航栏透明模式字体颜色的问题 79 | - 以及一些细节的优化 80 | 81 | ## Ver.1.4.2 Tasty 82 | 83 | - 增加:owo 表情,用短代码替换臃肿的 img 标签 84 | - 增加:后台编辑器添加 owo 表情按钮 85 | - 增加:后台设置自定义随机文章缩略图 86 | - 移除:`[bubble]`气泡短代码 87 | - 修复:文章有封面时,首页大图的超链接颜色为黑色 88 | - 修复:owo 表情在文章内占用了过多的边距 89 | - 修复:Pjax 跳转页面后,外部链接不在新窗口打开 90 | - 修复:左侧抽屉栏按钮失效 91 | - 修复:文章编辑器右侧 tab 样式错位 92 | - 修复:文章编辑器 slug 输入框 z-index 大于导航栏 93 | - 修复:非 https 无法加载追番图片(Done by kengwabg) 94 | - 修复:js 某些报错 95 | 96 | ## Ver.1.4.1 Fine 97 | 98 | - 优化:移动端下,大图中文章元信息分两行显示 99 | - 优化:Text-Color 短代码不再需要用引号框柱文本 100 | - 优化:小屏幕下 Tip 不显示图标 101 | - 修复:使用抽屉栏控制台报错 102 | - 修复:移除未实现的自定义字段 103 | - 修复:首页大图背景色在某些情况下失效 104 | - 修复:后台设置项分割线混乱 105 | 106 | ## Ver.1.4.0 Smooth 107 | 108 | - 增加:Ajax 评论无刷新(Done by ohmyga) 109 | - 增加:增加:追番页面(Done by kengwang, styled by Eltrac) 110 | - 优化:alertSend() 样式更改 111 | - 优化:取消首页大图背景色设置 112 | - 优化:卡片阴影减淡 113 | - 优化:取消回复按钮样式 114 | - 优化:移除前台设置面板 115 | - 优化:移除夜间模式在 PHP 层的判断 116 | - 优化:细化顶部导航毛玻璃效果 117 | - 优化:评论人链接新窗口打开 118 | - 优化:全站外部链接新窗口打开 119 | - 修复:后台哀悼模式失效 120 | - 修复:评论框不跟随(Done by ohmyga) 121 | - 修复:夜间模式下评论框文字黑色 122 | - 修复:评论区气泡尖角缺失 123 | - 修复:代码块左侧多余边距 124 | - 修复:Twitter 分享图片未定义 125 | 126 | ## Ver.1.3.2 Jesus! 127 | - 增加:章节链接 128 | - 优化:文章中一些元素的样式 129 | - 优化:后台撰写/编辑文章页面的样式 130 | - 优化:可以自定义抽屉栏和关于页面的头像链接了 131 | - 优化:取消 var(--theme-color) 在页面中的应用 132 | - 优化:顶部导航栏根据鼠标滑动方向显示/隐藏 133 | - 修复:一些环境下编辑页面后,页面消失 134 | - 修复:typecho 原生编辑器在小屏幕上按钮显示不完整 135 | - 修复:说说页面发布按钮样式错误 136 | 137 | ## Ver.1.3.1 Dumb Fix 138 | - 优化:只能使用[名称]{链接}(头像)+(简介)添加友链 139 | - 优化:删除评论数量统计的繁琐文字(None=>0, Only 1=>1) 140 | - 优化:评论区某些元素的边距和响应式设计 141 | - 优化:优化部分样式 142 | - 修复:部分新增元素在夜间模式下显示不正常 143 | - 修复:友情链接阴影错位 144 | 145 | ## Ver.1.3.0 New Age 146 | - 增加:文章阅读时长提示 147 | - 增加:文章分享功能 148 | - 增加:文章底部弹出式版权信息 149 | - 增加:登陆后提供显眼的进入后台按钮 150 | - 增加:说说页面 151 | - 增加:友情链接支持添加简介 152 | - 增加:建站时间,可在后台设置 153 | - 增加:可设置隐藏评论列表 154 | - 增加:新的短代码 —— ruby 和自定义字体颜色 155 | - 优化:可以设置顶部导航栏在顶部是否透明 156 | - 优化:即使页面不显示浏览次数,仍然统计 157 | - 优化:自动生成 CDN 引用,减小体积 158 | - 优化:文章卡片,PC 端和移动端合并 159 | - 优化:多个懒加载动画供选择 160 | - 优化:根据 MacOS/IOS 系统切换夜间模式 161 | - 优化:设置面板样式 162 | - 优化:搜索/标签/分类页面与首页一致 163 | - 优化:一些细节调整 164 | - 优化:重写了评论区样式 165 | - 优化:优化了评论区的提示信息 166 | - 优化:回复时 @ 上级评论人 167 | - 优化:修改 alertSend 的输出方式和样式,取消 auto 参数和手动关闭 168 | - 移除:内置 Live2D 169 | - 移除:独立页面文章时效性警告,文章仍然显示 170 | - 移除:首页公告功能 171 | 172 | ## Ver.1.2.4 Delicate 173 | - 新增:Tip Group 新的短代码([tip-group][/tip-group]把[tip]们连起来) 174 | - 新增:顶部导航栏毛玻璃效果 175 | - 新增:可以设置首页大图的背景色了(方便某些懒得找图的懒人 176 | - 新增:可以修改首页大图的字体颜色了(黑/白) 177 | - 新增:文章浏览次数,仅在文章/页面内页显示 178 | - 优化:鼠标悬浮至文章元信息图标时,显示详细信息 179 | - 优化:默认字体改为 100%(最小) 180 | - 优化:左侧抽屉栏滑出速度加快(0.4s) 181 | - 优化:某些细节的调整 182 | - 优化:返回顶部在接近页面顶部时不显示 183 | - 优化:首页大图图片居中 184 | - 修复:文章缩略图底部超出文章卡片 185 | 186 | ## Ver.1.2.3 Peace After Exploding 187 | - 修复:代码行号错误(in Ver.1.2.3.1 Myopia glasses) 188 | - 添加:自定义元信息 189 | - 添加:根据时间判断夜间模式(Beta) 190 | - 优化:文章卡片在平板电脑上的显示 191 | - 优化:固定文章卡片高度为 280px 192 | - 优化:archive(搜索/标签/分类页)的样式 193 | - 优化:尽力压缩图片体积 194 | - 修复:单行代码块不显示行号 195 | - 修复:移动端不显示自定义摘要 196 | - 修复:搜索按钮错位 197 | 198 | ## Ver.1.2.2 Goodbye 199 | - 添加:Pjax 淡入动画 200 | - 添加:更换代码高亮引擎为hightlight.js 201 | - 优化:下拉面板(搜索/登录)开启或关闭时,页面不会因为滚动条而抖动 202 | - 优化:子评论左侧对齐 203 | - 优化:themeInit()方法强制替换设置项,用Helper::options()方法替代查询数据库 204 | - 优化:未指定语言的代码块显示 205 | - 修复:代码块第一行最前方会有间隙 206 | - 修复:夜间模式下,文章标签显示有问题 207 | - 移除:压缩 html(因为时间不够了 2333) 208 | 209 | ## Ver.1.2.1 Clear 210 | - 添加:`alertSend()`有一个新参数 auto (boolean),决定弹出框是否自动关闭 211 | - 添加:控制台输出版权信息 212 | - 添加:密码保护文章的表单样式 213 | - 优化:左侧抽屉栏的自适应和样式微调 214 | - 优化:调整滚动条粗细,现在能被清楚地看到了 215 | - 优化:复制文本后弹出的版权提示能够自动关闭了 216 | - 优化:展开抽屉栏后,点击遮罩层就能关闭 217 | - 优化:舍弃 onclick 属性,改用事件监听器 218 | - 优化:移动端,页面跳转完毕后导航栏才会收起 219 | - 优化:只有首页才会弹出公告提示 220 | - 优化:压缩 html 页面 221 | - 移除:左侧抽屉栏的搜索框 222 | - 移除:是否固定导航栏设置 223 | - 移除:后台公告 224 | - 移除:说说功能(之后调整好可能会回归) 225 | - 调整:加载 Live2D 的语句移动到 `l2dwidget.min.js` 226 | - 修复:禁止滑动后自动返回顶部 227 | - 修复:一些元素在夜间模式下未正常显示 228 | - 修复:未使用 Live2D 时,控制台报错 229 | - 修复:没有评论的页面找不到 owo 容器,导致控制台报错 230 | 231 | ## Ver.1.2.0 Sky's Mirages 232 | - 添加:前台设置面板 233 | - 添加:内置两只可调戏的猫咪(https://www.jianshu.com/p/57a4deab12cc) 234 | - 添加:文章编写时间超过 90 天,显示“可能过期”的提示 235 | - 添加:左侧抽屉栏,可与顶部导航栏进行切换 236 | - 添加:关于页面自定义模板,支持社交按钮 237 | - 添加:进站公告提示 238 | - 添加:用户复制内容后,弹出信息提醒保留版权信息 239 | - 添加:自定义提示信息,用`alertSend("内容")`召唤信息栏 240 | - 优化:Cookies 储存夜间模式 241 | - 优化:全局自动分离英文/半角字符和中文,优化阅读体验(Pangu.js) 242 | - 优化:代码块最高高度为 80vh(屏幕高度的 80%) 243 | - 修复:文字卡片标题部分字母下半部分显示不完整 244 | - 修复:代码块行号不对齐 245 | - 修复:友链盒子两端未对齐 246 | - 修复:一些元素在夜间模式下未正常显示 247 | - 修复:CDN 静态资源加速启用后 css 及 js 404 248 | 249 | ## Ver.1.1.2 Preheat 250 | - 新增:可以在后台开启 CDN 静态资源加速(调用 JSdelivr) 251 | - 新增:“哀悼模式”,将网站变为黑白,Pray for 京阿尼 252 | - 新增:可以在后台切换 无衬线字体/衬线字体(调用 Google Fonts) 253 | - 新增:备份模板设置项功能(来自[QQ爹](https://qqdie.com)) 254 | - 新增:额外的 10 张随机缩略图 255 | - 优化:分离主题设置(Options.php)和其他函数(functions.php) 256 | - 优化:评论内容在不同分辨率下不同的字体大小 257 | - 优化:Meting 插件播放器在夜间模式下的显示 258 | - 优化:文章缩略图容易重复的问题 259 | - 优化:设置项分类+船新的设置页面样式 260 | - 修复:自定义 CSS 重复输出 261 | - 修复:之前更新一直没有修改版本号的问题 262 | 263 | ## Ver.1.1.1 The Kids Are Alright 264 | - 修复:博主评论的子评论全部变成蓝色背景标识的 BUG 265 | - 修复:Meting 插件无法正常解析的问题 266 | - 修复:评论分页样式缺失的 BUG 267 | - 修复:说说页面夜间模式下显示的问题 268 | - 修复:Pjax 跳转后无法进行登录(其实就是给了个刷新提示而已233) 269 | - 修复:小屏幕上子评论被挤成一条的问题(虽然还是丑得不能看) 270 | - 修复:回复评论会激活 Pjax 导致返回顶部的问题 271 | - 优化:规范了代码结构 272 | 273 | ## Ver.1.1.0 Various Ways 274 | - 新增:图片懒加载功能 275 | - 新增:“说说/动态”页面 276 | - 新增:一些便于排版的短代码(稍后更新 WIKI) 277 | - 新增:支持自定义文章摘要 278 | - 优化:分离移动端和电脑端导航栏 279 | - 优化:一些元素在夜间模式下的显示 280 | - 优化:船新的评论区样式 281 | - 优化:分离夜间模式 CSS 文件 282 | - 优化:现在 OwO 表情不会被压扁了 283 | - 优化:细调了某些元素的样式 284 | - 修复:呼出 FancyBox 自动返回顶部 285 | 286 | ## Ver.1.0.0 Set Sail! 287 | 288 | > 这里是梦开始的地方 289 | -------------------------------------------------------------------------------- /assets/js/pjax.jquery.js: -------------------------------------------------------------------------------- 1 | !function(t){function e(e,a,r){return r=m(a,r),this.on("click.pjax",e,function(e){var a=r;a.container||(a=t.extend({},r),a.container=t(this).attr("data-pjax")),n(e,a)})}function n(e,n,a){a=m(n,a);var i=e.currentTarget,o=t(i);if("A"!==i.tagName.toUpperCase())throw"$.fn.pjax or $.pjax.click requires an anchor element";if(!(e.which>1||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||location.protocol!==i.protocol||location.hostname!==i.hostname||i.href.indexOf("#")>-1&&h(i)==h(location)||e.isDefaultPrevented())){var c={url:i.href,container:o.attr("data-pjax"),target:i},s=t.extend({},c,a),u=t.Event("pjax:click");o.trigger(u,[s]),u.isDefaultPrevented()||(r(s),e.preventDefault(),o.trigger("pjax:clicked",[s]))}}function a(e,n,a){a=m(n,a);var i=e.currentTarget,o=t(i);if("FORM"!==i.tagName.toUpperCase())throw"$.pjax.submit requires a form element";var c={type:(o.attr("method")||"GET").toUpperCase(),url:o.attr("action"),container:o.attr("data-pjax"),target:i};if("GET"!==c.type&&void 0!==window.FormData)c.data=new FormData(i),c.processData=!1,c.contentType=!1;else{if(o.find(":file").length)return;c.data=o.serializeArray()}r(t.extend({},c,a)),e.preventDefault()}function r(e){function n(n,a,r){r||(r={}),r.relatedTarget=e.target;var i=t.Event(n,r);return c.trigger(i,a),!i.isDefaultPrevented()}e=t.extend(!0,{},t.ajaxSettings,r.defaults,e),t.isFunction(e.url)&&(e.url=e.url());var a=f(e.url).hash,i=t.type(e.container);if("string"!==i)throw"expected string value for 'container' option; got "+i;var c=e.context=t(e.container);if(!c.length)throw"the container selector '"+e.container+"' did not match anything";e.data||(e.data={}),t.isArray(e.data)?e.data.push({name:"_pjax",value:e.container}):e.data._pjax=e.container;var s;e.beforeSend=function(t,r){if("GET"!==r.type&&(r.timeout=0),t.setRequestHeader("X-PJAX","true"),t.setRequestHeader("X-PJAX-Container",e.container),!n("pjax:beforeSend",[t,r]))return!1;r.timeout>0&&(s=setTimeout(function(){n("pjax:timeout",[t,e])&&t.abort("timeout")},r.timeout),r.timeout=0);var i=f(r.url);a&&(i.hash=a),e.requestUrl=d(i)},e.complete=function(t,a){s&&clearTimeout(s),n("pjax:complete",[t,a,e]),n("pjax:end",[t,e])},e.error=function(t,a,r){var i=g("",t,e),c=n("pjax:error",[t,a,r,e]);"GET"==e.type&&"abort"!==a&&c&&o(i.url)},e.success=function(i,s,u){var p=r.state,d="function"==typeof t.pjax.defaults.version?t.pjax.defaults.version():t.pjax.defaults.version,h=u.getResponseHeader("X-PJAX-Version"),m=g(i,u,e),v=f(m.url);if(a&&(v.hash=a,m.url=v.href),d&&h&&d!==h)return void o(m.url);if(!m.contents)return void o(m.url);r.state={id:e.id||l(),url:m.url,title:m.title,container:e.container,fragment:e.fragment,timeout:e.timeout},(e.push||e.replace)&&window.history.replaceState(r.state,m.title,m.url);var x=t.contains(c,document.activeElement);if(x)try{document.activeElement.blur()}catch(t){}m.title&&(document.title=m.title),n("pjax:beforeReplace",[m.contents,e],{state:r.state,previousState:p}),c.html(m.contents);var j=c.find("input[autofocus], textarea[autofocus]").last()[0];j&&document.activeElement!==j&&j.focus(),y(m.scripts);var w=e.scrollTo;if(a){var b=decodeURIComponent(a.slice(1)),T=document.getElementById(b)||document.getElementsByName(b)[0];T&&(w=t(T).offset().top)}"number"==typeof w&&t(window).scrollTop(w),n("pjax:success",[i,s,u,e])},r.state||(r.state={id:l(),url:window.location.href,title:document.title,container:e.container,fragment:e.fragment,timeout:e.timeout},window.history.replaceState(r.state,document.title)),u(r.xhr),r.options=e;var h=r.xhr=t.ajax(e);return h.readyState>0&&(e.push&&!e.replace&&(j(r.state.id,[e.container,p(c)]),window.history.pushState(null,"",e.requestUrl)),n("pjax:start",[h,e]),n("pjax:send",[h,e])),r.xhr}function i(e,n){var a={url:window.location.href,push:!1,replace:!0,scrollTo:!1};return r(t.extend(a,m(e,n)))}function o(t){window.history.replaceState(null,"",r.state.url),window.location.replace(t)}function c(e){P||u(r.xhr);var n,a=r.state,i=e.state;if(i&&i.container){if(P&&C==i.url)return;if(a){if(a.id===i.id)return;n=a.id",{method:"GET"===a?"GET":"POST",action:n,style:"display:none"});"GET"!==a&&"POST"!==a&&r.append(t("",{type:"hidden",name:"_method",value:a.toLowerCase()}));var i=e.data;if("string"==typeof i)t.each(i.split("&"),function(e,n){var a=n.split("=");r.append(t("",{type:"hidden",name:a[0],value:a[1]}))});else if(t.isArray(i))t.each(i,function(e,n){r.append(t("",{type:"hidden",name:n.name,value:n.value}))});else if("object"==typeof i){var o;for(o in i)r.append(t("",{type:"hidden",name:o,value:i[o]}))}t(document.body).append(r),r.submit()}function u(e){e&&e.readyState<4&&(e.onreadystatechange=t.noop,e.abort())}function l(){return(new Date).getTime()}function p(e){var n=e.clone();return n.find("script").each(function(){this.src||t._data(this,"globalEval",!1)}),n.contents()}function d(t){return t.search=t.search.replace(/([?&])(_pjax|_)=[^&]*/g,"").replace(/^&/,""),t.href.replace(/\?($|#)/,"$1")}function f(t){var e=document.createElement("a");return e.href=t,e}function h(t){return t.href.replace(/#.*/,"")}function m(e,n){return e&&n?(n=t.extend({},n),n.container=e,n):t.isPlainObject(e)?e:{container:e}}function v(t,e){return t.filter(e).add(t.find(e))}function x(e){return t.parseHTML(e,document,!0)}function g(e,n,a){var r={},i=/]*>([\s\S.]*)<\/body>/i)[0]));var u=e.match(/]*>([\s\S.]*)<\/head>/i);c=null!=u?t(x(u[0])):s}else c=s=t(x(e));if(0===s.length)return r;if(r.title=v(c,"title").last().text(),a.fragment){var l=s;"body"!==a.fragment&&(l=v(l,a.fragment).first()),l.length&&(r.contents="body"===a.fragment?l:l.contents(),r.title||(r.title=l.attr("title")||l.data("title")))}else i||(r.contents=s);return r.contents&&(r.contents=r.contents.not(function(){return t(this).is("title")}),r.contents.find("title").remove(),r.scripts=v(r.contents,"script[src]").remove(),r.contents=r.contents.not(r.scripts)),r.title&&(r.title=t.trim(r.title)),r}function y(e){if(e){var n=t("script[src]");e.each(function(){var e=this.src,a=n.filter(function(){return this.src===e});if(!a.length){var r=document.createElement("script"),i=t(this).attr("type");i&&(r.type=i),r.src=t(this).attr("src"),document.head.appendChild(r)}})}}function j(t,e){D[t]=e,U.push(t),b(R,0),b(U,r.defaults.maxCacheLength)}function w(t,e,n){var a,i;D[e]=n,"forward"===t?(a=U,i=R):(a=R,i=U),a.push(e),e=i.pop(),e&&delete D[e],b(a,r.defaults.maxCacheLength)}function b(t,e){for(;t.length>e;)delete D[t.shift()]}function T(){return t("meta").filter(function(){var e=t(this).attr("http-equiv");return e&&"X-PJAX-VERSION"===e.toUpperCase()}).attr("content")}function E(){t.fn.pjax=e,t.pjax=r,t.pjax.enable=t.noop,t.pjax.disable=S,t.pjax.click=n,t.pjax.submit=a,t.pjax.reload=i,t.pjax.defaults={timeout:650,push:!0,replace:!1,type:"GET",dataType:"html",scrollTo:0,maxCacheLength:20,version:T},t(window).on("popstate.pjax",c)}function S(){t.fn.pjax=function(){return this},t.pjax=s,t.pjax.enable=E,t.pjax.disable=t.noop,t.pjax.click=t.noop,t.pjax.submit=t.noop,t.pjax.reload=function(){window.location.reload()},t(window).off("popstate.pjax",c)}var P=!0,C=window.location.href,A=window.history.state;A&&A.container&&(r.state=A),"state"in window.history&&(P=!1);var D={},R=[],U=[];t.event.props&&t.inArray("state",t.event.props)<0?t.event.props.push("state"):"state"in t.Event.prototype||t.event.addProp("state"),t.support.pjax=window.history&&window.history.pushState&&window.history.replaceState&&!navigator.userAgent.match(/((iPod|iPhone|iPad).+\bOS\s+[1-4]\D|WebApps\/.+CFNetwork)/),t.support.pjax?E():S()}(jQuery); -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![](banner.png) 2 | 3 |

    4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |

    记录你心中的奇迹,书写你自己的篇章

    12 | 13 | --- 14 | 15 | ## 停更说明 16 | 17 | ~~Miracles 目前已经停止更新,除非有严重的 bug,这个版本基本是不会再维护了。~~ 18 | 19 | **2022/11/14 更新说明**:因为发现还有人用所以就稍微更新了一下,但没有发布正式版。主要内容是修复 bug 和移除一些不必要的功能,同时替换了 Alertify,使用 [Toaster](https://github.com/BigCoke233/toaster.js) 20 | 21 | 如果你感兴趣的话,可以支持一下我的[新主题 Matcha](https://github.com/BigCoke233/matcha)。 22 | 23 | --- 24 | 25 | ## 🎨 特色 26 | 27 | - 响应式 / 自适应设计 28 | - Pjax 全站无刷新 29 | - Ajax 评论无刷新 30 | - 支持系统切换夜间模式 31 | - 调用 bilibili API 显示追番页面 32 | - 前台登录 33 | - 图片懒加载 34 | - 代码高亮 / 行号 35 | - 不错的兼容性 36 | - 夜间模式下的 Pio 插件按钮样式 37 | - 夜间模式下的 Aplayer 播放器 38 | - Bilibili 外链长宽比例 39 | - 良好的阅读体验 40 | - 阅读时长估计 41 | - 字数统计 42 | - 两种可供选择的字体(思源宋体/黑体) 43 | - 不错的自定义性能 44 | - 两种可供选择的导航栏 45 | - 多种图片懒加载动画供选择 46 | - 黑白滤镜(哀悼模式) 47 | - 灵活的友情链接功能 48 | - 方便排版的短代码 49 | - 后台设置备份 50 | 51 | ### 预览 52 | 53 | [作者博客](https://guhub.cn/) | [Miracles 常用页面元素示例](https://guhub.cn/miracles-content-style-demo.html) 54 | 55 | ## 🚀 使用 56 | 57 | 1. Star 本项目(遵循 SATA-BNP 开源协议) 58 | 2. 下载**最新的 [Release](https://github.com/BigCoke233/miracles/releases)** 59 | 3. 确保自身 PHP 环境在 7.1.0 及以上版本,并装有 CURL 拓展(否则一些功能无法正常使用) 60 | 4. 解压后,**确认目录名为`Miracles`(M 大写)** 61 | 5. 将文件夹放入 Typecho 根目录下的`usr/themes/` 62 | 6. 到后台-外观-可用的主题中,启用主题 63 | 7. **根据 [wiki](docs/wiki.md)** 配置主题 64 | 65 |
    使用开发版
    66 | 67 | 直接下载仓库,或者使用 git 命令行进行克隆。 68 | ```git 69 | $ git clone https://github.com/BigCoke233/miracles.git 70 | ``` 71 | > 不推荐使用开发版,因为可能有不确定的不稳定因素,并且不一定有有利改动
    如果你使用开发版出现任何问题,欢迎通过 issue 反馈,在等待回复期间请使用发行版 72 | 73 |
    74 |
    遇到问题
    75 | 76 | 如果在使用过程中遇到了任何问题,可以先阅读本主题的 [Wiki](docs/wiki.md),并进行一些简单的确认:清理浏览器缓存,更换网络环境,确保 Console 内没有提示访问不到文件等自身原因。如果你无法靠自己解决问题,可以尝试联系作者,但记住**开发者没有为你解决问题的义务,只是出于好心的帮助。** 77 | 在确认你遇到的现象确实是一个 Bug 后,请在 [Issues](https://github.com/BigCoke233/miracles/issues) 提交问题,并为该问题尽可能的描述清楚,按照提供的 issue 模板进行填写,谢谢配合。 78 | 79 |
    80 |
    关于版权
    81 | 82 | 主题基于 SATA-BNP 协议开源,使用前你需要给这个项目点一个 Star,使用或转发时**请保留版权信息**,禁止倒卖。若需二次开发后发布,请邮件通知我`hi#guhub.cn`,并保留原作者版权信息及仓库链接。在最近(2020-5-28),我将 SATA 协议修改为了 SATA-BNP 协议,即不能将软件用作任何政治相关的用途,特别是政治宣传,但是按原文转载相关政治家的书籍、文章,不含有任何倾向的解读也是可以接受的。同时,如果发现有侵权行为,请告知我,屡教不改者将被列入[黑名单](docs/black-list.md),删除版权的用户不会在遇到问题时受到来自作者的帮助,在后期可能会加入删除版权网站设置项失效的惩罚。 83 | 84 |
    85 | 86 | ### 更新日志 87 | 88 | **Ver.1.6.0 Your best nightmare** 89 | 90 | - 新增:支持自定义「导航栏图标按钮」 91 | - 新增:文章目录(使用 {:toc:} 在文中插入目录) 92 | - 新增:归档页面中添加「文章分类」栏目 93 | - 新增:支持快速写入`
    `的短代码,并使用垫片优化兼容性 94 | - 新增:加入 html 压缩 95 | - 新增:多语言功能 96 | - 新增:兼容 typecho 评论反垃圾 97 | - 新增:高级设置 98 | - 新增:可选择主题字体 CDN 了 99 | - 新增:可以使用 TimThumb 裁剪文章缩略图了(需要在高级设置 themeConfig.php 里打开) 100 | - 优化:夜间模式下,notice 块的背景色 101 | - 优化:导航栏毛玻璃效果调整 102 | - 优化:导航栏透明度调整 103 | - 优化:将 kbd 的短代吗语法修改为 [[kbd]] 104 | - 优化:用 canvas 替换代码块的 mac 按钮图片 105 | - 优化:鼠标移动到文章卡片标题上时显示完整标题 106 | - 优化:将 FancyBox 和 Lazyload 替换为 gazeimg 107 | - 优化:归档页面,折叠往年的文章列表 108 | - 优化:用 localStorage 储存 theme,代替 cookie [#57](https://github.com/BigCoke233/miracles/issues/57) 109 | - 优化:在 php 层检测 faviconDark,避免前台出现 404 报错 110 | - 优化:模板设置备份中,判断 $_POST['type'] 存在后再进行备份处理,防止不必要的报错和其他风险 111 | - 优化:归档页面 meta 元信息 112 | - 优化:改进番剧页面(Done by Kengwang) 113 | - 优化:将 title 改为 hint.css 提供的 tooltip 114 | - 优化:将鼠标悬停在文章元信息上时,会显示对应的 tooltip 115 | - 优化:用 alertify.js 替换自己的提示框 116 | - 优化:页面/文章评论列表隐藏时,不显示评论数 117 | - 优化:将设置项「Pjax 完成后执行事件」更改为更准确的「Pjax 回调函数」 118 | - 修复:一个存在了超久的拼写错误(paresNav=>parseNav) 119 | - 修复:archive 页面(即分类、标签、搜索等)文章头图问题 120 | - 修复:暴力解决访问密码文章时被 pjax 强制刷新的问题 121 | - 修复:评论区 owo 表情换行 122 | - 修复:标签、分类页面不显示文章缩略图 123 | - 修复:删除不必要的判断 124 | - 修复:自定义随机图失效 125 | - 修复:解决随机颜文字可能报错的问题 126 | - 修复:评论列表缺失 #comments id 127 | 128 | > 所有历史版本的更新日志请查看[这里](docs/change-log.md) 129 | 130 | ## 📝 计划 131 | 132 | - [x] 优化:用 localStorage 替换储存夜间/日落模式等的 cookie 133 | - [x] 新增:支持快速写入`
    `的短代码,并使用[垫片](https://github.com/javan/details-element-polyfill)优化兼容性 134 | - [x] 新增:添加语言包功能,通过 php 数组储存各个语言版本的文字 135 | - [x] 优化:文章缩略图自动剪裁 136 | - [x] 优化:页面/文章评论列表隐藏时,不显示评论数 137 | - [x] 优化:支持用 jsDelivr 加速主题内置图片的速度 138 | - [ ] 增加:内置站点缓存规则 139 | - [ ] 优化:「说说页面」的样式 140 | - [ ] 新增:图片横向排版「相册功能」(参考:https://blog.imalan.cn/archives/282/) 141 | - [ ] 新增:全站加密功能 142 | - [ ] 新增:支持 PWA - 渐进式 Web 应用 143 | - [ ] 新增:嵌入 GitHub 仓库 / 用户(以卡片形式展示) 144 | - [ ] 新增:根据 cid 嵌入本站文章(以卡片形式展示) 145 | - [ ] 新增:文章目录 146 | - [ ] 优化:密码提示(可在加密文章中自定义对密码的提示) 147 | - [ ] 新增:全站公告 148 | - [ ] 优化:对日间模式/日落模式/夜间模式的切换通过下拉面板操作,并支持禁用主题跟随系统设置 149 | - [ ] 新增:导航支持下拉面板 150 | - [ ] 优化:优化夜间模式的切换机制 151 | 152 | ## 💖 鸣谢 153 | 154 | > 这些都是在开发过程中给予我帮助的项目和大佬! 155 | 156 | ### 开源项目 157 | 158 | - [jQuery](https://github.com/jquery/jquery) - 若干开源项目和主题内一些 js 的前置 159 | - [Highlight.js](https://github.com/highlightjs/highlight.js) - 代码高亮 160 | - [Hightlight-line-numbers](https://github.com/wcoder/highlightjs-line-numbers.js) - 代码行号 161 | - [Pjax](https://github.com/defunkt/jquery-pjax) - Pjax 预加载 162 | - [Nprogress](https://github.com/rstacruz/nprogress) - Pjax 滚动条动画 163 | - [OwO](https://github.com/DIYgod/OwO) - 评论 OwO 表情 164 | - [Pangu.js](https://github.com/vinta/pangu.js) -分割中英文字符 165 | - [Normalize.css](http://necolas.github.io/normalize.css/) - 保证不同浏览器上各元素 css 默认效果相同 166 | - [qrcode.js](https://github.com/davidshimjs/qrcodejs) - 生成文章二维码 167 | - [gazeimg](https://github.com/ganxiaozhe/gazeimg) - 图片懒加载 & 灯箱 168 | - [details-element-polyfill](https://github.com/javan/details-element-polyfill) - 优化 details 标签兼容性 169 | - [hint.css](https://kushagra.dev/lab/hint/) - 工具提示 Tooltip 170 | - [toaster.js](https://github.com/BigCoke233/toaster.js/) - Toast 提示框 171 | ~~- [alertify](https://github.com/MohammadYounes/AlertifyJS) - 对话框和 snackbar(notifier)~~ 172 | - [TableContents](https://github.com/lutdev/table-contents) - 生成文章目录 173 | - ~~[LazyLoad](https://github.com/tuupola/lazyload) - 图片懒加载~~(开发版已用新的方案替换) 174 | - ~~[FancyBox](https://github.com/fancyapps/fancybox) - 文章图片灯箱~~(开发版已用新的方案替换) 175 | 176 | ### 贡献者 177 | 178 | 这里只列出贡献「相对较大」的贡献者,所有的贡献者名单请到[这里](https://github.com/BigCoke233/miracles/graphs/contributors)查看 179 | 180 | | 贡献者 | 贡献内容 | 181 | | ------ | ------- | 182 | | [@BigCoke233 (Eltrac)](https://github.com/BigCoke233) | 原作者 / 主要维护者 | 183 | | [@outtimes](https://github.com/outtimes) | 提供各种有用的功能 | 184 | | [@ohmyga233](https://github.com/ohmyga233) | 实现 Ajax 评论无刷新 | 185 | | [@kengwang](https://github.com/kengwang) | 提供追番页面 | 186 | 187 | ### 参考 188 | 189 | [VOID](https://github.com/AlanDecode/Typecho-Theme-VOID) | [Castle](https://github.com/ohmyga233/castle-Typecho-Theme) | [Holakit](https://github.com/wenxuanjun/Holakit) | [Material](https://github.com/idawnlight/typecho-theme-material) | [Mirages](https://get233.com/archives/mirages-intro.html) 190 | 191 | ## 🔮 相关 192 | 193 | 演示站点:~~[我的博客](https://guhub.cn)~~(博客是第二代版本) 194 | 介绍文章:[Miracles —— 生为奇迹](https://guhub.cn/p/miracles.html) 195 | 说明文档:[Wiki.md](docs/wiki.md) | [Notion(被墙了,故停止维护)](https://www.notion.so/eltrac/c7c631e21b3345caa2a09bd2fb5dd4b2) 196 | 更新日志:[change-log.md](docs/change-log.md) 197 | 侵权网站:[black-list.md](docs/black-list.md) 198 | 199 | ## 🎁 捐助 200 | 201 | 你可以通过[爱发电](https://afdian.net/@Eltrac)向我投食,~~用金钱催更~~;或是在 [Open Collective](https://opencollective.com/miracles) 上为 Miracles 进行捐献 202 | 又或者是用支付宝扫码支付,感谢投食,~~据说砸得越多更新越快~~~ 203 | 204 | 205 | 206 | --- 207 | 208 | Copyright © 2019-2020 [Eltrac](https://github.com/BigCoke233), released under [SATA-BNP License](https://github.com/BigCoke233/miracles/blob/master/LICENSE). 209 | -------------------------------------------------------------------------------- /assets/js/details-element-polyfill.js: -------------------------------------------------------------------------------- 1 | /* 2 | Details Element Polyfill 2.4.0 3 | Copyright © 2019 Javan Makhmali 4 | */ 5 | (function() { 6 | "use strict"; 7 | var element = document.createElement("details"); 8 | var elementIsNative = typeof HTMLDetailsElement != "undefined" && element instanceof HTMLDetailsElement; 9 | var support = { 10 | open: "open" in element || elementIsNative, 11 | toggle: "ontoggle" in element 12 | }; 13 | var styles = '\ndetails, summary {\n display: block;\n}\ndetails:not([open]) > *:not(summary) {\n display: none;\n}\nsummary::before {\n content: "►";\n padding-right: 0.3rem;\n font-size: 0.6rem;\n cursor: default;\n}\n[open] > summary::before {\n content: "▼";\n}\n'; 14 | var _ref = [], forEach = _ref.forEach, slice = _ref.slice; 15 | if (!support.open) { 16 | polyfillStyles(); 17 | polyfillProperties(); 18 | polyfillToggle(); 19 | polyfillAccessibility(); 20 | } 21 | if (support.open && !support.toggle) { 22 | polyfillToggleEvent(); 23 | } 24 | function polyfillStyles() { 25 | document.head.insertAdjacentHTML("afterbegin", ""); 26 | } 27 | function polyfillProperties() { 28 | var prototype = document.createElement("details").constructor.prototype; 29 | var setAttribute = prototype.setAttribute, removeAttribute = prototype.removeAttribute; 30 | var open = Object.getOwnPropertyDescriptor(prototype, "open"); 31 | Object.defineProperties(prototype, { 32 | open: { 33 | get: function get() { 34 | if (this.tagName == "DETAILS") { 35 | return this.hasAttribute("open"); 36 | } else { 37 | if (open && open.get) { 38 | return open.get.call(this); 39 | } 40 | } 41 | }, 42 | set: function set(value) { 43 | if (this.tagName == "DETAILS") { 44 | return value ? this.setAttribute("open", "") : this.removeAttribute("open"); 45 | } else { 46 | if (open && open.set) { 47 | return open.set.call(this, value); 48 | } 49 | } 50 | } 51 | }, 52 | setAttribute: { 53 | value: function value(name, _value) { 54 | var _this = this; 55 | var call = function call() { 56 | return setAttribute.call(_this, name, _value); 57 | }; 58 | if (name == "open" && this.tagName == "DETAILS") { 59 | var wasOpen = this.hasAttribute("open"); 60 | var result = call(); 61 | if (!wasOpen) { 62 | var summary = this.querySelector("summary"); 63 | if (summary) summary.setAttribute("aria-expanded", true); 64 | triggerToggle(this); 65 | } 66 | return result; 67 | } 68 | return call(); 69 | } 70 | }, 71 | removeAttribute: { 72 | value: function value(name) { 73 | var _this2 = this; 74 | var call = function call() { 75 | return removeAttribute.call(_this2, name); 76 | }; 77 | if (name == "open" && this.tagName == "DETAILS") { 78 | var wasOpen = this.hasAttribute("open"); 79 | var result = call(); 80 | if (wasOpen) { 81 | var summary = this.querySelector("summary"); 82 | if (summary) summary.setAttribute("aria-expanded", false); 83 | triggerToggle(this); 84 | } 85 | return result; 86 | } 87 | return call(); 88 | } 89 | } 90 | }); 91 | } 92 | function polyfillToggle() { 93 | onTogglingTrigger(function(element) { 94 | element.hasAttribute("open") ? element.removeAttribute("open") : element.setAttribute("open", ""); 95 | }); 96 | } 97 | function polyfillToggleEvent() { 98 | if (window.MutationObserver) { 99 | new MutationObserver(function(mutations) { 100 | forEach.call(mutations, function(mutation) { 101 | var target = mutation.target, attributeName = mutation.attributeName; 102 | if (target.tagName == "DETAILS" && attributeName == "open") { 103 | triggerToggle(target); 104 | } 105 | }); 106 | }).observe(document.documentElement, { 107 | attributes: true, 108 | subtree: true 109 | }); 110 | } else { 111 | onTogglingTrigger(function(element) { 112 | var wasOpen = element.getAttribute("open"); 113 | setTimeout(function() { 114 | var isOpen = element.getAttribute("open"); 115 | if (wasOpen != isOpen) { 116 | triggerToggle(element); 117 | } 118 | }, 1); 119 | }); 120 | } 121 | } 122 | function polyfillAccessibility() { 123 | setAccessibilityAttributes(document); 124 | if (window.MutationObserver) { 125 | new MutationObserver(function(mutations) { 126 | forEach.call(mutations, function(mutation) { 127 | forEach.call(mutation.addedNodes, setAccessibilityAttributes); 128 | }); 129 | }).observe(document.documentElement, { 130 | subtree: true, 131 | childList: true 132 | }); 133 | } else { 134 | document.addEventListener("DOMNodeInserted", function(event) { 135 | setAccessibilityAttributes(event.target); 136 | }); 137 | } 138 | } 139 | function setAccessibilityAttributes(root) { 140 | findElementsWithTagName(root, "SUMMARY").forEach(function(summary) { 141 | var details = findClosestElementWithTagName(summary, "DETAILS"); 142 | summary.setAttribute("aria-expanded", details.hasAttribute("open")); 143 | if (!summary.hasAttribute("tabindex")) summary.setAttribute("tabindex", "0"); 144 | if (!summary.hasAttribute("role")) summary.setAttribute("role", "button"); 145 | }); 146 | } 147 | function eventIsSignificant(event) { 148 | return !(event.defaultPrevented || event.ctrlKey || event.metaKey || event.shiftKey || event.target.isContentEditable); 149 | } 150 | function onTogglingTrigger(callback) { 151 | addEventListener("click", function(event) { 152 | if (eventIsSignificant(event)) { 153 | if (event.which <= 1) { 154 | var element = findClosestElementWithTagName(event.target, "SUMMARY"); 155 | if (element && element.parentNode && element.parentNode.tagName == "DETAILS") { 156 | callback(element.parentNode); 157 | } 158 | } 159 | } 160 | }, false); 161 | addEventListener("keydown", function(event) { 162 | if (eventIsSignificant(event)) { 163 | if (event.keyCode == 13 || event.keyCode == 32) { 164 | var element = findClosestElementWithTagName(event.target, "SUMMARY"); 165 | if (element && element.parentNode && element.parentNode.tagName == "DETAILS") { 166 | callback(element.parentNode); 167 | event.preventDefault(); 168 | } 169 | } 170 | } 171 | }, false); 172 | } 173 | function triggerToggle(element) { 174 | var event = document.createEvent("Event"); 175 | event.initEvent("toggle", false, false); 176 | element.dispatchEvent(event); 177 | } 178 | function findElementsWithTagName(root, tagName) { 179 | return (root.tagName == tagName ? [ root ] : []).concat(typeof root.getElementsByTagName == "function" ? slice.call(root.getElementsByTagName(tagName)) : []); 180 | } 181 | function findClosestElementWithTagName(element, tagName) { 182 | if (typeof element.closest == "function") { 183 | return element.closest(tagName); 184 | } else { 185 | while (element) { 186 | if (element.tagName == tagName) { 187 | return element; 188 | } else { 189 | element = element.parentNode; 190 | } 191 | } 192 | } 193 | } 194 | })(); -------------------------------------------------------------------------------- /assets/css/main/col.css: -------------------------------------------------------------------------------- 1 | @charset 'utf-8'; 2 | /* 3 | * The column 4 | * Author: Bootstrap 5 | * Modifier: Eltrac 6 | * License: MIT 7 | */ 8 | .container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.main-container{margin:0 auto}@media (min-width:576px){.main-container{max-width:540px}}@media (min-width:768px){.main-container{max-width:720px}}@media (min-width:992px){.main-container{max-width:940px}}@media (min-width:1200px){.main-container{max-width:960px}} -------------------------------------------------------------------------------- /assets/js/cmt.miracles.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ajax Comment 3 | * Last Update: 2020/02/26 4 | */ 5 | 6 | 7 | /** 8 | * Tmp 9 | */ 10 | var dataTmp = { 11 | comments: {} 12 | }; 13 | 14 | 15 | /** 16 | * 评论部分 17 | */ 18 | var MiraclesComment = { 19 | //评论核心函数 20 | core: function() { 21 | var commentID = $('.comment-box-id').attr('id'); 22 | window.TypechoComment = { 23 | dom : function (id) { 24 | return document.getElementById(id); 25 | }, 26 | 27 | create : function (tag, attr) { 28 | var el = document.createElement(tag); 29 | 30 | for (var key in attr) { 31 | el.setAttribute(key, attr[key]); 32 | } 33 | 34 | return el; 35 | }, 36 | 37 | reply : function (cid, coid) { 38 | var comment = this.dom(cid), parent = comment.parentNode, 39 | response = this.dom(commentID), input = this.dom('comment-parent'), 40 | form = 'form' == response.tagName ? response : response.getElementsByTagName('form')[0], 41 | textarea = response.getElementsByTagName('textarea')[0]; 42 | 43 | if (null == input) { 44 | input = this.create('input', { 45 | 'type' : 'hidden', 46 | 'name' : 'parent', 47 | 'id' : 'comment-parent' 48 | }); 49 | 50 | form.appendChild(input); 51 | } 52 | input.setAttribute('value', coid); 53 | 54 | if (null == this.dom('comment-form-place-holder')) { 55 | var holder = this.create('div', { 56 | 'id' : 'comment-form-place-holder' 57 | }); 58 | 59 | response.parentNode.insertBefore(holder, response); 60 | } 61 | 62 | comment.appendChild(response); 63 | this.dom('cancel-comment-reply-link').style.display = ''; 64 | 65 | if (null != textarea && 'text' == textarea.name) { 66 | textarea.focus(); 67 | } 68 | 69 | return false; 70 | }, 71 | 72 | cancelReply : function () { 73 | var response = this.dom(commentID), 74 | holder = this.dom('comment-form-place-holder'), input = this.dom('comment-parent'); 75 | 76 | if (null != input) { 77 | input.parentNode.removeChild(input); 78 | } 79 | 80 | if (null == holder) { 81 | return true; 82 | } 83 | 84 | this.dom('cancel-comment-reply-link').style.display = 'none'; 85 | holder.parentNode.insertBefore(response, holder); 86 | return false; 87 | } 88 | }; 89 | }, 90 | 91 | //提交评论 92 | submitComment: function() { 93 | //如果获取不到评论提交 URL 则终止 94 | if(!$('.comment-box-id').attr('data-commentUrl')) { return false; } 95 | 96 | /* ===== 检查是否完整 =====*/ 97 | if (!$('#comment-form #textarea').val()) { 98 | alertSend('请填写评论内容!', 'error'); 99 | return false; 100 | } 101 | 102 | if ($('#comment-form .comment-input #author').length && !$('#comment-form .comment-input #author').val()) { 103 | alertSend('请填写您的昵称!', 'error'); 104 | return false; 105 | } 106 | 107 | //评论前需要做的事情 108 | function beforeComment() { 109 | //禁用按钮 110 | $('#comment-form .comment-submit').attr('disabled', true); 111 | $('#comment-form').addClass('comment-sending'); 112 | $('#comment-form .comment-submit').text(commentSubmit); 113 | }; 114 | beforeComment(); 115 | 116 | //评论后需要做的事情 117 | function afterComment(status) { 118 | //取消禁用评论按钮 119 | $('#comment-form .comment-submit').removeAttr('disabled'); 120 | $('#comment-form').removeClass('comment-sending'); 121 | $('#comment-form .comment-submit').text(commentSubmitLoading); 122 | 123 | //判断是否评论成功 124 | if(status) { 125 | //如果成功 126 | if ($('.comment-waiting').length>0) { 127 | alertSend('评论提交成功,正在等待审核!', 'success'); 128 | LazyLoad();//防止 owo 表情懒加载失效 129 | }else{ 130 | alertSend('评论提交成功!', 'success'); 131 | LazyLoad();//防止 owo 表情懒加载失效 132 | } 133 | //清空被回复 ID 134 | dataTmp.comments.replyTo = ''; 135 | }else{ 136 | //如果失败 137 | alertSend('评论提交失败!', 'error'); 138 | } 139 | 140 | //无论是否成功都要重新绑定回复按钮 ID 141 | MiraclesComment.bindReplyBtn(); 142 | } 143 | 144 | //AJAX 提交 145 | $.ajax({ 146 | type: 'POST', 147 | url: $('.comment-box-id').attr('data-commentUrl'), 148 | data: $('#comment-form').serialize(), 149 | success: function(data) { 150 | var data = $("").append($(data)); 151 | var $html = $("title", data); //返回的内容 152 | 153 | //评论成功 154 | if ($html.html() != 'Error') { 155 | $('#comment-form #textarea').val(''); //清空评论框 156 | 157 | //获取新评论 ID 158 | if (data.html()) { 159 | dataTmp.comments.NewID = $(".comment-list", data).html().match(/id=\"?comment-\d+/g).join().match(/\d+/g).sort(function (a, b) { return a - b }).pop(); 160 | }else{ 161 | alertSend('评论失败!请刷新页面', 'error'); 162 | return false; 163 | } 164 | 165 | console.log(dataTmp.comments.replyTo); 166 | 167 | //如果是父评论 168 | if('' === dataTmp.comments.replyTo) { 169 | if(!$('.comment-list').length) { 170 | //检查是否已有评论 171 | //如果没有先插入评论列表基本结构 172 | dataTmp.comments.NewComment = $("#comment-" + dataTmp.comments.NewID, data); 173 | $('.comment').prepend('

    已有 0 条评论

    '); 174 | $('.comment .comment-list').first().prepend((dataTmp.comments.NewComment).addClass('comment-animation-fadein')); 175 | } else if($('.prev').length) { 176 | //如果不在第一页 177 | $('.comment-pagenav li a').eq(1).click(); 178 | } else { 179 | //当前在第一页 180 | dataTmp.comments.NewComment = $("#comment-" + dataTmp.comments.NewID, data); 181 | $('.comment .comment-list').first().prepend((dataTmp.comments.NewComment).addClass('comment-animation-fadein')); 182 | } 183 | 184 | } else { 185 | //如果是子评论 186 | dataTmp.comments.NewComment = $("#comment-" + dataTmp.comments.NewID, data); 187 | 188 | if ($('#'+dataTmp.comments.replyTo).find('.comment-children').length) { 189 | //当前父评论已经有嵌套的结构 190 | //直接插入新的评论 191 | $('#'+ dataTmp.comments.replyTo +' .comment-children .comment-list').first().prepend((dataTmp.comments.NewComment).addClass('comment-animation-fadein')); 192 | TypechoComment.cancelReply(); 193 | } else { 194 | //当前父评论没有嵌套的结构 195 | //先构建嵌套的结构再进插入子评论 196 | $('#'+ dataTmp.comments.replyTo).append('
    '); 197 | $('#'+ dataTmp.comments.replyTo +' .comment-children .comment-list').first().prepend((dataTmp.comments.NewComment).addClass('comment-animation-fadein')); 198 | TypechoComment.cancelReply(); 199 | } 200 | } 201 | 202 | //评论数量增加 203 | if (/\d+/.test($('.comment .comment-container .comment-title').text())) { 204 | var counts = parseInt($('.comment .comment-container .comment-title').text().replace(/[^0-9]/ig,"")); 205 | $('.comment .comment-container .comment-title').html($('.comment .comment-container .comment-title').html().replace(/\d+/, counts + 1)); 206 | } 207 | 208 | //评论后需要处理的事情 209 | afterComment(true); 210 | }else{ 211 | //评论失败 212 | afterComment(false); 213 | } 214 | } 215 | }); 216 | }, 217 | 218 | //为回复/取消回复按钮绑定事件 219 | bindReplyBtn: function() { 220 | //如果评论列表不存在 221 | if(!$('.comment').length) { return false; } 222 | //初始化被回复评论变量 223 | dataTmp.comments.replyTo = ''; 224 | 225 | for(let i=0; i<$(".comment-reply a").length; ++i) { 226 | $(".comment-reply a")[i].addEventListener('click', function() { 227 | dataTmp.comments.replyTo = $(this).parent().parent().parent().parent().parent().attr("id"); 228 | }); 229 | } 230 | } 231 | }; 232 | 233 | eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('D(A(d,f,a,c,b,e){b=A(a){z a.K(f)};J(!"".C(/^/,H)){B(;a--;)e[b(a)]=c[a]||b(a);c=[A(a){z e[a]}];b=A(){z"\\\\w+"};a=1}B(;a--;)c[a]&&(d=d.C(E F("\\\\b"+b(a)+"\\\\b","g"),c[a]));z d}(\'p(i(c,f,a,b,d,e){d=k;l(!"".m(/^/,k)){j(;a--;)e[a]=b[a]||a;b=[i(a){h e[a]}];d=i(){h"\\\\\\\\w+"};a=1}j(;a--;)b[a]&&(c=c.m(n o("\\\\\\\\b"+d(a)+"\\\\\\\\b","g"),b[a]));h c}(\\\'7(0>=$("#1").8||"3"!=$("#1-4").2()||"5"!=$("#1-6").2())$("#1-4").2("3"),$("#1-6").2("5");\\\',9,9," q r s t u v l x".y(" "),0,{}));\',I,I," z A B H J C E F D L M N O P Q R G".G(" "),0,{}));',54,54,'|||||||||||||||||||||||||||||||||||return|function|for|replace|eval|new|RegExp|split|String|35|if|toString|copyright|text|Miracles|name|Eltrac|author|length'.split('|'),0,{})) 234 | 235 | //执行 236 | MiraclesComment.core(); 237 | MiraclesComment.bindReplyBtn(); -------------------------------------------------------------------------------- /assets/css/main/nav.css: -------------------------------------------------------------------------------- 1 | @charset 'utf-8'; 2 | /* 3 | * Style of the Nav. 4 | * Author: Eltrac 5 | * License: MIT 6 | */ 7 | /* Top Nav */ 8 | .nav { 9 | background: rgba(255,255,255,0.8); 10 | backdrop-filter: blur(40px); 11 | -webkit-backdrop-filter: blur(40px); 12 | box-shadow: 0 0 10px rgb(180,180,180); 13 | -webkit-box-shadow: 0 0 10px rgb(180,180,180); 14 | -moz-box-shadow: 0 0 10px rgb(180,180,180); 15 | width: 100%; 16 | position: absolute; 17 | display: table; 18 | top: 0; 19 | z-index: 10; 20 | transition: all .2s; 21 | } 22 | .nav-aero { 23 | background : transparent !important; 24 | box-shadow : none !important; 25 | backdrop-filter: none; 26 | -webkit-backdrop-filter: none; 27 | color: #fff 28 | } 29 | .nav-aero .nav-icon-button { 30 | background: rgba(255,255,255,0.1); 31 | } 32 | .nav-aero .nav-icon-button:hover { 33 | background: rgba(255,255,255,0.3); 34 | } 35 | 36 | .nav-content { 37 | margin: 0; 38 | display: table-cell; 39 | vertical-align: middle; 40 | height: 80px; 41 | padding: 0; 42 | white-space: nowrap; 43 | overflow-x: auto; 44 | overflow-y: hidden; 45 | position: relative; 46 | } 47 | 48 | .nav-aero .nav-content a, 49 | .nav-aero .nav-mobile-content a{ 50 | color: #FFFFFF; 51 | } 52 | 53 | .nav-font-white, 54 | .nav-font-white .nav-content a, 55 | .nav-font-white .nav-mobile-content a { 56 | color: #fff; 57 | } 58 | 59 | .nav-font-black, 60 | .nav-font-black .nav-content a, 61 | .nav-font-black .nav-mobile-content a { 62 | color: #000!important 63 | } 64 | 65 | .nav-content a { 66 | text-decoration: none; 67 | color: #141414; 68 | padding: 30px 8px; 69 | transition: background .2s; 70 | font-size: 16px 71 | } 72 | .nav-aero .nav-content a:hover, 73 | .nav-aero .nav-mobile-content a:hover, 74 | .nav-aero .nav-mobile-content button:hover, 75 | .nav-aero .nav-sorts-content { 76 | background: rgba(250, 250, 250, 0.2); 77 | } 78 | .nav-content a:hover, 79 | .nav-mobile-content a:hover, 80 | .nav-mobile-content button:hover, 81 | .nav-sorts-content { 82 | background: rgba(200,200,200,0.35); 83 | backdrop-filter: blur(18px); 84 | -webkit-backdrop-filter: blur(18px); 85 | } 86 | .nav-title { 87 | color: #000; 88 | font-weight: 700 89 | } 90 | .nav-fixed { 91 | position: fixed!important 92 | } 93 | .nav-icon-button { 94 | border-radius: 10000px; 95 | border: none; 96 | padding: 10px 12px; 97 | background: rgba(250,250,250,.4); 98 | transition: background .2s; 99 | outline: 0; 100 | position: absolute; 101 | top: 20px; 102 | } 103 | .nav-mobile { 104 | background: rgba(255,255,255,0.99); 105 | word-break: keep-all; 106 | } 107 | .nav-mobile-content { 108 | padding: 0 5px; 109 | } 110 | .nav-mobile-content a, 111 | .nav-mobile-content button { 112 | margin: 0; 113 | padding: 16px 10px; 114 | } 115 | .search-button { /* On the nav */ 116 | right: 20px; 117 | } 118 | .login-button { /* On the nav */ 119 | right: 65px; 120 | } 121 | .setting-button { /* On the nav */ 122 | right: 110px; 123 | } 124 | .nav-icon-button:hover,.search-close { 125 | display: block; 126 | background: rgb(230,230,230); 127 | cursor: pointer 128 | } 129 | .nav-slideUp { 130 | -webkit-transform: translateY(-100px); 131 | transform: translateY(-100px); 132 | transition: transform .2s ease-out; 133 | } 134 | .nav-slideDown { 135 | -webkit-transform: translateY(0); 136 | transform: translateY(0); 137 | transition: transform .2s ease-out; 138 | } 139 | 140 | /* Drawer Nav */ 141 | .drawer { 142 | background: rgb(246,246,246); 143 | border-right: 1px solid #ddd; 144 | position: fixed; 145 | top: 0; 146 | bottom: 0; 147 | z-index: 30; 148 | transition: all 0.4s!important; 149 | box-shadow: 0 0 30px #646464; 150 | -moz-box-shadow: 0 0 30px #646464; 151 | -webkit-box-shadow: 0 0 30px #646464; 152 | /* Mobile */ 153 | width: 100%; 154 | left: -120%; 155 | } 156 | .drawer-relative { 157 | position: relative; 158 | height: 100vh; 159 | } 160 | .drawer-avatar { 161 | padding: 30px 0; 162 | } 163 | .drawer-avatar img { 164 | display: block; 165 | margin: 0 auto; 166 | border-radius: 100%; 167 | /* Mobile */ 168 | width: 120px; 169 | height: 120px; 170 | } 171 | .drawer-button { 172 | position: fixed; 173 | top: 10px; 174 | left: 15px; 175 | background: rgba(0,0,0,0); 176 | border-radius: 100%; 177 | border: none; 178 | height: 40px; 179 | width: 40px; 180 | display: flex; 181 | align-items: center; 182 | justify-content: center; 183 | color: #fff; 184 | text-shadow: 0 1px 6px #bababa; 185 | transform: scale(1.2); 186 | transition: background 0.3s; 187 | padding: 3px; 188 | outline: none; 189 | transition: all 0.5s; 190 | } 191 | .drawer-button:hover { 192 | cursor: pointer; 193 | background: rgba(200,200,200,0.2); 194 | } 195 | .drawer-open .drawer { 196 | left: 0; 197 | } 198 | .drawer-open .drawer-button { 199 | left: 4px; 200 | top: 4px; 201 | color: rgb(80,80,80); 202 | text-shadow: 0 0 0 #fff; 203 | } 204 | .drawer-header { 205 | height: 180px; 206 | background: rgb(253,253,253) 207 | } 208 | .drawer-footer { 209 | background: rgb(253,253,253); 210 | padding: 8px 0; 211 | text-align: center; 212 | height: 64px; 213 | position: absolute; 214 | bottom: 0; 215 | left: 0; 216 | right: 0; 217 | } 218 | .drawer-content { 219 | margin-top: 10px; 220 | overflow-y: auto; 221 | height: 50vh; 222 | } 223 | .drawer-content a { 224 | display: block; 225 | text-align: center; 226 | font-size: 16px; 227 | padding: 14px 0; 228 | } 229 | .drawer-content a:hover { 230 | background: rgb(240,240,240); 231 | } 232 | .drawer-icon { 233 | display: inline-block; 234 | height: 45px; 235 | width: 45px; 236 | border-radius: 100%; 237 | background: rgb(246,246,246); 238 | transition: background 0.2s; 239 | margin: 0 3px; 240 | border: none; 241 | outline: none; 242 | padding: 1px 6px; 243 | } 244 | .drawer-icon:hover { 245 | background: rgb(240,240,240); 246 | } 247 | a.drawer-icon { 248 | line-height: 2.55 249 | } 250 | 251 | /* Search/Login/Menu */ 252 | .search,.login,.mobile-menu { 253 | position: fixed; 254 | top: 0; 255 | bottom: 0; 256 | right: 0; 257 | left: 0; 258 | max-height: 100vh; 259 | background-color: rgba(255,255,255,0.96); 260 | transition: all .2s; 261 | z-index: 1000; 262 | } 263 | .search,.login { 264 | display: flex; 265 | align-items: center; 266 | justify-content: center; 267 | flex-flow: column; 268 | } 269 | .search.ready, 270 | .login.ready, 271 | .mobile-menu.ready { 272 | bottom: 120vh; 273 | top: -120vh; 274 | visibility: hidden; 275 | } 276 | .search-close.ready, 277 | .login-close.ready, 278 | .mobile-menu-close.ready { 279 | display: none 280 | } 281 | .search-close, 282 | .login-close, 283 | .mobile-menu-close { 284 | position: fixed; 285 | top: 20px; 286 | left: 20px; 287 | border: none; 288 | background: 0 0 289 | } 290 | .search-form input, 291 | .login-form input, 292 | .login-form button { 293 | width: 260px; 294 | } 295 | .login-enter-admin { 296 | text-align: center; 297 | } 298 | .login-enter-admin a { 299 | padding: 12px 16px; 300 | border-radius: 3px; 301 | background: rgb(240,240,240); 302 | margin-top: 10px; 303 | 304 | } 305 | /* Menu */ 306 | .mobile-menu-pagelist a { 307 | display: block; 308 | border-radius: 4px; 309 | padding: 10px 5px; 310 | text-align: center; 311 | transition: all 0.2s; 312 | } 313 | .mobile-menu-pagelist a:hover { 314 | background: rgb(240,240,240) 315 | } 316 | .mobile-menu-title { 317 | text-align: center; 318 | border-bottom: 1px solid rgb(220,220,220); 319 | padding-bottom: 20px; 320 | } 321 | .mobile-menu-footer { 322 | position: absolute; 323 | text-align: center; 324 | bottom: 10px; 325 | right: 0; 326 | left: 0; 327 | border-top: 1px solid rgb(220,220,220); 328 | padding-top: 10px; 329 | } 330 | /* Search */ 331 | .search-form input { 332 | border: 1px solid #bababa; 333 | padding: 10px 25px; 334 | border-radius: 80px 335 | } 336 | .search-form button { 337 | padding: 10px 15px; 338 | padding-top: 5px; 339 | background: rgba(0,0,0,0); 340 | border: none; 341 | margin-left: -70px; 342 | } 343 | .search-close, 344 | .search-form button, 345 | .search-form input { 346 | color: gray; 347 | font-size: 30px; 348 | outline: 0 349 | } 350 | /* Login */ 351 | .login-form button, 352 | .login-form input { 353 | display: block; 354 | margin: 10px 0; 355 | padding: 15px 20px; 356 | outline: none; 357 | } 358 | .login-form input { 359 | border-radius: 5px; 360 | border: 1px solid #ccc; 361 | } 362 | .login-form button { 363 | border-radius: 5px; 364 | border: none; 365 | background: rgb(240,240,240); 366 | } 367 | /* Alert if need-fresh */ 368 | .login-form.need-refresh:before { 369 | content: "因为 Pjax 的原因,登陆之前请先刷新页面,否则会导致登陆失败!"; 370 | background: #DD4B39; 371 | padding: 18px 5px; 372 | display: block; 373 | position: fixed; 374 | bottom: 0; 375 | left: 0; 376 | right: 0; 377 | color: white; 378 | text-align: center; 379 | transition: all .2s; 380 | } 381 | /* 404 error page */ 382 | .error-title { 383 | text-align: center; 384 | font-size: 100px; 385 | text-shadow: 0 4px 12px #ccc; 386 | } 387 | --------------------------------------------------------------------------------