Skip to content

Commit

Permalink
Merge pull request #282 from JaneliaSciComp/add-proposal-page
Browse files Browse the repository at this point in the history
feat: add proposal page
  • Loading branch information
allison-truhlar authored Jul 26, 2024
2 parents 758638e + 7f22452 commit 736ac15
Show file tree
Hide file tree
Showing 22 changed files with 215 additions and 15 deletions.
9 changes: 7 additions & 2 deletions src/components/Link.astro
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
---
const { text, url } = Astro.props;
import { twMerge } from "tailwind-merge";
const { text, url, textClasses } = Astro.props;
---

<a
class="underline transition ease-in duration-200 hover:text-primary dark:text-slate-300 dark:hover:text-accent cursor-pointer"
class={twMerge(
"underline transition ease-in duration-200 hover:text-primary dark:text-slate-300 dark:hover:text-accent cursor-pointer",
textClasses
)}
href={url}
target="_blank"
>
{text}
</a>
44 changes: 44 additions & 0 deletions src/components/ProposalListItem.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
import { getEntries } from "astro:content";
import Link from "./Link.astro";
import { TbFileTypePdf } from "react-icons/tb";
const { proposal } = Astro.props;
const relatedProjects = await getEntries(proposal.data.projects);
---

<li
class={`max-w-3xl mx-auto md:max-w-none flex flex-col md:grid gap-6 md:gap-8 dark:bg-slate-900`}
>
<div class="py-4">
<div
class="text-lg md:text-xl font-bold leading-tight mb-2 font-heading dark:text-slate-300"
>
<a
class="flex gap-2 items-center hover:text-primary dark:hover:text-primary transition ease-in duration-200"
href={proposal.data["OSSI proposal link"]}
target="_blank"
>
<TbFileTypePdf className="min-w-6 h-auto" />
{proposal.data.title}
</a>
</div>

<p
class="text-base md:text-lg flex-grow text-muted mb-2 dark:text-slate-400"
>
{proposal.data.authors}
</p>
<div class="flex items-center flex-wrap mb-2 gap-x-3">
<p class="text-base font-semibold">Funded projects:</p>
{
relatedProjects.map((project) => {
if (project) {
const slug = project.slug;
const title = project.data.title;
return <Link url={`/projects/${slug}`} text={title} />;
}
})
}
</div>
</div>
</li>
17 changes: 13 additions & 4 deletions src/components/blog/BlogHeadline.astro
Original file line number Diff line number Diff line change
@@ -1,12 +1,21 @@
---
const { title = await Astro.slots.render('default'), subtitle = await Astro.slots.render('subtitle') } = Astro.props;
const {
title = await Astro.slots.render("default"),
subtitle = await Astro.slots.render("subtitle"),
} = Astro.props;
---

<header class="mb-8 md:mb-16 text-center max-w-3xl mx-auto">
<h1 class="text-4xl md:text-5xl font-bold leading-tighter tracking-tighter font-heading" set:html={title} />
<header class="mb-4 md:mb-8 text-center max-w-3xl mx-auto">
<h1
class="text-4xl md:text-5xl font-bold leading-tighter tracking-tighter font-heading"
set:html={title}
/>
{
subtitle && (
<div class="mt-2 md:mt-3 mx-auto text-xl text-gray-500 dark:text-slate-400 font-medium" set:html={subtitle} />
<div
class="mt-2 md:mt-3 mx-auto text-xl text-gray-500 dark:text-slate-400 font-medium"
set:html={subtitle}
/>
)
}
</header>
14 changes: 14 additions & 0 deletions src/content/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,19 @@ const projectsCollection = defineCollection({
}),
});

// Proposals frontmatter
const proposalCollection = defineCollection({
type: "content",
schema: z.object({
"OSSI proposal link": z.string(),
title: z.string(),
authors: z.string(),
projects: z
.union([z.array(reference("projects")), reference("projects")])
.optional(),
}),
});

