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");
|
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">
|
text-gray-300 dark:text-gray-700">
|
||||||
404
|
404
|
||||||
</h1> <p class="text-xl mb-2 text-gray-600 dark:text-gray-400">
|
</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");
|
document.documentElement.classList.add("dark");
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
</script><link rel="stylesheet" href="/_astro/index.BpjWaW-v.css">
|
</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{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}
|
<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
|
</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
|
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
|
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: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
|
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>
|
text-gray-500 dark:text-gray-500" data-astro-cid-lfaoh65k>
|
||||||
On This Page
|
Table of Contents
|
||||||
</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
|
</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
|
w-12 h-12 rounded-full shadow-lg
|
||||||
bg-sky-600 text-white
|
bg-sky-600 text-white
|
||||||
flex items-center justify-center
|
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
|
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>
|
text-gray-500 dark:text-gray-500" data-astro-cid-lfaoh65k>
|
||||||
Jump to Section
|
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
|
<li><strong>Master Branch</strong> - Must always have passing tests, is considered bleeding
|
||||||
edge, and must be named <code>master</code>.</li>
|
edge, and must be named <code>master</code>.</li>
|
||||||
<li><strong>Change Branches</strong> - Any branch that introduces changes like a new feature, a
|
<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>
|
</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>
|
</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
|
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
|
text-gray-500 dark:text-gray-500
|
||||||
border-t border-gray-200 dark:border-gray-800"> <div class="section-container"> <p>
|
border-t border-gray-200 dark:border-gray-800"> <div class="section-container"> <p>
|
||||||
Git Common-Flow is authored by
|
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>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
<div
|
<div
|
||||||
class="hidden pb-6 text-gray-600 dark:text-gray-400
|
class="grid grid-rows-[0fr] transition-[grid-template-rows] duration-300 ease-out"
|
||||||
prose-spec spec-content"
|
|
||||||
data-faq-content
|
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>
|
</div>
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
@@ -80,33 +85,13 @@ const { items } = Astro.props;
|
|||||||
trigger.addEventListener("click", () => {
|
trigger.addEventListener("click", () => {
|
||||||
const isExpanded = trigger.getAttribute("aria-expanded") === "true";
|
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
|
// Toggle current item
|
||||||
trigger.setAttribute("aria-expanded", isExpanded ? "false" : "true");
|
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);
|
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
|
// Initialize on load
|
||||||
|
|||||||
@@ -19,15 +19,15 @@ const { items } = Astro.props;
|
|||||||
class="text-xs font-semibold uppercase tracking-wider mb-4
|
class="text-xs font-semibold uppercase tracking-wider mb-4
|
||||||
text-gray-500 dark:text-gray-500"
|
text-gray-500 dark:text-gray-500"
|
||||||
>
|
>
|
||||||
On This Page
|
Table of Contents
|
||||||
</div>
|
</div>
|
||||||
{
|
{
|
||||||
items.map((item) => (
|
items.map((item) => (
|
||||||
<a
|
<a
|
||||||
href={`#${item.id}`}
|
href={`#${item.id}`}
|
||||||
class:list={[
|
class:list={[
|
||||||
"sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5",
|
"sidebar-link block py-2 px-4 text-sm rounded-md",
|
||||||
"border-l-2 border-transparent transition-colors",
|
"transition-colors",
|
||||||
"text-gray-500 hover:text-gray-950 hover:bg-gray-100",
|
"text-gray-500 hover:text-gray-950 hover:bg-gray-100",
|
||||||
"dark:hover:text-gray-50 dark:hover:bg-gray-900",
|
"dark:hover:text-gray-50 dark:hover:bg-gray-900",
|
||||||
item.level === 3 && "pl-6 text-[0.8125rem]",
|
item.level === 3 && "pl-6 text-[0.8125rem]",
|
||||||
@@ -110,8 +110,8 @@ const { items } = Astro.props;
|
|||||||
<a
|
<a
|
||||||
href={`#${item.id}`}
|
href={`#${item.id}`}
|
||||||
class:list={[
|
class:list={[
|
||||||
"sidebar-link block py-2 px-4 text-sm rounded-md -ml-0.5",
|
"sidebar-link block py-2 px-4 text-sm rounded-md",
|
||||||
"border-l-2 border-transparent transition-colors",
|
"transition-colors",
|
||||||
"text-gray-500 hover:text-gray-950 hover:bg-gray-100",
|
"text-gray-500 hover:text-gray-950 hover:bg-gray-100",
|
||||||
"dark:hover:text-gray-50 dark:hover:bg-gray-900",
|
"dark:hover:text-gray-50 dark:hover:bg-gray-900",
|
||||||
item.level === 3 && "pl-6 text-[0.8125rem]",
|
item.level === 3 && "pl-6 text-[0.8125rem]",
|
||||||
@@ -130,38 +130,51 @@ const { items } = Astro.props;
|
|||||||
function initSpecSidebar() {
|
function initSpecSidebar() {
|
||||||
// Active section tracking
|
// Active section tracking
|
||||||
const sidebarLinks = document.querySelectorAll("[data-sidebar-link]");
|
const sidebarLinks = document.querySelectorAll("[data-sidebar-link]");
|
||||||
const sections = new Map<string, Element>();
|
const sections: { id: string; element: Element }[] = [];
|
||||||
|
|
||||||
sidebarLinks.forEach((link) => {
|
sidebarLinks.forEach((link) => {
|
||||||
const id = link.getAttribute("data-section-id");
|
const id = link.getAttribute("data-section-id");
|
||||||
if (id) {
|
if (id) {
|
||||||
const section = document.getElementById(id);
|
const section = document.getElementById(id);
|
||||||
if (section) {
|
if (section) {
|
||||||
sections.set(id, section);
|
sections.push({ id, element: section });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Intersection Observer for active state
|
// Highlight the section whose top is closest to viewport top
|
||||||
const observer = new IntersectionObserver(
|
function updateActiveSection() {
|
||||||
(entries) => {
|
const headerOffset = 100; // Account for sticky header
|
||||||
entries.forEach((entry) => {
|
let activeId = sections[0]?.id;
|
||||||
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,
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
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
|
// Mobile TOC drawer
|
||||||
const toggleBtn = document.getElementById("spec-toc-toggle");
|
const toggleBtn = document.getElementById("spec-toc-toggle");
|
||||||
@@ -210,7 +223,6 @@ const { items } = Astro.props;
|
|||||||
<style>
|
<style>
|
||||||
/* Active state for sidebar links (toggled by JavaScript) */
|
/* Active state for sidebar links (toggled by JavaScript) */
|
||||||
.sidebar-link.active {
|
.sidebar-link.active {
|
||||||
border-left-color: #0284c7;
|
|
||||||
color: #0284c7;
|
color: #0284c7;
|
||||||
background-color: rgba(14, 165, 233, 0.15);
|
background-color: rgba(14, 165, 233, 0.15);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user