{"id":"059b826225c1c927ac06488787e3c69850102c27e12848161c9e9b0b71b11e79","type":"Contented","path":"/ballad","modifiedDate":1686373756200,"sections":[],"fields":{"title":"Ballad of Engineering"},"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=\"#ballad-of-engineering\">Ballad of Engineering</a><ol class=\"toc-level toc-level-2\"><li class=\"toc-item toc-item-h2\"><a class=\"toc-link toc-link-h2\" href=\"#while-at-saas-team\">While at SaaS Team</a><ol class=\"toc-level toc-level-3\"><li class=\"toc-item toc-item-h3\"><a class=\"toc-link toc-link-h3\" href=\"#engineer-write-code\">Engineer Write code</a></li><li class=\"toc-item toc-item-h3\"><a class=\"toc-link toc-link-h3\" href=\"#engineer-write-documentation\">Engineer Write Documentation</a></li><li class=\"toc-item toc-item-h3\"><a class=\"toc-link toc-link-h3\" href=\"#git-workflow-ci\">Git Workflow CI</a></li><li class=\"toc-item toc-item-h3\"><a class=\"toc-link toc-link-h3\" href=\"#git-workflow-cd\">Git Workflow CD</a></li></ol></li><li class=\"toc-item toc-item-h2\"><a class=\"toc-link toc-link-h2\" href=\"#while-at-productmarketing-team\">While at Product/Marketing Team</a><ol class=\"toc-level toc-level-3\"><li class=\"toc-item toc-item-h3\"><a class=\"toc-link toc-link-h3\" href=\"#engineer-implement-page\">Engineer Implement Page</a></li><li class=\"toc-item toc-item-h3\"><a class=\"toc-link toc-link-h3\" href=\"#dependabot\">Dependabot</a></li><li class=\"toc-item toc-item-h3\"><a class=\"toc-link toc-link-h3\" href=\"#engineer-review-changes\">Engineer Review Changes</a></li></ol></li></ol></li></ol></nav><h1 id=\"ballad-of-engineering\"><a aria-hidden=\"true\" tabindex=\"-1\" href=\"#ballad-of-engineering\"><span class=\"icon icon-link\"></span></a>Ballad of Engineering</h1>\n<pre class=\"shiki\" style=\"background-color: #22272e\"><code><span class=\"line\"><span style=\"color: #ADBAC7\">npm i</span></span></code></pre>\n<h2 id=\"while-at-saas-team\"><a aria-hidden=\"true\" tabindex=\"-1\" href=\"#while-at-saas-team\"><span class=\"icon icon-link\"></span></a>While at SaaS Team</h2>\n<h3 id=\"engineer-write-code\"><a aria-hidden=\"true\" tabindex=\"-1\" href=\"#engineer-write-code\"><span class=\"icon icon-link\"></span></a>Engineer Write code</h3>\n<pre class=\"shiki\" style=\"background-color: #22272e\"><code><span class=\"line\"><span style=\"color: #6CB6FF\">echo</span><span style=\"color: #ADBAC7\"> </span><span style=\"color: #96D0FF\">\"function foo()\"</span><span style=\"color: #ADBAC7\"> </span><span style=\"color: #F47067\">></span><span style=\"color: #ADBAC7\"> bar.js</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">jest bar.js</span></span></code></pre>\n<h3 id=\"engineer-write-documentation\"><a aria-hidden=\"true\" tabindex=\"-1\" href=\"#engineer-write-documentation\"><span class=\"icon icon-link\"></span></a>Engineer Write Documentation</h3>\n<pre class=\"shiki\" style=\"background-color: #22272e\"><code><span class=\"line\"><span style=\"color: #ADBAC7\">contented write</span></span>\n<span class=\"line\"><span style=\"color: #6CB6FF\">echo</span><span style=\"color: #ADBAC7\"> </span><span style=\"color: #96D0FF\">\"write about foo()\"</span><span style=\"color: #ADBAC7\"> </span><span style=\"color: #F47067\">></span><span style=\"color: #ADBAC7\"> bar.md</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">git commit -m </span><span style=\"color: #96D0FF\">\"feat(packages): foo() is bar\"</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">git push</span></span></code></pre>\n<h3 id=\"git-workflow-ci\"><a aria-hidden=\"true\" tabindex=\"-1\" href=\"#git-workflow-ci\"><span class=\"icon icon-link\"></span></a>Git Workflow CI</h3>\n<pre class=\"shiki\" style=\"background-color: #22272e\"><code><span class=\"line\"><span style=\"color: #ADBAC7\">jest --ci --coverage </span><span style=\"color: #F47067\">&#x26;&#x26;</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">  github update workflow[</span><span style=\"color: #96D0FF\">'CI/Build'</span><span style=\"color: #ADBAC7\">] = Success with 99%</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">contented build </span><span style=\"color: #F47067\">&#x26;&#x26;</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">  github update workflow[</span><span style=\"color: #96D0FF\">'CI/Contented'</span><span style=\"color: #ADBAC7\">] = Success</span></span></code></pre>\n<h3 id=\"git-workflow-cd\"><a aria-hidden=\"true\" tabindex=\"-1\" href=\"#git-workflow-cd\"><span class=\"icon icon-link\"></span></a>Git Workflow CD</h3>\n<pre class=\"shiki\" style=\"background-color: #22272e\"><code><span class=\"line\"><span style=\"color: #ADBAC7\">contented generate </span><span style=\"color: #F47067\">&#x26;&#x26;</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">  netlify deploy</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">contented build </span><span style=\"color: #F47067\">&#x26;&#x26;</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">  npm publish</span></span></code></pre>\n<h2 id=\"while-at-productmarketing-team\"><a aria-hidden=\"true\" tabindex=\"-1\" href=\"#while-at-productmarketing-team\"><span class=\"icon icon-link\"></span></a>While at Product/Marketing Team</h2>\n<h3 id=\"engineer-implement-page\"><a aria-hidden=\"true\" tabindex=\"-1\" href=\"#engineer-implement-page\"><span class=\"icon icon-link\"></span></a>Engineer Implement Page</h3>\n<pre class=\"shiki\" style=\"background-color: #22272e\"><code><span class=\"line\"><span style=\"color: #F47067\">import</span><span style=\"color: #ADBAC7\"> { Index </span><span style=\"color: #F47067\">as</span><span style=\"color: #ADBAC7\"> aDocs } </span><span style=\"color: #F47067\">from</span><span style=\"color: #ADBAC7\"> </span><span style=\"color: #96D0FF\">'@company/your-product-a'</span><span style=\"color: #ADBAC7\">;</span></span>\n<span class=\"line\"><span style=\"color: #F47067\">import</span><span style=\"color: #ADBAC7\"> { Index </span><span style=\"color: #F47067\">as</span><span style=\"color: #ADBAC7\"> bDocs } </span><span style=\"color: #F47067\">from</span><span style=\"color: #ADBAC7\"> </span><span style=\"color: #96D0FF\">'@company/your-product-b'</span><span style=\"color: #ADBAC7\">;</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color: #F47067\">async</span><span style=\"color: #ADBAC7\"> </span><span style=\"color: #F47067\">function</span><span style=\"color: #ADBAC7\"> </span><span style=\"color: #DCBDFB\">findContent</span><span style=\"color: #ADBAC7\">(</span><span style=\"color: #F69D50\">path</span><span style=\"color: #ADBAC7\">) {</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">  </span><span style=\"color: #F47067\">let</span><span style=\"color: #ADBAC7\"> content </span><span style=\"color: #F47067\">=</span><span style=\"color: #ADBAC7\"> aDocs.</span><span style=\"color: #DCBDFB\">find</span><span style=\"color: #ADBAC7\">((</span><span style=\"color: #F69D50\">file</span><span style=\"color: #ADBAC7\">) </span><span style=\"color: #F47067\">=></span><span style=\"color: #ADBAC7\"> file.path </span><span style=\"color: #F47067\">===</span><span style=\"color: #ADBAC7\"> path);</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">  </span><span style=\"color: #F47067\">if</span><span style=\"color: #ADBAC7\"> (content) {</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    </span><span style=\"color: #F47067\">return</span><span style=\"color: #ADBAC7\"> </span><span style=\"color: #DCBDFB\">require</span><span style=\"color: #ADBAC7\">(</span><span style=\"color: #96D0FF\">`@company/your-product-a/${</span><span style=\"color: #ADBAC7\">content</span><span style=\"color: #96D0FF\">.</span><span style=\"color: #ADBAC7\">type</span><span style=\"color: #96D0FF\">}/${</span><span style=\"color: #ADBAC7\">content</span><span style=\"color: #96D0FF\">.</span><span style=\"color: #ADBAC7\">id</span><span style=\"color: #96D0FF\">}.json`</span><span style=\"color: #ADBAC7\">);</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">  }</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">  content </span><span style=\"color: #F47067\">=</span><span style=\"color: #ADBAC7\"> bDocs.</span><span style=\"color: #DCBDFB\">find</span><span style=\"color: #ADBAC7\">((</span><span style=\"color: #F69D50\">file</span><span style=\"color: #ADBAC7\">) </span><span style=\"color: #F47067\">=></span><span style=\"color: #ADBAC7\"> file.path </span><span style=\"color: #F47067\">===</span><span style=\"color: #ADBAC7\"> path);</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">  </span><span style=\"color: #F47067\">if</span><span style=\"color: #ADBAC7\"> (content) {</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    </span><span style=\"color: #F47067\">return</span><span style=\"color: #ADBAC7\"> </span><span style=\"color: #DCBDFB\">require</span><span style=\"color: #ADBAC7\">(</span><span style=\"color: #96D0FF\">`@company/your-product-b/${</span><span style=\"color: #ADBAC7\">content</span><span style=\"color: #96D0FF\">.</span><span style=\"color: #ADBAC7\">type</span><span style=\"color: #96D0FF\">}/${</span><span style=\"color: #ADBAC7\">content</span><span style=\"color: #96D0FF\">.</span><span style=\"color: #ADBAC7\">id</span><span style=\"color: #96D0FF\">}.json`</span><span style=\"color: #ADBAC7\">);</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">  }</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">}</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color: #F47067\">export</span><span style=\"color: #ADBAC7\"> </span><span style=\"color: #F47067\">async</span><span style=\"color: #ADBAC7\"> </span><span style=\"color: #F47067\">function</span><span style=\"color: #ADBAC7\"> </span><span style=\"color: #DCBDFB\">getStaticProps</span><span style=\"color: #ADBAC7\">({ </span><span style=\"color: #F69D50\">params</span><span style=\"color: #ADBAC7\"> }) {</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">  </span><span style=\"color: #F47067\">const</span><span style=\"color: #ADBAC7\"> </span><span style=\"color: #6CB6FF\">path</span><span style=\"color: #ADBAC7\"> </span><span style=\"color: #F47067\">=</span><span style=\"color: #ADBAC7\"> </span><span style=\"color: #96D0FF\">`/${</span><span style=\"color: #ADBAC7\">params</span><span style=\"color: #96D0FF\">?.</span><span style=\"color: #ADBAC7\">slug</span><span style=\"color: #96D0FF\">?.</span><span style=\"color: #DCBDFB\">join</span><span style=\"color: #96D0FF\">(</span><span style=\"color: #96D0FF\">'/'</span><span style=\"color: #96D0FF\">) </span><span style=\"color: #F47067\">??</span><span style=\"color: #96D0FF\"> </span><span style=\"color: #96D0FF\">''}`</span><span style=\"color: #ADBAC7\">;</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">  </span><span style=\"color: #F47067\">return</span><span style=\"color: #ADBAC7\"> {</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    props: {</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">      doc: </span><span style=\"color: #F47067\">await</span><span style=\"color: #ADBAC7\"> </span><span style=\"color: #DCBDFB\">findContent</span><span style=\"color: #ADBAC7\">(path),</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    },</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">  };</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">}</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color: #F47067\">export</span><span style=\"color: #F69D50\"> </span><span style=\"color: #F47067\">default</span><span style=\"color: #F69D50\"> </span><span style=\"color: #F47067\">function</span><span style=\"color: #F69D50\"> </span><span style=\"color: #DCBDFB\">Page</span><span style=\"color: #F69D50\">({ doc }) </span><span style=\"color: #ADBAC7\">{</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">  </span><span style=\"color: #F47067\">return</span><span style=\"color: #ADBAC7\"> (</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    &#x3C;</span><span style=\"color: #8DDB8C\">ContentProse</span><span style=\"color: #ADBAC7\">></span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">      &#x3C;</span><span style=\"color: #8DDB8C\">h1</span><span style=\"color: #ADBAC7\">></span><span style=\"color: #F47067\">{</span><span style=\"color: #ADBAC7\">doc.title</span><span style=\"color: #F47067\">}</span><span style=\"color: #ADBAC7\">&#x3C;/</span><span style=\"color: #8DDB8C\">h1</span><span style=\"color: #ADBAC7\">></span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">      &#x3C;</span><span style=\"color: #8DDB8C\">div</span><span style=\"color: #ADBAC7\"> </span><span style=\"color: #6CB6FF\">dangerouslySetInnerHTML</span><span style=\"color: #F47067\">={</span><span style=\"color: #ADBAC7\">{ __html: doc.body.html }</span><span style=\"color: #F47067\">}</span><span style=\"color: #ADBAC7\"> /></span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    &#x3C;/</span><span style=\"color: #8DDB8C\">ContentProse</span><span style=\"color: #ADBAC7\">></span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">  );</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">}</span></span></code></pre>\n<h3 id=\"dependabot\"><a aria-hidden=\"true\" tabindex=\"-1\" href=\"#dependabot\"><span class=\"icon icon-link\"></span></a>Dependabot</h3>\n<pre class=\"shiki\" style=\"background-color: #22272e\"><code><span class=\"line\"><span style=\"color: #ADBAC7\">git commit -m </span><span style=\"color: #96D0FF\">\"bump(deps): bump @your/documentation from 0.0.0 to 0.0.1\"</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">git push</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">github create pr</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">contented generate</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">  </span><span style=\"color: #F47067\">&#x26;&#x26;</span><span style=\"color: #ADBAC7\"> netlify deploy preview</span></span></code></pre>\n<h3 id=\"engineer-review-changes\"><a aria-hidden=\"true\" tabindex=\"-1\" href=\"#engineer-review-changes\"><span class=\"icon icon-link\"></span></a>Engineer Review Changes</h3>\n<pre class=\"shiki\" style=\"background-color: #22272e\"><code><span class=\"line\"><span style=\"color: #ADBAC7\">github open pr</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">github click Netlify Preview</span></span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">github lgtm</span></span></code></pre>","headings":[{"depth":1,"id":"ballad-of-engineering","title":"Ballad of Engineering","children":[{"depth":2,"id":"while-at-saas-team","title":"While at SaaS Team","children":[{"depth":3,"id":"engineer-write-code","title":"Engineer Write code","children":[]},{"depth":3,"id":"engineer-write-documentation","title":"Engineer Write Documentation","children":[]},{"depth":3,"id":"git-workflow-ci","title":"Git Workflow CI","children":[]},{"depth":3,"id":"git-workflow-cd","title":"Git Workflow CD","children":[]}]},{"depth":2,"id":"while-at-productmarketing-team","title":"While at Product/Marketing Team","children":[{"depth":3,"id":"engineer-implement-page","title":"Engineer Implement Page","children":[]},{"depth":3,"id":"dependabot","title":"Dependabot","children":[]},{"depth":3,"id":"engineer-review-changes","title":"Engineer Review Changes","children":[]}]}]}]}