diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..89ef679 Binary files /dev/null and b/.DS_Store differ diff --git a/iMobile/.DS_Store b/iMobile/.DS_Store new file mode 100644 index 0000000..c14fe65 Binary files /dev/null and b/iMobile/.DS_Store differ diff --git a/iMobile/README.md b/iMobile/README.md new file mode 100644 index 0000000..53bfbab --- /dev/null +++ b/iMobile/README.md @@ -0,0 +1,135 @@ +B3log Solo 第三方皮肤 - [子兮子兮](https://zixizixi.cn/) +---- + +本皮肤是基于官方版 `yilia` 皮肤进行美化修改的第三方皮肤,主色调修改为黑、白、灰(高冷三原色 😜 )、蓝(超链接)。 +名称为 `iMobile` 的原因是,本人使用的此皮肤是直接把原 `mobile` 皮肤删除,将此皮肤的目录名和 `skin.properties` 中的配置改为 `mobile`,这样使用手机访问时也会使用此皮肤(原 mobile 皮肤实在无法欣赏 n(*≧▽≦*)n )。 +此皮肤采用响应式布局,不用担心用手机访问会出现样式错乱。也建议使用者直接将此皮肤文件覆盖原 `mobile` 皮肤。 + +## 注意事项 +此皮肤有些个性化的地方需要使用者自己去修改 `ftl` 模板文件,具体如下: + +### 1. 自定义 ABOUT ME 介绍信息(side.ftl) +点击博客标题会弹出 ABOUT ME 的窗口,当然若不想使用此弹窗你也可以在 `side.ftl` 中搜索 `clickme` 并删除相关代码。 +#### 效果图 +![关于我效果图](https://img.hacpai.com/file/2018/02/d1f0cb2eff244740a21eace90affe9f3_2018021072535.jpg) + +#### 相关代码 +![ABOUT 代码](https://img.hacpai.com/file/2018/02/6d3788ea90ad4e1e85133b9f9936948d_2018021073057.jpg) + + +### 2. 自定义左侧个人导航链接(side.ftl) +左侧新增的个人导航链接分别为 Github、微博、微信(可以是公众号)二维码、QQ 会话(需要在 [QQ 推广](http://shang.qq.com/) 中开通)。 +#### 效果图 +![个人导航效果图](https://img.hacpai.com/file/2018/02/e768ab16c8fa4a5e976a72107ef8b068_2018021072432.jpg) + +#### 相关代码 +从 side.ftl 第 47 行开始的注释,若使用请打开注释并将链接修改为自己的链接,包括下面的反馈邮箱链接。 + +![个人链接代码](https://img.hacpai.com/file/2018/02/0f2b02a43e324dc69d266c5808e49ce2_2018021071729.jpg) +![邮箱链接代码](https://img.hacpai.com/file/2018/02/feb8b75209784dfc93bfa6f1d21add82_2018021072235.jpg) + + +### 3. 添加移动端顶部背景图 +在屏幕宽度小于 750px(在 yilia7.min.css 中修改)时当做是移动端,由左右布局变为上下布局,顶部显示背景图,图片位置为 `solo 根目录/images/bg.jpg`,需要使用者将自己的图片放置于此。 + +#### 相关代码 +``` css +@media only screen and (max-width:750px) { + .side { + height: 400px; + width: 100%; + background: #666 url('/images/bg.jpg') center -40px; + } +} +``` +#### 效果图 +![2018021061950jpg](https://img.hacpai.com/file/2018/02/c2914ca8548b416daf0d0e0b1e277b1a_2018021061950.jpg) + + +### 4. 搜索页面 +目前 Solo 的搜索页面还比较简陋,本人根据 `yilia` 的样式修改了一个搜索页面,放在 `搜索页面(覆盖至根目录)` 目录中,顾名思义,直接将目录中的文件剪切到 Solo 根目录即可。特别要注意的是里面的 `opensearch.xml` 文件,需要根据自己的实际情况进行修改,格式是在 hacpai 扒下来的,是用来在谷歌浏览器中实现输入域名加空格直接在地址栏实现站内搜索的。 +> 特别注意需要在 `WEB-INF/static-resources.xml` 文件中添加一行 ``,不然无法获取此静态资源。 + +#### 相关代码 +``` xml + + 子兮子兮 + 子兮子兮风兮寒,三江七泽情洄沿。 + UTF-8 + https://res.zixizixi.cn/izcn.png + + +``` + +#### 效果图 +![搜索页面](https://img.hacpai.com/file/2018/02/992d4bef69f0438fbda58c27567ed28f_2018021075045.jpg) + +![地址栏搜索](https://img.hacpai.com/file/2018/02/afcdc98999754245a452cc12957cbb23_2018021075206.jpg) + +### 5. 其他 +为了搭配此皮肤,建议对 `WEB-INF/classes` 目录下的 `lang_zh_CN.properties` 参数文件做适当的修改,以及替换此目录下的验证码文件 `captcha_static.zip`。 +#### 需要修改的 `lang_zh_CN.properties` 参数 +``` properties +viewCount1Label=\u6D4F\u89C8\u6B21\u6570\uFF1A +# (浏览次数:)修改为(浏览:) +viewCount1Label=\u6D4F\u89C8\uFF1A + +articleCount1Label=\u6587\u7AE0\u603B\u6570\uFF1A +# (文章总数:)修改为(文章:) +articleCount1Label=\u6587\u7AE0\uFF1A + +commentCount1Label=\u8BC4\u8BBA\u603B\u6570\uFF1A +# (评论总数:)修改为(评论:) +commentCount1Label=\u8BC4\u8BBA\uFF1A + +onlineVisitor1Label=\u5F53\u524D\u8BBF\u5BA2\uFF1A +# (当前访客:)修改为(在线:) +onlineVisitor1Label=\u5728\u7ebf\uFF1A + +linkLabel=\u53CB\u60C5\u94FE\u63A5 +# (友情链接)修改为(链接) +linkLabel=\u94FE\u63A5 +``` + +> 需要使用者注意并自己修改代码的地方大概就这些。 另外建议与皮肤无关的 H2 数据 JDBC 连接配置: `jdbc.URL=jdbc:h2:~/solo_h2/db;AUTO_SERVER=TRUE;DB_CLOSE_ON_EXIT=FALSE`。 + +---- + +## 整体效果 +### 1. 首页 +![首页](https://img.hacpai.com/file/2018/02/2c290b6b56ec46aba5400fdc3004fea2_2018021091348.jpg) + +### 2. 存档 +![存档](https://img.hacpai.com/file/2018/02/02f347f851514ba28ce5f6db17a12d3a_2018021091449.jpg) + +### 3. 标签墙 +![标签墙](https://img.hacpai.com/file/2018/02/9201790df35347cd811169036d53095f_2018021091729.jpg) + +### 4. 动态 +![动态](https://img.hacpai.com/file/2018/02/8c1d4d418849450a99d6ad0741ddf789_2018021091559.jpg) + +### 5. 链接 +![链接](https://img.hacpai.com/file/2018/02/164358ed23484f53a4f16052a77fcc19_2018021091838.jpg) + +### 6. 文章详情 +![文章详情](https://img.hacpai.com/file/2018/02/a70e2648ea05409da390fbf47e08e5ef_2018021092013.jpg) + +### 7. 评论回复 +![评论回复](https://img.hacpai.com/file/2018/02/f1a788a03f1b4366a8ccef3e9d1fb074_2018021092306.jpg) + +## 特别鸣谢 +此皮肤的发布离不开 D大(@88250)和 V姐(@Vanessa219)对 Solo 的辛勤耕耘,以及 V姐 对此皮肤的的热情,本来此皮肤的代码被我改的乱七八糟,代码本来看不下去,开始 V姐 提出 PR 一份的时候我是拒绝的,因为弄起来真的很麻烦,事实也的确如此 😂 ,即使现在也这代码也不一定有多整洁。写完了此 README 感觉用这个皮肤真的好麻烦呀,应该不会有人用吧 O(∩_∩)O~ + +### 三方包 +此改版皮肤的诞生要特别感谢以下第三方项目: +1. [layer](http://layer.layui.com/):一款美观易用的 jQuery 弹出层; +2. [OwO](https://github.com/DIYgod/OwO):萌萌哒评论框表情内容输入工具(Revised [OwO](http://git.itanken.cn/OwO/)); +3. [iconfont](http://iconfont.cn/):阿里巴巴功能强大且图标内容很丰富的矢量图标库。 + +... 好吧只记得这 3 个了,可能也只有这三个 😂 。 + +---- + +**平等,自由,奔放** + +**Equality, Freedom, Passion** diff --git a/iMobile/archive-articles.ftl b/iMobile/archive-articles.ftl new file mode 100644 index 0000000..9de5c1d --- /dev/null +++ b/iMobile/archive-articles.ftl @@ -0,0 +1,25 @@ +<#include "macro-head.ftl"> + + + +<@head title="${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear} (${archiveDate.archiveDatePublishedArticleCount}) - ${blogTitle}"> + + + + + +<#include "side.ftl"> +
+

+ ${archive1Label} + <#if "en" == localeString?substring(0, 2)> + ${archiveDate.archiveDateMonth} ${archiveDate.archiveDateYear} (${archiveDate.archiveDatePublishedArticleCount}) + <#else> + ${archiveDate.archiveDateYear} ${yearLabel} ${archiveDate.archiveDateMonth} ${monthLabel} (${archiveDate.archiveDatePublishedArticleCount}) + +

+ <#include "article-list.ftl"> + <#include "footer.ftl"> +
+ + \ No newline at end of file diff --git a/iMobile/archives.ftl b/iMobile/archives.ftl new file mode 100644 index 0000000..61713f4 --- /dev/null +++ b/iMobile/archives.ftl @@ -0,0 +1,42 @@ +<#include "macro-head.ftl"> + + + +<@head title="${archiveLabel} - ${blogTitle}"> + + + + + +<#include "side.ftl"> +
+ + <#include "footer.ftl"> +
+ + \ No newline at end of file diff --git a/iMobile/article-list.ftl b/iMobile/article-list.ftl new file mode 100644 index 0000000..82dc98d --- /dev/null +++ b/iMobile/article-list.ftl @@ -0,0 +1,72 @@ +<#list articles as article> +
+
+

+ ${article.articleTitle} + <#if article.hasUpdated> + + + <#if article.articlePutTop> + + +

+ +
+
${article.articleAbstract}
+
+   + <#list article.articleTags?split(",") as articleTag> + + + <#-- --> + Seves +
+
+ +<#if (articles?size<1)> +
+
+

当前页面无内容

+
+
+

温馨提示:

+

当前页面暂无相关内容,您可能访问了超过文章列表实际页数的页面。

+

最大页数为 ${paginationPageCount!"0"} 页,请在底部选择合适的页面进行访问,感谢您的配合。

+
+
+ +
+ +<#if 0 != paginationPageCount> + + \ No newline at end of file diff --git a/iMobile/article.ftl b/iMobile/article.ftl new file mode 100644 index 0000000..7896516 --- /dev/null +++ b/iMobile/article.ftl @@ -0,0 +1,96 @@ +<#include "macro-head.ftl"> +<#include "macro-comments.ftl"> + + + +<@head title="${article.articleTitle} - ${blogTitle}"> + + + + +<#if previousArticlePermalink??> + + +<#if nextArticlePermalink??> + + + + +<#include "side.ftl"> +
+
+
+

+ ${article.articleTitle} + <#if article.hasUpdated> + + + <#if article.articlePutTop> + + +

+ +
+   + <#list article.articleTags?split(",") as articleTag> + + + <#-- --> + Seves +
+
+
+ ${article.articleContent}<#-- +

本文链接:${servePath}${article.articlePermalink}

--> + <#if "" != article.articleSign.signHTML?trim> +
+ ${article.articleSign.signHTML} +
+ + <#if nextArticlePermalink?? || previousArticlePermalink??> + + +
+
+
${article.articleViewCount}
+
+ + + + + +
+
+
+
+ <@comments commentList=articleComments article=article> + + <#include "footer.ftl"> + <@comment_script oId=article.oId> + page.tips.externalRelevantArticlesDisplayCount = "${externalRelevantArticlesDisplayCount}"; + <#if 0 != externalRelevantArticlesDisplayCount> + page.loadExternalRelevantArticles("<#list article.articleTags?split(",") as articleTag>${articleTag}<#if articleTag_has_next>,"); + + +
+ + \ No newline at end of file diff --git a/iMobile/author-articles.ftl b/iMobile/author-articles.ftl new file mode 100644 index 0000000..1ec17e4 --- /dev/null +++ b/iMobile/author-articles.ftl @@ -0,0 +1,26 @@ +<#include "macro-head.ftl"> + + +<#if authorName??> + +<@head title="${authorName} - ${blogTitle}"> + + + + + +<#include "side.ftl"> +
+

+ ${author1Label}${authorName} +

+ <#include "article-list.ftl"> + <#include "footer.ftl"> +
+ +<#else> + + + + + \ No newline at end of file diff --git a/iMobile/category-articles.ftl b/iMobile/category-articles.ftl new file mode 100644 index 0000000..9d8a89d --- /dev/null +++ b/iMobile/category-articles.ftl @@ -0,0 +1,22 @@ +<#include "macro-head.ftl"> + + + +<@head title="${category.categoryTitle} - ${blogTitle}"> + + + + + +<#include "side.ftl"> +
+

+ ${categoryLabel} + ${category.categoryTitle} + (${category.categoryTagCnt}): ${category.categoryDescription} +

+ <#include "article-list.ftl"> + <#include "footer.ftl"> +
+ + \ No newline at end of file diff --git a/iMobile/common-comment.ftl b/iMobile/common-comment.ftl new file mode 100644 index 0000000..5da606f --- /dev/null +++ b/iMobile/common-comment.ftl @@ -0,0 +1,28 @@ +
  • +
    +
    + ${comment.commentName} +
    + <#if "http://" == comment.commentURL> + ${comment.commentName} + <#else> + ${comment.commentName} + + <#if comment.isReply> + @ + ${comment.commentOriginalCommentName} + +
    + <#if article.commentable> +
    + + ${comment.commentDate2?string("yyyy-MM-dd HH:mm:ss")} + ${replyLabel} +
    + +
    +
    +

    ${comment.commentContent}

    +
    +
    +
  • \ No newline at end of file diff --git a/iMobile/common-comment.ftl:Zone.Identifier b/iMobile/common-comment.ftl:Zone.Identifier new file mode 100644 index 0000000..a45e1ac --- /dev/null +++ b/iMobile/common-comment.ftl:Zone.Identifier @@ -0,0 +1,2 @@ +[ZoneTransfer] +ZoneId=3 diff --git a/iMobile/css/.DS_Store b/iMobile/css/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/iMobile/css/.DS_Store differ diff --git a/iMobile/css/fonts/icomoon.eot b/iMobile/css/fonts/icomoon.eot new file mode 100644 index 0000000..379a545 Binary files /dev/null and b/iMobile/css/fonts/icomoon.eot differ diff --git a/iMobile/css/fonts/icomoon.svg b/iMobile/css/fonts/icomoon.svg new file mode 100644 index 0000000..8ea89ab --- /dev/null +++ b/iMobile/css/fonts/icomoon.svg @@ -0,0 +1,23 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/iMobile/css/fonts/icomoon.ttf b/iMobile/css/fonts/icomoon.ttf new file mode 100644 index 0000000..bc8106a Binary files /dev/null and b/iMobile/css/fonts/icomoon.ttf differ diff --git a/iMobile/css/fonts/icomoon.woff b/iMobile/css/fonts/icomoon.woff new file mode 100644 index 0000000..a4f664c Binary files /dev/null and b/iMobile/css/fonts/icomoon.woff differ diff --git a/iMobile/css/fonts/selection.json b/iMobile/css/fonts/selection.json new file mode 100644 index 0000000..ad2f7ef --- /dev/null +++ b/iMobile/css/fonts/selection.json @@ -0,0 +1,317 @@ +{ + "IcoMoonType": "selection", + "icons": [ + { + "icon": { + "paths": [ + "M725.354 245.312c0 29.44 23.894 53.334 53.334 53.334s53.334-23.894 53.334-53.334-23.894-53.334-53.334-53.334-53.334 23.894-53.334 53.334zM352.448 999.232c32.854 33.088 86.186 33.088 119.254 0l521.386-517.974c20.886-20.886 31.36-48.426 30.934-75.946v-299.52c0-58.454-47.382-105.814-105.814-105.814h-299.52c-27.52-0.448-55.040 10.026-75.968 30.934l-517.952 521.408c-33.088 33.046-33.088 86.378 0 119.254l327.68 327.658zM640.022 245.312c0-76.586 62.080-138.666 138.666-138.666s138.666 62.080 138.666 138.666-62.080 138.666-138.666 138.666-138.666-62.080-138.666-138.666z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "tag", + "price" + ], + "grid": 48 + }, + "attrs": [], + "properties": { + "order": 34, + "id": 14, + "prevSize": 48, + "code": 59651, + "name": "tag" + }, + "setIdx": 1, + "setId": 0, + "iconIdx": 0 + }, + { + "icon": { + "paths": [ + "M896 960h-768c-35.328 0-64-28.672-64-64v-672c0-35.328 28.672-64 64-64h64v32c0 53.024 42.976 96 96 96s96-42.976 96-96v-32h256v32c0 53.024 43.008 96 96 96s96-42.976 96-96v-32h64c35.328 0 64 28.672 64 64v672c0 35.328-28.672 64-64 64zM896 384h-768v512h768v-512zM418.208 634.528c6.304-10.048 9.472-20.672 9.472-31.776 0-24.736-13.312-37.12-39.936-37.12-23.136 0-45.248 9.184-66.368 27.552v-52.128c23.36-15.136 49.76-22.688 79.136-22.688 27.488 0 48.96 6.912 64.416 20.704s23.168 32.48 23.168 55.968c0 31.36-18.816 63.808-56.448 97.312l-55.328 49.12v1.12h109.12v49.12h-176.992v-46.112l77.056-73.696c15.488-14.848 26.4-27.296 32.704-37.376zM634.784 741.312c8.448-6.496 12.672-15.552 12.672-27.2 0-12-5.216-21.248-15.648-27.744s-24.768-9.76-43.040-9.76h-24.192v-45.376h22.304c35.008 0 52.512-11.616 52.512-34.88 0-21.888-13.44-32.8-40.32-32.8-17.984 0-35.488 5.824-52.512 17.44v-48.384c18.88-9.504 40.864-14.24 65.984-14.24 27.488 0 48.896 6.176 64.224 18.56s22.976 28.448 22.976 48.192c0 35.136-17.824 57.12-53.44 65.984v0.928c19.008 2.368 33.984 9.28 44.992 20.704s16.512 25.472 16.512 42.080c0 25.12-9.184 44.992-27.552 59.616s-43.744 21.952-76.128 21.952c-27.744 0-50.304-4.512-67.68-13.504v-51.552c17.984 13.12 39.008 19.68 63.008 19.68 15.104 0.064 26.88-3.2 35.328-9.696zM735.008 256c-34.816 0-63.008-28.192-63.008-63.008v-65.984c0-34.816 28.192-63.008 63.008-63.008s63.008 28.192 63.008 63.008v65.984c0 34.816-28.192 63.008-63.008 63.008zM287.008 256c-34.816 0-63.008-28.192-63.008-63.008v-65.984c0-34.816 28.192-63.008 63.008-63.008s63.008 28.192 63.008 63.008v65.984c0 34.816-28.224 63.008-63.008 63.008z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "calendar", + "date", + "schedule" + ], + "grid": 32 + }, + "attrs": [], + "properties": { + "order": 35, + "id": 13, + "prevSize": 32, + "code": 59650, + "name": "date" + }, + "setIdx": 1, + "setId": 0, + "iconIdx": 1 + }, + { + "icon": { + "paths": [ + "M512 0c-282.75 0-512 229.25-512 512 0 226.25 146.688 418.125 350.156 485.812 25.594 4.688 34.938-11.125 34.938-24.625 0-12.188-0.469-52.562-0.719-95.312-142.375 30.937-172.469-60.375-172.469-60.375-23.312-59.125-56.844-74.875-56.844-74.875-46.531-31.75 3.53-31.125 3.53-31.125 51.406 3.562 78.47 52.75 78.47 52.75 45.688 78.25 119.875 55.625 149 42.5 4.654-33 17.904-55.625 32.5-68.375-113.656-12.937-233.218-56.875-233.218-253.063 0-55.938 19.969-101.562 52.656-137.406-5.219-13-22.844-65.094 5.062-135.562 0 0 42.938-13.75 140.812 52.5 40.812-11.406 84.594-17.031 128.125-17.219 43.5 0.188 87.312 5.875 128.188 17.281 97.688-66.312 140.688-52.5 140.688-52.5 28 70.531 10.375 122.562 5.125 135.5 32.812 35.844 52.625 81.469 52.625 137.406 0 196.688-119.75 240-233.812 252.688 18.438 15.875 34.75 47 34.75 94.75 0 68.438-0.688 123.625-0.688 140.5 0 13.625 9.312 29.562 35.25 24.562 203.313-67.812 349.875-259.687 349.875-485.812 0-282.75-229.25-512-512-512z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "mark-github" + ], + "grid": 16 + }, + "attrs": [], + "properties": { + "order": 36, + "id": 12, + "prevSize": 32, + "code": 59648, + "name": "github" + }, + "setIdx": 1, + "setId": 0, + "iconIdx": 2 + }, + { + "icon": { + "paths": [ + "M128 640c-70.656 0-128 57.375-128 128s57.344 128 128 128 128-57.375 128-128-57.344-128-128-128zM128 384c0 0-64 2-64 64s64 64 64 64c141.375 0 256 114.625 256 256 0 0 0 64 64 64s64-64 64-64c0-212-171.969-384-384-384zM128 128c0 0-64 0-64 64s64 64 64 64c282.75 0 512 229.25 512 512 0 0 0 64 64 64s64-64 64-64c0-353.406-286.5-640-640-640z" + ], + "attrs": [], + "isMulticolor": false, + "width": 768, + "tags": [ + "rss" + ], + "grid": 16 + }, + "attrs": [], + "properties": { + "order": 37, + "id": 11, + "prevSize": 32, + "code": 59649, + "name": "rss" + }, + "setIdx": 1, + "setId": 0, + "iconIdx": 3 + }, + { + "icon": { + "paths": [ + "M358.344 502.486q-76.634 0-130.858-54.222t-54.223-130.858 54.222-130.858 130.858-54.223 130.858 54.223 54.223 130.858-54.222 130.858-130.858 54.222zM821.043 564.18h169.657q6.266 0 10.845 4.579t4.579 10.845v92.54q0 6.266-4.579 10.845t-10.845 4.579h-169.657v169.657q0 6.266-4.579 10.845t-10.845 4.579h-92.54q-6.266 0-10.845-4.579t-4.579-10.845v-169.657h-169.657q-6.266 0-10.845-4.579t-4.579-10.845v-92.54q0-6.266 4.579-10.845t10.845-4.579h169.657v-169.657q0-6.266 4.579-10.844t10.845-4.579h92.54q6.266 0 10.845 4.579t4.579 10.844v169.657zM466.308 672.144q0 25.062 18.315 43.377t43.377 18.315h123.387v114.711q-32.773 24.099-82.419 24.099h-421.251q-58.319 0-93.504-33.257t-35.184-91.575q0-25.545 1.687-49.884t6.749-52.537 12.773-52.294 20.725-46.993 29.883-39.041 41.208-25.785 53.74-9.641q9.158 0 18.797 8.193 38.076 29.401 74.466 44.101t79.286 14.701 79.286-14.701 74.466-44.101q9.641-8.193 18.797-8.193 63.622 0 104.59 46.27h-107.482q-25.062 0-43.377 18.315t-18.315 43.377v92.54z" + ], + "isMulticolor": false, + "width": 1027, + "defaultCode": 58880, + "grid": 0 + }, + "properties": { + "id": 0, + "order": 38, + "prevSize": 32, + "code": 58880, + "name": "register" + }, + "setIdx": 1, + "setId": 0, + "iconIdx": 4 + }, + { + "icon": { + "paths": [ + "M798.222 677.333v-122.667h-306.667v-122.667h306.667v-122.667l184 184zM736.888 615.999v245.333h-306.667v184l-368-184v-797.333h674.667v306.667h-61.333v-245.333h-490.667l245.333 122.667v552h245.333v-184z" + ], + "isMulticolor": false, + "defaultCode": 58881, + "grid": 0 + }, + "properties": { + "id": 1, + "order": 39, + "prevSize": 32, + "code": 58881, + "name": "logout" + }, + "setIdx": 1, + "setId": 0, + "iconIdx": 5 + }, + { + "icon": { + "paths": [ + "M916.215 627.489c-51.487-89.177-20.524-203.458 69.146-255.384l-96.433-167.030c-27.552 16.152-59.585 25.413-93.769 25.413-103.055 0-186.595-84.090-186.595-187.824h-192.872c0.255 32.018-7.738 64.479-24.876 94.158-51.486 89.179-165.941 119.506-255.743 67.81l-96.431 167.030c27.763 15.786 51.798 38.897 68.891 68.5 51.403 89.037 20.616 203.090-68.72 255.131l96.433 167.030c27.456-16 59.336-25.16 93.342-25.16 102.729 0 186.055 83.559 186.588 186.835h192.868c-0.082-31.696 7.927-63.796 24.884-93.167 51.401-89.035 165.577-119.403 255.313-68.053l96.433-167.028c-27.581-15.78-51.455-38.811-68.458-68.26zM512 732.026c-109.737 0-198.697-88.956-198.697-198.695 0-109.737 88.958-198.695 198.697-198.695 109.737 0 198.693 88.958 198.693 198.695-0.002 109.739-88.956 198.695-198.693 198.695z" + ], + "isMulticolor": false, + "defaultCode": 58882, + "grid": 0 + }, + "properties": { + "id": 2, + "order": 40, + "prevSize": 32, + "code": 58882, + "name": "setting" + }, + "setIdx": 1, + "setId": 0, + "iconIdx": 6 + }, + { + "icon": { + "paths": [ + "M22.106 876.094c-0.234-2.427-0.433-4.859-0.56-7.312 0.125 2.453 0.326 4.886 0.56 7.312zM247.412 584.266c88.176 2.624 147.328-88.836 132.118-204.315-15.232-115.46-99.088-208.119-187.266-210.759-88.192-2.616-147.334 85.754-132.108 201.25 15.22 115.448 99.046 211.192 187.256 213.823zM1002.667 288v-81.755c0-89.968-73.583-163.578-163.547-163.578h-654.212c-88.431 0-161.012 71.139-163.457 159.012 55.93-49.245 133.519-90.386 213.588-90.386 85.583 0 342.359 0 342.359 0l-76.617 64.801h-108.549c72 27.604 110.358 111.286 110.358 197.15 0 72.113-40.068 134.123-96.684 178.219-55.242 43.031-65.715 61.053-65.715 97.633 0 31.221 59.173 84.333 90.114 106.172 90.449 63.766 119.711 122.966 119.711 221.812 0 15.743-1.957 31.462-5.813 46.92h294.919c89.963 0 163.545-73.552 163.545-163.578v-511.087h-184v183.998h-61.333v-184h-183.998v-61.333h183.998v-184h61.333v184h184zM199.474 776.688c20.713 0 39.696-0.565 59.355-0.565-26.015-25.237-46.6-56.158-46.6-94.281 0-22.624 7.249-44.405 17.378-63.748-10.333 0.738-20.882 0.953-31.746 0.953-71.258 0-131.777-23.073-176.529-61.193v64.44l0.006 193.325c51.213-24.317 112.018-38.929 178.135-38.929zM24.611 892.955c-1.066-5.231-1.884-10.547-2.436-15.941 0.55 5.393 1.37 10.71 2.436 15.941zM457.806 955.81c-14.431-56.356-65.602-84.299-136.934-133.753-25.944-8.368-54.523-13.296-85.19-13.616-85.884-0.924-165.895 33.486-211.040 84.69 15.257 74.468 81.491 130.868 160.266 130.868h274.509c1.74-10.664 2.584-21.689 2.584-32.997 0-12.012-1.47-23.759-4.194-35.192z" + ], + "isMulticolor": false, + "defaultCode": 58883, + "grid": 0 + }, + "properties": { + "id": 3, + "order": 41, + "prevSize": 32, + "code": 58883, + "name": "gplus" + }, + "setIdx": 1, + "setId": 0, + "iconIdx": 7 + }, + { + "icon": { + "paths": [ + "M431.713 490.026c-138.186 6.379-249.878 80.393-249.878 172.715 0 92.194 111.717 161.506 249.878 155.051 138.289-6.302 250.215-92.839 250.215-185.033 0-92.115-111.924-149.111-250.215-142.732zM525.869 722.24c-42.328 54.619-126.050 81.269-207.345 37.239-38.711-20.995-37.264-62.211-37.264-62.211s-16.062-130.182 122.925-146.451c139.142-16.115 163.986 116.779 121.685 171.423zM432.64 635.056c-8.911 6.455-10.716 18.801-5.888 26.469 4.648 7.878 15.469 8.78 24.223 2.221 8.6-6.791 11.931-18.619 7.257-26.469-4.598-7.644-15.287-9.865-25.591-2.221zM366.763 652.977c-25.978 2.685-44.547 25.308-44.547 46.949 0 21.693 20.917 36.67 46.845 33.624 25.85-2.944 46.87-22.931 46.87-44.547 0.052-21.693-19.343-38.891-49.17-36.026zM853.245 42.666h-682.544c-82.509 0-149.395 66.886-149.395 149.395v682.544c0 82.509 66.886 149.395 149.395 149.395h682.544c82.509 0 149.395-66.886 149.395-149.395v-682.544c0-82.509-66.861-149.395-149.395-149.395zM805.444 693.963c-56.969 121.013-244.818 179.894-384.037 168.996-132.298-10.408-302.379-54.361-319.966-214.473 0 0-9.296-72.515 60.998-166.336 0 0 101.102-141.184 218.862-181.47 117.863-40.106 131.627 27.761 131.627 67.867-6.275 34.011-17.999 54.025 26.239 40.286 0 0 115.849-53.74 163.547-6.068 38.454 38.479 6.354 91.444 6.354 91.444s-15.96 17.637 16.89 23.991c32.926 6.586 136.43 54.543 79.488 175.762zM691.197 359.612c-12.602 0-22.726-10.201-22.726-22.701 0-12.732 10.122-22.958 22.726-22.958 0 0 142.036-26.262 125.043 126.358 0 0.903-0.103 1.627-0.309 2.428-1.602 10.82-11.103 19.109-22.287 19.109-12.654 0-22.958-10.122-22.958-22.751 0 0.025 22.519-101.982-79.488-79.488zM931.288 481.685h-0.207c-3.745 25.825-16.554 27.891-31.815 27.891-18.258 0-33.003-11.466-33.003-29.75 0-15.832 6.561-31.92 6.561-31.92 1.936-6.662 17.38-48.085-10.201-110.013-50.512-84.834-152.237-86.074-164.243-81.244-12.111 4.751-29.982 7.126-29.982 7.126-18.389 0-33.109-14.952-33.109-33.132 0-15.262 10.201-28.175 24.146-32.127 0 0 0.309-0.516 0.774-0.594 1.008-0.207 2.041-1.215 3.124-1.317 14.178-2.712 64.664-12.629 113.756-1.137 87.829 20.504 208.457 105.442 154.2 286.214z" + ], + "isMulticolor": false, + "defaultCode": 58885, + "grid": 0 + }, + "properties": { + "id": 4, + "order": 42, + "prevSize": 32, + "code": 58885, + "name": "weibo" + }, + "setIdx": 1, + "setId": 0, + "iconIdx": 8 + }, + { + "icon": { + "paths": [ + "M1014.323 537.151l-253.013 0.064 0.067 463.723h-499.15v-463.79l-252.549 0.064 502.389-501.267z" + ], + "isMulticolor": false, + "defaultCode": 58890, + "grid": 0 + }, + "properties": { + "id": 5, + "order": 43, + "prevSize": 32, + "code": 58890, + "name": "goup" + }, + "setIdx": 1, + "setId": 0, + "iconIdx": 9 + }, + { + "icon": { + "paths": [ + "M839.119 42.666h-654.212c-89.963 0-163.574 73.61-163.574 163.578v654.179c0 90.024 73.612 163.576 163.574 163.576h654.212c89.965 0 163.547-73.552 163.547-163.578v-654.178c0-89.968-73.583-163.578-163.547-163.578zM824.466 370.257c0.314 7.036 0.47 14.114 0.47 21.225 0 216.788-162.165 466.773-458.714 466.773-91.046 0-175.791-27.167-247.141-73.713 12.612 1.522 25.446 2.294 38.458 2.294 75.538 0 145.051-26.23 200.228-70.229-70.549-1.322-130.088-48.756-150.606-113.929 9.846 1.917 19.945 2.946 30.333 2.946 14.705 0 28.947-2.009 42.473-5.758-73.753-15.077-129.327-81.378-129.327-160.862 0-0.692 0-1.378 0.015-2.062 21.735 12.286 46.598 19.665 73.025 20.518-43.261-29.419-71.724-79.63-71.724-136.551 0-30.063 7.948-58.246 21.829-82.472 79.517 99.255 198.314 164.565 332.306 171.409-2.75-12.010-4.176-24.529-4.176-37.388 0-90.599 72.187-164.048 161.22-164.048 46.374 0 88.28 19.92 117.685 51.806 36.723-7.356 71.227-21.007 102.381-39.811-12.039 38.31-37.599 70.459-70.884 90.764 32.608-3.966 63.683-12.784 92.594-25.831-21.607 32.894-48.942 61.789-80.446 84.918z" + ], + "isMulticolor": false, + "defaultCode": 58891, + "grid": 0 + }, + "properties": { + "id": 6, + "order": 44, + "prevSize": 32, + "code": 58891, + "name": "twitter" + }, + "setIdx": 1, + "setId": 0, + "iconIdx": 10 + }, + { + "icon": { + "paths": [ + "M1002.64 192.061c0-82.509-66.886-149.395-149.395-149.395h-682.544c-82.509 0-149.395 66.886-149.395 149.395v682.544c0 82.509 66.886 149.395 149.395 149.395h682.544c82.509 0 149.395-66.886 149.395-149.395v-682.544zM149.294 904.405c0.981 11.803-7.876 42.121-19.705 42.121h-2.17c-10.95 0-20.297-27.063-21.356-38.297-16.347-182.217 41.191-329.832 92.633-406.038 18.515-27.711 37.498-50.512 54.696-68.642-4.288-9.813-6.689-20.66-6.689-32.127 0-44.29 36.077-80.109 80.366-80.109 44.547 0 80.213 35.819 80.213 80.109 0 44.572-35.688 80.366-80.213 80.366-17.095 0-32.848-5.397-45.942-14.463-15.211 16.244-31.686 45.889-47.673 70.010-68.151 102.007-96.688 231.903-84.161 367.070zM323.505 648.329c-18.285 0-36.8-2.014-54.464-5.94-11.673-2.764-18.62-14.385-16.219-25.773 2.816-11.749 14.178-19.006 25.772-16.269 14.592 3.358 29.724 4.985 44.908 4.985 110.091 0 199.519-89.432 199.519-199.262 0-109.858-89.432-199.287-199.519-199.287-109.831 0-199.418 89.43-199.418 199.287 0 31.868 7.283 62.548 21.873 90.904 5.604 10.484 1.42 23.5-9.451 28.846-10.615 5.656-23.397 1.472-28.898-9.167-17.534-33.908-26.599-72.362-26.599-110.555 0-133.72 108.746-242.493 242.493-242.493 133.824 0 242.646 108.773 242.646 242.493-0.027 133.488-108.849 242.234-242.648 242.234zM774.455 366.428c-21.486 0.466-43.334-4.029-62.961-13.351-68.486-32.591-97.746-114.737-65.155-183.302 32.487-68.511 114.737-97.746 183.302-65.155 68.511 32.463 97.773 114.843 65.025 183.149-4.751 9.426-9.994 18.412-16.426 26.521-4.054 5.242-11.931 6.197-17.2 2.014s-6.095-11.931-1.911-17.2c5.267-6.561 9.786-14.099 13.376-21.848 26.856-56.271 2.971-123.957-53.483-150.428-56.348-26.856-123.803-2.996-150.428 53.611-27.115 56.22-3.124 123.675 53.379 150.531 16.347 7.67 33.984 11.492 51.804 10.768 6.791-0.128 12.524 5.114 12.654 11.931 0.309 6.818-5.087 12.395-11.983 12.757zM980.897 450.487c-0.155 0.621-0.414 0.826-0.414 1.188-2.816 5.654-9.271 8.366-15.393 6.197-97.307-35.922-149.473-96.817-175.994-141.699-9.53-16.244-16.449-31.661-21.486-44.754-6.302-0.155-12.318-1.807-17.999-4.313-23.061-10.977-32.643-37.963-21.745-60.766 10.743-22.701 37.833-32.384 60.636-21.486 22.701 10.846 32.256 37.988 21.641 60.636-4.184 8.625-10.873 15.519-18.67 19.834 4.803 11.956 11.002 25.206 19.471 39.278 35.612 59.81 90.386 103.661 162.514 130.261 6.43 2.505 9.557 9.298 7.437 15.623z" + ], + "isMulticolor": false, + "defaultCode": 58893, + "grid": 0 + }, + "properties": { + "id": 7, + "order": 45, + "prevSize": 32, + "code": 58893, + "name": "t-weibo" + }, + "setIdx": 1, + "setId": 0, + "iconIdx": 11 + }, + { + "icon": { + "paths": [ + "M360 554.666h-300v-120h300v-120l180 180-180 180zM960 74.666v780l-360 180v-180h-360v-240h60v180h300v-540l240-120h-540v240h-60v-300z" + ], + "isMulticolor": false, + "defaultCode": 58897, + "grid": 0 + }, + "properties": { + "id": 8, + "order": 46, + "prevSize": 32, + "code": 58897, + "name": "login" + }, + "setIdx": 1, + "setId": 0, + "iconIdx": 12 + } + ], + "height": 1024, + "metadata": { + "name": "icomoon" + }, + "preferences": { + "showGlyphs": true, + "showCodes": true, + "showQuickUse": true, + "showQuickUse2": true, + "showSVGs": true, + "fontPref": { + "prefix": "icon-", + "metadata": { + "fontFamily": "icomoon" + }, + "metrics": { + "emSize": 1024, + "baseline": 6.25, + "whitespace": 50 + }, + "embed": false + }, + "imagePref": { + "prefix": "icon-", + "png": true, + "useClassSelector": true, + "color": 4473924, + "bgColor": 16777215 + }, + "historySize": 100 + } +} \ No newline at end of file diff --git a/iMobile/css/yilia7.css b/iMobile/css/yilia7.css new file mode 100644 index 0000000..81a7a9c --- /dev/null +++ b/iMobile/css/yilia7.css @@ -0,0 +1,1252 @@ +@charset "utf-8"; + +/*!Copyright (c) 2010-2016, b3log.org & hacpai.com Licensed under the Apache License, Version 2.0 (the "License");*/ + +body, +html { + height: 100%; + max-height: 100% +} + +body, +dl, +h1, +h2, +h3, +h4, +h5, +h6, +ol, +p, +ul { + text-rendering: geometricPrecision +} + +dl dd, +dl dt { + margin-bottom: 1em +} + +body, +li li { + margin: 0 +} + +blockquote cite, +dl dt { + font-weight: 700 +} + +.fn-left, +dl dt { + float: left +} + +.form button, +a, +blockquote, +.side .avatar { + transition: all .3s ease +} + +.classify li, +.comments, +.dynamic li, +.side nav ul { + list-style: none +} + +html { + font-size: 16px; + -webkit-tap-highlight-color: transparent +} + +body { + overflow-x: hidden; + font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif; + letter-spacing: .01rem; + font-size: 100%; + line-height: 1.75em; + color: rgba(0, 0, 0, .6); + -webkit-font-feature-settings: 'kern' 1; + -moz-font-feature-settings: 'kern' 1; + -o-font-feature-settings: 'kern' 1; + background-color: #eaeaea +} + +a { + text-decoration: none; + color: #0099CC; + outline: 0; + cursor: pointer; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + -webkit-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; + -moz-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; + -o-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; + color: #666; + line-height: 1.15em; + font-family: "Open Sans", "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif +} + +h1 { + letter-spacing: -2px; + text-indent: -3px +} + +h2 { + letter-spacing: -1px +} + +img { + max-width: 100% +} + +dl, +ol, +p, +ul { + -webkit-font-feature-settings: 'liga' 1, 'onum' 1, 'kern' 1; + -moz-font-feature-settings: 'liga' 1, 'onum' 1, 'kern' 1; + -o-font-feature-settings: 'liga' 1, 'onum' 1, 'kern' 1 +} + +ol, +ul { + padding-left: 3rem +} + +ol ol, +ol ul, +ul ol, +ul ul { + padding-left: 2em +} + +dl dt { + width: 180px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap +} + +dl dd { + margin-left: 200px +} + +hr { + display: block; + height: 1px; + border: 0; + border-top: #EFEFEF 1px solid; + margin: 3.2em 0; + padding: 0 +} + +blockquote { + box-sizing: border-box; + margin: 1.75em 0; + padding: 0 0 0 1.75em; + border-left: 5px solid +} + +blockquote:hover { + border-color: #a9a9a9 +} + +blockquote p { + margin: .8em 0; + font-size: .9em; +} + +blockquote small { + display: inline-block; + margin: .8em 0 .8em 1.5em; + font-size: .9em; + color: #CCC +} + +blockquote small:before { + content: "\2014 \00A0" +} + +blockquote cite a { + font-weight: 400 +} + +mark { + background-color: #fdffb6 +} + +code, +tt { + padding: 1px 3px; + font-family: Inconsolata, Consolas, "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif; + font-size: .9em; + white-space: pre-wrap; + border: 1px solid #E3EDF3; + background: #F7FAFB; + border-radius: 2px +} + +pre { + font-size: .9em; + overflow-x: auto; +} + +pre code, +pre tt { + font-size: inherit; + white-space: unset; + background: 0 0; + border: none; + padding: 0 +} + +.fn-clear:after, +.fn-clear:before { + display: table; + content: "" +} + +.fn-clear:after { + clear: both +} + +.fn-right { + float: right +} + +.fn-none, +.hidden { + display: none +} + +#conoption { + padding: 0 10px; +} + +#conoption .fn-right.iconfont, +#comments .fn-right>.iconfont, +.side .toc-btn, +.side .toc .close { + font-size: 24px; +} + +#commentForm { + display: none; + border-collapse: inherit; + border: 0; +} + +#commentForm td { + padding: 3px 0; + border: 0; +} + +@font-face { + font-family: icomoon; + src: url(fonts/icomoon.eot?3js4w7); + src: url(fonts/icomoon.eot?3js4w7#iefix) format('embedded-opentype'), url(fonts/icomoon.ttf?3js4w7) format('truetype'), url(fonts/icomoon.woff?3js4w7) format('woff'), url(fonts/icomoon.svg?3js4w7#icomoon) format('svg'); + font-weight: 400; + font-style: normal +} + +[class*=" icon-"], +[class^=icon-] { + font-family: icomoon; + speak: none; + font-style: normal; + font-weight: 400; + font-variant: normal; + text-transform: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + vertical-align: middle +} + +.icon-tag:before { + content: "\e903" +} + +.icon-date:before { + content: "\e902" +} + +.icon-github:before { + content: "\e900" +} + +.icon-rss:before { + content: "\e901" +} + +.icon-register:before { + content: "\e600" +} + +.icon-logout:before { + content: "\e601" +} + +.icon-setting:before { + content: "\e602" +} + +.icon-gplus:before { + content: "\e603" +} + +.icon-weibo:before { + content: "\e605" +} + +.icon-goup:before { + content: "\e60a" +} + +.icon-twitter:before { + content: "\e60b" +} + +.icon-t-weibo:before { + content: "\e60d" +} + +.icon-login:before { + content: "\e611" +} + +.form { + width: 100%; + padding: 30px +} + +#captcha, +#captchaReply { + height: 27px; + display: inline-block; + vertical-align: inherit; + cursor: pointer; +} + +.form button, +.form input, +.form textarea { + border: 1px solid #CCC; + background-color: #FAFAFA; + padding: 7px 8px; + width: 100%; + box-sizing: border-box; + outline: 0; + font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif +} + +.tags .tag, +footer.footer { + font-family: Menlo, Monaco, "Andale Mono", "lucida console", "Courier New", "Microsoft Yahei", monospace +} + +.form button { + width: auto; + vertical-align: bottom; + cursor: pointer +} + +.form button:hover { + background-color: #a9a9a9; + color: #FFF; + box-shadow: 0 0 0; + border-color: #a9a9a9 +} + +.form input:focus, +.form textarea:focus { + background-color: #FFF; + box-shadow: 0 1px 2px rgba(0, 0, 0, .075) inset, 0 0 5px rgba(176, 160, 170, .5); + border: 1px solid #a9a9a9 +} + +span.error-msg { + padding: 3px; + font-size: 14px; + font-weight: bold; +} + +.em00, +.em01, +.em02, +.em03, +.em04, +.em05, +.em06, +.em07, +.em08, +.em09, +.em10, +.em11, +.em12, +.em13, +.em14 { + background-image: url("../images/emotions/emotions.png"); + cursor: pointer; + float: left; + height: 24px; + margin-right: 5px; + width: 24px; + transition: all .2s ease-out; + -webkit-transition: all .2s ease-out; + -moz-transition: all .2s ease-out; + background-size: 120px +} + +#emotions span:hover { + transform: scale(1.2) rotate(360deg); + -webkit-transform: scale(1.2) rotate(360deg); + -moz-transform: scale(1.2) rotate(360deg) +} + +.em01 { + background-position: -24px 0 +} + +.em02 { + background-position: -48px 0 +} + +.em03 { + background-position: -72px 0 +} + +.em04 { + background-position: -96px 0 +} + +.em05 { + background-position: 0 -24px +} + +.em06 { + background-position: -24px -24px +} + +.em07 { + background-position: -48px -24px +} + +.em08 { + background-position: -72px -24px +} + +.em09 { + background-position: -96px -24px +} + +.em10 { + background-position: 0 -48px +} + +.em11 { + background-position: -24px -48px +} + +.em12 { + background-position: -48px -48px +} + +.em13 { + background-position: -72px -48px +} + +.em14 { + background-position: -96px -48px +} + +.side { + position: fixed; + background-color: #FFF; + height: 100%; + width: 330px +} + +.side a, +.side .mysites { + color: #696969; + font-size: 30px +} + +.side .toc a, +.side nav a { + font-size: 14px +} + +.side .toc a:hover, +.side a:hover, +.side .mysites:hover { + color: #a9a9a9 +} + +.side .overlay { + height: 180px; + background-color: #eee; + position: absolute; + opacity: .333; + width: 100% +} + +.side .content { + width: 76%; + text-align: center; + margin: 0 auto 0; + position: relative; + z-index: 1 +} + +.side .toc, +.side footer, +main { + position: absolute +} + +.side .avatar { + display: block; + border: 5px solid #fff; + border-radius: 50%; + width: 128px; + height: 128px; + margin: 25px auto 40px; + transition: all .1s ease-in +} + +.side .avatar:hover { + border-color: rgba(37, 143, 184, .6) +} + +.side hgroup h1 { + margin: 10px 0; + line-height: 30px +} + +.side .subtitle { + color: #999; + font-size: 14px; + line-height: 25px +} + +.side nav ul { + margin: 0; + padding: 0 +} + +.side nav span.iconfont { + font-size: 24px; + margin: 0 5px; +} + +.side footer { + bottom: 15px; + width: 228px; + text-align: center; + left: 50%; + margin-left: -114px +} + +.side footer>div { + margin-bottom: 10px +} + +.side .toc-btn { + float: right; + padding: 10px; + display: none +} + +.side .toc { + transition: all .3s ease; + height: 100%; + width: 100%; + top: 0; + left: 0; + z-index: 10; + overflow: auto; + background: #5d5d5d +} + +.side .toc li { + padding: 2px 0; + border-bottom: 1px solid #717171; + border-top: 1px solid #5d5d5d +} + +.side .toc a { + color: #e5e5e5; + display: block +} + +.side .b3-solo-list { + padding: 0; + margin-top: 40px +} + +.abstract .b3-solo-list { + display: none +} + +.side .toc .close { + color: #fff; + float: right; + padding: 10px; +} + +main { + right: 0; + min-height: 100%; + background: #eaeaea; + left: 330px; + width: auto +} + +article { + margin: 30px; + border: 1px solid #ddd; + background: #fff; + position: relative; + transition: all .2s ease-in; + visibility: hidden +} + +.share span, +.tags .avatar { + transition: all .2s ease-out 0s +} + +article.post, +article.show { + visibility: visible +} + +::selection { + color: #fff; + background-color: #3498db; +} + +::-moz-selection { + color: #fff; + background-color: #3498db; +} + +::-webkit-selection { + color: #fff; + background-color: #3498db; +} + +.toc__panel--hide { + transform: translate(-750px); +} + +article.show, +.side .toc { + -webkit-animation: bounce .6s; + animation: bounce .6s +} + +@-webkit-keyframes bounce { + 0% { + opacity: 0; + -webkit-transform: scale(1) + } + 60% { + opacity: 1; + -webkit-transform: scale(1.02) + } + 100% { + -webkit-transform: scale(1) + } +} + +@-moz-keyframes bounce { + 0% { + opacity: 0; + -moz-transform: scale(1) + } + 60% { + opacity: 1; + -moz-transform: scale(1.02) + } + 100% { + -moz-transform: scale(1) + } +} + +.tags .tag:hover, +article .abstract a:hover, +nav.pagination a.page-num:hover { + opacity: .7 +} + +article header { + border-left: 5px solid; + padding: 15px 30px 15px 25px +} + +article header:hover { + border-color: #a9a9a9 +} + +article header h2 { + margin: 0; + font-size: 24px; +} + +article header h2:not(.dynamic-title) { + padding-right: 110px +} + +article header a { + color: #696969; + margin-left: 0; + font-weight: 300; + line-height: 35px +} + +article header a:hover { + color: #a9a9a9 +} + +article header sup { + font-size: 14px; + font-weight: 400; + color: #999 +} + +article header sup .iconfont { + font-size: 26px; +} + +article header time { + font-size: 14px; + position: absolute; + right: 30px; + color: #aaa; + top: 18px +} + +article .abstract { + line-height: 1.8em; + padding-right: 30px; + padding-left: 30px; + overflow: hidden; + word-wrap: break-word +} + +article footer { + padding: 20px 35px 0 0; + margin: 30px 30px 20px; + border-top: 1px solid #ddd +} + +.tags .avatar { + width: 20px; + border-radius: 10px; + right: 30px; + position: absolute; + bottom: 25px +} + +.share span { + cursor: pointer +} + +.share span:hover, +.tags .avatar:hover { + transform: rotate(360deg); + color: #333 +} + +.tags .tag { + color: #fff; + font-size: 10px; + height: 18px; + line-height: 18px; + display: inline-block; + padding: 0 5px 0 10px; + position: relative; + border-radius: 0 5px 5px 0; + margin: 5px 9px 5px 8px; + background-color: #88acdb +} + +.tags .tag:after, +.tags .tag:before { + content: " "; + position: absolute +} + +.tags .tag:before { + width: 0; + height: 0; + top: 0; + left: -18px; + border: 9px solid transparent; + border-right-color: #88acdb +} + +.tags .tag:after { + width: 4px; + height: 4px; + background-color: #fff; + border-radius: 4px; + box-shadow: 0 0 0 1px rgba(0, 0, 0, .3); + top: 7px; + left: 2px +} + +a.color1.tag { + background: #999 +} + +a.color1.tag:before { + border-right-color: #999 +} + +a.color2.tag { + background: #ccc +} + +a.color2.tag:before { + border-right-color: #ccc +} + +a.color3.tag { + background: #666 +} + +a.color3.tag:before { + border-right-color: #666 +} + +nav.pagination { + text-align: center; + margin-top: 30px +} + +nav.pagination .page-num { + width: 30px; + height: 30px; + background: #4d4d4d; + border-radius: 50%; + display: inline-block; + color: #fff; + line-height: 30px; + font-size: 18px; + margin: 0 3px 30px +} + +nav.pagination .page-num.current { + background: #88acdb +} + +nav.pagination .extend { + font-size: 24px; + color: #4d4d4d; + margin: 0 5px; + opacity: 0 +} + +nav.pagination .extend:hover { + color: #a9a9a9 +} + +nav.pagination:hover .extend { + opacity: 1 +} + +.post .tags .avatar, +.side nav ul li.hide { + bottom: inherit; + margin-top: 4px +} + +.post section.tags { + margin: 0 +} + +.post header { + padding-bottom: 0 +} + +.post .share { + padding: 10px 0 0; + margin-top: 15px; + font-size: 22px +} + +.post aside a { + color: #DDD +} + +.post aside a>strong { + background: #ddd; + color: #fff; + border-radius: 50%; + width: 16px; + height: 16px; + display: inline-block; + transition: background .3s; + vertical-align: middle; + line-height: 14px; + text-align: center +} + +.post aside a:hover { + color: #4d4d4d +} + +.post aside a:hover>strong { + background-color: #4d4d4d +} + +.comments { + margin: 60px 60px 0 50px; + padding: 0; + position: relative +} + +.comments li { + margin-bottom: 30px; + padding-bottom: 30px; + border-bottom: 1px solid #ddd +} + +.comments li time { + border-left: 1px solid #d5dbde; + padding-left: 10px; + margin-left: 10px +} + +.comments .avatar { + position: absolute; + height: 60px; + width: 60px; + border-radius: 50%; + border: 3px solid #FFF +} + +.comments .content { + margin-left: 80px; + min-height: 66px +} + +.comments .post-meta { + margin-bottom: 9px +} + +.comments .content img { + vertical-align: sub +} + +.comments li.comment-body-ref { + position: absolute; + background-color: #FFF; + width: 80%; + margin-left: 80px; + padding: 10px; + border: 1px solid #ddd +} + +footer.footer { + line-height: 1rem; + font-size: 12px; + line-height: 20px; + text-shadow: 0 1px #fff; + opacity: .6; + margin: 0 30px 30px +} + +footer.footer .icon-goup, +#backBtm { + position: fixed; + bottom: 85px; + right: 5px; + -webkit-animation: upbounce 4s 2s infinite; + animation: upbounce 4s 2s infinite; + z-index: 10; + font-size: 30px; + cursor: pointer; + color: #999; + transition: all .3s ease +} + +#backBtm { + bottom: 50px; + display: none; +} + +footer.footer .icon-goup:hover, +#backBtm:hover { + color: #4a4a4a +} + +@-webkit-keyframes upbounce { + 0%, + 10%, + 25%, + 40%, + 50% { + -webkit-transform: translateY(0); + transform: translateY(0) + } + 20% { + -webkit-transform: translateY(-10px); + transform: translateY(-10px) + } + 30% { + -webkit-transform: translateY(-5px); + transform: translateY(-5px) + } +} + +@keyframes upbounce { + 0%, + 100%, + 20%, + 50%, + 80% { + -webkit-transform: translateY(0); + transform: translateY(0) + } + 40% { + -webkit-transform: translateY(-10px); + transform: translateY(-10px) + } + 60% { + -webkit-transform: translateY(-5px); + transform: translateY(-5px) + } +} + +.classify li { + font-size: 20px; + float: left; + margin: 0 10px 20px 0 +} + +.classify .tags .tag { + font-size: 20px; + padding: 10px +} + +.classify .tags .tag:before { + left: -38px; + border-width: 19px +} + +.classify .tags .tag:after { + top: 15px; + left: -6px; + width: 8px; + height: 8px +} + +.classify-name { + font-size: 18px; + margin: 30px +} + +.dynamic .comments li:last-child { + border-bottom-width: 0 +} + +li.icontitle { + font-size: 26px; + line-height: 36px; +} + +.dynamic h2 li { + float: left; + margin: 0 10px 20px 0; +} + +div.comment-content { + overflow-wrap: break-word; +} + +table { + width: 100%; + border-collapse: collapse; + border: 1px solid #ccc; +} + +table th, +table td { + border: 1px solid #E6E6E6; + padding: 3px 5px; + word-break: normal; +} + +table th { + background: #F3F3F3; +} + +th, +td { + text-align: left; +} + +@media only screen and (min-width:751px) {} + +@media only screen and (max-width:750px) { + select:focus, + textarea:focus, + input:focus { + font-size: 16px !important; + } + .side, + .side .avatar { + position: relative + } + .side .avatar { + margin: 25px auto 50px + } + .side { + height: 400px; + width: 100%; + background: #666 url('/images/bg.jpg') center -40px + } + .side .toc-btn { + color: #000 + } + main { + position: initial + } + .side .content { + margin-top: 0; + padding-top: 50px + } + .side .overlay { + height: 100%; + z-index: 0; + } + .side .content hgroup { + margin: 70px 0 10px; + } + .side a { + color: #fff + } + .side .subtitle { + margin: 0 auto; + color: #ccc + } + .side nav { + font-weight: bold; + } + .side nav ul { + color: #ccc + } + .side nav ul li.hide, + .side footer { + display: none + } + article { + margin: 10px + } + .comments { + margin: 20px 20px 0 + } + footer.footer { + text-align: center + } + footer.footer .fn-right { + float: none; + display: block + } +} + +@media only screen and (max-height:480px) { + .side footer>div { + display: none + } +} + +@media only screen and (max-height:405px) { + .side nav { + display: none + } +} + +@media only screen and (max-height:350px) { + .side>footer { + display: none + } +} + +a, +b, +i, +p, +h1, +h2, +h3, +h4, +h5, +h6, +td, +th, +li, +div, +sub, +sup, +span, +time, +footer, +section { + moz-user-select: -moz-none; + -moz-user-select: none; + -o-user-select: none; + -khtml-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} + +#hideinfo { + padding: 20px 40px; + line-height: 24px; + background-color: #333; + color: #fff; + font-weight: 300; +} + +#hideinfo a { + color: #fff; +} + + ::-webkit-scrollbar { + width: 6px; + height: 6px; +} + +::-webkit-scrollbar-track-piece { + background-color: #eee; + -webkit-border-radius: 3px; +} + +::-webkit-scrollbar-thumb { + background-color: #999; + outline: 0; + border: 1px solid #999; + -webkit-border-radius: 3px; +} + +::-webkit-scrollbar-thumb:hover { + background-color: #666; +} \ No newline at end of file diff --git a/iMobile/css/yilia7.min.css b/iMobile/css/yilia7.min.css new file mode 100644 index 0000000..1d817cc --- /dev/null +++ b/iMobile/css/yilia7.min.css @@ -0,0 +1,2 @@ +@charset "utf-8";/*!Copyright (c) 2010-2016, b3log.org & hacpai.com Licensed under the Apache License, Version 2.0 (the "License");*/ body,html{height:100%;max-height:100%}body,dl,h1,h2,h3,h4,h5,h6,ol,p,ul{text-rendering:geometricPrecision}dl dd,dl dt{margin-bottom:1em}body,li li{margin:0}blockquote cite,dl dt{font-weight:700}.fn-left,dl dt{float:left}.form button,a,blockquote,.side .avatar{transition:all .3s ease}.classify li,.comments,.dynamic li,.side nav ul{list-style:none}html{font-size:16px;-webkit-tap-highlight-color:transparent}body{overflow-x: hidden;font-family:"Helvetica Neue","Luxi Sans","DejaVu Sans",Tahoma,"Hiragino Sans GB","Microsoft Yahei",sans-serif;letter-spacing:.01rem;font-size:100%;line-height:1.75em;color:rgba(0,0,0,.6);-webkit-font-feature-settings:'kern' 1;-moz-font-feature-settings:'kern' 1;-o-font-feature-settings:'kern' 1;background-color:#eaeaea}a{text-decoration:none;color:#0099CC;outline:0;cursor:pointer;}h1,h2,h3,h4,h5,h6{-webkit-font-feature-settings:'dlig' 1,'liga' 1,'lnum' 1,'kern' 1;-moz-font-feature-settings:'dlig' 1,'liga' 1,'lnum' 1,'kern' 1;-o-font-feature-settings:'dlig' 1,'liga' 1,'lnum' 1,'kern' 1;color:#666;line-height:1.15em;font-family:"Open Sans","Helvetica Neue","Luxi Sans","DejaVu Sans",Tahoma,"Hiragino Sans GB","Microsoft Yahei",sans-serif}h1{letter-spacing:-2px;text-indent:-3px}h2{letter-spacing:-1px}img{max-width:100%}dl,ol,p,ul{-webkit-font-feature-settings:'liga' 1,'onum' 1,'kern' 1;-moz-font-feature-settings:'liga' 1,'onum' 1,'kern' 1;-o-font-feature-settings:'liga' 1,'onum' 1,'kern' 1}ol,ul{padding-left:3rem}ol ol,ol ul,ul ol,ul ul{padding-left:2em}dl dt{width:180px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}dl dd{margin-left:200px}hr{display:block;height:1px;border:0;border-top:#EFEFEF 1px solid;margin:3.2em 0;padding:0}blockquote{box-sizing:border-box;margin:1.75em 0;padding:0 0 0 1.75em;border-left:5px solid}blockquote:hover{border-color:#a9a9a9}blockquote p{margin:.8em 0;font-size:.9em;}blockquote small{display:inline-block;margin:.8em 0 .8em 1.5em;font-size:.9em;color:#CCC}blockquote small:before{content:"\2014 \00A0"}blockquote cite a{font-weight:400}mark{background-color:#fdffb6}code,tt{padding:1px 3px;font-family:Inconsolata,Consolas,"Helvetica Neue","Luxi Sans","DejaVu Sans",Tahoma,"Hiragino Sans GB","Microsoft Yahei",sans-serif;font-size:.9em;white-space:pre-wrap;border:1px solid #E3EDF3;background:#F7FAFB;border-radius:2px}pre{font-size:.9em;overflow-x:auto;}pre code,pre tt{font-size:inherit;white-space:unset;background:0 0;border:none;padding:0}.fn-clear:after,.fn-clear:before{display:table;content:""}.fn-clear:after{clear:both}.fn-right{float:right}.fn-none, .hidden{display:none}#conoption{padding:0 10px;}#conoption .fn-right.iconfont, #comments .fn-right>.iconfont,.side .toc-btn,.side .toc .close{font-size:24px;}#commentForm{display:none;border-collapse:inherit;border:0;}#commentForm td{padding:3px 0;border:0;}@font-face{font-family:icomoon;src:url(fonts/icomoon.eot?3js4w7);src:url(fonts/icomoon.eot?3js4w7#iefix) format('embedded-opentype'),url(fonts/icomoon.ttf?3js4w7) format('truetype'),url(fonts/icomoon.woff?3js4w7) format('woff'),url(fonts/icomoon.svg?3js4w7#icomoon) format('svg');font-weight:400;font-style:normal}[class*=" icon-"],[class^=icon-]{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:middle}.icon-tag:before{content:"\e903"}.icon-date:before{content:"\e902"}.icon-github:before{content:"\e900"}.icon-rss:before{content:"\e901"}.icon-register:before{content:"\e600"}.icon-logout:before{content:"\e601"}.icon-setting:before{content:"\e602"}.icon-gplus:before{content:"\e603"}.icon-weibo:before{content:"\e605"}.icon-goup:before{content:"\e60a"}.icon-twitter:before{content:"\e60b"}.icon-t-weibo:before{content:"\e60d"}.icon-login:before{content:"\e611"}.form{width:100%;padding:30px}#captcha,#captchaReply{height:27px;display:inline-block;vertical-align:inherit;cursor:pointer;}.form button,.form input,.form textarea{border:1px solid #CCC;background-color:#FAFAFA;padding:7px 8px;width:100%;box-sizing:border-box;outline:0;font-family:"Helvetica Neue","Luxi Sans","DejaVu Sans",Tahoma,"Hiragino Sans GB","Microsoft Yahei",sans-serif}.tags .tag,footer.footer{font-family:Menlo,Monaco,"Andale Mono","lucida console","Courier New","Microsoft Yahei",monospace}.form button{width:auto;vertical-align:bottom;cursor:pointer}.form button:hover{background-color:#a9a9a9;color:#FFF;box-shadow:0 0 0;border-color:#a9a9a9}.form input:focus,.form textarea:focus{background-color:#FFF;box-shadow:0 1px 2px rgba(0,0,0,.075) inset,0 0 5px rgba(176,160,170,.5);border:1px solid #a9a9a9}span.error-msg{padding:3px;font-size:14px;font-weight:bold;}.em00, .em01, .em02, .em03, .em04, .em05, .em06, .em07, .em08, .em09, .em10, .em11, .em12, .em13, .em14{background-image: url("../images/emotions/emotions.png");cursor:pointer;float:left;height:24px;margin-right:5px;width:24px;transition:all .2s ease-out;-webkit-transition:all .2s ease-out;-moz-transition:all .2s ease-out;background-size:120px}#emotions span:hover{transform:scale(1.2) rotate(360deg);-webkit-transform:scale(1.2) rotate(360deg);-moz-transform:scale(1.2) rotate(360deg)}.em01{background-position:-24px 0}.em02{background-position:-48px 0}.em03{background-position:-72px 0}.em04{background-position:-96px 0}.em05{background-position:0 -24px}.em06{background-position:-24px -24px}.em07{background-position:-48px -24px}.em08{background-position:-72px -24px}.em09{background-position:-96px -24px}.em10{background-position:0 -48px}.em11{background-position:-24px -48px}.em12{background-position:-48px -48px}.em13{background-position:-72px -48px}.em14{background-position:-96px -48px}.side{position:fixed;background-color:#FFF;height:100%;width:330px}.side a,.side .mysites{color:#696969;font-size:30px}.side .toc a,.side nav a{font-size:14px}.side .toc a:hover,.side a:hover,.side .mysites:hover{color:#a9a9a9}.side .overlay{height:180px;background-color:#eee;position:absolute;opacity:.333;width:100%}.side .content{width:76%;text-align:center;margin:0 auto 0;position:relative;z-index:1}.side .toc,.side footer,main{position:absolute}.side .avatar{display:block;border:5px solid #fff;border-radius:50%;width:128px;height:128px;margin:25px auto 40px;transition:all .1s ease-in}.side .avatar:hover{border-color:rgba(37,143,184,.6)}.side hgroup h1{margin:10px 0;line-height:30px}.side .subtitle{color:#999;font-size:14px;line-height:25px}.side nav ul{margin:0;padding:0}.side nav span.iconfont{font-size: 24px;margin:0 5px;}.side footer{bottom:15px;width:228px;text-align:center;left:50%;margin-left:-114px}.side footer>div{margin-bottom:10px}.side .toc-btn{float:right;padding:10px;display:none}.side .toc{transition: all .3s ease;height:100%;width:100%;top:0;left:0;z-index:10;overflow:auto;background:#5d5d5d}.side .toc li{padding: 2px 0;border-bottom:1px solid #717171;border-top:1px solid #5d5d5d}.side .toc a{color:#e5e5e5;display:block}.side .b3-solo-list{padding:0;margin-top:40px}.abstract .b3-solo-list{display:none}.side .toc .close{color:#fff;float:right;padding:10px;}main{right:0;min-height:100%;background:#eaeaea;left:330px;width:auto}article{margin:30px;border:1px solid #ddd;background:#fff;position:relative;transition:all .2s ease-in;visibility:hidden}.share span,.tags .avatar{transition:all .2s ease-out 0s}article.post,article.show{visibility:visible}::selection {color:#fff; background-color:#3498db;}::-moz-selection {color:#fff; background-color:#3498db;}::-webkit-selection {color:#fff; background-color:#3498db;}.toc__panel--hide{transform: translate(-750px);}article.show,.side .toc{-webkit-animation:bounce .6s;animation:bounce .6s}@-webkit-keyframes bounce{0%{opacity:0;-webkit-transform:scale(1)}60%{opacity:1;-webkit-transform:scale(1.02)}100%{-webkit-transform:scale(1)}}@-moz-keyframes bounce{0%{opacity:0;-moz-transform:scale(1)}60%{opacity:1;-moz-transform:scale(1.02)}100%{-moz-transform:scale(1)}}.tags .tag:hover,article .abstract a:hover,nav.pagination a.page-num:hover{opacity:.7}article header{border-left:5px solid;padding:15px 30px 15px 25px}article header:hover{border-color:#a9a9a9}article header h2{margin:0;font-size:24px;}article header h2:not(.dynamic-title){padding-right:110px}article header a{color:#696969;margin-left:0;font-weight:300;line-height:35px}article header a:hover{color:#a9a9a9}article header sup{font-size:14px;font-weight:400;color:#999}article header sup .iconfont{font-size:26px;}article header time{font-size:14px;position:absolute;right:30px;color:#aaa;top:18px}article .abstract{line-height:1.8em;padding-right:30px;padding-left:30px;overflow:hidden;word-wrap:break-word}article footer{padding:20px 35px 0 0;margin:30px 30px 20px;border-top:1px solid #ddd}.tags .avatar{width:20px;border-radius:10px;right:30px;position:absolute;bottom:25px}.share span{cursor:pointer}.share span:hover,.tags .avatar:hover{transform:rotate(360deg);color:#333}.tags .tag{color:#fff;font-size:10px;height:18px;line-height:18px;display:inline-block;padding:0 5px 0 10px;position:relative;border-radius:0 5px 5px 0;margin:5px 9px 5px 8px;background-color:#88acdb}.tags .tag:after,.tags .tag:before{content:" ";position:absolute}.tags .tag:before{width:0;height:0;top:0;left:-18px;border:9px solid transparent;border-right-color:#88acdb}.tags .tag:after{width:4px;height:4px;background-color:#fff;border-radius:4px;box-shadow:0 0 0 1px rgba(0,0,0,.3);top:7px;left:2px}a.color1.tag{background:#999}a.color1.tag:before{border-right-color:#999}a.color2.tag{background:#ccc}a.color2.tag:before{border-right-color:#ccc}a.color3.tag{background:#666}a.color3.tag:before{border-right-color:#666}nav.pagination{text-align:center;margin-top:30px}nav.pagination .page-num{width:30px;height:30px;background:#4d4d4d;border-radius:50%;display:inline-block;color:#fff;line-height:30px;font-size:18px;margin:0 3px 30px}nav.pagination .page-num.current{background:#88acdb}nav.pagination .extend{font-size:24px;color:#4d4d4d;margin:0 5px;opacity:0}nav.pagination .extend:hover{color:#a9a9a9}nav.pagination:hover .extend{opacity:1}.post .tags .avatar, .side nav ul li.hide{bottom:inherit;margin-top:4px}.post section.tags{margin:0}.post header{padding-bottom:0}.post .share{padding:10px 0 0;margin-top:15px;font-size:22px}.post aside a{color:#DDD}.post aside a>strong{background:#ddd;color:#fff;border-radius:50%;width:16px;height:16px;display:inline-block;transition:background .3s;vertical-align:middle;line-height:14px;text-align:center}.post aside a:hover{color:#4d4d4d}.post aside a:hover>strong{background-color:#4d4d4d}.comments{margin:60px 60px 0 50px;padding:0;position:relative}.comments li{margin-bottom:30px;padding-bottom:30px;border-bottom:1px solid #ddd}.comments li time{border-left:1px solid #d5dbde;padding-left:10px;margin-left:10px}.comments .avatar{position:absolute;height:60px;width:60px;border-radius:50%;border:3px solid #FFF}.comments .content{margin-left:80px;min-height:66px}.comments .post-meta{margin-bottom:9px}.comments .content img{vertical-align:sub}.comments li.comment-body-ref{position:absolute;background-color:#FFF;width:80%;margin-left:80px;padding:10px;border:1px solid #ddd}footer.footer{line-height:1rem;font-size:12px;line-height:20px;text-shadow:0 1px #fff;opacity:.6;margin:0 30px 30px}footer.footer .icon-goup,#backBtm{position:fixed;bottom:85px;right:5px;-webkit-animation:upbounce 4s 2s infinite;animation:upbounce 4s 2s infinite;z-index:10;font-size:30px;cursor:pointer;color:#999;transition:all .3s ease}#backBtm{bottom: 50px;display:none;}footer.footer .icon-goup:hover,#backBtm:hover{color:#4a4a4a}@-webkit-keyframes upbounce{0%,10%,25%,40%,50%{-webkit-transform:translateY(0);transform:translateY(0)}20%{-webkit-transform:translateY(-10px);transform:translateY(-10px)}30%{-webkit-transform:translateY(-5px);transform:translateY(-5px)}}@keyframes upbounce{0%,100%,20%,50%,80%{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-10px);transform:translateY(-10px)}60%{-webkit-transform:translateY(-5px);transform:translateY(-5px)}}.classify li{font-size:20px;float:left;margin:0 10px 20px 0}.classify .tags .tag{font-size:20px;padding:10px}.classify .tags .tag:before{left:-38px;border-width:19px}.classify .tags .tag:after{top:15px;left:-6px;width:8px;height:8px}.classify-name{font-size:18px;margin:30px}.dynamic .comments li:last-child{border-bottom-width:0}li.icontitle{font-size:26px;line-height:36px;}.dynamic h2 li{float:left;margin:0 10px 20px 0;}div.comment-content{overflow-wrap: break-word;}table {width: 100%; border-collapse:collapse; border: 1px solid #ccc;}table th, table td {border: 1px solid #E6E6E6;padding: 3px 5px;word-break: normal;}table th {background: #F3F3F3;}th, td {text-align: left;}@media only screen and (min-width:751px){}@media only screen and (max-width:750px){select:focus, textarea:focus, input:focus { font-size: 16px !important;}.side,.side .avatar{position:relative}.side .avatar{margin:25px auto 50px}.side{height:400px;width:100%;background:#666 url('/images/bg.jpg') center -40px}.side .toc-btn{color:#000}main{position:initial}.side .content{margin-top:0;padding-top:50px}.side .overlay{height:100%;z-index:0;}.side .content hgroup{margin: 70px 0 10px;}.side a{color:#fff}.side .subtitle{margin: 0 auto;color:#ccc}.side nav {font-weight: bold;}.side nav ul{color:#ccc}.side nav ul li.hide,.side footer{display:none}article{margin:10px}.comments{margin:20px 20px 0}footer.footer{text-align:center}footer.footer .fn-right{float:none;display:block}}@media only screen and (max-height:480px){.side footer>div{display:none}}@media only screen and (max-height:405px){.side nav{display:none}}@media only screen and (max-height:350px){.side>footer{display:none}}a,b,i,p,h1,h2,h3,h4,h5,h6,td,th,li,div,sub,sup,span,time,footer,section{moz-user-select: -moz-none;-moz-user-select: none;-o-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}#hideinfo{padding:20px 40px;line-height:24px;background-color:#333;color:#fff;font-weight:300;}#hideinfo a{color:#fff;} +::-webkit-scrollbar { width: 6px; height: 6px; }::-webkit-scrollbar-track-piece { background-color: #eee; -webkit-border-radius: 3px; }::-webkit-scrollbar-thumb { background-color: #999; outline: 0; border: 1px solid #999; -webkit-border-radius: 3px; }::-webkit-scrollbar-thumb:hover { background-color: #666; } \ No newline at end of file diff --git a/iMobile/dynamic.ftl b/iMobile/dynamic.ftl new file mode 100644 index 0000000..6eaf82e --- /dev/null +++ b/iMobile/dynamic.ftl @@ -0,0 +1,92 @@ +<#include "macro-head.ftl"> + + + +<@head title="${dynamicLabel} - ${blogTitle}"> + + + + + + +<#include "side.ftl"> +
    +
    +
    +

    +
  • ${dynamicLabel}
    +

    +
    + <#if 0 != recentComments?size> +
      + <#list recentComments as comment> + <#if comment_index < 11> +
    • + ${comment.commentName} +
      + +
      ${comment.commentContent}
      +
      +
    • + + +
    + +
    +<#if 0 != mostCommentArticles?size || 0 != mostViewCountArticles?size> +<#if 0 != mostCommentArticles?size> +
    +
    +

  • + ${mostCommentArticlesLabel} +

    +
    + +
    + +<#if 0 != mostViewCountArticles?size> +
    +
    +

  • + ${mostViewCountArticlesLabel} +

    +
    + +
    + + +<#include "footer.ftl"> +
    + + + \ No newline at end of file diff --git a/iMobile/footer.ftl b/iMobile/footer.ftl new file mode 100644 index 0000000..da608e6 --- /dev/null +++ b/iMobile/footer.ftl @@ -0,0 +1,94 @@ + +<#-- 我喜欢把有些可能频繁修改的 js 和 css 代码直接写在 ftl 文件里,因为写在 ftl 里修改后不需要重启服务即可直接保存查看效果,单独写在文件里必须关闭服务后才能保存修改。 --> + + + + + + + + + +<#-- ${plugins} --> \ No newline at end of file diff --git a/iMobile/images/.DS_Store b/iMobile/images/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/iMobile/images/.DS_Store differ diff --git a/iMobile/images/bbg.jpg b/iMobile/images/bbg.jpg new file mode 100644 index 0000000..99fd134 Binary files /dev/null and b/iMobile/images/bbg.jpg differ diff --git a/iMobile/images/emotions/.DS_Store b/iMobile/images/emotions/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/iMobile/images/emotions/.DS_Store differ diff --git a/iMobile/images/emotions/em00.png b/iMobile/images/emotions/em00.png new file mode 100644 index 0000000..4726416 Binary files /dev/null and b/iMobile/images/emotions/em00.png differ diff --git a/iMobile/images/emotions/em01.png b/iMobile/images/emotions/em01.png new file mode 100644 index 0000000..eaa38f6 Binary files /dev/null and b/iMobile/images/emotions/em01.png differ diff --git a/iMobile/images/emotions/em02.png b/iMobile/images/emotions/em02.png new file mode 100644 index 0000000..6ba6f92 Binary files /dev/null and b/iMobile/images/emotions/em02.png differ diff --git a/iMobile/images/emotions/em03.png b/iMobile/images/emotions/em03.png new file mode 100644 index 0000000..4c69130 Binary files /dev/null and b/iMobile/images/emotions/em03.png differ diff --git a/iMobile/images/emotions/em04.png b/iMobile/images/emotions/em04.png new file mode 100644 index 0000000..faf0b07 Binary files /dev/null and b/iMobile/images/emotions/em04.png differ diff --git a/iMobile/images/emotions/em05.png b/iMobile/images/emotions/em05.png new file mode 100644 index 0000000..3c022b9 Binary files /dev/null and b/iMobile/images/emotions/em05.png differ diff --git a/iMobile/images/emotions/em06.png b/iMobile/images/emotions/em06.png new file mode 100644 index 0000000..4ae94b6 Binary files /dev/null and b/iMobile/images/emotions/em06.png differ diff --git a/iMobile/images/emotions/em07.png b/iMobile/images/emotions/em07.png new file mode 100644 index 0000000..c71d3a8 Binary files /dev/null and b/iMobile/images/emotions/em07.png differ diff --git a/iMobile/images/emotions/em08.png b/iMobile/images/emotions/em08.png new file mode 100644 index 0000000..94fa08e Binary files /dev/null and b/iMobile/images/emotions/em08.png differ diff --git a/iMobile/images/emotions/em09.png b/iMobile/images/emotions/em09.png new file mode 100644 index 0000000..9960ab5 Binary files /dev/null and b/iMobile/images/emotions/em09.png differ diff --git a/iMobile/images/emotions/em10.png b/iMobile/images/emotions/em10.png new file mode 100644 index 0000000..c03ff31 Binary files /dev/null and b/iMobile/images/emotions/em10.png differ diff --git a/iMobile/images/emotions/em11.png b/iMobile/images/emotions/em11.png new file mode 100644 index 0000000..1c51124 Binary files /dev/null and b/iMobile/images/emotions/em11.png differ diff --git a/iMobile/images/emotions/em12.png b/iMobile/images/emotions/em12.png new file mode 100644 index 0000000..8e1c50a Binary files /dev/null and b/iMobile/images/emotions/em12.png differ diff --git a/iMobile/images/emotions/em13.png b/iMobile/images/emotions/em13.png new file mode 100644 index 0000000..a02170a Binary files /dev/null and b/iMobile/images/emotions/em13.png differ diff --git a/iMobile/images/emotions/em14.png b/iMobile/images/emotions/em14.png new file mode 100644 index 0000000..c42e4e8 Binary files /dev/null and b/iMobile/images/emotions/em14.png differ diff --git a/iMobile/images/emotions/emotions.png b/iMobile/images/emotions/emotions.png new file mode 100644 index 0000000..6c9584e Binary files /dev/null and b/iMobile/images/emotions/emotions.png differ diff --git a/iMobile/index.ftl b/iMobile/index.ftl new file mode 100644 index 0000000..152a98c --- /dev/null +++ b/iMobile/index.ftl @@ -0,0 +1,21 @@ +<#include "macro-head.ftl"> + + + +<@head title="${blogTitle}"> +<#if metaKeywords??> + + +<#if metaDescription??> + + + + + +<#include "side.ftl"> +
    + <#include "article-list.ftl"> + <#include "footer.ftl"> +
    + + \ No newline at end of file diff --git a/iMobile/js/.DS_Store b/iMobile/js/.DS_Store new file mode 100644 index 0000000..54c6f1a Binary files /dev/null and b/iMobile/js/.DS_Store differ diff --git a/iMobile/js/common.js b/iMobile/js/common.js new file mode 100644 index 0000000..4b44aa8 --- /dev/null +++ b/iMobile/js/common.js @@ -0,0 +1,379 @@ +/* + * Copyright (c) 2010-2018, b3log.org & hacpai.com + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @fileoverview util and every page should be used. + * + * @author Liyuan Li + * @author Liang Ding + * @version 1.3.1.1, Jan 29, 2018 + */ + +/** + * @description Util + * @static + */ +var Util = { + /** + * 按需加载 MathJax 及 flow + * @returns {undefined} + */ + parseMarkdown: function (className) { + var hasMathJax = false; + var hasFlow = false; + var className = className || 'article-body'; + $('.' + className).each(function () { + $(this).find('p').each(function () { + if ($(this).text().indexOf('$\\') > -1 || $(this).text().indexOf('$$') > -1) { + hasMathJax = true; + } + }); + if ($(this).find('code.lang-flow, code.language-flow').length > 0) { + hasFlow = true + } + }); + + if (hasMathJax) { + var initMathJax = function () { + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [['$', '$'], ["\\(", "\\)"]], + displayMath: [['$$', '$$']], + processEscapes: true, + processEnvironments: true, + skipTags: ['pre', 'code', 'script'] + } + }); + MathJax.Hub.Typeset(); + }; + + if (typeof MathJax !== 'undefined') { + initMathJax(); + } else { + $.ajax({ + method: "GET", + url: "https://cdn.staticfile.org/MathJax/MathJax-2.6-latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML&_=1473258780393", + dataType: "script", + cache: true + }).done(function () { + initMathJax(); + }); + } + } + + if (hasFlow) { + var initFlow = function () { + $('.' + className + ' code.lang-flow, .' + className + ' code.language-flow').each(function (index) { + var $it = $(this); + var id = 'symFlow' + (new Date()).getTime() + index; + $it.hide(); + var diagram = flowchart.parse($.trim($it.text())); + $it.parent().after('
    ') + diagram.drawSVG(id); + $it.parent().remove(); + $('#' + id).find('svg').height('auto').width('auto'); + }); + }; + + if (typeof (flowchart) !== 'undefined') { + initFlow(); + } else { + $.ajax({ + method: "GET", + url: latkeConfig.staticServePath + '/js/lib/flowchart/flowchart.min.js', + dataType: "script", + cache: true + }).done(function () { + initFlow() + }); + } + } + }, + /** + * @description 是否登录 + * @returns {Boolean} 是否登录 + */ + isLoggedIn: function () { + if (($("#admin").length === 1 && $("#admin").data("login")) || latkeConfig.isLoggedIn === "true") { + return true; + } else { + return false; + } + }, + /** + * @description 获取用户名称 + * @returns {String} 用户名称 + */ + getUserName: function () { + if ($("#adminName").length === 1) { + return $("#adminName").text(); + } else { + return latkeConfig.userName; + } + }, + /** + * @description 检测页面错误 + */ + error: function () { + $("#tipMsg").text("Error: " + arguments[0] + + " File: " + arguments[1] + "\nLine: " + arguments[2] + + " please report this issue on https://github.com/b3log/solo/issues/new"); + $("#loadMsg").text(""); + }, + /** + * @description IE6/7,跳转到 kill-browser 页面 + */ + killIE: function () { + var addKillPanel = function () { + if (Cookie.readCookie("showKill") === "") { + var left = ($(window).width() - 701) / 2, + top1 = ($(window).height() - 420) / 2; + $("body").append("
    " + + ""); + } + }; + + if ($.browser.msie) { + // kill IE6 and IE7 + if ($.browser.version === "6.0" || $.browser.version === "7.0") { + addKillPanel(); + return; + } + + // 后台页面 kill 360 + if (window.external && window.external.twGetRunPath) { + var path = external.twGetRunPath(); + if (path && path.toLowerCase().indexOf("360se") > -1 && + window.location.href.indexOf("admin-index") > -1) { + addKillPanel(); + return; + } + } + } + }, + /** + * @description 替换[emXX] 为图片 + * @param {String} str 替换字符串 + * @returns {String} 替换后的字符 + */ + replaceEmString: function (str) { + var commentSplited = str.split("[em"); + if (commentSplited.length === 1) { + return str; + } + + str = commentSplited[0]; + for (var j = 1; j < commentSplited.length; j++) { + var key = commentSplited[j].substr(0, 2); + str += "" +
+        Label["em" + key + "Label"] + " " + commentSplited[j].substr(3); + } + return str; + }, + /** + * @description URL 没有协议头,则自动加上 http:// + * @param {String} url URL 地址 + * @returns {String} 添加后的URL + */ + proessURL: function (url) { + if (!/^\w+:\/\//.test(url)) { + url = "http://" + url; + } + return url; + }, + /** + * @description 切换到手机版 + * @param {String} skin 切换前的皮肤名称 + */ + switchMobile: function (skin) { + Cookie.createCookie("btouch_switch_toggle", skin, 365); + setTimeout(function () { + location.reload(); + }, 1250); + }, + /** + * @description topbar 相关事件 + */ + setTopBar: function () { + var $top = $("#top"); + if ($top.length === 1) { + var $showTop = $("#showTop"); + $showTop.click(function () { + $top.slideDown(); + $showTop.hide(); + }); + $("#hideTop").click(function () { + $top.slideUp(); + $showTop.show(); + }); + } + }, + /** + * @description 回到顶部 + */ + goTop: function () { + $('html, body').animate({scrollTop: 0}, 500); + }, + /** + * @description 回到底部 + */ + goBottom: function (bottom) { + if (!bottom) { + bottom = 0; + } + var wHeight = $("body").height() > $(document).height() ? $("body").height() : $(document).height(); + // window.scrollTo(0, wHeight - $(window).height() - bottom); + $('html, body').animate({scrollTop: (wHeight - $(window).height() - bottom)}, 500); + }, + /** + * @description 页面初始化执行的函数 + */ + init: function () { + //window.onerror = Util.error; + Util.killIE(); + Util.setTopBar(); + Util.parseMarkdown(); + }, + /** + * @description 替换侧边栏表情为图片 + * @param {Dom} comments 评论内容元素 + */ + replaceSideEm: function (comments) { + for (var i = 0; i < comments.length; i++) { + var $comment = $(comments[i]); + $comment.html(Util.replaceEmString($comment.html())); + } + }, + /** + * @description 根据 tags,穿件云效果 + * @param {String} [id] tags 根元素 id,默认为 tags + */ + buildTags: function (id) { + id = id || "tags"; + // 根据引用次数添加样式,产生云效果 + var classes = ["tags1", "tags2", "tags3", "tags4", "tags5"], + bList = $("#" + id + " b").get(); + var max = parseInt($("#" + id + " b").last().text()); + var distance = Math.ceil(max / classes.length); + for (var i = 0; i < bList.length; i++) { + var num = parseInt(bList[i].innerHTML); + // 算出当前 tag 数目所在的区间,加上 class + for (var j = 0; j < classes.length; j++) { + if (num > j * distance && num <= (j + 1) * distance) { + bList[i].parentNode.className = classes[j]; + break; + } + } + } + + // 按字母或者中文拼音进行排序 + $("#" + id).html($("#" + id + " li").get().sort(function (a, b) { + var valA = $(a).find("span").text().toLowerCase(); + var valB = $(b).find("span").text().toLowerCase(); + // 对中英文排序的处理 + return valA.localeCompare(valB); + })); + }, + /** + * @description 时间戳转化为时间格式 + * @param {String} time 时间 + * @param {String} format 格式化后日期格式 + * @returns {String} 格式化后的时间 + */ + toDate: function (time, format) { + var dateTime = new Date(time); + var o = { + "M+": dateTime.getMonth() + 1, //month + "d+": dateTime.getDate(), //day + "H+": dateTime.getHours(), //hour + "m+": dateTime.getMinutes(), //minute + "s+": dateTime.getSeconds(), //second + "q+": Math.floor((dateTime.getMonth() + 3) / 3), //quarter + "S": dateTime.getMilliseconds() //millisecond + } + + if (/(y+)/.test(format)) { + format = format.replace(RegExp.$1, (dateTime.getFullYear() + "").substr(4 - RegExp.$1.length)); + } + + for (var k in o) { + if (new RegExp("(" + k + ")").test(format)) { + format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); + } + } + return format; + }, + /** + * @description 获取窗口高度 + * @returns {Inter} 窗口高度 + */ + getWinHeight: function () { + if (window.innerHeight) { + return window.innerHeight; + } + if (document.compatMode === "CSS1Compat") { + return window.document.documentElement.clientHeight; + } + return window.document.body.clientHeight; + } +}; +if (!Cookie) { + /** + * @description Cookie 相关操作 + * @static + */ + var Cookie = { + /** + * @description 读取 cookie + * @param {String} name cookie key + * @returns {String} 对应 key 的值,如 key 不存在则返回 "" + */ + readCookie: function (name) { + var nameEQ = name + "="; + var ca = document.cookie.split(';'); + for (var i = 0; i < ca.length; i++) { + var c = ca[i]; + while (c.charAt(0) == ' ') + c = c.substring(1, c.length); + if (c.indexOf(nameEQ) == 0) + return decodeURIComponent(c.substring(nameEQ.length, c.length)); + } + return ""; + }, + /** + * @description 清除 Cookie + * @param {String} name 清除 key 为 name 的该条 Cookie + */ + eraseCookie: function (name) { + this.createCookie(name, "", -1); + }, + /** + * @description 创建 Cookie + * @param {String} name 每条 Cookie 唯一的 key + * @param {String} value 每条 Cookie 对应的值,将被 UTF-8 编码 + * @param {Int} days Cookie 保存时间 + */ + createCookie: function (name, value, days) { + var expires = ""; + if (days) { + var date = new Date(); + date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); + expires = "; expires=" + date.toGMTString(); + } + document.cookie = name + "=" + encodeURIComponent(value) + expires + "; path=/"; + } + }; +} \ No newline at end of file diff --git a/iMobile/js/common.min.js b/iMobile/js/common.min.js new file mode 100644 index 0000000..0d9aa42 --- /dev/null +++ b/iMobile/js/common.min.js @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2010-2018, b3log.org & hacpai.com + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +var Util={parseMarkdown:function(className){var hasMathJax=false;var hasFlow=false;var className=className||"article-body";$("."+className).each(function(){$(this).find("p").each(function(){if($(this).text().indexOf("$\\")>-1||$(this).text().indexOf("$$")>-1){hasMathJax=true}});if($(this).find("code.lang-flow, code.language-flow").length>0){hasFlow=true}});if(hasMathJax){var initMathJax=function(){MathJax.Hub.Config({tex2jax:{inlineMath:[["$","$"],["\\(","\\)"]],displayMath:[["$$","$$"]],processEscapes:true,processEnvironments:true,skipTags:["pre","code","script"]}});MathJax.Hub.Typeset()};if(typeof MathJax!=="undefined"){initMathJax()}else{$.ajax({method:"GET",url:"https://cdn.staticfile.org/MathJax/MathJax-2.6-latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML&_=1473258780393",dataType:"script",cache:true}).done(function(){initMathJax()})}}if(hasFlow){var initFlow=function(){$("."+className+" code.lang-flow, ."+className+" code.language-flow").each(function(index){var $it=$(this);var id="symFlow"+(new Date()).getTime()+index;$it.hide();var diagram=flowchart.parse($.trim($it.text()));$it.parent().after('
    ');diagram.drawSVG(id);$it.parent().remove();$("#"+id).find("svg").height("auto").width("auto")})};if(typeof(flowchart)!=="undefined"){initFlow()}else{$.ajax({method:"GET",url:latkeConfig.staticServePath+"/js/lib/flowchart/flowchart.min.js",dataType:"script",cache:true}).done(function(){initFlow()})}}},isLoggedIn:function(){if(($("#admin").length===1&&$("#admin").data("login"))||latkeConfig.isLoggedIn==="true"){return true}else{return false}},getUserName:function(){if($("#adminName").length===1){return $("#adminName").text()}else{return latkeConfig.userName}},error:function(){$("#tipMsg").text("Error: "+arguments[0]+" File: "+arguments[1]+"\nLine: "+arguments[2]+" please report this issue on https://github.com/b3log/solo/issues/new");$("#loadMsg").text("")},killIE:function(){var addKillPanel=function(){if(Cookie.readCookie("showKill")===""){var left=($(window).width()-701)/2,top1=($(window).height()-420)/2;$("body").append("
    ")}};if($.browser.msie){if($.browser.version==="6.0"||$.browser.version==="7.0"){addKillPanel();return}if(window.external&&window.external.twGetRunPath){var path=external.twGetRunPath();if(path&&path.toLowerCase().indexOf("360se")>-1&&window.location.href.indexOf("admin-index")>-1){addKillPanel();return}}}},replaceEmString:function(str){var commentSplited=str.split("[em");if(commentSplited.length===1){return str}str=commentSplited[0];for(var j=1;j "+commentSplited[j].substr(3)}return str},proessURL:function(url){if(!/^\w+:\/\//.test(url)){url="http://"+url}return url},switchMobile:function(skin){Cookie.createCookie("btouch_switch_toggle",skin,365);setTimeout(function(){location.reload()},1250)},setTopBar:function(){var $top=$("#top");if($top.length===1){var $showTop=$("#showTop");$showTop.click(function(){$top.slideDown();$showTop.hide()});$("#hideTop").click(function(){$top.slideUp();$showTop.show()})}},goTop:function(){$("html, body").animate({scrollTop:0},800)},goBottom:function(bottom){if(!bottom){bottom=0}var wHeight=$("body").height()>$(document).height()?$("body").height():$(document).height();$('html, body').animate({scrollTop: (wHeight - $(window).height() - bottom)}, 500);},init:function(){Util.killIE();Util.setTopBar();Util.parseMarkdown()},replaceSideEm:function(comments){for(var i=0;ij*distance&&num<=(j+1)*distance){bList[i].parentNode.className=classes[j];break}}}$("#"+id).html($("#"+id+" li").get().sort(function(a,b){var valA=$(a).find("span").text().toLowerCase();var valB=$(b).find("span").text().toLowerCase();return valA.localeCompare(valB)}))},toDate:function(time,format){var dateTime=new Date(time);var o={"M+":dateTime.getMonth()+1,"d+":dateTime.getDate(),"H+":dateTime.getHours(),"m+":dateTime.getMinutes(),"s+":dateTime.getSeconds(),"q+":Math.floor((dateTime.getMonth()+3)/3),S:dateTime.getMilliseconds()};if(/(y+)/.test(format)){format=format.replace(RegExp.$1,(dateTime.getFullYear()+"").substr(4-RegExp.$1.length))}for(var k in o){if(new RegExp("("+k+")").test(format)){format=format.replace(RegExp.$1,RegExp.$1.length==1?o[k]:("00"+o[k]).substr((""+o[k]).length))}}return format},getWinHeight:function(){if(window.innerHeight){return window.innerHeight}if(document.compatMode==="CSS1Compat"){return window.document.documentElement.clientHeight}return window.document.body.clientHeight}};if(!Cookie){var Cookie={readCookie:function(name){var nameEQ=name+"=";var ca=document.cookie.split(";");for(var i=0;i{ + class OwO { + constructor(option) { + const defaultOption = { + logo: 'OωO表情', + container: document.getElementsByClassName('OwO')[0], + target: document.getElementsByTagName('textarea')[0], + position: 'down', + width: '100%', + maxHeight: '250px', + api: 'https://itanken.oss-cn-hangzhou.aliyuncs.com/images/emimg/OwO.json', + useMarkdown: false, + appendContent: '', + addClass: '', + usedSize: 'h_200' + }; + for (let defaultKey in defaultOption) { + if (defaultOption.hasOwnProperty(defaultKey) && !option.hasOwnProperty(defaultKey)) { + option[defaultKey] = defaultOption[defaultKey]; + } + } + this.container = option.container; + this.target = option.target; + if (option.position === 'up') { + this.container.classList.add('OwO-up'); + } + const xhr = new XMLHttpRequest(); + xhr.onreadystatechange = () => { + if (xhr.readyState === 4) { + if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) { + this.odata = JSON.parse(xhr.responseText); + this.init(option); + } else { + console.log('OwO data request was unsuccessful: ' + xhr.status); + } + } + }; + xhr.open('get', option.api, true); + xhr.send(null); + } + init(option) { + this.area = option.target; + this.packages = Object.keys(this.odata); + // fill in HTML + let html = ` + +
    `; + for (let i = 0; i < this.packages.length; i++) { + html += ` +
      `; + let opackage = this.odata[this.packages[i]].container; + for (let i = 0; i < opackage.length; i++) { + html += (` +
    • ${opackage[i].icon}
    • `); + } + html += ` +
    `; + } + html += ` +
    +
      `; + for (let i = 0; i < this.packages.length; i++) { + html += ` +
    • ${this.packages[i]}
    • ` + } + html += ` +
    +
    +
    + `; + if(option.appendContent != '') { + html += option.appendContent; + } + this.container.innerHTML = html; + // bind event + this.logo = this.container.getElementsByClassName('OwO-logo')[0]; + this.logo.addEventListener('click', () => { + this.toggle(); + }); + this.container.getElementsByClassName('OwO-body')[0].addEventListener('click', (e)=> { + let target = null; + if (e.target.classList.contains('OwO-item')) { + target = e.target; + } else if (e.target.parentNode.classList.contains('OwO-item')) { + target = e.target.parentNode; + } + if (target) { + var insertContent = target.innerHTML; + if(target.firstChild.tagName == "IMG" && option.useMarkdown) { + insertContent = "![" + target.title + "](" + (target.firstChild.src.substr(0,target.firstChild.src.indexOf(",")+1)) + option.usedSize + ")"; + } + const cursorPos = this.area.selectionEnd; + let areaValue = this.area.value; + this.area.value = areaValue.slice(0, cursorPos) + insertContent + areaValue.slice(cursorPos); + this.area.focus(); + //this.toggle(); + } + }); + this.packagesEle = this.container.getElementsByClassName('OwO-packages')[0]; + for (let i = 0; i < this.packagesEle.children.length; i++) { + ((index) =>{ + this.packagesEle.children[i].addEventListener('click', () => { + this.tab(index); + }); + })(i); + } + this.tab(0); + } + toggle() { + if (this.container.classList.contains('OwO-open')) { + this.container.classList.remove('OwO-open'); + } else { + this.container.classList.add('OwO-open'); + } + } + tab(index) { + const itemsShow = this.container.getElementsByClassName('OwO-items-show')[0]; + if (itemsShow) { + itemsShow.classList.remove('OwO-items-show'); + } + this.container.getElementsByClassName('OwO-items')[index].classList.add('OwO-items-show'); + const packageActive = this.container.getElementsByClassName('OwO-package-active')[0]; + if (packageActive) { + packageActive.classList.remove('OwO-package-active'); + } + this.packagesEle.getElementsByTagName('li')[index].classList.add('OwO-package-active'); + } + } + if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { + module.exports = OwO; + } else { + window.OwO = OwO; + } +})(); \ No newline at end of file diff --git a/iMobile/js/lib/OwO/OwO.js b/iMobile/js/lib/OwO/OwO.js new file mode 100644 index 0000000..71badf9 --- /dev/null +++ b/iMobile/js/lib/OwO/OwO.js @@ -0,0 +1,290 @@ +{ + "颜文字": { + "type": "emoticon", + "container": [{ + "icon": "OωO", + "text": "萌" + }, + { + "icon": "|´・ω・)ノ", + "text": "Hi" + }, + { + "icon": "ヾ(≧∇≦*)ゝ", + "text": "开心" + }, + { + "icon": "(●゚ω゚●)", + "text": "脸红" + }, + { + "icon": " ̄﹃ ̄", + "text": "流口水" + }, + { + "icon": "(/ω\)", + "text": "捂脸" + }, + { + "icon": "→_→", + "text": "斜眼" + }, + { + "icon": "(╯‵□′)╯︵┴─┴", + "text": "掀桌" + }, + { + "icon": "∠( ᐛ 」∠)_", + "text": "给跪" + }, + { + "icon": "(@。ε。@))", + "text": "么么哒" + }, + { + "icon": "୧(๑•̀⌄•́๑)૭", + "text": "加油" + }, + { + "icon": "⌇●﹏●⌇", + "text": "吓死宝宝惹" + }, + { + "icon": "٩(ˊᗜˋ*)و", + "text": "有木有WiFi" + }, + { + "icon": "(ノ°ο°)ノ", + "text": "前方高能预警" + }, + { + "icon": "(´இ皿இ`)", + "text": "我从未见过如此厚颜无耻之人" + }, + { + "icon": "(ฅ´ω`ฅ)", + "text": "已阅留爪" + }, + { + "icon": "(╯°A°)╯︵○○○", + "text": "去吧大师球" + }, + { + "icon": "φ( ̄∇ ̄o)", + "text": "太萌惹" + }, + { + "icon": "ヾ(´・ ・`。)ノ\"", + "text": "咦咦咦" + }, + { + "icon": "( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃", + "text": "气呼呼" + }, + { + "icon": "(๑•̀ㅂ•́)و✧", + "text": "加油" + }, + { + "icon": "Σ(っ °Д °;)っ", + "text": "什么鬼" + }, + { + "icon": "─=≡Σ(((つ•̀ω•́)つ", + "text": "飞扑" + }, + { + "icon": "╮(╯▽╰)╭ ", + "text": "无奈" + }, + { + "icon": "( ,,´・ω・)ノ\"(´っω・`。)", + "text": "摸摸头" + }, + { + "icon": "♥(✿ฺ´∀`✿ฺ)ノ", + "text": "花痴" + }, + { + "icon": "٩(๑>◡<๑)۶", + "text": "真棒" + }, + { + "icon": "(ó﹏ò。)", + "text": "我受到了惊吓" + } + ] + }, + "Emoji": { + "type": "emoji", + "container": [{ + "icon": "😂", + "text": "笑哭" + }, + { + "icon": "😀", + "text": "哈哈" + }, + { + "icon": "😅", + "text": "流汗" + }, + { + "icon": "😊", + "text": "可爱" + }, + { + "icon": "🙂", + "text": "微笑" + }, + { + "icon": "🙃", + "text": "我倒" + }, + { + "icon": "😌", + "text": "嘻嘻" + }, + { + "icon": "😍", + "text": "爱你" + }, + { + "icon": "😘 ", + "text": "飞吻" + }, + { + "icon": "😜", + "text": "鬼脸" + }, + { + "icon": "😝", + "text": "啦啦啦" + }, + { + "icon": "😏", + "text": "坏笑" + }, + { + "icon": "😒", + "text": "撇嘴" + }, + { + "icon": "🙄", + "text": "白眼" + }, + { + "icon": "😳 ", + "text": "脸红" + }, + { + "icon": "😡", + "text": "愤怒" + }, + { + "icon": "😔", + "text": "哎" + }, + { + "icon": "😫", + "text": "好累" + }, + { + "icon": "😱", + "text": "惊恐" + }, + { + "icon": "😭", + "text": "大哭" + }, + { + "icon": "😶", + "text": "无语" + }, + { + "icon": "😣", + "text": "难过" + }, + + { + "icon": "😤", + "text": "气死" + }, + { + "icon": "😪", + "text": "困了" + }, + { + "icon": "😮", + "text": "惊呆" + }, + { + "icon": "😲", + "text": "天哪" + }, + { + "icon": "🤥", + "text": "说谎" + }, + { + "icon": "🤢", + "text": "恶心" + }, + { + "icon": "👻", + "text": "吓死你" + }, + { + "icon": "👍", + "text": "棒棒哒" + }, + { + "icon": "👎", + "text": "鄙视" + }, + { + "icon": "👏", + "text": "鼓掌" + }, + { + "icon": "👋", + "text": "拜拜" + }, + { + "icon": "👭", + "text": "朋友" + }, + { + "icon": "🌝", + "text": "满月" + }, + { + "icon": "🌞", + "text": "太阳" + }, + { + "icon": "🙈", + "text": "看不见" + }, + { + "icon": "💊", + "text": "该吃药了" + }, + { + "icon": "🙏", + "text": "拜托" + } + ] + }, + "Markdown": { + "type": "emoticon", + "container": [ + { "icon": "[TEXT](https://zixizixi.cn 'TITLE')", "text": "链接" }, + { "icon": "![ALT](https://zixizixi.cn/icon.png 'TITLE')", "text": "图片" }, + { "icon": "#", "text": "标题" }, + { "icon": "> ", "text": "引用" }, + { "icon": "*", "text": "粗/斜/项" }, + { "icon": "```", "text": "代码" } + ] + } +} \ No newline at end of file diff --git a/iMobile/js/lib/OwO/OwO.json_bak b/iMobile/js/lib/OwO/OwO.json_bak new file mode 100644 index 0000000..ddc23b5 --- /dev/null +++ b/iMobile/js/lib/OwO/OwO.json_bak @@ -0,0 +1,444 @@ +{ +"颜文字": { + "type": "emoticon", + "container": [ + {"icon": "OωO","text": "萌"}, + {"icon": "|´・ω・)ノ","text": "Hi"}, + {"icon": "ヾ(≧∇≦*)ゝ","text": "开心"}, + {"icon": "(●゚ω゚●)","text": "脸红"}, + {"icon": " ̄﹃ ̄","text": "流口水"}, + {"icon": "(/ω\)","text": "捂脸"}, + {"icon": "→_→","text": "斜眼"}, + {"icon": "(╯‵□′)╯︵┴─┴","text": "掀桌"}, + {"icon": "∠( ᐛ 」∠)_","text": "给跪"}, + {"icon": "(@。ε。@))","text": "么么哒"}, + {"icon": "୧(๑•̀⌄•́๑)૭","text": "加油"}, + {"icon": "⌇●﹏●⌇","text": "吓死宝宝惹"}, + {"icon": "٩(ˊᗜˋ*)و","text": "有木有WiFi"}, + {"icon": "(ノ°ο°)ノ","text": "前方高能预警"}, + {"icon": "(´இ皿இ`)","text": "我从未见过如此厚颜无耻之人"}, + {"icon": "(ฅ´ω`ฅ)","text": "已阅留爪"}, + {"icon": "(╯°A°)╯︵○○○","text": "去吧大师球"}, + {"icon": "φ( ̄∇ ̄o)","text": "太萌惹"}, + {"icon": "ヾ(´・ ・`。)ノ\"","text": "咦咦咦"}, + {"icon": "( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃","text": "气呼呼"}, + {"icon": "(๑•̀ㅂ•́)و✧","text": "加油"}, + {"icon": "Σ(っ °Д °;)っ","text": "什么鬼"}, + {"icon": "─=≡Σ(((つ•̀ω•́)つ","text": "飞扑"}, + {"icon": "╮(╯▽╰)╭ ","text": "无奈"}, + {"icon": "( ,,´・ω・)ノ\"(´っω・`。)","text": "摸摸头"}, + {"icon": " ♥(✿ฺ´∀`✿ฺ)ノ","text": "花痴"}, + {"icon": "٩(๑>◡<๑)۶","text": "真棒"}, + {"icon": "(ó﹏ò。)","text": "我受到了惊吓"} + ] +}, +"图片表情": { + "type": "image", + "container": [ + { + "icon": "", + "text": "微笑" + }, + { + "icon": "", + "text": "飞吻" + }, + { + "icon": "", + "text": "哈哈哈" + }, + { + "icon": "", + "text": "人家害羞啦" + }, + { + "icon": "", + "text": "犯花痴" + }, + { + "icon": "", + "text": "坏笑" + }, + { + "icon": "", + "text": "好惊讶啊" + }, + { + "icon": "", + "text": "好恐怖啊" + }, + { + "icon": "", + "text": "美美哒" + }, + { + "icon": "", + "text": "萌萌哒" + }, + { + "icon": "", + "text": "疲惫不堪" + }, + { + "icon": "", + "text": "好伤心" + }, + { + "icon": "", + "text": "爽︿( ̄︶ ̄)︽( ̄︶ ̄)︿飞.飞.飞." + }, + { + "icon": "", + "text": "我晕@" + }, + { + "icon": "", + "text": "无语了" + }, + { + "icon": "", + "text": "这就尴尬了..." + }, + { + "icon": "", + "text": "凸^-^凸" + }, + { + "icon": "", + "text": "愤怒!" + }, + { + "icon": "", + "text": "蓝瘦香菇" + }, + { + "icon": "", + "text": "笑哭了" + }, + { + "icon": "", + "text": "好兴奋呀~" + }, + { + "icon": "", + "text": "(*^__^*) 嘻嘻" + }, + { + "icon": "", + "text": "淫荡的笑了" + }, + { + "icon": "", + "text": "向你眨了眨眼" + }, + { + "icon": "", + "text": "宝宝心里苦" + }, + { + "icon": "", + "text": "你在逗我?" + }, + { + "icon": "", + "text": "来呀~" + }, + { + "icon": "", + "text": "机智如我" + }, + { + "icon": "", + "text": "买酒去" + }, + { + "icon": "", + "text": "鬼知道" + }, + { + "icon": "", + "text": "辣鸡" + }, + { + "icon": "", + "text": "走一趟" + } + ] +}, +"Ac娘": { + "type": "image", + "container": [ + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + }, + { + "icon": "", + "text": "" + } + ] +}, +"Emoji": { + "type": "emoji", + "container": [ + {"icon": "😂","text": "笑哭"}, + {"icon": "😀","text": "哈哈"}, + {"icon": "😅","text": "流汗"}, + {"icon": "😊","text": "可爱"}, + {"icon": "🙂","text": "微笑"}, + {"icon": "🙃","text": "我倒"}, + {"icon": "😌","text": "嘻嘻"}, + {"icon": "😍","text": "爱你"}, + {"icon": "😘","text": "飞吻"}, + {"icon": "😜","text": "鬼脸"}, + {"icon": "😝","text": "啦啦啦"}, + {"icon": "😏","text": "坏笑"}, + {"icon": "😒","text": "撇嘴"}, + {"icon": "🙄","text": "白眼"}, + {"icon": "😳","text": "脸红"}, + {"icon": "😡","text": "愤怒"}, + {"icon": "😔","text": "哎"}, + {"icon": "😫","text": "好累"}, + {"icon": "😱","text": "惊恐"}, + {"icon": "😭","text": "大哭"}, + {"icon": "😶","text": "无语"}, + {"icon": "😣","text": "难过"}, + {"icon": "😤","text": "气死"}, + {"icon": "😪","text": "困了"}, + {"icon": "😮","text": "惊呆"}, + {"icon": "😲","text": "天哪"}, + {"icon": "🤥","text": "说谎"}, + {"icon": "🤢","text": "恶心"}, + {"icon": "👻","text": "吓死你"}, + {"icon": "👍","text": "棒棒哒"}, + {"icon": "👎","text": "鄙视"}, + {"icon": "👏","text": "鼓掌"}, + {"icon": "👋","text": "拜拜"}, + {"icon": "👭","text": "朋友"}, + {"icon": "🌝","text": "满月"}, + {"icon": "🌞","text": "太阳"}, + {"icon": "🙈","text": "看不见"}, + {"icon": "💊","text": "该吃药了"}, + {"icon": "🙏","text": "拜托"} + ] +}, +"MD": { + "type": "emoticon", + "container": [ + {"icon":"[TEXT](https://zixizixi.cn 'TITLE')","text":"链接"}, + {"icon":"![ALT](https://zixizixi.cn/icon.png 'TITLE')","text":"图片"}, + {"icon":"#","text":"标题"}, + {"icon":"> ","text":"引用"}, + {"icon":"*","text":"粗/斜/项"}, + {"icon":"```","text":"代码"} + ] +} +} \ No newline at end of file diff --git a/iMobile/js/lib/OwO/OwO.min.css b/iMobile/js/lib/OwO/OwO.min.css new file mode 100644 index 0000000..1aa4813 --- /dev/null +++ b/iMobile/js/lib/OwO/OwO.min.css @@ -0,0 +1 @@ +.OwO{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;max-width:700px}.OwO:hover .OwO-logo{color:#444}.OwO.OwO-open .OwO-logo{border-radius:4px 4px 0 0;border-bottom:none;color:#444}.OwO.OwO-open .OwO-body{display:block}.OwO.OwO-up .OwO-body{top:inherit;bottom:23px;border-radius:4px 4px 4px 0}.OwO.OwO-up .OwO-body .OwO-bar .OwO-packages li:nth-child(1){border-radius:0}.OwO.OwO-up.OwO-open .OwO-logo{border:1px solid #ddd;border-radius:0 0 4px 4px;border-top:none}.OwO .OwO-logo{position:relative;display:inline-block;color:#888;background:#fff;border:1px solid #ddd;border-radius:4px;font-size:13px;padding:2px 5px;cursor:pointer;height:22px;box-sizing:border-box;z-index:2;line-height:16px}.OwO .OwO-logo:hover span{display:inline-block;-webkit-animation:a 5s infinite ease-in-out;animation:a 5s infinite ease-in-out}.OwO .OwO-body{display:none;position:absolute;width:400px;background:#fff;border:1px solid #ddd;z-index:1;top:21px;border-radius:0 4px 4px 4px}.OwO .OwO-body .OwO-items{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:none;padding:10px;margin:0;overflow:scroll;font-size:0}.OwO .OwO-body .OwO-items .OwO-item{list-style-type:none;background:#f7f7f7;padding:5px 10px;border-radius:5px;display:inline-block;font-size:12px;line-height:14px;margin:0 10px 12px 0;cursor:pointer;-webkit-transition:.3s;transition:.3s}.OwO .OwO-body .OwO-items .OwO-item:hover{background:#eee;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);-webkit-animation:a 5s infinite ease-in-out;animation:a 5s infinite ease-in-out}.OwO .OwO-body .OwO-items-emoji .OwO-item{font-size:20px;line-height:19px}.OwO .OwO-body .OwO-items-image .OwO-item{max-width:calc(25% - 10px);box-sizing:border-box}.OwO .OwO-body .OwO-items-image .OwO-item img{max-width:100%}.OwO .OwO-body .OwO-items-show{display:block}.OwO .OwO-body .OwO-bar{width:100%;height:30px;border-top:1px solid #ddd;background:#fff;border-radius:0 0 4px 4px;color:#444}.OwO .OwO-body .OwO-bar .OwO-packages{margin:0;padding:0;font-size:0}.OwO .OwO-body .OwO-bar .OwO-packages li{list-style-type:none;display:inline-block;line-height:30px;font-size:14px;padding:0 10px;cursor:pointer;margin-right:3px}.OwO .OwO-body .OwO-bar .OwO-packages li:nth-child(1){border-radius:0 0 0 3px}.OwO .OwO-body .OwO-bar .OwO-packages li:hover{background:#eee}.OwO .OwO-body .OwO-bar .OwO-packages .OwO-package-active{background:#eee;-webkit-transition:.3s;transition:.3s}@-webkit-keyframes a{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%,34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}@keyframes a{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%,34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}} \ No newline at end of file diff --git a/iMobile/js/lib/OwO/OwO.min.js b/iMobile/js/lib/OwO/OwO.min.js new file mode 100644 index 0000000..785a312 --- /dev/null +++ b/iMobile/js/lib/OwO/OwO.min.js @@ -0,0 +1,153 @@ +'use strict'; +var _createClass = function() { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + return function(Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; +}(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +(function() { + var OwO = function() { + function OwO(option) { + var _this = this; + _classCallCheck(this, OwO); + var defaultOption = { + logo: 'OωO表情', + container: document.getElementsByClassName('OwO')[0], + target: document.getElementsByTagName('textarea')[0], + position: 'down', + width: '100%', + maxHeight: '250px', + api: '/skins/mobile/js/lib/OwO/OwO.json', + useMarkdown: false, + appendContent: '', + addClass: '', + usedSize: 'h_200' + }; + for (var defaultKey in defaultOption) { + if (defaultOption.hasOwnProperty(defaultKey) && !option.hasOwnProperty(defaultKey)) { + option[defaultKey] = defaultOption[defaultKey]; + } + } + this.container = option.container; + this.target = option.target; + if (option.position === 'up') { + this.container.classList.add('OwO-up'); + } + var xhr = new XMLHttpRequest(); + xhr.onreadystatechange = function() { + if (xhr.readyState === 4) { + if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) { + _this.odata = JSON.parse(xhr.responseText); + _this.init(option); + } else { + console.log('OwO data request was unsuccessful: ' + xhr.status); + } + } + }; + xhr.open('get', option.api, true); + xhr.send(null); + } + _createClass(OwO, [{ + key: 'init', + value: function init(option) { + var _this2 = this; + this.area = option.target; + this.packages = Object.keys(this.odata); + // fill in HTML + var html = '\n
    '; + for (var i = 0; i < this.packages.length; i++) { + html += '
      '; + var opackage = this.odata[this.packages[i]].container; + for (var _i = 0; _i < opackage.length; _i++) { + html += '
    • ' + opackage[_i].icon + '
    • '); + } + html += '
    '; + } + html += '
      '; + for (var _i2 = 0; _i2 < this.packages.length; _i2++) { + html += '
    • ' + this.packages[_i2] + '
    • '; + } + html += '
    '; + if (option.appendContent != '') { + html += option.appendContent; + } + this.container.innerHTML = html; + // bind event + this.logo = this.container.getElementsByClassName('OwO-logo')[0]; + this.logo.addEventListener('click', function() { + _this2.toggle(); + }); + this.container.getElementsByClassName('OwO-body')[0].addEventListener('click', function(e) { + var target = null; + if (e.target.classList.contains('OwO-item')) { + target = e.target; + } else if (e.target.parentNode.classList.contains('OwO-item')) { + target = e.target.parentNode; + } + if (target) { + var insertContent = target.innerHTML; + if (target.firstChild.tagName == "IMG" && option.useMarkdown) { + insertContent = "![" + target.title + "](" + target.firstChild.src.substr(0, target.firstChild.src.indexOf(",") + 1) + option.usedSize + ")"; + } + var cursorPos = _this2.area.selectionEnd; + var areaValue = _this2.area.value; + _this2.area.value = areaValue.slice(0, cursorPos) + insertContent + areaValue.slice(cursorPos); + _this2.area.focus(); + //_this2.toggle(); + } + }); + this.packagesEle = this.container.getElementsByClassName('OwO-packages')[0]; + var _loop = function _loop(_i3) { + (function(index) { + _this2.packagesEle.children[_i3].addEventListener('click', function() { + _this2.tab(index); + }); + })(_i3); + }; + + for (var _i3 = 0; _i3 < this.packagesEle.children.length; _i3++) { + _loop(_i3); + } + this.tab(0); + } + }, { + key: 'toggle', + value: function toggle() { + if (this.container.classList.contains('OwO-open')) { + this.container.classList.remove('OwO-open'); + } else { + this.container.classList.add('OwO-open'); + } + } + }, { + key: 'tab', + value: function tab(index) { + var itemsShow = this.container.getElementsByClassName('OwO-items-show')[0]; + if (itemsShow) { + itemsShow.classList.remove('OwO-items-show'); + } + this.container.getElementsByClassName('OwO-items')[index].classList.add('OwO-items-show'); + + var packageActive = this.container.getElementsByClassName('OwO-package-active')[0]; + if (packageActive) { + packageActive.classList.remove('OwO-package-active'); + } + this.packagesEle.getElementsByTagName('li')[index].classList.add('OwO-package-active'); + } + }]); + return OwO; + }(); + if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { + module.exports = OwO; + } else { + window.OwO = OwO; + } +})(); \ No newline at end of file diff --git a/iMobile/js/lib/jquery/jquery.2.2.4.min.js b/iMobile/js/lib/jquery/jquery.2.2.4.min.js new file mode 100644 index 0000000..4024b66 --- /dev/null +++ b/iMobile/js/lib/jquery/jquery.2.2.4.min.js @@ -0,0 +1,4 @@ +/*! jQuery v2.2.4 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="2.2.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isPlainObject:function(a){var b;if("object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype||{},"isPrototypeOf"))return!1;for(b in a);return void 0===b||k.call(a,b)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=d.createElement("script"),b.text=a,d.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:h.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(d=e.call(arguments,2),f=function(){return a.apply(b||this,d.concat(e.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return h.call(b,a)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&f.parentNode&&(this.length=1,this[0]=f),this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?void 0!==c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?h.call(n(a),this[0]):h.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||n.uniqueSort(e),D.test(a)&&e.reverse()),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.removeEventListener("DOMContentLoaded",J),a.removeEventListener("load",J),n.ready()}n.ready.promise=function(b){return I||(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(n.ready):(d.addEventListener("DOMContentLoaded",J),a.addEventListener("load",J))),I.promise(b)},n.ready.promise();var K=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)K(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},L=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function M(){this.expando=n.expando+M.uid++}M.uid=1,M.prototype={register:function(a,b){var c=b||{};return a.nodeType?a[this.expando]=c:Object.defineProperty(a,this.expando,{value:c,writable:!0,configurable:!0}),a[this.expando]},cache:function(a){if(!L(a))return{};var b=a[this.expando];return b||(b={},L(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[b]=c;else for(d in b)e[d]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=a[this.expando];if(void 0!==f){if(void 0===b)this.register(a);else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in f?d=[b,e]:(d=e,d=d in f?[d]:d.match(G)||[])),c=d.length;while(c--)delete f[d[c]]}(void 0===b||n.isEmptyObject(f))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!n.isEmptyObject(b)}};var N=new M,O=new M,P=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Q=/[A-Z]/g;function R(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Q,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:P.test(c)?n.parseJSON(c):c; +}catch(e){}O.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return O.hasData(a)||N.hasData(a)},data:function(a,b,c){return O.access(a,b,c)},removeData:function(a,b){O.remove(a,b)},_data:function(a,b,c){return N.access(a,b,c)},_removeData:function(a,b){N.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=O.get(f),1===f.nodeType&&!N.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),R(f,d,e[d])));N.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){O.set(this,a)}):K(this,function(b){var c,d;if(f&&void 0===b){if(c=O.get(f,a)||O.get(f,a.replace(Q,"-$&").toLowerCase()),void 0!==c)return c;if(d=n.camelCase(a),c=O.get(f,d),void 0!==c)return c;if(c=R(f,d,void 0),void 0!==c)return c}else d=n.camelCase(a),this.each(function(){var c=O.get(this,d);O.set(this,d,b),a.indexOf("-")>-1&&void 0!==c&&O.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){O.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=N.get(a,b),c&&(!d||n.isArray(c)?d=N.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return N.get(a,c)||N.access(a,c,{empty:n.Callbacks("once memory").add(function(){N.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length",""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};$.optgroup=$.option,$.tbody=$.tfoot=$.colgroup=$.caption=$.thead,$.th=$.td;function _(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function aa(a,b){for(var c=0,d=a.length;d>c;c++)N.set(a[c],"globalEval",!b||N.get(b[c],"globalEval"))}var ba=/<|&#?\w+;/;function ca(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],o=0,p=a.length;p>o;o++)if(f=a[o],f||0===f)if("object"===n.type(f))n.merge(m,f.nodeType?[f]:f);else if(ba.test(f)){g=g||l.appendChild(b.createElement("div")),h=(Y.exec(f)||["",""])[1].toLowerCase(),i=$[h]||$._default,g.innerHTML=i[1]+n.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;n.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",o=0;while(f=m[o++])if(d&&n.inArray(f,d)>-1)e&&e.push(f);else if(j=n.contains(f.ownerDocument,f),g=_(l.appendChild(f),"script"),j&&aa(g),c){k=0;while(f=g[k++])Z.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var da=/^key/,ea=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,fa=/^([^.]*)(?:\.(.+)|)/;function ga(){return!0}function ha(){return!1}function ia(){try{return d.activeElement}catch(a){}}function ja(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ja(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ha;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return"undefined"!=typeof n&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(G)||[""],j=b.length;while(j--)h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.hasData(a)&&N.get(a);if(r&&(i=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&N.remove(a,"handle events")}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(N.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,la=/\s*$/g;function pa(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function qa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function ra(a){var b=na.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function sa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(N.hasData(a)&&(f=N.access(a),g=N.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}O.hasData(a)&&(h=O.access(a),i=n.extend({},h),O.set(b,i))}}function ta(a,b){var c=b.nodeName.toLowerCase();"input"===c&&X.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function ua(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&ma.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),ua(f,b,c,d)});if(o&&(e=ca(b,a[0].ownerDocument,!1,a,d),g=e.firstChild,1===e.childNodes.length&&(e=g),g||d)){for(h=n.map(_(e,"script"),qa),i=h.length;o>m;m++)j=e,m!==p&&(j=n.clone(j,!0,!0),i&&n.merge(h,_(j,"script"))),c.call(a[m],j,m);if(i)for(k=h[h.length-1].ownerDocument,n.map(h,ra),m=0;i>m;m++)j=h[m],Z.test(j.type||"")&&!N.access(j,"globalEval")&&n.contains(k,j)&&(j.src?n._evalUrl&&n._evalUrl(j.src):n.globalEval(j.textContent.replace(oa,"")))}return a}function va(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(_(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&aa(_(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(ka,"<$1>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=_(h),f=_(a),d=0,e=f.length;e>d;d++)ta(f[d],g[d]);if(b)if(c)for(f=f||_(a),g=g||_(h),d=0,e=f.length;e>d;d++)sa(f[d],g[d]);else sa(a,h);return g=_(h,"script"),g.length>0&&aa(g,!i&&_(a,"script")),h},cleanData:function(a){for(var b,c,d,e=n.event.special,f=0;void 0!==(c=a[f]);f++)if(L(c)){if(b=c[N.expando]){if(b.events)for(d in b.events)e[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);c[N.expando]=void 0}c[O.expando]&&(c[O.expando]=void 0)}}}),n.fn.extend({domManip:ua,detach:function(a){return va(this,a,!0)},remove:function(a){return va(this,a)},text:function(a){return K(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.appendChild(a)}})},prepend:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(_(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return K(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!la.test(a)&&!$[(Y.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(_(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return ua(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(_(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),f=e.length-1,h=0;f>=h;h++)c=h===f?this:this.clone(!0),n(e[h])[b](c),g.apply(d,c.get());return this.pushStack(d)}});var wa,xa={HTML:"block",BODY:"block"};function ya(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function za(a){var b=d,c=xa[a];return c||(c=ya(a,b),"none"!==c&&c||(wa=(wa||n("';break;case 3:delete t.title,delete t.closeBtn, t.icon === -1 && 0 === t.icon, r.closeAll("loading");break;case 4:f || (t.content = [ t.content, "body" ]), t.follow = t.content[1], t.content = t.content[0] + '',delete t.title, t.tips = "object" == typeof t.tips ? t.tips : [ t.tips, !0 ], t.tipsMore || r.closeAll("tips")}if (e.vessel(f, function(n, r, u) {c.append(n[0]), f ? function() {2 == t.type || 4 == t.type ? function() {i("body").append(n[1])}() : function() {s.parents("." + l[0])[0] || (s.data("display", s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]), i("#" + l[0] + a).find("." + l[5]).before(r))}()}() : c.append(n[1]), i(".layui-layer-move")[0] || c.append(o.moveElem = u), e.layero = i("#" + l[0] + a), t.scrollbar || l.html.css("overflow", "hidden").attr("layer-full", a)}).auto(a), i("#layui-layer-shade" + e.index).css({"background-color" : t.shade[1] || "#000",opacity : t.shade[0] || t.shade}), 2 == t.type && 6 == r.ie && e.layero.find("iframe").attr("src", s[0]), 4 == t.type ? e.tips() : e.offset(), t.fixed && n.on("resize", function() {e.offset(), (/^\d+%$/.test(t.area[0]) || /^\d+%$/.test(t.area[1])) && e.auto(a), 4 == t.type && e.tips()}), t.time <= 0 || setTimeout(function() {r.close(e.index)}, t.time), e.move().callback(), l.anim[t.anim]) {var u = "layer-anim " + l.anim[t.anim];e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend", function() {i(this).removeClass(u)})}t.isOutAnim && e.layero.data("isOutAnim", !0)}}, s.pt.auto = function(e) {var t = this,a = t.config,o = i("#" + l[0] + e);"" === a.area[0] && a.maxWidth > 0 && (r.ie && r.ie < 8 && a.btn && o.width(o.innerWidth()), o.outerWidth() > a.maxWidth && o.width(a.maxWidth));var s = [ o.innerWidth(), o.innerHeight() ],f = o.find(l[1]).outerHeight() || 0,c = o.find("." + l[6]).outerHeight() || 0,u = function(e) {e = o.find(e), e.height(s[1] - f - c - 2 * (0 | parseFloat(e.css("padding-top"))))};switch (a.type) {case 2:u("iframe");break;default:"" === a.area[1] ? a.maxHeight > 0 && o.outerHeight() > a.maxHeight ? (s[1] = a.maxHeight, u("." + l[5])) : a.fixed && s[1] >= n.height() && (s[1] = n.height(), u("." + l[5])) : u("." + l[5])}return t}, s.pt.offset = function() {var e = this,t = e.config,i = e.layero,a = [ i.outerWidth(), i.outerHeight() ],o = "object" == typeof t.offset;e.offsetTop = (n.height() - a[1]) / 2, e.offsetLeft = (n.width() - a[0]) / 2, o ? (e.offsetTop = t.offset[0], e.offsetLeft = t.offset[1] || e.offsetLeft) : "auto" !== t.offset && ("t" === t.offset ? e.offsetTop = 0 : "r" === t.offset ? e.offsetLeft = n.width() - a[0] : "b" === t.offset ? e.offsetTop = n.height() - a[1] : "l" === t.offset ? e.offsetLeft = 0 : "lt" === t.offset ? (e.offsetTop = 0, e.offsetLeft = 0) : "lb" === t.offset ? (e.offsetTop = n.height() - a[1], e.offsetLeft = 0) : "rt" === t.offset ? (e.offsetTop = 0, e.offsetLeft = n.width() - a[0]) : "rb" === t.offset ? (e.offsetTop = n.height() - a[1], e.offsetLeft = n.width() - a[0]) : e.offsetTop = t.offset), t.fixed || (e.offsetTop = /%$/.test(e.offsetTop) ? n.height() * parseFloat(e.offsetTop) / 100 : parseFloat(e.offsetTop), e.offsetLeft = /%$/.test(e.offsetLeft) ? n.width() * parseFloat(e.offsetLeft) / 100 : parseFloat(e.offsetLeft), e.offsetTop += n.scrollTop(), e.offsetLeft += n.scrollLeft()), i.attr("minLeft") && (e.offsetTop = n.height() - (i.find(l[1]).outerHeight() || 0), e.offsetLeft = i.css("left")), i.css({top : e.offsetTop,left : e.offsetLeft})}, s.pt.tips = function() {var e = this,t = e.config,a = e.layero,o = [ a.outerWidth(), a.outerHeight() ],r = i(t.follow);r[0] || (r = i("body"));var s = {width : r.outerWidth(),height : r.outerHeight(),top : r.offset().top,left : r.offset().left},f = a.find(".layui-layer-TipsG"),c = t.tips[0];t.tips[1] || f.remove(), s.autoLeft = function() {s.left + o[0] - n.width() > 0 ? (s.tipLeft = s.left + s.width - o[0], f.css({right : 12,left : "auto"})) : s.tipLeft = s.left}, s.where = [ function() {s.autoLeft(), s.tipTop = s.top - o[1] - 10, f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color", t.tips[1])}, function() {s.tipLeft = s.left + s.width + 10, s.tipTop = s.top, f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color", t.tips[1])}, function() {s.autoLeft(), s.tipTop = s.top + s.height + 10, f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color", t.tips[1])}, function() {s.tipLeft = s.left - o[0] - 10, s.tipTop = s.top, f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color", t.tips[1])} ], s.where[c - 1](), 1 === c ? s.top - (n.scrollTop() + o[1] + 16) < 0 && s.where[2]() : 2 === c ? n.width() - (s.left + s.width + o[0] + 16) > 0 || s.where[3]() : 3 === c ? s.top - n.scrollTop() + s.height + o[1] + 16 - n.height() > 0 && s.where[0]() : 4 === c && o[0] + 16 - s.left > 0 && s.where[1](), a.find("." + l[5]).css({"background-color" : t.tips[1],"padding-right" : t.closeBtn ? "30px" : ""}), a.css({left : s.tipLeft - (t.fixed ? n.scrollLeft() : 0),top : s.tipTop - (t.fixed ? n.scrollTop() : 0)})}, s.pt.move = function() {var e = this,t = e.config,a = i(document),s = e.layero,l = s.find(t.move),f = s.find(".layui-layer-resize"),c = {};return t.move && l.css("cursor", "move"), l.on("mousedown", function(e) {e.preventDefault(), t.move && (c.moveStart = !0, c.offset = [ e.clientX - parseFloat(s.css("left")), e.clientY - parseFloat(s.css("top")) ], o.moveElem.css("cursor", "move").show())}), f.on("mousedown", function(e) {e.preventDefault(), c.resizeStart = !0, c.offset = [ e.clientX, e.clientY ], c.area = [ s.outerWidth(), s.outerHeight() ], o.moveElem.css("cursor", "se-resize").show()}), a.on("mousemove", function(i) {if (c.moveStart) {var a = i.clientX - c.offset[0],o = i.clientY - c.offset[1],l = "fixed" === s.css("position");if (i.preventDefault(), c.stX = l ? 0 : n.scrollLeft(), c.stY = l ? 0 : n.scrollTop(), !t.moveOut) {var f = n.width() - s.outerWidth() + c.stX,u = n.height() - s.outerHeight() + c.stY;a < c.stX && (a = c.stX), a > f && (a = f), o < c.stY && (o = c.stY), o > u && (o = u)}s.css({left : a,top : o})}if (t.resize && c.resizeStart) {var a = i.clientX - c.offset[0],o = i.clientY - c.offset[1];i.preventDefault(), r.style(e.index, {width : c.area[0] + a,height : c.area[1] + o}), c.isResize = !0, t.resizing && t.resizing(s)}}).on("mouseup", function(e) {c.moveStart && (delete c.moveStart, o.moveElem.hide(), t.moveEnd && t.moveEnd(s)), c.resizeStart && (delete c.resizeStart, o.moveElem.hide())}), e}, s.pt.callback = function() {function e() {var e = a.cancel && a.cancel(t.index, n);e === !1 || r.close(t.index)}var t = this,n = t.layero,a = t.config;t.openLayer(), a.success && (2 == a.type ? n.find("iframe").on("load", function() {a.success(n, t.index)}) : a.success(n, t.index)), 6 == r.ie && t.IE6(n), n.find("." + l[6]).children("a").on("click", function() {var e = i(this).index();if (0 === e)a.yes ? a.yes(t.index, n) : a.btn1 ? a.btn1(t.index, n) : r.close(t.index);else {var o = a["btn" + (e + 1)] && a["btn" + (e + 1)](t.index, n);o === !1 || r.close(t.index)}}), n.find("." + l[7]).on("click", e), a.shadeClose && i("#layui-layer-shade" + t.index).on("click", function() {r.close(t.index)}), n.find(".layui-layer-min").on("click", function() {var e = a.min && a.min(n);e === !1 || r.min(t.index, a)}), n.find(".layui-layer-max").on("click", function() {i(this).hasClass("layui-layer-maxmin") ? (r.restore(t.index), a.restore && a.restore(n)) : (r.full(t.index, a), setTimeout(function() {a.full && a.full(n)}, 100))}), a.end && (o.end[t.index] = a.end)}, o.reselect = function() {i.each(i("select"), function(e, t) {var n = i(this);n.parents("." + l[0])[0] || 1 == n.attr("layer") && i("." + l[0]).length < 1 && n.removeAttr("layer").show(), n = null})}, s.pt.IE6 = function(e) {i("select").each(function(e, t) {var n = i(this);n.parents("." + l[0])[0] || "none" === n.css("display") || n.attr({layer : "1"}).hide(), n = null})}, s.pt.openLayer = function() {var e = this;r.zIndex = e.config.zIndex, r.setTop = function(e) {var t = function() {r.zIndex++, e.css("z-index", r.zIndex + 1)};return r.zIndex = parseInt(e[0].style.zIndex), e.on("mousedown", t), r.zIndex}}, o.record = function(e) {var t = [ e.width(), e.height(), e.position().top, e.position().left + parseFloat(e.css("margin-left")) ];e.find(".layui-layer-max").addClass("layui-layer-maxmin"), e.attr({area : t})}, o.rescollbar = function(e) {l.html.attr("layer-full") == e && (l.html[0].style.removeProperty ? l.html[0].style.removeProperty("overflow") : l.html[0].style.removeAttribute("overflow"), l.html.removeAttr("layer-full"))}, e.layer = r, r.getChildFrame = function(e, t) {return t = t || i("." + l[4]).attr("times"), i("#" + l[0] + t).find("iframe").contents().find(e)}, r.getFrameIndex = function(e) {return i("#" + e).parents("." + l[4]).attr("times")}, r.iframeAuto = function(e) {if (e) {var t = r.getChildFrame("html", e).outerHeight(),n = i("#" + l[0] + e),a = n.find(l[1]).outerHeight() || 0,o = n.find("." + l[6]).outerHeight() || 0;n.css({height : t + a + o}), n.find("iframe").css({height : t})}}, r.iframeSrc = function(e, t) {i("#" + l[0] + e).find("iframe").attr("src", t)}, r.style = function(e, t, n) {var a = i("#" + l[0] + e),r = a.find(".layui-layer-content"),s = a.attr("type"),f = a.find(l[1]).outerHeight() || 0,c = a.find("." + l[6]).outerHeight() || 0;a.attr("minLeft");s !== o.type[3] && s !== o.type[4] && (n || (parseFloat(t.width) <= 260 && (t.width = 260), parseFloat(t.height) - f - c <= 64 && (t.height = 64 + f + c)), a.css(t), c = a.find("." + l[6]).outerHeight(), s === o.type[2] ? a.find("iframe").css({height : parseFloat(t.height) - f - c}) : r.css({height : parseFloat(t.height) - f - c - parseFloat(r.css("padding-top")) - parseFloat(r.css("padding-bottom"))}))}, r.min = function(e, t) {var a = i("#" + l[0] + e),s = a.find(l[1]).outerHeight() || 0,f = a.attr("minLeft") || 181 * o.minIndex + "px",c = a.css("position");o.record(a), o.minLeft[0] && (f = o.minLeft[0], o.minLeft.shift()), a.attr("position", c), r.style(e, {width : 180,height : s,left : f,top : n.height() - s,position : "fixed",overflow : "hidden"}, !0), a.find(".layui-layer-min").hide(), "page" === a.attr("type") && a.find(l[4]).hide(), o.rescollbar(e), a.attr("minLeft") || o.minIndex++, a.attr("minLeft", f)}, r.restore = function(e) {var t = i("#" + l[0] + e),n = t.attr("area").split(",");t.attr("type");r.style(e, {width : parseFloat(n[0]),height : parseFloat(n[1]),top : parseFloat(n[2]),left : parseFloat(n[3]),position : t.attr("position"),overflow : "visible"}, !0), t.find(".layui-layer-max").removeClass("layui-layer-maxmin"), t.find(".layui-layer-min").show(), "page" === t.attr("type") && t.find(l[4]).show(), o.rescollbar(e)}, r.full = function(e) {var t,a = i("#" + l[0] + e);o.record(a), l.html.attr("layer-full") || l.html.css("overflow", "hidden").attr("layer-full", e), clearTimeout(t), t = setTimeout(function() {var t = "fixed" === a.css("position");r.style(e, {top : t ? 0 : n.scrollTop(),left : t ? 0 : n.scrollLeft(),width : n.width(),height : n.height()}, !0), a.find(".layui-layer-min").hide()}, 100)}, r.title = function(e, t) {var n = i("#" + l[0] + (t || r.index)).find(l[1]);n.html(e)}, r.close = function(e) {var t = i("#" + l[0] + e),n = t.attr("type"),a = "layer-anim-close";if (t[0]) {var s = "layui-layer-wrap",f = function() {if (n === o.type[1] && "object" === t.attr("conType")) {t.children(":not(." + l[5] + ")").remove();for (var a = t.find("." + s), r = 0; r < 2; r++) a.unwrap();a.css("display", a.data("display")).removeClass(s)} else {if (n === o.type[2]) try {var f = i("#" + l[4] + e)[0];f.contentWindow.document.write(""), f.contentWindow.close(), t.find("." + l[5])[0].removeChild(f)} catch (c) {} t[0].innerHTML = "", t.remove()}"function" == typeof o.end[e] && o.end[e](),delete o.end[e]};t.data("isOutAnim") && t.addClass("layer-anim " + a), i("#layui-layer-moves, #layui-layer-shade" + e).remove(), 6 == r.ie && o.reselect(), o.rescollbar(e), t.attr("minLeft") && (o.minIndex--, o.minLeft.push(t.attr("minLeft"))), r.ie && r.ie < 10 || !t.data("isOutAnim") ? f() : setTimeout(function() {f()}, 200)}}, r.closeAll = function(e) {i.each(i("." + l[0]), function() {var t = i(this),n = e ? t.attr("type") === e : 1;n && r.close(t.attr("times")), n = null})};var f = r.cache || {},c = function(e) {return f.skin ? " " + f.skin + " " + f.skin + "-" + e : ""};r.prompt = function(e, t) {var a = "";if (e = e || {}, "function" == typeof e && (t = e), e.area) {var o = e.area;a = 'style="width: ' + o[0] + "; height: " + o[1] + ';"',delete e.area}var s,l = 2 == e.formType ? '" : function() {return ''}(),f = e.success;return delete e.success, r.open(i.extend({type : 1,btn : [ "确定", "取消" ],content : l,skin : "layui-layer-prompt" + c("prompt"),maxWidth : n.width(),success : function(e) {s = e.find(".layui-layer-input"), s.focus(), "function" == typeof f && f(e)},resize : !1,yes : function(i) {var n = s.val();"" === n ? s.focus() : n.length > (e.maxlength || 500) ? r.tips("最多输入" + (e.maxlength || 500) + "个字数", s, {tips : 1}) : t && t(n, i, s)}}, e))}, r.tab = function(e) {e = e || {};var t = e.tab || {},n = "layui-this",a = e.success;return delete e.success, r.open(i.extend({type : 1,skin : "layui-layer-tab" + c("tab"),resize : !1,title : function() {var e = t.length,i = 1,a = "";if (e > 0)for (a = '' + t[0].title + ""; i < e; i++) a += "" + t[i].title + "";return a}(),content : '
      ' + function() {var e = t.length,i = 1,a = "";if (e > 0)for (a = '
    • ' + (t[0].content || "no content") + "
    • "; i < e; i++) a += '
    • ' + (t[i].content || "no content") + "
    • ";return a}() + "
    ",success : function(t) {var o = t.find(".layui-layer-title").children(),r = t.find(".layui-layer-tabmain").children();o.on("mousedown", function(t) {t.stopPropagation ? t.stopPropagation() : t.cancelBubble = !0;var a = i(this),o = a.index();a.addClass(n).siblings().removeClass(n), r.eq(o).show().siblings().hide(), "function" == typeof e.change && e.change(o)}), "function" == typeof a && a(t)}}, e))}, r.photos = function(t, n, a) {function o(e, t, i) {var n = new Image;return n.src = e, n.complete ? t(n) : (n.onload = function() {n.onload = null, t(n)}, void (n.onerror = function(e) {n.onerror = null, i(e)}))}var s = {};if (t = t || {}, t.photos) {var l = t.photos.constructor === Object,f = l ? t.photos : {},u = f.data || [],d = f.start || 0;s.imgIndex = (0 | d) + 1, t.img = t.img || "img";var y = t.success;if (delete t.success, l) {if (0 === u.length) return r.msg("没有图片")} else {var p = i(t.photos),h = function() {u = [], p.find(t.img).each(function(e) {var t = i(this);t.attr("layer-index", e), u.push({alt : t.attr("alt"),pid : t.attr("layer-pid"),src : t.attr("layer-src") || t.attr("src"),thumb : t.attr("src")})})};if (h(), 0 === u.length) return;if (n || p.on("click", t.img, function() {var e = i(this),n = e.attr("layer-index");r.photos(i.extend(t, {photos : {start : n,data : u,tab : t.tab},full : t.full}), !0), h()}), !n) return}s.imgprev = function(e) {s.imgIndex--, s.imgIndex < 1 && (s.imgIndex = u.length), s.tabimg(e)}, s.imgnext = function(e, t) {s.imgIndex++, s.imgIndex > u.length && (s.imgIndex = 1, t) || s.tabimg(e)}, s.keyup = function(e) {if (!s.end) {var t = e.keyCode;e.preventDefault(), 37 === t ? s.imgprev(!0) : 39 === t ? s.imgnext(!0) : 27 === t && r.close(s.index)}}, s.tabimg = function(e) {if (!(u.length <= 1)) return f.start = s.imgIndex - 1, r.close(s.index), r.photos(t, !0, e)}, s.event = function() {s.bigimg.hover(function() {s.imgsee.show()}, function() {s.imgsee.show()}), s.bigimg.find(".layui-layer-imgprev").on("click", function(e) {e.preventDefault(), s.imgprev()}), s.bigimg.find(".layui-layer-imgnext").on("click", function(e) {e.preventDefault(), s.imgnext()}), i(document).on("keyup", s.keyup)}, s.loadi = r.load(1, {shade : !("shade" in t) && .9,scrollbar : !1}), o(u[d].src, function(n) {r.close(s.loadi), s.index = r.open(i.extend({type : 1,id : "layui-layer-photos",area : function() {var a = [ n.width, n.height ],o = [ i(e).width() - 100, i(e).height() - 100 ];if (!t.full && (a[0] > o[0] || a[1] > o[1])) {var r = [ a[0] / o[0], a[1] / o[1] ];r[0] > r[1] ? (a[0] = a[0] / r[0], a[1] = a[1] / r[0]) : r[0] < r[1] && (a[0] = a[0] / r[1], a[1] = a[1] / r[1])}return [ a[0] + "px", a[1] + "px" ]}(),title : !1,shade : .9,shadeClose : !0,closeBtn : !1,move : ".layui-layer-phimg img",moveType : 1,scrollbar : !1,moveOut : !0,isOutAnim : !1,skin : "layui-layer-photos" + c("photos"),content : '
    ' + (u[d].alt ||
    ' + (u.length > 1 ? '' : "") + '
    ' + (u[d].alt || "") + "" + s.imgIndex + "/" + u.length + "
    ",success : function(e, i) {s.bigimg = e.find(".layui-layer-phimg"), s.imgsee = e.find(".layui-layer-imguide,.layui-layer-imgbar"), s.event(e), t.tab && t.tab(u[d], e), "function" == typeof y && y(e)},end : function() {s.end = !0, i(document).off("keyup", s.keyup)}}, t))}, function() {r.close(s.loadi), r.msg("当前图片地址异常
    是否继续查看下一张?", {time : 3e4,btn : [ "下一张", "不看了" ],yes : function() {u.length > 1 && s.imgnext(!0, !0)}})})}}, o.run = function(t) {i = t, n = i(e), l.html = i("html"), r.open = function(e) {var t = new s(e);return t.index}}, e.layui && layui.define ? (r.ready(), layui.define("jquery", function(t) {r.path = layui.cache.dir, o.run(layui.$), e.layer = r, t("layer", r)})) : "function" == typeof define && define.amd ? define([ "jquery" ], function() {return o.run(e.jQuery), r}) : function() {o.run(e.jQuery), r.ready()}()}(window); \ No newline at end of file diff --git a/iMobile/js/lib/layer/mobile/layer.js b/iMobile/js/lib/layer/mobile/layer.js new file mode 100644 index 0000000..f9cf693 --- /dev/null +++ b/iMobile/js/lib/layer/mobile/layer.js @@ -0,0 +1,2 @@ +/*! layer mobile-v2.0.0 Web弹层组件 MIT License http://layer.layui.com/mobile By 贤心 */ + ;!function(e){"use strict";var t=document,n="querySelectorAll",i="getElementsByClassName",a=function(e){return t[n](e)},s={type:0,shade:!0,shadeClose:!0,fixed:!0,anim:"scale"},l={extend:function(e){var t=JSON.parse(JSON.stringify(s));for(var n in e)t[n]=e[n];return t},timer:{},end:{}};l.touch=function(e,t){e.addEventListener("click",function(e){t.call(this,e)},!1)};var r=0,o=["layui-m-layer"],c=function(e){var t=this;t.config=l.extend(e),t.view()};c.prototype.view=function(){var e=this,n=e.config,s=t.createElement("div");e.id=s.id=o[0]+r,s.setAttribute("class",o[0]+" "+o[0]+(n.type||0)),s.setAttribute("index",r);var l=function(){var e="object"==typeof n.title;return n.title?'

    '+(e?n.title[0]:n.title)+"

    ":""}(),c=function(){"string"==typeof n.btn&&(n.btn=[n.btn]);var e,t=(n.btn||[]).length;return 0!==t&&n.btn?(e=''+n.btn[0]+"",2===t&&(e=''+n.btn[1]+""+e),'
    '+e+"
    "):""}();if(n.fixed||(n.top=n.hasOwnProperty("top")?n.top:100,n.style=n.style||"",n.style+=" top:"+(t.body.scrollTop+n.top)+"px"),2===n.type&&(n.content='

    '+(n.content||"")+"

    "),n.skin&&(n.anim="up"),"msg"===n.skin&&(n.shade=!1),s.innerHTML=(n.shade?"
    ':"")+'
    "+l+'
    '+n.content+"
    "+c+"
    ",!n.type||2===n.type){var d=t[i](o[0]+n.type),y=d.length;y>=1&&layer.close(d[0].getAttribute("index"))}document.body.appendChild(s);var u=e.elem=a("#"+e.id)[0];n.success&&n.success(u),e.index=r++,e.action(n,u)},c.prototype.action=function(e,t){var n=this;e.time&&(l.timer[n.index]=setTimeout(function(){layer.close(n.index)},1e3*e.time));var a=function(){var t=this.getAttribute("type");0==t?(e.no&&e.no(),layer.close(n.index)):e.yes?e.yes(n.index):layer.close(n.index)};if(e.btn)for(var s=t[i]("layui-m-layerbtn")[0].children,r=s.length,o=0;odiv{line-height:22px;padding-top:7px;margin-bottom:20px;font-size:14px}.layui-m-layerbtn{display:box;display:-moz-box;display:-webkit-box;width:100%;height:50px;line-height:50px;font-size:0;border-top:1px solid #D0D0D0;background-color:#F2F2F2}.layui-m-layerbtn span{display:block;-moz-box-flex:1;box-flex:1;-webkit-box-flex:1;font-size:14px;cursor:pointer}.layui-m-layerbtn span[yes]{color:#40AFFE}.layui-m-layerbtn span[no]{border-right:1px solid #D0D0D0;border-radius:0 0 0 5px}.layui-m-layerbtn span:active{background-color:#F6F6F6}.layui-m-layerend{position:absolute;right:7px;top:10px;width:30px;height:30px;border:0;font-weight:400;background:0 0;cursor:pointer;-webkit-appearance:none;font-size:30px}.layui-m-layerend::after,.layui-m-layerend::before{position:absolute;left:5px;top:15px;content:'';width:18px;height:1px;background-color:#999;transform:rotate(45deg);-webkit-transform:rotate(45deg);border-radius:3px}.layui-m-layerend::after{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}body .layui-m-layer .layui-m-layer-footer{position:fixed;width:95%;max-width:100%;margin:0 auto;left:0;right:0;bottom:10px;background:0 0}.layui-m-layer-footer .layui-m-layercont{padding:20px;border-radius:5px 5px 0 0;background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn{display:block;height:auto;background:0 0;border-top:none}.layui-m-layer-footer .layui-m-layerbtn span{background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn span[no]{color:#FD482C;border-top:1px solid #c2c2c2;border-radius:0 0 5px 5px}.layui-m-layer-footer .layui-m-layerbtn span[yes]{margin-top:10px;border-radius:5px}body .layui-m-layer .layui-m-layer-msg{width:auto;max-width:90%;margin:0 auto;bottom:-150px;background-color:rgba(0,0,0,.7);color:#fff}.layui-m-layer-msg .layui-m-layercont{padding:10px 20px} \ No newline at end of file diff --git a/iMobile/js/lib/layer/theme/default/icon-ext.png b/iMobile/js/lib/layer/theme/default/icon-ext.png new file mode 100644 index 0000000..bbbb669 Binary files /dev/null and b/iMobile/js/lib/layer/theme/default/icon-ext.png differ diff --git a/iMobile/js/lib/layer/theme/default/icon.png b/iMobile/js/lib/layer/theme/default/icon.png new file mode 100644 index 0000000..3e17da8 Binary files /dev/null and b/iMobile/js/lib/layer/theme/default/icon.png differ diff --git a/iMobile/js/lib/layer/theme/default/layer.css b/iMobile/js/lib/layer/theme/default/layer.css new file mode 100644 index 0000000..b1e0000 --- /dev/null +++ b/iMobile/js/lib/layer/theme/default/layer.css @@ -0,0 +1 @@ +.layui-layer-imgbar,.layui-layer-imgtit a,.layui-layer-tab .layui-layer-title span,.layui-layer-title{text-overflow:ellipsis;white-space:nowrap}html #layuicss-layer{display:none;position:absolute;width:1989px}.layui-layer,.layui-layer-shade{position:fixed;_position:absolute;pointer-events:auto}.layui-layer-shade{top:0;left:0;width:100%;height:100%;_height:expression(document.body.offsetHeight+"px")}.layui-layer{-webkit-overflow-scrolling:touch;top:150px;left:0;margin:0;padding:0;background-color:#fff;-webkit-background-clip:content;border-radius:2px;box-shadow:1px 1px 50px rgba(0,0,0,.3)}.layui-layer-close{position:absolute}.layui-layer-content{position:relative}.layui-layer-border{border:1px solid #B2B2B2;border:1px solid rgba(0,0,0,.1);box-shadow:1px 1px 5px rgba(0,0,0,.2)}.layui-layer-load{background:url(loading-1.gif) center center no-repeat #eee}.layui-layer-ico{background:url(icon.png) no-repeat}.layui-layer-btn a,.layui-layer-dialog .layui-layer-ico,.layui-layer-setwin a{display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-move{display:none;position:fixed;*position:absolute;left:0;top:0;width:100%;height:100%;cursor:move;opacity:0;filter:alpha(opacity=0);background-color:#fff;z-index:2147483647}.layui-layer-resize{position:absolute;width:15px;height:15px;right:0;bottom:0;cursor:se-resize}.layer-anim{-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.3s;animation-duration:.3s}@-webkit-keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-00{-webkit-animation-name:layer-bounceIn;animation-name:layer-bounceIn}@-webkit-keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-01{-webkit-animation-name:layer-zoomInDown;animation-name:layer-zoomInDown}@-webkit-keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.layer-anim-02{-webkit-animation-name:layer-fadeInUpBig;animation-name:layer-fadeInUpBig}@-webkit-keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-03{-webkit-animation-name:layer-zoomInLeft;animation-name:layer-zoomInLeft}@-webkit-keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}@keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);-ms-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}.layer-anim-04{-webkit-animation-name:layer-rollIn;animation-name:layer-rollIn}@keyframes layer-fadeIn{0%{opacity:0}100%{opacity:1}}.layer-anim-05{-webkit-animation-name:layer-fadeIn;animation-name:layer-fadeIn}@-webkit-keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.layer-anim-06{-webkit-animation-name:layer-shake;animation-name:layer-shake}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.layui-layer-title{padding:0 80px 0 20px;height:42px;line-height:42px;border-bottom:1px solid #eee;font-size:14px;color:#333;overflow:hidden;background-color:#F8F8F8;border-radius:2px 2px 0 0}.layui-layer-setwin{position:absolute;right:15px;*right:0;top:15px;font-size:0;line-height:initial}.layui-layer-setwin a{position:relative;width:16px;height:16px;margin-left:10px;font-size:12px;_overflow:hidden}.layui-layer-setwin .layui-layer-min cite{position:absolute;width:14px;height:2px;left:0;top:50%;margin-top:-1px;background-color:#2E2D3C;cursor:pointer;_overflow:hidden}.layui-layer-setwin .layui-layer-min:hover cite{background-color:#2D93CA}.layui-layer-setwin .layui-layer-max{background-position:-32px -40px}.layui-layer-setwin .layui-layer-max:hover{background-position:-16px -40px}.layui-layer-setwin .layui-layer-maxmin{background-position:-65px -40px}.layui-layer-setwin .layui-layer-maxmin:hover{background-position:-49px -40px}.layui-layer-setwin .layui-layer-close1{background-position:1px -40px;cursor:pointer}.layui-layer-setwin .layui-layer-close1:hover{opacity:.7}.layui-layer-setwin .layui-layer-close2{position:absolute;right:-28px;top:-28px;width:30px;height:30px;margin-left:0;background-position:-149px -31px;*right:-18px;_display:none}.layui-layer-setwin .layui-layer-close2:hover{background-position:-180px -31px}.layui-layer-btn{text-align:right;padding:0 15px 12px;pointer-events:auto;user-select:none;-webkit-user-select:none}.layui-layer-btn a{height:28px;line-height:28px;margin:5px 5px 0;padding:0 15px;border:1px solid #dedede;background-color:#fff;color:#333;border-radius:2px;font-weight:400;cursor:pointer;text-decoration:none}.layui-layer-btn a:hover{opacity:.9;text-decoration:none}.layui-layer-btn a:active{opacity:.8}.layui-layer-btn .layui-layer-btn0{border-color:#1E9FFF;background-color:#1E9FFF;color:#fff}.layui-layer-btn-l{text-align:left}.layui-layer-btn-c{text-align:center}.layui-layer-dialog{min-width:260px}.layui-layer-dialog .layui-layer-content{position:relative;padding:20px;line-height:24px;word-break:break-all;overflow:hidden;font-size:14px;overflow-x:hidden;overflow-y:auto}.layui-layer-dialog .layui-layer-content .layui-layer-ico{position:absolute;top:16px;left:15px;_left:-40px;width:30px;height:30px}.layui-layer-ico1{background-position:-30px 0}.layui-layer-ico2{background-position:-60px 0}.layui-layer-ico3{background-position:-90px 0}.layui-layer-ico4{background-position:-120px 0}.layui-layer-ico5{background-position:-150px 0}.layui-layer-ico6{background-position:-180px 0}.layui-layer-rim{border:6px solid #8D8D8D;border:6px solid rgba(0,0,0,.3);border-radius:5px;box-shadow:none}.layui-layer-msg{min-width:180px;border:1px solid #D3D4D3;box-shadow:none}.layui-layer-hui{min-width:100px;background-color:#000;filter:alpha(opacity=60);background-color:rgba(0,0,0,.6);color:#fff;border:none}.layui-layer-hui .layui-layer-content{padding:12px 25px;text-align:center}.layui-layer-dialog .layui-layer-padding{padding:20px 20px 20px 55px;text-align:left}.layui-layer-page .layui-layer-content{position:relative;overflow:auto}.layui-layer-iframe .layui-layer-btn,.layui-layer-page .layui-layer-btn{padding-top:10px}.layui-layer-nobg{background:0 0}.layui-layer-iframe iframe{display:block;width:100%}.layui-layer-loading{border-radius:100%;background:0 0;box-shadow:none;border:none}.layui-layer-loading .layui-layer-content{width:60px;height:24px;background:url(loading-0.gif) no-repeat}.layui-layer-loading .layui-layer-loading1{width:37px;height:37px;background:url(loading-1.gif) no-repeat}.layui-layer-ico16,.layui-layer-loading .layui-layer-loading2{width:32px;height:32px;background:url(loading-2.gif) no-repeat}.layui-layer-tips{background:0 0;box-shadow:none;border:none}.layui-layer-tips .layui-layer-content{position:relative;line-height:22px;min-width:12px;padding:8px 15px;font-size:12px;_float:left;border-radius:2px;box-shadow:1px 1px 3px rgba(0,0,0,.2);background-color:#000;color:#fff}.layui-layer-tips .layui-layer-close{right:-2px;top:-1px}.layui-layer-tips i.layui-layer-TipsG{position:absolute;width:0;height:0;border-width:8px;border-color:transparent;border-style:dashed;*overflow:hidden}.layui-layer-tips i.layui-layer-TipsB,.layui-layer-tips i.layui-layer-TipsT{left:5px;border-right-style:solid;border-right-color:#000}.layui-layer-tips i.layui-layer-TipsT{bottom:-8px}.layui-layer-tips i.layui-layer-TipsB{top:-8px}.layui-layer-tips i.layui-layer-TipsL,.layui-layer-tips i.layui-layer-TipsR{top:5px;border-bottom-style:solid;border-bottom-color:#000}.layui-layer-tips i.layui-layer-TipsR{left:-8px}.layui-layer-tips i.layui-layer-TipsL{right:-8px}.layui-layer-lan[type=dialog]{min-width:280px}.layui-layer-lan .layui-layer-title{background:#4476A7;color:#fff;border:none}.layui-layer-lan .layui-layer-btn{padding:5px 10px 10px;text-align:right;border-top:1px solid #E9E7E7}.layui-layer-lan .layui-layer-btn a{background:#fff;border-color:#E9E7E7;color:#333}.layui-layer-lan .layui-layer-btn .layui-layer-btn1{background:#C9C5C5}.layui-layer-molv .layui-layer-title{background:#009f95;color:#fff;border:none}.layui-layer-molv .layui-layer-btn a{background:#009f95;border-color:#009f95}.layui-layer-molv .layui-layer-btn .layui-layer-btn1{background:#92B8B1}.layui-layer-iconext{background:url(icon-ext.png) no-repeat}.layui-layer-prompt .layui-layer-input{display:block;width:230px;height:36px;margin:0 auto;line-height:30px;padding-left:10px;border:1px solid #e6e6e6;color:#333}.layui-layer-prompt textarea.layui-layer-input{width:300px;height:100px;line-height:20px;padding:6px 10px}.layui-layer-prompt .layui-layer-content{padding:20px}.layui-layer-prompt .layui-layer-btn{padding-top:0}.layui-layer-tab{box-shadow:1px 1px 50px rgba(0,0,0,.4)}.layui-layer-tab .layui-layer-title{padding-left:0;overflow:visible}.layui-layer-tab .layui-layer-title span{position:relative;float:left;min-width:80px;max-width:260px;padding:0 20px;text-align:center;overflow:hidden;cursor:pointer}.layui-layer-tab .layui-layer-title span.layui-this{height:43px;border-left:1px solid #eee;border-right:1px solid #eee;background-color:#fff;z-index:10}.layui-layer-tab .layui-layer-title span:first-child{border-left:none}.layui-layer-tabmain{line-height:24px;clear:both}.layui-layer-tabmain .layui-layer-tabli{display:none}.layui-layer-tabmain .layui-layer-tabli.layui-this{display:block}.layui-layer-photos{-webkit-animation-duration:.8s;animation-duration:.8s}.layui-layer-photos .layui-layer-content{overflow:hidden;overflow-y:auto;text-align:center}.layui-layer-photos .layui-layer-phimg img{position:relative;width:100%;display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-imgnext,.layui-layer-imgprev{position:fixed;top:50%;width:27px;_width:44px;height:44px;margin-top:-22px;outline:0;blr:expression(this.onFocus=this.blur())}.layui-layer-imgprev{left:10px;background-position:-5px -5px;_background-position:-70px -5px}.layui-layer-imgprev:hover{background-position:-33px -5px;_background-position:-120px -5px}.layui-layer-imgnext{right:10px;_right:8px;background-position:-5px -50px;_background-position:-70px -50px}.layui-layer-imgnext:hover{background-position:-33px -50px;_background-position:-120px -50px}.layui-layer-imgbar{position:fixed;left:0;bottom:0;width:100%;height:32px;line-height:32px;background-color:rgba(0,0,0,.8);background-color:#000\9;filter:Alpha(opacity=80);color:#fff;overflow:hidden;font-size:0}.layui-layer-imgtit *{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:12px}.layui-layer-imgtit a{max-width:65%;overflow:hidden;color:#fff}.layui-layer-imgtit a:hover{color:#fff;text-decoration:underline}.layui-layer-imgtit em{padding-left:10px;font-style:normal}@-webkit-keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-close{-webkit-animation-name:layer-bounceOut;animation-name:layer-bounceOut;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}@media screen and (max-width:1100px){.layui-layer-iframe{overflow-y:auto;-webkit-overflow-scrolling:touch}} \ No newline at end of file diff --git a/iMobile/js/lib/layer/theme/default/loading-0.gif b/iMobile/js/lib/layer/theme/default/loading-0.gif new file mode 100644 index 0000000..6f3c953 Binary files /dev/null and b/iMobile/js/lib/layer/theme/default/loading-0.gif differ diff --git a/iMobile/js/lib/layer/theme/default/loading-1.gif b/iMobile/js/lib/layer/theme/default/loading-1.gif new file mode 100644 index 0000000..db3a483 Binary files /dev/null and b/iMobile/js/lib/layer/theme/default/loading-1.gif differ diff --git a/iMobile/js/lib/layer/theme/default/loading-2.gif b/iMobile/js/lib/layer/theme/default/loading-2.gif new file mode 100644 index 0000000..5bb90fd Binary files /dev/null and b/iMobile/js/lib/layer/theme/default/loading-2.gif differ diff --git a/iMobile/js/page.js b/iMobile/js/page.js new file mode 100644 index 0000000..117333f --- /dev/null +++ b/iMobile/js/page.js @@ -0,0 +1,748 @@ +/* + * Copyright (c) 2010-2018, b3log.org & hacpai.com + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @fileoverview Page util, load heighlight and process comment. + * + * @author Liyuan Li + * @author Liang Ding + * @version 1.4.0.0, Nov 10, 2017 + */ +var Page = function (tips) { + this.currentCommentId = ""; + this.tips = tips; +}; +$.extend(Page.prototype, { + /* + * @description 评论时点击表情,在评论内容中插入相关代码 + * @param {String} name 用于区别回复评论还是对文章的评论 + */ + insertEmotions: function (name) { + var _it = this; + if (name === undefined) { + name = ""; + } + + $("#emotions" + name + " span").click(function () { + var $comment = $("#comment" + name); + var endPosition = _it._getCursorEndPosition($comment[0]); + var key = this.title + ' ', + textValue = $comment[0].value; + textValue = textValue.substring(0, endPosition) + key + textValue.substring(endPosition, textValue.length); + $("#comment" + name).val(textValue); + if ($.browser.msie) { + endPosition -= textValue.split('\n').length - 1; + var oR = $comment[0].createTextRange(); + oR.collapse(true); + oR.moveStart('character', endPosition + key.length); + oR.select(); + } else { + $comment[0].setSelectionRange(endPosition + key.length, endPosition + key.length); + } + }); + }, + /** + * @description 获取当前光标最后位置 + * @param {Dom} textarea 评论框对象 + * @returns {Num} 光标位置 + */ + _getCursorEndPosition: function (textarea) { + textarea.focus(); + if (textarea.setSelectionRange) { // W3C + return textarea.selectionEnd; + } else if (document.selection) { // IE + var i = 0, + oS = document.selection.createRange(), + oR = document.body.createTextRange(); + oR.moveToElementText(textarea); + oS.getBookmark(); + for (i = 0; oR.compareEndPoints('StartToStart', oS) < 0 && oS.moveStart("character", -1) !== 0; i++) { + if (textarea.value.charAt(i) === '\n') { + i++; + } + } + return i; + } + }, + /* + * @description 评论校验 + * @param {String} state 用于区别回复评论还是对文章的评论 + */ + validateComment: function (state) { + if (Util.isLoggedIn()) { + var commenterContent = $("#comment" + state).val().replace(/(^\s*)|(\s*$)/g, ""); + if (2 > commenterContent.length || commenterContent.length > 500) { + $("#commentErrorTip" + state).html(this.tips.commentContentCannotEmptyLabel); + $("#comment" + state).focus(); + } else { + return true; + } + $("#commentErrorTip" + state).show(); + return false; + } + + var commentName = $("#commentName" + state).val().replace(/(^\s*)|(\s*$)/g, ""), + commenterContent = $("#comment" + state).val().replace(/(^\s*)|(\s*$)/g, ""); + if (2 > commentName.length || commentName.length > 20) { + $("#commentErrorTip" + state).html(this.tips.nameTooLongLabel); + $("#commentName" + state).focus(); + } else if ($("#commentEmail" + state).val().replace(/\s/g, "") === "") { + $("#commentErrorTip" + state).html(this.tips.mailCannotEmptyLabel); + $("#commentEmail" + state).focus(); + } else if (!/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test($("#commentEmail" + state).val())) { + $("#commentErrorTip" + state).html(this.tips.mailInvalidLabel); + $("#commentEmail" + state).focus(); + } else if (2 > commenterContent.length || commenterContent.length > 500) { + $("#commentErrorTip" + state).html(this.tips.commentContentCannotEmptyLabel); + $("#comment" + state).focus(); + } else if ($("#commentValidate" + state).val().replace(/\s/g, "") === "") { + $("#commentErrorTip" + state).html(this.tips.captchaCannotEmptyLabel); + $("#commentValidate" + state).focus(); + } else { + return true; + } + $("#commentErrorTip" + state).show(); + return false; + }, + /* + * @description 把评论中的标识替换为图片 + * @param {Dom} selector + */ + replaceCommentsEm: function (selector) { + var $commentContents = $(selector); + for (var i = 0; i < $commentContents.length; i++) { + var str = $commentContents[i].innerHTML; + $commentContents[i].innerHTML = Util.replaceEmString(str); + } + }, + /* + * @description 初始化 SyantaxHighlighter + * @param {Array} languages 需要加载的语言 + */ + _initSyntaxHighlighter: function (languages) { + // load brush js + for (var i = 0; i < languages.length; i++) { + switch (languages[i]) { + case "groovy": + languages[i] = 'groovy ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushGroovy.js'; + break; + case "java": + languages[i] = 'java ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushJava.js'; + break; + case "php": + languages[i] = 'php ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushPhp.js'; + break; + case "scala": + languages[i] = 'scala ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushScala.js'; + break; + case "sql": + languages[i] = 'sql ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushSql.js'; + break; + case "applescript": + languages[i] = 'applescript ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushAppleScript.js'; + break; + case "as3": + case "actionscript3": + languages[i] = 'actionscript3 as3 ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushAS3.js'; + break; + case "bash": + case "shell": + languages[i] = 'bash shell ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushBash.js'; + break; + case "coldfusion": + case "cf": + languages[i] = 'coldfusion cf ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushColdFusion.js'; + break; + case "c#": + case "c-sharp": + case "csharp": + languages[i] = 'c# c-sharp csharp ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushCSharp.js'; + break; + case "cpp": + case "c": + languages[i] = 'cpp c ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushCpp.js'; + break; + case "css": + languages[i] = 'css ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushCss.js'; + break; + case "delphi": + case "pascal": + languages[i] = 'delphi pascal ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushDelphi.js'; + break; + case "diff": + case "patch": + case "pas": + languages[i] = 'diff patch pas ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushDiff.js'; + break; + case "erl": + case "erlang": + languages[i] = 'erl erlang ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushErlang.js'; + break; + case "js": + case "jscript": + case "javascript": + languages[i] = 'js jscript javascript ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushJScript.js'; + break; + case "jfx": + case "javafx": + languages[i] = 'jfx javafx ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushJavaFX.js'; + break; + case "perl": + case "pl": + languages[i] = 'perl pl ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushPerl.js'; + break; + case "plain": + case "text": + languages[i] = 'text plain ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushPlain.js'; + break; + case "ps": + case "powershell": + languages[i] = 'ps powershell ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushPowerShell.js'; + break; + case "py": + case "python": + languages[i] = 'py python ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushPython.js'; + break; + case "rails": + case "ror": + case "ruby": + case "rb": + languages[i] = 'ruby rails ror rb ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushRuby.js'; + break; + case "sass": + case "scss": + languages[i] = 'sass scss ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushSass.js'; + break; + case "vb": + case "vbnet": + languages[i] = 'vb vbnet ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushVb.js'; + break; + case "xml": + case "xhtml": + case "xslt": + case "html": + languages[i] = 'xml xhtml xslt html ' + + latkeConfig.staticServePath + '/js/lib/SyntaxHighlighter/scripts/shBrushXml.js'; + break; + default: + break; + } + } + + // code high lighter + SyntaxHighlighter.autoloader.apply(null, languages); + SyntaxHighlighter.config.stripBrs = true; + SyntaxHighlighter.all(); + }, + /* + * @description 加载 SyntaxHighlighter + * @param {String} SHTheme SyntaxHighLighter 样式 + */ + _loadSyntaxHighlighter: function (SHTheme) { + var cssName = SHTheme ? SHTheme : "shCoreEclipse", + that = this; + // load css + if (document.createStyleSheet) { + document.createStyleSheet(latkeConfig.staticServePath + "/js/lib/SyntaxHighlighter/styles/" + cssName + ".css"); + } else { + $("head").append($("")); + } + + // load js + $.ajax({ + url: latkeConfig.staticServePath + "/js/lib/SyntaxHighlighter/scripts/shCore.js", + dataType: "script", + cache: true, + success: function () { + // get brush settings + var languages = [], + isScrip = false; + $(".article-body pre, .code-highlight pre").each(function () { + var name = this.className.split(";")[0]; + var language = name.substr(7, name.length - 1); + if (this.className.indexOf("html-script: true") > -1 && + (language !== "xml" && language !== "xhtml" && + language !== "xslt" && language != "html")) { + isScrip = true; + } + + languages.push(language); + }); + // when html-script is true, need shBrushXml.js + if (isScrip) { + $.ajax({ + url: latkeConfig.staticServePath + "/js/lib/SyntaxHighlighter/scripts/shBrushXml.js", + dataType: "script", + cache: true, + success: function () { + that._initSyntaxHighlighter(languages); + } + }); + } else { + that._initSyntaxHighlighter(languages); + } + } + }); + }, + /* + * @description 解析语法高亮 + * @param {Obj} obj 语法高亮配置参数 + * @param {Obj} obj.SHTheme 语法高亮 SyntaxHighLighter 样式 + */ + parseLanguage: function (obj) { + var isPrettify = false, + isSH = false; + $(".article-body pre, .code-highlight pre").each(function () { + if (this.className.indexOf("brush") > -1) { + isSH = true; + } + + if (this.className.indexOf("prettyprint") > -1) { + isPrettify = true; + } + }); + + if (isSH) { + this._loadSyntaxHighlighter(obj ? (obj.SHTheme ? obj.SHTheme : undefined) : undefined); + return false; + } + + if (isPrettify) { + // load css + if (document.createStyleSheet) { + document.createStyleSheet(latkeConfig.staticServePath + "/js/lib/google-code-prettify/prettify.css"); + } else { + $("head").append($("")); + } + + // load js + $.ajax({ + url: latkeConfig.staticServePath + "/js/lib/google-code-prettify/prettify.js", + dataType: "script", + cache: true, + success: function () { + prettyPrint(); + } + }); + return false; + } + + + // otherelse use highlight + // load css + if (document.createStyleSheet) { + document.createStyleSheet(latkeConfig.staticServePath + "/js/lib/highlight.js-9.6.0/styles/default.css"); + } else { + $("head").append($("")); + } + $.ajax({ + url: latkeConfig.staticServePath + "/js/lib/highlight.js-9.6.0/highlight.pack.js", + dataType: "script", + cache: true, + success: function () { + hljs.initHighlighting.called = false; + hljs.initHighlighting(); + } + }); + }, + /* + * @description 文章/自定义页面加载 + * @param {Obj} obj 配置设定 + * @param {Obj} obj.language 代码高亮配置 + */ + load: function (obj) { + var that = this; + // emotions + that.insertEmotions(); + // language + that.parseLanguage(obj ? (obj.language ? obj.language : undefined) : undefined); + // submit comment + $("#commentValidate").keypress(function (event) { + if (event.keyCode === 13) { + that.submitComment(); + } + }); + + $("#comment").keypress(function (event) { + if (event.keyCode === 13 && event.ctrlKey) { + that.submitComment(); + } + }); + // captcha + $("#captcha").click(function () { + $(this).attr("src", latkeConfig.servePath + "/captcha.do?code=" + Math.random()); + }); + // cookie + if (!Util.isLoggedIn()) { + $("#commentEmail").val(Cookie.readCookie("commentEmail")); + $("#commentURL").val(Cookie.readCookie("commentURL")); + $("#commentName").val(Cookie.readCookie("commentName")); + } + // if no JSON, add it. + try { + JSON + } catch (e) { + document.write(" + + + \ No newline at end of file diff --git a/iMobile/macro-head.ftl b/iMobile/macro-head.ftl new file mode 100644 index 0000000..890b451 --- /dev/null +++ b/iMobile/macro-head.ftl @@ -0,0 +1,43 @@ +<#macro head title> + + + + + + + +${title} + + +<#-- --> +<#nested> + + + + + + + +<#if article??> + + + + + + + + + + + + + + + + + + + + +${htmlHead} + \ No newline at end of file diff --git a/iMobile/page.ftl b/iMobile/page.ftl new file mode 100644 index 0000000..29eedd0 --- /dev/null +++ b/iMobile/page.ftl @@ -0,0 +1,32 @@ +<#include "macro-head.ftl"> +<#include "macro-comments.ftl"> + + + +<@head title="${page.pageTitle} - ${blogTitle}"> + + + + + +<#include "side.ftl"> +
    +
    +
    + ${page.pageContent} +
    +
    +
    + + + + +
    +
    +
    + <@comments commentList=pageComments article=page> + <#include "footer.ftl"> + <@comment_script oId=page.oId> +
    + + \ No newline at end of file diff --git a/iMobile/preview.png b/iMobile/preview.png new file mode 100644 index 0000000..ebf1f56 Binary files /dev/null and b/iMobile/preview.png differ diff --git a/iMobile/side.ftl b/iMobile/side.ftl new file mode 100644 index 0000000..ed63d88 --- /dev/null +++ b/iMobile/side.ftl @@ -0,0 +1,75 @@ + + +
    +
    +
    + + ${blogTitle?html} + +

    ${blogTitle}

    +<#if "" != noticeBoard> +

    ${blogSubtitle}

    + + +
    +
    +<#if noticeBoard??> +
    ${noticeBoard}
    + +<#-- 若要使用此行图标请将链接和相关信息修改为自己的 +
    + + +    + + +    + + +    + + + +
    + --> +<#if isLoggedIn> +    + +<#else> +    + +   +<#-- 此处的反馈邮箱链接请到 http://openmail.qq.com/ 去申请开通。 --> +    + +
    +
    \ No newline at end of file diff --git a/iMobile/skin.properties b/iMobile/skin.properties new file mode 100644 index 0000000..e860048 --- /dev/null +++ b/iMobile/skin.properties @@ -0,0 +1,24 @@ +# +# Copyright (c) 2010-2017, b3log.org & hacpai.com +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# +# Description: Mobile skin. +# Version: 1.0.0.15, Feb 20, 2017 +# Author: Liang Ding +# Revised: Tanken·L + +name=iMobile +memo=\u5efa\u8bae\u5c06\u6b64\u76ae\u80a4\u76f4\u63a5\u8986\u76d6\u81f3\u0020\u006d\u006f\u0062\u0069\u006c\u0065\u0020\u76ae\u80a4\u76ee\u5f55\uff0c\u6ce8\u610f\u4e0d\u8981\u8986\u76d6\u6389\u6b64\u6587\u4ef6\u3002 diff --git a/iMobile/tag-articles.ftl b/iMobile/tag-articles.ftl new file mode 100644 index 0000000..f00b341 --- /dev/null +++ b/iMobile/tag-articles.ftl @@ -0,0 +1,24 @@ +<#include "macro-head.ftl"> + + + +<@head title="${tag.tagTitle} - ${blogTitle}"> + + + + + +<#include "side.ftl"> +
    +

    + ${tag1Label} + + ${tag.tagTitle} + (${tag.tagPublishedRefCount}) + +

    + <#include "article-list.ftl"> + <#include "footer.ftl"> +
    + + \ No newline at end of file diff --git a/iMobile/tags.ftl b/iMobile/tags.ftl new file mode 100644 index 0000000..3bf8a84 --- /dev/null +++ b/iMobile/tags.ftl @@ -0,0 +1,55 @@ +<#include "macro-head.ftl"> + + + +<@head title="${allTagsLabel} - ${blogTitle}"> + + + + + +<#include "side.ftl"> +
    +<#if 0 != mostUsedCategories?size> + + + +<#include "footer.ftl"> +
    + + \ No newline at end of file diff --git a/iMobile/搜索页面(覆盖至根目录)/.DS_Store b/iMobile/搜索页面(覆盖至根目录)/.DS_Store new file mode 100644 index 0000000..ae2d494 Binary files /dev/null and b/iMobile/搜索页面(覆盖至根目录)/.DS_Store differ diff --git a/iMobile/搜索页面(覆盖至根目录)/WEB-INF/.DS_Store b/iMobile/搜索页面(覆盖至根目录)/WEB-INF/.DS_Store new file mode 100644 index 0000000..489db01 Binary files /dev/null and b/iMobile/搜索页面(覆盖至根目录)/WEB-INF/.DS_Store differ diff --git a/iMobile/搜索页面(覆盖至根目录)/WEB-INF/classes/captcha_static.zip b/iMobile/搜索页面(覆盖至根目录)/WEB-INF/classes/captcha_static.zip new file mode 100644 index 0000000..95cd3dc Binary files /dev/null and b/iMobile/搜索页面(覆盖至根目录)/WEB-INF/classes/captcha_static.zip differ diff --git a/iMobile/搜索页面(覆盖至根目录)/css/default-init.css b/iMobile/搜索页面(覆盖至根目录)/css/default-init.css new file mode 100644 index 0000000..96d4e6a --- /dev/null +++ b/iMobile/搜索页面(覆盖至根目录)/css/default-init.css @@ -0,0 +1,431 @@ +/** + * Copyright (c) 2010-2017, b3log.org & hacpai.com + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** +* 403, 404, 500, article-pwd, init, login and kill-browser page style. +* +* @author Liyuan Li +* @author Liang Ding +* @version 1.1.0.0, Sep 12, 2017 +*/ +html,body { + margin: 0; + padding: 0; +} +body { + background-color: #fff; + color: #333; + font-family: \5fae\8f6f\96c5\9ed1; + font-size: small; +} +h2 { + border-radius: 4px 4px 0 0; + font-size: 16px; + margin: 0; + padding: 10px 20px; + text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.5); +} +input { + border: 1px solid #CCCCCC; + border-radius: 3px 3px 3px 3px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075) inset; + font-size: 13px; + margin: 15px 0; + padding: 7px 8px; + vertical-align: middle; + width: 410px; + font-family: \5fae\8f6f\96c5\9ed1; + font-size: small; +} +input:focus { + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075) inset, 0 0 5px rgbargba(200, 200, 200, 0.9); + border: 1px solid #E6E5D9; +} +.form { + padding: 20px; +} +label { + font-size: 13px; +} +button { + position:relative; + display:inline-block; + font-size:13px; + font-weight:700; + color:#333; + text-shadow:0 1px 0 rgba(255,255,255,0.9); + white-space:nowrap; + background-color:#eaeaea; + background-image:linear-gradient(#fafafa,#eaeaea); + background-repeat:repeat-x; + border-radius:3px; + border:1px solid #ddd; + border-bottom-color:#c5c5c5; + box-shadow:0 1px 3px rgba(0,0,0,0.075); + vertical-align:baseline; + cursor:pointer; + -webkit-touch-callout:none; + -webkit-user-select:none; + -khtml-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; + -webkit-appearance:none; + outline:none; + padding:7px 15px; + margin-top: 10px; +} + +button:hover, +button:active { + color:#fff; + text-decoration:none; + text-shadow:0 -1px 0 rgba(0,0,0,0.25); + background-color: #3072b3; + background-image:linear-gradient(#599bcd,#3072b3); + background-repeat:repeat-x; +} + +.clear { + background-color: transparent; + border: 0px; + clear: both; + display: block; + font-size: 0px; + height: 0px; + line-height: 0px; + overflow: hidden; +} + +.fn-clear:before, +.fn-clear:after { + display: table; + content: "" +} +.fn-clear:after { + clear: both +} +.fn-left { + float: left +} + +.fn-right { + float: right; +} + +.none { + display: none; +} + +.solo { + color: orangered; + font-weight: bold; +} + +.logo { + float: left; + padding: 142px 12px 0; + width: 217px; + text-align: center; +} + +.wrap { + border-top: 5px solid #E6E5D9; + padding: 110px 0; + background-color: #F3F1E5; +} + +.content { + background-color: #fff; + margin: 0 auto; + width: 760px; +} + +.main { + border-left: 1px solid #E6E5D9; + float: right; + font-size: 15px; + padding: 20px; + width: 470px; + min-height: 360px; +} + +.main a { + text-decoration: none; +} + +.main li { + margin: 6px 0 6px 16px; +} + +.footerWrapper { + position: fixed; bottom: 0; width: 100%; margin-top: 100px; + background-color: #FFFFFF; border-top: 1px solid #E6E5D9; + padding: 12px 0; text-align: center; font-size: 12px; +} + +.footerWrapper a { + text-decoration: none; +} + +/* start article-pwd */ +.article-pwd > div, +.article-pwd > form { + margin: 0 20px; +} + +.article-pwd > div { + margin-bottom: 10px; + max-height: 264px; + overflow: auto; + word-wrap: break-word; +} +/* end article-pwd */ + +/* start 403/404/500 */ +.a-error { + text-align: right; +} + +.img-error { + max-width: 100%; + margin: 20px auto; + padding: 0; + display: block; +} +/* end 403/404/500 */ + +/* start kill */ +.kill img { + position: absolute; + right: 40px; + top: 200px; +} + +.kill ul { + margin-bottom: 50px; +} + +.kill p { + margin: 12px 20px; +} + +.kill span { + margin-left: 20px; +} +/* end kill */ + +/* start init */ +#init { + position: absolute; + width: 470px; +} + +#init input, +.register input { + margin: 5px 0; + padding: 5px 8px; +} + +.register { + height: 400px; +} + +#sys p { + height: 206px; +} + +#sys { + padding: 0 20px; +} + +#initButton { + margin-right: 10px; +} + +#tip { + color: #21759B; + font-weight: bold; + margin-left: 10px; +} +/* end init */ + +/* start search */ +.content-reset { + font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif; + word-wrap: break-word; + overflow: auto; + line-height: 1.5; + font-size: 13px; + word-break: break-all; + color: #545454; +} + +.content-reset ul, +.content-reset ol { + padding-left: 2em; + margin-top: 0; + margin-bottom: 16px +} +.content-reset li { + margin-top: 0.25em +} +.content-reset h1, +.content-reset h2, +.content-reset h3, +.content-reset h4, +.content-reset h5, +.content-reset h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25 +} +.content-reset h1 { + padding-bottom: 0.3em; + font-size: 2em; + border-bottom: 1px solid #eee +} +.content-reset h2 { + padding-bottom: 0.3em; + font-size: 1.5em; + border-bottom: 1px solid #eee +} +.content-reset h3 { + font-size: 1.25em +} +.content-reset h4 { + font-size: 1em +} +.content-reset h5 { + font-size: 0.875em +} +.content-reset h6 { + font-size: 0.85em +} +.content-reset hr { + height: 2px; + padding: 0; + margin: 5px 0; + background-color: #e7e7e7; + border: 0 +} +.content-reset p { + margin-top: 0; + margin-bottom: 0; +} +.content-reset blockquote { + padding: 0 1em; + color: #777; + border-left: 0.25em solid #ddd; + margin-bottom: 16px +} +.content-reset blockquote p { + margin: 0 +} +.content-reset iframe { + border: 1px solid #ccc +} +.content-reset table { + width: 100%; + border: 1px solid #dedede; + margin: 15px auto; + border-collapse: collapse; + empty-cells: show +} +.content-reset thead { + text-align: center +} +.content-reset td, +.content-reset th { + height: 35px; + border: 1px solid #dedede; + padding: 0 10px +} +.content-reset th { + font-weight: bold; + text-align: center !important; + background: rgba(158, 188, 226, 0.2) +} +.content-reset tbody tr:nth-child(2n) { + background: rgba(158, 188, 226, 0.12) +} +.content-reset tr:hover { + background: #efefef +} +.content-reset code { + padding: 0.2em 0.4em; + margin: 0; + font-size: 85%; + background-color: rgba(252, 41, 41, 0.12); + border-radius: 3px; + color: #d23f31; + font-family: mononoki, Consolas, "Liberation Mono", Menlo, Courier, monospace +} +.content-reset pre>code { + padding: 0.5em; + border-radius: 0; + color: #333; + background-color: rgba(0, 0, 0, 0.04); + background-size: 20px 20px; + border-radius: 5px +} +.content-reset kbd { + display: inline-block; + padding: 3px 5px; + font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace; + line-height: 10px; + color: #555; + vertical-align: middle; + background-color: #fcfcfc; + border: solid 1px #ccc; + border-bottom-color: #bbb; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #bbb +} + +.search { padding-bottom: 110px; border-top: 5px solid #e6e5d9; } +.search__header { padding: 15px 20px; position: fixed; top: 0; width: 100%; z-index: 9; background: #efefef; border-bottom: 3px solid #e6e5d9; } +.search__header a { line-height: 44px; } +.search__input input { margin: 0 10px 0 20px; height: 32px; line-height: 32px; float: left; font-size: 16px; padding: 5px 10px; } +.search__input button { height: 44px; margin: 0; float: left; } +.search__articles { padding: 0 50px; margin-top: 80px; } +.search__articles article { border-bottom: 3px solid #e6e5d9; } +.search__articles header h1 { margin: 0; } +.search__articles header h1 > a { font-size: 18px; text-decoration: none; font-weight: normal; } +.search__articles .meta { font-size: 14px; color: #999; } +.search__articles footer { margin-bottom: 30px; } +.search__articles footer a { text-decoration: none; font-size: 13px; } +.search__articles footer a:hover,.search__articles header h1 > a:hover,.search__pagination a:hover { text-decoration: underline; } +.search__pagination a { color: #4285f4; text-decoration: none; } +.search__pagination a,.search__pagination span { margin-right: 5px; } +/* end search */ + +/* start responsive */ +@media (max-width: 780px) { + .wrap { padding: 40px 0; } + .content { width: auto; } + .logo, .search__header img { width: 32px; } + .search__header > .fn-right { display: none; } + .main { border: 0; float: none; width: auto; } + input { width: 100%; box-sizing: border-box; display: block; } + .a-500, .a-403, .a-404 { margin: 0 20px 0 0; } + #init { width: 100%; padding: 0 20px; box-sizing: border-box; left: 0; } + .search__input { float: none; } + .search__input button { position: absolute; right: 50px; height: 32px; line-height: 16px; } + .search { width: 100%; min-height: auto; box-sizing: border-box; } + .search__articles { width: auto; min-width: auto; padding: 0; margin-top: 70px; } +} +/* end responsive */ \ No newline at end of file diff --git a/iMobile/搜索页面(覆盖至根目录)/css/search.css b/iMobile/搜索页面(覆盖至根目录)/css/search.css new file mode 100644 index 0000000..9295a76 --- /dev/null +++ b/iMobile/搜索页面(覆盖至根目录)/css/search.css @@ -0,0 +1,622 @@ +html { + height: 100%; max-height: 100%; font-size: 16px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +body { + max-height: 100%; line-height: 1.5em; + font-family: "Helvetica Neue","Luxi Sans","DejaVu Sans",Tahoma,"Hiragino Sans GB","Microsoft Yahei",sans-serif; + font-size: 100%; letter-spacing: 0.01rem; margin: 0; + color: rgba(0, 0, 0, 0.6); background-color: #eaeaea; + -webkit-font-feature-settings: 'kern' 1; -moz-font-feature-settings: 'kern' 1; -o-font-feature-settings: 'kern' 1; + text-rendering: geometricPrecision; +} +::-moz-selection { + background: #D6EDFF; +} +::selection { + background: #D6EDFF; +} +a { + text-decoration: none; + outline-width: 0; + color: #258fb8; + outline: none; + transition: all 0.3s ease; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; + -moz-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; + -o-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; + color: #666; + line-height: 1.15em; + font-family: "Open Sans", "Helvetica Neue","Luxi Sans","DejaVu Sans",Tahoma,"Hiragino Sans GB","Microsoft Yahei",sans-serif; + text-rendering: geometricPrecision; +} +h1 { + letter-spacing: -2px; + text-indent: -3px; +} +h2 { + letter-spacing: -1px; +} +img { + max-width: 100%; +} + +p, ul, ol, dl { + -webkit-font-feature-settings: 'liga' 1, 'onum' 1, 'kern' 1; + -moz-font-feature-settings: 'liga' 1, 'onum' 1, 'kern' 1; + -o-font-feature-settings: 'liga' 1, 'onum' 1, 'kern' 1; + text-rendering: geometricPrecision; +} + +ol, ul { + padding-left: 3rem; +} + +ol ol, ul ul, +ul ol, ol ul { + padding-left: 2em; +} + +dl dt { + float: left; + width: 180px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + font-weight: 700; + margin-bottom: 1em; +} + +dl dd { + margin-left: 200px; + margin-bottom: 1em +} + +li li { + margin: 0; +} + +hr { + display: block; + height: 1px; + border: 0; + border-top: #EFEFEF 1px solid; + margin: 3.2em 0; + padding: 0; +} + +blockquote { + box-sizing: border-box; + margin: 1.75em 0 1.75em 0; + padding: 0 0 0 1.75em; + border-left: 5px solid; + transition: all 0.3s ease; +} + + +blockquote:hover { + border-color: #b0a0aa; +} + +blockquote p { + margin: 0.8em 0; + font-style: italic; +} + +blockquote small { + display: inline-block; + margin: 0.8em 0 0.8em 1.5em; + font-size: 0.9em; + color: #CCC; +} + +blockquote small:before { content: "\2014 \00A0"; } + +blockquote cite { + font-weight: 700; +} + +blockquote cite a { font-weight: normal; } + +mark { + background-color: #fdffb6; +} + +code, tt { + padding: 1px 3px; + font-family: Inconsolata, monospace, "Helvetica Neue","Luxi Sans","DejaVu Sans",Tahoma,"Hiragino Sans GB","Microsoft Yahei",sans-serif; + font-size: 0.85em; + white-space: pre-wrap; + border: #E3EDF3 1px solid; + background: #F7FAFB; + border-radius: 2px; +} + +pre { + font-size: 0.9em; +} + +pre code, pre tt { + font-size: inherit; + white-space: pre-wrap; + background: transparent; + border: none; + padding: 0; +} +/* end reset */ + +/* start function */ +.fn-clear:before, +.fn-clear:after { + display: table; + content: ""; +} + +.fn-clear:after { + clear: both; +} + +.fn-left { + float: left; +} + +.fn-right { + float: right; +} + +.fn-none { + display: none; +} +/* end function */ +/* start common */ +@font-face { + font-family: 'icomoon'; + src:url('/skins/mobile/css/fonts/icomoon.eot?3js4w7'); + src:url('/skins/mobile/css/fonts/icomoon.eot?3js4w7#iefix') format('embedded-opentype'), + url('/skins/mobile/css/fonts/icomoon.ttf?3js4w7') format('truetype'), + url('/skins/mobile/css/fonts/icomoon.woff?3js4w7') format('woff'), + url('/skins/mobile/css/fonts/icomoon.svg?3js4w7#icomoon') format('svg'); + font-weight: normal; + font-style: normal; +} +[class^="icon-"], [class*=" icon-"] { + font-family: 'icomoon'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + vertical-align: middle; +} +.icon-tag:before { + content: "\e903"; +} +.icon-date:before { + content: "\e902"; +} +#captcha, #captchaReply { + height: 27px; + display: inline-block; + vertical-align: inherit; +} +/* start emotions */ +.em00, .em01, .em02, .em03, .em04, .em05, .em06, .em07, .em08, .em09, +.em10, .em11, .em12, .em13, .em14 { + cursor: pointer; + background-image: url("/images/emotions/emotions-classic.png"); + float: left; + height: 24px; + margin-right: 5px; + width: 24px; + transition: all .2s ease-out; + -webkit-transition: all .2s ease-out; + -moz-transition: all .2s ease-out; +} +#emotions span:hover { + transform: scale(1.2) rotate(360deg); + -webkit-transform: scale(1.2) rotate(360deg); + -moz-transform: scale(1.2) rotate(360deg); +} + +.em01 { + background-position: -24px 0; +} + +.em02 { + background-position: -48px 0; +} + +.em03 { + background-position: -72px 0; +} +.em04 { + background-position: -96px 0; +} + +.em05 { + background-position: 0px -24px; +} + +.em06 { + background-position: -24px -24px; +} + +.em07 { + background-position: -48px -24px; +} + +.em08 { + background-position: -72px -24px; +} + +.em09 { + background-position: -96px -24px; +} + +.em10 { + background-position: 0 -48px; +} + +.em11 { + background-position: -24px -48px ; +} + +.em12 { + background-position: -48px -48px; +} + +.em13 { + background-position: -72px -48px; +} + +.em14 { + background-position: -96px -48px; +} +/* end emotions */ + +/* start main */ +main { + position: absolute; + right: 0; + min-height: 100%; + background: #eaeaea; + width: auto; +} +/* end main */ + +/* start article */ +article { + margin: 30px; + border: 1px solid #ddd; + background: #fff; + position: relative; + transition: all 0.2s ease-in; + visibility: hidden; +} +article.show { + visibility: visible; + -webkit-animation: bounce 0.6s; + animation: bounce 0.6s; +} + +@-webkit-keyframes bounce { + 0% { + opacity: 0; + -webkit-transform: scale(1); + } + 60% { + opacity: 1; + -webkit-transform: scale(1.02); + } + 100% { + -webkit-transform: scale(1); + } +} + +@-moz-keyframes bounce { + 0% { + opacity: 0; + -moz-transform: scale(1); + } + 60% { + opacity: 1; + -moz-transform: scale(1.02); + } + 100% { + -moz-transform: scale(1); + } +} + +article header { + border-left: 5px solid; + padding: 15px 30px 15px 25px; +} + +article header:hover { + border-color: #b0a0aa; +} + +article header h2 { + margin: 0; + font-size: 26px; + padding-right: 130px; +} + +article header a { + color: #696969; + margin-left: 0px; + font-weight: 300; + line-height: 35px; +} + +article header a:hover { + color: #b0a0aa; +} + +article header sup { + font-size: 14px; + font-weight: normal; + color: #999; +} + +article header .meta { + font-size: 14px; + position: absolute; + right: 30px; + color: #aaa; + top: 18px; +} +article header time { + white-space: nowrap; + position: absolute; + top: 20px; + right: 0; +} + +article .abstract { + line-height: 1.8em; + padding-right: 30px; + padding-left: 30px; + overflow: hidden; + word-wrap: break-word +} + +article footer { + padding: 20px 35px 0 0; + margin: 30px 30px 20px 30px; + border-top: 1px solid #ddd; +} + +.tags .tag:hover, +article .abstract a:hover{ + opacity: 0.7; +} + +.tags .avatar { + width: 20px; + border-radius: 10px; + right: 30px; + position: absolute; + bottom: 25px; + transition: all 0.2s ease-out 0s; +} +.tags .avatar:hover, +.share span:hover { + transform: rotate(360deg); + color: #333; +} + +.tags .tag { + color: #fff; + font-size: 10px; + height: 18px; + line-height: 18px; + display: inline-block; + padding: 0 5px 0px 10px; + position: relative; + border-radius: 0 5px 5px 0; + margin: 5px 9px 5px 8px; + background-color: #7b5d5f; + font-family: Menlo, Monaco, "Andale Mono", "lucida console", "Courier New", monospace; +} + +.tags .tag:before { + content: " "; + width: 0px; + height: 0px; + position: absolute; + top: 0; + left: -18px; + border: 9px solid transparent; + border-right-color: #7b5d5f; +} + +.tags .tag:after { + content: " "; + width: 4px; + height: 4px; + background-color: #fff; + border-radius: 4px; + box-shadow: 0px 0px 0px 1px rgba(0,0,0,0.3); + position: absolute; + top: 7px; + left: 2px; +} + +a.color1.tag{ background:#999 } +a.color1.tag:before{ border-right-color:#999 } + +a.color2.tag{ background:#ccc } +a.color2.tag:before{ border-right-color:#ccc } + +a.color3.tag{ background:#666 } +a.color3.tag:before{ border-right-color:#666 } + +a.color4.tag { background: #cfb7c4; } +a.color4.tag:before { border-right-color: #cfb7c4; } + +nav.pagination { + text-align: center; +} + +nav.pagination .page-num { + width: 20px; + height: 20px; + background: #4d4d4d; + border-radius: 50%; + display: inline-block; + color: #fff; + line-height: 20px; + font-size: 12px; + margin: 0 3px 30px; +} + +nav.pagination a.page-num:hover { + opacity: 0.7; +} + + +nav.pagination .page-num.current { + background: #88acdb; +} + +nav.pagination .extend { + color: #4d4d4d; + margin: 0 27px; + opacity: 0; +} + +nav.pagination .extend:hover { + color: #b0a0aa; +} + +nav.pagination:hover .extend { + opacity: 1; +} +/* end article */ + +/* start footer */ +footer.footer { + line-height: 1rem; + font-size: 12px; + font-family: Menlo, Monaco, "Andale Mono", "lucida console", "Courier New", monospace; + text-shadow: 0 1px #fff; + opacity: 0.6; + margin: 0 30px 30px; +} + +footer.footer .icon-goup { + position: fixed; + bottom: 35px; + right: 5px; + -webkit-animation: upbounce 4s 2s infinite; + animation: upbounce 4s 2s infinite; + z-index: 10; + font-size: 20px; + cursor: pointer; + color: #b0a0aa; + transition: all 0.3s ease; +} + +footer.footer .icon-goup:hover { + color: #4a4a4a; +} + +@-webkit-keyframes upbounce { + 0%, 10%, 25%, 40%, 50% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + 20% { + -webkit-transform: translateY(-10px); + transform: translateY(-10px); + } + 30% { + -webkit-transform: translateY(-5px); + transform: translateY(-5px); + } +} + +@keyframes upbounce { + 0%, 20%, 50%, 80%, 100% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + 40% { + -webkit-transform: translateY(-10px); + transform: translateY(-10px); + } + 60% { + -webkit-transform: translateY(-5px); + transform: translateY(-5px); + } +} +/* end footer */ + +/* start classify*/ +.classify li { + list-style: none; + font-size: 20px; + float: left; + margin: 0 30px 20px 0; +} + +.classify .tags .tag { + font-size: 20px; + padding: 10px; +} + +.classify .tags .tag:before { + left: -38px; + border-width: 19px; +} + +.classify .tags .tag:after { + top: 15px; + left: -6px; + width: 8px; + height: 8px; +} + +.classify-name { + font-size: 18px; + margin: 30px; +} +table {width: 100%; border-collapse:collapse; border: 1px solid #ccc;} +table th, table td { + border: 1px solid #E6E6E6; + padding: 3px 5px; + word-break: normal; +} +table th { + background: #F3F3F3; +} +th, td { + text-align: left; +} +/* end classify*/ +/* start responsive */ +@media only screen and (max-width: 500px) { + main { + position: initial; + } + article { + margin: 10px; + } + footer.footer { + text-align: center; + } + footer.footer .fn-right { + float: none; + display: block; + } +} +/* end responsive */ \ No newline at end of file diff --git a/iMobile/搜索页面(覆盖至根目录)/opensearch.xml b/iMobile/搜索页面(覆盖至根目录)/opensearch.xml new file mode 100644 index 0000000..9b21acc --- /dev/null +++ b/iMobile/搜索页面(覆盖至根目录)/opensearch.xml @@ -0,0 +1,7 @@ + +子兮子兮 +子兮子兮风兮寒,三江七泽情洄沿。 +UTF-8 +https://res.zixizixi.cn/izcn.png + + \ No newline at end of file diff --git a/iMobile/搜索页面(覆盖至根目录)/search.ftl b/iMobile/搜索页面(覆盖至根目录)/search.ftl new file mode 100644 index 0000000..3baea50 --- /dev/null +++ b/iMobile/搜索页面(覆盖至根目录)/search.ftl @@ -0,0 +1,94 @@ + + + + + + +${blogTitle} - ${searchLabel} ${keyword!''} + + + + + + + +
    + Solo +
    + + +
    +
    + + +
    + +
    + + +