add release notes

This commit is contained in:
Johannes Kirschbauer 2024-01-03 17:34:07 +01:00 committed by Johannes Kirschbauer
parent 79e7f1393f
commit 5b12f798c8
10 changed files with 129 additions and 52 deletions

View File

@ -3,7 +3,13 @@ import { Header } from "@/components/layout/header";
import { Container } from "@mui/material"; import { Container } from "@mui/material";
import { ReactNode, Suspense } from "react"; import { ReactNode, Suspense } from "react";
export default function SearchLayout({ children }: { children: ReactNode }) { export default function SearchLayout({
children,
params,
}: {
children: ReactNode;
params: { path: string[] };
}) {
return ( return (
<> <>
<Suspense fallback="query"> <Suspense fallback="query">
@ -20,7 +26,7 @@ export default function SearchLayout({ children }: { children: ReactNode }) {
md: "grid", md: "grid",
}, },
// display: "grid", // display: "grid",
gridTemplateColumns: "1fr 6fr 1fr", gridTemplateColumns: "0.4fr 6fr 1fr",
alignItems: "start", alignItems: "start",
}} }}
> >

View File

@ -165,11 +165,18 @@ export default async function Page(props: { params: { path: string[] } }) {
> >
<HighlightBaseline /> <HighlightBaseline />
{meta?.path && {meta?.path &&
meta.path.map((attr, idx) => ( meta.path.map((attr, idx, all) =>
<Box sx={{ display: "none" }} key={`${idx}`}> idx === all.length - 1 ? (
<>
<meta key={idx} data-pagefind-meta={`name:${attr}`} />
<Box component="h1" sx={{ display: "none" }}>
{attr} {attr}
</Box> </Box>
))} </>
) : (
<meta key={idx} data-pagefind-meta={`category:${attr}`} />
)
)}
<Box> <Box>
<Box <Box
sx={{ sx={{

View File

@ -7,7 +7,8 @@ import { Metadata } from "next";
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Noogle", title: "Noogle",
description: "nix api reference. Including nix, nixpkgs and nixos", description:
"Nix API reference. Includes nix, nixpkgs and nixos. Search nix functions within the nix ecosystem based on type, name, description, example, category and more.",
creator: "@hsjobeki", creator: "@hsjobeki",
abstract: "Nix and NixOS API Documentation", abstract: "Nix and NixOS API Documentation",
robots: { index: true, notranslate: true, nocache: true }, robots: { index: true, notranslate: true, nocache: true },
@ -18,13 +19,6 @@ const inter = localFont({
src: "../fonts/Inter-Regular.otf", src: "../fonts/Inter-Regular.otf",
display: "swap", display: "swap",
}); });
// /* <title>noogle</title>
// <meta charSet="utf-8" />
// <meta
// name="description"
// content="Search nix functions. Search functions within the nix ecosystem based on type, name, description, example, category and more."
// />
// <meta /> */
export default function RootLayout({ export default function RootLayout({
children, children,

View File

@ -38,7 +38,7 @@ x: x;
- [ ] Provide examples for different scenarios when this function might be useful. -> ` # Example(s) ` - [ ] Provide examples for different scenarios when this function might be useful. -> ` # Example(s) `
- [ ] Provide a (single) type signature -> `# Type ` - [ ] Provide a (single) type signature -> `# Type `
- [ ] What types does the function expect? - [ ] What types does the function expect?
- [ ] Try to use this [typing convention](/tutorials/typing) for best compatibility with noogle - [ ] Try to use this [typing convention](/md/typing) for best compatibility with noogle
- [ ] Describe the purpose of all arguments.-> `# Arguments` - [ ] Describe the purpose of all arguments.-> `# Arguments`
- [ ] Positional Arguments - [ ] Positional Arguments
- [ ] All known Attributes - [ ] All known Attributes

View File

@ -0,0 +1,57 @@
We are excited to announce the release of a groundbreaking version of Noogle.
# Noogle release 2024-1
Noogle has evolved into a versatile toolset, empowering new and experienced users.
Its underlying toolset can render doc-comments seamlessly into markdown, HTML, or JSON formats.
---
A lot of knowledge and experience that I have gained while creating [RFC145](https://github.com/NixOS/rfcs/blob/master/rfcs/0145-doc-strings.md) and working on other automated documentation tools has gone into this new version.
---
## Key Features and Enhancements
**Integration with RFC145**
Our primary focus has been on seamlessly integrating Noogle with [RFC145](https://github.com/NixOS/rfcs/blob/master/rfcs/0145-doc-strings.md), enhancing the overall functionality and utility.
**SEO Optimization**
Noogle now boasts enhanced SEO optimization, ensuring that every documentation page is static HTML and easily discoverable on popular search engines like Google and Bing.
**Function Alias Detection**
Noogle now incorporates advanced function alias detection, making your searches even more intuitive and efficient.
**Performance, Readability & Usability**
We've invested in optimizing performance, enhancing readability, and improving overall usability to make your Noogle experience smoother and more enjoyable.
**Blazingly Fast WASM-Based Search**
Thanks to the integration of pagefind, Noogle now offers a lightning-fast search experience through WebAssembly, setting new standards for speed and efficiency.
**Configuration-Based Extendability**
Users can now extend Noogle's capabilities through a configuration-based approach, customizing the toolset to suit more needs.
**On-Site Doc-Comment Contributions Tutorials**
Learn how to contribute to doc-comments such that they appear in noogle. Follow our comprehensive [tutorials](/md/documentation)
**Improved Type Detection**
We've enhanced type detection capabilities, providing more accurate and detailed information in your search results.
**Redesigned Search Website**
The search website has undergone a significant overhaul to highlight the massive changes in the underlying toolset.
**and many more ...**
## Happy searching!
[@hsjobeki](https://github.com/hsjobeki)

View File

@ -3,7 +3,7 @@ import { FunctionOfTheDay } from "@/components/functionOfTheDay";
import { LandingPageLayout } from "@/components/layout"; import { LandingPageLayout } from "@/components/layout";
import { FilterProvider } from "@/components/layout/filterContext"; import { FilterProvider } from "@/components/layout/filterContext";
import { SearchInput } from "@/components/searchInput"; import { SearchInput } from "@/components/searchInput";
import { Box, Typography, Link } from "@mui/material"; import { Box, Typography, Link, Tooltip } from "@mui/material";
import localFont from "next/font/local"; import localFont from "next/font/local";
import { Suspense } from "react"; import { Suspense } from "react";
@ -24,7 +24,8 @@ export default function Home() {
alignItems: "center", alignItems: "center",
}} }}
> >
<Link href="/" underline="none"> <Link href="/md/release/2024-1" underline="none">
<Tooltip title="Whats new">
<Typography <Typography
variant="h1" variant="h1"
className={fira.className} className={fira.className}
@ -35,15 +36,9 @@ export default function Home() {
fontVariantLigatures: "normal", fontVariantLigatures: "normal",
}} }}
> >
<Box component="span">N</Box> Noogλe :: 2024
<Box component="span">o</Box>
<Box component="span">o</Box>
<Box component="span">g</Box>
<Box component="span">λ</Box>
<Box component="span">e</Box>
</Typography> </Typography>
</Tooltip>
</Link> </Link>
<Box <Box

View File

@ -45,7 +45,11 @@ export const PositionLink = ({
</Typography> </Typography>
)} )}
<Box sx={{ display: "flex", alignItems: "center" }}> <Box sx={{ display: "flex", alignItems: "center" }}>
<Typography variant="subtitle2" sx={{ color: "text.secondary" }}> <Typography
variant="subtitle2"
sx={{ color: "text.secondary" }}
component={"div"}
>
{contentPosition && ( {contentPosition && (
<Link <Link
target="_blank" target="_blank"
@ -107,14 +111,19 @@ export const PositionLink = ({
<Typography variant="h5" sx={{ pt: 2 }}> <Typography variant="h5" sx={{ pt: 2 }}>
{"Contribute"} {"Contribute"}
</Typography> </Typography>
<Typography variant="body1" gutterBottom sx={{ py: 2 }}> <Typography
variant="body1"
gutterBottom
sx={{ py: 2 }}
component={"div"}
>
<Box> <Box>
Enhance the ecosystem with your expertise! Contribute to fill the Enhance the ecosystem with your expertise! Contribute to fill the
gaps in documentation. Your input can make a difference. gaps in documentation. Your input can make a difference.
</Box> </Box>
<List sx={{ width: "100%" }}> <List sx={{ width: "100%" }}>
<ListItem> <ListItem>
<Link href="/tutorials/documentation" target="_blank"> <Link href="/md/documentation" target="_blank">
<ListItemButton> <ListItemButton>
<ListItemText <ListItemText
primary="Write API documentation for this function" primary="Write API documentation for this function"
@ -125,7 +134,7 @@ export const PositionLink = ({
</ListItem> </ListItem>
{!contentPosition && ( {!contentPosition && (
<ListItem> <ListItem>
{/* <Link href={"/tutorials/noogle"} target="_blank"> */} {/* <Link href={"/md/noogle"} target="_blank"> */}
<ListItemButton> <ListItemButton>
<ListItemText <ListItemText
primary="Improve position tracking" primary="Improve position tracking"

View File

@ -1,11 +1,17 @@
"use client"; "use client";
import { Box, IconButton, LinearProgress, Link, useTheme } from "@mui/material"; import { Box, LinearProgress, Link, useTheme } from "@mui/material";
import { SearchInput } from "../searchInput"; import { SearchInput } from "../searchInput";
import { Home, Menu } from "@mui/icons-material";
import { Filter } from "../filter"; import { Filter } from "../filter";
import { Suspense } from "react"; import { Suspense } from "react";
import { SocialIcons } from "./layout"; import { SocialIcons } from "./layout";
import localFont from "next/font/local";
const fira = localFont({
src: "../../fonts/FiraCode-VF.ttf",
display: "swap",
});
export const Header = () => { export const Header = () => {
const theme = useTheme(); const theme = useTheme();
@ -30,32 +36,35 @@ export const Header = () => {
> >
<Box <Box
sx={{ sx={{
justifySelf: "start", justifyContent: "start",
display: { xs: "none", md: "block" }, alignSelf: "center",
px: 1,
// display: { xs: "none", md: "block" },
}} }}
> >
<Link <Link
href="/" href="/"
className={fira.className}
sx={{ sx={{
color: "primary.contrastText", color: "primary.contrastText",
letterSpacing: -0.3,
}} }}
aria-label="Home" aria-label="Home"
>
{"Noogλe"}
</Link>
</Box>
{/* <Box
sx={{
justifySelf: "start",
display: { xs: "block", md: "none" },
color: "primary.contrastText",
}}
> >
<IconButton color="inherit" aria-label="Home"> <IconButton color="inherit" aria-label="Home">
<Home /> <Home />
</IconButton> </IconButton>
</Link> </Box> */}
</Box>
<Box
sx={{
justifySelf: "start",
display: { xs: "block", md: "none" },
}}
>
<IconButton color="inherit" aria-label="Menu">
<Menu />
</IconButton>
</Box>
<Box <Box
sx={{ sx={{