Skip to content

Commit d00df9c

Browse files
committed
feat: add base repository URL to documentation config and implement issue reporting and editing links in documentation pages
1 parent 03a3e52 commit d00df9c

File tree

3 files changed

+39
-1
lines changed

3 files changed

+39
-1
lines changed

explainer.config.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@ export default defineExplainerConfig({
1717
label: 'Framework',
1818
href: '/docs/framework/getting-started',
1919
baseUrl: '/docs/framework',
20+
baseRepositoryUrl: 'https://github.com/LeadcodeDev/explainer',
2021
},
2122
syntax: {
2223
icon: 'lucide:pencil-line',
2324
label: 'Syntax',
2425
href: '/docs/syntax/texts',
2526
baseUrl: '/docs/syntax',
27+
baseRepositoryUrl: 'https://github.com/LeadcodeDev/explainer',
2628
},
2729
},
2830
blog: {

src/lib/utils.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ type ExplainerDocs = {
3636
label: string
3737
href: string
3838
baseUrl: string
39+
baseRepositoryUrl: string
3940
}
4041

4142
type ExplainerBlog = {

src/pages/docs/[...slug].astro

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ export async function getStaticPaths() {
3636
const { element } = Astro.props;
3737
const { Content, headings } = await render(element);
3838
39+
const currentDoc = config.docs[element.collection];
40+
const issueUrl = currentDoc?.baseRepositoryUrl + "/issues/new";
41+
const repositoryUrl = currentDoc?.baseRepositoryUrl + "/" + element.filePath;
42+
3943
const availableHeadings = headings.filter((heading) =>
4044
[2, 3].includes(heading.depth),
4145
);
@@ -103,11 +107,42 @@ function pascalCase(str: string) {
103107
<div class="prose">
104108
<Content components={{ CodeGroupWrapper }} />
105109
</div>
110+
111+
<div
112+
data-orientation="horizontal"
113+
role="separator"
114+
class="flex items-center align-center text-center w-full flex-row pt-20"
115+
>
116+
<div class="border-default w-full border-solid border-t"></div><div
117+
class="font-medium text-default flex mx-3 whitespace-nowrap"
118+
>
119+
<div class="flex items-center gap-2 text-sm text-muted-foreground">
120+
<a
121+
href={issueUrl}
122+
rel="noopener noreferrer"
123+
target="_blank"
124+
class="rounded-md font-medium inline-flex items-center disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:opacity-75 transition-colors px-2.5 py-1.5 text-xs gap-1.5 text-muted-foreground hover:text-default disabled:text-muted aria-disabled:text-muted focus:outline-none focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-inverted"
125+
>
126+
Report an issue
127+
</a>
128+
or
129+
<a
130+
href={repositoryUrl}
131+
rel="noopener noreferrer"
132+
target="_blank"
133+
class="rounded-md font-medium inline-flex items-center disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:opacity-75 transition-colors px-2.5 py-1.5 text-xs gap-1.5 text-muted-foreground hover:text-default disabled:text-muted aria-disabled:text-muted focus:outline-none focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-inverted"
134+
>
135+
Edit this page on GitHub
136+
</a>
137+
</div>
138+
</div>
139+
<div class="border-default w-full border-solid border-t"></div>
140+
</div>
106141
</div>
107142

108143
{/* Table of contents */}
109144
<aside class="hidden xl:block w-64">
110-
<div class="sticky top-14 p-4 overflow-y-auto h-[calc(100vh-4rem)]">
145+
<div class="fixed top-14 p-4 overflow-y-auto h-[calc(100vh-4rem)]">
111146
<p
112147
class="group text-sm font-semibold flex-1 items-center gap-1.5 py-1.5 -mt-1.5 focus-visible:outline-primary hidden lg:flex"
113148
>

0 commit comments

Comments
 (0)