├── .gitignore ├── Code ├── .gitignore ├── CocoaChinaPlus.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── CocoaChinaPlus.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── CocoaChinaPlus.xcscmblueprint ├── CocoaChinaPlus │ ├── AppDef.swift │ ├── AppDelegate.swift │ ├── Application │ │ ├── Business │ │ │ ├── CocoaChina │ │ │ │ ├── Article │ │ │ │ │ └── CCPArticleViewController.swift │ │ │ │ ├── BBS │ │ │ │ │ ├── CCPBBSParser.swift │ │ │ │ │ ├── CCPBBSViewController.swift │ │ │ │ │ └── Edition │ │ │ │ │ │ ├── CCPBBSEditionParser.swift │ │ │ │ │ │ └── CCPBBSEditionViewController.swift │ │ │ │ ├── Chat │ │ │ │ │ └── CChatListViewController.swift │ │ │ │ ├── Collection │ │ │ │ │ └── CCCollectionViewController.swift │ │ │ │ ├── Home │ │ │ │ │ ├── CCPHomePage.swift │ │ │ │ │ ├── CCPHomeViewController.swift │ │ │ │ │ ├── CCPTableArray.swift │ │ │ │ │ └── ZXGuideViewController │ │ │ │ │ │ └── ZXGuideViewController.swift │ │ │ │ ├── Profile │ │ │ │ │ ├── CCAboutViewController.swift │ │ │ │ │ └── CCProfileViewController.swift │ │ │ │ └── Search │ │ │ │ │ └── CCSearchViewController.swift │ │ │ └── Util │ │ │ │ ├── Controller │ │ │ │ └── ZXArticleTableViewController │ │ │ │ │ └── CCArticleTableViewController.swift │ │ │ │ ├── Helper │ │ │ │ ├── Base │ │ │ │ │ ├── String+.swift │ │ │ │ │ ├── UIImage+.swift │ │ │ │ │ └── UINavigationItem+.swift │ │ │ │ ├── CCSqlite │ │ │ │ │ ├── CCDataBase.swift │ │ │ │ │ ├── DAO │ │ │ │ │ │ └── CCArticleDAO.swift │ │ │ │ │ ├── Manager │ │ │ │ │ │ └── CCTableManager.swift │ │ │ │ │ └── Service │ │ │ │ │ │ ├── CCArticleCache.swift │ │ │ │ │ │ └── CCArticleService.swift │ │ │ │ ├── CCURLHelper.swift │ │ │ │ ├── HTMLModel │ │ │ │ │ ├── CCHTMLModelHandler.swift │ │ │ │ │ ├── Model │ │ │ │ │ │ └── CCArticleModel.swift │ │ │ │ │ └── Parser │ │ │ │ │ │ ├── CCHTMLParser+HomePage.swift │ │ │ │ │ │ ├── CCHTMLParser+OptionPage.swift │ │ │ │ │ │ ├── CCHTMLParser+SearchPage.swift │ │ │ │ │ │ └── CCHTMLParser.swift │ │ │ │ ├── VenderExt.swift │ │ │ │ └── ZXURLNavigator │ │ │ │ │ ├── NSDate+String.swift │ │ │ │ │ ├── NSURL+.swift │ │ │ │ │ ├── ZXBaseViewController.swift │ │ │ │ │ ├── ZXNavigationController.swift │ │ │ │ │ └── ZXURLNavigator.swift │ │ │ │ └── View │ │ │ │ ├── CCArticleTableView │ │ │ │ ├── CCArticleTableView.swift │ │ │ │ └── CCArticleTableViewCell.swift │ │ │ │ ├── CCTableViewCell │ │ │ │ └── CCTableViewCell.swift │ │ │ │ ├── CCocoaChinaWebView │ │ │ │ ├── CCCocoaChinaWebView.swift │ │ │ │ ├── ZXHighlightWebView.swift │ │ │ │ ├── ccstyle.css │ │ │ │ ├── highlight │ │ │ │ │ ├── highlight.pack.js │ │ │ │ │ └── styles │ │ │ │ │ │ ├── agate.css │ │ │ │ │ │ ├── androidstudio.css │ │ │ │ │ │ ├── arta.css │ │ │ │ │ │ ├── ascetic.css │ │ │ │ │ │ ├── atelier-cave.dark.css │ │ │ │ │ │ ├── atelier-cave.light.css │ │ │ │ │ │ ├── atelier-dune.dark.css │ │ │ │ │ │ ├── atelier-dune.light.css │ │ │ │ │ │ ├── atelier-estuary.dark.css │ │ │ │ │ │ ├── atelier-estuary.light.css │ │ │ │ │ │ ├── atelier-forest.dark.css │ │ │ │ │ │ ├── atelier-forest.light.css │ │ │ │ │ │ ├── atelier-heath.dark.css │ │ │ │ │ │ ├── atelier-heath.light.css │ │ │ │ │ │ ├── atelier-lakeside.dark.css │ │ │ │ │ │ ├── atelier-lakeside.light.css │ │ │ │ │ │ ├── atelier-plateau.dark.css │ │ │ │ │ │ ├── atelier-plateau.light.css │ │ │ │ │ │ ├── atelier-savanna.dark.css │ │ │ │ │ │ ├── atelier-savanna.light.css │ │ │ │ │ │ ├── atelier-seaside.dark.css │ │ │ │ │ │ ├── atelier-seaside.light.css │ │ │ │ │ │ ├── atelier-sulphurpool.dark.css │ │ │ │ │ │ ├── atelier-sulphurpool.light.css │ │ │ │ │ │ ├── brown_paper.css │ │ │ │ │ │ ├── brown_papersq.png │ │ │ │ │ │ ├── codepen-embed.css │ │ │ │ │ │ ├── color-brewer.css │ │ │ │ │ │ ├── dark.css │ │ │ │ │ │ ├── darkula.css │ │ │ │ │ │ ├── default.css │ │ │ │ │ │ ├── docco.css │ │ │ │ │ │ ├── far.css │ │ │ │ │ │ ├── foundation.css │ │ │ │ │ │ ├── github-gist.css │ │ │ │ │ │ ├── github.css │ │ │ │ │ │ ├── googlecode.css │ │ │ │ │ │ ├── grayscale.css │ │ │ │ │ │ ├── hopscotch.css │ │ │ │ │ │ ├── hybrid.css │ │ │ │ │ │ ├── idea.css │ │ │ │ │ │ ├── ir_black.css │ │ │ │ │ │ ├── kimbie.dark.css │ │ │ │ │ │ ├── kimbie.light.css │ │ │ │ │ │ ├── magula.css │ │ │ │ │ │ ├── mono-blue.css │ │ │ │ │ │ ├── monokai.css │ │ │ │ │ │ ├── monokai_sublime.css │ │ │ │ │ │ ├── obsidian.css │ │ │ │ │ │ ├── paraiso.dark.css │ │ │ │ │ │ ├── paraiso.light.css │ │ │ │ │ │ ├── pojoaque.css │ │ │ │ │ │ ├── pojoaque.jpg │ │ │ │ │ │ ├── railscasts.css │ │ │ │ │ │ ├── rainbow.css │ │ │ │ │ │ ├── school_book.css │ │ │ │ │ │ ├── school_book.png │ │ │ │ │ │ ├── solarized_dark.css │ │ │ │ │ │ ├── solarized_light.css │ │ │ │ │ │ ├── sunburst.css │ │ │ │ │ │ ├── tomorrow-night-blue.css │ │ │ │ │ │ ├── tomorrow-night-bright.css │ │ │ │ │ │ ├── tomorrow-night-eighties.css │ │ │ │ │ │ ├── tomorrow-night.css │ │ │ │ │ │ ├── tomorrow.css │ │ │ │ │ │ ├── vs.css │ │ │ │ │ │ ├── xcode.css │ │ │ │ │ │ └── zenburn.css │ │ │ │ └── jquery-1.6.4.min.js │ │ │ │ ├── ZXCircleView │ │ │ │ └── ZXCircleView.swift │ │ │ │ ├── ZXCuteView │ │ │ │ └── ZXCuteView.swift │ │ │ │ ├── ZXOptionView │ │ │ │ └── ZXOptionView.swift │ │ │ │ ├── ZXPageControl │ │ │ │ └── ZXPageControl.swift │ │ │ │ └── ZXPagingView │ │ │ │ └── ZXPagingView.swift │ │ ├── Note │ │ │ └── Note.markdown │ │ ├── Vender │ │ │ └── RxDataSourceStarterKit │ │ │ │ ├── Changeset.swift │ │ │ │ ├── DataSources │ │ │ │ ├── RxCollectionViewSectionedAnimatedDataSource.swift │ │ │ │ ├── RxCollectionViewSectionedDataSource.swift │ │ │ │ ├── RxCollectionViewSectionedReloadDataSource.swift │ │ │ │ ├── RxTableViewSectionedAnimatedDataSource.swift │ │ │ │ ├── RxTableViewSectionedDataSource.swift │ │ │ │ └── RxTableViewSectionedReloadDataSource.swift │ │ │ │ ├── Differentiator.swift │ │ │ │ ├── README.md │ │ │ │ ├── RxDataSourceStarterKit.swift │ │ │ │ ├── SectionModel.swift │ │ │ │ ├── SectionModelType.swift │ │ │ │ └── SectionedViewType.swift │ │ └── ZXTabBarController.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon@2x.png │ │ │ ├── icon_29pt.png │ │ │ ├── icon_29pt@2x-1.png │ │ │ ├── icon_29pt@2x.png │ │ │ ├── icon_29pt@3x.png │ │ │ ├── icon_40pt.png │ │ │ ├── icon_40pt@2x-1.png │ │ │ ├── icon_40pt@2x.png │ │ │ ├── icon_40pt@3x.png │ │ │ ├── icon_60pt@2x.png │ │ │ ├── icon_60pt@3x.png │ │ │ ├── icon_76pt.png │ │ │ └── icon_76pt@2x.png │ │ ├── Contents.json │ │ ├── Guide │ │ │ ├── Contents.json │ │ │ ├── guide_page_1.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── iPhone 6 Black + IMG_2745.png │ │ │ ├── guide_page_2.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── iPhone 6 Black + IMG_2746.png │ │ │ ├── guide_page_3.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── iPhone 6 Black + IMG_2747.png │ │ │ └── guide_page_4.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── iPhone 6 Black + 2.pic_hd.png │ │ ├── about.imageset │ │ │ ├── Contents.json │ │ │ └── about.png │ │ ├── chengxuyuan.imageset │ │ │ ├── Contents.json │ │ │ └── chengxuyuan.png │ │ ├── ic_detail_back.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_detail_back@2x.png │ │ │ └── ic_detail_back@3x.png │ │ ├── navbar │ │ │ ├── Contents.json │ │ │ ├── nav_cancel.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── nav_cancel.png │ │ │ │ └── nav_cancel@3x.png │ │ │ ├── nav_like_no.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── nav_like_no@2x.png │ │ │ │ └── nav_like_no@3x.png │ │ │ ├── nav_like_yes.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── nav_like_yes@2x.png │ │ │ │ └── nav_like_yes@3x.png │ │ │ ├── nav_search.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── nav_search.png │ │ │ │ └── nav_search@3x.png │ │ │ └── share.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── share@2x.png │ │ │ │ └── share@3x.png │ │ ├── sharetest.imageset │ │ │ ├── Contents.json │ │ │ └── icon@2x.png │ │ ├── splash │ │ │ ├── Contents.json │ │ │ └── icon_light.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── icon_light@2x.png │ │ │ │ └── icon_light@3x.png │ │ ├── tabbar │ │ │ ├── Contents.json │ │ │ ├── bbs.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── Presentation@2x.png │ │ │ │ └── Presentation@3x.png │ │ │ ├── home.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── Home.png │ │ │ │ └── Home@3x.png │ │ │ ├── tabbar_chat.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── tabbar_chat@2x.png │ │ │ │ └── tabbar_chat@3x.png │ │ │ └── tabbar_profile.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── tabbar_profile@2x.png │ │ │ │ └── tabbar_profile@3x.png │ │ └── top.imageset │ │ │ ├── Contents.json │ │ │ └── top.png │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ ├── CCAppConfiguration.swift │ ├── CCRemoteNotificationHandler.swift │ ├── CocoaChinaPlus-Bridging-Header.h │ ├── Info.plist │ ├── Localizable.strings │ └── PushConfig.plist ├── Podfile ├── Podfile.lock └── R.generated.swift ├── LICENSE ├── README.md ├── UI设计 ├── about.sketch ├── all_icon.sketch ├── appstore │ ├── 3.5-article.png │ ├── 3.5-bbs.png │ ├── 3.5-chat.png │ ├── 3.5-code.png │ ├── 3.5-home.png │ ├── 3.5-profile.png │ ├── 4-article.png │ ├── 4-bbs.png │ ├── 4-chat.png │ ├── 4-code.png │ ├── 4-home.png │ ├── 4-profile.png │ ├── 4.7-article.png │ ├── 4.7-bbs.png │ ├── 4.7-chat.png │ ├── 4.7-code.png │ ├── 4.7-home.png │ ├── 4.7-profile.png │ ├── article-55.png │ ├── bbs-55.png │ ├── code-55.png │ ├── home-55.png │ ├── jiaoliu-55.png │ └── profile-55.png ├── cocoachinaplus.sketch ├── iPhone 6 Black + 2.pic_hd.png ├── iPhone 6 Black + IMG_2745.png ├── iPhone 6 Black + IMG_2746.png ├── iPhone 6 Black + IMG_2747.png ├── icon.sketch ├── icon │ ├── iTunesArtwork@2x.png │ ├── iTunesAtWork.png │ ├── icon_29pt.png │ ├── icon_29pt@2x.png │ ├── icon_29pt@3x.png │ ├── icon_40pt.png │ ├── icon_40pt@2x.png │ ├── icon_40pt@3x.png │ ├── icon_60pt@2x.png │ ├── icon_60pt@3x.png │ ├── icon_76pt.png │ └── icon_76pt@2x.png └── 同步推 │ ├── 4-article_meitu_4.jpg │ ├── 4-bbs_meitu_5.jpg │ ├── 4-chat_meitu_6.jpg │ ├── 4-code_meitu_7.jpg │ ├── 4-home_meitu_8.jpg │ └── icon.png └── 脚本 └── 打渠道包.sh /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | build/ 4 | *.pbxuser 5 | !default.pbxuser 6 | *.mode1v3 7 | !default.mode1v3 8 | *.mode2v3 9 | !default.mode2v3 10 | *.perspectivev3 11 | !default.perspectivev3 12 | xcuserdata 13 | *.xccheckout 14 | *.moved-aside 15 | DerivedData 16 | *.hmap 17 | *.ipa 18 | *.xcuserstate 19 | 20 | # CocoaPods 21 | # 22 | # We recommend against adding the Pods directory to your .gitignore. However 23 | # you should judge for yourself, the pros and cons are mentioned at: 24 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control 25 | # 26 | Code/Pods/ 27 | 28 | # Carthage 29 | # 30 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 31 | # Carthage/Checkouts 32 | 33 | Carthage/Build 34 | -------------------------------------------------------------------------------- /Code/.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | .DS_Store 3 | */build/* 4 | *.pbxuser 5 | !default.pbxuser 6 | *.mode1v3 7 | !default.mode1v3 8 | *.mode2v3 9 | !default.mode2v3 10 | *.perspectivev3 11 | !default.perspectivev3 12 | xcuserdata 13 | *.moved-aside 14 | DerivedData 15 | .idea/ 16 | *.hmap 17 | 18 | #CocoaPods 19 | Pods 20 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus.xcworkspace/xcshareddata/CocoaChinaPlus.xcscmblueprint: -------------------------------------------------------------------------------- 1 | { 2 | "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "C62255808153EEEE009D1828449E2B5B0A6F05B5", 3 | "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : { 4 | 5 | }, 6 | "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : { 7 | "127B9CE83113B9BEDA9FDF4200E01B72E67658A5" : 0, 8 | "C62255808153EEEE009D1828449E2B5B0A6F05B5" : 0, 9 | "BF1F56C483977AC36F575A9C50FB74A7EFF41C69" : 9223372036854775807 10 | }, 11 | "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "9FCB355E-B69A-4847-A18D-6D88743EFB7D", 12 | "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { 13 | "127B9CE83113B9BEDA9FDF4200E01B72E67658A5" : "CocoaChinaPlus\/Code\/CocoaChinaPlus\/Application\/Vender\/vender-lib\/", 14 | "C62255808153EEEE009D1828449E2B5B0A6F05B5" : "CocoaChinaPlus\/", 15 | "BF1F56C483977AC36F575A9C50FB74A7EFF41C69" : "" 16 | }, 17 | "DVTSourceControlWorkspaceBlueprintNameKey" : "CocoaChinaPlus", 18 | "DVTSourceControlWorkspaceBlueprintVersion" : 204, 19 | "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "Code\/CocoaChinaPlus.xcworkspace", 20 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [ 21 | { 22 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "git.oschina.net:zixun107\/vender-lib.git", 23 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 24 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "127B9CE83113B9BEDA9FDF4200E01B72E67658A5" 25 | }, 26 | { 27 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "git.oschina.net:zixunapp\/AppSaber-MAC.git", 28 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 29 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "BF1F56C483977AC36F575A9C50FB74A7EFF41C69" 30 | }, 31 | { 32 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "github.com:zixun\/CocoaChinaPlus.git", 33 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 34 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "C62255808153EEEE009D1828449E2B5B0A6F05B5" 35 | } 36 | ] 37 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/AppDef.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDef.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by zixun on 15/8/26. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import SwiftyUserDefaults 11 | 12 | extension DefaultsKeys { 13 | //标志导航页是否显示过 14 | static let isGuideShowed = DefaultsKey("isGuideShowed") 15 | 16 | } 17 | 18 | class CCAppKey: NSObject { 19 | 20 | static let appUM: String = "55dd4329e0f55a36b3003830" 21 | 22 | static let appWeChat:(appkey:String,secret:String) = 23 | ("wx7880b78e750cb34f", 24 | "b0cabfd6d2d6990e12f433a4c41c9227") 25 | 26 | static let appSina:(appkey:String,secret:String) = 27 | ("640791572", 28 | "98e198bb7ed319b4326371be09daaf55") 29 | 30 | static let appRongyun:(appkey:String,secret:String) = 31 | ("x18ywvqf8uxvc", 32 | "Kjg5SscjVZ3") 33 | } 34 | 35 | func kADText() -> String { 36 | return "打造体验最好的第三方CocoaChina客户端\n\nCocoaChina+" 37 | } 38 | 39 | extension UIColor { 40 | static func assistColor() ->UIColor { 41 | return UIColor(hex:0x00B9FF) 42 | } 43 | 44 | static func appGrayColor() ->UIColor { 45 | return UIColor(hex:0xB4B4B4) 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/CocoaChina/BBS/CCPBBSParser.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CCPBBSParser.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by zixun on 15/8/12. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import Alamofire 11 | import Ji 12 | import Log4G 13 | 14 | private let baseURL = "http://www.cocoachina.com/bbs/3g" 15 | 16 | // MARK: CCPBBSParser 17 | class CCPBBSParser { 18 | 19 | //解析 20 | class func parserBBS(_ result: @escaping (_ model: CCPBBSModel) -> Void) { 21 | 22 | _ = CCRequest(.get, baseURL).responseJi { (ji, error) -> Void in 23 | guard let nodes = ji?.xPath("//li[@class='articlelist clearfix']") else { 24 | return 25 | } 26 | 27 | //檢查資料是否正確, 將正確的部分建立 model 28 | var options = [CCPBBSOptionModel]() 29 | for node in nodes { 30 | guard 31 | let titleNode = node.xPath(".//p[@class='title bbs_title']/a").first, 32 | let contentNode = node.xPath(".//p[@class='bbs_content']").first, 33 | let title = titleNode.content, 34 | let content = contentNode.content, 35 | let urlString = titleNode["href"] 36 | else { 37 | Log4G.warning("資料毀損") 38 | continue 39 | } 40 | 41 | //建立一個新的 option model 42 | let option = CCPBBSOptionModel(title: title, content: content, urlString: urlString) 43 | options.append(option) 44 | } 45 | let model = CCPBBSModel(options: options) 46 | 47 | //回調 48 | result(model) 49 | } 50 | } 51 | 52 | } 53 | 54 | // MARK: CCPBBSModel 55 | class CCPBBSModel { 56 | 57 | var options = [CCPBBSOptionModel]() 58 | 59 | convenience init(options: [CCPBBSOptionModel]) { 60 | self.init() 61 | self.options = options 62 | } 63 | 64 | } 65 | 66 | // MARK: CCPBBSOptionModel 67 | class CCPBBSOptionModel { 68 | 69 | var title = "" 70 | var content = "" 71 | var urlString = "" 72 | 73 | convenience init(title: String, content: String, urlString: String) { 74 | self.init() 75 | self.title = title 76 | self.content = content 77 | self.urlString = baseURL + "/" + urlString 78 | } 79 | 80 | } 81 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/CocoaChina/Chat/CChatListViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CChatListViewController.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by chenyl on 15/9/30. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import MBProgressHUD 11 | import SwiftyUserDefaults 12 | import Neon 13 | import RxSwift 14 | import AppBaseKit 15 | 16 | class CChatListViewController: ZXBaseViewController { 17 | 18 | 19 | fileprivate let disposeBag = DisposeBag() 20 | 21 | init() { 22 | super.init(navigatorURL: URL(string: "go/ccp/chatlist")!, query: Dictionary()) 23 | } 24 | 25 | override func viewDidAppear(_ animated: Bool) { 26 | super.viewDidAppear(animated) 27 | UIAlertView.quickTip(message: "请加QQ群:516326791") 28 | 29 | } 30 | override func viewWillLayoutSubviews() { 31 | super.viewWillLayoutSubviews() 32 | } 33 | 34 | 35 | required init?(coder aDecoder: NSCoder) { 36 | fatalError("init(coder:) has not been implemented") 37 | } 38 | 39 | required init(navigatorURL URL: URL?, query: Dictionary) { 40 | fatalError("init(navigatorURL:query:) has not been implemented") 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/CocoaChina/Collection/CCCollectionViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CCCollectionViewController.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by zixun on 15/9/21. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import MBProgressHUD 11 | 12 | class CCCollectionViewController: CCArticleTableViewController { 13 | 14 | fileprivate var dataSource : [CCArticleModel] = [] 15 | fileprivate var currentIndex : Int = 0 16 | fileprivate var type : CCArticleType! 17 | 18 | required init(navigatorURL URL: URL?, query: Dictionary) { 19 | var query2 = query 20 | query2["forceHighlight"] = "1" 21 | super.init(navigatorURL: URL, query: query2) 22 | 23 | self.type = query["type"] == "0" ? .all : .collection 24 | self.dataSource = CCArticleService.queryArticles(type, index: currentIndex) 25 | } 26 | 27 | required init?(coder aDecoder: NSCoder) { 28 | fatalError("init(coder:) has not been implemented") 29 | } 30 | 31 | override func viewDidLoad() { 32 | super.viewDidLoad() 33 | 34 | self.tableView.append(self.dataSource) 35 | 36 | self.tableView.addPullToRefresh(actionHandler: {[unowned self] () -> Void in 37 | MBProgressHUD.showAdded(to: self.view, animated: true) 38 | self.currentIndex = 0 39 | self.dataSource = CCArticleService.queryArticles(self.type, index:self.currentIndex) 40 | self.tableView.reload(self.dataSource) 41 | self.tableView.pullToRefreshView.stopAnimating() 42 | self.tableView.infiniteScrollingView.stopAnimating() 43 | MBProgressHUD.hide(for: self.view, animated: true) 44 | }) 45 | 46 | self.tableView.addInfiniteScrolling(actionHandler: {[unowned self] () -> Void in 47 | self.currentIndex += 1 48 | let model = CCArticleService.queryArticles(self.type, index: self.currentIndex) 49 | self.tableView.append(model) 50 | self.tableView.infiniteScrollingView.stopAnimating() 51 | }) 52 | } 53 | 54 | override func viewWillLayoutSubviews() { 55 | super.viewWillLayoutSubviews() 56 | 57 | } 58 | 59 | 60 | } 61 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/CocoaChina/Home/CCPHomePage.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CCPHomePage.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by 子循 on 15/7/19. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | // MARK: CCPHomePage 12 | class CCPHomePage: ZXPage { 13 | 14 | fileprivate weak var internalDisplayView: UIView? 15 | 16 | func setDisplayView(_ view: UIView?) { 17 | 18 | //清除原先的 internalDisplayView 19 | if let displayView = self.internalDisplayView { 20 | displayView.removeFromSuperview() 21 | } 22 | 23 | //設定為新的 view 24 | if let unwrapView = view { 25 | unwrapView.frame = self.bounds 26 | self.contentView.addSubview(unwrapView) 27 | self.internalDisplayView = unwrapView 28 | } 29 | } 30 | 31 | override func layoutSubviews() { 32 | super.layoutSubviews() 33 | self.internalDisplayView?.frame = self.bounds 34 | } 35 | 36 | } 37 | 38 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/CocoaChina/Profile/CCAboutViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CCAboutViewController.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by zixun on 15/10/3. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CCAboutViewController: ZXBaseViewController { 12 | 13 | fileprivate var scrollView:UIScrollView! 14 | 15 | required init(navigatorURL URL: URL?, query: Dictionary) { 16 | super.init(navigatorURL: URL, query: query) 17 | } 18 | 19 | required init?(coder aDecoder: NSCoder) { 20 | fatalError("init(coder:) has not been implemented") 21 | } 22 | 23 | override func viewDidLoad() { 24 | 25 | super.viewDidLoad() 26 | self.scrollView = UIScrollView(frame: self.view.bounds) 27 | self.scrollView.delegate = self 28 | self.view.addSubview(self.scrollView) 29 | 30 | let imageview = UIImageView(image: R.image.about()) 31 | imageview.frame = self.scrollView.bounds 32 | imageview.autoresizingMask = UIViewAutoresizing.flexibleHeight 33 | self.scrollView.addSubview(imageview) 34 | } 35 | } 36 | 37 | extension CCAboutViewController : UIScrollViewDelegate { 38 | 39 | } 40 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/CocoaChina/Search/CCSearchViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CCAboutViewController.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by zixun on 15/10/3. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import RxSwift 11 | import RxCocoa 12 | import Alamofire 13 | 14 | class CCSearchViewController: CCArticleTableViewController { 15 | //搜索条 16 | fileprivate var searchfiled:UISearchBar! 17 | //取消按钮 18 | fileprivate var cancelButton:UIButton! 19 | //RxSwift资源回收包 20 | fileprivate let disposeBag = DisposeBag() 21 | 22 | required init?(coder aDecoder: NSCoder) { 23 | fatalError("init(coder:) has not been implemented") 24 | } 25 | 26 | required init(navigatorURL URL: URL?, query: Dictionary) { 27 | super.init(navigatorURL: URL, query: query) 28 | } 29 | 30 | override func viewDidLoad() { 31 | super.viewDidLoad() 32 | self.edgesForExtendedLayout = UIRectEdge() 33 | 34 | self.cancelButton = UIButton(frame: CGRect(x: 0, y: 0, width: 44, height: 44)) 35 | self.cancelButton.setImage(R.image.nav_cancel(), for: UIControlState()) 36 | self.navigationItem.rightBarButtonItemFixedSpace(item: UIBarButtonItem(customView: cancelButton)) 37 | 38 | self.searchfiled = UISearchBar() 39 | self.searchfiled.placeholder = "关键字必需大于2个字符哦" 40 | self.navigationItem.titleView = self.searchfiled 41 | 42 | 43 | self.subscribes() 44 | } 45 | 46 | fileprivate func subscribes() { 47 | 48 | //取消按钮点击Observable 49 | self.cancelButton.rx.tap.bindNext { [unowned self] _ in 50 | self.dismiss(animated: true, completion: nil) 51 | }.addDisposableTo(self.disposeBag) 52 | 53 | //tableView滚动偏移量Observable 54 | self.tableView.rx.contentOffset.bindNext {[unowned self] (p:CGPoint) in 55 | if self.searchfiled.isFirstResponder { 56 | _ = self.searchfiled.resignFirstResponder() 57 | } 58 | }.addDisposableTo(self.disposeBag) 59 | 60 | //搜索框搜索按钮点击Observable 61 | self.searchfiled.rx.searchButtonClicked.map({ [unowned self] _ -> PublishSubject<[CCArticleModel]> in 62 | self.tableView.clean() 63 | return CCHTMLModelHandler.sharedHandler.handleSearchPage(self.searchfiled.text!, loadNextPageTrigger: self.loadNextPageTrigger) 64 | }).switchLatest().bindNext({ [unowned self] (models:Array) in 65 | self.tableView.append(models) 66 | self.tableView.infiniteScrollingView.stopAnimating() 67 | }).addDisposableTo(self.disposeBag) 68 | } 69 | } 70 | 71 | 72 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/Controller/ZXArticleTableViewController/CCArticleTableViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ZXTableViewController.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by user on 15/11/5. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import RxSwift 11 | //import GoogleMobileAds 12 | 13 | class CCArticleTableViewController: ZXBaseViewController {//GADBannerViewDelegate 14 | 15 | //RxSwift资源回收包 16 | fileprivate let disposeBag = DisposeBag() 17 | 18 | //文章列表 19 | var tableView : CCArticleTableView! 20 | 21 | //加载下一页触发器 22 | let loadNextPageTrigger = PublishSubject() 23 | 24 | 25 | required init(navigatorURL URL: URL?, query: Dictionary) { 26 | super.init(navigatorURL: URL, query: query) 27 | 28 | //tableview 配置 29 | let forceHighlight = query["forceHighlight"] == "1" ? true : false 30 | self.tableView = CCArticleTableView(forceHighlight: forceHighlight) 31 | } 32 | 33 | required init?(coder aDecoder: NSCoder) { 34 | fatalError("init(coder:) has not been implemented") 35 | } 36 | 37 | 38 | override func viewDidLoad() { 39 | super.viewDidLoad() 40 | 41 | self.tableView.frame = self.view.bounds 42 | self.view.addSubview(self.tableView) 43 | 44 | //上拉加载 45 | self.tableView.addInfiniteScrolling { [weak self] () -> Void in 46 | guard let sself = self else { 47 | return 48 | } 49 | sself.loadNextPageTrigger.on(.next()) 50 | } 51 | self.tableView.infiniteScrollingView.activityIndicatorViewStyle = .white 52 | 53 | //tableview行点击Observable 54 | self.tableView.selectSubject.bindNext { [weak self] (model:CCArticleModel) in 55 | guard let sself = self else { 56 | return 57 | } 58 | 59 | sself.dismiss(animated: true, completion: nil) 60 | var param = Dictionary() 61 | param["identity"] = model.identity 62 | ZXOpenURL("go/ccp/article", param:param) 63 | } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/Helper/Base/String+.swift: -------------------------------------------------------------------------------- 1 | // 2 | // String+.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by zixun on 17/1/23. 6 | // Copyright © 2017年 zixun. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import AppBaseKit 11 | 12 | extension String { 13 | 14 | public func stringByDeletingOccurrencesOfString(_ target: String) -> String { 15 | return self.NS.replacingOccurrences(of: target, with: "") 16 | } 17 | 18 | public func stringByDeletingScopeString(_ begin:String, end:String) -> String { 19 | let rangeBegin = self.NS.range(of: begin) 20 | let rangeEnd = self.NS.range(of: end) 21 | 22 | let range = NSRange(location: rangeBegin.location + rangeBegin.length, 23 | length: rangeEnd.location - (rangeBegin.location + rangeBegin.length)) 24 | return self.stringByDeletingCharactersInRange(range) 25 | } 26 | 27 | public func stringByDeletingCharactersInRange(_ range: NSRange) -> String { 28 | return self.NS.replacingCharacters(in: range, with: "") 29 | } 30 | 31 | public func stringByInsertString(str:String, beforeOccurrencesOfString target:String) -> String { 32 | return self.NS.replacingOccurrences(of: target, with: str + target) 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/Helper/Base/UIImage+.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by zixun on 17/1/25. 6 | // Copyright © 2017年 zixun. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // MARK: - circle image 12 | public extension UIImage { 13 | 14 | public func circleImage() -> UIImage{ 15 | UIGraphicsBeginImageContext(self.size) 16 | let context = UIGraphicsGetCurrentContext()! 17 | //圆的边框宽度为2,颜色为红色 18 | 19 | context.setLineWidth(0); 20 | 21 | context.setStrokeColor(UIColor.clear.cgColor); 22 | 23 | let rect = CGRect(x:0, y:0, width:self.size.width, height:self.size.height) 24 | 25 | context.addEllipse(in: rect); 26 | 27 | context.clip(); 28 | 29 | //在圆区域内画出image原图 30 | self.draw(in: rect) 31 | 32 | context.addEllipse(in: rect); 33 | 34 | context.strokePath(); 35 | 36 | //生成新的image 37 | let newimg = UIGraphicsGetImageFromCurrentImageContext()! 38 | UIGraphicsEndImageContext() 39 | return newimg 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/Helper/Base/UINavigationItem+.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UINavigationBar+FixedSpace.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by user on 15/10/27. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | public extension UINavigationItem { 13 | 14 | /** 15 | 添加一组与屏幕右边对其的rightBarButtonItems 16 | 17 | - parameter items: rightBarButtonItem数组 18 | */ 19 | public func rightBarButtonItemsFixedSpace(items:[UIBarButtonItem]?) { 20 | guard items != nil else { 21 | return; 22 | } 23 | 24 | let negativeSpacer = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.fixedSpace, target: nil, action: nil) 25 | negativeSpacer.width = -15; 26 | 27 | var rightBarButtonItems = items! 28 | rightBarButtonItems.insert(negativeSpacer, at: 0); 29 | self.rightBarButtonItems = rightBarButtonItems 30 | } 31 | 32 | /** 33 | 添加一个与屏幕右边对其的rightBarButtonItem 34 | 35 | - parameter item: UIBarButtonItem 36 | */ 37 | public func rightBarButtonItemFixedSpace(item:UIBarButtonItem) { 38 | self.rightBarButtonItemsFixedSpace(items: [item]) 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/Helper/CCSqlite/CCDataBase.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CCDataBase.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by zixun on 15/9/27. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import SQLite 11 | import AppBaseKit 12 | import Log4G 13 | 14 | let CCDB = CCDataBase.sharedDB 15 | 16 | class CCDataBase: NSObject { 17 | 18 | static let sharedDB: CCDataBase = { 19 | return CCDataBase() 20 | }() 21 | 22 | 23 | fileprivate(set) var tableManager : CCTableManager! 24 | 25 | fileprivate(set) var connection : Connection! 26 | 27 | override init() { 28 | super.init() 29 | do{ 30 | //获取路径 31 | let path = AppPathForApplicationSupportResource(relativePath: Bundle.main.bundleIdentifier!) 32 | 33 | //创建文件 34 | if !FileManager.default.fileExists(atPath: path) { 35 | try FileManager.default.createDirectory( 36 | atPath: path, withIntermediateDirectories: true, attributes: nil 37 | ) 38 | } 39 | 40 | //建立连接 41 | self.connection = try Connection("\(path)/db.sqlite3") 42 | 43 | //建立数据库表 44 | self.tableManager = CCTableManager(connection: self.connection) 45 | }catch { 46 | Log4G.error("创建数据库失败!原因: \(error)") 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/Helper/CCSqlite/DAO/CCArticleDAO.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CCTableArticle.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by zixun on 15/9/27. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import SQLite 11 | 12 | class CCArticleDAO: NSObject { 13 | var table : Table = Table("Article") 14 | 15 | //文章identity 16 | let identity = Expression("identity") 17 | //标题 18 | let title = Expression("title") 19 | //点击url 20 | let linkURL = Expression("wapURL") 21 | //图片url 22 | let imageURL = Expression("imageURL") 23 | //是否收藏 0,未收藏 1,收藏 24 | let type = Expression("type") 25 | //插入数据库时间 26 | let dateOfRead = Expression("dateOfRead") 27 | //收藏时间 28 | let dateOfCollection = Expression("dateOfCollection") 29 | 30 | 31 | 32 | convenience init(connection:Connection) { 33 | self.init() 34 | weak var weakSelf = self 35 | try! connection.run(self.table.create(ifNotExists: true) { t in 36 | 37 | if let weakSelf = weakSelf { 38 | t.column(weakSelf.identity) 39 | t.column(weakSelf.title) 40 | t.column(weakSelf.linkURL) 41 | t.column(weakSelf.imageURL) 42 | t.column(weakSelf.type) 43 | t.column(weakSelf.dateOfRead) 44 | t.column(weakSelf.dateOfCollection) 45 | } 46 | 47 | }) 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/Helper/CCSqlite/Manager/CCTableManager.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CCTable.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by zixun on 15/9/27. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import SQLite 11 | 12 | class CCTableManager: NSObject { 13 | fileprivate(set) var articleDAO : CCArticleDAO! 14 | 15 | convenience init(connection:Connection) { 16 | self.init() 17 | self.articleDAO = CCArticleDAO(connection: connection) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/Helper/CCSqlite/Service/CCArticleCache.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CCArticleCache.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by zixun on 15/10/4. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | let kArticleCache = CCArticleCache.sharedCache 12 | 13 | //对保存在数据库中的文章做一个简单的cache,提升访问性能 14 | class CCArticleCache: NSObject { 15 | 16 | static let sharedCache: CCArticleCache = { 17 | return CCArticleCache() 18 | }() 19 | 20 | fileprivate var model_collection = CCArticleService.queryArticles(.collection) 21 | fileprivate var model_uncollection = CCArticleService.queryArticles(.unCollection) 22 | 23 | func updateCache() { 24 | self.model_collection = CCArticleService.queryArticles(.collection) 25 | self.model_uncollection = CCArticleService.queryArticles(.unCollection) 26 | } 27 | 28 | func articlesOfType(_ type:CCArticleType) ->[CCArticleModel] { 29 | switch type { 30 | 31 | case .collection: 32 | return model_collection 33 | 34 | case .unCollection: 35 | return model_uncollection 36 | 37 | default: 38 | return model_collection + model_uncollection 39 | } 40 | } 41 | 42 | 43 | 44 | } 45 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/Helper/CCURLHelper.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CCPTools.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by zixun on 15/8/22. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class CCURLHelper: NSObject { 12 | 13 | class func generateIdentity(_ url: String) -> String { 14 | let target = url.lowercased(); 15 | 16 | if (target.range(of: "wap") != nil) { 17 | //wap 18 | return url.components(separatedBy: "=").last! 19 | }else { 20 | //pc 21 | return url.components(separatedBy: "/").last!.components(separatedBy: ".").first! 22 | } 23 | } 24 | 25 | class func generateWapURL(_ identity:String) -> String { 26 | return "http://www.cocoachina.com/cms/wap.php?action=article&id=\(identity)" 27 | } 28 | 29 | class func generateWapURLFromURL(_ url:String) -> String { 30 | let identity = self.generateIdentity(url) 31 | return self.generateWapURL(identity) 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/Helper/HTMLModel/Parser/CCHTMLParser.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CCHTMLParser.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by user on 15/10/30. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class CCHTMLParser: NSObject { 12 | 13 | 14 | 15 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/Helper/ZXURLNavigator/NSDate+String.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSDate+String.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by zixun on 15/9/27. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension Date { 12 | func string() ->String { 13 | let dateFormatter = DateFormatter() 14 | dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss zzz" 15 | return dateFormatter.string(from: self) 16 | } 17 | } 18 | 19 | extension String { 20 | 21 | func date() -> Date { 22 | let dateFormatter = DateFormatter() 23 | dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss zzz" 24 | return dateFormatter.date(from: self)! 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/Helper/ZXURLNavigator/ZXBaseViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+Navigator.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by 子循 on 15/7/5. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | import Log4G 12 | 13 | class ZXBaseViewController: UIViewController{ 14 | 15 | var navURL: URL? 16 | var navQuery = Dictionary() 17 | 18 | convenience init(){ 19 | self.init(navigatorURL: nil, query: Dictionary()) 20 | } 21 | 22 | required init(navigatorURL URL: URL?,query:Dictionary) { 23 | self.navURL = URL 24 | self.navQuery = query 25 | super.init(nibName: nil, bundle: nil) 26 | 27 | // self.edgesForExtendedLayout = UIRectEdge.None 28 | //这里不能调用下面的代码,会导致init方法去load视图,然后调用viewDidLoad(),导致viewDidLoad()提前调用,打乱生命周期(比如视图还没有push,就已经load到了内存准备显示了) 29 | // self.view.backgroundColor = UIColor.blackColor() 30 | 31 | } 32 | 33 | override func viewDidLoad() { 34 | super.viewDidLoad() 35 | self.view.backgroundColor = UIColor.black 36 | self.automaticallyAdjustsScrollViewInsets = false 37 | self.edgesForExtendedLayout = UIRectEdge() 38 | } 39 | 40 | required init?(coder aDecoder: NSCoder) { 41 | super.init(coder: aDecoder) 42 | } 43 | 44 | override var preferredStatusBarStyle : UIStatusBarStyle { 45 | return UIStatusBarStyle.lightContent 46 | } 47 | 48 | deinit { 49 | Log4G.log("\(self.classForCoder)已正常释放!") 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCTableViewCell/CCTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CCPTableViewCell.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by zixun on 15/8/29. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import Neon 11 | import AppBaseKit 12 | 13 | class CCPTableViewCell: UITableViewCell { 14 | 15 | var containerView : UIView! 16 | 17 | override init(style: UITableViewCellStyle, reuseIdentifier: String?) { 18 | super.init(style: style, reuseIdentifier: reuseIdentifier) 19 | 20 | self.backgroundColor = UIColor(hex:0x272626) 21 | let view = UIView() 22 | view.backgroundColor = UIColor(hex: 0xf8f8f8, alpha: 0.1) 23 | self.selectedBackgroundView = view 24 | 25 | self.containerView = UIView() 26 | self.containerView.backgroundColor = UIColor.black 27 | self.addSubview(self.containerView) 28 | } 29 | 30 | required init?(coder aDecoder: NSCoder) { 31 | fatalError("init(coder:) has not been implemented") 32 | } 33 | 34 | override func layoutSubviews() { 35 | super.layoutSubviews() 36 | self.containerView.fillSuperview(left: 2, right: 2, top: 0.5, bottom: 0.5) 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/agate.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Agate by Taufik Nurrohman 3 | * ---------------------------------------------------- 4 | * 5 | * #ade5fc 6 | * #a2fca2 7 | * #c6b4f0 8 | * #d36363 9 | * #fcc28c 10 | * #fc9b9b 11 | * #ffa 12 | * #fff 13 | * #333 14 | * #62c8f3 15 | * #888 16 | * 17 | */ 18 | 19 | .hljs { 20 | display: block; 21 | overflow-x: auto; 22 | padding: .5em; 23 | background: #333; 24 | color: white; 25 | -webkit-text-size-adjust: none; 26 | } 27 | 28 | .asciidoc .hljs-title, 29 | .hljs-label, 30 | .hljs-tag .hljs-title, 31 | .hljs-prompt, 32 | .http .hljs-request { 33 | font-weight: bold; 34 | } 35 | 36 | .hljs-change, 37 | .hljs-code { 38 | font-style: italic; 39 | } 40 | 41 | .hljs-tag, 42 | .ini .hljs-title { 43 | color: #62c8f3; 44 | } 45 | 46 | .hljs-id, 47 | .hljs-cbracket, 48 | .hljs-tag .hljs-value { 49 | color: #ade5fc; 50 | } 51 | 52 | .hljs-string, 53 | .hljs-bullet { 54 | color: #a2fca2; 55 | } 56 | 57 | .hljs-type, 58 | .hljs-variable, 59 | .hljs-name, 60 | .actionscript .hljs-title, 61 | .aspectj .hljs-annotation, 62 | .aspectj .hljs-title, 63 | .hljs-attribute, 64 | .hljs-change, 65 | .hljs-blockquote, 66 | .hljs-built_in { 67 | color: #ffa; 68 | } 69 | 70 | .hljs-number, 71 | .hljs-hexcolor, 72 | .hljs-link_label, 73 | .hljs-link_reference { 74 | color: #d36363; 75 | } 76 | 77 | .hljs-keyword, 78 | .hljs-literal, 79 | .hljs-constant, 80 | .css .hljs-tag, 81 | .hljs-typename, 82 | .hljs-winutils { 83 | color: #fcc28c; 84 | } 85 | 86 | .hljs-comment, 87 | .hljs-cdata, 88 | .hljs-preprocessor, 89 | .hljs-annotation, 90 | .hljs-decorator, 91 | .hljs-doctype, 92 | .hljs-deletion, 93 | .hljs-shebang, 94 | .apache .hljs-sqbracket, 95 | .tex .hljs-formula, 96 | .hljs-header, 97 | .hljs-horizontal_rule, 98 | .hljs-code { 99 | color: #888; 100 | } 101 | 102 | .hljs-regexp, 103 | .hljs-attr_selector { 104 | color: #c6b4f0; 105 | } 106 | 107 | .hljs-important, 108 | .hljs-doctype, 109 | .hljs-pi, 110 | .hljs-chunk, 111 | .actionscript .hljs-type, 112 | .hljs-shebang, 113 | .hljs-pragma, 114 | .http .hljs-attribute { 115 | color: #fc9b9b; 116 | } 117 | 118 | .hljs-deletion { 119 | background-color: #fc9b9b; 120 | color: #333; 121 | } 122 | 123 | .hljs-addition { 124 | background-color: #a2fca2; 125 | color: #333; 126 | } 127 | 128 | .hljs a, 129 | .hljs-tag .hljs-attribute { 130 | color: inherit; 131 | } 132 | 133 | .hljs a:focus, 134 | .hljs a:hover { 135 | color: inherit; 136 | text-decoration: underline; 137 | } 138 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/androidstudio.css: -------------------------------------------------------------------------------- 1 | /* 2 | Date: 24 Fev 2015 3 | Author: Pedro Oliveira 4 | */ 5 | 6 | .hljs { 7 | color: #a9b7c6; 8 | background: #282b2e; 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | -webkit-text-size-adjust: none; 13 | } 14 | 15 | .hljs-number { 16 | color: #6897BB; 17 | } 18 | 19 | .hljs-keyword, 20 | .hljs-deletion { 21 | color: #cc7832; 22 | } 23 | 24 | .hljs-comment { 25 | color: #808080; 26 | } 27 | 28 | .hljs-annotation { 29 | color: #bbb529; 30 | } 31 | 32 | .hljs-string, 33 | .hljs-addition { 34 | color: #6A8759; 35 | } 36 | 37 | .hljs-function .hljs-title, 38 | .hljs-change { 39 | color: #ffc66d; 40 | } 41 | 42 | .hljs-tag .hljs-title, 43 | .hljs-doctype { 44 | color: #e8bf6a; 45 | } 46 | 47 | .hljs-tag .hljs-attribute { 48 | color: #bababa; 49 | } 50 | 51 | .hljs-tag .hljs-value { 52 | color: #a5c261; 53 | } 54 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/ascetic.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Original style from softwaremaniacs.org (c) Ivan Sagalaev 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: white; 12 | color: black; 13 | -webkit-text-size-adjust: none; 14 | } 15 | 16 | .hljs-string, 17 | .hljs-tag .hljs-value, 18 | .hljs-filter .hljs-argument, 19 | .hljs-addition, 20 | .hljs-change, 21 | .hljs-name, 22 | .apache .hljs-tag, 23 | .apache .hljs-cbracket, 24 | .nginx .hljs-built_in, 25 | .tex .hljs-formula { 26 | color: #888; 27 | } 28 | 29 | .hljs-comment, 30 | .hljs-shebang, 31 | .hljs-doctype, 32 | .hljs-pi, 33 | .hljs-deletion, 34 | .apache .hljs-sqbracket { 35 | color: #ccc; 36 | } 37 | 38 | .hljs-keyword, 39 | .hljs-tag .hljs-title, 40 | .ini .hljs-title, 41 | .lisp .hljs-title, 42 | .http .hljs-title, 43 | .nginx .hljs-title, 44 | .css .hljs-tag, 45 | .hljs-winutils, 46 | .hljs-flow, 47 | .apache .hljs-tag, 48 | .tex .hljs-command, 49 | .hljs-request, 50 | .hljs-status { 51 | font-weight: bold; 52 | } 53 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-cave.dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Cave Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Cave Comment */ 6 | .hljs-comment { 7 | color: #7e7887; 8 | } 9 | 10 | /* Atelier-Cave Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #be4678; 25 | } 26 | 27 | /* Atelier-Cave Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #aa573c; 35 | } 36 | 37 | /* Atelier-Cave Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #a06e3b; 41 | } 42 | 43 | /* Atelier-Cave Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #2a9292; 51 | } 52 | 53 | /* Atelier-Cave Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #398bc6; 57 | } 58 | 59 | /* Atelier-Cave Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #576ddb; 69 | } 70 | 71 | /* Atelier-Cave Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #955ae7; 75 | } 76 | 77 | .diff .hljs-deletion, 78 | .diff .hljs-addition { 79 | color: #19171c; 80 | display: inline-block; 81 | width: 100%; 82 | } 83 | 84 | .diff .hljs-deletion { 85 | background-color: #be4678; 86 | } 87 | 88 | .diff .hljs-addition { 89 | background-color: #2a9292; 90 | } 91 | 92 | .diff .hljs-change { 93 | color: #576ddb; 94 | } 95 | 96 | .hljs { 97 | display: block; 98 | overflow-x: auto; 99 | background: #19171c; 100 | color: #8b8792; 101 | padding: 0.5em; 102 | -webkit-text-size-adjust: none; 103 | } 104 | 105 | .coffeescript .javascript, 106 | .javascript .xml, 107 | .tex .hljs-formula, 108 | .xml .javascript, 109 | .xml .vbscript, 110 | .xml .css, 111 | .xml .hljs-cdata { 112 | opacity: 0.5; 113 | } 114 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-cave.light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Cave Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Cave Comment */ 6 | .hljs-comment { 7 | color: #655f6d; 8 | } 9 | 10 | /* Atelier-Cave Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #be4678; 25 | } 26 | 27 | /* Atelier-Cave Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #aa573c; 35 | } 36 | 37 | /* Atelier-Cave Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #a06e3b; 41 | } 42 | 43 | /* Atelier-Cave Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #2a9292; 51 | } 52 | 53 | /* Atelier-Cave Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #398bc6; 57 | } 58 | 59 | /* Atelier-Cave Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #576ddb; 69 | } 70 | 71 | /* Atelier-Cave Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #955ae7; 75 | } 76 | 77 | .diff .hljs-deletion, 78 | .diff .hljs-addition { 79 | color: #19171c; 80 | display: inline-block; 81 | width: 100%; 82 | } 83 | 84 | .diff .hljs-deletion { 85 | background-color: #be4678; 86 | } 87 | 88 | .diff .hljs-addition { 89 | background-color: #2a9292; 90 | } 91 | 92 | .diff .hljs-change { 93 | color: #576ddb; 94 | } 95 | 96 | .hljs { 97 | display: block; 98 | overflow-x: auto; 99 | background: #efecf4; 100 | color: #585260; 101 | padding: 0.5em; 102 | -webkit-text-size-adjust: none; 103 | } 104 | 105 | .coffeescript .javascript, 106 | .javascript .xml, 107 | .tex .hljs-formula, 108 | .xml .javascript, 109 | .xml .vbscript, 110 | .xml .css, 111 | .xml .hljs-cdata { 112 | opacity: 0.5; 113 | } 114 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-dune.dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Dune Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Dune Comment */ 6 | .hljs-comment { 7 | color: #999580; 8 | } 9 | 10 | /* Atelier-Dune Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #d73737; 25 | } 26 | 27 | /* Atelier-Dune Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #b65611; 35 | } 36 | 37 | /* Atelier-Dune Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #ae9513; 41 | } 42 | 43 | /* Atelier-Dune Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #60ac39; 51 | } 52 | 53 | /* Atelier-Dune Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #1fad83; 57 | } 58 | 59 | /* Atelier-Dune Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #6684e1; 69 | } 70 | 71 | /* Atelier-Dune Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #b854d4; 75 | } 76 | 77 | .hljs { 78 | display: block; 79 | overflow-x: auto; 80 | background: #20201d; 81 | color: #a6a28c; 82 | padding: 0.5em; 83 | -webkit-text-size-adjust: none; 84 | } 85 | 86 | .coffeescript .javascript, 87 | .javascript .xml, 88 | .tex .hljs-formula, 89 | .xml .javascript, 90 | .xml .vbscript, 91 | .xml .css, 92 | .xml .hljs-cdata { 93 | opacity: 0.5; 94 | } 95 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-dune.light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Dune Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Dune Comment */ 6 | .hljs-comment { 7 | color: #7d7a68; 8 | } 9 | 10 | /* Atelier-Dune Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #d73737; 25 | } 26 | 27 | /* Atelier-Dune Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #b65611; 35 | } 36 | 37 | /* Atelier-Dune Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #ae9513; 41 | } 42 | 43 | /* Atelier-Dune Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #60ac39; 51 | } 52 | 53 | /* Atelier-Dune Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #1fad83; 57 | } 58 | 59 | /* Atelier-Dune Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #6684e1; 69 | } 70 | 71 | /* Atelier-Dune Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #b854d4; 75 | } 76 | 77 | .hljs { 78 | display: block; 79 | overflow-x: auto; 80 | background: #fefbec; 81 | color: #6e6b5e; 82 | padding: 0.5em; 83 | -webkit-text-size-adjust: none; 84 | } 85 | 86 | .coffeescript .javascript, 87 | .javascript .xml, 88 | .tex .hljs-formula, 89 | .xml .javascript, 90 | .xml .vbscript, 91 | .xml .css, 92 | .xml .hljs-cdata { 93 | opacity: 0.5; 94 | } 95 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-estuary.dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Estuary Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Estuary Comment */ 6 | .hljs-comment { 7 | color: #878573; 8 | } 9 | 10 | /* Atelier-Estuary Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #ba6236; 25 | } 26 | 27 | /* Atelier-Estuary Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #ae7313; 35 | } 36 | 37 | /* Atelier-Estuary Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #a5980d; 41 | } 42 | 43 | /* Atelier-Estuary Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #7d9726; 51 | } 52 | 53 | /* Atelier-Estuary Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #5b9d48; 57 | } 58 | 59 | /* Atelier-Estuary Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #36a166; 69 | } 70 | 71 | /* Atelier-Estuary Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #5f9182; 75 | } 76 | 77 | .diff .hljs-deletion, 78 | .diff .hljs-addition { 79 | color: #22221b; 80 | display: inline-block; 81 | width: 100%; 82 | } 83 | 84 | .diff .hljs-deletion { 85 | background-color: #ba6236; 86 | } 87 | 88 | .diff .hljs-addition { 89 | background-color: #7d9726; 90 | } 91 | 92 | .diff .hljs-change { 93 | color: #36a166; 94 | } 95 | 96 | .hljs { 97 | display: block; 98 | overflow-x: auto; 99 | background: #22221b; 100 | color: #929181; 101 | padding: 0.5em; 102 | -webkit-text-size-adjust: none; 103 | } 104 | 105 | .coffeescript .javascript, 106 | .javascript .xml, 107 | .tex .hljs-formula, 108 | .xml .javascript, 109 | .xml .vbscript, 110 | .xml .css, 111 | .xml .hljs-cdata { 112 | opacity: 0.5; 113 | } 114 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-estuary.light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Estuary Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Estuary Comment */ 6 | .hljs-comment { 7 | color: #6c6b5a; 8 | } 9 | 10 | /* Atelier-Estuary Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #ba6236; 25 | } 26 | 27 | /* Atelier-Estuary Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #ae7313; 35 | } 36 | 37 | /* Atelier-Estuary Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #a5980d; 41 | } 42 | 43 | /* Atelier-Estuary Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #7d9726; 51 | } 52 | 53 | /* Atelier-Estuary Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #5b9d48; 57 | } 58 | 59 | /* Atelier-Estuary Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #36a166; 69 | } 70 | 71 | /* Atelier-Estuary Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #5f9182; 75 | } 76 | 77 | .diff .hljs-deletion, 78 | .diff .hljs-addition { 79 | color: #22221b; 80 | display: inline-block; 81 | width: 100%; 82 | } 83 | 84 | .diff .hljs-deletion { 85 | background-color: #ba6236; 86 | } 87 | 88 | .diff .hljs-addition { 89 | background-color: #7d9726; 90 | } 91 | 92 | .diff .hljs-change { 93 | color: #36a166; 94 | } 95 | 96 | .hljs { 97 | display: block; 98 | overflow-x: auto; 99 | background: #f4f3ec; 100 | color: #5f5e4e; 101 | padding: 0.5em; 102 | -webkit-text-size-adjust: none; 103 | } 104 | 105 | .coffeescript .javascript, 106 | .javascript .xml, 107 | .tex .hljs-formula, 108 | .xml .javascript, 109 | .xml .vbscript, 110 | .xml .css, 111 | .xml .hljs-cdata { 112 | opacity: 0.5; 113 | } 114 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-forest.dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Forest Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Forest Comment */ 6 | .hljs-comment { 7 | color: #9c9491; 8 | } 9 | 10 | /* Atelier-Forest Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #f22c40; 25 | } 26 | 27 | /* Atelier-Forest Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #df5320; 35 | } 36 | 37 | /* Atelier-Forest Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #c38418; 41 | } 42 | 43 | /* Atelier-Forest Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #7b9726; 51 | } 52 | 53 | /* Atelier-Forest Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #3d97b8; 57 | } 58 | 59 | /* Atelier-Forest Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #407ee7; 69 | } 70 | 71 | /* Atelier-Forest Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #6666ea; 75 | } 76 | 77 | .hljs { 78 | display: block; 79 | overflow-x: auto; 80 | background: #1b1918; 81 | color: #a8a19f; 82 | padding: 0.5em; 83 | -webkit-text-size-adjust: none; 84 | } 85 | 86 | .coffeescript .javascript, 87 | .javascript .xml, 88 | .tex .hljs-formula, 89 | .xml .javascript, 90 | .xml .vbscript, 91 | .xml .css, 92 | .xml .hljs-cdata { 93 | opacity: 0.5; 94 | } 95 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-forest.light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Forest Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Forest Comment */ 6 | .hljs-comment { 7 | color: #766e6b; 8 | } 9 | 10 | /* Atelier-Forest Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #f22c40; 25 | } 26 | 27 | /* Atelier-Forest Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #df5320; 35 | } 36 | 37 | /* Atelier-Forest Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #c38418; 41 | } 42 | 43 | /* Atelier-Forest Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #7b9726; 51 | } 52 | 53 | /* Atelier-Forest Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #3d97b8; 57 | } 58 | 59 | /* Atelier-Forest Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #407ee7; 69 | } 70 | 71 | /* Atelier-Forest Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #6666ea; 75 | } 76 | 77 | .hljs { 78 | display: block; 79 | overflow-x: auto; 80 | background: #f1efee; 81 | color: #68615e; 82 | padding: 0.5em; 83 | -webkit-text-size-adjust: none; 84 | } 85 | 86 | .coffeescript .javascript, 87 | .javascript .xml, 88 | .tex .hljs-formula, 89 | .xml .javascript, 90 | .xml .vbscript, 91 | .xml .css, 92 | .xml .hljs-cdata { 93 | opacity: 0.5; 94 | } 95 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-heath.dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Heath Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Heath Comment */ 6 | .hljs-comment { 7 | color: #9e8f9e; 8 | } 9 | 10 | /* Atelier-Heath Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #ca402b; 25 | } 26 | 27 | /* Atelier-Heath Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #a65926; 35 | } 36 | 37 | /* Atelier-Heath Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #bb8a35; 41 | } 42 | 43 | /* Atelier-Heath Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #918b3b; 51 | } 52 | 53 | /* Atelier-Heath Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #159393; 57 | } 58 | 59 | /* Atelier-Heath Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #516aec; 69 | } 70 | 71 | /* Atelier-Heath Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #7b59c0; 75 | } 76 | 77 | .hljs { 78 | display: block; 79 | overflow-x: auto; 80 | background: #1b181b; 81 | color: #ab9bab; 82 | padding: 0.5em; 83 | -webkit-text-size-adjust: none; 84 | } 85 | 86 | .coffeescript .javascript, 87 | .javascript .xml, 88 | .tex .hljs-formula, 89 | .xml .javascript, 90 | .xml .vbscript, 91 | .xml .css, 92 | .xml .hljs-cdata { 93 | opacity: 0.5; 94 | } 95 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-heath.light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Heath Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Heath Comment */ 6 | .hljs-comment { 7 | color: #776977; 8 | } 9 | 10 | /* Atelier-Heath Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #ca402b; 25 | } 26 | 27 | /* Atelier-Heath Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #a65926; 35 | } 36 | 37 | /* Atelier-Heath Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #bb8a35; 41 | } 42 | 43 | /* Atelier-Heath Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #918b3b; 51 | } 52 | 53 | /* Atelier-Heath Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #159393; 57 | } 58 | 59 | /* Atelier-Heath Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #516aec; 69 | } 70 | 71 | /* Atelier-Heath Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #7b59c0; 75 | } 76 | 77 | .hljs { 78 | display: block; 79 | overflow-x: auto; 80 | background: #f7f3f7; 81 | color: #695d69; 82 | padding: 0.5em; 83 | -webkit-text-size-adjust: none; 84 | } 85 | 86 | .coffeescript .javascript, 87 | .javascript .xml, 88 | .tex .hljs-formula, 89 | .xml .javascript, 90 | .xml .vbscript, 91 | .xml .css, 92 | .xml .hljs-cdata { 93 | opacity: 0.5; 94 | } 95 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-lakeside.dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Lakeside Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Lakeside Comment */ 6 | .hljs-comment { 7 | color: #7195a8; 8 | } 9 | 10 | /* Atelier-Lakeside Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #d22d72; 25 | } 26 | 27 | /* Atelier-Lakeside Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #935c25; 35 | } 36 | 37 | /* Atelier-Lakeside Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #8a8a0f; 41 | } 42 | 43 | /* Atelier-Lakeside Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #568c3b; 51 | } 52 | 53 | /* Atelier-Lakeside Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #2d8f6f; 57 | } 58 | 59 | /* Atelier-Lakeside Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #257fad; 69 | } 70 | 71 | /* Atelier-Lakeside Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #6b6bb8; 75 | } 76 | 77 | .hljs { 78 | display: block; 79 | overflow-x: auto; 80 | background: #161b1d; 81 | color: #7ea2b4; 82 | padding: 0.5em; 83 | -webkit-text-size-adjust: none; 84 | } 85 | 86 | .coffeescript .javascript, 87 | .javascript .xml, 88 | .tex .hljs-formula, 89 | .xml .javascript, 90 | .xml .vbscript, 91 | .xml .css, 92 | .xml .hljs-cdata { 93 | opacity: 0.5; 94 | } 95 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-lakeside.light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Lakeside Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Lakeside Comment */ 6 | .hljs-comment { 7 | color: #5a7b8c; 8 | } 9 | 10 | /* Atelier-Lakeside Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #d22d72; 25 | } 26 | 27 | /* Atelier-Lakeside Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #935c25; 35 | } 36 | 37 | /* Atelier-Lakeside Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #8a8a0f; 41 | } 42 | 43 | /* Atelier-Lakeside Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #568c3b; 51 | } 52 | 53 | /* Atelier-Lakeside Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #2d8f6f; 57 | } 58 | 59 | /* Atelier-Lakeside Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #257fad; 69 | } 70 | 71 | /* Atelier-Lakeside Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #6b6bb8; 75 | } 76 | 77 | .hljs { 78 | display: block; 79 | overflow-x: auto; 80 | background: #ebf8ff; 81 | color: #516d7b; 82 | padding: 0.5em; 83 | -webkit-text-size-adjust: none; 84 | } 85 | 86 | .coffeescript .javascript, 87 | .javascript .xml, 88 | .tex .hljs-formula, 89 | .xml .javascript, 90 | .xml .vbscript, 91 | .xml .css, 92 | .xml .hljs-cdata { 93 | opacity: 0.5; 94 | } 95 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-plateau.dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Plateau Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Plateau Comment */ 6 | .hljs-comment { 7 | color: #7e7777; 8 | } 9 | 10 | /* Atelier-Plateau Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #ca4949; 25 | } 26 | 27 | /* Atelier-Plateau Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #b45a3c; 35 | } 36 | 37 | /* Atelier-Plateau Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #a06e3b; 41 | } 42 | 43 | /* Atelier-Plateau Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #4b8b8b; 51 | } 52 | 53 | /* Atelier-Plateau Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #5485b6; 57 | } 58 | 59 | /* Atelier-Plateau Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #7272ca; 69 | } 70 | 71 | /* Atelier-Plateau Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #8464c4; 75 | } 76 | 77 | .diff .hljs-deletion, 78 | .diff .hljs-addition { 79 | color: #1b1818; 80 | display: inline-block; 81 | width: 100%; 82 | } 83 | 84 | .diff .hljs-deletion { 85 | background-color: #ca4949; 86 | } 87 | 88 | .diff .hljs-addition { 89 | background-color: #4b8b8b; 90 | } 91 | 92 | .diff .hljs-change { 93 | color: #7272ca; 94 | } 95 | 96 | .hljs { 97 | display: block; 98 | overflow-x: auto; 99 | background: #1b1818; 100 | color: #8a8585; 101 | padding: 0.5em; 102 | -webkit-text-size-adjust: none; 103 | } 104 | 105 | .coffeescript .javascript, 106 | .javascript .xml, 107 | .tex .hljs-formula, 108 | .xml .javascript, 109 | .xml .vbscript, 110 | .xml .css, 111 | .xml .hljs-cdata { 112 | opacity: 0.5; 113 | } 114 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-plateau.light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Plateau Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Plateau Comment */ 6 | .hljs-comment { 7 | color: #655d5d; 8 | } 9 | 10 | /* Atelier-Plateau Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #ca4949; 25 | } 26 | 27 | /* Atelier-Plateau Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #b45a3c; 35 | } 36 | 37 | /* Atelier-Plateau Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #a06e3b; 41 | } 42 | 43 | /* Atelier-Plateau Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #4b8b8b; 51 | } 52 | 53 | /* Atelier-Plateau Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #5485b6; 57 | } 58 | 59 | /* Atelier-Plateau Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #7272ca; 69 | } 70 | 71 | /* Atelier-Plateau Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #8464c4; 75 | } 76 | 77 | .diff .hljs-deletion, 78 | .diff .hljs-addition { 79 | color: #1b1818; 80 | display: inline-block; 81 | width: 100%; 82 | } 83 | 84 | .diff .hljs-deletion { 85 | background-color: #ca4949; 86 | } 87 | 88 | .diff .hljs-addition { 89 | background-color: #4b8b8b; 90 | } 91 | 92 | .diff .hljs-change { 93 | color: #7272ca; 94 | } 95 | 96 | .hljs { 97 | display: block; 98 | overflow-x: auto; 99 | background: #f4ecec; 100 | color: #585050; 101 | padding: 0.5em; 102 | -webkit-text-size-adjust: none; 103 | } 104 | 105 | .coffeescript .javascript, 106 | .javascript .xml, 107 | .tex .hljs-formula, 108 | .xml .javascript, 109 | .xml .vbscript, 110 | .xml .css, 111 | .xml .hljs-cdata { 112 | opacity: 0.5; 113 | } 114 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-savanna.dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Savanna Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Savanna Comment */ 6 | .hljs-comment { 7 | color: #78877d; 8 | } 9 | 10 | /* Atelier-Savanna Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #b16139; 25 | } 26 | 27 | /* Atelier-Savanna Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #9f713c; 35 | } 36 | 37 | /* Atelier-Savanna Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #a07e3b; 41 | } 42 | 43 | /* Atelier-Savanna Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #489963; 51 | } 52 | 53 | /* Atelier-Savanna Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #1c9aa0; 57 | } 58 | 59 | /* Atelier-Savanna Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #478c90; 69 | } 70 | 71 | /* Atelier-Savanna Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #55859b; 75 | } 76 | 77 | .diff .hljs-deletion, 78 | .diff .hljs-addition { 79 | color: #171c19; 80 | display: inline-block; 81 | width: 100%; 82 | } 83 | 84 | .diff .hljs-deletion { 85 | background-color: #b16139; 86 | } 87 | 88 | .diff .hljs-addition { 89 | background-color: #489963; 90 | } 91 | 92 | .diff .hljs-change { 93 | color: #478c90; 94 | } 95 | 96 | .hljs { 97 | display: block; 98 | overflow-x: auto; 99 | background: #171c19; 100 | color: #87928a; 101 | padding: 0.5em; 102 | -webkit-text-size-adjust: none; 103 | } 104 | 105 | .coffeescript .javascript, 106 | .javascript .xml, 107 | .tex .hljs-formula, 108 | .xml .javascript, 109 | .xml .vbscript, 110 | .xml .css, 111 | .xml .hljs-cdata { 112 | opacity: 0.5; 113 | } 114 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-savanna.light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Savanna Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Savanna Comment */ 6 | .hljs-comment { 7 | color: #5f6d64; 8 | } 9 | 10 | /* Atelier-Savanna Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #b16139; 25 | } 26 | 27 | /* Atelier-Savanna Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #9f713c; 35 | } 36 | 37 | /* Atelier-Savanna Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #a07e3b; 41 | } 42 | 43 | /* Atelier-Savanna Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #489963; 51 | } 52 | 53 | /* Atelier-Savanna Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #1c9aa0; 57 | } 58 | 59 | /* Atelier-Savanna Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #478c90; 69 | } 70 | 71 | /* Atelier-Savanna Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #55859b; 75 | } 76 | 77 | .diff .hljs-deletion, 78 | .diff .hljs-addition { 79 | color: #171c19; 80 | display: inline-block; 81 | width: 100%; 82 | } 83 | 84 | .diff .hljs-deletion { 85 | background-color: #b16139; 86 | } 87 | 88 | .diff .hljs-addition { 89 | background-color: #489963; 90 | } 91 | 92 | .diff .hljs-change { 93 | color: #478c90; 94 | } 95 | 96 | .hljs { 97 | display: block; 98 | overflow-x: auto; 99 | background: #ecf4ee; 100 | color: #526057; 101 | padding: 0.5em; 102 | -webkit-text-size-adjust: none; 103 | } 104 | 105 | .coffeescript .javascript, 106 | .javascript .xml, 107 | .tex .hljs-formula, 108 | .xml .javascript, 109 | .xml .vbscript, 110 | .xml .css, 111 | .xml .hljs-cdata { 112 | opacity: 0.5; 113 | } 114 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-seaside.dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Seaside Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Seaside Comment */ 6 | .hljs-comment { 7 | color: #809980; 8 | } 9 | 10 | /* Atelier-Seaside Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #e6193c; 25 | } 26 | 27 | /* Atelier-Seaside Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #87711d; 35 | } 36 | 37 | /* Atelier-Seaside Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #98981b; 41 | } 42 | 43 | /* Atelier-Seaside Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #29a329; 51 | } 52 | 53 | /* Atelier-Seaside Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #1999b3; 57 | } 58 | 59 | /* Atelier-Seaside Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #3d62f5; 69 | } 70 | 71 | /* Atelier-Seaside Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #ad2bee; 75 | } 76 | 77 | .hljs { 78 | display: block; 79 | overflow-x: auto; 80 | background: #131513; 81 | color: #8ca68c; 82 | padding: 0.5em; 83 | -webkit-text-size-adjust: none; 84 | } 85 | 86 | .coffeescript .javascript, 87 | .javascript .xml, 88 | .tex .hljs-formula, 89 | .xml .javascript, 90 | .xml .vbscript, 91 | .xml .css, 92 | .xml .hljs-cdata { 93 | opacity: 0.5; 94 | } 95 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-seaside.light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Seaside Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Seaside Comment */ 6 | .hljs-comment { 7 | color: #687d68; 8 | } 9 | 10 | /* Atelier-Seaside Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #e6193c; 25 | } 26 | 27 | /* Atelier-Seaside Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #87711d; 35 | } 36 | 37 | /* Atelier-Seaside Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #98981b; 41 | } 42 | 43 | /* Atelier-Seaside Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #29a329; 51 | } 52 | 53 | /* Atelier-Seaside Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #1999b3; 57 | } 58 | 59 | /* Atelier-Seaside Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #3d62f5; 69 | } 70 | 71 | /* Atelier-Seaside Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #ad2bee; 75 | } 76 | 77 | .hljs { 78 | display: block; 79 | overflow-x: auto; 80 | background: #f4fbf4; 81 | color: #5e6e5e; 82 | padding: 0.5em; 83 | -webkit-text-size-adjust: none; 84 | } 85 | 86 | .coffeescript .javascript, 87 | .javascript .xml, 88 | .tex .hljs-formula, 89 | .xml .javascript, 90 | .xml .vbscript, 91 | .xml .css, 92 | .xml .hljs-cdata { 93 | opacity: 0.5; 94 | } 95 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-sulphurpool.dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Sulphurpool Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Sulphurpool Comment */ 6 | .hljs-comment { 7 | color: #898ea4; 8 | } 9 | 10 | /* Atelier-Sulphurpool Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #c94922; 25 | } 26 | 27 | /* Atelier-Sulphurpool Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #c76b29; 35 | } 36 | 37 | /* Atelier-Sulphurpool Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #c08b30; 41 | } 42 | 43 | /* Atelier-Sulphurpool Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #ac9739; 51 | } 52 | 53 | /* Atelier-Sulphurpool Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #22a2c9; 57 | } 58 | 59 | /* Atelier-Sulphurpool Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #3d8fd1; 69 | } 70 | 71 | /* Atelier-Sulphurpool Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #6679cc; 75 | } 76 | 77 | .hljs { 78 | display: block; 79 | overflow-x: auto; 80 | background: #202746; 81 | color: #979db4; 82 | padding: 0.5em; 83 | -webkit-text-size-adjust: none; 84 | } 85 | 86 | .coffeescript .javascript, 87 | .javascript .xml, 88 | .tex .hljs-formula, 89 | .xml .javascript, 90 | .xml .vbscript, 91 | .xml .css, 92 | .xml .hljs-cdata { 93 | opacity: 0.5; 94 | } 95 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/atelier-sulphurpool.light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Sulphurpool Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Sulphurpool Comment */ 6 | .hljs-comment { 7 | color: #6b7394; 8 | } 9 | 10 | /* Atelier-Sulphurpool Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #c94922; 25 | } 26 | 27 | /* Atelier-Sulphurpool Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #c76b29; 35 | } 36 | 37 | /* Atelier-Sulphurpool Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #c08b30; 41 | } 42 | 43 | /* Atelier-Sulphurpool Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #ac9739; 51 | } 52 | 53 | /* Atelier-Sulphurpool Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #22a2c9; 57 | } 58 | 59 | /* Atelier-Sulphurpool Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #3d8fd1; 69 | } 70 | 71 | /* Atelier-Sulphurpool Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #6679cc; 75 | } 76 | 77 | .hljs { 78 | display: block; 79 | overflow-x: auto; 80 | background: #f5f7ff; 81 | color: #5e6687; 82 | padding: 0.5em; 83 | -webkit-text-size-adjust: none; 84 | } 85 | 86 | .coffeescript .javascript, 87 | .javascript .xml, 88 | .tex .hljs-formula, 89 | .xml .javascript, 90 | .xml .vbscript, 91 | .xml .css, 92 | .xml .hljs-cdata { 93 | opacity: 0.5; 94 | } 95 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/brown_paper.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Brown Paper style from goldblog.com.ua (c) Zaripov Yura 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background:#b7a68e url(./brown_papersq.png); 12 | -webkit-text-size-adjust: none; 13 | } 14 | 15 | .hljs-keyword, 16 | .hljs-literal, 17 | .hljs-change, 18 | .hljs-winutils, 19 | .hljs-flow, 20 | .nginx .hljs-title, 21 | .tex .hljs-special, 22 | .hljs-request, 23 | .hljs-status { 24 | color:#005599; 25 | font-weight:bold; 26 | } 27 | 28 | .hljs, 29 | .hljs-subst, 30 | .hljs-tag .hljs-keyword { 31 | color: #363c69; 32 | } 33 | 34 | .hljs-string, 35 | .hljs-title, 36 | .hljs-type, 37 | .hljs-tag .hljs-value, 38 | .css .hljs-rule .hljs-value, 39 | .hljs-preprocessor, 40 | .hljs-pragma, 41 | .ruby .hljs-symbol, 42 | .ruby .hljs-symbol .hljs-string, 43 | .ruby .hljs-class .hljs-parent, 44 | .hljs-built_in, 45 | .django .hljs-template_tag, 46 | .django .hljs-variable, 47 | .smalltalk .hljs-class, 48 | .ruby .hljs-string, 49 | .django .hljs-filter .hljs-argument, 50 | .smalltalk .hljs-localvars, 51 | .smalltalk .hljs-array, 52 | .hljs-attr_selector, 53 | .hljs-pseudo, 54 | .hljs-addition, 55 | .hljs-stream, 56 | .hljs-envvar, 57 | .apache .hljs-tag, 58 | .apache .hljs-cbracket, 59 | .tex .hljs-number, 60 | .hljs-name { 61 | color: #2c009f; 62 | } 63 | 64 | .hljs-comment, 65 | .hljs-annotation, 66 | .hljs-decorator, 67 | .hljs-pi, 68 | .hljs-doctype, 69 | .hljs-deletion, 70 | .hljs-shebang, 71 | .apache .hljs-sqbracket, 72 | .nginx .hljs-built_in, 73 | .tex .hljs-formula { 74 | color: #802022; 75 | } 76 | 77 | .hljs-keyword, 78 | .hljs-literal, 79 | .css .hljs-id, 80 | .hljs-doctag, 81 | .hljs-title, 82 | .hljs-type, 83 | .vbscript .hljs-built_in, 84 | .rsl .hljs-built_in, 85 | .smalltalk .hljs-class, 86 | .diff .hljs-header, 87 | .hljs-chunk, 88 | .hljs-winutils, 89 | .bash .hljs-variable, 90 | .apache .hljs-tag, 91 | .tex .hljs-command { 92 | font-weight: bold; 93 | } 94 | 95 | .coffeescript .javascript, 96 | .javascript .xml, 97 | .tex .hljs-formula, 98 | .xml .javascript, 99 | .xml .vbscript, 100 | .xml .css, 101 | .xml .hljs-cdata { 102 | opacity: 0.8; 103 | } 104 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/brown_papersq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/brown_papersq.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/codepen-embed.css: -------------------------------------------------------------------------------- 1 | /* 2 | codepen.io Embed Theme 3 | Author: Justin Perry 4 | Original theme - https://github.com/chriskempson/tomorrow-theme 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #222; 12 | color: #fff; 13 | font-family: Menlo, Monaco, 'Andale Mono', 'Lucida Console', 'Courier New', monospace; 14 | -webkit-text-size-adjust: none; 15 | } 16 | 17 | .hljs-comment, 18 | .hljs-title { 19 | color: #777; 20 | } 21 | 22 | .hljs-variable, 23 | .hljs-attribute, 24 | .hljs-tag, 25 | .hljs-regexp, 26 | .hljs-name, 27 | .ruby .constant, 28 | .xml .tag .title, 29 | .xml .pi, 30 | .xml .doctype, 31 | .html .doctype { 32 | color: #ab875d; 33 | } 34 | 35 | .css .value { 36 | color: #cd6a51; 37 | } 38 | 39 | .css .value .function, 40 | .css .value .string { 41 | color: #a67f59; 42 | } 43 | 44 | .css .value .number { 45 | color: #9b869c; 46 | } 47 | 48 | .css .id, 49 | .css .class, 50 | .css-pseudo, 51 | .css .selector, 52 | .css .tag { 53 | color: #dfc48c; 54 | } 55 | 56 | .hljs-number, 57 | .hljs-preprocessor, 58 | .hljs-built_in, 59 | .hljs-literal, 60 | .hljs-params, 61 | .hljs-constant { 62 | color: #ab875d; 63 | } 64 | 65 | .ruby .class .title, 66 | .css .rules .attribute { 67 | color: #9b869b; 68 | } 69 | 70 | .hljs-string, 71 | .hljs-value, 72 | .hljs-inheritance, 73 | .hljs-header, 74 | .ruby .symbol, 75 | .xml .cdata { 76 | color: #8f9c6c; 77 | } 78 | 79 | .css .hexcolor { 80 | color: #cd6a51; 81 | } 82 | 83 | .function, 84 | .python .decorator, 85 | .python .title, 86 | .ruby .function .title, 87 | .ruby .title .keyword, 88 | .perl .sub, 89 | .javascript .title, 90 | .coffeescript .title { 91 | color: #fff; 92 | } 93 | 94 | .hljs-keyword, 95 | .javascript .function { 96 | color: #8f9c6c; 97 | } 98 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Dark style from softwaremaniacs.org (c) Ivan Sagalaev 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #444; 12 | -webkit-text-size-adjust: none; 13 | } 14 | 15 | .hljs-keyword, 16 | .hljs-literal, 17 | .hljs-change, 18 | .hljs-winutils, 19 | .hljs-flow, 20 | .nginx .hljs-title, 21 | .tex .hljs-special { 22 | color: white; 23 | } 24 | 25 | .hljs, 26 | .hljs-subst { 27 | color: #ddd; 28 | } 29 | 30 | .hljs-string, 31 | .hljs-title, 32 | .hljs-type, 33 | .ini .hljs-title, 34 | .hljs-tag .hljs-value, 35 | .css .hljs-rule .hljs-value, 36 | .hljs-preprocessor, 37 | .hljs-pragma, 38 | .ruby .hljs-symbol, 39 | .ruby .hljs-symbol .hljs-string, 40 | .ruby .hljs-class .hljs-parent, 41 | .hljs-built_in, 42 | .django .hljs-template_tag, 43 | .django .hljs-variable, 44 | .smalltalk .hljs-class, 45 | .ruby .hljs-string, 46 | .django .hljs-filter .hljs-argument, 47 | .smalltalk .hljs-localvars, 48 | .smalltalk .hljs-array, 49 | .hljs-attr_selector, 50 | .hljs-pseudo, 51 | .hljs-addition, 52 | .hljs-stream, 53 | .hljs-envvar, 54 | .apache .hljs-tag, 55 | .apache .hljs-cbracket, 56 | .tex .hljs-command, 57 | .hljs-prompt, 58 | .coffeescript .hljs-attribute, 59 | .hljs-name { 60 | color: #d88; 61 | } 62 | 63 | .hljs-comment, 64 | .hljs-annotation, 65 | .hljs-decorator, 66 | .hljs-pi, 67 | .hljs-doctype, 68 | .hljs-deletion, 69 | .hljs-shebang, 70 | .apache .hljs-sqbracket, 71 | .tex .hljs-formula { 72 | color: #777; 73 | } 74 | 75 | .hljs-keyword, 76 | .hljs-literal, 77 | .hljs-title, 78 | .css .hljs-id, 79 | .hljs-doctag, 80 | .hljs-type, 81 | .vbscript .hljs-built_in, 82 | .rsl .hljs-built_in, 83 | .smalltalk .hljs-class, 84 | .diff .hljs-header, 85 | .hljs-chunk, 86 | .hljs-winutils, 87 | .bash .hljs-variable, 88 | .apache .hljs-tag, 89 | .tex .hljs-special, 90 | .hljs-request, 91 | .hljs-status { 92 | font-weight: bold; 93 | } 94 | 95 | .coffeescript .javascript, 96 | .javascript .xml, 97 | .tex .hljs-formula, 98 | .xml .javascript, 99 | .xml .vbscript, 100 | .xml .css, 101 | .xml .hljs-cdata { 102 | opacity: 0.5; 103 | } 104 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/docco.css: -------------------------------------------------------------------------------- 1 | /* 2 | Docco style used in http://jashkenas.github.com/docco/ converted by Simon Madine (@thingsinjars) 3 | */ 4 | 5 | .hljs { 6 | display: block; 7 | overflow-x: auto; 8 | padding: 0.5em; 9 | color: #000; 10 | background: #f8f8ff; 11 | -webkit-text-size-adjust: none; 12 | } 13 | 14 | .hljs-comment, 15 | .diff .hljs-header { 16 | color: #408080; 17 | font-style: italic; 18 | } 19 | 20 | .hljs-keyword, 21 | .assignment, 22 | .hljs-literal, 23 | .css .rule .hljs-keyword, 24 | .hljs-winutils, 25 | .javascript .hljs-title, 26 | .lisp .hljs-title, 27 | .hljs-subst { 28 | color: #954121; 29 | } 30 | 31 | .hljs-number, 32 | .hljs-hexcolor { 33 | color: #40a070; 34 | } 35 | 36 | .hljs-string, 37 | .hljs-tag .hljs-value, 38 | .hljs-doctag, 39 | .tex .hljs-formula, 40 | .hljs-name { 41 | color: #219161; 42 | } 43 | 44 | .hljs-title, 45 | .hljs-id { 46 | color: #19469d; 47 | } 48 | .hljs-params { 49 | color: #00f; 50 | } 51 | 52 | .javascript .hljs-title, 53 | .lisp .hljs-title, 54 | .hljs-subst { 55 | font-weight: normal; 56 | } 57 | 58 | .hljs-class .hljs-title, 59 | .haskell .hljs-label, 60 | .tex .hljs-command { 61 | color: #458; 62 | font-weight: bold; 63 | } 64 | 65 | .hljs-tag, 66 | .hljs-tag .hljs-title, 67 | .hljs-rule .hljs-property, 68 | .django .hljs-tag .hljs-keyword { 69 | color: #000080; 70 | font-weight: normal; 71 | } 72 | 73 | .hljs-attribute, 74 | .hljs-variable, 75 | .instancevar, 76 | .lisp .hljs-body { 77 | color: #008080; 78 | } 79 | 80 | .hljs-regexp { 81 | color: #b68; 82 | } 83 | 84 | .hljs-class { 85 | color: #458; 86 | font-weight: bold; 87 | } 88 | 89 | .hljs-symbol, 90 | .ruby .hljs-symbol .hljs-string, 91 | .ruby .hljs-symbol .hljs-keyword, 92 | .ruby .hljs-symbol .keymethods, 93 | .lisp .hljs-keyword, 94 | .tex .hljs-special, 95 | .input_number { 96 | color: #990073; 97 | } 98 | 99 | .builtin, 100 | .constructor, 101 | .hljs-built_in, 102 | .lisp .hljs-title { 103 | color: #0086b3; 104 | } 105 | 106 | .hljs-preprocessor, 107 | .hljs-pragma, 108 | .hljs-pi, 109 | .hljs-doctype, 110 | .hljs-shebang, 111 | .hljs-cdata { 112 | color: #999; 113 | font-weight: bold; 114 | } 115 | 116 | .hljs-deletion { 117 | background: #fdd; 118 | } 119 | 120 | .hljs-addition { 121 | background: #dfd; 122 | } 123 | 124 | .diff .hljs-change { 125 | background: #0086b3; 126 | } 127 | 128 | .hljs-chunk { 129 | color: #aaa; 130 | } 131 | 132 | .tex .hljs-formula { 133 | opacity: 0.5; 134 | } 135 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/far.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | FAR Style (c) MajestiC 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #000080; 12 | -webkit-text-size-adjust: none; 13 | } 14 | 15 | .hljs, 16 | .hljs-subst { 17 | color: #0ff; 18 | } 19 | 20 | .hljs-string, 21 | .ruby .hljs-string, 22 | .haskell .hljs-type, 23 | .hljs-tag .hljs-value, 24 | .hljs-rule .hljs-value, 25 | .hljs-rule .hljs-value .hljs-number, 26 | .hljs-preprocessor, 27 | .hljs-pragma, 28 | .ruby .hljs-symbol, 29 | .ruby .hljs-symbol .hljs-string, 30 | .hljs-built_in, 31 | .django .hljs-template_tag, 32 | .django .hljs-variable, 33 | .smalltalk .hljs-class, 34 | .hljs-addition, 35 | .apache .hljs-tag, 36 | .apache .hljs-cbracket, 37 | .tex .hljs-command, 38 | .coffeescript .hljs-attribute { 39 | color: #ff0; 40 | } 41 | 42 | .hljs-keyword, 43 | .css .hljs-id, 44 | .hljs-title, 45 | .hljs-type, 46 | .vbscript .hljs-built_in, 47 | .rsl .hljs-built_in, 48 | .smalltalk .hljs-class, 49 | .xml .hljs-tag .hljs-title, 50 | .hljs-winutils, 51 | .hljs-flow, 52 | .hljs-change, 53 | .hljs-envvar, 54 | .bash .hljs-variable, 55 | .tex .hljs-special, 56 | .hljs-name { 57 | color: #fff; 58 | } 59 | 60 | .hljs-comment, 61 | .hljs-doctag, 62 | .hljs-annotation, 63 | .hljs-deletion, 64 | .apache .hljs-sqbracket, 65 | .tex .hljs-formula { 66 | color: #888; 67 | } 68 | 69 | .hljs-number, 70 | .hljs-date, 71 | .hljs-regexp, 72 | .hljs-literal, 73 | .smalltalk .hljs-symbol, 74 | .smalltalk .hljs-char, 75 | .clojure .hljs-attribute { 76 | color: #0f0; 77 | } 78 | 79 | .hljs-decorator, 80 | .django .hljs-filter .hljs-argument, 81 | .smalltalk .hljs-localvars, 82 | .smalltalk .hljs-array, 83 | .hljs-attr_selector, 84 | .hljs-pseudo, 85 | .xml .hljs-pi, 86 | .diff .hljs-header, 87 | .hljs-chunk, 88 | .hljs-shebang, 89 | .nginx .hljs-built_in, 90 | .hljs-prompt { 91 | color: #008080; 92 | } 93 | 94 | .hljs-keyword, 95 | .css .hljs-id, 96 | .hljs-title, 97 | .hljs-type, 98 | .vbscript .hljs-built_in, 99 | .rsl .hljs-built_in, 100 | .smalltalk .hljs-class, 101 | .hljs-winutils, 102 | .hljs-flow, 103 | .apache .hljs-tag, 104 | .nginx .hljs-built_in, 105 | .tex .hljs-command, 106 | .tex .hljs-special, 107 | .hljs-request, 108 | .hljs-status { 109 | font-weight: bold; 110 | } 111 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/foundation.css: -------------------------------------------------------------------------------- 1 | /* 2 | Description: Foundation 4 docs style for highlight.js 3 | Author: Dan Allen 4 | Website: http://foundation.zurb.com/docs/ 5 | Version: 1.0 6 | Date: 2013-04-02 7 | */ 8 | 9 | .hljs { 10 | display: block; 11 | overflow-x: auto; 12 | padding: 0.5em; 13 | background: #eee; 14 | -webkit-text-size-adjust: none; 15 | } 16 | 17 | .hljs-header, 18 | .hljs-decorator, 19 | .hljs-annotation { 20 | color: #000077; 21 | } 22 | 23 | .hljs-horizontal_rule, 24 | .hljs-link_url, 25 | .hljs-emphasis, 26 | .hljs-attribute { 27 | color: #070; 28 | } 29 | 30 | .hljs-emphasis { 31 | font-style: italic; 32 | } 33 | 34 | .hljs-link_label, 35 | .hljs-strong, 36 | .hljs-value, 37 | .hljs-string, 38 | .scss .hljs-value .hljs-string { 39 | color: #d14; 40 | } 41 | 42 | .hljs-strong { 43 | font-weight: bold; 44 | } 45 | 46 | .hljs-blockquote, 47 | .hljs-comment { 48 | color: #998; 49 | font-style: italic; 50 | } 51 | 52 | .asciidoc .hljs-title, 53 | .hljs-function .hljs-title { 54 | color: #900; 55 | } 56 | 57 | .hljs-class { 58 | color: #458; 59 | } 60 | 61 | .hljs-id, 62 | .hljs-pseudo, 63 | .hljs-constant, 64 | .hljs-hexcolor { 65 | color: teal; 66 | } 67 | 68 | .hljs-variable { 69 | color: #336699; 70 | } 71 | 72 | .hljs-bullet { 73 | color: #997700; 74 | } 75 | 76 | .hljs-pi, 77 | .hljs-doctype { 78 | color: #3344bb; 79 | } 80 | 81 | .hljs-code, 82 | .hljs-number { 83 | color: #099; 84 | } 85 | 86 | .hljs-important { 87 | color: #f00; 88 | } 89 | 90 | .smartquote, 91 | .hljs-label { 92 | color: #970; 93 | } 94 | 95 | .hljs-preprocessor, 96 | .hljs-pragma { 97 | color: #579; 98 | } 99 | 100 | .hljs-reserved, 101 | .hljs-keyword, 102 | .scss .hljs-value { 103 | color: #000; 104 | } 105 | 106 | .hljs-regexp { 107 | background-color: #fff0ff; 108 | color: #880088; 109 | } 110 | 111 | .hljs-symbol { 112 | color: #990073; 113 | } 114 | 115 | .hljs-symbol .hljs-string { 116 | color: #a60; 117 | } 118 | 119 | .hljs-tag { 120 | color: #007700; 121 | } 122 | 123 | .hljs-at_rule, 124 | .hljs-at_rule .hljs-keyword { 125 | color: #088; 126 | } 127 | 128 | .hljs-at_rule .hljs-preprocessor { 129 | color: #808; 130 | } 131 | 132 | .scss .hljs-tag, 133 | .scss .hljs-attribute { 134 | color: #339; 135 | } 136 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/github.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | github.com style (c) Vasily Polovnyov 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | color: #333; 12 | background: #f8f8f8; 13 | -webkit-text-size-adjust: none; 14 | } 15 | 16 | .hljs-comment, 17 | .diff .hljs-header { 18 | color: #998; 19 | font-style: italic; 20 | } 21 | 22 | .hljs-keyword, 23 | .css .rule .hljs-keyword, 24 | .hljs-winutils, 25 | .nginx .hljs-title, 26 | .hljs-subst, 27 | .hljs-request, 28 | .hljs-status { 29 | color: #333; 30 | font-weight: bold; 31 | } 32 | 33 | .hljs-number, 34 | .hljs-hexcolor, 35 | .ruby .hljs-constant { 36 | color: #008080; 37 | } 38 | 39 | .hljs-string, 40 | .hljs-tag .hljs-value, 41 | .hljs-doctag, 42 | .tex .hljs-formula { 43 | color: #d14; 44 | } 45 | 46 | .hljs-title, 47 | .hljs-id, 48 | .scss .hljs-preprocessor { 49 | color: #900; 50 | font-weight: bold; 51 | } 52 | 53 | .hljs-list .hljs-keyword, 54 | .hljs-subst { 55 | font-weight: normal; 56 | } 57 | 58 | .hljs-class .hljs-title, 59 | .hljs-type, 60 | .vhdl .hljs-literal, 61 | .tex .hljs-command { 62 | color: #458; 63 | font-weight: bold; 64 | } 65 | 66 | .hljs-tag, 67 | .hljs-tag .hljs-title, 68 | .hljs-rule .hljs-property, 69 | .django .hljs-tag .hljs-keyword { 70 | color: #000080; 71 | font-weight: normal; 72 | } 73 | 74 | .hljs-attribute, 75 | .hljs-variable, 76 | .lisp .hljs-body, 77 | .hljs-name { 78 | color: #008080; 79 | } 80 | 81 | .hljs-regexp { 82 | color: #009926; 83 | } 84 | 85 | .hljs-symbol, 86 | .ruby .hljs-symbol .hljs-string, 87 | .lisp .hljs-keyword, 88 | .clojure .hljs-keyword, 89 | .scheme .hljs-keyword, 90 | .tex .hljs-special, 91 | .hljs-prompt { 92 | color: #990073; 93 | } 94 | 95 | .hljs-built_in { 96 | color: #0086b3; 97 | } 98 | 99 | .hljs-preprocessor, 100 | .hljs-pragma, 101 | .hljs-pi, 102 | .hljs-doctype, 103 | .hljs-shebang, 104 | .hljs-cdata { 105 | color: #999; 106 | font-weight: bold; 107 | } 108 | 109 | .hljs-deletion { 110 | background: #fdd; 111 | } 112 | 113 | .hljs-addition { 114 | background: #dfd; 115 | } 116 | 117 | .diff .hljs-change { 118 | background: #0086b3; 119 | } 120 | 121 | .hljs-chunk { 122 | color: #aaa; 123 | } 124 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/hopscotch.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Hopscotch 3 | * by Jan T. Sott 4 | * https://github.com/idleberg/Hopscotch 5 | * 6 | * This work is licensed under the Creative Commons CC0 1.0 Universal License 7 | */ 8 | 9 | /* Comment */ 10 | .hljs-comment, 11 | .hljs-title { 12 | color: #989498; 13 | } 14 | 15 | /* Red */ 16 | .hljs-variable, 17 | .hljs-attribute, 18 | .hljs-tag, 19 | .hljs-regexp, 20 | .ruby .hljs-constant, 21 | .xml .hljs-tag .hljs-title, 22 | .xml .hljs-pi, 23 | .xml .hljs-doctype, 24 | .html .hljs-doctype, 25 | .css .hljs-id, 26 | .css .hljs-class, 27 | .css .hljs-pseudo { 28 | color: #dd464c; 29 | } 30 | 31 | /* Orange */ 32 | .hljs-number, 33 | .hljs-preprocessor, 34 | .hljs-built_in, 35 | .hljs-literal, 36 | .hljs-params, 37 | .hljs-constant { 38 | color: #fd8b19; 39 | } 40 | 41 | /* Yellow */ 42 | .ruby .hljs-class .hljs-title, 43 | .css .hljs-rules .hljs-attribute { 44 | color: #fdcc59; 45 | } 46 | 47 | /* Green */ 48 | .hljs-string, 49 | .hljs-value, 50 | .hljs-inheritance, 51 | .hljs-header, 52 | .ruby .hljs-symbol, 53 | .xml .hljs-cdata { 54 | color: #8fc13e; 55 | } 56 | 57 | /* Aqua */ 58 | .css .hljs-hexcolor { 59 | color: #149b93; 60 | } 61 | 62 | /* Blue */ 63 | .hljs-function, 64 | .python .hljs-decorator, 65 | .python .hljs-title, 66 | .ruby .hljs-function .hljs-title, 67 | .ruby .hljs-title .hljs-keyword, 68 | .perl .hljs-sub, 69 | .javascript .hljs-title, 70 | .coffeescript .hljs-title { 71 | color: #1290bf; 72 | } 73 | 74 | /* Purple */ 75 | .hljs-keyword, 76 | .javascript .hljs-function { 77 | color: #c85e7c; 78 | } 79 | 80 | .hljs { 81 | display: block; 82 | background: #322931; 83 | color: #b9b5b8; 84 | padding: 0.5em; 85 | } 86 | 87 | .coffeescript .javascript, 88 | .javascript .xml, 89 | .tex .hljs-formula, 90 | .xml .javascript, 91 | .xml .vbscript, 92 | .xml .css, 93 | .xml .hljs-cdata { 94 | opacity: 0.5; 95 | } 96 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/idea.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Intellij Idea-like styling (c) Vasily Polovnyov 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | color: #000; 12 | background: #fff; 13 | -webkit-text-size-adjust: none; 14 | } 15 | 16 | .hljs-subst, 17 | .hljs-title, 18 | .json .hljs-value { 19 | font-weight: normal; 20 | color: #000; 21 | } 22 | 23 | .hljs-comment, 24 | .diff .hljs-header { 25 | color: #808080; 26 | font-style: italic; 27 | } 28 | 29 | .hljs-annotation, 30 | .hljs-decorator, 31 | .hljs-preprocessor, 32 | .hljs-pragma, 33 | .hljs-doctype, 34 | .hljs-pi, 35 | .hljs-chunk, 36 | .hljs-shebang, 37 | .apache .hljs-cbracket, 38 | .hljs-prompt, 39 | .http .hljs-title { 40 | color: #808000; 41 | } 42 | 43 | .hljs-tag, 44 | .hljs-pi { 45 | background: #efefef; 46 | } 47 | 48 | .hljs-tag .hljs-title, 49 | .hljs-id, 50 | .hljs-attr_selector, 51 | .hljs-pseudo, 52 | .hljs-literal, 53 | .hljs-keyword, 54 | .hljs-hexcolor, 55 | .css .hljs-function, 56 | .ini .hljs-title, 57 | .css .hljs-class, 58 | .hljs-list .hljs-keyword, 59 | .nginx .hljs-title, 60 | .tex .hljs-command, 61 | .hljs-request, 62 | .hljs-status { 63 | font-weight: bold; 64 | color: #000080; 65 | } 66 | 67 | .hljs-attribute, 68 | .hljs-rule .hljs-keyword, 69 | .hljs-number, 70 | .hljs-date, 71 | .hljs-regexp, 72 | .tex .hljs-special { 73 | font-weight: bold; 74 | color: #0000ff; 75 | } 76 | 77 | .hljs-number, 78 | .hljs-regexp { 79 | font-weight: normal; 80 | } 81 | 82 | .hljs-string, 83 | .hljs-value, 84 | .hljs-filter .hljs-argument, 85 | .css .hljs-function .hljs-params, 86 | .apache .hljs-tag { 87 | color: #008000; 88 | font-weight: bold; 89 | } 90 | 91 | .hljs-symbol, 92 | .ruby .hljs-symbol .hljs-string, 93 | .hljs-char, 94 | .tex .hljs-formula { 95 | color: #000; 96 | background: #d0eded; 97 | font-style: italic; 98 | } 99 | 100 | .hljs-doctag { 101 | text-decoration: underline; 102 | } 103 | 104 | .hljs-variable, 105 | .hljs-envvar, 106 | .apache .hljs-sqbracket, 107 | .nginx .hljs-built_in, 108 | .hljs-name { 109 | color: #660e7a; 110 | } 111 | 112 | .hljs-addition { 113 | background: #baeeba; 114 | } 115 | 116 | .hljs-deletion { 117 | background: #ffc8bd; 118 | } 119 | 120 | .diff .hljs-change { 121 | background: #bccff9; 122 | } 123 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/ir_black.css: -------------------------------------------------------------------------------- 1 | /* 2 | IR_Black style (c) Vasily Mikhailitchenko 3 | */ 4 | 5 | .hljs { 6 | display: block; 7 | overflow-x: auto; 8 | padding: 0.5em; 9 | background: #000; 10 | color: #f8f8f8; 11 | -webkit-text-size-adjust: none; 12 | } 13 | 14 | .hljs-shebang, 15 | .hljs-comment { 16 | color: #7c7c7c; 17 | } 18 | 19 | .hljs-keyword, 20 | .hljs-tag, 21 | .tex .hljs-command, 22 | .hljs-request, 23 | .hljs-status, 24 | .clojure .hljs-attribute { 25 | color: #96cbfe; 26 | } 27 | 28 | .hljs-sub .hljs-keyword, 29 | .method, 30 | .hljs-list .hljs-title, 31 | .nginx .hljs-title { 32 | color: #ffffb6; 33 | } 34 | 35 | .hljs-string, 36 | .hljs-tag .hljs-value, 37 | .hljs-cdata, 38 | .hljs-filter .hljs-argument, 39 | .hljs-attr_selector, 40 | .apache .hljs-cbracket, 41 | .hljs-date, 42 | .coffeescript .hljs-attribute { 43 | color: #a8ff60; 44 | } 45 | 46 | .hljs-subst { 47 | color: #daefa3; 48 | } 49 | 50 | .hljs-regexp { 51 | color: #e9c062; 52 | } 53 | 54 | .hljs-title, 55 | .hljs-sub .hljs-identifier, 56 | .hljs-pi, 57 | .hljs-decorator, 58 | .tex .hljs-special, 59 | .hljs-type, 60 | .hljs-constant, 61 | .smalltalk .hljs-class, 62 | .hljs-doctag, 63 | .nginx .hljs-built_in { 64 | color: #ffffb6; 65 | } 66 | 67 | .hljs-symbol, 68 | .ruby .hljs-symbol .hljs-string, 69 | .hljs-number, 70 | .hljs-variable, 71 | .vbscript, 72 | .hljs-literal, 73 | .hljs-name { 74 | color: #c6c5fe; 75 | } 76 | 77 | .css .hljs-tag { 78 | color: #96cbfe; 79 | } 80 | 81 | .css .hljs-rule .hljs-property, 82 | .css .hljs-id { 83 | color: #ffffb6; 84 | } 85 | 86 | .css .hljs-class { 87 | color: #fff; 88 | } 89 | 90 | .hljs-hexcolor { 91 | color: #c6c5fe; 92 | } 93 | 94 | .hljs-number { 95 | color:#ff73fd; 96 | } 97 | 98 | .coffeescript .javascript, 99 | .javascript .xml, 100 | .tex .hljs-formula, 101 | .xml .javascript, 102 | .xml .vbscript, 103 | .xml .css, 104 | .xml .hljs-cdata { 105 | opacity: 0.7; 106 | } 107 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/kimbie.dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | Name: Kimbie (dark) 3 | Author: Jan T. Sott 4 | License: Creative Commons Attribution-ShareAlike 4.0 Unported License 5 | URL: https://github.com/idleberg/Kimbie-highlight.js 6 | */ 7 | 8 | /* Kimbie Comment */ 9 | .hljs-comment, 10 | .hljs-title { 11 | color: #d6baad; 12 | } 13 | 14 | /* Kimbie Red */ 15 | .hljs-variable, 16 | .hljs-attribute, 17 | .hljs-tag, 18 | .hljs-regexp, 19 | .hljs-name, 20 | .ruby .hljs-constant, 21 | .xml .hljs-tag .hljs-title, 22 | .xml .hljs-pi, 23 | .xml .hljs-doctype, 24 | .html .hljs-doctype, 25 | .css .hljs-id, 26 | .css .hljs-class, 27 | .css .hljs-pseudo { 28 | color: #dc3958; 29 | } 30 | 31 | /* Kimbie Orange */ 32 | .hljs-number, 33 | .hljs-preprocessor, 34 | .hljs-built_in, 35 | .hljs-literal, 36 | .hljs-params, 37 | .hljs-constant { 38 | color: #f79a32; 39 | } 40 | 41 | /* Kimbie Yellow */ 42 | .ruby .hljs-class .hljs-title, 43 | .css .hljs-rule .hljs-attribute { 44 | color: #f06431; 45 | } 46 | 47 | /* Kimbie Green */ 48 | .hljs-string, 49 | .hljs-value, 50 | .hljs-inheritance, 51 | .hljs-header, 52 | .ruby .hljs-symbol, 53 | .xml .hljs-cdata { 54 | color: #889b4a; 55 | } 56 | 57 | /* Kimbie Aqua */ 58 | .css .hljs-hexcolor { 59 | color: #088649; 60 | } 61 | 62 | /* Kimbie Blue */ 63 | .hljs-function, 64 | .python .hljs-decorator, 65 | .python .hljs-title, 66 | .ruby .hljs-function .hljs-title, 67 | .ruby .hljs-title .hljs-keyword, 68 | .perl .hljs-sub, 69 | .javascript .hljs-title, 70 | .coffeescript .hljs-title { 71 | color: #8ab1b0; 72 | } 73 | 74 | /* Kimbie Purple */ 75 | .hljs-keyword, 76 | .javascript .hljs-function { 77 | color: #98676a; 78 | } 79 | 80 | .hljs { 81 | display: block; 82 | overflow-x: auto; 83 | background: #221a0f; 84 | color: #d3af86; 85 | padding: 0.5em; 86 | -webkit-text-size-adjust: none; 87 | } 88 | 89 | .coffeescript .javascript, 90 | .javascript .xml, 91 | .tex .hljs-formula, 92 | .xml .javascript, 93 | .xml .vbscript, 94 | .xml .css, 95 | .xml .hljs-cdata { 96 | opacity: 0.5; 97 | } 98 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/kimbie.light.css: -------------------------------------------------------------------------------- 1 | /* 2 | Name: Kimbie (light) 3 | Author: Jan T. Sott 4 | License: Creative Commons Attribution-ShareAlike 4.0 Unported License 5 | URL: https://github.com/idleberg/Kimbie-highlight.js 6 | */ 7 | 8 | /* Kimbie Comment */ 9 | .hljs-comment, 10 | .hljs-title { 11 | color: #a57a4c; 12 | } 13 | 14 | /* Kimbie Red */ 15 | .hljs-variable, 16 | .hljs-attribute, 17 | .hljs-tag, 18 | .hljs-regexp, 19 | .hljs-name, 20 | .ruby .hljs-constant, 21 | .xml .hljs-tag .hljs-title, 22 | .xml .hljs-pi, 23 | .xml .hljs-doctype, 24 | .html .hljs-doctype, 25 | .css .hljs-id, 26 | .css .hljs-class, 27 | .css .hljs-pseudo { 28 | color: #dc3958; 29 | } 30 | 31 | /* Kimbie Orange */ 32 | .hljs-number, 33 | .hljs-preprocessor, 34 | .hljs-built_in, 35 | .hljs-literal, 36 | .hljs-params, 37 | .hljs-constant { 38 | color: #f79a32; 39 | } 40 | 41 | /* Kimbie Yellow */ 42 | .ruby .hljs-class .hljs-title, 43 | .css .hljs-rule .hljs-attribute { 44 | color: #f06431; 45 | } 46 | 47 | /* Kimbie Green */ 48 | .hljs-string, 49 | .hljs-value, 50 | .hljs-inheritance, 51 | .hljs-header, 52 | .ruby .hljs-symbol, 53 | .xml .hljs-cdata { 54 | color: #889b4a; 55 | } 56 | 57 | /* Kimbie Aqua */ 58 | .css .hljs-hexcolor { 59 | color: #088649; 60 | } 61 | 62 | /* Kimbie Blue */ 63 | .hljs-function, 64 | .python .hljs-decorator, 65 | .python .hljs-title, 66 | .ruby .hljs-function .hljs-title, 67 | .ruby .hljs-title .hljs-keyword, 68 | .perl .hljs-sub, 69 | .javascript .hljs-title, 70 | .coffeescript .hljs-title { 71 | color: #8ab1b0; 72 | } 73 | 74 | /* Kimbie Purple */ 75 | .hljs-keyword, 76 | .javascript .hljs-function { 77 | color: #98676a; 78 | } 79 | 80 | .hljs { 81 | display: block; 82 | overflow-x: auto; 83 | background: #fbebd4; 84 | color: #84613d; 85 | padding: 0.5em; 86 | -webkit-text-size-adjust: none; 87 | } 88 | 89 | .coffeescript .javascript, 90 | .javascript .xml, 91 | .tex .hljs-formula, 92 | .xml .javascript, 93 | .xml .vbscript, 94 | .xml .css, 95 | .xml .hljs-cdata { 96 | opacity: 0.5; 97 | } 98 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/magula.css: -------------------------------------------------------------------------------- 1 | /* 2 | Description: Magula style for highligh.js 3 | Author: Ruslan Keba 4 | Website: http://rukeba.com/ 5 | Version: 1.0 6 | Date: 2009-01-03 7 | Music: Aphex Twin / Xtal 8 | */ 9 | 10 | .hljs { 11 | display: block; 12 | overflow-x: auto; 13 | padding: 0.5em; 14 | background-color: #f4f4f4; 15 | -webkit-text-size-adjust: none; 16 | } 17 | 18 | .hljs, 19 | .hljs-subst { 20 | color: black; 21 | } 22 | 23 | .hljs-string, 24 | .hljs-title, 25 | .hljs-parent, 26 | .hljs-tag .hljs-value, 27 | .hljs-rule .hljs-value, 28 | .hljs-preprocessor, 29 | .hljs-pragma, 30 | .ruby .hljs-symbol, 31 | .ruby .hljs-symbol .hljs-string, 32 | .hljs-template_tag, 33 | .django .hljs-variable, 34 | .smalltalk .hljs-class, 35 | .hljs-addition, 36 | .hljs-flow, 37 | .hljs-stream, 38 | .bash .hljs-variable, 39 | .apache .hljs-cbracket, 40 | .coffeescript .hljs-attribute { 41 | color: #050; 42 | } 43 | 44 | .hljs-comment, 45 | .hljs-annotation, 46 | .diff .hljs-header, 47 | .hljs-chunk { 48 | color: #777; 49 | } 50 | 51 | .hljs-number, 52 | .hljs-date, 53 | .hljs-regexp, 54 | .hljs-literal, 55 | .hljs-name, 56 | .smalltalk .hljs-symbol, 57 | .smalltalk .hljs-char, 58 | .hljs-change, 59 | .tex .hljs-special { 60 | color: #800; 61 | } 62 | 63 | .hljs-label, 64 | .ruby .hljs-string, 65 | .hljs-decorator, 66 | .hljs-filter .hljs-argument, 67 | .hljs-localvars, 68 | .hljs-array, 69 | .hljs-attr_selector, 70 | .hljs-pseudo, 71 | .hljs-pi, 72 | .hljs-doctype, 73 | .hljs-deletion, 74 | .hljs-envvar, 75 | .hljs-shebang, 76 | .apache .hljs-sqbracket, 77 | .nginx .hljs-built_in, 78 | .tex .hljs-formula, 79 | .hljs-prompt, 80 | .clojure .hljs-attribute { 81 | color: #00e; 82 | } 83 | 84 | .hljs-keyword, 85 | .hljs-id, 86 | .hljs-doctag, 87 | .hljs-title, 88 | .hljs-built_in, 89 | .smalltalk .hljs-class, 90 | .hljs-winutils, 91 | .bash .hljs-variable, 92 | .apache .hljs-tag, 93 | .xml .hljs-tag, 94 | .tex .hljs-command, 95 | .hljs-request, 96 | .hljs-status { 97 | font-weight: bold; 98 | color: navy; 99 | } 100 | 101 | .nginx .hljs-built_in { 102 | font-weight: normal; 103 | } 104 | 105 | .coffeescript .javascript, 106 | .javascript .xml, 107 | .tex .hljs-formula, 108 | .xml .javascript, 109 | .xml .vbscript, 110 | .xml .css, 111 | .xml .hljs-cdata { 112 | opacity: 0.5; 113 | } 114 | 115 | /* --- */ 116 | .apache .hljs-tag { 117 | font-weight: bold; 118 | color: blue; 119 | } 120 | 121 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/mono-blue.css: -------------------------------------------------------------------------------- 1 | /* 2 | Five-color theme from a single blue hue. 3 | */ 4 | .hljs { 5 | display: block; 6 | overflow-x: auto; 7 | padding: 0.5em; 8 | background: #eaeef3; 9 | -webkit-text-size-adjust: none; 10 | } 11 | 12 | .hljs, 13 | .hljs-list .hljs-built_in { 14 | color: #00193a; 15 | } 16 | 17 | .hljs-keyword, 18 | .hljs-title, 19 | .hljs-important, 20 | .hljs-request, 21 | .hljs-header, 22 | .hljs-doctag { 23 | font-weight: bold; 24 | } 25 | 26 | .hljs-comment, 27 | .hljs-chunk { 28 | color: #738191; 29 | } 30 | 31 | .hljs-string, 32 | .hljs-title, 33 | .hljs-parent, 34 | .hljs-built_in, 35 | .hljs-literal, 36 | .hljs-filename, 37 | .hljs-value, 38 | .hljs-addition, 39 | .hljs-tag, 40 | .hljs-argument, 41 | .hljs-link_label, 42 | .hljs-blockquote, 43 | .hljs-header, 44 | .hljs-name { 45 | color: #0048ab; 46 | } 47 | 48 | .hljs-decorator, 49 | .hljs-prompt, 50 | .hljs-subst, 51 | .hljs-symbol, 52 | .hljs-doctype, 53 | .hljs-regexp, 54 | .hljs-preprocessor, 55 | .hljs-pragma, 56 | .hljs-pi, 57 | .hljs-attribute, 58 | .hljs-attr_selector, 59 | .hljs-xmlDocTag, 60 | .hljs-deletion, 61 | .hljs-shebang, 62 | .hljs-string .hljs-variable, 63 | .hljs-link_url, 64 | .hljs-bullet, 65 | .hljs-sqbracket, 66 | .hljs-phony { 67 | color: #4c81c9; 68 | } 69 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/monokai.css: -------------------------------------------------------------------------------- 1 | /* 2 | Monokai style - ported by Luigi Maselli - http://grigio.org 3 | */ 4 | 5 | .hljs { 6 | display: block; 7 | overflow-x: auto; 8 | padding: 0.5em; 9 | background: #272822; 10 | -webkit-text-size-adjust: none; 11 | } 12 | 13 | .hljs-tag, 14 | .hljs-tag .hljs-title, 15 | .hljs-keyword, 16 | .hljs-literal, 17 | .hljs-strong, 18 | .hljs-change, 19 | .hljs-winutils, 20 | .hljs-flow, 21 | .nginx .hljs-title, 22 | .tex .hljs-special { 23 | color: #f92672; 24 | } 25 | 26 | .hljs { 27 | color: #ddd; 28 | } 29 | 30 | .hljs .hljs-constant, 31 | .asciidoc .hljs-code, 32 | .markdown .hljs-code { 33 | color: #66d9ef; 34 | } 35 | 36 | .hljs-code, 37 | .hljs-class .hljs-title, 38 | .hljs-header { 39 | color: white; 40 | } 41 | 42 | .hljs-link_label, 43 | .hljs-attribute, 44 | .hljs-symbol, 45 | .hljs-symbol .hljs-string, 46 | .hljs-value, 47 | .hljs-regexp { 48 | color: #bf79db; 49 | } 50 | 51 | .hljs-link_url, 52 | .hljs-tag .hljs-value, 53 | .hljs-string, 54 | .hljs-bullet, 55 | .hljs-subst, 56 | .hljs-title, 57 | .hljs-emphasis, 58 | .hljs-type, 59 | .hljs-preprocessor, 60 | .hljs-pragma, 61 | .ruby .hljs-class .hljs-parent, 62 | .hljs-built_in, 63 | .django .hljs-template_tag, 64 | .django .hljs-variable, 65 | .smalltalk .hljs-class, 66 | .django .hljs-filter .hljs-argument, 67 | .smalltalk .hljs-localvars, 68 | .smalltalk .hljs-array, 69 | .hljs-attr_selector, 70 | .hljs-pseudo, 71 | .hljs-addition, 72 | .hljs-stream, 73 | .hljs-envvar, 74 | .apache .hljs-tag, 75 | .apache .hljs-cbracket, 76 | .tex .hljs-command, 77 | .hljs-prompt, 78 | .hljs-name { 79 | color: #a6e22e; 80 | } 81 | 82 | .hljs-comment, 83 | .hljs-annotation, 84 | .smartquote, 85 | .hljs-blockquote, 86 | .hljs-horizontal_rule, 87 | .hljs-decorator, 88 | .hljs-pi, 89 | .hljs-doctype, 90 | .hljs-deletion, 91 | .hljs-shebang, 92 | .apache .hljs-sqbracket, 93 | .tex .hljs-formula { 94 | color: #75715e; 95 | } 96 | 97 | .hljs-keyword, 98 | .hljs-literal, 99 | .css .hljs-id, 100 | .hljs-doctag, 101 | .hljs-title, 102 | .hljs-header, 103 | .hljs-type, 104 | .vbscript .hljs-built_in, 105 | .rsl .hljs-built_in, 106 | .smalltalk .hljs-class, 107 | .diff .hljs-header, 108 | .hljs-chunk, 109 | .hljs-winutils, 110 | .bash .hljs-variable, 111 | .apache .hljs-tag, 112 | .tex .hljs-special, 113 | .hljs-request, 114 | .hljs-status { 115 | font-weight: bold; 116 | } 117 | 118 | .coffeescript .javascript, 119 | .javascript .xml, 120 | .tex .hljs-formula, 121 | .xml .javascript, 122 | .xml .vbscript, 123 | .xml .css, 124 | .xml .hljs-cdata { 125 | opacity: 0.5; 126 | } 127 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/paraiso.dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | Paraíso (dark) 3 | Created by Jan T. Sott (http://github.com/idleberg) 4 | Inspired by the art of Rubens LP (http://www.rubenslp.com.br) 5 | */ 6 | 7 | /* Paraíso Comment */ 8 | .hljs-comment, 9 | .hljs-title { 10 | color: #8d8687; 11 | } 12 | 13 | /* Paraíso Red */ 14 | .hljs-variable, 15 | .hljs-attribute, 16 | .hljs-tag, 17 | .hljs-regexp, 18 | .hljs-name, 19 | .ruby .hljs-constant, 20 | .xml .hljs-tag .hljs-title, 21 | .xml .hljs-pi, 22 | .xml .hljs-doctype, 23 | .html .hljs-doctype, 24 | .css .hljs-id, 25 | .css .hljs-class, 26 | .css .hljs-pseudo { 27 | color: #ef6155; 28 | } 29 | 30 | /* Paraíso Orange */ 31 | .hljs-number, 32 | .hljs-preprocessor, 33 | .hljs-built_in, 34 | .hljs-literal, 35 | .hljs-params, 36 | .hljs-constant { 37 | color: #f99b15; 38 | } 39 | 40 | /* Paraíso Yellow */ 41 | .ruby .hljs-class .hljs-title, 42 | .css .hljs-rule .hljs-attribute { 43 | color: #fec418; 44 | } 45 | 46 | /* Paraíso Green */ 47 | .hljs-string, 48 | .hljs-value, 49 | .hljs-inheritance, 50 | .hljs-header, 51 | .ruby .hljs-symbol, 52 | .xml .hljs-cdata { 53 | color: #48b685; 54 | } 55 | 56 | /* Paraíso Aqua */ 57 | .css .hljs-hexcolor { 58 | color: #5bc4bf; 59 | } 60 | 61 | /* Paraíso Blue */ 62 | .hljs-function, 63 | .python .hljs-decorator, 64 | .python .hljs-title, 65 | .ruby .hljs-function .hljs-title, 66 | .ruby .hljs-title .hljs-keyword, 67 | .perl .hljs-sub, 68 | .javascript .hljs-title, 69 | .coffeescript .hljs-title { 70 | color: #06b6ef; 71 | } 72 | 73 | /* Paraíso Purple */ 74 | .hljs-keyword, 75 | .javascript .hljs-function { 76 | color: #815ba4; 77 | } 78 | 79 | .hljs { 80 | display: block; 81 | overflow-x: auto; 82 | background: #2f1e2e; 83 | color: #a39e9b; 84 | padding: 0.5em; 85 | -webkit-text-size-adjust: none; 86 | } 87 | 88 | .coffeescript .javascript, 89 | .javascript .xml, 90 | .tex .hljs-formula, 91 | .xml .javascript, 92 | .xml .vbscript, 93 | .xml .css, 94 | .xml .hljs-cdata { 95 | opacity: 0.5; 96 | } 97 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/paraiso.light.css: -------------------------------------------------------------------------------- 1 | /* 2 | Paraíso (light) 3 | Created by Jan T. Sott (http://github.com/idleberg) 4 | Inspired by the art of Rubens LP (http://www.rubenslp.com.br) 5 | */ 6 | 7 | /* Paraíso Comment */ 8 | .hljs-comment, 9 | .hljs-title { 10 | color: #776e71; 11 | } 12 | 13 | /* Paraíso Red */ 14 | .hljs-variable, 15 | .hljs-attribute, 16 | .hljs-tag, 17 | .hljs-regexp, 18 | .hljs-name, 19 | .ruby .hljs-constant, 20 | .xml .hljs-tag .hljs-title, 21 | .xml .hljs-pi, 22 | .xml .hljs-doctype, 23 | .html .hljs-doctype, 24 | .css .hljs-id, 25 | .css .hljs-class, 26 | .css .hljs-pseudo { 27 | color: #ef6155; 28 | } 29 | 30 | /* Paraíso Orange */ 31 | .hljs-number, 32 | .hljs-preprocessor, 33 | .hljs-built_in, 34 | .hljs-literal, 35 | .hljs-params, 36 | .hljs-constant { 37 | color: #f99b15; 38 | } 39 | 40 | /* Paraíso Yellow */ 41 | .ruby .hljs-class .hljs-title, 42 | .css .hljs-rule .hljs-attribute { 43 | color: #fec418; 44 | } 45 | 46 | /* Paraíso Green */ 47 | .hljs-string, 48 | .hljs-value, 49 | .hljs-inheritance, 50 | .hljs-header, 51 | .ruby .hljs-symbol, 52 | .xml .hljs-cdata { 53 | color: #48b685; 54 | } 55 | 56 | /* Paraíso Aqua */ 57 | .css .hljs-hexcolor { 58 | color: #5bc4bf; 59 | } 60 | 61 | /* Paraíso Blue */ 62 | .hljs-function, 63 | .python .hljs-decorator, 64 | .python .hljs-title, 65 | .ruby .hljs-function .hljs-title, 66 | .ruby .hljs-title .hljs-keyword, 67 | .perl .hljs-sub, 68 | .javascript .hljs-title, 69 | .coffeescript .hljs-title { 70 | color: #06b6ef; 71 | } 72 | 73 | /* Paraíso Purple */ 74 | .hljs-keyword, 75 | .javascript .hljs-function { 76 | color: #815ba4; 77 | } 78 | 79 | .hljs { 80 | display: block; 81 | overflow-x: auto; 82 | background: #e7e9db; 83 | color: #4f424c; 84 | padding: 0.5em; 85 | -webkit-text-size-adjust: none; 86 | } 87 | 88 | .coffeescript .javascript, 89 | .javascript .xml, 90 | .tex .hljs-formula, 91 | .xml .javascript, 92 | .xml .vbscript, 93 | .xml .css, 94 | .xml .hljs-cdata { 95 | opacity: 0.5; 96 | } 97 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/pojoaque.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Pojoaque Style by Jason Tate 4 | http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html 5 | Based on Solarized Style from http://ethanschoonover.com/solarized 6 | 7 | */ 8 | 9 | .hljs { 10 | display: block; 11 | overflow-x: auto; 12 | padding: 0.5em; 13 | color: #dccf8f; 14 | background: url(./pojoaque.jpg) repeat scroll left top #181914; 15 | -webkit-text-size-adjust: none; 16 | } 17 | 18 | .hljs-comment, 19 | .diff .hljs-header, 20 | .hljs-doctype, 21 | .lisp .hljs-string { 22 | color: #586e75; 23 | font-style: italic; 24 | } 25 | 26 | .hljs-keyword, 27 | .css .rule .hljs-keyword, 28 | .hljs-winutils, 29 | .javascript .hljs-title, 30 | .method, 31 | .hljs-addition, 32 | .css .hljs-tag, 33 | .hljs-list .hljs-keyword, 34 | .nginx .hljs-title { 35 | color: #b64926; 36 | } 37 | 38 | .hljs-number, 39 | .hljs-command, 40 | .hljs-string, 41 | .hljs-tag .hljs-value, 42 | .hljs-doctag, 43 | .tex .hljs-formula, 44 | .hljs-regexp, 45 | .hljs-hexcolor { 46 | color: #468966; 47 | } 48 | 49 | .hljs-title, 50 | .hljs-localvars, 51 | .hljs-function .hljs-title, 52 | .hljs-chunk, 53 | .hljs-decorator, 54 | .hljs-built_in, 55 | .hljs-identifier, 56 | .hljs-name, 57 | .hljs-id { 58 | color: #ffb03b; 59 | } 60 | 61 | .hljs-attribute, 62 | .hljs-variable, 63 | .lisp .hljs-body, 64 | .smalltalk .hljs-number, 65 | .hljs-constant, 66 | .hljs-class .hljs-title, 67 | .hljs-parent, 68 | .hljs-type { 69 | color: #b58900; 70 | } 71 | 72 | .css .hljs-attribute { 73 | color: #b89859; 74 | } 75 | 76 | .css .hljs-number, 77 | .css .hljs-hexcolor { 78 | color: #dccf8f; 79 | } 80 | 81 | .css .hljs-class { 82 | color: #d3a60c; 83 | } 84 | 85 | .hljs-preprocessor, 86 | .hljs-pragma, 87 | .hljs-pi, 88 | .hljs-shebang, 89 | .hljs-symbol, 90 | .hljs-symbol .hljs-string, 91 | .diff .hljs-change, 92 | .hljs-special, 93 | .hljs-attr_selector, 94 | .hljs-important, 95 | .hljs-subst, 96 | .hljs-cdata { 97 | color: #cb4b16; 98 | } 99 | 100 | .hljs-deletion { 101 | color: #dc322f; 102 | } 103 | 104 | .tex .hljs-formula { 105 | background: #073642; 106 | } 107 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/pojoaque.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/pojoaque.jpg -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/rainbow.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Style with support for rainbow parens 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #474949; 12 | color: #d1d9e1; 13 | -webkit-text-size-adjust: none; 14 | } 15 | 16 | 17 | .hljs-body, 18 | .hljs-collection { 19 | color: #d1d9e1; 20 | } 21 | 22 | .hljs-comment, 23 | .diff .hljs-header, 24 | .hljs-doctype, 25 | .lisp .hljs-string { 26 | color: #969896; 27 | font-style: italic; 28 | } 29 | 30 | .hljs-keyword, 31 | .clojure .hljs-attribute, 32 | .hljs-winutils, 33 | .javascript .hljs-title, 34 | .hljs-addition, 35 | .css .hljs-tag { 36 | color: #cc99cc; 37 | } 38 | 39 | .hljs-number { color: #f99157; } 40 | 41 | .hljs-command, 42 | .hljs-string, 43 | .hljs-tag .hljs-value, 44 | .hljs-doctag, 45 | .tex .hljs-formula, 46 | .hljs-regexp, 47 | .hljs-hexcolor { 48 | color: #8abeb7; 49 | } 50 | 51 | .hljs-title, 52 | .hljs-localvars, 53 | .hljs-function .hljs-title, 54 | .hljs-chunk, 55 | .hljs-decorator, 56 | .hljs-built_in, 57 | .hljs-identifier { 58 | color: #b5bd68; 59 | } 60 | 61 | .hljs-class .hljs-keyword { 62 | color: #f2777a; 63 | } 64 | 65 | .hljs-variable, 66 | .smalltalk .hljs-number, 67 | .hljs-constant, 68 | .hljs-class .hljs-title, 69 | .hljs-parent, 70 | .haskell .hljs-label, 71 | .hljs-id, 72 | .hljs-name { 73 | color: #ffcc66; 74 | } 75 | 76 | .hljs-tag .hljs-title, 77 | .hljs-rule .hljs-property, 78 | .django .hljs-tag .hljs-keyword { 79 | font-weight: bold; 80 | } 81 | 82 | .hljs-attribute { 83 | color: #81a2be; 84 | } 85 | 86 | .hljs-preprocessor, 87 | .hljs-pragma, 88 | .hljs-pi, 89 | .hljs-shebang, 90 | .hljs-symbol, 91 | .hljs-symbol .hljs-string, 92 | .diff .hljs-change, 93 | .hljs-special, 94 | .hljs-attr_selector, 95 | .hljs-important, 96 | .hljs-subst, 97 | .hljs-cdata { 98 | color: #f99157; 99 | } 100 | 101 | .hljs-deletion { 102 | color: #dc322f; 103 | } 104 | 105 | .tex .hljs-formula { 106 | background: #eee8d5; 107 | } 108 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/school_book.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | School Book style from goldblog.com.ua (c) Zaripov Yura 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 15px 0.5em 0.5em 30px; 11 | font-size: 11px !important; 12 | line-height:16px !important; 13 | -webkit-text-size-adjust: none; 14 | } 15 | 16 | pre{ 17 | background:#f6f6ae url(./school_book.png); 18 | border-top: solid 2px #d2e8b9; 19 | border-bottom: solid 1px #d2e8b9; 20 | } 21 | 22 | .hljs-keyword, 23 | .hljs-literal, 24 | .hljs-change, 25 | .hljs-winutils, 26 | .hljs-flow, 27 | .nginx .hljs-title, 28 | .tex .hljs-special { 29 | color:#005599; 30 | font-weight:bold; 31 | } 32 | 33 | .hljs, 34 | .hljs-subst, 35 | .hljs-tag .hljs-keyword { 36 | color: #3e5915; 37 | } 38 | 39 | .hljs-string, 40 | .hljs-title, 41 | .hljs-type, 42 | .hljs-tag .hljs-value, 43 | .css .hljs-rule .hljs-value, 44 | .hljs-preprocessor, 45 | .hljs-pragma, 46 | .ruby .hljs-symbol, 47 | .ruby .hljs-symbol .hljs-string, 48 | .ruby .hljs-class .hljs-parent, 49 | .hljs-built_in, 50 | .django .hljs-template_tag, 51 | .django .hljs-variable, 52 | .smalltalk .hljs-class, 53 | .ruby .hljs-string, 54 | .django .hljs-filter .hljs-argument, 55 | .smalltalk .hljs-localvars, 56 | .smalltalk .hljs-array, 57 | .hljs-attr_selector, 58 | .hljs-pseudo, 59 | .hljs-addition, 60 | .hljs-stream, 61 | .hljs-envvar, 62 | .apache .hljs-tag, 63 | .apache .hljs-cbracket, 64 | .nginx .hljs-built_in, 65 | .tex .hljs-command, 66 | .coffeescript .hljs-attribute, 67 | .hljs-name { 68 | color: #2c009f; 69 | } 70 | 71 | .hljs-comment, 72 | .hljs-annotation, 73 | .hljs-decorator, 74 | .hljs-pi, 75 | .hljs-doctype, 76 | .hljs-deletion, 77 | .hljs-shebang, 78 | .apache .hljs-sqbracket { 79 | color: #e60415; 80 | } 81 | 82 | .hljs-keyword, 83 | .hljs-literal, 84 | .css .hljs-id, 85 | .hljs-doctag, 86 | .hljs-title, 87 | .hljs-type, 88 | .vbscript .hljs-built_in, 89 | .rsl .hljs-built_in, 90 | .smalltalk .hljs-class, 91 | .xml .hljs-tag .hljs-title, 92 | .diff .hljs-header, 93 | .hljs-chunk, 94 | .hljs-winutils, 95 | .bash .hljs-variable, 96 | .apache .hljs-tag, 97 | .tex .hljs-command, 98 | .hljs-request, 99 | .hljs-status { 100 | font-weight: bold; 101 | } 102 | 103 | .coffeescript .javascript, 104 | .javascript .xml, 105 | .tex .hljs-formula, 106 | .xml .javascript, 107 | .xml .vbscript, 108 | .xml .css, 109 | .xml .hljs-cdata { 110 | opacity: 0.5; 111 | } 112 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/school_book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/school_book.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/solarized_dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #002b36; 12 | color: #839496; 13 | -webkit-text-size-adjust: none; 14 | } 15 | 16 | .hljs-comment, 17 | .diff .hljs-header, 18 | .hljs-doctype, 19 | .hljs-pi, 20 | .lisp .hljs-string { 21 | color: #586e75; 22 | } 23 | 24 | /* Solarized Green */ 25 | .hljs-keyword, 26 | .hljs-winutils, 27 | .method, 28 | .hljs-addition, 29 | .css .hljs-tag, 30 | .hljs-request, 31 | .hljs-status, 32 | .nginx .hljs-title { 33 | color: #859900; 34 | } 35 | 36 | /* Solarized Cyan */ 37 | .hljs-number, 38 | .hljs-command, 39 | .hljs-string, 40 | .hljs-tag .hljs-value, 41 | .hljs-rule .hljs-value, 42 | .hljs-doctag, 43 | .tex .hljs-formula, 44 | .hljs-regexp, 45 | .hljs-hexcolor, 46 | .hljs-link_url { 47 | color: #2aa198; 48 | } 49 | 50 | /* Solarized Blue */ 51 | .hljs-title, 52 | .hljs-localvars, 53 | .hljs-chunk, 54 | .hljs-decorator, 55 | .hljs-built_in, 56 | .hljs-identifier, 57 | .vhdl .hljs-literal, 58 | .hljs-id, 59 | .css .hljs-function, 60 | .hljs-name { 61 | color: #268bd2; 62 | } 63 | 64 | /* Solarized Yellow */ 65 | .hljs-attribute, 66 | .hljs-variable, 67 | .lisp .hljs-body, 68 | .smalltalk .hljs-number, 69 | .hljs-constant, 70 | .hljs-class .hljs-title, 71 | .hljs-parent, 72 | .hljs-type, 73 | .hljs-link_reference { 74 | color: #b58900; 75 | } 76 | 77 | /* Solarized Orange */ 78 | .hljs-preprocessor, 79 | .hljs-preprocessor .hljs-keyword, 80 | .hljs-pragma, 81 | .hljs-shebang, 82 | .hljs-symbol, 83 | .hljs-symbol .hljs-string, 84 | .diff .hljs-change, 85 | .hljs-special, 86 | .hljs-attr_selector, 87 | .hljs-subst, 88 | .hljs-cdata, 89 | .css .hljs-pseudo, 90 | .hljs-header { 91 | color: #cb4b16; 92 | } 93 | 94 | /* Solarized Red */ 95 | .hljs-deletion, 96 | .hljs-important { 97 | color: #dc322f; 98 | } 99 | 100 | /* Solarized Violet */ 101 | .hljs-link_label { 102 | color: #6c71c4; 103 | } 104 | 105 | .tex .hljs-formula { 106 | background: #073642; 107 | } 108 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/solarized_light.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #fdf6e3; 12 | color: #657b83; 13 | -webkit-text-size-adjust: none; 14 | } 15 | 16 | .hljs-comment, 17 | .diff .hljs-header, 18 | .hljs-doctype, 19 | .hljs-pi, 20 | .lisp .hljs-string { 21 | color: #93a1a1; 22 | } 23 | 24 | /* Solarized Green */ 25 | .hljs-keyword, 26 | .hljs-winutils, 27 | .method, 28 | .hljs-addition, 29 | .css .hljs-tag, 30 | .hljs-request, 31 | .hljs-status, 32 | .nginx .hljs-title { 33 | color: #859900; 34 | } 35 | 36 | /* Solarized Cyan */ 37 | .hljs-number, 38 | .hljs-command, 39 | .hljs-string, 40 | .hljs-tag .hljs-value, 41 | .hljs-rule .hljs-value, 42 | .hljs-doctag, 43 | .tex .hljs-formula, 44 | .hljs-regexp, 45 | .hljs-hexcolor, 46 | .hljs-link_url { 47 | color: #2aa198; 48 | } 49 | 50 | /* Solarized Blue */ 51 | .hljs-title, 52 | .hljs-localvars, 53 | .hljs-chunk, 54 | .hljs-decorator, 55 | .hljs-built_in, 56 | .hljs-identifier, 57 | .vhdl .hljs-literal, 58 | .hljs-id, 59 | .css .hljs-function, 60 | .hljs-name { 61 | color: #268bd2; 62 | } 63 | 64 | /* Solarized Yellow */ 65 | .hljs-attribute, 66 | .hljs-variable, 67 | .lisp .hljs-body, 68 | .smalltalk .hljs-number, 69 | .hljs-constant, 70 | .hljs-class .hljs-title, 71 | .hljs-parent, 72 | .hljs-type, 73 | .hljs-link_reference { 74 | color: #b58900; 75 | } 76 | 77 | /* Solarized Orange */ 78 | .hljs-preprocessor, 79 | .hljs-preprocessor .hljs-keyword, 80 | .hljs-pragma, 81 | .hljs-shebang, 82 | .hljs-symbol, 83 | .hljs-symbol .hljs-string, 84 | .diff .hljs-change, 85 | .hljs-special, 86 | .hljs-attr_selector, 87 | .hljs-subst, 88 | .hljs-cdata, 89 | .css .hljs-pseudo, 90 | .hljs-header { 91 | color: #cb4b16; 92 | } 93 | 94 | /* Solarized Red */ 95 | .hljs-deletion, 96 | .hljs-important { 97 | color: #dc322f; 98 | } 99 | 100 | /* Solarized Violet */ 101 | .hljs-link_label { 102 | color: #6c71c4; 103 | } 104 | 105 | .tex .hljs-formula { 106 | background: #eee8d5; 107 | } 108 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/tomorrow-night-blue.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Night Blue Theme */ 2 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 3 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 4 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 5 | 6 | /* Tomorrow Comment */ 7 | .hljs-comment { 8 | color: #7285b7; 9 | } 10 | 11 | /* Tomorrow Red */ 12 | .hljs-variable, 13 | .hljs-attribute, 14 | .hljs-tag, 15 | .hljs-regexp, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #ff9da4; 25 | } 26 | 27 | /* Tomorrow Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-pragma, 31 | .hljs-built_in, 32 | .hljs-literal, 33 | .hljs-params, 34 | .hljs-constant { 35 | color: #ffc58f; 36 | } 37 | 38 | /* Tomorrow Yellow */ 39 | .ruby .hljs-class .hljs-title, 40 | .css .hljs-rule .hljs-attribute { 41 | color: #ffeead; 42 | } 43 | 44 | /* Tomorrow Green */ 45 | .hljs-string, 46 | .hljs-value, 47 | .hljs-inheritance, 48 | .hljs-header, 49 | .hljs-name, 50 | .ruby .hljs-symbol, 51 | .xml .hljs-cdata { 52 | color: #d1f1a9; 53 | } 54 | 55 | /* Tomorrow Aqua */ 56 | .hljs-title, 57 | .css .hljs-hexcolor { 58 | color: #99ffff; 59 | } 60 | 61 | /* Tomorrow Blue */ 62 | .hljs-function, 63 | .python .hljs-decorator, 64 | .python .hljs-title, 65 | .ruby .hljs-function .hljs-title, 66 | .ruby .hljs-title .hljs-keyword, 67 | .perl .hljs-sub, 68 | .javascript .hljs-title, 69 | .coffeescript .hljs-title { 70 | color: #bbdaff; 71 | } 72 | 73 | /* Tomorrow Purple */ 74 | .hljs-keyword, 75 | .javascript .hljs-function { 76 | color: #ebbbff; 77 | } 78 | 79 | .hljs { 80 | display: block; 81 | overflow-x: auto; 82 | background: #002451; 83 | color: white; 84 | padding: 0.5em; 85 | -webkit-text-size-adjust: none; 86 | } 87 | 88 | .coffeescript .javascript, 89 | .javascript .xml, 90 | .tex .hljs-formula, 91 | .xml .javascript, 92 | .xml .vbscript, 93 | .xml .css, 94 | .xml .hljs-cdata { 95 | opacity: 0.5; 96 | } 97 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/tomorrow-night-bright.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Night Bright Theme */ 2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 3 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 4 | 5 | /* Tomorrow Comment */ 6 | .hljs-comment { 7 | color: #969896; 8 | } 9 | 10 | /* Tomorrow Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .ruby .hljs-constant, 16 | .xml .hljs-tag .hljs-title, 17 | .xml .hljs-pi, 18 | .xml .hljs-doctype, 19 | .html .hljs-doctype, 20 | .css .hljs-id, 21 | .css .hljs-class, 22 | .css .hljs-pseudo { 23 | color: #d54e53; 24 | } 25 | 26 | /* Tomorrow Orange */ 27 | .hljs-number, 28 | .hljs-preprocessor, 29 | .hljs-pragma, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #e78c45; 35 | } 36 | 37 | /* Tomorrow Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #e7c547; 41 | } 42 | 43 | /* Tomorrow Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .hljs-name, 49 | .ruby .hljs-symbol, 50 | .xml .hljs-cdata { 51 | color: #b9ca4a; 52 | } 53 | 54 | /* Tomorrow Aqua */ 55 | .hljs-title, 56 | .css .hljs-hexcolor { 57 | color: #70c0b1; 58 | } 59 | 60 | /* Tomorrow Blue */ 61 | .hljs-function, 62 | .python .hljs-decorator, 63 | .python .hljs-title, 64 | .ruby .hljs-function .hljs-title, 65 | .ruby .hljs-title .hljs-keyword, 66 | .perl .hljs-sub, 67 | .javascript .hljs-title, 68 | .coffeescript .hljs-title { 69 | color: #7aa6da; 70 | } 71 | 72 | /* Tomorrow Purple */ 73 | .hljs-keyword, 74 | .javascript .hljs-function { 75 | color: #c397d8; 76 | } 77 | 78 | .hljs { 79 | display: block; 80 | overflow-x: auto; 81 | background: black; 82 | color: #eaeaea; 83 | padding: 0.5em; 84 | -webkit-text-size-adjust: none; 85 | } 86 | 87 | .coffeescript .javascript, 88 | .javascript .xml, 89 | .tex .hljs-formula, 90 | .xml .javascript, 91 | .xml .vbscript, 92 | .xml .css, 93 | .xml .hljs-cdata { 94 | opacity: 0.5; 95 | } 96 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/tomorrow-night-eighties.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Night Eighties Theme */ 2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 3 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 4 | 5 | /* Tomorrow Comment */ 6 | .hljs-comment { 7 | color: #999999; 8 | } 9 | 10 | /* Tomorrow Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .ruby .hljs-constant, 16 | .xml .hljs-tag .hljs-title, 17 | .xml .hljs-pi, 18 | .xml .hljs-doctype, 19 | .html .hljs-doctype, 20 | .css .hljs-id, 21 | .css .hljs-class, 22 | .css .hljs-pseudo { 23 | color: #f2777a; 24 | } 25 | 26 | /* Tomorrow Orange */ 27 | .hljs-number, 28 | .hljs-preprocessor, 29 | .hljs-pragma, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #f99157; 35 | } 36 | 37 | /* Tomorrow Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #ffcc66; 41 | } 42 | 43 | /* Tomorrow Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .hljs-name, 49 | .ruby .hljs-symbol, 50 | .xml .hljs-cdata { 51 | color: #99cc99; 52 | } 53 | 54 | /* Tomorrow Aqua */ 55 | .hljs-title, 56 | .css .hljs-hexcolor { 57 | color: #66cccc; 58 | } 59 | 60 | /* Tomorrow Blue */ 61 | .hljs-function, 62 | .python .hljs-decorator, 63 | .python .hljs-title, 64 | .ruby .hljs-function .hljs-title, 65 | .ruby .hljs-title .hljs-keyword, 66 | .perl .hljs-sub, 67 | .javascript .hljs-title, 68 | .coffeescript .hljs-title { 69 | color: #6699cc; 70 | } 71 | 72 | /* Tomorrow Purple */ 73 | .hljs-keyword, 74 | .javascript .hljs-function { 75 | color: #cc99cc; 76 | } 77 | 78 | .hljs { 79 | display: block; 80 | overflow-x: auto; 81 | background: #2d2d2d; 82 | color: #cccccc; 83 | padding: 0.5em; 84 | -webkit-text-size-adjust: none; 85 | } 86 | 87 | .coffeescript .javascript, 88 | .javascript .xml, 89 | .tex .hljs-formula, 90 | .xml .javascript, 91 | .xml .vbscript, 92 | .xml .css, 93 | .xml .hljs-cdata { 94 | opacity: 0.5; 95 | } 96 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/tomorrow-night.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Night Theme */ 2 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 3 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 4 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 5 | 6 | /* Tomorrow Comment */ 7 | .hljs-comment { 8 | color: #969896; 9 | } 10 | 11 | /* Tomorrow Red */ 12 | .hljs-variable, 13 | .hljs-attribute, 14 | .hljs-tag, 15 | .hljs-regexp, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #cc6666; 25 | } 26 | 27 | /* Tomorrow Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-pragma, 31 | .hljs-built_in, 32 | .hljs-literal, 33 | .hljs-params, 34 | .hljs-constant { 35 | color: #de935f; 36 | } 37 | 38 | /* Tomorrow Yellow */ 39 | .ruby .hljs-class .hljs-title, 40 | .css .hljs-rule .hljs-attribute { 41 | color: #f0c674; 42 | } 43 | 44 | /* Tomorrow Green */ 45 | .hljs-string, 46 | .hljs-value, 47 | .hljs-inheritance, 48 | .hljs-header, 49 | .hljs-name, 50 | .ruby .hljs-symbol, 51 | .xml .hljs-cdata { 52 | color: #b5bd68; 53 | } 54 | 55 | /* Tomorrow Aqua */ 56 | .hljs-title, 57 | .css .hljs-hexcolor { 58 | color: #8abeb7; 59 | } 60 | 61 | /* Tomorrow Blue */ 62 | .hljs-function, 63 | .python .hljs-decorator, 64 | .python .hljs-title, 65 | .ruby .hljs-function .hljs-title, 66 | .ruby .hljs-title .hljs-keyword, 67 | .perl .hljs-sub, 68 | .javascript .hljs-title, 69 | .coffeescript .hljs-title { 70 | color: #81a2be; 71 | } 72 | 73 | /* Tomorrow Purple */ 74 | .hljs-keyword, 75 | .javascript .hljs-function { 76 | color: #b294bb; 77 | } 78 | 79 | .hljs { 80 | display: block; 81 | overflow-x: auto; 82 | background: #1d1f21; 83 | color: #c5c8c6; 84 | padding: 0.5em; 85 | -webkit-text-size-adjust: none; 86 | } 87 | 88 | .coffeescript .javascript, 89 | .javascript .xml, 90 | .tex .hljs-formula, 91 | .xml .javascript, 92 | .xml .vbscript, 93 | .xml .css, 94 | .xml .hljs-cdata { 95 | opacity: 0.5; 96 | } 97 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/tomorrow.css: -------------------------------------------------------------------------------- 1 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 2 | 3 | /* Tomorrow Comment */ 4 | .hljs-comment { 5 | color: #8e908c; 6 | } 7 | 8 | /* Tomorrow Red */ 9 | .hljs-variable, 10 | .hljs-attribute, 11 | .hljs-tag, 12 | .hljs-regexp, 13 | .ruby .hljs-constant, 14 | .xml .hljs-tag .hljs-title, 15 | .xml .hljs-pi, 16 | .xml .hljs-doctype, 17 | .html .hljs-doctype, 18 | .css .hljs-id, 19 | .css .hljs-class, 20 | .css .hljs-pseudo { 21 | color: #c82829; 22 | } 23 | 24 | /* Tomorrow Orange */ 25 | .hljs-number, 26 | .hljs-preprocessor, 27 | .hljs-pragma, 28 | .hljs-built_in, 29 | .hljs-literal, 30 | .hljs-params, 31 | .hljs-constant { 32 | color: #f5871f; 33 | } 34 | 35 | /* Tomorrow Yellow */ 36 | .ruby .hljs-class .hljs-title, 37 | .css .hljs-rule .hljs-attribute { 38 | color: #eab700; 39 | } 40 | 41 | /* Tomorrow Green */ 42 | .hljs-string, 43 | .hljs-value, 44 | .hljs-inheritance, 45 | .hljs-header, 46 | .hljs-name, 47 | .ruby .hljs-symbol, 48 | .xml .hljs-cdata { 49 | color: #718c00; 50 | } 51 | 52 | /* Tomorrow Aqua */ 53 | .hljs-title, 54 | .css .hljs-hexcolor { 55 | color: #3e999f; 56 | } 57 | 58 | /* Tomorrow Blue */ 59 | .hljs-function, 60 | .python .hljs-decorator, 61 | .python .hljs-title, 62 | .ruby .hljs-function .hljs-title, 63 | .ruby .hljs-title .hljs-keyword, 64 | .perl .hljs-sub, 65 | .javascript .hljs-title, 66 | .coffeescript .hljs-title { 67 | color: #4271ae; 68 | } 69 | 70 | /* Tomorrow Purple */ 71 | .hljs-keyword, 72 | .javascript .hljs-function { 73 | color: #8959a8; 74 | } 75 | 76 | .hljs { 77 | display: block; 78 | overflow-x: auto; 79 | background: white; 80 | color: #4d4d4c; 81 | padding: 0.5em; 82 | -webkit-text-size-adjust: none; 83 | } 84 | 85 | .coffeescript .javascript, 86 | .javascript .xml, 87 | .tex .hljs-formula, 88 | .xml .javascript, 89 | .xml .vbscript, 90 | .xml .css, 91 | .xml .hljs-cdata { 92 | opacity: 0.5; 93 | } 94 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/vs.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Visual Studio-like style based on original C# coloring by Jason Diamond 4 | 5 | */ 6 | .hljs { 7 | display: block; 8 | overflow-x: auto; 9 | padding: 0.5em; 10 | background: white; 11 | color: black; 12 | -webkit-text-size-adjust: none; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-annotation, 17 | .diff .hljs-header, 18 | .hljs-chunk, 19 | .apache .hljs-cbracket { 20 | color: #008000; 21 | } 22 | 23 | .hljs-keyword, 24 | .hljs-id, 25 | .hljs-built_in, 26 | .smalltalk .hljs-class, 27 | .hljs-winutils, 28 | .bash .hljs-variable, 29 | .tex .hljs-command, 30 | .hljs-request, 31 | .hljs-status, 32 | .nginx .hljs-title, 33 | .xml .hljs-tag, 34 | .xml .hljs-tag .hljs-value { 35 | color: #00f; 36 | } 37 | 38 | .hljs-string, 39 | .hljs-title, 40 | .hljs-parent, 41 | .hljs-tag .hljs-value, 42 | .hljs-rule .hljs-value, 43 | .ruby .hljs-symbol, 44 | .ruby .hljs-symbol .hljs-string, 45 | .hljs-template_tag, 46 | .django .hljs-variable, 47 | .hljs-addition, 48 | .hljs-flow, 49 | .hljs-stream, 50 | .apache .hljs-tag, 51 | .hljs-date, 52 | .tex .hljs-formula, 53 | .coffeescript .hljs-attribute, 54 | .hljs-name { 55 | color: #a31515; 56 | } 57 | 58 | .ruby .hljs-string, 59 | .hljs-decorator, 60 | .hljs-filter .hljs-argument, 61 | .hljs-localvars, 62 | .hljs-array, 63 | .hljs-attr_selector, 64 | .hljs-pseudo, 65 | .hljs-pi, 66 | .hljs-doctype, 67 | .hljs-deletion, 68 | .hljs-envvar, 69 | .hljs-shebang, 70 | .hljs-preprocessor, 71 | .hljs-pragma, 72 | .userType, 73 | .apache .hljs-sqbracket, 74 | .nginx .hljs-built_in, 75 | .tex .hljs-special, 76 | .hljs-prompt { 77 | color: #2b91af; 78 | } 79 | 80 | .hljs-doctag, 81 | .hljs-xmlDocTag { 82 | color: #808080; 83 | } 84 | 85 | .hljs-type, 86 | .hljs-typename { font-weight: bold; } 87 | 88 | .vhdl .hljs-string { color: #666666; } 89 | .vhdl .hljs-literal { color: #a31515; } 90 | .vhdl .hljs-attribute { color: #00b0e8; } 91 | 92 | .xml .hljs-attribute { color: #f00; } 93 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Business/Util/View/CCocoaChinaWebView/highlight/styles/zenburn.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov 4 | based on dark.css by Ivan Sagalaev 5 | 6 | */ 7 | 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #3f3f3f; 13 | color: #dcdcdc; 14 | -webkit-text-size-adjust: none; 15 | } 16 | 17 | .hljs-keyword, 18 | .hljs-tag, 19 | .css .hljs-class, 20 | .css .hljs-id, 21 | .lisp .hljs-title, 22 | .nginx .hljs-title, 23 | .hljs-request, 24 | .hljs-status, 25 | .clojure .hljs-attribute { 26 | color: #e3ceab; 27 | } 28 | 29 | .django .hljs-template_tag, 30 | .django .hljs-variable, 31 | .django .hljs-filter .hljs-argument { 32 | color: #dcdcdc; 33 | } 34 | 35 | .hljs-number, 36 | .hljs-date { 37 | color: #8cd0d3; 38 | } 39 | 40 | .dos .hljs-envvar, 41 | .dos .hljs-stream, 42 | .hljs-variable, 43 | .apache .hljs-sqbracket, 44 | .hljs-name { 45 | color: #efdcbc; 46 | } 47 | 48 | .dos .hljs-flow, 49 | .diff .hljs-change, 50 | .python .exception, 51 | .python .hljs-built_in, 52 | .hljs-literal, 53 | .tex .hljs-special { 54 | color: #efefaf; 55 | } 56 | 57 | .diff .hljs-chunk, 58 | .hljs-subst { 59 | color: #8f8f8f; 60 | } 61 | 62 | .dos .hljs-keyword, 63 | .hljs-decorator, 64 | .hljs-title, 65 | .hljs-type, 66 | .diff .hljs-header, 67 | .ruby .hljs-class .hljs-parent, 68 | .apache .hljs-tag, 69 | .nginx .hljs-built_in, 70 | .tex .hljs-command, 71 | .hljs-prompt { 72 | color: #efef8f; 73 | } 74 | 75 | .dos .hljs-winutils, 76 | .ruby .hljs-symbol, 77 | .ruby .hljs-symbol .hljs-string, 78 | .ruby .hljs-string { 79 | color: #dca3a3; 80 | } 81 | 82 | .diff .hljs-deletion, 83 | .hljs-string, 84 | .hljs-tag .hljs-value, 85 | .hljs-preprocessor, 86 | .hljs-pragma, 87 | .hljs-built_in, 88 | .smalltalk .hljs-class, 89 | .smalltalk .hljs-localvars, 90 | .smalltalk .hljs-array, 91 | .css .hljs-rule .hljs-value, 92 | .hljs-attr_selector, 93 | .hljs-pseudo, 94 | .apache .hljs-cbracket, 95 | .tex .hljs-formula, 96 | .coffeescript .hljs-attribute { 97 | color: #cc9393; 98 | } 99 | 100 | .hljs-shebang, 101 | .diff .hljs-addition, 102 | .hljs-comment, 103 | .hljs-annotation, 104 | .hljs-pi, 105 | .hljs-doctype { 106 | color: #7f9f7f; 107 | } 108 | 109 | .coffeescript .javascript, 110 | .javascript .xml, 111 | .tex .hljs-formula, 112 | .xml .javascript, 113 | .xml .vbscript, 114 | .xml .css, 115 | .xml .hljs-cdata { 116 | opacity: 0.5; 117 | } 118 | 119 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Note/Note.markdown: -------------------------------------------------------------------------------- 1 | # 开发Note 2 | ## https://itunes.apple.com/cn/app/cocoachina+/id1046424174 3 | 4 | 5 | ## iOS9中HTTPS请求切换为HTTP请求 6 | 7 | 右键点击`info.plist`,选择`Open As`->`Source Code`,然后插入 8 | 9 | ``` 10 | NSAppTransportSecurity 11 | 12 | NSAllowsArbitraryLoads 13 | 14 | 15 | ``` 16 | 17 | 18 | ## dyld: Library not loaded: @rpath/libswiftCore.dylib 19 | 20 | http://stackoverflow.com/a/26949219/2710572 21 | 22 | 23 | ## iOS8下WKWebView不能加载本地资源 24 | 25 | http://stackoverflow.com/a/28676439/2710572 26 | 27 | 28 | 29 | 30 | 31 | 32 | ## RxSwift 33 | 34 | UIBarButtonItem 如果是CutomView初始化的则rx_tap不会响应 -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Vender/RxDataSourceStarterKit/Changeset.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Changeset.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 5/30/15. 6 | // Copyright (c) 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import CoreData 11 | #if !RX_NO_MODULE 12 | import RxSwift 13 | import RxCocoa 14 | #endif 15 | 16 | struct ItemPath : CustomStringConvertible { 17 | let sectionIndex: Int 18 | let itemIndex: Int 19 | 20 | var description : String { 21 | get { 22 | return "(\(sectionIndex), \(itemIndex))" 23 | } 24 | } 25 | } 26 | 27 | public struct Changeset : CustomStringConvertible { 28 | typealias I = S.Item 29 | 30 | var finalSections: [S] = [] 31 | 32 | var insertedSections: [Int] = [] 33 | var deletedSections: [Int] = [] 34 | var movedSections: [(from: Int, to: Int)] = [] 35 | var updatedSections: [Int] = [] 36 | 37 | var insertedItems: [ItemPath] = [] 38 | var deletedItems: [ItemPath] = [] 39 | var movedItems: [(from: ItemPath, to: ItemPath)] = [] 40 | var updatedItems: [ItemPath] = [] 41 | 42 | public static func initialValue(_ sections: [S]) -> Changeset { 43 | var initialValue = Changeset() 44 | initialValue.insertedSections = Array(0 ..< sections.count) 45 | initialValue.finalSections = sections 46 | return initialValue 47 | } 48 | 49 | public var description : String { 50 | get { 51 | let serializedSections = "[\n" + finalSections.map { "\($0)" }.joined(separator: ",\n") + "\n]\n" 52 | return " >> Final sections" 53 | + " \n\(serializedSections)" 54 | + (insertedSections.count > 0 || deletedSections.count > 0 || movedSections.count > 0 || updatedSections.count > 0 ? "\nSections:" : "") 55 | + (insertedSections.count > 0 ? "\ninsertedSections:\n\t\(insertedSections)" : "") 56 | + (deletedSections.count > 0 ? "\ndeletedSections:\n\t\(deletedSections)" : "") 57 | + (movedSections.count > 0 ? "\nmovedSections:\n\t\(movedSections)" : "") 58 | + (updatedSections.count > 0 ? "\nupdatesSections:\n\t\(updatedSections)" : "") 59 | + (insertedItems.count > 0 || deletedItems.count > 0 || movedItems.count > 0 || updatedItems.count > 0 ? "\nItems:" : "") 60 | + (insertedItems.count > 0 ? "\ninsertedItems:\n\t\(insertedItems)" : "") 61 | + (deletedItems.count > 0 ? "\ndeletedItems:\n\t\(deletedItems)" : "") 62 | + (movedItems.count > 0 ? "\nmovedItems:\n\t\(movedItems)" : "") 63 | + (updatedItems.count > 0 ? "\nupdatedItems:\n\t\(updatedItems)" : "") 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Vender/RxDataSourceStarterKit/DataSources/RxCollectionViewSectionedAnimatedDataSource.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxCollectionViewSectionedAnimatedDataSource.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 7/2/15. 6 | // Copyright (c) 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | #if !RX_NO_MODULE 12 | import RxSwift 13 | import RxCocoa 14 | #endif 15 | 16 | class RxCollectionViewSectionedAnimatedDataSource : RxCollectionViewSectionedDataSource 17 | , RxCollectionViewDataSourceType { 18 | typealias Element = [Changeset] 19 | 20 | // For some inexplicable reason, when doing animated updates first time 21 | // it crashes. Still need to figure out that one. 22 | var set = false 23 | 24 | func collectionView(_ collectionView: UICollectionView, observedEvent: Event) { 25 | switch observedEvent { 26 | case .Next(let element): 27 | for c in element { 28 | //print("Animating ==============================\n\(c)\n===============================\n") 29 | 30 | if !set { 31 | setSections(c.finalSections) 32 | collectionView.reloadData() 33 | set = true 34 | return 35 | } 36 | setSections(c.finalSections) 37 | collectionView.performBatchUpdates(c) 38 | } 39 | case .Error(let error): 40 | bindingErrorToInterface(error) 41 | case .Completed: 42 | break 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Vender/RxDataSourceStarterKit/DataSources/RxCollectionViewSectionedReloadDataSource.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxCollectionViewSectionedReloadDataSource.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 7/2/15. 6 | // Copyright (c) 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | #if !RX_NO_MODULE 12 | import RxSwift 13 | import RxCocoa 14 | #endif 15 | 16 | class RxCollectionViewSectionedReloadDataSource : RxCollectionViewSectionedDataSource 17 | , RxCollectionViewDataSourceType { 18 | typealias Element = [S] 19 | 20 | func collectionView(_ collectionView: UICollectionView, observedEvent: Event) { 21 | switch observedEvent { 22 | case .Next(let element): 23 | setSections(element) 24 | collectionView.reloadData() 25 | case .Error(let error): 26 | bindingErrorToInterface(error) 27 | case .Completed: 28 | break 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Vender/RxDataSourceStarterKit/DataSources/RxTableViewSectionedAnimatedDataSource.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTableViewSectionedAnimatedDataSource.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 6/27/15. 6 | // Copyright (c) 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | #if !RX_NO_MODULE 12 | import RxSwift 13 | import RxCocoa 14 | #endif 15 | 16 | class RxTableViewSectionedAnimatedDataSource : RxTableViewSectionedDataSource 17 | , RxTableViewDataSourceType { 18 | typealias Element = [Changeset] 19 | 20 | func tableView(_ tableView: UITableView, observedEvent: Event) { 21 | switch observedEvent { 22 | case .Next(let element): 23 | for c in element { 24 | //print("Animating ==============================\n\(c)\n===============================\n") 25 | setSections(c.finalSections) 26 | tableView.performBatchUpdates(c) 27 | } 28 | case .Error(let error): 29 | bindingErrorToInterface(error) 30 | case .Completed: 31 | break 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Vender/RxDataSourceStarterKit/DataSources/RxTableViewSectionedReloadDataSource.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTableViewSectionedReloadDataSource.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 6/27/15. 6 | // Copyright (c) 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | #if !RX_NO_MODULE 12 | import RxSwift 13 | import RxCocoa 14 | #endif 15 | 16 | class RxTableViewSectionedReloadDataSource : RxTableViewSectionedDataSource 17 | , RxTableViewDataSourceType { 18 | typealias Element = [S] 19 | 20 | func tableView(_ tableView: UITableView, observedEvent: Event) { 21 | switch observedEvent { 22 | case .Next(let element): 23 | setSections(element) 24 | tableView.reloadData() 25 | case .Error(let error): 26 | bindingErrorToInterface(error) 27 | case .Completed: 28 | break 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Vender/RxDataSourceStarterKit/README.md: -------------------------------------------------------------------------------- 1 | RxSwift: DataSource Starter Kit 2 | =============================== 3 | 4 | This directory contains example implementations of reactive data sources. 5 | 6 | Reactive data sources are normal data sources + one additional method 7 | 8 | ```swift 9 | 10 | func view(view: UIXXXView, observedEvent: Event) {} 11 | 12 | ``` 13 | 14 | That means that data sources now have additional responsibility of updating the corresponding view. 15 | 16 | For now this will be a directory in Rx project with a couple of files that you can just copy and customize. 17 | 18 | It's possible that in the future this will be extracted into separate repository and CocoaPod. 19 | 20 | It's really hard to satisfy all needs with one codebase regarding these orthogonal dimensions: 21 | 22 | * how do you determine identity of objects 23 | * how to determine the structure of data source 24 | * how to determine is object updated 25 | * are objects structures or references 26 | * are differences between transitions already precalculated in some form (I'm looking at you NSFetchedResultsController) 27 | * .... 28 | 29 | So instead of doing all things mediocre, you can use these couple of lines of code to code up your own optimized solution. 30 | 31 | The code in this directory includes these features: 32 | 33 | * using rows or sections as DataSources for UICollectionView or UITableView 34 | * unified sectioned view interface 35 | * automatic animated partial updates with O(n) complexity (it will generate all updates to sections and items) 36 | 37 | Example project uses these files to implement partial updates in `Reactive partial updates` example. 38 | 39 | The only problem regarding partial updates that is not solved perfectly is UICollectionView. 40 | Unfortunately UICollectionView has some weird problems with internal state. 41 | For same set of changes, depending on clicking speed it will sometimes get out of sync with data source. 42 | 43 | The changes in example problem are pseudorandom (they always use the same seed), so you will be able to sometimes crash UICollectionView by clicking fast, but it will be ok if you click slow :( 44 | 45 | The problem isn't in the differential algorithm, but in UICollectionView itself, so not sure how to solve it perfectly. 46 | Any suggestions are welcome. 47 | 48 | UITableView on the other hand passed all stress tests. (You can run stress tests with random changes in example project) 49 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Vender/RxDataSourceStarterKit/RxDataSourceStarterKit.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxDataSourceStarterKit.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 8/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | #if !RX_NO_MODULE 12 | func bindingErrorToInterface(_ error: Error) { 13 | let error = "Binding error to UI: \(error)" 14 | #if DEBUG 15 | fatalError(error) 16 | #else 17 | print(error) 18 | #endif 19 | } 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Vender/RxDataSourceStarterKit/SectionModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SectionModel.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/16/15. 6 | // Copyright (c) 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public struct SectionModel : SectionModelType, CustomStringConvertible { 12 | public typealias Item = ItemType 13 | public var model: Section 14 | 15 | public var items: [Item] 16 | 17 | public init(model: Section, items: [Item]) { 18 | self.model = model 19 | self.items = items 20 | } 21 | 22 | public init(original: SectionModel, items: [Item]) { 23 | self.model = original.model 24 | self.items = items 25 | } 26 | 27 | public var description: String { 28 | get { 29 | return "\(self.model) > \(items)" 30 | } 31 | } 32 | } 33 | 34 | public struct HashableSectionModel : Hashable, SectionModelType, CustomStringConvertible { 35 | public typealias Item = ItemType 36 | public var model: Section 37 | 38 | public var items: [Item] 39 | 40 | public init(model: Section, items: [Item]) { 41 | self.model = model 42 | self.items = items 43 | } 44 | 45 | public init(original: HashableSectionModel, items: [Item]) { 46 | self.model = original.model 47 | self.items = items 48 | } 49 | 50 | public var description: String { 51 | get { 52 | return "HashableSectionModel(model: \"\(self.model)\", items: \(items))" 53 | } 54 | } 55 | 56 | public var hashValue: Int { 57 | get { 58 | return self.model.hashValue 59 | } 60 | } 61 | 62 | } 63 | 64 | public func == (lhs: HashableSectionModel, rhs: HashableSectionModel) -> Bool { 65 | return lhs.model == rhs.model 66 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/Vender/RxDataSourceStarterKit/SectionModelType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SectionModelType.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 6/28/15. 6 | // Copyright (c) 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public protocol SectionModelType { 12 | associatedtype Item 13 | 14 | var items: [Item] { get } 15 | 16 | init(original: Self, items: [Item]) 17 | } 18 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Application/ZXTabBarController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ZXTabBarController.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by 子循 on 15/7/27. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ZXTabBarController: UITabBarController,UITabBarControllerDelegate { 12 | 13 | var chatController:CChatListViewController! 14 | 15 | override func viewDidLoad() { 16 | super.viewDidLoad() 17 | self.selectedIndex = 0 18 | self.tabBar.barTintColor = UIColor.black 19 | 20 | let homeVC = CCPHomeViewController() 21 | 22 | homeVC.tabBarItem = UITabBarItem(title: "首页", image: R.image.home(), tag: 0) 23 | let nav_cc = ZXNavigationController(rootViewController: homeVC) 24 | 25 | 26 | let bbsVC = CCPBBSViewController(navigatorURL: URL(string: "go/ccp/bbs")!, query: ["link":"http://www.cocoachina.com/bbs/3g/"]) 27 | bbsVC.tabBarItem = UITabBarItem(title: "论坛", image: R.image.bbs(), tag: 1) 28 | let nav_bbs = ZXNavigationController(rootViewController: bbsVC) 29 | 30 | self.chatController = CChatListViewController() 31 | chatController.tabBarItem = UITabBarItem(title: "聊天", image: R.image.tabbar_chat(), tag: 2) 32 | let nav_chat = ZXNavigationController(rootViewController: chatController) 33 | 34 | let profileVC = CCProfileViewController() 35 | profileVC.tabBarItem = UITabBarItem(title: "我", image: R.image.tabbar_profile(), tag: 2) 36 | let nav_profile = ZXNavigationController(rootViewController: profileVC) 37 | 38 | 39 | self.viewControllers = [nav_cc,nav_bbs,nav_chat,nav_profile] 40 | 41 | } 42 | 43 | } 44 | 45 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "29x29", 5 | "idiom" : "iphone", 6 | "filename" : "icon_29pt@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "29x29", 11 | "idiom" : "iphone", 12 | "filename" : "icon_29pt@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "40x40", 17 | "idiom" : "iphone", 18 | "filename" : "icon_40pt@2x.png", 19 | "scale" : "2x" 20 | }, 21 | { 22 | "size" : "40x40", 23 | "idiom" : "iphone", 24 | "filename" : "icon_40pt@3x.png", 25 | "scale" : "3x" 26 | }, 27 | { 28 | "size" : "60x60", 29 | "idiom" : "iphone", 30 | "filename" : "icon_60pt@2x.png", 31 | "scale" : "2x" 32 | }, 33 | { 34 | "size" : "60x60", 35 | "idiom" : "iphone", 36 | "filename" : "icon_60pt@3x.png", 37 | "scale" : "3x" 38 | }, 39 | { 40 | "size" : "29x29", 41 | "idiom" : "ipad", 42 | "filename" : "icon_29pt.png", 43 | "scale" : "1x" 44 | }, 45 | { 46 | "size" : "29x29", 47 | "idiom" : "ipad", 48 | "filename" : "icon_29pt@2x-1.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "40x40", 53 | "idiom" : "ipad", 54 | "filename" : "icon_40pt.png", 55 | "scale" : "1x" 56 | }, 57 | { 58 | "size" : "40x40", 59 | "idiom" : "ipad", 60 | "filename" : "icon_40pt@2x-1.png", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "size" : "76x76", 65 | "idiom" : "ipad", 66 | "filename" : "icon_76pt.png", 67 | "scale" : "1x" 68 | }, 69 | { 70 | "size" : "76x76", 71 | "idiom" : "ipad", 72 | "filename" : "icon_76pt@2x.png", 73 | "scale" : "2x" 74 | }, 75 | { 76 | "idiom" : "ipad", 77 | "size" : "83.5x83.5", 78 | "scale" : "2x" 79 | } 80 | ], 81 | "info" : { 82 | "version" : 1, 83 | "author" : "xcode" 84 | } 85 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon@2x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_29pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_29pt.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_29pt@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_29pt@2x-1.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_29pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_29pt@2x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_29pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_29pt@3x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_40pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_40pt.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_40pt@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_40pt@2x-1.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_40pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_40pt@2x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_40pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_40pt@3x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_60pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_60pt@2x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_60pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_60pt@3x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_76pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_76pt.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_76pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/AppIcon.appiconset/icon_76pt@2x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/Guide/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/Guide/guide_page_1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "iPhone 6 Black + IMG_2745.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/Guide/guide_page_1.imageset/iPhone 6 Black + IMG_2745.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/Guide/guide_page_1.imageset/iPhone 6 Black + IMG_2745.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/Guide/guide_page_2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "iPhone 6 Black + IMG_2746.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/Guide/guide_page_2.imageset/iPhone 6 Black + IMG_2746.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/Guide/guide_page_2.imageset/iPhone 6 Black + IMG_2746.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/Guide/guide_page_3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "iPhone 6 Black + IMG_2747.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/Guide/guide_page_3.imageset/iPhone 6 Black + IMG_2747.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/Guide/guide_page_3.imageset/iPhone 6 Black + IMG_2747.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/Guide/guide_page_4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "iPhone 6 Black + 2.pic_hd.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/Guide/guide_page_4.imageset/iPhone 6 Black + 2.pic_hd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/Guide/guide_page_4.imageset/iPhone 6 Black + 2.pic_hd.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/about.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "about.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/about.imageset/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/about.imageset/about.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/chengxuyuan.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "chengxuyuan.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/chengxuyuan.imageset/chengxuyuan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/chengxuyuan.imageset/chengxuyuan.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/ic_detail_back.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_detail_back@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "ic_detail_back@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/ic_detail_back.imageset/ic_detail_back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/ic_detail_back.imageset/ic_detail_back@2x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/ic_detail_back.imageset/ic_detail_back@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/ic_detail_back.imageset/ic_detail_back@3x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/navbar/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_cancel.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "nav_cancel.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "nav_cancel@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_cancel.imageset/nav_cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_cancel.imageset/nav_cancel.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_cancel.imageset/nav_cancel@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_cancel.imageset/nav_cancel@3x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_like_no.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "nav_like_no@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "nav_like_no@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_like_no.imageset/nav_like_no@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_like_no.imageset/nav_like_no@2x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_like_no.imageset/nav_like_no@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_like_no.imageset/nav_like_no@3x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_like_yes.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "nav_like_yes@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "nav_like_yes@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_like_yes.imageset/nav_like_yes@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_like_yes.imageset/nav_like_yes@2x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_like_yes.imageset/nav_like_yes@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_like_yes.imageset/nav_like_yes@3x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_search.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "nav_search.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "nav_search@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_search.imageset/nav_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_search.imageset/nav_search.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_search.imageset/nav_search@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/navbar/nav_search.imageset/nav_search@3x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/navbar/share.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "share@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "share@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/navbar/share.imageset/share@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/navbar/share.imageset/share@2x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/navbar/share.imageset/share@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/navbar/share.imageset/share@3x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/sharetest.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/sharetest.imageset/icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/sharetest.imageset/icon@2x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/splash/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/splash/icon_light.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_light@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "icon_light@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/splash/icon_light.imageset/icon_light@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/splash/icon_light.imageset/icon_light@2x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/splash/icon_light.imageset/icon_light@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/splash/icon_light.imageset/icon_light@3x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/tabbar/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/tabbar/bbs.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Presentation@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "Presentation@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/tabbar/bbs.imageset/Presentation@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/tabbar/bbs.imageset/Presentation@2x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/tabbar/bbs.imageset/Presentation@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/tabbar/bbs.imageset/Presentation@3x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/tabbar/home.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Home.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "Home@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/tabbar/home.imageset/Home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/tabbar/home.imageset/Home.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/tabbar/home.imageset/Home@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/tabbar/home.imageset/Home@3x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/tabbar/tabbar_chat.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "tabbar_chat@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "tabbar_chat@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/tabbar/tabbar_chat.imageset/tabbar_chat@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/tabbar/tabbar_chat.imageset/tabbar_chat@2x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/tabbar/tabbar_chat.imageset/tabbar_chat@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/tabbar/tabbar_chat.imageset/tabbar_chat@3x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/tabbar/tabbar_profile.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "tabbar_profile@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "tabbar_profile@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/tabbar/tabbar_profile.imageset/tabbar_profile@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/tabbar/tabbar_profile.imageset/tabbar_profile@2x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/tabbar/tabbar_profile.imageset/tabbar_profile@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/tabbar/tabbar_profile.imageset/tabbar_profile@3x.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/top.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "top.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/Assets.xcassets/top.imageset/top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/Code/CocoaChinaPlus/Assets.xcassets/top.imageset/top.png -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/CCAppConfiguration.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CCAppConfiguration.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by zixun on 15/9/25. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CCAppConfiguration: NSObject { 12 | 13 | class func configure(_ application: UIApplication, launchOptions: [AnyHashable: Any]?) { 14 | 15 | //友盟统计配置 16 | CCAppConfiguration.configureYoumengStatistics() 17 | 18 | //友盟分享配置 19 | CCAppConfiguration.configureYoumengSocial() 20 | 21 | //极光推送 22 | CCAppConfiguration.configureJPush(launchOptions) 23 | 24 | } 25 | 26 | /** 27 | 友盟统计配置 28 | */ 29 | fileprivate class func configureYoumengStatistics() { 30 | 31 | let channel = Bundle.main.infoDictionary!["ZXApplicationChannel"] as! String 32 | let version = Bundle.main.infoDictionary!["CFBundleShortVersionString"] as! String 33 | 34 | MobClick.start(withAppkey: CCAppKey.appUM, reportPolicy: BATCH, channelId: channel) 35 | MobClick.setAppVersion(version) 36 | 37 | MobClick.updateOnlineConfig() 38 | } 39 | 40 | /** 41 | 友盟分享配置 42 | */ 43 | fileprivate class func configureYoumengSocial() { 44 | UMSocialManager.default().umSocialAppkey = CCAppKey.appUM 45 | UMSocialManager.default().setPlaform(UMSocialPlatformType.wechatSession, appKey: CCAppKey.appWeChat.appkey, appSecret: CCAppKey.appWeChat.secret, redirectURL: "http://sns.whalecloud.com/sina2/callback") 46 | 47 | UMSocialManager.default().setPlaform(UMSocialPlatformType.sina, appKey: CCAppKey.appSina.appkey, appSecret: CCAppKey.appSina.secret, redirectURL: "http://sns.whalecloud.com/sina2/callback") 48 | 49 | } 50 | 51 | /** 52 | 极光推送配置 53 | */ 54 | fileprivate class func configureJPush(_ launchOptions: [AnyHashable: Any]?) { 55 | // let type = UIUserNotificationType.badge.rawValue | UIUserNotificationType.sound.rawValue | UIUserNotificationType.alert.rawValue 56 | // APService.register(forRemoteNotificationTypes: type, categories: nil) 57 | // APService.setup(withOption: launchOptions) 58 | // 59 | // if launchOptions != nil { 60 | // if let userInfo = launchOptions![UIApplicationLaunchOptionsKey.remoteNotification] as? NSDictionary { 61 | // CCRemoteNotificationHandler.sharedHandler.handle(userInfo); 62 | // } 63 | // } 64 | } 65 | 66 | } 67 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/CCRemoteNotificationHandler.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CCRemoteNotificationHandler.swift 3 | // CocoaChinaPlus 4 | // 5 | // Created by chenyl on 15/9/24. 6 | // Copyright © 2015年 zixun. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CCRemoteNotificationHandler: NSObject,UIAlertViewDelegate { 12 | 13 | static let sharedHandler : CCRemoteNotificationHandler = { 14 | return CCRemoteNotificationHandler() 15 | }() 16 | 17 | fileprivate var identity : String? 18 | 19 | func handle(_ userInfo:NSDictionary) { 20 | guard userInfo.count > 1 else { 21 | return; 22 | } 23 | 24 | let state = UIApplication.shared.applicationState 25 | 26 | if let aps = userInfo["aps"] as? NSDictionary { 27 | 28 | let alert = aps["alert"] as! String 29 | if let cocoachina_url = userInfo["cocoachina"] { 30 | self.identity = CCURLHelper.generateIdentity(cocoachina_url as! String) 31 | 32 | if state == UIApplicationState.active { 33 | 34 | UIAlertView(title: "新消息", 35 | message: alert, 36 | delegate: self, 37 | cancelButtonTitle: "下次吧", 38 | otherButtonTitles: "学习一下").show() 39 | }else { 40 | 41 | ZXOpenURL("go/ccp/article?identity=\(self.identity! )") 42 | } 43 | 44 | } 45 | } 46 | } 47 | 48 | func alertView(_ alertView: UIAlertView, clickedButtonAt buttonIndex: Int) { 49 | if buttonIndex == 1 && self.identity != nil { 50 | ZXOpenURL("go/ccp/article?identity=\(self.identity!)") 51 | } 52 | } 53 | 54 | 55 | } 56 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/CocoaChinaPlus-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | #ifndef CocoaChinaPlus____Bridging_Header_h 6 | #define CocoaChinaPlus____Bridging_Header_h 7 | 8 | //友盟统计 9 | #import "MobClick.h" 10 | 11 | 12 | #import 13 | 14 | #import 15 | 16 | //极光推送 17 | //#import "APService.h" 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /Code/CocoaChinaPlus/PushConfig.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | APS_FOR_PRODUCTION 13 | 0 14 | APP_KEY 15 | 715e2a98775e7ec581728052 16 | CHANNEL 17 | Developing 18 | 19 | 20 | -------------------------------------------------------------------------------- /Code/Podfile: -------------------------------------------------------------------------------- 1 | source 'https://github.com/CocoaPods/Specs.git' 2 | platform :ios, '9.0' 3 | use_frameworks! 4 | inhibit_all_warnings! 5 | 6 | target 'CocoaChinaPlus' do 7 | 8 | #pod 'Reveal-iOS-SDK', :configurations => ['Debug'] 9 | pod 'GodEye', '~> 1.0.0', :configurations => ['Debug'] 10 | 11 | pod 'Log4G' 12 | pod 'AppBaseKit', '~> 0.1.0' 13 | pod 'SwViewCapture', '~> 1.0.5' 14 | pod 'Neon', '~> 0.4.0' 15 | pod 'SwiftyUserDefaults', '~> 3.0.0' 16 | pod 'Ji', '~> 2.0.1' 17 | pod 'Kingfisher', '~> 3.2.4' 18 | pod 'Alamofire', '~> 4.3.0' 19 | pod 'RxSwift', '~> 3.1.0' 20 | pod 'RxCocoa', '~> 3.1.0' 21 | pod 'SQLite.swift', '~> 0.11.2' 22 | pod 'R.swift', '~> 3.2.0' 23 | #OC库 24 | pod 'SVPullToRefresh', '0.4.1' 25 | pod 'MBProgressHUD', '~> 1.0.0' 26 | pod 'UMengAnalytics', '~> 3.5.10' 27 | pod 'UMengUShare', '~> 6.2.2' 28 | end 29 | 30 | post_install do |installer| 31 | installer.pods_project.targets.each do |target| 32 | target.build_configurations.each do |config| 33 | config.build_settings['SWIFT_VERSION'] = '3.0' 34 | end 35 | end 36 | end 37 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 陈奕龙(子循) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /UI设计/about.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/about.sketch -------------------------------------------------------------------------------- /UI设计/all_icon.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/all_icon.sketch -------------------------------------------------------------------------------- /UI设计/appstore/3.5-article.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/3.5-article.png -------------------------------------------------------------------------------- /UI设计/appstore/3.5-bbs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/3.5-bbs.png -------------------------------------------------------------------------------- /UI设计/appstore/3.5-chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/3.5-chat.png -------------------------------------------------------------------------------- /UI设计/appstore/3.5-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/3.5-code.png -------------------------------------------------------------------------------- /UI设计/appstore/3.5-home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/3.5-home.png -------------------------------------------------------------------------------- /UI设计/appstore/3.5-profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/3.5-profile.png -------------------------------------------------------------------------------- /UI设计/appstore/4-article.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/4-article.png -------------------------------------------------------------------------------- /UI设计/appstore/4-bbs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/4-bbs.png -------------------------------------------------------------------------------- /UI设计/appstore/4-chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/4-chat.png -------------------------------------------------------------------------------- /UI设计/appstore/4-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/4-code.png -------------------------------------------------------------------------------- /UI设计/appstore/4-home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/4-home.png -------------------------------------------------------------------------------- /UI设计/appstore/4-profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/4-profile.png -------------------------------------------------------------------------------- /UI设计/appstore/4.7-article.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/4.7-article.png -------------------------------------------------------------------------------- /UI设计/appstore/4.7-bbs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/4.7-bbs.png -------------------------------------------------------------------------------- /UI设计/appstore/4.7-chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/4.7-chat.png -------------------------------------------------------------------------------- /UI设计/appstore/4.7-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/4.7-code.png -------------------------------------------------------------------------------- /UI设计/appstore/4.7-home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/4.7-home.png -------------------------------------------------------------------------------- /UI设计/appstore/4.7-profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/4.7-profile.png -------------------------------------------------------------------------------- /UI设计/appstore/article-55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/article-55.png -------------------------------------------------------------------------------- /UI设计/appstore/bbs-55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/bbs-55.png -------------------------------------------------------------------------------- /UI设计/appstore/code-55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/code-55.png -------------------------------------------------------------------------------- /UI设计/appstore/home-55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/home-55.png -------------------------------------------------------------------------------- /UI设计/appstore/jiaoliu-55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/jiaoliu-55.png -------------------------------------------------------------------------------- /UI设计/appstore/profile-55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/appstore/profile-55.png -------------------------------------------------------------------------------- /UI设计/cocoachinaplus.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/cocoachinaplus.sketch -------------------------------------------------------------------------------- /UI设计/iPhone 6 Black + 2.pic_hd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/iPhone 6 Black + 2.pic_hd.png -------------------------------------------------------------------------------- /UI设计/iPhone 6 Black + IMG_2745.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/iPhone 6 Black + IMG_2745.png -------------------------------------------------------------------------------- /UI设计/iPhone 6 Black + IMG_2746.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/iPhone 6 Black + IMG_2746.png -------------------------------------------------------------------------------- /UI设计/iPhone 6 Black + IMG_2747.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/iPhone 6 Black + IMG_2747.png -------------------------------------------------------------------------------- /UI设计/icon.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/icon.sketch -------------------------------------------------------------------------------- /UI设计/icon/iTunesArtwork@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/icon/iTunesArtwork@2x.png -------------------------------------------------------------------------------- /UI设计/icon/iTunesAtWork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/icon/iTunesAtWork.png -------------------------------------------------------------------------------- /UI设计/icon/icon_29pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/icon/icon_29pt.png -------------------------------------------------------------------------------- /UI设计/icon/icon_29pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/icon/icon_29pt@2x.png -------------------------------------------------------------------------------- /UI设计/icon/icon_29pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/icon/icon_29pt@3x.png -------------------------------------------------------------------------------- /UI设计/icon/icon_40pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/icon/icon_40pt.png -------------------------------------------------------------------------------- /UI设计/icon/icon_40pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/icon/icon_40pt@2x.png -------------------------------------------------------------------------------- /UI设计/icon/icon_40pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/icon/icon_40pt@3x.png -------------------------------------------------------------------------------- /UI设计/icon/icon_60pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/icon/icon_60pt@2x.png -------------------------------------------------------------------------------- /UI设计/icon/icon_60pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/icon/icon_60pt@3x.png -------------------------------------------------------------------------------- /UI设计/icon/icon_76pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/icon/icon_76pt.png -------------------------------------------------------------------------------- /UI设计/icon/icon_76pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/icon/icon_76pt@2x.png -------------------------------------------------------------------------------- /UI设计/同步推/4-article_meitu_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/同步推/4-article_meitu_4.jpg -------------------------------------------------------------------------------- /UI设计/同步推/4-bbs_meitu_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/同步推/4-bbs_meitu_5.jpg -------------------------------------------------------------------------------- /UI设计/同步推/4-chat_meitu_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/同步推/4-chat_meitu_6.jpg -------------------------------------------------------------------------------- /UI设计/同步推/4-code_meitu_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/同步推/4-code_meitu_7.jpg -------------------------------------------------------------------------------- /UI设计/同步推/4-home_meitu_8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/同步推/4-home_meitu_8.jpg -------------------------------------------------------------------------------- /UI设计/同步推/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zixun/CocoaChinaPlus/ced1e477a04a6aa1cbe6b30cc1828210559bbadf/UI设计/同步推/icon.png -------------------------------------------------------------------------------- /脚本/打渠道包.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | #定义 4 | QudaoArr=("a" "b" "c") 5 | 6 | targetName="TestQudao" 7 | sourceipaname="TestQudao.ipa" 8 | appname="TestQudao.app" #加压后Pauload目录项.app文件名需要根据自己的项目修改 9 | distDir="/Users/chenyl/Documents/test/ipa" #打包后文件存储目录 10 | version="1.0.0" 11 | rm -rdf "$distDir " 12 | mkdir "$distDir" 13 | 14 | configname="info.plist" 15 | 16 | PlistBuddy="/usr/libexec/PlistBuddy" 17 | plutil="plutil" 18 | 19 | #解压 20 | unzip $sourceipaname #解压母包文件 21 | 22 | #打包 23 | for i in ${QudaoArr[@]} 24 | do 25 | 26 | #进入app文件夹 27 | cd Payload 28 | cd $appname 29 | 30 | #替换plist中的key 31 | ${PlistBuddy} -c "set :ZXApplicationChannel $i" ${configname} 32 | ${plutil} -convert binary1 ${configname} 33 | # cat "${configname}" 34 | 35 | 36 | if [ $i == "App Stroe" ] 37 | then 38 | cd .. 39 | zip -r "${targetName}_${version}_from_$i.zip" $appname #//appstore二进制文件 40 | mv "${targetName}_${version}_from_$i.zip" $distDir 41 | cd .. 42 | else 43 | cd ../.. 44 | zip -r "${targetName}_${version}_from_$i.ipa" Payload SwiftSupport #//打成其他渠道的包 45 | mv "${targetName}_${version}_from_$i.ipa" $distDir 46 | fi 47 | done 48 | rm -rdf Payload 49 | rm -rdf SwiftSupport --------------------------------------------------------------------------------