{"id":45245,"date":"2016-02-29T08:00:04","date_gmt":"2016-02-29T16:00:04","guid":{"rendered":"https:\/\/redfindevelop.wpengine.com\/blog\/?p=45245"},"modified":"2020-10-05T13:11:59","modified_gmt":"2020-10-05T20:11:59","slug":"javascript-documentation-generator-showdown","status":"publish","type":"post","link":"https:\/\/www.redfin.com\/news\/javascript-documentation-generator-showdown\/","title":{"rendered":"JavaScript Documentation Generator Showdown"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Redfin has been working on making it easier to share common ui components between the different sites we own, and we need<\/span><span style=\"font-weight: 400;\"> documentation available that makes it easy for new developers to use and contribute. Documentation generators parse existing source code for comments and create documents that can be used for reference. These documents are then used by developers to contribute to development, and to understand how to use the api. To produce the best docs for contributors, we did some serious considering and eventually found the winners.<\/span><\/p>\n<h3><b>Evaluation Criteria<\/b><\/h3>\n<h4><b>Requirements<\/b><\/h4>\n<ol>\n<li><span style=\"font-weight: 400;\">An un-opinionated doc framework: as our common components are fairly mature, we cannot be involved in a major code refactor to appease a documentation framework.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Links and references to tutorials that are maintained independent of code: many kinds of documentation belong in the code &#8212; params, return values &#8212; but many don&#8217;t, such as tutorials. We want them to be tightly coupled, but stored independently.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Links back to the source code: to encourage developers to not only use, but also contribute, it should be easy for developers to go from browsing the documentation to browsing the code from which it was generated, ideally on GitHub.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Graceful handling of ES6 and ES7 features, as well as jsx.<\/span><\/li>\n<\/ol>\n<h4><b>Nice to Have<\/b><\/h4>\n<ol>\n<li><span style=\"font-weight: 400;\">Documentation coverage: you can&#8217;t improve what you don&#8217;t measure.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Customizable output format: it would be nice to have Redfin-styled docs.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Searchable docs: who even browses anymore?<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Todo flagging: it will help recruit developers from feature teams to contribute to the project if there is an explicit list of things for them to do.<\/span><\/li>\n<\/ol>\n<h3><b>Structured vs Unstructured<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Ideally, we&#8217;d like to auto-generate docs from the comments that already exist in the code base with minimal changes. The developers who have come before have done a good job documenting the existing code; using a doc tool should not require rewriting all of our comments. However, to facilitate searchability, documentation coverage, and well-documented contributions in the future, structured comments may actually be better in the long run.<\/span><\/p>\n<h3><b>What We Considered<\/b><\/h3>\n<h3><b>ESDoc<\/b><\/h3>\n<h4><b>Example<\/b><\/h4>\n<ul>\n<li><span style=\"font-weight: 400;\"><a href=\"https:\/\/doc.esdoc.org\/github.com\/lucascaro\/console-commando\/\">Hosted example<\/a><\/span><\/li>\n<\/ul>\n<h4><b>Pros<\/b><\/h4>\n<ul>\n<li><span style=\"font-weight: 400;\">Documentation coverage<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Includes the source code in the docs<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Links directly to the source code from the docs<\/span><\/li>\n<\/ul>\n<h4><b>Cons<\/b><\/h4>\n<ul>\n<li><span style=\"font-weight: 400;\">Only documents ES6 classes exported as ES6 modules<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Embeds the README, but doesn&#8217;t seem to have capability for tutorials<\/span><\/li>\n<\/ul>\n<h2><b>Docco<\/b><\/h2>\n<h4><b>Example<\/b><\/h4>\n<ul>\n<li><a href=\"http:\/\/o2platform.com\/fluentnode\/Array.html\"><span style=\"font-weight: 400;\">Hosted example<\/span><\/a><\/li>\n<\/ul>\n<h4><b>Pros<\/b><\/h4>\n<ul>\n<li><span style=\"font-weight: 400;\">Dead simple<\/span><\/li>\n<li><span style=\"font-weight: 400;\">No refactoring required<\/span><\/li>\n<\/ul>\n<h4><b>Cons<\/b><\/h4>\n<ul>\n<li><span style=\"font-weight: 400;\">Doesn&#8217;t support multi-line comments, with<\/span><a href=\"https:\/\/github.com\/jashkenas\/docco\/pull\/72#issuecomment-8199556\"> <span style=\"font-weight: 400;\">no intention of support ever<\/span><\/a><span style=\"font-weight: 400;\">. The main benefit of docco is that it is <\/span><i><span style=\"font-weight: 400;\">non<\/span><\/i><span style=\"font-weight: 400;\">-normative; why place such an arbitrary limitation?<\/span><\/li>\n<li><span style=\"font-weight: 400;\">No search<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Hard to theme<\/span><\/li>\n<\/ul>\n<h2><b>Documentation.js<\/b><\/h2>\n<h4><b>Example<\/b><\/h4>\n<ul>\n<li><span style=\"font-weight: 400;\"><a href=\"https:\/\/www.mapbox.com\/mapbox-gl-js\/api\/\">Hosted example<\/a><\/span><\/li>\n<\/ul>\n<h4><b>Pros<\/b><\/h4>\n<ul>\n<li><span style=\"font-weight: 400;\">Uses jsdoc syntax<\/span><\/li>\n<\/ul>\n<h4><b>Cons<\/b><\/h4>\n<ul>\n<li><span style=\"font-weight: 400;\">Doesn&#8217;t support jsx (currently under development, see:<\/span><a href=\"https:\/\/github.com\/documentationjs\/documentation\/issues\/135\"> <span style=\"font-weight: 400;\">this issue<\/span><\/a><span style=\"font-weight: 400;\"> that links to<\/span><a href=\"https:\/\/github.com\/substack\/module-deps\/issues\/101\"> <span style=\"font-weight: 400;\">this upstream issue<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Assumes that projects can be documented by crawling requires from a single entry point. We could likely work around this by documenting a spurious js file with just requires for server implementations and client implementations, but it does seem rather strange.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">No tutorial support<\/span><\/li>\n<li><span style=\"font-weight: 400;\">No search<\/span><span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/li>\n<li><span style=\"font-weight: 400;\">Arcane errors:<\/span><\/li>\n<\/ul>\n<p><code>\u00bb documentation .\/core\/MyFile.js -o documentation -f html -g<br \/>\nassert.js:89<br \/>\nthrow new assert.AssertionError({<br \/>\n^<br \/>\nAssertionError: did not recognize object of type \"AssignmentPattern\"<br \/>\n<\/code><\/p>\n<p><span style=\"font-weight: 400;\">Follow it&#8217;s resolution<\/span><a href=\"https:\/\/github.com\/documentationjs\/documentation\/issues\/166\"> <span style=\"font-weight: 400;\">here<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><i><span style=\"font-weight: 400;\">Aside:<\/span><\/i><span style=\"font-weight: 400;\"> This seems to be a feature rather than a bug. See their wiki:documentation is an OPEN Open Source Project. This means that individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is more like an open wiki than a standard guarded open source project, which makes their 44 open Github issues rather unsurprising.<\/span><\/p>\n<h2><b>YUIDoc<\/b><\/h2>\n<h4><b>Pros<\/b><\/h4>\n<ul>\n<li><span style=\"font-weight: 400;\">Redfin-able: yuidoc &#8211;themedir .\/mytheme allows you to specify overrides for your docs using<\/span><a href=\"http:\/\/handlebarsjs.com\/\"> <span style=\"font-weight: 400;\">handlebars.js<\/span><\/a><span style=\"font-weight: 400;\"> templates.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Outputs a mess of helpful warnings, but doesn&#8217;t hork!<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Search<\/span><\/li>\n<li>Links to source code<\/li>\n<li><span style=\"font-weight: 400;\">Auto links to<\/span><a href=\"https:\/\/developer.mozilla.org\/en-US\/\"> <span style=\"font-weight: 400;\">MDN<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/li>\n<\/ul>\n<h4><b>Cons<\/b><\/h4>\n<ul>\n<li><span style=\"font-weight: 400;\">Will require fairly significant refactoring of existing comments (only the file we stole from Yahoo, History, output docs as-is).<\/span><\/li>\n<\/ul>\n<h3><b>What We Decided<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Our clear winners were YUIdoc for api docs and Docco for annotated source code. We liked that YUIdoc is easily themeable, it gives tons of helpful warnings, and it runs as-is on our existing codebase. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">However, ESDoc is awesome! I had never seen documentation coverage before, and the feature is amazing. The links to the source code are incredible, the default theme is beautiful. \u00a0Unfortunately, the requirement that everything has to be a ES6 module makes it nearly impossible to use for anything other than toy projects, and actually impossible for a large, legacy projects. Furthermore, we want to theme it with Redfin themes. Although different frameworks work for different projects and use cases, ESDoc ultimately wasn\u2019t right for us, but I hope that someday it is.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Redfin evaluates various JavaScript documentation generators and find the winners for our case.<\/p>\n","protected":false},"author":13177,"featured_media":45676,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[57],"tags":[],"dashboard":[],"coauthors":[],"class_list":["post-45245","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-company-news"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.7 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>JavaScript Documentation Generator Showdown - Redfin Real Estate News<\/title>\n<meta name=\"description\" content=\"Redfin evaluates various JavaScript documentation generators and find the winners for our case.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.redfin.com\/news\/javascript-documentation-generator-showdown\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JavaScript Documentation Generator Showdown\" \/>\n<meta property=\"og:description\" content=\"Redfin evaluates various JavaScript documentation generators and find the winners for our case.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.redfin.com\/news\/javascript-documentation-generator-showdown\/\" \/>\n<meta property=\"og:site_name\" content=\"Redfin Real Estate News\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/redfin\" \/>\n<meta property=\"article:published_time\" content=\"2016-02-29T16:00:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-10-05T20:11:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2016\/02\/YuiDoc-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"400\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Doug Wade\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@redfin\" \/>\n<meta name=\"twitter:site\" content=\"@redfin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Doug Wade\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/javascript-documentation-generator-showdown\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/javascript-documentation-generator-showdown\\\/\"},\"author\":{\"name\":\"Doug Wade\",\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#\\\/schema\\\/person\\\/ce8e1b698aeb1c41384c05ef5c97ddbc\"},\"headline\":\"JavaScript Documentation Generator Showdown\",\"datePublished\":\"2016-02-29T16:00:04+00:00\",\"dateModified\":\"2020-10-05T20:11:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/javascript-documentation-generator-showdown\\\/\"},\"wordCount\":765,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/javascript-documentation-generator-showdown\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.redfin.com/news\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/YuiDoc-1.jpg\",\"articleSection\":[\"Company News\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.redfin.com/news\\\/javascript-documentation-generator-showdown\\\/#respond\"]}],\"copyrightYear\":\"2016\",\"copyrightHolder\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/javascript-documentation-generator-showdown\\\/\",\"url\":\"https:\\\/\\\/www.redfin.com/news\\\/javascript-documentation-generator-showdown\\\/\",\"name\":\"JavaScript Documentation Generator Showdown - Redfin Real Estate News\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/javascript-documentation-generator-showdown\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/javascript-documentation-generator-showdown\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.redfin.com/news\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/YuiDoc-1.jpg\",\"datePublished\":\"2016-02-29T16:00:04+00:00\",\"dateModified\":\"2020-10-05T20:11:59+00:00\",\"description\":\"Redfin evaluates various JavaScript documentation generators and find the winners for our case.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/javascript-documentation-generator-showdown\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.redfin.com/news\\\/javascript-documentation-generator-showdown\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/javascript-documentation-generator-showdown\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.redfin.com/news\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/YuiDoc-1.jpg\",\"contentUrl\":\"https:\\\/\\\/www.redfin.com/news\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/YuiDoc-1.jpg\",\"width\":400,\"height\":400},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/javascript-documentation-generator-showdown\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.redfin.com/news\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript Documentation Generator Showdown\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#website\",\"url\":\"https:\\\/\\\/www.redfin.com/news\\\/\",\"name\":\"Redfin Real Estate News\",\"description\":\"The latest real estate news and research from technology-powered residential real estate company, Redfin.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.redfin.com/news\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#organization\",\"name\":\"Redfin\",\"url\":\"https:\\\/\\\/www.redfin.com/news\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.redfin.com\\\/news\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/Redfin-News-Logo.png\",\"contentUrl\":\"https:\\\/\\\/www.redfin.com\\\/news\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/Redfin-News-Logo.png\",\"width\":1100,\"height\":235,\"caption\":\"Redfin\"},\"image\":{\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/redfin\",\"https:\\\/\\\/x.com\\\/redfin\",\"https:\\\/\\\/www.instagram.com\\\/redfinrealestate\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/redfin\",\"https:\\\/\\\/www.pinterest.com\\\/redfin\\\/\",\"https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Redfin\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.redfin.com/news\\\/#\\\/schema\\\/person\\\/ce8e1b698aeb1c41384c05ef5c97ddbc\",\"name\":\"Doug Wade\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1cb4c01b6eebf4bb7770e674ad8d70385f0e968d07b6345cd98a9c4f06020943?s=96&d=wp_user_avatar&r=g98695681813068d628dacc4b535b1a8d\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1cb4c01b6eebf4bb7770e674ad8d70385f0e968d07b6345cd98a9c4f06020943?s=96&d=wp_user_avatar&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1cb4c01b6eebf4bb7770e674ad8d70385f0e968d07b6345cd98a9c4f06020943?s=96&d=wp_user_avatar&r=g\",\"caption\":\"Doug Wade\"},\"description\":\"I'm a software developer at Redfin on the Platforms team. I'm a cyclist, soccer hooligan, and beer enthusiast.\",\"sameAs\":[\"https:\\\/\\\/plus.google.com\\\/106007864994207794940\"],\"url\":\"https:\\\/\\\/www.redfin.com/news\\\/author\\\/doug-waderedfin-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"JavaScript Documentation Generator Showdown - Redfin Real Estate News","description":"Redfin evaluates various JavaScript documentation generators and find the winners for our case.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.redfin.com\/news\/javascript-documentation-generator-showdown\/","og_locale":"en_US","og_type":"article","og_title":"JavaScript Documentation Generator Showdown","og_description":"Redfin evaluates various JavaScript documentation generators and find the winners for our case.","og_url":"https:\/\/www.redfin.com\/news\/javascript-documentation-generator-showdown\/","og_site_name":"Redfin Real Estate News","article_publisher":"https:\/\/www.facebook.com\/redfin","article_published_time":"2016-02-29T16:00:04+00:00","article_modified_time":"2020-10-05T20:11:59+00:00","og_image":[{"width":400,"height":400,"url":"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2016\/02\/YuiDoc-1.jpg","type":"image\/jpeg"}],"author":"Doug Wade","twitter_card":"summary_large_image","twitter_creator":"@redfin","twitter_site":"@redfin","twitter_misc":{"Written by":"Doug Wade","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.redfin.com\/news\/javascript-documentation-generator-showdown\/#article","isPartOf":{"@id":"https:\/\/www.redfin.com\/news\/javascript-documentation-generator-showdown\/"},"author":{"name":"Doug Wade","@id":"https:\/\/www.redfin.com\/news\/#\/schema\/person\/ce8e1b698aeb1c41384c05ef5c97ddbc"},"headline":"JavaScript Documentation Generator Showdown","datePublished":"2016-02-29T16:00:04+00:00","dateModified":"2020-10-05T20:11:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.redfin.com\/news\/javascript-documentation-generator-showdown\/"},"wordCount":765,"commentCount":0,"publisher":{"@id":"https:\/\/www.redfin.com\/news\/#organization"},"image":{"@id":"https:\/\/www.redfin.com\/news\/javascript-documentation-generator-showdown\/#primaryimage"},"thumbnailUrl":"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2016\/02\/YuiDoc-1.jpg","articleSection":["Company News"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.redfin.com\/news\/javascript-documentation-generator-showdown\/#respond"]}],"copyrightYear":"2016","copyrightHolder":{"@id":"https:\/\/www.redfin.com\/news\/#organization"}},{"@type":"WebPage","@id":"https:\/\/www.redfin.com\/news\/javascript-documentation-generator-showdown\/","url":"https:\/\/www.redfin.com\/news\/javascript-documentation-generator-showdown\/","name":"JavaScript Documentation Generator Showdown - Redfin Real Estate News","isPartOf":{"@id":"https:\/\/www.redfin.com\/news\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.redfin.com\/news\/javascript-documentation-generator-showdown\/#primaryimage"},"image":{"@id":"https:\/\/www.redfin.com\/news\/javascript-documentation-generator-showdown\/#primaryimage"},"thumbnailUrl":"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2016\/02\/YuiDoc-1.jpg","datePublished":"2016-02-29T16:00:04+00:00","dateModified":"2020-10-05T20:11:59+00:00","description":"Redfin evaluates various JavaScript documentation generators and find the winners for our case.","breadcrumb":{"@id":"https:\/\/www.redfin.com\/news\/javascript-documentation-generator-showdown\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.redfin.com\/news\/javascript-documentation-generator-showdown\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.redfin.com\/news\/javascript-documentation-generator-showdown\/#primaryimage","url":"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2016\/02\/YuiDoc-1.jpg","contentUrl":"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2016\/02\/YuiDoc-1.jpg","width":400,"height":400},{"@type":"BreadcrumbList","@id":"https:\/\/www.redfin.com\/news\/javascript-documentation-generator-showdown\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.redfin.com\/news\/"},{"@type":"ListItem","position":2,"name":"JavaScript Documentation Generator Showdown"}]},{"@type":"WebSite","@id":"https:\/\/www.redfin.com\/news\/#website","url":"https:\/\/www.redfin.com\/news\/","name":"Redfin Real Estate News","description":"The latest real estate news and research from technology-powered residential real estate company, Redfin.","publisher":{"@id":"https:\/\/www.redfin.com\/news\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.redfin.com\/news\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.redfin.com\/news\/#organization","name":"Redfin","url":"https:\/\/www.redfin.com\/news\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.redfin.com\/news\/#\/schema\/logo\/image\/","url":"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2020\/10\/Redfin-News-Logo.png","contentUrl":"https:\/\/www.redfin.com\/news\/wp-content\/uploads\/2020\/10\/Redfin-News-Logo.png","width":1100,"height":235,"caption":"Redfin"},"image":{"@id":"https:\/\/www.redfin.com\/news\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/redfin","https:\/\/x.com\/redfin","https:\/\/www.instagram.com\/redfinrealestate\/","https:\/\/www.linkedin.com\/company\/redfin","https:\/\/www.pinterest.com\/redfin\/","https:\/\/en.wikipedia.org\/wiki\/Redfin"]},{"@type":"Person","@id":"https:\/\/www.redfin.com\/news\/#\/schema\/person\/ce8e1b698aeb1c41384c05ef5c97ddbc","name":"Doug Wade","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1cb4c01b6eebf4bb7770e674ad8d70385f0e968d07b6345cd98a9c4f06020943?s=96&d=wp_user_avatar&r=g98695681813068d628dacc4b535b1a8d","url":"https:\/\/secure.gravatar.com\/avatar\/1cb4c01b6eebf4bb7770e674ad8d70385f0e968d07b6345cd98a9c4f06020943?s=96&d=wp_user_avatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1cb4c01b6eebf4bb7770e674ad8d70385f0e968d07b6345cd98a9c4f06020943?s=96&d=wp_user_avatar&r=g","caption":"Doug Wade"},"description":"I'm a software developer at Redfin on the Platforms team. I'm a cyclist, soccer hooligan, and beer enthusiast.","sameAs":["https:\/\/plus.google.com\/106007864994207794940"],"url":"https:\/\/www.redfin.com\/news\/author\/doug-waderedfin-com\/"}]}},"_links":{"self":[{"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/posts\/45245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/users\/13177"}],"replies":[{"embeddable":true,"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/comments?post=45245"}],"version-history":[{"count":0,"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/posts\/45245\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/media\/45676"}],"wp:attachment":[{"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/media?parent=45245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/categories?post=45245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/tags?post=45245"},{"taxonomy":"dashboard","embeddable":true,"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/dashboard?post=45245"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.redfin.com\/news\/wp-json\/wp\/v2\/coauthors?post=45245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}