{"fileId":"2376cbb625883ed52ee223e437e592a4177c415ee6c4aacf4dcf2f96efc7edfa","type":"Contented","path":"/about","modifiedDate":1696943516073,"sections":[],"fields":{"title":"Contented","description":"Contented is a prose bundler for your documentation with pipeline driven authoring-oriented workflow to encourage developers authoring within its contextual Git repository.","editOnGitHubLink":"https://github.com/levaintech/contented/edit/main/README.md"},"headings":[{"depth":1,"headingId":"contented","title":"Contented","children":[{"depth":2,"headingId":"motivation","title":"Motivation","children":[{"depth":3,"headingId":"just-another-ssg","title":"Just Another SSG?","children":[]}]},{"depth":2,"headingId":"powered-by","title":"Powered By","children":[]},{"depth":2,"headingId":"getting-started","title":"Getting Started","children":[{"depth":3,"headingId":"examples","title":"Examples","children":[]}]}]}],"html":"<nav class=\"toc\"><ol class=\"toc-level toc-level-1\"><li class=\"toc-item toc-item-h1\"><a class=\"toc-link toc-link-h1\" href=\"#contented\">Contented</a><ol class=\"toc-level toc-level-2\"><li class=\"toc-item toc-item-h2\"><a class=\"toc-link toc-link-h2\" href=\"#motivation\">Motivation</a><ol class=\"toc-level toc-level-3\"><li class=\"toc-item toc-item-h3\"><a class=\"toc-link toc-link-h3\" href=\"#just-another-ssg\">Just Another SSG?</a></li></ol></li><li class=\"toc-item toc-item-h2\"><a class=\"toc-link toc-link-h2\" href=\"#powered-by\">Powered By</a></li><li class=\"toc-item toc-item-h2\"><a class=\"toc-link toc-link-h2\" href=\"#getting-started\">Getting Started</a><ol class=\"toc-level toc-level-3\"><li class=\"toc-item toc-item-h3\"><a class=\"toc-link toc-link-h3\" href=\"#examples\">Examples</a></li></ol></li></ol></li></ol></nav><h1 id=\"contented\"><a aria-hidden=\"true\" tabindex=\"-1\" href=\"#contented\"><span class=\"icon icon-link\"></span></a>Contented</h1>\n<p><a href=\"https://contented.dev\" target=\"_blank\" rel=\"nofollow\">Contented</a> is a prose bundler for your documentation with pipeline driven\nauthoring-oriented workflow to encourage developers authoring within its contextual Git repository.</p>\n<p>With a headless design of 1 config file <code>contented.config.mjs</code>, developers can start writing\ntheir <a href=\"markdown\">markdown content</a> and preview it on their localhost <code>contented generate --watch</code>.\nChoosing convention over configuration reduces HTML/UI clutter, allowing developers to focus on authoring.</p>\n<p>Authored content can be continuously delivered (CD) into a hosted static site (e.g., GitHub Pages/Netlify/Vercel) for\npreview <code>contented generate</code>. As code drift, so does documentation; this allows each pull request to have an\naccompanying sharable preview of the documentation. With CD, it effectively shift-left your documentation workflow and\nchecks it is compilable and presentable.</p>\n<p>By encouraging authoring next to the source (in the same git repo), developers can contextually document changes as they\ndevelop. All domain-specific changes will go into the <code>main</code> branch with one Git Pull Request.</p>\n<p>With <code>contented build</code>, you can compile your prose into sources <code>index.js</code> and <code>*.json</code>. That output\ninto <code>./dist</code> to <code>npm publish</code> them into any registry of your choice, for you can\neasily <code>npm i @your-scope/your-npm-package</code> and use the processed content on any of your downstream sites. Easily\npulling up-to-date content and prose from individual domain-specific repositories and re-presented. Think microservices,\nbut for your prose!</p>\n<h2 id=\"motivation\"><a aria-hidden=\"true\" tabindex=\"-1\" href=\"#motivation\"><span class=\"icon icon-link\"></span></a>Motivation</h2>\n<p>If you don’t make it easy to get something done (authoring), nobody will go out of their way to get it done perfectly\nevery time. Turn it into a GitOps workflow and give people the necessary tools and power to get it done perfectly every\nsingle time — everyone will get it done, as now there is no other way else to get it done. An efficient workflow\nnaturally satisfies.</p>\n<h3 id=\"just-another-ssg\"><a aria-hidden=\"true\" tabindex=\"-1\" href=\"#just-another-ssg\"><span class=\"icon icon-link\"></span></a>Just Another SSG?</h3>\n<p><strong>This is not a static site generator.</strong> This is a prose processor workflow with a built-in static site generator.\nThe outcome we're trying to achieve is\nthis <a href=\"https://www.jsdelivr.com/package/npm/@contentedjs/contented-example\" target=\"_blank\" rel=\"nofollow\">@contentedjs/contented-example/dist</a></p>\n<blockquote>\n<p><a href=\"others/limitations\">See Contented Limitations</a></p>\n</blockquote>\n<h2 id=\"powered-by\"><a aria-hidden=\"true\" tabindex=\"-1\" href=\"#powered-by\"><span class=\"icon icon-link\"></span></a>Powered By</h2>\n<ul>\n<li><a href=\"https://nextjs.org/\" target=\"_blank\" rel=\"nofollow\">Next</a></li>\n<li><a href=\"https://tailwindcss.com/\" target=\"_blank\" rel=\"nofollow\">Tailwind</a></li>\n<li><a href=\"https://babeljs.io/docs/en/babel-generator\" target=\"_blank\" rel=\"nofollow\">@babel/generator</a></li>\n<li><a href=\"https://www.npmjs.com/package/unified\" target=\"_blank\" rel=\"nofollow\">unified</a></li>\n</ul>\n<h2 id=\"getting-started\"><a aria-hidden=\"true\" tabindex=\"-1\" href=\"#getting-started\"><span class=\"icon icon-link\"></span></a>Getting Started</h2>\n<p>Your docs can be anywhere as long as contented is configured to pick them up.</p>\n<div class=\"rehype-shiki\"><pre class=\"shiki css-variable\" style=\"background-color: var(--shiki-color-background)\"><code><span class=\"line\"><span style=\"color: var(--shiki-color-text)\">repo/</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">├─ packages/**</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">├─ docs/</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">│  ├─ 01-Title 1/*.md</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">│  ├─ 02-Title 2/*.md</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">│  ├─ 03-Title 3/</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">│  │  ├─ 01-Subtitle 1/*.md</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">│  │  ├─ 02-overview.md</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">│  │  └─ 03-faq.md</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">│  └─ package.json</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">├─ contented.config.mjs</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">├─ package.json</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">└─ README.md</span></span></code></pre></div>\n<p><strong>package.json</strong></p>\n<div class=\"rehype-shiki\"><pre class=\"shiki css-variable\" style=\"background-color: var(--shiki-color-background)\"><code><span class=\"line\"><span style=\"color: var(--shiki-color-text)\">{</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">  </span><span style=\"color: var(--shiki-token-keyword)\">\"name\"</span><span style=\"color: var(--shiki-token-punctuation)\">:</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-string-expression)\">\"@contentedjs/contented-example\"</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">  </span><span style=\"color: var(--shiki-token-keyword)\">\"version\"</span><span style=\"color: var(--shiki-token-punctuation)\">:</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-string-expression)\">\"0.0.0\"</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">  </span><span style=\"color: var(--shiki-token-keyword)\">\"private\"</span><span style=\"color: var(--shiki-token-punctuation)\">:</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-constant)\">false</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">  </span><span style=\"color: var(--shiki-token-keyword)\">\"files\"</span><span style=\"color: var(--shiki-token-punctuation)\">:</span><span style=\"color: var(--shiki-color-text)\"> [</span><span style=\"color: var(--shiki-token-string-expression)\">\"dist\"</span><span style=\"color: var(--shiki-color-text)\">]</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">  </span><span style=\"color: var(--shiki-token-keyword)\">\"main\"</span><span style=\"color: var(--shiki-token-punctuation)\">:</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-string-expression)\">\"dist/index.js\"</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">  </span><span style=\"color: var(--shiki-token-keyword)\">\"scripts\"</span><span style=\"color: var(--shiki-token-punctuation)\">:</span><span style=\"color: var(--shiki-color-text)\"> {</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">    </span><span style=\"color: var(--shiki-token-keyword)\">\"write\"</span><span style=\"color: var(--shiki-token-punctuation)\">:</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-string-expression)\">\"contented generate --watch\"</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">    </span><span style=\"color: var(--shiki-token-keyword)\">\"generate\"</span><span style=\"color: var(--shiki-token-punctuation)\">:</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-string-expression)\">\"contented generate\"</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">    </span><span style=\"color: var(--shiki-token-keyword)\">\"build\"</span><span style=\"color: var(--shiki-token-punctuation)\">:</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-string-expression)\">\"contented build\"</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">  }</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">  </span><span style=\"color: var(--shiki-token-keyword)\">\"devDependencies\"</span><span style=\"color: var(--shiki-token-punctuation)\">:</span><span style=\"color: var(--shiki-color-text)\"> {</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">    </span><span style=\"color: var(--shiki-token-keyword)\">\"@contentedjs/contented\"</span><span style=\"color: var(--shiki-token-punctuation)\">:</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-string-expression)\">\"latest\"</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">  }</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">}</span></span></code></pre></div>\n<p><strong>contented.config.mjs</strong></p>\n<div class=\"rehype-shiki\"><pre class=\"shiki css-variable\" style=\"background-color: var(--shiki-color-background)\"><code><span class=\"line\"><span style=\"color: var(--shiki-token-comment)\">/** </span><span style=\"color: var(--shiki-token-keyword)\">@type</span><span style=\"color: var(--shiki-token-comment)\"> </span><span style=\"color: var(--shiki-token-function)\">{import('@contentedjs/contented').ContentedConfig}</span><span style=\"color: var(--shiki-token-comment)\"> */</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-token-keyword)\">export</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-keyword)\">default</span><span style=\"color: var(--shiki-color-text)\"> {</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">  preview</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> {</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">    url</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-string-expression)\">'https://contented.dev'</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">    name</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-string-expression)\">'Contented'</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">    github</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> {</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">      url</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-string-expression)\">'https://github.com/levaintech/contented'</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">    }</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">  }</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">  processor</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> {</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">    pipelines</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> [</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">      {</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">        type</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-string-expression)\">'Docs'</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">        pattern</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-string-expression)\">'docs/**/*.md'</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">        processor</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-string-expression)\">'md'</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">        fields</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> {</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">          title</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> {</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">            type</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-string-expression)\">'string'</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">            required</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-constant)\">true</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">            </span><span style=\"color: var(--shiki-token-function)\">resolve</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> (s) </span><span style=\"color: var(--shiki-token-keyword)\">=></span><span style=\"color: var(--shiki-color-text)\"> s </span><span style=\"color: var(--shiki-token-keyword)\">??</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-string-expression)\">'Contented'</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">          }</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">          description</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> {</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">            type</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-string-expression)\">'string'</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">          }</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">          tags</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> {</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">            type</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-string-expression)\">'string[]'</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">          }</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">        }</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">        </span><span style=\"color: var(--shiki-token-function)\">transform</span><span style=\"color: var(--shiki-token-keyword)\">:</span><span style=\"color: var(--shiki-color-text)\"> (file) </span><span style=\"color: var(--shiki-token-keyword)\">=></span><span style=\"color: var(--shiki-color-text)\"> {</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">          </span><span style=\"color: var(--shiki-token-constant)\">file</span><span style=\"color: var(--shiki-color-text)\">.path </span><span style=\"color: var(--shiki-token-keyword)\">=</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-constant)\">file</span><span style=\"color: var(--shiki-token-function)\">.</span><span style=\"color: var(--shiki-token-constant)\">path</span><span style=\"color: var(--shiki-token-function)\">.replaceAll</span><span style=\"color: var(--shiki-color-text)\">(</span><span style=\"color: var(--shiki-token-string-expression)\">/</span><span style=\"color: var(--shiki-token-keyword)\">^</span><span style=\"color: var(--shiki-token-string-expression)\">\\/docs\\/</span><span style=\"color: var(--shiki-token-keyword)\">?</span><span style=\"color: var(--shiki-token-string-expression)\">/</span><span style=\"color: var(--shiki-token-keyword)\">g</span><span style=\"color: var(--shiki-token-punctuation)\">,</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-string-expression)\">'/'</span><span style=\"color: var(--shiki-color-text)\">);</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">          </span><span style=\"color: var(--shiki-token-constant)\">file</span><span style=\"color: var(--shiki-color-text)\">.sections </span><span style=\"color: var(--shiki-token-keyword)\">=</span><span style=\"color: var(--shiki-color-text)\"> </span><span style=\"color: var(--shiki-token-constant)\">file</span><span style=\"color: var(--shiki-token-function)\">.</span><span style=\"color: var(--shiki-token-constant)\">sections</span><span style=\"color: var(--shiki-token-function)\">.slice</span><span style=\"color: var(--shiki-color-text)\">(</span><span style=\"color: var(--shiki-token-constant)\">1</span><span style=\"color: var(--shiki-color-text)\">);</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">          </span><span style=\"color: var(--shiki-token-keyword)\">return</span><span style=\"color: var(--shiki-color-text)\"> file;</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">        }</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">      }</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">    ]</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">  }</span><span style=\"color: var(--shiki-token-punctuation)\">,</span></span>\n<span class=\"line\"><span style=\"color: var(--shiki-color-text)\">};</span></span></code></pre></div>\n<h3 id=\"examples\"><a aria-hidden=\"true\" tabindex=\"-1\" href=\"#examples\"><span class=\"icon icon-link\"></span></a>Examples</h3>\n<ul>\n<li><a href=\"https://developer.levain.tech\" target=\"_blank\" rel=\"nofollow\">developer.levain.tech</a> Website Built with Contented</li>\n<li><a href=\"https://github.com/levaintech/contented/tree/main/packages/contented-example\" target=\"_blank\" rel=\"nofollow\">levaintech/contented/packages/contented-example</a></li>\n<li><a href=\"https://github.com/levaintech/sticky/tree/main/packages/docs\" target=\"_blank\" rel=\"nofollow\">levaintech/sticky/packages/docs</a></li>\n<li><a href=\"https://github.com/fuxingloh/jellyfishsdk-docs\" target=\"_blank\" rel=\"nofollow\">fuxingloh/jellyfishsdk-docs</a></li>\n</ul>"}