// Blogs frontmatter
const blogCollection = defineCollection({
type: "content",
Expand Down Expand Up @@ -117,6 +130,7 @@ const ecosystemsCollection = defineCollection({
// Export all content frontmatter configurations
export const collections = {
projects: projectsCollection,
proposals: proposalCollection,
blog: blogCollection,
ecosystems: ecosystemsCollection,
};
3 changes: 2 additions & 1 deletion src/content/projects/bigstitcher.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,6 @@ use case:
]
usage environment: [Local installation]
software ecosystem: [Fiji, BigDataViewer, ImgLib2]
supported file types: [N5, HDF5, ZARR, TIFF, Bioformats compatible formats, Zeiss CZI]
supported file types:
[N5, HDF5, ZARR, TIFF, Bioformats compatible formats, Zeiss CZI]
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
OSSI proposal link: ../../proposals/single_molecule_localization.pdf
title: An open-source platform for single-molecule localization
authors: Srini Turaga, Jakob Macke, Jonas Ries
projects: [an-open-source-platform-for-single-molecule-localization]
---
6 changes: 6 additions & 0 deletions src/content/proposals/bigwarp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
OSSI proposal link: ../../proposals/bigwarp.pdf
title: WarpSpeed to accessible registration
authors: John Bogovic, Larissa Heinrich, and Stephan Saalfeld
projects: [bigwarp]
---
6 changes: 6 additions & 0 deletions src/content/proposals/catena.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
OSSI proposal link: ../../proposals/catena.pdf
title: Maintenance and enhancement of Funke lab's automated reconstruction pipeline for volumetric Electron Microscopy
authors: Samia Mohinta, Albert Cardona
projects: [catena]
---
6 changes: 6 additions & 0 deletions src/content/proposals/easifish-pipeline.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
OSSI proposal link: ../../proposals/easifish_pipeline.pdf
title: EASI-FISH pipeline
authors: MultiFISH Project Team
projects: [easi-fish-pipeline]
---
6 changes: 6 additions & 0 deletions src/content/proposals/hortacloud.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
OSSI proposal link: ../../proposals/hortacloud.pdf
title: janeliaHortaCloud
authors: MouseLight Project Team
projects: [hortacloud]
---
6 changes: 6 additions & 0 deletions src/content/proposals/java-packaging-tool-chain.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
OSSI proposal link: ../../proposals/jvm_tool_deployment.pdf
title: User friendly deployment of JVM based tools
authors: Caleb Hulbert, John Bogovic and Stephan Saalfeld
projects: [java-packaging-tool-chain]
---
6 changes: 6 additions & 0 deletions src/content/proposals/kilosort.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
OSSI proposal link: ../../proposals/kilosort.pdf
title: Kilosort
authors: Marius Pachitariu
projects: [kilosort]
---
6 changes: 6 additions & 0 deletions src/content/proposals/neuvid.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
OSSI proposal link: ../../proposals/neuvid.pdf
title: Cell videos from high-level descriptions
authors: Philip Hubbard
projects: [neuvid]
---
6 changes: 6 additions & 0 deletions src/content/proposals/ossi-website.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
OSSI proposal link: ../../proposals/ossi_website.pdf
title: Open Science Software Portfolio
authors: Tiago Ferreira and Konrad Rokicki
projects: [ossi-website]
---
6 changes: 6 additions & 0 deletions src/content/proposals/paintera.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
OSSI proposal link: ../../proposals/paintera.pdf
title: Paintera
authors: Caleb Hulbert, John Bogovic and Stephan Saalfeld
projects: [paintera]
---
6 changes: 6 additions & 0 deletions src/content/proposals/petascale-lightsheet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
OSSI proposal link: ../../proposals/petascale_lightsheet.pdf
title: Peta-scale lightsheet microscopy reconstruction and maintenance of existing software
authors: Stephan Preibisch, Stephan Saalfeld
projects: [bigstitcher-spark, bigstitcher, stitching-spark]
---
6 changes: 6 additions & 0 deletions src/content/proposals/spatial-transcriptomics-tools.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
OSSI proposal link: ../../proposals/spatial_transcriptomics_tools.pdf
title: Tools for spatial transcriptomics
authors: Marwan Zouinkhi, Stephan Preibisch
projects: [rs-fish, stim]
---
6 changes: 6 additions & 0 deletions src/content/proposals/suite2p-and-cellpose.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
OSSI proposal link: ../../proposals/suite2p_and_cellpose.pdf
title: Suite2p and Cellpose
authors: Carsen Stringer
projects: [cellpose, suite2p]
---
6 changes: 6 additions & 0 deletions src/content/proposals/video-annotation-library.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
OSSI proposal link: ../../proposals/video_annotation_library.pdf
title: An adaptable and extensible library for annotation of video
authors: Kristin Branson, Mayank Kabra, Iljung Kwak
projects: [video-annotation-library]
---
6 changes: 6 additions & 0 deletions src/content/proposals/vvd-viewer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
OSSI proposal link: ../../proposals/vvdviewer.pdf
title: VVD Viewer
authors: Takashi Kawase, Hideo Otsuna, Stephan Preibisch, Konrad Rokicki
projects: [vvd-viewer]
---
29 changes: 21 additions & 8 deletions src/pages/ossi.astro → src/pages/ossi/index.astro
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
---
import Image from "astro/components/Image.astro";
import BaseLayout from "../layouts/BaseLayout.astro";
import Hero from "../components/Hero";
import TextBlock from "../components/TextBlock.astro";
import Wrapper from "../components/Wrapper.astro";
import BaseLayout from "../../layouts/BaseLayout.astro";
import Hero from "../../components/Hero";
import TextBlock from "../../components/TextBlock.astro";
import Wrapper from "../../components/Wrapper.astro";
import Link from "../../components/Link.astro";
import ossiPhasesImgWhite from "../assets/images/ossi_phases-white.png";
import ossiPhasesImgBlack from "../assets/images/ossi_phases-black.png";
const baseUrl = import.meta.env.BASE_URL;
import ossiPhasesImgWhite from "../../assets/images/ossi_phases-white.png";
import ossiPhasesImgBlack from "../../assets/images/ossi_phases-black.png";
---

<BaseLayout>
Expand All @@ -26,6 +25,7 @@ const baseUrl = import.meta.env.BASE_URL;
<Fragment slot="title"
>About the Janelia Open Science Software Initiative (OSSI)</Fragment
>

<Fragment slot="content">
Open-source code and software are immensely important to progress in all
areas of science. Sharing code allows the same analyses to be performed
Expand Down Expand Up @@ -65,15 +65,28 @@ const baseUrl = import.meta.env.BASE_URL;
source software.
</Fragment>
</TextBlock>

<TextBlock>
<Fragment slot="subtitle">Call for projects</Fragment>
<Fragment slot="content">
We invite proposals for Open-Source Software projects from scientists at
Janelia. The aim of a proposal should generally be to develop, maintain
and/or document developer-friendly, user-friendly code that promises to
have a significant impact on the community.
<!-- <br />
<br />
<a style={"color: var(--color-primary)"} href="/ossi/proposals"
>View successful proposals</a
><br /> -->
</Fragment>
</TextBlock>
<div class="self-start pb-4 sm:pb-8">
<Link
url="/ossi/proposals"
text="View successful proposals"
textClasses="md:leading-normal 2xl:leading-relaxed text-base sm:text-lg md:text-xl 2xl:text-2xl dark:text-slate-200"
/>
</div>
<TextBlock>
<Fragment slot="subtitle">OSSI Project Lifecycle</Fragment>
<Fragment slot="content">
Expand Down
24 changes: 24 additions & 0 deletions src/pages/ossi/proposals.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
import { getCollection } from "astro:content";
import BaseLayout from "../../layouts/BaseLayout.astro";
import Headline from "../../components//blog/BlogHeadline.astro";
import ProposalListItem from "../../components/ProposalListItem.astro";
const proposals = await getCollection("proposals");
---

<BaseLayout>
<section class="px-6 pt-28 mx-auto max-w-4xl">
<Headline subtitle="View proposals for past and current OSSI projects.">
OSSI Proposals
</Headline>
<ul>
{
proposals.map((proposal) => {
return <ProposalListItem proposal={proposal} />;
})
}
</ul>
</section>
</BaseLayout>

0 comments on commit 736ac15

Please sign in to comment.