├── .eslintignore ├── .gitignore ├── .prettierignore ├── 404.php ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── README.zh-CN.md ├── assets ├── css │ ├── admin.css │ ├── animate.min.css │ ├── bootstrap.min.css │ ├── fontawesome.min.css │ ├── iconfont.min.css │ ├── layer.min.css │ ├── lightgallery.min.css │ └── widget.min.css ├── fonts │ ├── iconfont │ │ ├── iconfont.eot │ │ ├── iconfont.svg │ │ ├── iconfont.ttf │ │ ├── iconfont.woff │ │ └── iconfont.woff2 │ ├── lightgallery │ │ ├── lg.svg │ │ ├── lg.ttf │ │ └── lg.woff │ └── webfonts │ │ ├── fa-brands-400.eot │ │ ├── fa-brands-400.svg │ │ ├── fa-brands-400.ttf │ │ ├── fa-brands-400.woff │ │ ├── fa-brands-400.woff2 │ │ ├── fa-regular-400.eot │ │ ├── fa-regular-400.svg │ │ ├── fa-regular-400.ttf │ │ ├── fa-regular-400.woff │ │ ├── fa-regular-400.woff2 │ │ ├── fa-solid-900.eot │ │ ├── fa-solid-900.svg │ │ ├── fa-solid-900.ttf │ │ ├── fa-solid-900.woff │ │ └── fa-solid-900.woff2 ├── img │ ├── 200.png │ ├── 404.jpg │ ├── 404.svg │ ├── about-background.png │ ├── background.jpg │ ├── default.jpg │ ├── gravatar.png │ ├── layer │ │ ├── icon-ext.png │ │ └── icon.png │ ├── lightgallery │ │ ├── loading.gif │ │ ├── video-play.png │ │ ├── vimeo-play.png │ │ └── youtube-play.png │ ├── nothing.svg │ ├── options │ │ ├── about.png │ │ ├── col-12.png │ │ └── col-8.png │ ├── payment │ │ ├── alipay.png │ │ └── wechat.png │ ├── police-ico.png │ └── smilies │ │ ├── arrow.png │ │ ├── biggrin.png │ │ ├── confused.png │ │ ├── cool.png │ │ ├── cry.png │ │ ├── drooling.png │ │ ├── eek.png │ │ ├── evil.png │ │ ├── exclaim.png │ │ ├── idea.png │ │ ├── lol.png │ │ ├── mad.png │ │ ├── mrgreen.png │ │ ├── neutral.png │ │ ├── persevering.png │ │ ├── question.png │ │ ├── razz.png │ │ ├── redface.png │ │ ├── rolleyes.png │ │ ├── shit.png │ │ ├── smile.png │ │ ├── symbols.png │ │ ├── twisted.png │ │ └── wink.png └── js │ ├── DPlayer.min.js │ ├── bootstrap.bundle.min.js │ ├── buttons │ ├── images │ │ ├── accordion.png │ │ ├── bdbtn.png │ │ ├── bilibili.png │ │ ├── danger.png │ │ ├── dangerbox.png │ │ ├── info.png │ │ ├── infobox.png │ │ ├── kbd.png │ │ ├── mark.png │ │ ├── music.png │ │ ├── reply.png │ │ ├── striped.png │ │ ├── success.png │ │ ├── successbox.png │ │ ├── title.png │ │ ├── vqq.png │ │ ├── warning.png │ │ ├── warningbox.png │ │ └── youtube.png │ └── more.js │ ├── comments.min.js │ ├── kratos.js │ ├── layer.min.js │ ├── lightgallery.min.js │ └── widget.min.js ├── comments.php ├── crowdin.yml ├── footer.php ├── functions.php ├── header.php ├── inc ├── codestar-framework │ ├── assets │ │ ├── css │ │ │ ├── style-rtl.css │ │ │ ├── style-rtl.min.css │ │ │ ├── style.css │ │ │ └── style.min.css │ │ ├── images │ │ │ ├── checkerboard.png │ │ │ ├── wp-logo.svg │ │ │ └── wp-plugin-logo.svg │ │ ├── js │ │ │ ├── gutenberg.js │ │ │ ├── main.js │ │ │ ├── main.min.js │ │ │ ├── plugins.js │ │ │ └── plugins.min.js │ │ └── scss │ │ │ ├── style-rtl.scss │ │ │ ├── style.scss │ │ │ └── vendor │ │ │ ├── _base.scss │ │ │ ├── _chosen.scss │ │ │ ├── _customizer.scss │ │ │ ├── _fields.scss │ │ │ ├── _helper.scss │ │ │ ├── _modal.scss │ │ │ ├── _navmenu.scss │ │ │ ├── _profile.scss │ │ │ ├── _responsive.scss │ │ │ ├── _taxonomy.scss │ │ │ ├── _themes.scss │ │ │ ├── _welcome.scss │ │ │ └── _widget.scss │ ├── autoload.php │ ├── classes │ │ ├── abstract.class.php │ │ ├── admin-options.class.php │ │ ├── comment-options.class.php │ │ ├── customize-options.class.php │ │ ├── fields.class.php │ │ ├── metabox-options.class.php │ │ ├── nav-menu-options.class.php │ │ ├── profile-options.class.php │ │ ├── setup.class.php │ │ ├── shortcode-options.class.php │ │ ├── taxonomy-options.class.php │ │ └── widget-options.class.php │ ├── fields │ │ ├── accordion │ │ │ └── accordion.php │ │ ├── background │ │ │ └── background.php │ │ ├── backup │ │ │ └── backup.php │ │ ├── border │ │ │ └── border.php │ │ ├── button_set │ │ │ └── button_set.php │ │ ├── callback │ │ │ └── callback.php │ │ ├── checkbox │ │ │ └── checkbox.php │ │ ├── code_editor │ │ │ └── code_editor.php │ │ ├── color │ │ │ └── color.php │ │ ├── color_group │ │ │ └── color_group.php │ │ ├── content │ │ │ └── content.php │ │ ├── date │ │ │ └── date.php │ │ ├── dimensions │ │ │ └── dimensions.php │ │ ├── fieldset │ │ │ └── fieldset.php │ │ ├── gallery │ │ │ └── gallery.php │ │ ├── group │ │ │ └── group.php │ │ ├── heading │ │ │ └── heading.php │ │ ├── icon │ │ │ ├── fa4-icons.php │ │ │ ├── fa5-icons.php │ │ │ └── icon.php │ │ ├── image_select │ │ │ └── image_select.php │ │ ├── index.php │ │ ├── link │ │ │ └── link.php │ │ ├── link_color │ │ │ └── link_color.php │ │ ├── map │ │ │ └── map.php │ │ ├── media │ │ │ └── media.php │ │ ├── notice │ │ │ └── notice.php │ │ ├── number │ │ │ └── number.php │ │ ├── palette │ │ │ └── palette.php │ │ ├── radio │ │ │ └── radio.php │ │ ├── repeater │ │ │ └── repeater.php │ │ ├── select │ │ │ └── select.php │ │ ├── slider │ │ │ └── slider.php │ │ ├── sortable │ │ │ └── sortable.php │ │ ├── sorter │ │ │ └── sorter.php │ │ ├── spacing │ │ │ └── spacing.php │ │ ├── spinner │ │ │ └── spinner.php │ │ ├── subheading │ │ │ └── subheading.php │ │ ├── submessage │ │ │ └── submessage.php │ │ ├── switcher │ │ │ └── switcher.php │ │ ├── tabbed │ │ │ └── tabbed.php │ │ ├── text │ │ │ └── text.php │ │ ├── textarea │ │ │ └── textarea.php │ │ ├── typography │ │ │ ├── google-fonts.php │ │ │ └── typography.php │ │ ├── upload │ │ │ └── upload.php │ │ └── wp_editor │ │ │ └── wp_editor.php │ ├── functions │ │ ├── actions.php │ │ ├── customize.php │ │ ├── helpers.php │ │ ├── sanitize.php │ │ ├── validate.php │ │ └── walker.php │ └── languages │ │ ├── default.pot │ │ ├── zh_CN.mo │ │ └── zh_CN.po ├── theme-article.php ├── theme-core.php ├── theme-dogecloud.php ├── theme-navwalker.php ├── theme-options.php ├── theme-setting.php ├── theme-shortcode.php ├── theme-smtp.php ├── theme-volcengine.php ├── theme-widgets.php ├── update-checker │ ├── Puc │ │ ├── v5 │ │ │ └── PucFactory.php │ │ └── v5p2 │ │ │ ├── Autoloader.php │ │ │ ├── DebugBar │ │ │ ├── Extension.php │ │ │ ├── Panel.php │ │ │ ├── PluginExtension.php │ │ │ ├── PluginPanel.php │ │ │ └── ThemePanel.php │ │ │ ├── InstalledPackage.php │ │ │ ├── Metadata.php │ │ │ ├── OAuthSignature.php │ │ │ ├── Plugin │ │ │ ├── Package.php │ │ │ ├── PluginInfo.php │ │ │ ├── Ui.php │ │ │ ├── Update.php │ │ │ └── UpdateChecker.php │ │ │ ├── PucFactory.php │ │ │ ├── Scheduler.php │ │ │ ├── StateStore.php │ │ │ ├── Theme │ │ │ ├── Package.php │ │ │ ├── Update.php │ │ │ └── UpdateChecker.php │ │ │ ├── Update.php │ │ │ ├── UpdateChecker.php │ │ │ ├── UpgraderStatus.php │ │ │ ├── Utils.php │ │ │ └── Vcs │ │ │ ├── Api.php │ │ │ ├── BaseChecker.php │ │ │ ├── BitBucketApi.php │ │ │ ├── GitHubApi.php │ │ │ ├── GitLabApi.php │ │ │ ├── PluginUpdateChecker.php │ │ │ ├── Reference.php │ │ │ ├── ReleaseAssetSupport.php │ │ │ ├── ReleaseFilteringFeature.php │ │ │ ├── ThemeUpdateChecker.php │ │ │ └── VcsCheckerMethods.php │ ├── autoload.php │ ├── css │ │ └── puc-debug-bar.css │ ├── js │ │ └── debug-bar.js │ ├── languages │ │ ├── plugin-update-checker-zh_CN.mo │ │ ├── plugin-update-checker-zh_CN.po │ │ └── plugin-update-checker.pot │ ├── license.txt │ ├── update.json │ └── vendor │ │ ├── Parsedown.php │ │ ├── ParsedownModern.php │ │ └── PucReadmeParser.php └── volcengine-imagex │ ├── index.php │ ├── src │ ├── .htaccess │ ├── ExerciseBook │ │ └── Flysystem │ │ │ └── ImageX │ │ │ ├── Config.php │ │ │ ├── Exception │ │ │ ├── FileNotFoundException.php │ │ │ ├── FilesystemException.php │ │ │ └── ImageXException.php │ │ │ ├── ImageXAdapter.php │ │ │ └── ImageXConfig.php │ ├── VERSION │ └── Volc │ │ ├── Base │ │ ├── SignatureTrait.php │ │ ├── SignatureV4.php │ │ ├── Singleton.php │ │ └── V4Curl.php │ │ └── Service │ │ └── ImageX.php │ └── vendor │ ├── autoload.php │ ├── composer │ ├── ClassLoader.php │ ├── InstalledVersions.php │ ├── LICENSE │ ├── autoload_classmap.php │ ├── autoload_files.php │ ├── autoload_namespaces.php │ ├── autoload_psr4.php │ ├── autoload_real.php │ ├── autoload_static.php │ ├── installed.json │ ├── installed.php │ └── platform_check.php │ ├── guzzlehttp │ ├── guzzle │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── UPGRADING.md │ │ ├── composer.json │ │ ├── src │ │ │ ├── BodySummarizer.php │ │ │ ├── BodySummarizerInterface.php │ │ │ ├── Client.php │ │ │ ├── ClientInterface.php │ │ │ ├── ClientTrait.php │ │ │ ├── Cookie │ │ │ │ ├── CookieJar.php │ │ │ │ ├── CookieJarInterface.php │ │ │ │ ├── FileCookieJar.php │ │ │ │ ├── SessionCookieJar.php │ │ │ │ └── SetCookie.php │ │ │ ├── Exception │ │ │ │ ├── BadResponseException.php │ │ │ │ ├── ClientException.php │ │ │ │ ├── ConnectException.php │ │ │ │ ├── GuzzleException.php │ │ │ │ ├── InvalidArgumentException.php │ │ │ │ ├── RequestException.php │ │ │ │ ├── ServerException.php │ │ │ │ ├── TooManyRedirectsException.php │ │ │ │ └── TransferException.php │ │ │ ├── Handler │ │ │ │ ├── CurlFactory.php │ │ │ │ ├── CurlFactoryInterface.php │ │ │ │ ├── CurlHandler.php │ │ │ │ ├── CurlMultiHandler.php │ │ │ │ ├── EasyHandle.php │ │ │ │ ├── HeaderProcessor.php │ │ │ │ ├── MockHandler.php │ │ │ │ ├── Proxy.php │ │ │ │ └── StreamHandler.php │ │ │ ├── HandlerStack.php │ │ │ ├── MessageFormatter.php │ │ │ ├── MessageFormatterInterface.php │ │ │ ├── Middleware.php │ │ │ ├── Pool.php │ │ │ ├── PrepareBodyMiddleware.php │ │ │ ├── RedirectMiddleware.php │ │ │ ├── RequestOptions.php │ │ │ ├── RetryMiddleware.php │ │ │ ├── TransferStats.php │ │ │ ├── Utils.php │ │ │ ├── functions.php │ │ │ └── functions_include.php │ │ └── vendor-bin │ │ │ ├── php-cs-fixer │ │ │ └── composer.json │ │ │ ├── phpstan │ │ │ └── composer.json │ │ │ └── psalm │ │ │ └── composer.json │ ├── promises │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.md │ │ ├── composer.json │ │ └── src │ │ │ ├── AggregateException.php │ │ │ ├── CancellationException.php │ │ │ ├── Coroutine.php │ │ │ ├── Create.php │ │ │ ├── Each.php │ │ │ ├── EachPromise.php │ │ │ ├── FulfilledPromise.php │ │ │ ├── Is.php │ │ │ ├── Promise.php │ │ │ ├── PromiseInterface.php │ │ │ ├── PromisorInterface.php │ │ │ ├── RejectedPromise.php │ │ │ ├── RejectionException.php │ │ │ ├── TaskQueue.php │ │ │ ├── TaskQueueInterface.php │ │ │ ├── Utils.php │ │ │ ├── functions.php │ │ │ └── functions_include.php │ └── psr7 │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── composer.json │ │ ├── src │ │ ├── AppendStream.php │ │ ├── BufferStream.php │ │ ├── CachingStream.php │ │ ├── DroppingStream.php │ │ ├── FnStream.php │ │ ├── Header.php │ │ ├── HttpFactory.php │ │ ├── InflateStream.php │ │ ├── LazyOpenStream.php │ │ ├── LimitStream.php │ │ ├── Message.php │ │ ├── MessageTrait.php │ │ ├── MimeType.php │ │ ├── MultipartStream.php │ │ ├── NoSeekStream.php │ │ ├── PumpStream.php │ │ ├── Query.php │ │ ├── Request.php │ │ ├── Response.php │ │ ├── Rfc7230.php │ │ ├── ServerRequest.php │ │ ├── Stream.php │ │ ├── StreamDecoratorTrait.php │ │ ├── StreamWrapper.php │ │ ├── UploadedFile.php │ │ ├── Uri.php │ │ ├── UriNormalizer.php │ │ ├── UriResolver.php │ │ └── Utils.php │ │ └── vendor-bin │ │ ├── php-cs-fixer │ │ └── composer.json │ │ ├── phpstan │ │ └── composer.json │ │ └── psalm │ │ └── composer.json │ ├── psr │ ├── http-client │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── composer.json │ │ └── src │ │ │ ├── ClientExceptionInterface.php │ │ │ ├── ClientInterface.php │ │ │ ├── NetworkExceptionInterface.php │ │ │ └── RequestExceptionInterface.php │ ├── http-factory │ │ ├── .gitignore │ │ ├── .pullapprove.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── composer.json │ │ └── src │ │ │ ├── RequestFactoryInterface.php │ │ │ ├── ResponseFactoryInterface.php │ │ │ ├── ServerRequestFactoryInterface.php │ │ │ ├── StreamFactoryInterface.php │ │ │ ├── UploadedFileFactoryInterface.php │ │ │ └── UriFactoryInterface.php │ └── http-message │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── composer.json │ │ └── src │ │ ├── MessageInterface.php │ │ ├── RequestInterface.php │ │ ├── ResponseInterface.php │ │ ├── ServerRequestInterface.php │ │ ├── StreamInterface.php │ │ ├── UploadedFileInterface.php │ │ └── UriInterface.php │ └── ralouphie │ └── getallheaders │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ └── getallheaders.php ├── index.php ├── languages ├── en_US.mo ├── en_US.po └── kratos.pot ├── page-full.php ├── page.php ├── pages ├── page-content.php ├── page-smilies.php └── page-toolbar.php ├── screenshot.png ├── single.php └── style.css /.eslintignore: -------------------------------------------------------------------------------- 1 | *.min.css 2 | *.min.js -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | #################### VisualStudioCode.gitignore #################### 2 | 3 | .vscode/* 4 | !.vscode/settings.json 5 | !.vscode/tasks.json 6 | !.vscode/launch.json 7 | !.vscode/extensions.json 8 | !.vscode/*.code-snippets 9 | 10 | # Local History for Visual Studio Code 11 | .history/ 12 | 13 | #################### Linux.gitignore #################### 14 | 15 | *~ 16 | 17 | # temporary files which can be created if a process still has a handle open of a deleted file 18 | .fuse_hidden* 19 | 20 | # KDE directory preferences 21 | .directory 22 | 23 | # Linux trash folder which might appear on any partition or disk 24 | .Trash-* 25 | 26 | # .nfs files are created when an open file is removed but is still being accessed 27 | .nfs* 28 | 29 | #################### Windows.gitignore #################### 30 | 31 | # Windows thumbnail cache files 32 | Thumbs.db 33 | Thumbs.db:encryptable 34 | ehthumbs.db 35 | ehthumbs_vista.db 36 | 37 | # Dump file 38 | *.stackdump 39 | 40 | # Folder config file 41 | [Dd]esktop.ini 42 | 43 | # Recycle Bin used on file shares 44 | $RECYCLE.BIN/ 45 | 46 | # Windows Installer files 47 | *.cab 48 | *.msi 49 | *.msix 50 | *.msm 51 | *.msp 52 | 53 | # Windows shortcuts 54 | *.lnk 55 | 56 | #################### macOS.gitignore #################### 57 | 58 | # General 59 | .DS_Store 60 | .AppleDouble 61 | .LSOverride 62 | 63 | # Icon must end with two \r 64 | Icon 65 | 66 | # Thumbnails 67 | ._* 68 | 69 | # Files that might appear in the root of a volume 70 | .DocumentRevisions-V100 71 | .fseventsd 72 | .Spotlight-V100 73 | .TemporaryItems 74 | .Trashes 75 | .VolumeIcon.icns 76 | .com.apple.timemachine.donotpresent 77 | 78 | # Directories potentially created on remote AFP share 79 | .AppleDB 80 | .AppleDesktop 81 | Network Trash Folder 82 | Temporary Items 83 | .apdisk 84 | 85 | #################### Custom.gitignore #################### 86 | 87 | !.gitkeep -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | *.min.css 2 | *.min.js -------------------------------------------------------------------------------- /404.php: -------------------------------------------------------------------------------- 1 | 6 | * @license GPL-3.0 License 7 | * @version 2022.01.26 8 | */ 9 | 10 | get_header(); ?> 11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | 23 | 24 |
25 |
26 |
27 |
28 |
29 |
30 | 31 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | **English** | [简体中文](README.zh-CN.md) 2 | 3 |

