GithubHelp home page GithubHelp logo

cocoapods / cocoadocs.org Goto Github PK

View Code? Open in Web Editor NEW
95.0 19.0 15.0 4.16 MB

Static generator for CocoaDocs.org

Home Page: http://cocoadocs.org

License: MIT License

HTML 27.83% Ruby 53.40% CSS 15.53% JavaScript 3.24%

cocoadocs.org's Introduction

CocoaDocs.org

Build Status

State of CocoaDocs

CocoaDocs was deprecated back in early 2015 and now has a replacement for the CocoaPods-specific infrastructure. If you've come to get help about a CocoaDocs page, I'm afraid it doesn't exist anymore.

Getting Help

If you're wanting to debug your own library, please consult the ISSUE_TEMPLATE.md.

What is CocoaDocs

CocoaDocs is essentially 2 tools, one is a script for generating complex appledoc templates and the other is a server aspect for reacting to webhook notifications.

Installation instructions

  1. git clone [email protected]:CocoaPods/cocoadocs.org.git
  2. cd cocoadocs.org
  3. bundle install
  4. bundle exec rake install_tools

The install_tools tasks will install the additional tools required for CocoaDocs to work:

* [cloc](https://github.com/AlDanial/cloc)
* [appledoc](https://github.com/tomaz/appledoc)
* [carthage](https://github.com/Carthage/Carthage)
* [AWS' official CLI tool](https://aws.amazon.com/cli/)

How it works for the 99% use cases:

CocoaDocs receives webhook notifications from the CocoaPods/Specs repo on GitHub whenever a CocoaPod is updated.

A Swift Pod will create documentation using Jazzy. If this fails, perhaps due to new Swift version support, than it will fall back to Objective-C. An Objective-C Pod will use Appledoc to parse your library.

If you have a Swift library and it's only showing Objective-C classes (or no classes) then Jazzy has crashed on your library, we'd recommend testing that out locally.

What control do I have over CocoaDocs as a library author?
  • For Objective-C projects, you have the ability to edit the styling of CocoaDocs for your own libraries to give some personal branding. This is done by adding a .cocoadocs.yml file to the root of your library, which overwrite these properties:

    highlight-font: '"GT Walsheim", "gt_walsheim_regular", "Avant Garde Gothic ITCW01Dm", "Avant Garde", "Helvetica Neue", "Arial"'
    
    body: '"Helvetica Neue", "Arial", san-serif'
    code: '"Monaco", "Menlo", "Consolas", "Courier New", monospace'
    
    highlight-color: '#ED0015'
    highlight-dark-color: '#A90010'
    
    darker-color: '#C6B7B2'
    darker-dark-color: '#A8A8A8'
    
    background-color: '#F2F2F2'
    alt-link-color: '#B7233F'
    warning-color: '#B80E3D'

    All defaults are stored in this config file for you to overwite.

  • You can find an example of styling at ARAnalytics's .cocoadocs.yml

  • You can change the location of your readme with readme: path/to/README.md in your .cocoadocs.yml.

  • You can add your own documentation guides, either from remote markdown files or from files locally inside the library. CocoaDocs will automatically convert github wiki pages to the markdown behind it. These only work on Objective-C codebases.

    additional_guides:
      - https://github.com/magicalpanda/MagicalRecord/wiki/Installation
      - https://github.com/CocoaPods/CocoaPods/wiki/A-pod-specification
      - docs/Getting_started.md
  • If you host your own documentation, and/or just prefer to not use CocoaDocs you can use the documentation_url reference in your Podspec.

Previewing my library in CocoaDocs

First, clone this repo: git clone https://github.com/CocoaPods/cocoadocs.org then run bundle install and then run bundle exec rake install_tools to get all pre-requisite apps set up.

To preview your library run:

bundle exec ./cocoadocs.rb preview ARAnalytics

This will get the master version of your library and run it through CocoaDocs, then open the resulting folder, you can open the index.html in a web browser to preview locally.

CocoaDocs Admin

The CocoaPods' CocoaDocs server is hosted on macminicolo.net provided by Button. We use RSA public keys to log in. You'll have to get your id_rsa.pub to an existing admin ( currently orta /segiddins ) to get access.

SSH access is automated via the Rakefile:

  • bundle exec rake deploy - will log in via SSH, stop the API server, update it and then bring the server back up.

  • bundle exec rake doc["pod_name"] - will log in via SSH, and run a re-doc for a pod. Similar to the redeploy API, but you can see the logs.

Thanks!

The creation of CocoaDocs v2 has been made possible with help from the following:

cocoadocs.org's People

Contributors

abbeycode avatar ashfurrow avatar codafi avatar dhoerl avatar endocrimes avatar fabiopelosin avatar floere avatar jogu avatar kapeli avatar kylef avatar martijnwalraven avatar neonichu avatar orta avatar palleas avatar rastersize avatar segiddins avatar squarefrog avatar swizzlr avatar vslavik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cocoadocs.org's Issues

Private classes listed in documentation

It seems that every class in the library project has a docs page generated. Would be better if just stuff declared in a public header file gets documented.

Example: http://cocoadocs.org/docsets/Slash/0.1/
Project/podspec: https://github.com/chrisdevereux/Slash

SLSMarkupParser is the only public class in this library. It's a bit confusing having all the other ones listed.

Not sure how this plays with libraries that expose different classes depending on the target platform. Maybe generate a different set of docs for each?

Support Private Pod Repos

I'd like to repurpose this to spin up documentation on some internal libraries we are tracking internally, but the current script is a little to specific for the public repo.

Would like to see some hooks to make it more generic.

State of Dash integration

Is the Dash integration ready for primetime? I noticed only libraries that start with A show the Dash button and the regeneration doesn't seem to have progressed to B. Anyways, my question is: should I direct users to CocoaDocs.org in the next Dash update (which will come in about 8-10 days)?

Dash external resources (e.g. images)

Some docsets (e.g. http://cocoadocs.org/docsets/AFNetworking/1.2.0/) include external resources (the AFNetworking logo).

I think it would be unfeasible for you to parse all documentation pages and download online resources for offline use somehow.

In the next update of Dash, I will allow the loading of online resources. However, please try to avoid using online resources yourself as it will increase load time unnecessarily and would make the docset not work while offline.

So, close this issue, it will get fixed in the next update of Dash.

Dash integration is broken

Dash version: latest from App Store
Steps to reproduce:

  1. Goto cocoadocs.org, choose any library
  2. Press Dash icon in right upper conner.
  3. Dash window will be opened with new docset available for download.
  4. Press download button
    Result: Dash will fail to download docset
    If you copy url from error description such as http://cocoadocs.org/docsets/ELCTextFieldCell/ELCTextFieldCell.xml, you'll see that url to docset contains double slash (http://cocoadocs.org//docsets/ELCTextFieldCell/ELCTextFieldCell.tgz). That's the reason Dash unable to download docs. If you delete double slash everything works fine.

Docsets & Docset feeds

Currently disabled to save bandwidth, they should be easily accessible in that weird xar format.

Xcode failing to download docsets

I've just found that attempting to install docsets using the atom feed results in an error as shown in the attached screen shot. I've had this with MagicalRecord, StackMob, & UIKeyChainStore.

screen shot 2013-07-10 at 2 24 42 am

Cheers, Pedro

Improve Github Integration

  • Make the github logos alpha hidden, not display none so you have a clue they're there.
  • Make the "Declared in DFPExtras.h" link to a github search in the project for the file. Or ideally link directly or the file. ( This is hard due to branches, but maybe could work. )

/cc @ursachec

Private headers are getting added

  appledoc --project-name MSActiveConfig --project-company 'Javier Soto' --index-desc resources/overwritten_index.html --company-id com.cocoadocs.msactiveconfig --project-version 1.0.1 --no-install-docset --templates ./appledoc_templates --verbose 5 --keep-intermediate-files --create-html --publish-docset --docset-feed-url http://cocoadocs.org/docsets/MSActiveConfig/xcode-docset.atom --docset-atom-filename xcode-docset.atom --docset-package-url http://cocoadocs.org/docsets/MSActiveConfig/docset.xar --docset-package-filename docset --docset-fallback-url http://cocoadocs.org/docsets/MSActiveConfig --docset-feed-name MSActiveConfig --keep-undocumented-objects --keep-undocumented-members --search-undocumented-doc --output 
 /Users/orta/spiel/html/cocoadocs/activity/docsets/MSActiveConfig/1.0.1/ 
 /Users/orta/spiel/html/cocoadocs/activity/download/MSActiveConfig/1.0.1/MSActiveConfig/MSActiveConfig/Classes/MSActiveConfig\+Private.h 
 /Users/orta/spiel/html/cocoadocs/activity/download/MSActiveConfig/1.0.1/MSActiveConfig/MSActiveConfig/Classes/MSActiveConfig.h 
 /Users/orta/spiel/html/cocoadocs/activity/download/MSActiveConfig/1.0.1/MSActiveConfig/MSActiveConfig/Classes/MSActiveConfigConfigurationState\+MSLazyLoadedState.h 
 /Users/orta/spiel/html/cocoadocs/activity/download/MSActiveConfig/1.0.1/MSActiveConfig/MSActiveConfig/Classes/MSActiveConfigConfigurationState\+Private.h 
 /Users/orta/spiel/html/cocoadocs/activity/download/MSActiveConfig/1.0.1/MSActiveConfig/MSActiveConfig/Classes/MSActiveConfigConfigurationState.h 
 /Users/orta/spiel/html/cocoadocs/activity/download/MSActiveConfig/1.0.1/MSActiveConfig/MSActiveConfig/Classes/MSActiveConfigDownloader.h 
 /Users/orta/spiel/html/cocoadocs/activity/download/MSActiveConfig/1.0.1/MSActiveConfig/MSActiveConfig/Classes/MSActiveConfigListener.h 
 /Users/orta/spiel/html/cocoadocs/activity/download/MSActiveConfig/1.0.1/MSActiveConfig/MSActiveConfig/Classes/MSActiveConfigMutableConfigurationState.h 
 /Users/orta/spiel/html/cocoadocs/activity/download/MSActiveConfig/1.0.1/MSActiveConfig/MSActiveConfig/Classes/MSActiveConfigSection\+Private.h 
 /Users/orta/spiel/html/cocoadocs/activity/download/MSActiveConfig/1.0.1/MSActiveConfig/MSActiveConfig/Classes/MSActiveConfigSection.h 
 /Users/orta/spiel/html/cocoadocs/activity/download/MSActiveConfig/1.0.1/MSActiveConfig/MSActiveConfig/Classes/MSActiveConfigStore.h 
 /Users/orta/spiel/html/cocoadocs/activity/download/MSActiveConfig/1.0.1/MSActiveConfig/MSActiveConfig/Classes/MSJSONURLRequestActiveConfigDownloader.h 
 /Users/orta/spiel/html/cocoadocs/activity/download/MSActiveConfig/1.0.1/MSActiveConfig/MSActiveConfig/Classes/MSUserDefaultsActiveConfigStore.h 

typo in description

The description refers to cocoadoc.org rather than cocoadocs.org; missing an s on the domain, I believe.

CocoaDocs does not support subspecs source_files

Looking at the docs generated for one of my projects, I see some private methods listed at the bottom that are not included in the header file.

Perhaps we could provide more deeply supported integration with CocoaPods, and allow a new parameter in the podspec itself to point to an AppleDoc plist within the repo (Since AppleDoc supports providing it a plist instead of a command line list of arguements). That would let developers tune what information should be documented by CocoaDocs.

Thoughts? cc: @alloy

UPDATE:
Renaming issue to match the problem.

Dash CSS issue

Some CSS files are still not available locally:

<link rel="stylesheet" type="text/css" media="print" href="http://cocoadocs.org/assets/appledoc_print.css" />
<link rel="stylesheet" type="text/css" href="http://cocoadocs.org/assets/appledoc_gfm.css" />

DocSets generated online doesn't include all assets

Documentation sets generated using the provided .atom link on a given page e.g. AFIncrementalStore are missing the following:

  • assets/appledoc_setup.js
  • assets/img/xcode_tiny.png
  • assets/img/dash_tiny.png
  • ../metadata.json

Xcode 4.6.3 currently doesn't seem to care, but future versions of Xcode may display a modal dialog for each missing asset whenever an affected documentation set is viewed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.