mirror of
https://github.com/jimeh/commonflow.org.git
synced 2026-02-19 05:46:40 +00:00
wip: improve spec and faq
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
document.documentElement.classList.add("dark");
|
||||
}
|
||||
})();
|
||||
</script><link rel="stylesheet" href="/_astro/index.BpjWaW-v.css"></head> <body class="min-h-screen flex flex-col items-center justify-center p-8"> <div class="text-center"> <h1 class="text-[8rem] sm:text-[12rem] font-display font-bold leading-none
|
||||
</script><link rel="stylesheet" href="/_astro/index.DOL-7fR6.css"></head> <body class="min-h-screen flex flex-col items-center justify-center p-8"> <div class="text-center"> <h1 class="text-[8rem] sm:text-[12rem] font-display font-bold leading-none
|
||||
text-gray-300 dark:text-gray-700">
|
||||
404
|
||||
</h1> <p class="text-xl mb-2 text-gray-600 dark:text-gray-400">
|
||||
|
||||
File diff suppressed because one or more lines are too long
1
docs/_astro/index.DOL-7fR6.css
Normal file
1
docs/_astro/index.DOL-7fR6.css
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -8,8 +8,8 @@
|
||||
document.documentElement.classList.add("dark");
|
||||
}
|
||||
})();
|
||||
</script><link rel="stylesheet" href="/_astro/index.BpjWaW-v.css">
|
||||
<style>.spec-content[data-astro-cid-x2lc2h5w] p:last-child{margin-bottom:0}.spec-content[data-astro-cid-x2lc2h5w] a{color:var(--color-accent)}.spec-content[data-astro-cid-x2lc2h5w] a:hover{color:var(--color-accent-light)}.sidebar-link[data-astro-cid-lfaoh65k].active{border-left-color:#0284c7;color:#0284c7;background-color:#0ea5e926}.dark .sidebar-link[data-astro-cid-lfaoh65k].active{color:#38bdf8;background-color:#0ea5e933}#spec-sidebar[data-astro-cid-lfaoh65k]::-webkit-scrollbar{width:4px}#spec-sidebar[data-astro-cid-lfaoh65k]::-webkit-scrollbar-track{background:transparent}#spec-sidebar[data-astro-cid-lfaoh65k]::-webkit-scrollbar-thumb{background-color:#e5e5e5;border-radius:2px}.dark #spec-sidebar[data-astro-cid-lfaoh65k]::-webkit-scrollbar-thumb{background-color:#262626}.spec-content[data-astro-cid-6lwcykzv]{max-width:var(--content-max-width)}.spec-content[data-astro-cid-6lwcykzv] h2{font-family:var(--font-display);font-size:1.75rem;font-weight:700;margin-top:3rem;margin-bottom:1.5rem;padding-bottom:.75rem;scroll-margin-top:calc(var(--header-height) + 2rem);border-bottom:1px solid #e5e5e5;color:#0a0a0a}.dark .spec-content[data-astro-cid-6lwcykzv] h2{border-bottom-color:#262626;color:#fafafa}.spec-content[data-astro-cid-6lwcykzv] h2:first-child{margin-top:0}.spec-content[data-astro-cid-6lwcykzv] h3{font-family:var(--font-display);font-size:1.25rem;font-weight:600;margin-top:2rem;margin-bottom:1rem;color:#525252}.dark .spec-content[data-astro-cid-6lwcykzv] h3{color:#a3a3a3}.spec-content[data-astro-cid-6lwcykzv] p{margin-bottom:1.25rem;color:#525252}.dark .spec-content[data-astro-cid-6lwcykzv] p{color:#a3a3a3}.spec-content[data-astro-cid-6lwcykzv] strong{font-weight:600;color:#0a0a0a}.dark .spec-content[data-astro-cid-6lwcykzv] strong{color:#fafafa}.spec-content[data-astro-cid-6lwcykzv] ul{margin-bottom:1.25rem;padding-left:1.5rem}.spec-content[data-astro-cid-6lwcykzv] ol{margin-bottom:1.25rem;padding-left:2.5rem;counter-reset:item;list-style:none}.spec-content[data-astro-cid-6lwcykzv] ol>li{counter-increment:item;position:relative}.spec-content[data-astro-cid-6lwcykzv] ol>li:before{content:counters(item,".") ".";position:absolute;left:-2.5rem;width:2rem;text-align:right;font-weight:500;color:#737373}.spec-content[data-astro-cid-6lwcykzv] ol>li[id]{scroll-margin-top:calc(var(--header-height) + 2rem)}.spec-content[data-astro-cid-6lwcykzv] li{margin-bottom:.5rem;color:#525252}.dark .spec-content[data-astro-cid-6lwcykzv] li{color:#a3a3a3}.spec-content[data-astro-cid-6lwcykzv] a{color:var(--color-accent);text-decoration:none;transition:color .15s ease}.spec-content[data-astro-cid-6lwcykzv] a:hover{color:var(--color-accent-light)}.spec-content[data-astro-cid-6lwcykzv] blockquote{border-left:3px solid var(--color-accent);padding-left:1.5rem;margin:1.5rem 0;font-style:italic;color:#737373}.spec-content[data-astro-cid-6lwcykzv] img{max-width:100%;height:auto;border-radius:8px;margin:2rem 0}.spec-content[data-astro-cid-hqz3ghsx] p:last-child{margin-bottom:0}.spec-content[data-astro-cid-hqz3ghsx] ul,.spec-content[data-astro-cid-hqz3ghsx] ol{margin-top:1rem}.spec-content[data-astro-cid-hqz3ghsx] li{color:#525252}.dark .spec-content[data-astro-cid-hqz3ghsx] li{color:#a3a3a3}
|
||||
</script><link rel="stylesheet" href="/_astro/index.DOL-7fR6.css">
|
||||
<style>.spec-content[data-astro-cid-x2lc2h5w] p:last-child{margin-bottom:0}.spec-content[data-astro-cid-x2lc2h5w] a{color:var(--color-accent)}.spec-content[data-astro-cid-x2lc2h5w] a:hover{color:var(--color-accent-light)}.sidebar-link[data-astro-cid-lfaoh65k].active{color:#0284c7;background-color:#0ea5e926}.dark .sidebar-link[data-astro-cid-lfaoh65k].active{color:#38bdf8;background-color:#0ea5e933}#spec-sidebar[data-astro-cid-lfaoh65k]::-webkit-scrollbar{width:4px}#spec-sidebar[data-astro-cid-lfaoh65k]::-webkit-scrollbar-track{background:transparent}#spec-sidebar[data-astro-cid-lfaoh65k]::-webkit-scrollbar-thumb{background-color:#e5e5e5;border-radius:2px}.dark #spec-sidebar[data-astro-cid-lfaoh65k]::-webkit-scrollbar-thumb{background-color:#262626}.spec-content[data-astro-cid-6lwcykzv]{max-width:var(--content-max-width)}.spec-content[data-astro-cid-6lwcykzv] h2{font-family:var(--font-display);font-size:1.75rem;font-weight:700;margin-top:3rem;margin-bottom:1.5rem;padding-bottom:.75rem;scroll-margin-top:calc(var(--header-height) + 2rem);border-bottom:1px solid #e5e5e5;color:#0a0a0a}.dark .spec-content[data-astro-cid-6lwcykzv] h2{border-bottom-color:#262626;color:#fafafa}.spec-content[data-astro-cid-6lwcykzv] h2:first-child{margin-top:0}.spec-content[data-astro-cid-6lwcykzv] h3{font-family:var(--font-display);font-size:1.25rem;font-weight:600;margin-top:2rem;margin-bottom:1rem;color:#525252}.dark .spec-content[data-astro-cid-6lwcykzv] h3{color:#a3a3a3}.spec-content[data-astro-cid-6lwcykzv] p{margin-bottom:1.25rem;color:#525252}.dark .spec-content[data-astro-cid-6lwcykzv] p{color:#a3a3a3}.spec-content[data-astro-cid-6lwcykzv] strong{font-weight:600;color:#0a0a0a}.dark .spec-content[data-astro-cid-6lwcykzv] strong{color:#fafafa}.spec-content[data-astro-cid-6lwcykzv] ul{margin-bottom:1.25rem;padding-left:1.5rem}.spec-content[data-astro-cid-6lwcykzv] ol{margin-bottom:1.25rem;padding-left:2.5rem;counter-reset:item;list-style:none}.spec-content[data-astro-cid-6lwcykzv] ol>li{counter-increment:item;position:relative}.spec-content[data-astro-cid-6lwcykzv] ol>li:before{content:counters(item,".") ".";position:absolute;left:-2.5rem;width:2rem;text-align:right;font-weight:500;color:#737373}.spec-content[data-astro-cid-6lwcykzv] ol>li[id]{scroll-margin-top:calc(var(--header-height) + 2rem)}.spec-content[data-astro-cid-6lwcykzv] li{margin-bottom:.5rem;color:#525252}.dark .spec-content[data-astro-cid-6lwcykzv] li{color:#a3a3a3}.spec-content[data-astro-cid-6lwcykzv] a{color:var(--color-accent);text-decoration:none;transition:color .15s ease}.spec-content[data-astro-cid-6lwcykzv] a:hover{color:var(--color-accent-light)}.spec-content[data-astro-cid-6lwcykzv] blockquote{border-left:3px solid var(--color-accent);padding-left:1.5rem;margin:1.5rem 0;font-style:italic;color:#737373}.spec-content[data-astro-cid-6lwcykzv] img{max-width:100%;height:auto;border-radius:8px;margin:2rem 0}.spec-content[data-astro-cid-hqz3ghsx] p:last-child{margin-bottom:0}.spec-content[data-astro-cid-hqz3ghsx] ul,.spec-content[data-astro-cid-hqz3ghsx] ol{margin-top:1rem}.spec-content[data-astro-cid-hqz3ghsx] li{color:#525252}.dark .spec-content[data-astro-cid-hqz3ghsx] li{color:#a3a3a3}
|
||||
</style></head> <body class="min-h-screen"> <header id="site-header" class="fixed top-0 inset-x-0 z-50 border-b border-transparent
|
||||
translate-y-[-100%] transition-transform duration-300
|
||||
backdrop-blur-xl bg-gray-50/85 dark:bg-gray-950/85"> <div class="max-w-6xl mx-auto px-4 sm:px-6 h-16 flex items-center justify-between"> <!-- Logo / Title + Version --> <div class="flex items-center gap-3"> <a href="#hero" class="flex items-center gap-3 no-underline
|
||||
@@ -160,8 +160,8 @@ The complete Git Common-Flow specification
|
||||
lg:max-h-[calc(100vh-8rem)] lg:overflow-y-auto
|
||||
lg:pr-8 lg:mr-8 lg:border-r border-gray-200 dark:border-gray-800" data-astro-cid-lfaoh65k> <nav class="space-y-1 py-2" data-astro-cid-lfaoh65k> <div class="text-xs font-semibold uppercase tracking-wider mb-4
|
||||
text-gray-500 dark:text-gray-500" data-astro-cid-lfaoh65k>
|
||||
On This Page
|
||||
</div> <a href="#terminology" class="sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5 border-l-2 border-transparent transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900" data-sidebar-link data-section-id="terminology" data-astro-cid-lfaoh65k> Terminology </a><a href="#specification" class="sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5 border-l-2 border-transparent transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900" data-sidebar-link data-section-id="specification" data-astro-cid-lfaoh65k> Specification </a><a href="#spec-the-master-branch" class="sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5 border-l-2 border-transparent transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-sidebar-link data-section-id="spec-the-master-branch" data-astro-cid-lfaoh65k> The Master Branch </a><a href="#spec-changes" class="sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5 border-l-2 border-transparent transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-sidebar-link data-section-id="spec-changes" data-astro-cid-lfaoh65k> Changes </a><a href="#spec-git-best-practices" class="sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5 border-l-2 border-transparent transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-sidebar-link data-section-id="spec-git-best-practices" data-astro-cid-lfaoh65k> Git Best Practices </a><a href="#spec-versioning" class="sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5 border-l-2 border-transparent transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-sidebar-link data-section-id="spec-versioning" data-astro-cid-lfaoh65k> Versioning </a><a href="#spec-releases" class="sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5 border-l-2 border-transparent transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-sidebar-link data-section-id="spec-releases" data-astro-cid-lfaoh65k> Releases </a><a href="#spec-bug-fixes-rollback" class="sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5 border-l-2 border-transparent transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-sidebar-link data-section-id="spec-bug-fixes-rollback" data-astro-cid-lfaoh65k> Bug Fixes & Rollback </a><a href="#spec-maintenance-releases" class="sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5 border-l-2 border-transparent transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-sidebar-link data-section-id="spec-maintenance-releases" data-astro-cid-lfaoh65k> Maintenance Releases </a> </nav> </aside> <!-- Mobile floating button --> <button id="spec-toc-toggle" class="lg:hidden fixed bottom-6 right-6 z-40
|
||||
Table of Contents
|
||||
</div> <a href="#terminology" class="sidebar-link block py-2 px-4 text-sm rounded-md transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900" data-sidebar-link data-section-id="terminology" data-astro-cid-lfaoh65k> Terminology </a><a href="#specification" class="sidebar-link block py-2 px-4 text-sm rounded-md transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900" data-sidebar-link data-section-id="specification" data-astro-cid-lfaoh65k> Specification </a><a href="#spec-the-master-branch" class="sidebar-link block py-2 px-4 text-sm rounded-md transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-sidebar-link data-section-id="spec-the-master-branch" data-astro-cid-lfaoh65k> The Master Branch </a><a href="#spec-changes" class="sidebar-link block py-2 px-4 text-sm rounded-md transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-sidebar-link data-section-id="spec-changes" data-astro-cid-lfaoh65k> Changes </a><a href="#spec-git-best-practices" class="sidebar-link block py-2 px-4 text-sm rounded-md transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-sidebar-link data-section-id="spec-git-best-practices" data-astro-cid-lfaoh65k> Git Best Practices </a><a href="#spec-versioning" class="sidebar-link block py-2 px-4 text-sm rounded-md transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-sidebar-link data-section-id="spec-versioning" data-astro-cid-lfaoh65k> Versioning </a><a href="#spec-releases" class="sidebar-link block py-2 px-4 text-sm rounded-md transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-sidebar-link data-section-id="spec-releases" data-astro-cid-lfaoh65k> Releases </a><a href="#spec-bug-fixes-rollback" class="sidebar-link block py-2 px-4 text-sm rounded-md transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-sidebar-link data-section-id="spec-bug-fixes-rollback" data-astro-cid-lfaoh65k> Bug Fixes & Rollback </a><a href="#spec-maintenance-releases" class="sidebar-link block py-2 px-4 text-sm rounded-md transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-sidebar-link data-section-id="spec-maintenance-releases" data-astro-cid-lfaoh65k> Maintenance Releases </a> </nav> </aside> <!-- Mobile floating button --> <button id="spec-toc-toggle" class="lg:hidden fixed bottom-6 right-6 z-40
|
||||
w-12 h-12 rounded-full shadow-lg
|
||||
bg-sky-600 text-white
|
||||
flex items-center justify-center
|
||||
@@ -171,7 +171,7 @@ On This Page
|
||||
rounded-t-2xl shadow-xl p-6" data-astro-cid-lfaoh65k> <div class="flex items-center justify-between mb-4" data-astro-cid-lfaoh65k> <span class="text-sm font-semibold uppercase tracking-wider
|
||||
text-gray-500 dark:text-gray-500" data-astro-cid-lfaoh65k>
|
||||
Jump to Section
|
||||
</span> <button class="p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-900" data-toc-close aria-label="Close" data-astro-cid-lfaoh65k> <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-lfaoh65k> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" data-astro-cid-lfaoh65k></path> </svg> </button> </div> <nav class="space-y-1" data-astro-cid-lfaoh65k> <a href="#terminology" class="sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5 border-l-2 border-transparent transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900" data-toc-link data-astro-cid-lfaoh65k> Terminology </a><a href="#specification" class="sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5 border-l-2 border-transparent transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900" data-toc-link data-astro-cid-lfaoh65k> Specification </a><a href="#spec-the-master-branch" class="sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5 border-l-2 border-transparent transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-toc-link data-astro-cid-lfaoh65k> The Master Branch </a><a href="#spec-changes" class="sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5 border-l-2 border-transparent transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-toc-link data-astro-cid-lfaoh65k> Changes </a><a href="#spec-git-best-practices" class="sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5 border-l-2 border-transparent transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-toc-link data-astro-cid-lfaoh65k> Git Best Practices </a><a href="#spec-versioning" class="sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5 border-l-2 border-transparent transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-toc-link data-astro-cid-lfaoh65k> Versioning </a><a href="#spec-releases" class="sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5 border-l-2 border-transparent transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-toc-link data-astro-cid-lfaoh65k> Releases </a><a href="#spec-bug-fixes-rollback" class="sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5 border-l-2 border-transparent transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-toc-link data-astro-cid-lfaoh65k> Bug Fixes & Rollback </a><a href="#spec-maintenance-releases" class="sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5 border-l-2 border-transparent transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-toc-link data-astro-cid-lfaoh65k> Maintenance Releases </a> </nav> </div> </div> <script type="module">function l(){const r=document.querySelectorAll("[data-sidebar-link]"),d=new Map;r.forEach(e=>{const t=e.getAttribute("data-section-id");if(t){const o=document.getElementById(t);o&&d.set(t,o)}});const g=new IntersectionObserver(e=>{e.forEach(t=>{if(t.isIntersecting){const o=t.target.getAttribute("id");r.forEach(a=>{const E=a.getAttribute("data-section-id");a.classList.toggle("active",E===o)})}})},{rootMargin:"-20% 0% -60% 0%",threshold:0});d.forEach(e=>g.observe(e));const n=document.getElementById("spec-toc-toggle"),c=document.getElementById("spec-toc-drawer"),u=c?.querySelector("[data-toc-backdrop]"),b=c?.querySelector("[data-toc-close]"),v=c?.querySelectorAll("[data-toc-link]");function f(){c?.classList.remove("hidden"),document.body.style.overflow="hidden"}function s(){c?.classList.add("hidden"),document.body.style.overflow=""}n?.addEventListener("click",f),u?.addEventListener("click",s),b?.addEventListener("click",s),v?.forEach(e=>{e.addEventListener("click",s)});const i=document.getElementById("spec");i&&n&&new IntersectionObserver(([t])=>{n.classList.toggle("hidden",!t.isIntersecting)},{threshold:0}).observe(i)}l();document.addEventListener("astro:after-swap",l);</script> </div> <!-- Main content --> <div class="flex-1 min-w-0" data-astro-cid-6lwcykzv> <article class="prose-spec spec-content" data-astro-cid-6lwcykzv> <!-- Terminology --> <section id="terminology" data-astro-cid-6lwcykzv> <h2 data-astro-cid-6lwcykzv>Terminology</h2> <ul>
|
||||
</span> <button class="p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-900" data-toc-close aria-label="Close" data-astro-cid-lfaoh65k> <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-astro-cid-lfaoh65k> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" data-astro-cid-lfaoh65k></path> </svg> </button> </div> <nav class="space-y-1" data-astro-cid-lfaoh65k> <a href="#terminology" class="sidebar-link block py-2 px-4 text-sm rounded-md transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900" data-toc-link data-astro-cid-lfaoh65k> Terminology </a><a href="#specification" class="sidebar-link block py-2 px-4 text-sm rounded-md transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900" data-toc-link data-astro-cid-lfaoh65k> Specification </a><a href="#spec-the-master-branch" class="sidebar-link block py-2 px-4 text-sm rounded-md transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-toc-link data-astro-cid-lfaoh65k> The Master Branch </a><a href="#spec-changes" class="sidebar-link block py-2 px-4 text-sm rounded-md transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-toc-link data-astro-cid-lfaoh65k> Changes </a><a href="#spec-git-best-practices" class="sidebar-link block py-2 px-4 text-sm rounded-md transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-toc-link data-astro-cid-lfaoh65k> Git Best Practices </a><a href="#spec-versioning" class="sidebar-link block py-2 px-4 text-sm rounded-md transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-toc-link data-astro-cid-lfaoh65k> Versioning </a><a href="#spec-releases" class="sidebar-link block py-2 px-4 text-sm rounded-md transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-toc-link data-astro-cid-lfaoh65k> Releases </a><a href="#spec-bug-fixes-rollback" class="sidebar-link block py-2 px-4 text-sm rounded-md transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-toc-link data-astro-cid-lfaoh65k> Bug Fixes & Rollback </a><a href="#spec-maintenance-releases" class="sidebar-link block py-2 px-4 text-sm rounded-md transition-colors text-gray-500 hover:text-gray-950 hover:bg-gray-100 dark:hover:text-gray-50 dark:hover:bg-gray-900 pl-6 text-[0.8125rem]" data-toc-link data-astro-cid-lfaoh65k> Maintenance Releases </a> </nav> </div> </div> <script type="module">function u(){const a=document.querySelectorAll("[data-sidebar-link]"),o=[];a.forEach(n=>{const e=n.getAttribute("data-section-id");if(e){const t=document.getElementById(e);t&&o.push({id:e,element:t})}});function l(){let e=o[0]?.id;for(const{id:t,element:r}of o)r.getBoundingClientRect().top<=100&&(e=t);a.forEach(t=>{const r=t.getAttribute("data-section-id");t.classList.toggle("active",r===e)})}let s=!1;window.addEventListener("scroll",()=>{s||(requestAnimationFrame(()=>{l(),s=!1}),s=!0)}),l();const d=document.getElementById("spec-toc-toggle"),c=document.getElementById("spec-toc-drawer"),g=c?.querySelector("[data-toc-backdrop]"),m=c?.querySelector("[data-toc-close]"),v=c?.querySelectorAll("[data-toc-link]");function p(){c?.classList.remove("hidden"),document.body.style.overflow="hidden"}function i(){c?.classList.add("hidden"),document.body.style.overflow=""}d?.addEventListener("click",p),g?.addEventListener("click",i),m?.addEventListener("click",i),v?.forEach(n=>{n.addEventListener("click",i)});const f=document.getElementById("spec");f&&d&&new IntersectionObserver(([e])=>{d.classList.toggle("hidden",!e.isIntersecting)},{threshold:0}).observe(f)}u();document.addEventListener("astro:after-swap",u);</script> </div> <!-- Main content --> <div class="flex-1 min-w-0" data-astro-cid-6lwcykzv> <article class="prose-spec spec-content" data-astro-cid-6lwcykzv> <!-- Terminology --> <section id="terminology" data-astro-cid-6lwcykzv> <h2 data-astro-cid-6lwcykzv>Terminology</h2> <ul>
|
||||
<li><strong>Master Branch</strong> - Must always have passing tests, is considered bleeding
|
||||
edge, and must be named <code>master</code>.</li>
|
||||
<li><strong>Change Branches</strong> - Any branch that introduces changes like a new feature, a
|
||||
@@ -335,7 +335,7 @@ branch in the first place.</li>
|
||||
</li>
|
||||
</ol> </section> </article> </div> </div> </div> </section> <section id="faq" class="py-20 sm:py-28 bg-gray-100 dark:bg-gray-900" data-astro-cid-hqz3ghsx> <div class="section-container" data-astro-cid-hqz3ghsx> <div class="max-w-3xl mx-auto" data-astro-cid-hqz3ghsx> <!-- Section header --> <div class="mb-12 text-center" data-astro-cid-hqz3ghsx> <h2 class="text-3xl sm:text-4xl mb-4" data-astro-cid-hqz3ghsx>FAQ</h2> <p class="text-lg text-gray-600 dark:text-gray-400" data-astro-cid-hqz3ghsx>
|
||||
Common questions about Git Common-Flow
|
||||
</p> </div> <!-- FAQ Items --> <div class="space-y-0" data-astro-cid-hqz3ghsx> </div> </div> </div> </section> <script type="module">function s(){const r=document.querySelectorAll("[data-faq-item]");r.forEach(t=>{const e=t.querySelector("[data-faq-trigger]"),o=t.querySelector("[data-faq-content]"),i=t.querySelector("[data-faq-icon]");!e||!o||!i||e.addEventListener("click",()=>{const c=e.getAttribute("aria-expanded")==="true";r.forEach(a=>{if(a!==t){const d=a.querySelector("[data-faq-trigger]"),l=a.querySelector("[data-faq-content]"),f=a.querySelector("[data-faq-icon]");d?.setAttribute("aria-expanded","false"),l?.classList.add("hidden"),f?.classList.remove("rotate-180")}}),e.setAttribute("aria-expanded",c?"false":"true"),o.classList.toggle("hidden",c),i.classList.toggle("rotate-180",!c)})});const n=r[0]?.querySelector("[data-faq-trigger]");n&&n.click()}s();document.addEventListener("astro:after-swap",s);</script> </main> <footer class="py-8 text-center text-sm
|
||||
</p> </div> <!-- FAQ Items --> <div class="space-y-0" data-astro-cid-hqz3ghsx> </div> </div> </div> </section> <script type="module">function n(){document.querySelectorAll("[data-faq-item]").forEach(r=>{const t=r.querySelector("[data-faq-trigger]"),a=r.querySelector("[data-faq-content]"),s=r.querySelector("[data-faq-icon]");!t||!a||!s||t.addEventListener("click",()=>{const e=t.getAttribute("aria-expanded")==="true";t.setAttribute("aria-expanded",e?"false":"true"),a.classList.toggle("grid-rows-[1fr]",!e),a.classList.toggle("grid-rows-[0fr]",e),s.classList.toggle("rotate-180",!e)})})}n();document.addEventListener("astro:after-swap",n);</script> </main> <footer class="py-8 text-center text-sm
|
||||
text-gray-500 dark:text-gray-500
|
||||
border-t border-gray-200 dark:border-gray-800"> <div class="section-container"> <p>
|
||||
Git Common-Flow is authored by
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -53,11 +53,16 @@ const { items } = Astro.props;
|
||||
</svg>
|
||||
</button>
|
||||
<div
|
||||
class="hidden pb-6 text-gray-600 dark:text-gray-400
|
||||
prose-spec spec-content"
|
||||
class="grid grid-rows-[0fr] transition-[grid-template-rows] duration-300 ease-out"
|
||||
data-faq-content
|
||||
set:html={item.answer}
|
||||
/>
|
||||
>
|
||||
<div class="overflow-hidden">
|
||||
<div
|
||||
class="pb-6 text-gray-600 dark:text-gray-400 prose-spec spec-content"
|
||||
set:html={item.answer}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
))
|
||||
}
|
||||
@@ -80,33 +85,13 @@ const { items } = Astro.props;
|
||||
trigger.addEventListener("click", () => {
|
||||
const isExpanded = trigger.getAttribute("aria-expanded") === "true";
|
||||
|
||||
// Close all other items
|
||||
items.forEach((otherItem) => {
|
||||
if (otherItem !== item) {
|
||||
const otherTrigger = otherItem.querySelector("[data-faq-trigger]");
|
||||
const otherContent = otherItem.querySelector("[data-faq-content]");
|
||||
const otherIcon = otherItem.querySelector("[data-faq-icon]");
|
||||
|
||||
otherTrigger?.setAttribute("aria-expanded", "false");
|
||||
otherContent?.classList.add("hidden");
|
||||
otherIcon?.classList.remove("rotate-180");
|
||||
}
|
||||
});
|
||||
|
||||
// Toggle current item
|
||||
trigger.setAttribute("aria-expanded", isExpanded ? "false" : "true");
|
||||
content.classList.toggle("hidden", isExpanded);
|
||||
content.classList.toggle("grid-rows-[1fr]", !isExpanded);
|
||||
content.classList.toggle("grid-rows-[0fr]", isExpanded);
|
||||
icon.classList.toggle("rotate-180", !isExpanded);
|
||||
});
|
||||
});
|
||||
|
||||
// Open first item by default
|
||||
const firstTrigger = items[0]?.querySelector(
|
||||
"[data-faq-trigger]"
|
||||
) as HTMLButtonElement;
|
||||
if (firstTrigger) {
|
||||
firstTrigger.click();
|
||||
}
|
||||
}
|
||||
|
||||
// Initialize on load
|
||||
|
||||
@@ -19,15 +19,15 @@ const { items } = Astro.props;
|
||||
class="text-xs font-semibold uppercase tracking-wider mb-4
|
||||
text-gray-500 dark:text-gray-500"
|
||||
>
|
||||
On This Page
|
||||
Table of Contents
|
||||
</div>
|
||||
{
|
||||
items.map((item) => (
|
||||
<a
|
||||
href={`#${item.id}`}
|
||||
class:list={[
|
||||
"sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5",
|
||||
"border-l-2 border-transparent transition-colors",
|
||||
"sidebar-link block py-2 px-4 text-sm rounded-md",
|
||||
"transition-colors",
|
||||
"text-gray-500 hover:text-gray-950 hover:bg-gray-100",
|
||||
"dark:hover:text-gray-50 dark:hover:bg-gray-900",
|
||||
item.level === 3 && "pl-6 text-[0.8125rem]",
|
||||
@@ -110,8 +110,8 @@ const { items } = Astro.props;
|
||||
<a
|
||||
href={`#${item.id}`}
|
||||
class:list={[
|
||||
"sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5",
|
||||
"border-l-2 border-transparent transition-colors",
|
||||
"sidebar-link block py-2 px-4 text-sm rounded-md",
|
||||
"transition-colors",
|
||||
"text-gray-500 hover:text-gray-950 hover:bg-gray-100",
|
||||
"dark:hover:text-gray-50 dark:hover:bg-gray-900",
|
||||
item.level === 3 && "pl-6 text-[0.8125rem]",
|
||||
@@ -130,38 +130,51 @@ const { items } = Astro.props;
|
||||
function initSpecSidebar() {
|
||||
// Active section tracking
|
||||
const sidebarLinks = document.querySelectorAll("[data-sidebar-link]");
|
||||
const sections = new Map<string, Element>();
|
||||
const sections: { id: string; element: Element }[] = [];
|
||||
|
||||
sidebarLinks.forEach((link) => {
|
||||
const id = link.getAttribute("data-section-id");
|
||||
if (id) {
|
||||
const section = document.getElementById(id);
|
||||
if (section) {
|
||||
sections.set(id, section);
|
||||
sections.push({ id, element: section });
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Intersection Observer for active state
|
||||
const observer = new IntersectionObserver(
|
||||
(entries) => {
|
||||
entries.forEach((entry) => {
|
||||
if (entry.isIntersecting) {
|
||||
const id = entry.target.getAttribute("id");
|
||||
sidebarLinks.forEach((link) => {
|
||||
const linkId = link.getAttribute("data-section-id");
|
||||
link.classList.toggle("active", linkId === id);
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
{
|
||||
rootMargin: "-20% 0% -60% 0%",
|
||||
threshold: 0,
|
||||
}
|
||||
);
|
||||
// Highlight the section whose top is closest to viewport top
|
||||
function updateActiveSection() {
|
||||
const headerOffset = 100; // Account for sticky header
|
||||
let activeId = sections[0]?.id;
|
||||
|
||||
sections.forEach((section) => observer.observe(section));
|
||||
for (const { id, element } of sections) {
|
||||
const rect = element.getBoundingClientRect();
|
||||
// Find the last section whose top has scrolled past the header
|
||||
if (rect.top <= headerOffset) {
|
||||
activeId = id;
|
||||
}
|
||||
}
|
||||
|
||||
sidebarLinks.forEach((link) => {
|
||||
const linkId = link.getAttribute("data-section-id");
|
||||
link.classList.toggle("active", linkId === activeId);
|
||||
});
|
||||
}
|
||||
|
||||
// Update on scroll with throttling
|
||||
let ticking = false;
|
||||
window.addEventListener("scroll", () => {
|
||||
if (!ticking) {
|
||||
requestAnimationFrame(() => {
|
||||
updateActiveSection();
|
||||
ticking = false;
|
||||
});
|
||||
ticking = true;
|
||||
}
|
||||
});
|
||||
|
||||
// Initial update
|
||||
updateActiveSection();
|
||||
|
||||
// Mobile TOC drawer
|
||||
const toggleBtn = document.getElementById("spec-toc-toggle");
|
||||
@@ -210,7 +223,6 @@ const { items } = Astro.props;
|
||||
<style>
|
||||
/* Active state for sidebar links (toggled by JavaScript) */
|
||||
.sidebar-link.active {
|
||||
border-left-color: #0284c7;
|
||||
color: #0284c7;
|
||||
background-color: rgba(14, 165, 233, 0.15);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user