4 | 5 |

6 | 7 |

8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |

20 | 21 |

22 | Report Bug 23 | · 24 | Request Feature 25 |

26 | 27 |

WordPress theme that focus on reading experience

28 | 29 | ## 🚀 Quick start 30 | 31 | 1. First download the theme's .zip file from the source file to your local computer. 32 | 33 | 2. From your WordPress Administration area, head to Appearance > Themes and click `Add New`. 34 | 35 | 3. The Add New theme screen has a new option, `Upload Theme`. 36 | 37 | 4. The theme upload form is now open, click `Choose File`, select the theme zip file on your computer and click `Install Now`. 38 | 39 | 5. The theme can now be activated from the administrator. Select the `Appearance` tab, then open the theme catalog, find the theme, and click the `Activate link`. 40 | 41 | ## 🤝 Contributing 42 | 43 | We welcome all contributions. You can submit any ideas as Pull requests or as Issues, have a good time! 44 | 45 | ## 📃 License 46 | 47 | The project is released under the GNU General Public License v3.0, see the [LICENCE](https://github.com/seatonjiang/kratos/blob/main/LICENSE) file for details. 48 | -------------------------------------------------------------------------------- /README.zh-CN.md: -------------------------------------------------------------------------------- 1 | [English](README.md) | **简体中文** 2 | 3 |

4 | 5 |

6 | 7 |

8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |

20 | 21 |

22 | 报告问题 23 | · 24 | 功能需求 25 |

26 | 27 |

专注阅读体验的 WordPress 主题

