{"id":23372655,"url":"https://github.com/jellybeansoup/ios-sherpa","last_synced_at":"2025-04-10T17:41:51.208Z","repository":{"id":5785413,"uuid":"53920629","full_name":"jellybeansoup/ios-sherpa","owner":"jellybeansoup","description":"A drop-in view controller for displaying a User Guide or FAQ.","archived":false,"fork":false,"pushed_at":"2023-03-16T06:24:27.000Z","size":1105,"stargazers_count":12,"open_issues_count":3,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-24T15:21:48.413Z","etag":null,"topics":["cocoapods","feedback","helpdesk","ios","json","user-guide"],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jellybeansoup.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-03-15T06:31:58.000Z","updated_at":"2024-09-24T23:03:15.000Z","dependencies_parsed_at":"2023-02-10T23:45:49.252Z","dependency_job_id":null,"html_url":"https://github.com/jellybeansoup/ios-sherpa","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jellybeansoup%2Fios-sherpa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jellybeansoup%2Fios-sherpa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jellybeansoup%2Fios-sherpa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jellybeansoup%2Fios-sherpa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jellybeansoup","download_url":"https://codeload.github.com/jellybeansoup/ios-sherpa/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248262192,"owners_count":21074261,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cocoapods","feedback","helpdesk","ios","json","user-guide"],"created_at":"2024-12-21T16:48:39.946Z","updated_at":"2025-04-10T17:41:51.186Z","avatar_url":"https://github.com/jellybeansoup.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Sherpa](https://raw.githubusercontent.com/jellybeansoup/ios-sherpa/main/example/SherpaExample/Images.xcassets/logo.dataset/logo.svg?sanitize=true)\n\nA drop-in solution for displaying a user guide in an iOS app, based on a JSON template.\n\n[![Unit Tests](https://github.com/jellybeansoup/ios-sherpa/actions/workflows/unit-tests.yml/badge.svg?branch=main)](https://github.com/jellybeansoup/ios-sherpa/actions/workflows/unit-tests.yml)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=jellybeansoup-ios-sherpa\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=jellybeansoup-ios-sherpa)\n[![CocoaPods Compatible](https://img.shields.io/cocoapods/v/Sherpa.svg)](https://cocoapods.org/pods/Sherpa)\n\n## Features\n\n- Compatible with iOS 8.4 and above.\n- Provide a plain JSON file for content.\n- Deep-link to articles for contextual help.\n- User search with query highlighting.\n- Built in feedback mechanisms for email and Twitter.\n- Customize colors, and optionally provide a `UITableViewCell` subclass to use.\n\n## Installation\n\n### [Swift Package Manager](https://developer.apple.com/documentation/xcode/adding_package_dependencies_to_your_app) (for Apple platforms only)\n\nIn Xcode, select _File_ \u003e _Swift Packages_ \u003e _Add Package Dependency_ and enter the repository URL:\n\n```\nhttps://github.com/jellybeansoup/ios-sherpa\n```\n\n### [CocoaPods](http://cocoapods.org/)\n\nAdd the following line to your `Podfile`:\n\n```\npod 'Sherpa'\n```\n\n### [Carthage](https://github.com/Carthage/Carthage)\n\nAdd the following line to your `Cartfile`:\n\n```\ngithub \"jellybeansoup/ios-sherpa\"\n```\n\n## How to Use\n\nSherpa uses a JSON file as the source of its content, which allows you to provide a file in your app bundle, download a file from a server, or both! It handles parsing of the JSON for you, all you need to do is give it the local URL to the document, and it will handle the rest. You don't even need to wrap the view controller in a `UINavigationController`, as this is done automatically; just present the `SherpaViewController` directly and you're good to go.\n\n```swift\nlet viewController = SherpaViewController(fileAtURL: fileURL)\nself.presentViewController(viewController, animated: true, completion: nil)\n```\n\nTo deep link to a specific article for contextual help, you can optionally provide an `articleKey` that matches the key on the article you would like to link to. Sherpa will present with the selected article open, and allow users to navigate back to the full list of articles to find additional help if they want to.\n\n```swift\nlet viewController = SherpaViewController(fileAtURL: fileURL)\nviewController.articleKey = \"related-articles\"\nself.presentViewController(viewController, animated: true, completion: nil)\n```\n\nIf you'd like to push Sherpa into an existing `UINavigationController` stack, this is handled gracefully without any additional configuration required. Simply push the `SherpaViewController` directly.\n\n```swift\nlet viewController = SherpaViewController(fileAtURL: fileURL)\nviewController.articleKey = \"related-articles\"\nself.navigationController?.pushViewController(viewController, animated: true)\n```\n\nMore information about setting up the JSON document can be found within [the example application's UserGuide.json file](https://raw.githubusercontent.com/jellybeansoup/ios-sherpa/main/example/SherpaExample/UserGuide.json). You can read this user guide and see the examples in action by taking the example application itself for a spin. CocoaPods makes this easy with the `pod try Sherpa` command, which can be run from Terminal if you have CocoaPods installed.\n\n## Documentation\n\nYou can [find documentation for this project here](https://jellybeansoup.github.io/ios-sherpa/). This documentation is automatically generated with [jazzy](https://github.com/realm/jazzy) from a [GitHub Action](https://jellybeansoup.github.io/ios-sherpa/blob/main/.github/workflows/documentation.yml) and hosted with [GitHub Pages](https://pages.github.com/).\n\nTo generate documentation locally, run `make documentation` or `sh ./scripts/documentation.sh` from the repo's root directory. The output will be generated in the docs folder, and should _not_ be included with commits (as the online documentation is automatically generated and updated).\n\n## Get in Touch\n\nIf you have questions, I can be found on [Twitter](https://twitter.com/jellybeansoup), or you can get in touch via [email](https://jellystyle.com/contact).\n\n## Released under the BSD License\n\nCopyright © 2021 Daniel Farrelly\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\n*\tRedistributions of source code must retain the above copyright notice, this list\n\tof conditions and the following disclaimer.\n*\tRedistributions in binary form must reproduce the above copyright notice, this\n\tlist of conditions and the following disclaimer in the documentation and/or\n\tother materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\nIN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\nINDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\nBUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\nOR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\nADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjellybeansoup%2Fios-sherpa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjellybeansoup%2Fios-sherpa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjellybeansoup%2Fios-sherpa/lists"}