28 | 29 | ## 🚀 使用说明 30 | 31 | 1. 下载最新发行版本的 .zip 格式安装包; 32 | 33 | 2. 登录 WordPress 管理员后台,进入 `外观` > `主题` 页面,然后点击 `添加` 按钮; 34 | 35 | 3. 进入添加主题页面之后,再点击 `上传主题` 按钮; 36 | 37 | 4. 点击 `选择文件`, 找到下载的 .zip 格式安装包,然后点击 `现在安装` 按钮; 38 | 39 | 5. 进入 `外观` > `主题` 页面,找到 Kratos 主题,然后点击 `启用` 即可。 40 | 41 | ## 🤝 参与共建 42 | 43 | 我们欢迎所有的贡献,你可以将任何想法作为 Pull requests 或 Issues 提交,顺颂商祺! 44 | 45 | ## 📃 开源许可 46 | 47 | 项目基于 GNU 通用公共许可证 v3.0 发布,详细说明请参阅 [LICENCE](https://github.com/seatonjiang/kratos/blob/main/LICENSE) 文件。 48 | -------------------------------------------------------------------------------- /assets/css/admin.css: -------------------------------------------------------------------------------- 1 | .editor-styles-wrapper .wp-site-blocks, 2 | .editor-styles-wrapper>.is-root-container, 3 | .editor-styles-wrapper .edit-post-visual-editor__post-title-wrapper, 4 | .editor-styles-wrapper .wp-block-group.alignfull, 5 | .editor-styles-wrapper .wp-block-group.has-background, 6 | .editor-styles-wrapper .wp-block-cover.alignfull, 7 | .editor-styles-wrapper .is-root-container .wp-block[data-align="full"]>.wp-block-group, 8 | .editor-styles-wrapper .is-root-container .wp-block[data-align="full"]>.wp-block-cover { 9 | padding-left: max(1.25rem, 5vw); 10 | padding-right: max(1.25rem, 5vw); 11 | } -------------------------------------------------------------------------------- /assets/css/iconfont.min.css: -------------------------------------------------------------------------------- 1 | @font-face{font-family:kicon;src:url('../fonts/iconfont/iconfont.eot?t=1618460466711');src:url('../fonts/iconfont/iconfont.eot?t=1618460466711&iefix') format('embedded-opentype'),url('../fonts/iconfont/iconfont.woff2?t=1618460466711') format('woff2'),url('../fonts/iconfont/iconfont.woff?t=1618460466711') format('woff'),url('../fonts/iconfont/iconfont.ttf?t=1618460466711') format('truetype'),url('../fonts/iconfont/iconfont.svg?t=1618460466711') format('svg')}.kicon{font-family:kicon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.i-douban:before{content:"\e645"}.i-card-new:before{content:"\e642"}.i-card-hot:before{content:"\e643"}.i-card-top:before{content:"\e644"}.i-author:before{content:"\e603"}.i-plus:before{content:"\e89e"}.i-url:before{content:"\e74f"}.i-like:before{content:"\e602"}.i-donate:before{content:"\e684"}.i-larrows:before{content:"\e640"}.i-rarrows:before{content:"\e641"}.i-cemail:before{content:"\e63e"}.i-user:before{content:"\e63f"}.i-reply:before{content:"\e63d"}.i-face:before{content:"\e63c"}.i-find:before{content:"\e63a"}.i-wechat:before{content:"\e63b"}.i-telegram:before{content:"\e639"}.i-twitter:before{content:"\e624"}.i-youtube:before{content:"\e625"}.i-stackflow:before{content:"\e626"}.i-sina:before{content:"\e627"}.i-github:before{content:"\e628"}.i-coding:before{content:"\e629"}.i-bilibili:before{content:"\e62a"}.i-linkedin:before{content:"\e62b"}.i-calendar:before{content:"\e62c"}.i-rightbutton:before{content:"\e62d"}.i-up:before{content:"\e62e"}.i-download:before{content:"\e62f"}.i-comments:before{content:"\e630"}.i-tabnew:before{content:"\e631"}.i-good:before{content:"\e632"}.i-hot:before{content:"\e633"}.i-tabhot:before{content:"\e634"}.i-tabrandom:before{content:"\e635"}.i-book:before{content:"\e636"}.i-email:before{content:"\e637"}.i-gitee:before{content:"\e638"} 2 | -------------------------------------------------------------------------------- /assets/css/widget.min.css: -------------------------------------------------------------------------------- 1 | .button-update-media{position:relative;box-sizing:border-box;margin:16px 0;padding:9px 0;width:100%;border:1px dashed #b4b9be;background-color:#edeff0;color:#32373c;text-align:center;line-height:1.6;cursor:pointer} 2 | .button-update-media:hover{background-color:#fbfbfc} 3 | .button-update-media:focus{outline:2px solid transparent;outline-offset:-2px;border-color:#5b9dd9;border-style:solid;background-color:#fbfbfc;box-shadow:0 0 3px rgba(0,115,170,.8)} -------------------------------------------------------------------------------- /assets/fonts/iconfont/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/fonts/iconfont/iconfont.eot -------------------------------------------------------------------------------- /assets/fonts/iconfont/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/fonts/iconfont/iconfont.ttf -------------------------------------------------------------------------------- /assets/fonts/iconfont/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/fonts/iconfont/iconfont.woff -------------------------------------------------------------------------------- /assets/fonts/iconfont/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/fonts/iconfont/iconfont.woff2 -------------------------------------------------------------------------------- /assets/fonts/lightgallery/lg.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/fonts/lightgallery/lg.ttf -------------------------------------------------------------------------------- /assets/fonts/lightgallery/lg.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/fonts/lightgallery/lg.woff -------------------------------------------------------------------------------- /assets/fonts/webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/fonts/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /assets/fonts/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/fonts/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /assets/fonts/webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/fonts/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /assets/fonts/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/fonts/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /assets/fonts/webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/fonts/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /assets/fonts/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/fonts/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /assets/fonts/webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/fonts/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /assets/fonts/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/fonts/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /assets/fonts/webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/fonts/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /assets/fonts/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/fonts/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /assets/fonts/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/fonts/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /assets/fonts/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/fonts/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /assets/img/200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/200.png -------------------------------------------------------------------------------- /assets/img/404.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/404.jpg -------------------------------------------------------------------------------- /assets/img/404.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/img/about-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/about-background.png -------------------------------------------------------------------------------- /assets/img/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/background.jpg -------------------------------------------------------------------------------- /assets/img/default.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/default.jpg -------------------------------------------------------------------------------- /assets/img/gravatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/gravatar.png -------------------------------------------------------------------------------- /assets/img/layer/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/layer/icon-ext.png -------------------------------------------------------------------------------- /assets/img/layer/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/layer/icon.png -------------------------------------------------------------------------------- /assets/img/lightgallery/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/lightgallery/loading.gif -------------------------------------------------------------------------------- /assets/img/lightgallery/video-play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/lightgallery/video-play.png -------------------------------------------------------------------------------- /assets/img/lightgallery/vimeo-play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/lightgallery/vimeo-play.png -------------------------------------------------------------------------------- /assets/img/lightgallery/youtube-play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/lightgallery/youtube-play.png -------------------------------------------------------------------------------- /assets/img/options/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/options/about.png -------------------------------------------------------------------------------- /assets/img/options/col-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/options/col-12.png -------------------------------------------------------------------------------- /assets/img/options/col-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/options/col-8.png -------------------------------------------------------------------------------- /assets/img/payment/alipay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/payment/alipay.png -------------------------------------------------------------------------------- /assets/img/payment/wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/payment/wechat.png -------------------------------------------------------------------------------- /assets/img/police-ico.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/police-ico.png -------------------------------------------------------------------------------- /assets/img/smilies/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/arrow.png -------------------------------------------------------------------------------- /assets/img/smilies/biggrin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/biggrin.png -------------------------------------------------------------------------------- /assets/img/smilies/confused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/confused.png -------------------------------------------------------------------------------- /assets/img/smilies/cool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/cool.png -------------------------------------------------------------------------------- /assets/img/smilies/cry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/cry.png -------------------------------------------------------------------------------- /assets/img/smilies/drooling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/drooling.png -------------------------------------------------------------------------------- /assets/img/smilies/eek.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/eek.png -------------------------------------------------------------------------------- /assets/img/smilies/evil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/evil.png -------------------------------------------------------------------------------- /assets/img/smilies/exclaim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/exclaim.png -------------------------------------------------------------------------------- /assets/img/smilies/idea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/idea.png -------------------------------------------------------------------------------- /assets/img/smilies/lol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/lol.png -------------------------------------------------------------------------------- /assets/img/smilies/mad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/mad.png -------------------------------------------------------------------------------- /assets/img/smilies/mrgreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/mrgreen.png -------------------------------------------------------------------------------- /assets/img/smilies/neutral.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/neutral.png -------------------------------------------------------------------------------- /assets/img/smilies/persevering.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/persevering.png -------------------------------------------------------------------------------- /assets/img/smilies/question.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/question.png -------------------------------------------------------------------------------- /assets/img/smilies/razz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/razz.png -------------------------------------------------------------------------------- /assets/img/smilies/redface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/redface.png -------------------------------------------------------------------------------- /assets/img/smilies/rolleyes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/rolleyes.png -------------------------------------------------------------------------------- /assets/img/smilies/shit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/shit.png -------------------------------------------------------------------------------- /assets/img/smilies/smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/smile.png -------------------------------------------------------------------------------- /assets/img/smilies/symbols.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/symbols.png -------------------------------------------------------------------------------- /assets/img/smilies/twisted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/twisted.png -------------------------------------------------------------------------------- /assets/img/smilies/wink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/img/smilies/wink.png -------------------------------------------------------------------------------- /assets/js/buttons/images/accordion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/accordion.png -------------------------------------------------------------------------------- /assets/js/buttons/images/bdbtn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/bdbtn.png -------------------------------------------------------------------------------- /assets/js/buttons/images/bilibili.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/bilibili.png -------------------------------------------------------------------------------- /assets/js/buttons/images/danger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/danger.png -------------------------------------------------------------------------------- /assets/js/buttons/images/dangerbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/dangerbox.png -------------------------------------------------------------------------------- /assets/js/buttons/images/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/info.png -------------------------------------------------------------------------------- /assets/js/buttons/images/infobox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/infobox.png -------------------------------------------------------------------------------- /assets/js/buttons/images/kbd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/kbd.png -------------------------------------------------------------------------------- /assets/js/buttons/images/mark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/mark.png -------------------------------------------------------------------------------- /assets/js/buttons/images/music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/music.png -------------------------------------------------------------------------------- /assets/js/buttons/images/reply.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/reply.png -------------------------------------------------------------------------------- /assets/js/buttons/images/striped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/striped.png -------------------------------------------------------------------------------- /assets/js/buttons/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/success.png -------------------------------------------------------------------------------- /assets/js/buttons/images/successbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/successbox.png -------------------------------------------------------------------------------- /assets/js/buttons/images/title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/title.png -------------------------------------------------------------------------------- /assets/js/buttons/images/vqq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/vqq.png -------------------------------------------------------------------------------- /assets/js/buttons/images/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/warning.png -------------------------------------------------------------------------------- /assets/js/buttons/images/warningbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/warningbox.png -------------------------------------------------------------------------------- /assets/js/buttons/images/youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/assets/js/buttons/images/youtube.png -------------------------------------------------------------------------------- /assets/js/comments.min.js: -------------------------------------------------------------------------------- 1 | jQuery(document).ready(function(e){var t=e("#cancel-comment-reply-link"),n=t.text(),o="list";e(document).on("submit","#commentform",function(){return e.ajax({url:ajaxcomment.ajax_url,data:e(this).serialize()+"&action=ajax_comment",type:e(this).attr("method"),beforeSend:function(){layer.msg(ajaxcomment.compost)},error:function(e){layer.msg(e.responseText)},success:function(t){e("textarea").each(function(){this.value=""});var n=addComment,r=n.I("cancel-comment-reply-link"),m=n.I("wp-temp-form-div"),a=n.I(n.respondId),c=(n.I("comment_post_ID").value,n.I("comment_parent").value);"0"!=c?e("#comment-"+c).append('"):"asc"==ajaxcomment.order?e("."+o).append(t):e("."+o).prepend(t),layer.msg(ajaxcomment.comsucc),r.style.display="none",r.onclick=null,n.I("comment_parent").value="0",m&&a&&(m.parentNode.insertBefore(a,m),m.parentNode.removeChild(m))}}),!1}),addComment={moveForm:function(o,r,m){var a,c=this,l=c.I(o),p=c.I(m),d=c.I("cancel-comment-reply-link"),i=c.I("comment_parent");c.I("comment_post_ID");t.text(n),c.respondId=m,c.I("wp-temp-form-div")||(a=document.createElement("div"),a.id="wp-temp-form-div",a.style.display="none",p.parentNode.insertBefore(a,p)),l?l.parentNode.insertBefore(p,l.nextSibling):(temp=c.I("wp-temp-form-div"),c.I("comment_parent").value="0",temp.parentNode.insertBefore(p,temp),temp.parentNode.removeChild(temp)),e("body").animate({scrollTop:e("#respond").offset().top-150},400),i.value=r,d.style.display="",d.onclick=function(){var e=addComment,t=e.I("wp-temp-form-div"),n=e.I(e.respondId);return e.I("comment_parent").value="0",t&&n&&(t.parentNode.insertBefore(n,t),t.parentNode.removeChild(t)),this.style.display="none",this.onclick=null,!1};try{c.I("comment").focus()}catch(e){}return!1},I:function(e){return document.getElementById(e)},createButterbar:function(e){layer.msg(e)}}}); -------------------------------------------------------------------------------- /assets/js/widget.min.js: -------------------------------------------------------------------------------- 1 | jQuery(document).ready(function ($) { 2 | $(document).on('click', "button[class*='upload_']", function (e) { 3 | e.preventDefault() 4 | var $button = $(this) 5 | if (file_frame) { 6 | file_frame.open() 7 | return 8 | } 9 | var file_frame = (wp.media.frames.file_frame = wp.media({ library: { type: 'image' }, multiple: false })) 10 | file_frame.on('select', function () { 11 | var attachment = file_frame.state().get('selection').first().toJSON() 12 | $button.siblings('input').val(attachment.url).change() 13 | }) 14 | file_frame.open() 15 | }) 16 | }) 17 | -------------------------------------------------------------------------------- /crowdin.yml: -------------------------------------------------------------------------------- 1 | files: 2 | - source: /languages/kratos.pot 3 | translation: /languages/%locale_with_underscore%.po 4 | -------------------------------------------------------------------------------- /functions.php: -------------------------------------------------------------------------------- 1 | 6 | * @license GPL-3.0 License 7 | * @version 2025.02.08 8 | */ 9 | 10 | define('THEME_VERSION', '4.3.2'); 11 | 12 | if (defined('WP_USE_THEMES') && WP_USE_THEMES === false) { 13 | return; 14 | } 15 | 16 | // 主题配置 17 | require get_template_directory() . '/inc/codestar-framework/autoload.php'; 18 | 19 | // 更新配置 20 | require get_template_directory() . '/inc/update-checker/autoload.php'; 21 | 22 | // 核心配置 23 | require get_template_directory() . '/inc/theme-core.php'; 24 | 25 | // 站点配置 26 | require get_template_directory() . '/inc/theme-setting.php'; 27 | 28 | // 文章配置 29 | require get_template_directory() . '/inc/theme-article.php'; 30 | 31 | // 小工具配置 32 | require get_template_directory() . '/inc/theme-widgets.php'; 33 | 34 | // 文章增强 35 | require get_template_directory() . '/inc/theme-shortcode.php'; 36 | 37 | // 添加导航目录 38 | require get_template_directory() . '/inc/theme-navwalker.php'; 39 | 40 | // 对象存储配置 41 | require get_template_directory() . '/inc/theme-dogecloud.php'; 42 | 43 | // ImageX 图片服务 44 | require get_template_directory() . '/inc/theme-volcengine.php'; 45 | 46 | // SMTP 配置 47 | require get_template_directory() . '/inc/theme-smtp.php'; 48 | -------------------------------------------------------------------------------- /inc/codestar-framework/assets/images/checkerboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/inc/codestar-framework/assets/images/checkerboard.png -------------------------------------------------------------------------------- /inc/codestar-framework/assets/images/wp-logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /inc/codestar-framework/assets/images/wp-plugin-logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /inc/codestar-framework/assets/js/gutenberg.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * ----------------------------------------------------------- 4 | * 5 | * Codestar Framework Gutenberg Block 6 | * A Simple and Lightweight WordPress Option Framework 7 | * 8 | * ----------------------------------------------------------- 9 | * 10 | */ 11 | ( function( blocks, blockEditor, element, components ) { 12 | 13 | if ( !window.csf_gutenberg_blocks ) { return; } 14 | 15 | Object.values(window.csf_gutenberg_blocks).forEach( function( block ) { 16 | 17 | var registerBlockType = blocks.registerBlockType; 18 | var PlainText = blockEditor.PlainText; 19 | var createElement = element.createElement; 20 | var RawHTML = element.RawHTML; 21 | var Button = components.Button; 22 | 23 | registerBlockType('csf-gutenberg-block/block-'+block.hash, { 24 | title: block.gutenberg.title, 25 | description: block.gutenberg.description, 26 | icon: block.gutenberg.icon || 'screenoptions', 27 | category: block.gutenberg.category || 'widgets', 28 | keywords: block.gutenberg.keywords, 29 | supports: { 30 | html: false, 31 | className: false, 32 | customClassName: false, 33 | }, 34 | attributes: { 35 | shortcode: { 36 | string: 'string', 37 | source: 'text', 38 | } 39 | }, 40 | edit: function (props) { 41 | return ( 42 | createElement('div', {className: 'csf-shortcode-block'}, 43 | 44 | createElement(Button, { 45 | 'data-modal-id': block.modal_id, 46 | 'data-gutenberg-id': block.hash, 47 | className: 'is-secondary csf-shortcode-button', 48 | onClick: function () { 49 | window.csf_gutenberg_props = props; 50 | }, 51 | }, block.button_title ), 52 | 53 | createElement(PlainText, { 54 | placeholder: block.gutenberg.placeholder, 55 | className: 'input-control blocks-shortcode__textarea', 56 | onChange: function (value) { 57 | props.setAttributes({ 58 | shortcode: value 59 | }); 60 | }, 61 | value: props.attributes.shortcode 62 | }) 63 | 64 | ) 65 | ); 66 | }, 67 | save: function (props) { 68 | return createElement(RawHTML, {}, props.attributes.shortcode); 69 | } 70 | }); 71 | 72 | }); 73 | 74 | })( 75 | window.wp.blocks, 76 | window.wp.blockEditor, 77 | window.wp.element, 78 | window.wp.components 79 | ); 80 | -------------------------------------------------------------------------------- /inc/codestar-framework/assets/scss/vendor/_navmenu.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * 08. Nav Menu 3 | */ 4 | .csf-nav-menu-options{ 5 | clear: both; 6 | float: left; 7 | width: 100%; 8 | 9 | > .csf-fields{ 10 | margin-left: -10px; 11 | margin-top: 10px; 12 | margin-bottom: 10px; 13 | border-top: 1px solid #eee; 14 | border-bottom: 1px solid #eee; 15 | 16 | > .csf-field{ 17 | padding: 12px 14px 12px 12px; 18 | 19 | .csf-title{ 20 | float: none; 21 | width: 100%; 22 | margin-bottom: 5px; 23 | } 24 | 25 | .csf-fieldset{ 26 | float: none; 27 | width: 100%; 28 | } 29 | } 30 | } 31 | 32 | .csf-field-text input{ 33 | width: 100%; 34 | } 35 | 36 | .csf-field-notice .csf-notice{ 37 | padding: 15px; 38 | } 39 | } 40 | 41 | .csf-nav-menu-title{ 42 | padding: 12px 14px 12px 12px; 43 | background-color: #f5f5f5; 44 | border-top: 1px solid #eee; 45 | border-bottom: 1px solid #eee; 46 | 47 | &:first-child{ 48 | border-top: 0; 49 | } 50 | 51 | h4{ 52 | margin: 0; 53 | padding: 0; 54 | color: #23282d; 55 | } 56 | } 57 | 58 | .csf-nav-menu-icon{ 59 | margin-right: 5px; 60 | } 61 | -------------------------------------------------------------------------------- /inc/codestar-framework/assets/scss/vendor/_profile.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * 06. Profile 3 | */ 4 | .csf-profile-options{ 5 | 6 | > h2 > .fa { 7 | padding-right: 7px; 8 | } 9 | 10 | > .csf-field{ 11 | max-width: 750px; 12 | padding: 15px 0; 13 | border-top: none !important; 14 | 15 | > .csf-title{ 16 | width: 200px; 17 | 18 | h4{ 19 | font-size: 14px; 20 | font-weight: 600; 21 | line-height: 1.3; 22 | display: inline-block; 23 | vertical-align: middle; 24 | } 25 | } 26 | 27 | > .csf-fieldset{ 28 | width: calc(100% - 220px); 29 | 30 | > .csf-help{ 31 | top: -15px; 32 | right: -5px; 33 | } 34 | } 35 | } 36 | 37 | > .csf-field-heading{ 38 | font-size: 1.1em; 39 | } 40 | 41 | > .csf-field-subheading{ 42 | font-size: 12px; 43 | } 44 | 45 | > .csf-field-subheading, 46 | > .csf-field-heading{ 47 | margin: 10px 0; 48 | padding: 15px !important; 49 | border: 1px solid #ddd; 50 | } 51 | 52 | > .csf-field-submessage{ 53 | margin: 20px 0; 54 | 55 | .csf-submessage{ 56 | padding: 10px; 57 | border-left-width: 1px; 58 | border-left-style: solid; 59 | border-right-width: 1px; 60 | border-right-style: solid; 61 | } 62 | } 63 | 64 | > .csf-field-notice{ 65 | background-color: transparent; 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /inc/codestar-framework/assets/scss/vendor/_taxonomy.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * 06. Taxonomy 3 | */ 4 | .csf-taxonomy{ 5 | max-width: 95%; 6 | 7 | > .csf-field{ 8 | border-top: none !important; 9 | } 10 | 11 | > .csf-field-heading{ 12 | font-size: 1.1em; 13 | padding: 20px !important; 14 | border: 1px solid #ddd; 15 | } 16 | 17 | > .csf-field-subheading{ 18 | font-size: 12px; 19 | padding: 15px !important; 20 | border: 1px solid #ddd; 21 | } 22 | 23 | > .csf-field-submessage{ 24 | 25 | .csf-submessage{ 26 | padding: 15px; 27 | border-left-width: 1px; 28 | border-left-style: solid; 29 | border-right-width: 1px; 30 | border-right-style: solid; 31 | } 32 | } 33 | 34 | > .csf-field-notice{ 35 | background-color: transparent; 36 | } 37 | 38 | .csf-section-title{ 39 | display: block; 40 | padding: 15px ; 41 | background-color: #f9f9f9; 42 | border: 1px solid #e5e5e5; 43 | box-shadow: 0 1px 1px rgba(0,0,0,0.04); 44 | } 45 | } 46 | 47 | .csf-taxonomy-add-fields{ 48 | 49 | > .csf-field{ 50 | padding: 8px 0; 51 | 52 | > .csf-title{ 53 | float: none; 54 | width: 100%; 55 | padding: 2px 2px 4px 0; 56 | 57 | h4{ 58 | font-size: 12px; 59 | font-weight: normal; 60 | } 61 | } 62 | 63 | > .csf-fieldset{ 64 | float: none; 65 | width: 100%; 66 | 67 | > .csf-help{ 68 | right: -5px; 69 | } 70 | } 71 | } 72 | 73 | + p.submit{ 74 | margin-top: 0; 75 | } 76 | } 77 | 78 | .csf-taxonomy-edit-fields{ 79 | 80 | > .csf-field{ 81 | padding: 20px 0; 82 | 83 | > .csf-title{ 84 | width: 200px; 85 | 86 | h4{ 87 | font-size: 14px; 88 | font-weight: 600; 89 | line-height: 1.3; 90 | display: inline-block; 91 | vertical-align: middle; 92 | } 93 | } 94 | 95 | > .csf-fieldset{ 96 | width: calc(100% - 220px); 97 | 98 | > .csf-help{ 99 | top: -5px; 100 | right: -5px; 101 | } 102 | } 103 | } 104 | 105 | > .csf-field-submessage{ 106 | margin: 20px 0; 107 | } 108 | 109 | > .csf-field-subheading, 110 | > .csf-field-heading{ 111 | margin: 20px 0; 112 | border: 1px solid #ddd; 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /inc/codestar-framework/assets/scss/vendor/_widget.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * 04. Widget 3 | */ 4 | .csf-widgets{ 5 | 6 | > .csf-field{ 7 | position: relative; 8 | top: -1px; 9 | margin-left: -15px; 10 | margin-right: -15px; 11 | padding: 12px 15px; 12 | 13 | .csf-title{ 14 | float: none; 15 | width: 100%; 16 | margin-bottom: 5px; 17 | } 18 | 19 | .csf-fieldset{ 20 | float: none; 21 | width: 100%; 22 | } 23 | } 24 | 25 | .csf-field-text input{ 26 | width: 100%; 27 | } 28 | 29 | .csf-field-notice .csf-notice{ 30 | padding: 15px; 31 | } 32 | } 33 | 34 | .control-section{ 35 | 36 | .csf-widgets{ 37 | 38 | > .csf-field{ 39 | margin-left: -10px; 40 | margin-right: -10px; 41 | padding: 10px 12px; 42 | } 43 | } 44 | } 45 | 46 | .wp-block{ 47 | 48 | .csf-widgets{ 49 | font-size: 13px; 50 | 51 | > .csf-field{ 52 | margin-left: -10px; 53 | margin-right: -10px; 54 | 55 | .button-primary{ 56 | color: #fff; 57 | } 58 | 59 | > .csf-title{ 60 | 61 | > h4{ 62 | font-size: 13px; 63 | } 64 | } 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /inc/codestar-framework/autoload.php: -------------------------------------------------------------------------------- 1 | 8 | * @link http://codestarframework.com 9 | * @copyright 2015-2021 Codestar 10 | * 11 | * 12 | * Plugin Name: Codestar Framework 13 | * Plugin URI: http://codestarframework.com/ 14 | * Author: Codestar 15 | * Author URI: http://codestarthemes.com/ 16 | * Version: 2.2.4 17 | * Description: A Simple and Lightweight WordPress Option Framework for Themes and Plugins 18 | * Text Domain: csf 19 | * Domain Path: /languages 20 | * 21 | */ 22 | require_once plugin_dir_path(__FILE__) . 'classes/setup.class.php'; 23 | require get_template_directory() . '/inc/theme-options.php'; 24 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/accordion/accordion.php: -------------------------------------------------------------------------------- 1 | field_before(); 27 | 28 | echo '
'; 29 | 30 | foreach ($this->field['accordions'] as $key => $accordion) { 31 | 32 | echo '
'; 33 | 34 | $icon = (!empty($accordion['icon'])) ? 'csf--icon ' . $accordion['icon'] : 'csf-accordion-icon fas fa-angle-right'; 35 | 36 | echo '

'; 37 | echo ''; 38 | echo esc_html($accordion['title']); 39 | echo '

'; 40 | 41 | echo '
'; 42 | 43 | foreach ($accordion['fields'] as $field) { 44 | 45 | if (in_array($field['type'], $unallows)) { 46 | $field['_notice'] = true; 47 | } 48 | 49 | $field_id = (isset($field['id'])) ? $field['id'] : ''; 50 | $field_default = (isset($field['default'])) ? $field['default'] : ''; 51 | $field_value = (isset($this->value[$field_id])) ? $this->value[$field_id] : $field_default; 52 | $unique_id = (!empty($this->unique)) ? $this->unique . '[' . $this->field['id'] . ']' : $this->field['id']; 53 | 54 | CSF::field($field, $field_value, $unique_id, 'field/accordion'); 55 | } 56 | 57 | echo '
'; 58 | 59 | echo '
'; 60 | } 61 | 62 | echo '
'; 63 | 64 | echo $this->field_after(); 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/backup/backup.php: -------------------------------------------------------------------------------- 1 | unique; 25 | $nonce = wp_create_nonce('csf_backup_nonce'); 26 | $export = add_query_arg(array('action' => 'csf-export', 'unique' => $unique, 'nonce' => $nonce), admin_url('admin-ajax.php')); 27 | 28 | echo $this->field_before(); 29 | 30 | echo ''; 31 | echo ''; 32 | echo '
'; 33 | echo ''; 34 | echo '' . esc_html__('Export & Download', 'csf') . ''; 35 | echo '
'; 36 | echo ''; 37 | 38 | echo $this->field_after(); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/button_set/button_set.php: -------------------------------------------------------------------------------- 1 | field, array( 25 | 'multiple' => false, 26 | 'options' => array(), 27 | 'query_args' => array(), 28 | )); 29 | 30 | $value = (is_array($this->value)) ? $this->value : array_filter((array) $this->value); 31 | 32 | echo $this->field_before(); 33 | 34 | if (isset($this->field['options'])) { 35 | 36 | $options = $this->field['options']; 37 | $options = (is_array($options)) ? $options : array_filter($this->field_data($options, false, $args['query_args'])); 38 | 39 | if (is_array($options) && !empty($options)) { 40 | 41 | echo '
'; 42 | 43 | foreach ($options as $key => $option) { 44 | 45 | $type = ($args['multiple']) ? 'checkbox' : 'radio'; 46 | $extra = ($args['multiple']) ? '[]' : ''; 47 | $active = (in_array($key, $value) || (empty($value) && empty($key))) ? ' csf--active' : ''; 48 | $checked = (in_array($key, $value) || (empty($value) && empty($key))) ? ' checked' : ''; 49 | 50 | echo '
'; 51 | echo 'field_attributes() . esc_attr($checked) . '/>'; 52 | echo $option; 53 | echo '
'; 54 | } 55 | 56 | echo '
'; 57 | } else { 58 | 59 | echo (!empty($this->field['empty_message'])) ? esc_attr($this->field['empty_message']) : esc_html__('No data available.', 'csf'); 60 | } 61 | } 62 | 63 | echo $this->field_after(); 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/callback/callback.php: -------------------------------------------------------------------------------- 1 | field['function']) && is_callable($this->field['function'])) { 25 | 26 | $args = (isset($this->field['args'])) ? $this->field['args'] : null; 27 | 28 | call_user_func($this->field['function'], $args); 29 | } 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/code_editor/code_editor.php: -------------------------------------------------------------------------------- 1 | 2, 28 | 'lineNumbers' => true, 29 | 'theme' => 'default', 30 | 'mode' => 'htmlmixed', 31 | 'cdnURL' => $this->cdn_url . $this->version, 32 | ); 33 | 34 | $settings = (!empty($this->field['settings'])) ? $this->field['settings'] : array(); 35 | $settings = wp_parse_args($settings, $default_settings); 36 | 37 | echo $this->field_before(); 38 | echo ''; 39 | echo $this->field_after(); 40 | } 41 | 42 | public function enqueue() 43 | { 44 | 45 | $page = (!empty($_GET['page'])) ? sanitize_text_field(wp_unslash($_GET['page'])) : ''; 46 | 47 | // Do not loads CodeMirror in revslider page. 48 | if (in_array($page, array('revslider'))) { 49 | return; 50 | } 51 | 52 | if (!wp_script_is('csf-codemirror')) { 53 | wp_enqueue_script('csf-codemirror', esc_url($this->cdn_url . $this->version . '/codemirror.min.js'), array('csf'), $this->version, true); 54 | wp_enqueue_script('csf-codemirror-loadmode', esc_url($this->cdn_url . $this->version . '/addon/mode/loadmode.min.js'), array('csf-codemirror'), $this->version, true); 55 | } 56 | 57 | if (!wp_style_is('csf-codemirror')) { 58 | wp_enqueue_style('csf-codemirror', esc_url($this->cdn_url . $this->version . '/codemirror.min.css'), array(), $this->version); 59 | } 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/color/color.php: -------------------------------------------------------------------------------- 1 | field['default'])) ? ' data-default-color="' . esc_attr($this->field['default']) . '"' : ''; 25 | 26 | echo $this->field_before(); 27 | echo 'field_attributes() . '/>'; 28 | echo $this->field_after(); 29 | } 30 | 31 | public function output() 32 | { 33 | 34 | $output = ''; 35 | $elements = (is_array($this->field['output'])) ? $this->field['output'] : array_filter((array) $this->field['output']); 36 | $important = (!empty($this->field['output_important'])) ? '!important' : ''; 37 | $mode = (!empty($this->field['output_mode'])) ? $this->field['output_mode'] : 'color'; 38 | 39 | if (!empty($elements) && isset($this->value) && $this->value !== '') { 40 | foreach ($elements as $key_property => $element) { 41 | if (is_numeric($key_property)) { 42 | $output = implode(',', $elements) . '{' . $mode . ':' . $this->value . $important . ';}'; 43 | break; 44 | } else { 45 | $output .= $element . '{' . $key_property . ':' . $this->value . $important . '}'; 46 | } 47 | } 48 | } 49 | 50 | $this->parent->output_css .= $output; 51 | 52 | return $output; 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/color_group/color_group.php: -------------------------------------------------------------------------------- 1 | field['options'])) ? $this->field['options'] : array(); 25 | 26 | echo $this->field_before(); 27 | 28 | if (!empty($options)) { 29 | foreach ($options as $key => $option) { 30 | 31 | $color_value = (!empty($this->value[$key])) ? $this->value[$key] : ''; 32 | $default_attr = (!empty($this->field['default'][$key])) ? ' data-default-color="' . esc_attr($this->field['default'][$key]) . '"' : ''; 33 | 34 | echo '
'; 35 | echo '
' . $option . '
'; 36 | echo 'field_attributes() . '/>'; 37 | echo '
'; 38 | } 39 | } 40 | 41 | echo $this->field_after(); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/content/content.php: -------------------------------------------------------------------------------- 1 | field['content'])) { 25 | 26 | echo $this->field['content']; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/date/date.php: -------------------------------------------------------------------------------- 1 | 'mm/dd/yy', 26 | ); 27 | 28 | $settings = (!empty($this->field['settings'])) ? $this->field['settings'] : array(); 29 | $settings = wp_parse_args($settings, $default_settings); 30 | 31 | echo $this->field_before(); 32 | 33 | if (!empty($this->field['from_to'])) { 34 | 35 | $args = wp_parse_args($this->field, array( 36 | 'text_from' => esc_html__('From', 'csf'), 37 | 'text_to' => esc_html__('To', 'csf'), 38 | )); 39 | 40 | $value = wp_parse_args($this->value, array( 41 | 'from' => '', 42 | 'to' => '', 43 | )); 44 | 45 | echo ''; 46 | echo ''; 47 | } else { 48 | 49 | echo 'field_attributes() . '/>'; 50 | } 51 | 52 | echo '
'; 53 | 54 | echo $this->field_after(); 55 | } 56 | 57 | public function enqueue() 58 | { 59 | 60 | if (!wp_script_is('jquery-ui-datepicker')) { 61 | wp_enqueue_script('jquery-ui-datepicker'); 62 | } 63 | } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/fieldset/fieldset.php: -------------------------------------------------------------------------------- 1 | field_before(); 25 | 26 | echo '
'; 27 | 28 | foreach ($this->field['fields'] as $field) { 29 | 30 | $field_id = (isset($field['id'])) ? $field['id'] : ''; 31 | $field_default = (isset($field['default'])) ? $field['default'] : ''; 32 | $field_value = (isset($this->value[$field_id])) ? $this->value[$field_id] : $field_default; 33 | $unique_id = (!empty($this->unique)) ? $this->unique . '[' . $this->field['id'] . ']' : $this->field['id']; 34 | 35 | CSF::field($field, $field_value, $unique_id, 'field/fieldset'); 36 | } 37 | 38 | echo '
'; 39 | 40 | echo $this->field_after(); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/gallery/gallery.php: -------------------------------------------------------------------------------- 1 | field, array( 25 | 'add_title' => esc_html__('Add Gallery', 'csf'), 26 | 'edit_title' => esc_html__('Edit Gallery', 'csf'), 27 | 'clear_title' => esc_html__('Clear', 'csf'), 28 | )); 29 | 30 | $hidden = (empty($this->value)) ? ' hidden' : ''; 31 | 32 | echo $this->field_before(); 33 | 34 | echo ''; 45 | 46 | echo '' . $args['add_title'] . ''; 47 | echo '' . $args['edit_title'] . ''; 48 | echo '' . $args['clear_title'] . ''; 49 | echo 'field_attributes() . '/>'; 50 | 51 | echo $this->field_after(); 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/heading/heading.php: -------------------------------------------------------------------------------- 1 | field['content'])) ? $this->field['content'] : ''; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/image_select/image_select.php: -------------------------------------------------------------------------------- 1 | field, array( 25 | 'multiple' => false, 26 | 'inline' => false, 27 | 'options' => array(), 28 | )); 29 | 30 | $inline = ($args['inline']) ? ' csf--inline-list' : ''; 31 | 32 | $value = (is_array($this->value)) ? $this->value : array_filter((array) $this->value); 33 | 34 | echo $this->field_before(); 35 | 36 | if (!empty($args['options'])) { 37 | 38 | echo '
'; 39 | 40 | $num = 1; 41 | 42 | foreach ($args['options'] as $key => $option) { 43 | 44 | $type = ($args['multiple']) ? 'checkbox' : 'radio'; 45 | $extra = ($args['multiple']) ? '[]' : ''; 46 | $active = (in_array($key, $value)) ? ' csf--active' : ''; 47 | $checked = (in_array($key, $value)) ? ' checked' : ''; 48 | 49 | echo '
'; 50 | echo '
'; 51 | echo 'img-' . esc_attr($num++) . ''; 52 | echo 'field_attributes() . esc_attr($checked) . '/>'; 53 | echo '
'; 54 | echo '
'; 55 | } 56 | 57 | echo '
'; 58 | } 59 | 60 | echo $this->field_after(); 61 | } 62 | 63 | public function output() 64 | { 65 | 66 | $output = ''; 67 | $bg_image = array(); 68 | $important = (!empty($this->field['output_important'])) ? '!important' : ''; 69 | $elements = (is_array($this->field['output'])) ? join(',', $this->field['output']) : $this->field['output']; 70 | 71 | if (!empty($elements) && isset($this->value) && $this->value !== '') { 72 | $output = $elements . '{background-image:url(' . $this->value . ')' . $important . ';}'; 73 | } 74 | 75 | $this->parent->output_css .= $output; 76 | 77 | return $output; 78 | } 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/index.php: -------------------------------------------------------------------------------- 1 | field['style'])) ? $this->field['style'] : 'normal'; 25 | 26 | echo (!empty($this->field['content'])) ? '
' . $this->field['content'] . '
' : ''; 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/number/number.php: -------------------------------------------------------------------------------- 1 | field, array( 25 | 'unit' => '', 26 | )); 27 | 28 | echo $this->field_before(); 29 | echo '
'; 30 | echo 'field_attributes(array('class' => 'csf-input-number')) . ' step="any" />'; 31 | echo (!empty($args['unit'])) ? '' . esc_attr($args['unit']) . '' : ''; 32 | echo '
'; 33 | echo $this->field_after(); 34 | } 35 | 36 | public function output() 37 | { 38 | 39 | $output = ''; 40 | $elements = (is_array($this->field['output'])) ? $this->field['output'] : array_filter((array) $this->field['output']); 41 | $important = (!empty($this->field['output_important'])) ? '!important' : ''; 42 | $mode = (!empty($this->field['output_mode'])) ? $this->field['output_mode'] : 'width'; 43 | $unit = (!empty($this->field['unit'])) ? $this->field['unit'] : 'px'; 44 | 45 | if (!empty($elements) && isset($this->value) && $this->value !== '') { 46 | foreach ($elements as $key_property => $element) { 47 | if (is_numeric($key_property)) { 48 | if ($mode) { 49 | $output = implode(',', $elements) . '{' . $mode . ':' . $this->value . $unit . $important . ';}'; 50 | } 51 | break; 52 | } else { 53 | $output .= $element . '{' . $key_property . ':' . $this->value . $unit . $important . '}'; 54 | } 55 | } 56 | } 57 | 58 | $this->parent->output_css .= $output; 59 | 60 | return $output; 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/palette/palette.php: -------------------------------------------------------------------------------- 1 | field['options'])) ? $this->field['options'] : array(); 25 | 26 | echo $this->field_before(); 27 | 28 | if (!empty($palette)) { 29 | 30 | echo '
'; 31 | 32 | foreach ($palette as $key => $colors) { 33 | 34 | $active = ($key === $this->value) ? ' csf--active' : ''; 35 | $checked = ($key === $this->value) ? ' checked' : ''; 36 | 37 | echo '
'; 38 | 39 | if (!empty($colors)) { 40 | 41 | foreach ($colors as $color) { 42 | 43 | echo ''; 44 | } 45 | } 46 | 47 | echo 'field_attributes() . esc_attr($checked) . '/>'; 48 | echo '
'; 49 | } 50 | 51 | echo '
'; 52 | } 53 | 54 | echo $this->field_after(); 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/sortable/sortable.php: -------------------------------------------------------------------------------- 1 | field_before(); 25 | 26 | echo '
'; 27 | 28 | $pre_sortby = array(); 29 | $pre_fields = array(); 30 | 31 | // Add array-keys to defined fields for sort by 32 | foreach ($this->field['fields'] as $key => $field) { 33 | $pre_fields[$field['id']] = $field; 34 | } 35 | 36 | // Set sort by by saved-value or default-value 37 | if (!empty($this->value)) { 38 | 39 | foreach ($this->value as $key => $value) { 40 | $pre_sortby[$key] = $pre_fields[$key]; 41 | } 42 | 43 | $diff = array_diff_key($pre_fields, $this->value); 44 | 45 | if (!empty($diff)) { 46 | $pre_sortby = array_merge($pre_sortby, $diff); 47 | } 48 | } else { 49 | 50 | foreach ($pre_fields as $key => $value) { 51 | $pre_sortby[$key] = $value; 52 | } 53 | } 54 | 55 | foreach ($pre_sortby as $key => $field) { 56 | 57 | echo '
'; 58 | 59 | echo '
'; 60 | 61 | $field_default = (isset($this->field['default'][$key])) ? $this->field['default'][$key] : ''; 62 | $field_value = (isset($this->value[$key])) ? $this->value[$key] : $field_default; 63 | $unique_id = (!empty($this->unique)) ? $this->unique . '[' . $this->field['id'] . ']' : $this->field['id']; 64 | 65 | CSF::field($field, $field_value, $unique_id, 'field/sortable'); 66 | 67 | echo '
'; 68 | 69 | echo '
'; 70 | 71 | echo '
'; 72 | } 73 | 74 | echo '
'; 75 | 76 | echo $this->field_after(); 77 | } 78 | 79 | public function enqueue() 80 | { 81 | 82 | if (!wp_script_is('jquery-ui-sortable')) { 83 | wp_enqueue_script('jquery-ui-sortable'); 84 | } 85 | } 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/spinner/spinner.php: -------------------------------------------------------------------------------- 1 | field, array( 25 | 'max' => 100, 26 | 'min' => 0, 27 | 'step' => 1, 28 | 'unit' => '', 29 | )); 30 | 31 | echo $this->field_before(); 32 | 33 | echo '
field_attributes(array('class' => 'csf-input-number')) . ' data-min="' . esc_attr($args['min']) . '" data-max="' . esc_attr($args['max']) . '" data-step="' . esc_attr($args['step']) . '" data-unit="' . esc_attr($args['unit']) . '" step="any" />
'; 34 | 35 | echo $this->field_after(); 36 | } 37 | 38 | public function enqueue() 39 | { 40 | 41 | if (!wp_script_is('jquery-ui-spinner')) { 42 | wp_enqueue_script('jquery-ui-spinner'); 43 | } 44 | } 45 | 46 | public function output() 47 | { 48 | 49 | $output = ''; 50 | $elements = (is_array($this->field['output'])) ? $this->field['output'] : array_filter((array) $this->field['output']); 51 | $important = (!empty($this->field['output_important'])) ? '!important' : ''; 52 | $mode = (!empty($this->field['output_mode'])) ? $this->field['output_mode'] : 'width'; 53 | $unit = (!empty($this->field['unit'])) ? $this->field['unit'] : 'px'; 54 | 55 | if (!empty($elements) && isset($this->value) && $this->value !== '') { 56 | foreach ($elements as $key_property => $element) { 57 | if (is_numeric($key_property)) { 58 | if ($mode) { 59 | $output = implode(',', $elements) . '{' . $mode . ':' . $this->value . $unit . $important . ';}'; 60 | } 61 | break; 62 | } else { 63 | $output .= $element . '{' . $key_property . ':' . $this->value . $unit . $important . '}'; 64 | } 65 | } 66 | } 67 | 68 | $this->parent->output_css .= $output; 69 | 70 | return $output; 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/subheading/subheading.php: -------------------------------------------------------------------------------- 1 | field['content'])) ? $this->field['content'] : ''; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/submessage/submessage.php: -------------------------------------------------------------------------------- 1 | field['style'])) ? $this->field['style'] : 'normal'; 25 | 26 | echo '
' . $this->field['content'] . '
'; 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/switcher/switcher.php: -------------------------------------------------------------------------------- 1 | value)) ? ' csf--active' : ''; 25 | $text_on = (!empty($this->field['text_on'])) ? $this->field['text_on'] : esc_html__('On', 'csf'); 26 | $text_off = (!empty($this->field['text_off'])) ? $this->field['text_off'] : esc_html__('Off', 'csf'); 27 | $text_width = (!empty($this->field['text_width'])) ? ' style="width: ' . esc_attr($this->field['text_width']) . 'px;"' : ''; 28 | 29 | echo $this->field_before(); 30 | 31 | echo '
'; 32 | echo '' . esc_attr($text_on) . ''; 33 | echo '' . esc_attr($text_off) . ''; 34 | echo ''; 35 | echo 'field_attributes() . ' />'; 36 | echo '
'; 37 | 38 | echo (!empty($this->field['label'])) ? '' . esc_attr($this->field['label']) . '' : ''; 39 | 40 | echo $this->field_after(); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/tabbed/tabbed.php: -------------------------------------------------------------------------------- 1 | field_before(); 27 | 28 | echo '
'; 29 | foreach ($this->field['tabs'] as $key => $tab) { 30 | 31 | $tabbed_icon = (!empty($tab['icon'])) ? '' : ''; 32 | $tabbed_active = (empty($key)) ? 'csf-tabbed-active' : ''; 33 | 34 | echo '' . $tabbed_icon . esc_attr($tab['title']) . ''; 35 | } 36 | echo '
'; 37 | 38 | echo '
'; 39 | foreach ($this->field['tabs'] as $key => $tab) { 40 | 41 | $tabbed_hidden = (!empty($key)) ? ' hidden' : ''; 42 | 43 | echo '
'; 44 | 45 | foreach ($tab['fields'] as $field) { 46 | 47 | if (in_array($field['type'], $unallows)) { 48 | $field['_notice'] = true; 49 | } 50 | 51 | $field_id = (isset($field['id'])) ? $field['id'] : ''; 52 | $field_default = (isset($field['default'])) ? $field['default'] : ''; 53 | $field_value = (isset($this->value[$field_id])) ? $this->value[$field_id] : $field_default; 54 | $unique_id = (!empty($this->unique)) ? $this->unique . '[' . $this->field['id'] . ']' : $this->field['id']; 55 | 56 | CSF::field($field, $field_value, $unique_id, 'field/tabbed'); 57 | } 58 | 59 | echo '
'; 60 | } 61 | echo '
'; 62 | 63 | echo $this->field_after(); 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/text/text.php: -------------------------------------------------------------------------------- 1 | field['attributes']['type'])) ? $this->field['attributes']['type'] : 'text'; 25 | 26 | echo $this->field_before(); 27 | 28 | echo 'field_attributes() . ' />'; 29 | 30 | echo $this->field_after(); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /inc/codestar-framework/fields/textarea/textarea.php: -------------------------------------------------------------------------------- 1 | field_before(); 25 | echo $this->shortcoder(); 26 | echo ''; 27 | echo $this->field_after(); 28 | } 29 | 30 | public function shortcoder() 31 | { 32 | 33 | if (!empty($this->field['shortcoder'])) { 34 | 35 | $instances = (is_array($this->field['shortcoder'])) ? $this->field['shortcoder'] : array_filter((array) $this->field['shortcoder']); 36 | 37 | foreach ($instances as $instance_key) { 38 | 39 | if (isset(CSF::$shortcode_instances[$instance_key])) { 40 | 41 | $button_title = CSF::$shortcode_instances[$instance_key]['button_title']; 42 | 43 | echo '' . $button_title . ''; 44 | } 45 | } 46 | } 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /inc/codestar-framework/functions/helpers.php: -------------------------------------------------------------------------------- 1 | ='); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /inc/codestar-framework/functions/sanitize.php: -------------------------------------------------------------------------------- 1 | ID, $item, $depth, $args); 25 | $custom_fields = ob_get_clean(); 26 | 27 | $output .= preg_replace('/(?=<(fieldset|p)[^>]+class="[^"]*field-move)/', $custom_fields, $html); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /inc/codestar-framework/languages/zh_CN.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/inc/codestar-framework/languages/zh_CN.mo -------------------------------------------------------------------------------- /inc/update-checker/Puc/v5/PucFactory.php: -------------------------------------------------------------------------------- 1 | updateChecker->getUniqueName('uid')) ) { 25 | return; 26 | } 27 | $this->preAjaxRequest(); 28 | $info = $this->updateChecker->requestInfo(); 29 | if ( $info !== null ) { 30 | echo 'Successfully retrieved plugin info from the metadata URL:'; 31 | //phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_print_r -- For debugging output. 32 | echo '
', esc_html(print_r($info, true)), '
'; 33 | } else { 34 | echo 'Failed to retrieve plugin info from the metadata URL.'; 35 | } 36 | exit; 37 | } 38 | } 39 | 40 | endif; 41 | -------------------------------------------------------------------------------- /inc/update-checker/Puc/v5p2/DebugBar/PluginPanel.php: -------------------------------------------------------------------------------- 1 | row('Plugin file', htmlentities($this->updateChecker->pluginFile)); 16 | parent::displayConfigHeader(); 17 | } 18 | 19 | protected function getMetadataButton() { 20 | $requestInfoButton = ''; 21 | if ( function_exists('get_submit_button') ) { 22 | $requestInfoButton = get_submit_button( 23 | 'Request Info', 24 | 'secondary', 25 | 'puc-request-info-button', 26 | false, 27 | array('id' => $this->updateChecker->getUniqueName('request-info-button')) 28 | ); 29 | } 30 | return $requestInfoButton; 31 | } 32 | 33 | protected function getUpdateFields() { 34 | return array_merge( 35 | parent::getUpdateFields(), 36 | array('homepage', 'upgrade_notice', 'tested',) 37 | ); 38 | } 39 | } 40 | 41 | endif; 42 | -------------------------------------------------------------------------------- /inc/update-checker/Puc/v5p2/DebugBar/ThemePanel.php: -------------------------------------------------------------------------------- 1 | row('Theme directory', htmlentities($this->updateChecker->directoryName)); 17 | parent::displayConfigHeader(); 18 | } 19 | 20 | protected function getUpdateFields() { 21 | return array_merge(parent::getUpdateFields(), array('details_url')); 22 | } 23 | } 24 | 25 | endif; 26 | -------------------------------------------------------------------------------- /inc/update-checker/Puc/v5p2/Theme/Package.php: -------------------------------------------------------------------------------- 1 | stylesheet = $stylesheet; 21 | $this->theme = wp_get_theme($this->stylesheet); 22 | 23 | parent::__construct($updateChecker); 24 | } 25 | 26 | public function getInstalledVersion() { 27 | return $this->theme->get('Version'); 28 | } 29 | 30 | public function getAbsoluteDirectoryPath() { 31 | if ( method_exists($this->theme, 'get_stylesheet_directory') ) { 32 | return $this->theme->get_stylesheet_directory(); //Available since WP 3.4. 33 | } 34 | return get_theme_root($this->stylesheet) . '/' . $this->stylesheet; 35 | } 36 | 37 | /** 38 | * Get the value of a specific plugin or theme header. 39 | * 40 | * @param string $headerName 41 | * @param string $defaultValue 42 | * @return string Either the value of the header, or $defaultValue if the header doesn't exist or is empty. 43 | */ 44 | public function getHeaderValue($headerName, $defaultValue = '') { 45 | $value = $this->theme->get($headerName); 46 | if ( ($headerName === false) || ($headerName === '') ) { 47 | return $defaultValue; 48 | } 49 | return $value; 50 | } 51 | 52 | protected function getHeaderNames() { 53 | return array( 54 | 'Name' => 'Theme Name', 55 | 'ThemeURI' => 'Theme URI', 56 | 'Description' => 'Description', 57 | 'Author' => 'Author', 58 | 'AuthorURI' => 'Author URI', 59 | 'Version' => 'Version', 60 | 'Template' => 'Template', 61 | 'Status' => 'Status', 62 | 'Tags' => 'Tags', 63 | 'TextDomain' => 'Text Domain', 64 | 'DomainPath' => 'Domain Path', 65 | ); 66 | } 67 | } 68 | 69 | endif; 70 | -------------------------------------------------------------------------------- /inc/update-checker/Puc/v5p2/Theme/Update.php: -------------------------------------------------------------------------------- 1 | $this->slug, 23 | 'new_version' => $this->version, 24 | 'url' => $this->details_url, 25 | ); 26 | 27 | if ( !empty($this->download_url) ) { 28 | $update['package'] = $this->download_url; 29 | } 30 | 31 | return $update; 32 | } 33 | 34 | /** 35 | * Create a new instance of Theme_Update from its JSON-encoded representation. 36 | * 37 | * @param string $json Valid JSON string representing a theme information object. 38 | * @return self New instance of ThemeUpdate, or NULL on error. 39 | */ 40 | public static function fromJson($json) { 41 | $instance = new self(); 42 | if ( !parent::createFromJson($json, $instance) ) { 43 | return null; 44 | } 45 | return $instance; 46 | } 47 | 48 | /** 49 | * Create a new instance by copying the necessary fields from another object. 50 | * 51 | * @param \StdClass|self $object The source object. 52 | * @return self The new copy. 53 | */ 54 | public static function fromObject($object) { 55 | $update = new self(); 56 | $update->copyFields($object, $update); 57 | return $update; 58 | } 59 | 60 | /** 61 | * Basic validation. 62 | * 63 | * @param \StdClass $apiResponse 64 | * @return bool|\WP_Error 65 | */ 66 | protected function validateMetadata($apiResponse) { 67 | $required = array('version', 'details_url'); 68 | foreach($required as $key) { 69 | if ( !isset($apiResponse->$key) || empty($apiResponse->$key) ) { 70 | return new \WP_Error( 71 | 'tuc-invalid-metadata', 72 | sprintf('The theme metadata is missing the required "%s" key.', $key) 73 | ); 74 | } 75 | } 76 | return true; 77 | } 78 | 79 | protected function getFieldNames() { 80 | return array_merge(parent::getFieldNames(), self::$extraFields); 81 | } 82 | 83 | protected function getPrefixedFilter($tag) { 84 | return parent::getPrefixedFilter($tag) . '_theme'; 85 | } 86 | } 87 | 88 | endif; 89 | -------------------------------------------------------------------------------- /inc/update-checker/Puc/v5p2/Update.php: -------------------------------------------------------------------------------- 1 | slug = $this->slug; 31 | $update->new_version = $this->version; 32 | $update->package = $this->download_url; 33 | 34 | return $update; 35 | } 36 | } 37 | 38 | endif; 39 | -------------------------------------------------------------------------------- /inc/update-checker/Puc/v5p2/Utils.php: -------------------------------------------------------------------------------- 1 | $node) ) { 27 | $currentValue = $currentValue->$node; 28 | } else { 29 | return $default; 30 | } 31 | } 32 | 33 | return $currentValue; 34 | } 35 | 36 | /** 37 | * Get the first array element that is not empty. 38 | * 39 | * @param array $values 40 | * @param mixed|null $default Returns this value if there are no non-empty elements. 41 | * @return mixed|null 42 | */ 43 | public static function findNotEmpty($values, $default = null) { 44 | if ( empty($values) ) { 45 | return $default; 46 | } 47 | 48 | foreach ($values as $value) { 49 | if ( !empty($value) ) { 50 | return $value; 51 | } 52 | } 53 | 54 | return $default; 55 | } 56 | 57 | /** 58 | * Check if the input string starts with the specified prefix. 59 | * 60 | * @param string $input 61 | * @param string $prefix 62 | * @return bool 63 | */ 64 | public static function startsWith($input, $prefix) { 65 | $length = strlen($prefix); 66 | return (substr($input, 0, $length) === $prefix); 67 | } 68 | } 69 | 70 | endif; 71 | -------------------------------------------------------------------------------- /inc/update-checker/Puc/v5p2/Vcs/BaseChecker.php: -------------------------------------------------------------------------------- 1 | properties = $properties; 23 | } 24 | 25 | /** 26 | * @param string $name 27 | * @return mixed|null 28 | */ 29 | public function __get($name) { 30 | return array_key_exists($name, $this->properties) ? $this->properties[$name] : null; 31 | } 32 | 33 | /** 34 | * @param string $name 35 | * @param mixed $value 36 | */ 37 | public function __set($name, $value) { 38 | $this->properties[$name] = $value; 39 | } 40 | 41 | /** 42 | * @param string $name 43 | * @return bool 44 | */ 45 | public function __isset($name) { 46 | return isset($this->properties[$name]); 47 | } 48 | 49 | } 50 | 51 | endif; 52 | -------------------------------------------------------------------------------- /inc/update-checker/Puc/v5p2/Vcs/ReleaseAssetSupport.php: -------------------------------------------------------------------------------- 1 | releaseAssetsEnabled = true; 40 | $this->assetFilterRegex = $nameRegex; 41 | $this->releaseAssetPreference = $preference; 42 | } 43 | 44 | /** 45 | * Disable release assets. 46 | * 47 | * @return void 48 | * @noinspection PhpUnused -- Public API 49 | */ 50 | public function disableReleaseAssets() { 51 | $this->releaseAssetsEnabled = false; 52 | $this->assetFilterRegex = null; 53 | } 54 | 55 | /** 56 | * Does the specified asset match the name regex? 57 | * 58 | * @param mixed $releaseAsset Data type and structure depend on the host/API. 59 | * @return bool 60 | */ 61 | protected function matchesAssetFilter($releaseAsset) { 62 | if ( $this->assetFilterRegex === null ) { 63 | //The default is to accept all assets. 64 | return true; 65 | } 66 | 67 | $name = $this->getFilterableAssetName($releaseAsset); 68 | if ( !is_string($name) ) { 69 | return false; 70 | } 71 | return (bool)preg_match($this->assetFilterRegex, $releaseAsset->name); 72 | } 73 | 74 | /** 75 | * Get the part of asset data that will be checked against the filter regex. 76 | * 77 | * @param mixed $releaseAsset 78 | * @return string|null 79 | */ 80 | abstract protected function getFilterableAssetName($releaseAsset); 81 | } 82 | 83 | endif; -------------------------------------------------------------------------------- /inc/update-checker/Puc/v5p2/Vcs/VcsCheckerMethods.php: -------------------------------------------------------------------------------- 1 | branch = $branch; 20 | return $this; 21 | } 22 | 23 | /** 24 | * Set authentication credentials. 25 | * 26 | * @param array|string $credentials 27 | * @return $this 28 | */ 29 | public function setAuthentication($credentials) { 30 | $this->api->setAuthentication($credentials); 31 | return $this; 32 | } 33 | 34 | /** 35 | * @return Api 36 | */ 37 | public function getVcsApi() { 38 | return $this->api; 39 | } 40 | 41 | public function getUpdate() { 42 | $update = parent::getUpdate(); 43 | 44 | if ( isset($update) && !empty($update->download_url) ) { 45 | $update->download_url = $this->api->signDownloadUrl($update->download_url); 46 | } 47 | 48 | return $update; 49 | } 50 | 51 | public function onDisplayConfiguration($panel) { 52 | parent::onDisplayConfiguration($panel); 53 | $panel->row('Branch', $this->branch); 54 | $panel->row('Authentication enabled', $this->api->isAuthenticationEnabled() ? 'Yes' : 'No'); 55 | $panel->row('API client', get_class($this->api)); 56 | } 57 | } 58 | 59 | endif; -------------------------------------------------------------------------------- /inc/update-checker/autoload.php: -------------------------------------------------------------------------------- 1 | Plugin\UpdateChecker::class, 25 | 'Theme\\UpdateChecker' => Theme\UpdateChecker::class, 26 | 27 | 'Vcs\\PluginUpdateChecker' => Vcs\PluginUpdateChecker::class, 28 | 'Vcs\\ThemeUpdateChecker' => Vcs\ThemeUpdateChecker::class, 29 | 30 | 'GitHubApi' => Vcs\GitHubApi::class, 31 | 'BitBucketApi' => Vcs\BitBucketApi::class, 32 | 'GitLabApi' => Vcs\GitLabApi::class, 33 | ) 34 | as $pucGeneralClass => $pucVersionedClass) { 35 | MajorFactory::addVersion($pucGeneralClass, $pucVersionedClass, '5.2'); 36 | //Also add it to the minor-version factory in case the major-version factory 37 | //was already defined by another, older version of the update checker. 38 | MinorFactory::addVersion($pucGeneralClass, $pucVersionedClass, '5.2'); 39 | } 40 | -------------------------------------------------------------------------------- /inc/update-checker/css/puc-debug-bar.css: -------------------------------------------------------------------------------- 1 | .puc-debug-bar-panel-v5 pre { 2 | margin-top: 0; 3 | } 4 | 5 | /* Style the debug data table to match "widefat" table style used by WordPress. */ 6 | table.puc-debug-data { 7 | width: 100%; 8 | clear: both; 9 | margin: 0; 10 | 11 | border-spacing: 0; 12 | background-color: #f9f9f9; 13 | 14 | border-radius: 3px; 15 | border: 1px solid #dfdfdf; 16 | border-collapse: separate; 17 | } 18 | 19 | table.puc-debug-data * { 20 | word-wrap: break-word; 21 | } 22 | 23 | table.puc-debug-data th { 24 | width: 11em; 25 | padding: 7px 7px 8px; 26 | text-align: left; 27 | 28 | font-family: "Georgia", "Times New Roman", "Bitstream Charter", "Times", serif; 29 | font-weight: 400; 30 | font-size: 14px; 31 | line-height: 1.3em; 32 | text-shadow: rgba(255, 255, 255, 0.804) 0 1px 0; 33 | } 34 | 35 | table.puc-debug-data td, table.puc-debug-data th { 36 | border-width: 1px 0; 37 | border-style: solid; 38 | 39 | border-top-color: #fff; 40 | border-bottom-color: #dfdfdf; 41 | 42 | text-transform: none; 43 | } 44 | 45 | table.puc-debug-data td { 46 | color: #555; 47 | font-size: 12px; 48 | padding: 4px 7px 2px; 49 | vertical-align: top; 50 | } 51 | 52 | .puc-ajax-response { 53 | border: 1px solid #dfdfdf; 54 | border-radius: 3px; 55 | padding: 0.5em; 56 | margin: 5px 0; 57 | background-color: white; 58 | } 59 | 60 | .puc-ajax-nonce { 61 | display: none; 62 | } 63 | 64 | .puc-ajax-response dt { 65 | margin: 0; 66 | } 67 | 68 | .puc-ajax-response dd { 69 | margin: 0 0 1em; 70 | } 71 | -------------------------------------------------------------------------------- /inc/update-checker/js/debug-bar.js: -------------------------------------------------------------------------------- 1 | jQuery(function($) { 2 | 3 | function runAjaxAction(button, action) { 4 | button = $(button); 5 | var panel = button.closest('.puc-debug-bar-panel-v5'); 6 | var responseBox = button.closest('td').find('.puc-ajax-response'); 7 | 8 | responseBox.text('Processing...').show(); 9 | $.post( 10 | ajaxurl, 11 | { 12 | action : action, 13 | uid : panel.data('uid'), 14 | _wpnonce: panel.data('nonce') 15 | }, 16 | function(data) { 17 | //The response contains HTML that should already be escaped in server-side code. 18 | //phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html 19 | responseBox.html(data); 20 | }, 21 | 'html' 22 | ); 23 | } 24 | 25 | $('.puc-debug-bar-panel-v5 input[name="puc-check-now-button"]').on('click', function() { 26 | runAjaxAction(this, 'puc_v5_debug_check_now'); 27 | return false; 28 | }); 29 | 30 | $('.puc-debug-bar-panel-v5 input[name="puc-request-info-button"]').on('click', function() { 31 | runAjaxAction(this, 'puc_v5_debug_request_info'); 32 | return false; 33 | }); 34 | 35 | 36 | // Debug Bar uses the panel class name as part of its link and container IDs. This means we can 37 | // end up with multiple identical IDs if more than one plugin uses the update checker library. 38 | // Fix it by replacing the class name with the plugin slug. 39 | var panels = $('#debug-menu-targets').find('.puc-debug-bar-panel-v5'); 40 | panels.each(function() { 41 | var panel = $(this); 42 | var uid = panel.data('uid'); 43 | var target = panel.closest('.debug-menu-target'); 44 | 45 | //Change the panel wrapper ID. 46 | target.attr('id', 'debug-menu-target-puc-' + uid); 47 | 48 | //Change the menu link ID as well and point it at the new target ID. 49 | $('#debug-bar-menu').find('.puc-debug-menu-link-' + uid) 50 | .closest('.debug-menu-link') 51 | .attr('id', 'debug-menu-link-puc-' + uid) 52 | .attr('href', '#' + target.attr('id')); 53 | }); 54 | }); -------------------------------------------------------------------------------- /inc/update-checker/languages/plugin-update-checker-zh_CN.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/inc/update-checker/languages/plugin-update-checker-zh_CN.mo -------------------------------------------------------------------------------- /inc/update-checker/languages/plugin-update-checker-zh_CN.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: plugin-update-checker\n" 4 | "POT-Creation-Date: 2022-01-29 12:09+0800\n" 5 | "PO-Revision-Date: 2022-01-29 12:10+0800\n" 6 | "Last-Translator: Seaton Jiang \n" 7 | "Language-Team: \n" 8 | "Language: zh_CN\n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "X-Generator: Poedit 2.4.3\n" 13 | "X-Poedit-Basepath: ..\n" 14 | "Plural-Forms: nplurals=1; plural=0;\n" 15 | "X-Poedit-SourceCharset: UTF-8\n" 16 | "X-Poedit-KeywordsList: __;_e;_x:1,2c;_x\n" 17 | "X-Poedit-SearchPath-0: .\n" 18 | 19 | #: Puc/v4p11/Plugin/Ui.php:54 20 | msgid "View details" 21 | msgstr "查看详情" 22 | 23 | #: Puc/v4p11/Plugin/Ui.php:77 24 | #, php-format 25 | msgid "More information about %s" 26 | msgstr "%s 的更多信息" 27 | 28 | #: Puc/v4p11/Plugin/Ui.php:128 29 | msgid "Check for updates" 30 | msgstr "检查更新" 31 | 32 | #: Puc/v4p11/Plugin/Ui.php:214 33 | #, php-format 34 | msgctxt "the plugin title" 35 | msgid "The %s plugin is up to date." 36 | msgstr "%s 目前是最新版本。" 37 | 38 | #: Puc/v4p11/Plugin/Ui.php:216 39 | #, php-format 40 | msgctxt "the plugin title" 41 | msgid "A new version of the %s plugin is available." 42 | msgstr "%s 当前有可用的更新。" 43 | 44 | #: Puc/v4p11/Plugin/Ui.php:218 45 | #, php-format 46 | msgctxt "the plugin title" 47 | msgid "Could not determine if updates are available for %s." 48 | msgstr "%s 无法确定是否有可用的更新。" 49 | 50 | #: Puc/v4p11/Plugin/Ui.php:224 51 | #, php-format 52 | msgid "Unknown update checker status \"%s\"" 53 | msgstr "未知的更新检查状态:%s" 54 | 55 | #: Puc/v4p11/Vcs/PluginUpdateChecker.php:100 56 | msgid "There is no changelog available." 57 | msgstr "没有可用的更新日志。" 58 | -------------------------------------------------------------------------------- /inc/update-checker/languages/plugin-update-checker.pot: -------------------------------------------------------------------------------- 1 | #, fuzzy 2 | msgid "" 3 | msgstr "" 4 | "Project-Id-Version: plugin-update-checker\n" 5 | "POT-Creation-Date: 2022-07-29 15:34+0300\n" 6 | "PO-Revision-Date: 2016-01-10 20:59+0100\n" 7 | "Last-Translator: \n" 8 | "Language-Team: \n" 9 | "Language: en_US\n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 14 | "X-Generator: Poedit 3.1.1\n" 15 | "X-Poedit-Basepath: ..\n" 16 | "X-Poedit-SourceCharset: UTF-8\n" 17 | "X-Poedit-KeywordsList: __;_e;_x:1,2c;_x\n" 18 | "X-Poedit-SearchPath-0: .\n" 19 | 20 | #: Puc/v5p2/Plugin/Ui.php:128 21 | msgid "Check for updates" 22 | msgstr "" 23 | 24 | #: Puc/v5p2/Plugin/Ui.php:214 25 | #, php-format 26 | msgctxt "the plugin title" 27 | msgid "The %s plugin is up to date." 28 | msgstr "" 29 | 30 | #: Puc/v5p2/Plugin/Ui.php:216 31 | #, php-format 32 | msgctxt "the plugin title" 33 | msgid "A new version of the %s plugin is available." 34 | msgstr "" 35 | 36 | #: Puc/v5p2/Plugin/Ui.php:218 37 | #, php-format 38 | msgctxt "the plugin title" 39 | msgid "Could not determine if updates are available for %s." 40 | msgstr "" 41 | 42 | #: Puc/v5p2/Plugin/Ui.php:224 43 | #, php-format 44 | msgid "Unknown update checker status \"%s\"" 45 | msgstr "" 46 | 47 | #: Puc/v5p2/Vcs/PluginUpdateChecker.php:100 48 | msgid "There is no changelog available." 49 | msgstr "" 50 | -------------------------------------------------------------------------------- /inc/update-checker/license.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2023 Jānis Elsts 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /inc/update-checker/update.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "4.3.2", 3 | "details_url": "https://github.com/seatonjiang/kratos/releases/tag/v4.3.2", 4 | "download_url": "https://cdn.seatonjiang.com/kratos/v4.3.2.zip" 5 | } 6 | -------------------------------------------------------------------------------- /inc/update-checker/vendor/Parsedown.php: -------------------------------------------------------------------------------- 1 | cache[$k])) { 25 | // Clear the cache when it reaches 50 entries 26 | if (++$this->cacheSize > 50) { 27 | $this->cache = []; 28 | $this->cacheSize = 0; 29 | } 30 | 31 | $dateKey = hash_hmac( 32 | 'sha256', 33 | $shortDate, 34 | "{$secretKey}", 35 | true 36 | ); 37 | $regionKey = hash_hmac('sha256', $region, $dateKey, true); 38 | $serviceKey = hash_hmac('sha256', $service, $regionKey, true); 39 | $this->cache[$k] = hash_hmac( 40 | 'sha256', 41 | 'request', 42 | $serviceKey, 43 | true 44 | ); 45 | } 46 | 47 | return $this->cache[$k]; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/src/Volc/Base/Singleton.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/composer/InstalledVersions.php', 10 | ); 11 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/composer/autoload_files.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', 10 | 'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php', 11 | '37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php', 12 | ); 13 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/composer/autoload_namespaces.php: -------------------------------------------------------------------------------- 1 | array($baseDir . '/src/Volc'), 10 | 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src', $vendorDir . '/psr/http-factory/src'), 11 | 'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'), 12 | 'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'), 13 | 'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'), 14 | 'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'), 15 | 'ExerciseBook\\' => array($baseDir . '/src/ExerciseBook'), 16 | ); 17 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/composer/platform_check.php: -------------------------------------------------------------------------------- 1 | = 70205)) { 8 | $issues[] = 'Your Composer dependencies require a PHP version ">= 7.2.5". You are running ' . PHP_VERSION . '.'; 9 | } 10 | 11 | if ($issues) { 12 | if (!headers_sent()) { 13 | header('HTTP/1.1 500 Internal Server Error'); 14 | } 15 | if (!ini_get('display_errors')) { 16 | if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { 17 | fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); 18 | } elseif (!headers_sent()) { 19 | echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; 20 | } 21 | } 22 | trigger_error( 23 | 'Composer detected issues in your platform: ' . implode(' ', $issues), 24 | E_USER_ERROR 25 | ); 26 | } 27 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/guzzle/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011 Michael Dowling, https://github.com/mtdowling 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/guzzle/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "guzzlehttp/guzzle", 3 | "type": "library", 4 | "description": "Guzzle is a PHP HTTP client library", 5 | "keywords": [ 6 | "framework", 7 | "http", 8 | "rest", 9 | "web service", 10 | "curl", 11 | "client", 12 | "HTTP client", 13 | "PSR-7", 14 | "PSR-18" 15 | ], 16 | "homepage": "http://guzzlephp.org/", 17 | "license": "MIT", 18 | "authors": [ 19 | { 20 | "name": "Michael Dowling", 21 | "email": "mtdowling@gmail.com", 22 | "homepage": "https://github.com/mtdowling" 23 | }, 24 | { 25 | "name": "Márk Sági-Kazár", 26 | "email": "mark.sagikazar@gmail.com", 27 | "homepage": "https://sagikazarmark.hu" 28 | } 29 | ], 30 | "require": { 31 | "php": "^7.2.5 || ^8.0", 32 | "ext-json": "*", 33 | "guzzlehttp/promises": "^1.4", 34 | "guzzlehttp/psr7": "^1.7 || ^2.0", 35 | "psr/http-client": "^1.0" 36 | }, 37 | "provide": { 38 | "psr/http-client-implementation": "1.0" 39 | }, 40 | "require-dev": { 41 | "ext-curl": "*", 42 | "bamarni/composer-bin-plugin": "^1.4.1", 43 | "php-http/client-integration-tests": "^3.0", 44 | "phpunit/phpunit": "^8.5.5 || ^9.3.5", 45 | "psr/log": "^1.1" 46 | }, 47 | "suggest": { 48 | "ext-curl": "Required for CURL handler support", 49 | "ext-intl": "Required for Internationalized Domain Name (IDN) support", 50 | "psr/log": "Required for using the Log middleware" 51 | }, 52 | "config": { 53 | "sort-packages": true 54 | }, 55 | "extra": { 56 | "branch-alias": { 57 | "dev-master": "7.3-dev" 58 | } 59 | }, 60 | "autoload": { 61 | "psr-4": { 62 | "GuzzleHttp\\": "src/" 63 | }, 64 | "files": [ 65 | "src/functions_include.php" 66 | ] 67 | }, 68 | "autoload-dev": { 69 | "psr-4": { 70 | "GuzzleHttp\\Tests\\": "tests/" 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/guzzle/src/BodySummarizer.php: -------------------------------------------------------------------------------- 1 | truncateAt = $truncateAt; 17 | } 18 | 19 | /** 20 | * Returns a summarized message body. 21 | */ 22 | public function summarize(MessageInterface $message): ?string 23 | { 24 | return $this->truncateAt === null 25 | ? \GuzzleHttp\Psr7\Message::bodySummary($message) 26 | : \GuzzleHttp\Psr7\Message::bodySummary($message, $this->truncateAt); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/guzzle/src/BodySummarizerInterface.php: -------------------------------------------------------------------------------- 1 | sessionKey = $sessionKey; 32 | $this->storeSessionCookies = $storeSessionCookies; 33 | $this->load(); 34 | } 35 | 36 | /** 37 | * Saves cookies to session when shutting down 38 | */ 39 | public function __destruct() 40 | { 41 | $this->save(); 42 | } 43 | 44 | /** 45 | * Save cookies to the client session 46 | */ 47 | public function save(): void 48 | { 49 | $json = []; 50 | /** @var SetCookie $cookie */ 51 | foreach ($this as $cookie) { 52 | if (CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) { 53 | $json[] = $cookie->toArray(); 54 | } 55 | } 56 | 57 | $_SESSION[$this->sessionKey] = \json_encode($json); 58 | } 59 | 60 | /** 61 | * Load the contents of the client session into the data array 62 | */ 63 | protected function load(): void 64 | { 65 | if (!isset($_SESSION[$this->sessionKey])) { 66 | return; 67 | } 68 | $data = \json_decode($_SESSION[$this->sessionKey], true); 69 | if (\is_array($data)) { 70 | foreach ($data as $cookie) { 71 | $this->setCookie(new SetCookie($cookie)); 72 | } 73 | } elseif (\strlen($data)) { 74 | throw new \RuntimeException("Invalid cookie data"); 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/guzzle/src/Exception/BadResponseException.php: -------------------------------------------------------------------------------- 1 | request = $request; 33 | $this->handlerContext = $handlerContext; 34 | } 35 | 36 | /** 37 | * Get the request that caused the exception 38 | */ 39 | public function getRequest(): RequestInterface 40 | { 41 | return $this->request; 42 | } 43 | 44 | /** 45 | * Get contextual information about the error from the underlying handler. 46 | * 47 | * The contents of this array will vary depending on which handler you are 48 | * using. It may also be just an empty array. Relying on this data will 49 | * couple you to a specific handler, but can give more debug information 50 | * when needed. 51 | */ 52 | public function getHandlerContext(): array 53 | { 54 | return $this->handlerContext; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/guzzle/src/Exception/GuzzleException.php: -------------------------------------------------------------------------------- 1 | factory = $options['handle_factory'] 34 | ?? new CurlFactory(3); 35 | } 36 | 37 | public function __invoke(RequestInterface $request, array $options): PromiseInterface 38 | { 39 | if (isset($options['delay'])) { 40 | \usleep($options['delay'] * 1000); 41 | } 42 | 43 | $easy = $this->factory->create($request, $options); 44 | \curl_exec($easy->handle); 45 | $easy->errno = \curl_errno($easy->handle); 46 | 47 | return CurlFactory::finish($this, $easy, $this->factory); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/guzzle/src/Handler/HeaderProcessor.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/promises/Makefile: -------------------------------------------------------------------------------- 1 | all: clean test 2 | 3 | test: 4 | vendor/bin/phpunit 5 | 6 | coverage: 7 | vendor/bin/phpunit --coverage-html=artifacts/coverage 8 | 9 | view-coverage: 10 | open artifacts/coverage/index.html 11 | 12 | clean: 13 | rm -rf artifacts/* 14 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/promises/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "guzzlehttp/promises", 3 | "description": "Guzzle promises library", 4 | "keywords": ["promise"], 5 | "license": "MIT", 6 | "authors": [ 7 | { 8 | "name": "Michael Dowling", 9 | "email": "mtdowling@gmail.com", 10 | "homepage": "https://github.com/mtdowling" 11 | } 12 | ], 13 | "require": { 14 | "php": ">=5.5" 15 | }, 16 | "require-dev": { 17 | "symfony/phpunit-bridge": "^4.4 || ^5.1" 18 | }, 19 | "autoload": { 20 | "psr-4": { 21 | "GuzzleHttp\\Promise\\": "src/" 22 | }, 23 | "files": ["src/functions_include.php"] 24 | }, 25 | "autoload-dev": { 26 | "psr-4": { 27 | "GuzzleHttp\\Promise\\Tests\\": "tests/" 28 | } 29 | }, 30 | "scripts": { 31 | "test": "vendor/bin/simple-phpunit", 32 | "test-ci": "vendor/bin/simple-phpunit --coverage-text" 33 | }, 34 | "extra": { 35 | "branch-alias": { 36 | "dev-master": "1.4-dev" 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/promises/src/AggregateException.php: -------------------------------------------------------------------------------- 1 | then([$promise, 'resolve'], [$promise, 'reject']); 26 | return $promise; 27 | } 28 | 29 | return new FulfilledPromise($value); 30 | } 31 | 32 | /** 33 | * Creates a rejected promise for a reason if the reason is not a promise. 34 | * If the provided reason is a promise, then it is returned as-is. 35 | * 36 | * @param mixed $reason Promise or reason. 37 | * 38 | * @return PromiseInterface 39 | */ 40 | public static function rejectionFor($reason) 41 | { 42 | if ($reason instanceof PromiseInterface) { 43 | return $reason; 44 | } 45 | 46 | return new RejectedPromise($reason); 47 | } 48 | 49 | /** 50 | * Create an exception for a rejected promise value. 51 | * 52 | * @param mixed $reason 53 | * 54 | * @return \Exception|\Throwable 55 | */ 56 | public static function exceptionFor($reason) 57 | { 58 | if ($reason instanceof \Exception || $reason instanceof \Throwable) { 59 | return $reason; 60 | } 61 | 62 | return new RejectionException($reason); 63 | } 64 | 65 | /** 66 | * Returns an iterator for the given value. 67 | * 68 | * @param mixed $value 69 | * 70 | * @return \Iterator 71 | */ 72 | public static function iterFor($value) 73 | { 74 | if ($value instanceof \Iterator) { 75 | return $value; 76 | } 77 | 78 | if (is_array($value)) { 79 | return new \ArrayIterator($value); 80 | } 81 | 82 | return new \ArrayIterator([$value]); 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/promises/src/FulfilledPromise.php: -------------------------------------------------------------------------------- 1 | value = $value; 24 | } 25 | 26 | public function then( 27 | callable $onFulfilled = null, 28 | callable $onRejected = null 29 | ) { 30 | // Return itself if there is no onFulfilled function. 31 | if (!$onFulfilled) { 32 | return $this; 33 | } 34 | 35 | $queue = Utils::queue(); 36 | $p = new Promise([$queue, 'run']); 37 | $value = $this->value; 38 | $queue->add(static function () use ($p, $value, $onFulfilled) { 39 | if (Is::pending($p)) { 40 | try { 41 | $p->resolve($onFulfilled($value)); 42 | } catch (\Throwable $e) { 43 | $p->reject($e); 44 | } catch (\Exception $e) { 45 | $p->reject($e); 46 | } 47 | } 48 | }); 49 | 50 | return $p; 51 | } 52 | 53 | public function otherwise(callable $onRejected) 54 | { 55 | return $this->then(null, $onRejected); 56 | } 57 | 58 | public function wait($unwrap = true, $defaultDelivery = null) 59 | { 60 | return $unwrap ? $this->value : null; 61 | } 62 | 63 | public function getState() 64 | { 65 | return self::FULFILLED; 66 | } 67 | 68 | public function resolve($value) 69 | { 70 | if ($value !== $this->value) { 71 | throw new \LogicException("Cannot resolve a fulfilled promise"); 72 | } 73 | } 74 | 75 | public function reject($reason) 76 | { 77 | throw new \LogicException("Cannot reject a fulfilled promise"); 78 | } 79 | 80 | public function cancel() 81 | { 82 | // pass 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/promises/src/Is.php: -------------------------------------------------------------------------------- 1 | getState() === PromiseInterface::PENDING; 15 | } 16 | 17 | /** 18 | * Returns true if a promise is fulfilled or rejected. 19 | * 20 | * @return bool 21 | */ 22 | public static function settled(PromiseInterface $promise) 23 | { 24 | return $promise->getState() !== PromiseInterface::PENDING; 25 | } 26 | 27 | /** 28 | * Returns true if a promise is fulfilled. 29 | * 30 | * @return bool 31 | */ 32 | public static function fulfilled(PromiseInterface $promise) 33 | { 34 | return $promise->getState() === PromiseInterface::FULFILLED; 35 | } 36 | 37 | /** 38 | * Returns true if a promise is rejected. 39 | * 40 | * @return bool 41 | */ 42 | public static function rejected(PromiseInterface $promise) 43 | { 44 | return $promise->getState() === PromiseInterface::REJECTED; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/promises/src/PromisorInterface.php: -------------------------------------------------------------------------------- 1 | reason = $reason; 24 | } 25 | 26 | public function then( 27 | callable $onFulfilled = null, 28 | callable $onRejected = null 29 | ) { 30 | // If there's no onRejected callback then just return self. 31 | if (!$onRejected) { 32 | return $this; 33 | } 34 | 35 | $queue = Utils::queue(); 36 | $reason = $this->reason; 37 | $p = new Promise([$queue, 'run']); 38 | $queue->add(static function () use ($p, $reason, $onRejected) { 39 | if (Is::pending($p)) { 40 | try { 41 | // Return a resolved promise if onRejected does not throw. 42 | $p->resolve($onRejected($reason)); 43 | } catch (\Throwable $e) { 44 | // onRejected threw, so return a rejected promise. 45 | $p->reject($e); 46 | } catch (\Exception $e) { 47 | // onRejected threw, so return a rejected promise. 48 | $p->reject($e); 49 | } 50 | } 51 | }); 52 | 53 | return $p; 54 | } 55 | 56 | public function otherwise(callable $onRejected) 57 | { 58 | return $this->then(null, $onRejected); 59 | } 60 | 61 | public function wait($unwrap = true, $defaultDelivery = null) 62 | { 63 | if ($unwrap) { 64 | throw Create::exceptionFor($this->reason); 65 | } 66 | 67 | return null; 68 | } 69 | 70 | public function getState() 71 | { 72 | return self::REJECTED; 73 | } 74 | 75 | public function resolve($value) 76 | { 77 | throw new \LogicException("Cannot resolve a rejected promise"); 78 | } 79 | 80 | public function reject($reason) 81 | { 82 | if ($reason !== $this->reason) { 83 | throw new \LogicException("Cannot reject a rejected promise"); 84 | } 85 | } 86 | 87 | public function cancel() 88 | { 89 | // pass 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/promises/src/RejectionException.php: -------------------------------------------------------------------------------- 1 | reason = $reason; 22 | 23 | $message = 'The promise was rejected'; 24 | 25 | if ($description) { 26 | $message .= ' with reason: ' . $description; 27 | } elseif (is_string($reason) 28 | || (is_object($reason) && method_exists($reason, '__toString')) 29 | ) { 30 | $message .= ' with reason: ' . $this->reason; 31 | } elseif ($reason instanceof \JsonSerializable) { 32 | $message .= ' with reason: ' 33 | . json_encode($this->reason, JSON_PRETTY_PRINT); 34 | } 35 | 36 | parent::__construct($message); 37 | } 38 | 39 | /** 40 | * Returns the rejection reason. 41 | * 42 | * @return mixed 43 | */ 44 | public function getReason() 45 | { 46 | return $this->reason; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/promises/src/TaskQueue.php: -------------------------------------------------------------------------------- 1 | run(); 13 | */ 14 | class TaskQueue implements TaskQueueInterface 15 | { 16 | private $enableShutdown = true; 17 | private $queue = []; 18 | 19 | public function __construct($withShutdown = true) 20 | { 21 | if ($withShutdown) { 22 | register_shutdown_function(function () { 23 | if ($this->enableShutdown) { 24 | // Only run the tasks if an E_ERROR didn't occur. 25 | $err = error_get_last(); 26 | if (!$err || ($err['type'] ^ E_ERROR)) { 27 | $this->run(); 28 | } 29 | } 30 | }); 31 | } 32 | } 33 | 34 | public function isEmpty() 35 | { 36 | return !$this->queue; 37 | } 38 | 39 | public function add(callable $task) 40 | { 41 | $this->queue[] = $task; 42 | } 43 | 44 | public function run() 45 | { 46 | while ($task = array_shift($this->queue)) { 47 | /** @var callable $task */ 48 | $task(); 49 | } 50 | } 51 | 52 | /** 53 | * The task queue will be run and exhausted by default when the process 54 | * exits IFF the exit is not the result of a PHP E_ERROR error. 55 | * 56 | * You can disable running the automatic shutdown of the queue by calling 57 | * this function. If you disable the task queue shutdown process, then you 58 | * MUST either run the task queue (as a result of running your event loop 59 | * or manually using the run() method) or wait on each outstanding promise. 60 | * 61 | * Note: This shutdown will occur before any destructors are triggered. 62 | */ 63 | public function disableShutdown() 64 | { 65 | $this->enableShutdown = false; 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/promises/src/TaskQueueInterface.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/psr7/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "guzzlehttp/psr7", 3 | "type": "library", 4 | "description": "PSR-7 message implementation that also provides common utility methods", 5 | "keywords": [ 6 | "request", 7 | "response", 8 | "message", 9 | "stream", 10 | "http", 11 | "uri", 12 | "url", 13 | "psr-7" 14 | ], 15 | "license": "MIT", 16 | "authors": [ 17 | { 18 | "name": "Michael Dowling", 19 | "email": "mtdowling@gmail.com", 20 | "homepage": "https://github.com/mtdowling" 21 | }, 22 | { 23 | "name": "Tobias Schultze", 24 | "homepage": "https://github.com/Tobion" 25 | }, 26 | { 27 | "name": "Márk Sági-Kazár", 28 | "email": "mark.sagikazar@gmail.com", 29 | "homepage": "https://sagikazarmark.hu" 30 | } 31 | ], 32 | "require": { 33 | "php": "^7.2.5 || ^8.0", 34 | "psr/http-factory": "^1.0", 35 | "psr/http-message": "^1.0", 36 | "ralouphie/getallheaders": "^3.0" 37 | }, 38 | "provide": { 39 | "psr/http-factory-implementation": "1.0", 40 | "psr/http-message-implementation": "1.0" 41 | }, 42 | "require-dev": { 43 | "bamarni/composer-bin-plugin": "^1.4.1", 44 | "http-interop/http-factory-tests": "^0.9", 45 | "phpunit/phpunit": "^8.5.8 || ^9.3.10" 46 | }, 47 | "suggest": { 48 | "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" 49 | }, 50 | "extra": { 51 | "branch-alias": { 52 | "dev-master": "2.0-dev" 53 | } 54 | }, 55 | "autoload": { 56 | "psr-4": { 57 | "GuzzleHttp\\Psr7\\": "src/" 58 | } 59 | }, 60 | "autoload-dev": { 61 | "psr-4": { 62 | "GuzzleHttp\\Tests\\Psr7\\": "tests/" 63 | } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/psr7/src/DroppingStream.php: -------------------------------------------------------------------------------- 1 | stream = $stream; 27 | $this->maxLength = $maxLength; 28 | } 29 | 30 | public function write($string): int 31 | { 32 | $diff = $this->maxLength - $this->stream->getSize(); 33 | 34 | // Begin returning 0 when the underlying stream is too large. 35 | if ($diff <= 0) { 36 | return 0; 37 | } 38 | 39 | // Write the stream or a subset of the stream if needed. 40 | if (strlen($string) < $diff) { 41 | return $this->stream->write($string); 42 | } 43 | 44 | return $this->stream->write(substr($string, 0, $diff)); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/psr7/src/Header.php: -------------------------------------------------------------------------------- 1 | ]+>|[^=]+/', $kvp, $matches)) { 26 | $m = $matches[0]; 27 | if (isset($m[1])) { 28 | $part[trim($m[0], $trimmed)] = trim($m[1], $trimmed); 29 | } else { 30 | $part[] = trim($m[0], $trimmed); 31 | } 32 | } 33 | } 34 | if ($part) { 35 | $params[] = $part; 36 | } 37 | } 38 | 39 | return $params; 40 | } 41 | 42 | /** 43 | * Converts an array of header values that may contain comma separated 44 | * headers into an array of headers with no comma separated values. 45 | * 46 | * @param string|array $header Header to normalize. 47 | */ 48 | public static function normalize($header): array 49 | { 50 | if (!is_array($header)) { 51 | return array_map('trim', explode(',', $header)); 52 | } 53 | 54 | $result = []; 55 | foreach ($header as $value) { 56 | foreach ((array) $value as $v) { 57 | if (strpos($v, ',') === false) { 58 | $result[] = $v; 59 | continue; 60 | } 61 | foreach (preg_split('/,(?=([^"]*"[^"]*")*[^"]*$)/', $v) as $vv) { 62 | $result[] = trim($vv); 63 | } 64 | } 65 | } 66 | 67 | return $result; 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/psr7/src/InflateStream.php: -------------------------------------------------------------------------------- 1 | 15 + 32]); 32 | $this->stream = $stream->isSeekable() ? new Stream($resource) : new NoSeekStream(new Stream($resource)); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/psr7/src/LazyOpenStream.php: -------------------------------------------------------------------------------- 1 | filename = $filename; 30 | $this->mode = $mode; 31 | } 32 | 33 | /** 34 | * Creates the underlying stream lazily when required. 35 | */ 36 | protected function createStream(): StreamInterface 37 | { 38 | return Utils::streamFor(Utils::tryFopen($this->filename, $this->mode)); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/psr7/src/NoSeekStream.php: -------------------------------------------------------------------------------- 1 | @,;:\\\"/[\]?={}\x01-\x20\x7F]++):[ \t]*+((?:[ \t]*+[\x21-\x7E\x80-\xFF]++)*+)[ \t]*+\r?\n)m"; 22 | public const HEADER_FOLD_REGEX = "(\r?\n[ \t]++)"; 23 | } 24 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/psr7/vendor-bin/php-cs-fixer/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "php": "^7.2.5 || ^8.0", 4 | "friendsofphp/php-cs-fixer": "2.18.3" 5 | }, 6 | "config": { 7 | "preferred-install": "dist" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/psr7/vendor-bin/phpstan/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "php": "^7.2.5 || ^8.0", 4 | "phpstan/phpstan": "0.12.81", 5 | "phpstan/phpstan-deprecation-rules": "0.12.6" 6 | }, 7 | "config": { 8 | "preferred-install": "dist" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/guzzlehttp/psr7/vendor-bin/psalm/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "php": "^7.2.5 || ^8.0", 4 | "psalm/phar": "4.6.2" 5 | }, 6 | "config": { 7 | "preferred-install": "dist" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/psr/http-client/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this project will be documented in this file, in reverse chronological order by release. 4 | 5 | ## 1.0.1 6 | 7 | Allow installation with PHP 8. No code changes. 8 | 9 | ## 1.0.0 10 | 11 | First stable release. No changes since 0.3.0. 12 | 13 | ## 0.3.0 14 | 15 | Added Interface suffix on exceptions 16 | 17 | ## 0.2.0 18 | 19 | All exceptions are in `Psr\Http\Client` namespace 20 | 21 | ## 0.1.0 22 | 23 | First release 24 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/psr/http-client/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017 PHP Framework Interoperability Group 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/psr/http-client/README.md: -------------------------------------------------------------------------------- 1 | HTTP Client 2 | =========== 3 | 4 | This repository holds all the common code related to [PSR-18 (HTTP Client)][psr-url]. 5 | 6 | Note that this is not a HTTP Client implementation of its own. It is merely abstractions that describe the components of a HTTP Client. 7 | 8 | The installable [package][package-url] and [implementations][implementation-url] are listed on Packagist. 9 | 10 | [psr-url]: http://www.php-fig.org/psr/psr-18 11 | [package-url]: https://packagist.org/packages/psr/http-client 12 | [implementation-url]: https://packagist.org/providers/psr/http-client-implementation 13 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/psr/http-client/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "psr/http-client", 3 | "description": "Common interface for HTTP clients", 4 | "keywords": ["psr", "psr-18", "http", "http-client"], 5 | "homepage": "https://github.com/php-fig/http-client", 6 | "license": "MIT", 7 | "authors": [ 8 | { 9 | "name": "PHP-FIG", 10 | "homepage": "http://www.php-fig.org/" 11 | } 12 | ], 13 | "require": { 14 | "php": "^7.0 || ^8.0", 15 | "psr/http-message": "^1.0" 16 | }, 17 | "autoload": { 18 | "psr-4": { 19 | "Psr\\Http\\Client\\": "src/" 20 | } 21 | }, 22 | "extra": { 23 | "branch-alias": { 24 | "dev-master": "1.0.x-dev" 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/psr/http-client/src/ClientExceptionInterface.php: -------------------------------------------------------------------------------- 1 | =7.0.0", 23 | "psr/http-message": "^1.0" 24 | }, 25 | "autoload": { 26 | "psr-4": { 27 | "Psr\\Http\\Message\\": "src/" 28 | } 29 | }, 30 | "extra": { 31 | "branch-alias": { 32 | "dev-master": "1.0.x-dev" 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/psr/http-factory/src/RequestFactoryInterface.php: -------------------------------------------------------------------------------- 1 | =5.3.0" 15 | }, 16 | "autoload": { 17 | "psr-4": { 18 | "Psr\\Http\\Message\\": "src/" 19 | } 20 | }, 21 | "extra": { 22 | "branch-alias": { 23 | "dev-master": "1.0.x-dev" 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/ralouphie/getallheaders/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Ralph Khattar 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/ralouphie/getallheaders/README.md: -------------------------------------------------------------------------------- 1 | getallheaders 2 | ============= 3 | 4 | PHP `getallheaders()` polyfill. Compatible with PHP >= 5.3. 5 | 6 | [![Build Status](https://travis-ci.org/ralouphie/getallheaders.svg?branch=master)](https://travis-ci.org/ralouphie/getallheaders) 7 | [![Coverage Status](https://coveralls.io/repos/ralouphie/getallheaders/badge.png?branch=master)](https://coveralls.io/r/ralouphie/getallheaders?branch=master) 8 | [![Latest Stable Version](https://poser.pugx.org/ralouphie/getallheaders/v/stable.png)](https://packagist.org/packages/ralouphie/getallheaders) 9 | [![Latest Unstable Version](https://poser.pugx.org/ralouphie/getallheaders/v/unstable.png)](https://packagist.org/packages/ralouphie/getallheaders) 10 | [![License](https://poser.pugx.org/ralouphie/getallheaders/license.png)](https://packagist.org/packages/ralouphie/getallheaders) 11 | 12 | 13 | This is a simple polyfill for [`getallheaders()`](http://www.php.net/manual/en/function.getallheaders.php). 14 | 15 | ## Install 16 | 17 | For PHP version **`>= 5.6`**: 18 | 19 | ``` 20 | composer require ralouphie/getallheaders 21 | ``` 22 | 23 | For PHP version **`< 5.6`**: 24 | 25 | ``` 26 | composer require ralouphie/getallheaders "^2" 27 | ``` 28 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/ralouphie/getallheaders/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ralouphie/getallheaders", 3 | "description": "A polyfill for getallheaders.", 4 | "license": "MIT", 5 | "authors": [ 6 | { 7 | "name": "Ralph Khattar", 8 | "email": "ralph.khattar@gmail.com" 9 | } 10 | ], 11 | "require": { 12 | "php": ">=5.6" 13 | }, 14 | "require-dev": { 15 | "phpunit/phpunit": "^5 || ^6.5", 16 | "php-coveralls/php-coveralls": "^2.1" 17 | }, 18 | "autoload": { 19 | "files": ["src/getallheaders.php"] 20 | }, 21 | "autoload-dev": { 22 | "psr-4": { 23 | "getallheaders\\Tests\\": "tests/" 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /inc/volcengine-imagex/vendor/ralouphie/getallheaders/src/getallheaders.php: -------------------------------------------------------------------------------- 1 | 'Content-Type', 16 | 'CONTENT_LENGTH' => 'Content-Length', 17 | 'CONTENT_MD5' => 'Content-Md5', 18 | ); 19 | 20 | foreach ($_SERVER as $key => $value) { 21 | if (substr($key, 0, 5) === 'HTTP_') { 22 | $key = substr($key, 5); 23 | if (!isset($copy_server[$key]) || !isset($_SERVER[$key])) { 24 | $key = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', $key)))); 25 | $headers[$key] = $value; 26 | } 27 | } elseif (isset($copy_server[$key])) { 28 | $headers[$copy_server[$key]] = $value; 29 | } 30 | } 31 | 32 | if (!isset($headers['Authorization'])) { 33 | if (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) { 34 | $headers['Authorization'] = $_SERVER['REDIRECT_HTTP_AUTHORIZATION']; 35 | } elseif (isset($_SERVER['PHP_AUTH_USER'])) { 36 | $basic_pass = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : ''; 37 | $headers['Authorization'] = 'Basic ' . base64_encode($_SERVER['PHP_AUTH_USER'] . ':' . $basic_pass); 38 | } elseif (isset($_SERVER['PHP_AUTH_DIGEST'])) { 39 | $headers['Authorization'] = $_SERVER['PHP_AUTH_DIGEST']; 40 | } 41 | } 42 | 43 | return $headers; 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 6 | * @license GPL-3.0 License 7 | * @version 2022.01.26 8 | */ 9 | get_header(); ?> 10 |
11 |
12 |
13 |
14 | 18 |
19 |
21 |
22 | 29 |
30 |
31 | 32 |
33 |
34 |
35 | 38 |
39 | 42 |
43 |
44 |
45 | 46 | -------------------------------------------------------------------------------- /languages/en_US.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/languages/en_US.mo -------------------------------------------------------------------------------- /page-full.php: -------------------------------------------------------------------------------- 1 | 6 | * @license GPL-3.0 License 7 | * @version 2024.01.17 8 | */ 9 | 10 | get_header(); ?> 11 |
12 |
13 |
14 |
15 | 17 |
18 |
19 |

20 |
21 |
22 | '
', 27 | 'after' => '', 28 | 'next_or_number' => 'next', 29 | 'previouspagelink' => __('上一页', 'kratos'), 30 | 'nextpagelink' => '' 31 | ) 32 | ); 33 | wp_link_pages( 34 | array( 35 | 'before' => '', 36 | 'after' => '', 37 | 'next_or_number' => 'number', 38 | 'link_before' => '', 39 | 'link_after' => '' 40 | ) 41 | ); 42 | wp_link_pages( 43 | array( 44 | 'before' => '', 45 | 'after' => '
', 46 | 'next_or_number' => 'next', 47 | 'previouspagelink' => '', 48 | 'nextpagelink' => __('下一页', 'kratos') 49 | ) 50 | ); ?> 51 |
52 |
53 | 54 | 55 |
56 |
57 |
58 |
59 | -------------------------------------------------------------------------------- /pages/page-smilies.php: -------------------------------------------------------------------------------- 1 | 6 | * @license GPL-3.0 License 7 | * @version 2022.01.26 8 | */ 9 | $smilies = join("\n", array_map(function ($s) { 10 | return '{$s}"; 13 | }, [ 14 | 'razz', 15 | 'evil', 16 | 'exclaim', 17 | 'smile', 18 | 'redface', 19 | 'biggrin', 20 | 'eek', 21 | 'confused', 22 | 'idea', 23 | 'lol', 24 | 'mad', 25 | 'twisted', 26 | 'rolleyes', 27 | 'wink', 28 | 'cool', 29 | 'arrow', 30 | 'neutral', 31 | 'cry', 32 | 'mrgreen', 33 | 'drooling', 34 | 'persevering' 35 | ])); 36 | -------------------------------------------------------------------------------- /pages/page-toolbar.php: -------------------------------------------------------------------------------- 1 | 6 | * @license GPL-3.0 License 7 | * @version 2022.05.27 8 | */ 9 | ?> 10 |
11 |
12 | 13 |

14 |

15 |
16 | 22 |
-------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seatonjiang/kratos/d1303478b24f6cb375fcd70e3164dcc391c970f2/screenshot.png --------------------------------------------------------------------------------