Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add vision, goals, and roadmap #189

Merged
merged 31 commits into from
Mar 11, 2021
Merged
Show file tree
Hide file tree
Changes from 24 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
b91fc42
Add vision and goals
fmvilas Mar 1, 2021
237504b
Make community text strong
fmvilas Mar 1, 2021
4a95388
Update pages/roadmap.js
fmvilas Mar 1, 2021
87c2b6e
Remove time constraint from community growth
fmvilas Mar 1, 2021
7c3e11d
Fix gRPC reference
fmvilas Mar 1, 2021
772824f
Add automatic Roadmap build (wip)
fmvilas Mar 2, 2021
de0391b
Filter roadmap by open issues
fmvilas Mar 2, 2021
3d5ba20
Add workflow to re-deploy website when roadmap changes
fmvilas Mar 2, 2021
f203c70
Update pages/roadmap.js
fmvilas Mar 2, 2021
615f648
Refactor React code for the Roadmap and get info from Github labels i…
fmvilas Mar 2, 2021
6696681
Fix github action
fmvilas Mar 2, 2021
422ae29
Fix typo on workflow
fmvilas Mar 2, 2021
7b1d1d6
Trying to fix deploy workflow
fmvilas Mar 2, 2021
f1b7f1c
Add bets to roadmap.json
fmvilas Mar 3, 2021
6554dd8
Add roadmap.json to .gitignore
fmvilas Mar 3, 2021
49ddd28
Add bets to roadmap
fmvilas Mar 3, 2021
237f199
Add features and legend
fmvilas Mar 3, 2021
6869006
Fix postcss whitelist patterns
fmvilas Mar 3, 2021
74778b5
Add some paragraphs explaining the roadmap and vision-goals
fmvilas Mar 3, 2021
fd22de5
Improve layout and text
fmvilas Mar 3, 2021
b3bddc4
Accommodate layout on mobile
fmvilas Mar 3, 2021
318fa31
Add roadmap image for social cards
fmvilas Mar 3, 2021
ef1f12d
Add Roadmap to main navigation
fmvilas Mar 3, 2021
94853bb
Replace Zenhub with Github
fmvilas Mar 3, 2021
3b7da0e
Add solutions to the roadmap
fmvilas Mar 5, 2021
d59df36
Fix issue link
fmvilas Mar 5, 2021
08b31ac
Make items collapsible with icon
fmvilas Mar 5, 2021
96d0181
Add warning message for contributors and better legend with explanations
fmvilas Mar 9, 2021
171d73c
Rename key results to outcomes
fmvilas Mar 9, 2021
3982214
Make it possible for a solution to have multiple associated outcomes
fmvilas Mar 10, 2021
05ac3e3
Merge branch 'master' into add-roadmap
fmvilas Mar 11, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Deploy to Netlify
on:
issues:
types: [opened, deleted, closed, reopened, labeled, unlabeled]

jobs:
publish:
runs-on: ubuntu-latest

steps:
- name: Trigger deploy on Netlify
run: |
curl -X POST "https://api.netlify.com/api/v1/sites/$NETLIFY_SITE_ID/builds" -H "Authorization: Bearer $NETLIFY_AUTH_TOKEN"
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@
node_modules
.next
config/posts.json
.env.local
roadmap.json
6 changes: 4 additions & 2 deletions components/helpers/click-away.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ export function registerClickAway(callback) {
document.addEventListener("click", unregisterClickAway)

document.querySelectorAll('iframe').forEach(iframe => {
if (iframe.attributes.src.value.startsWith('/') && !iframe.attributes.src.value.startsWith('//')) {
const src = iframe.attributes.src
if (src && src.value.startsWith('/') && !src.value.startsWith('//')) {
iframe.contentWindow.document.removeEventListener("click", unregisterClickAway)
iframe.contentWindow.document.addEventListener("click", unregisterClickAway)
}
Expand All @@ -12,7 +13,8 @@ export function registerClickAway(callback) {
function unregisterClickAway() {
document.removeEventListener("click", unregisterClickAway)
document.querySelectorAll('iframe').forEach(iframe => {
if (iframe.attributes.src.value.startsWith('/') && !iframe.attributes.src.value.startsWith('//')) {
const src = iframe.attributes.src
if (src && src.value.startsWith('/') && !src.value.startsWith('//')) {
iframe.contentWindow.document.removeEventListener("click", unregisterClickAway)
}
})
Expand Down
12 changes: 6 additions & 6 deletions components/layout/DocsLayout.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ export default function DocsLayout({ post, navItems = {}, children }) {
) }

{/* <!-- Static sidebar for desktop --> */}
<div className="hidden md:flex md:flex-shrink-0">
<div className="hidden lg:flex lg:flex-shrink-0">
<div className="flex flex-col w-64 border-r border-gray-200 bg-white">
<div className="flex-1 flex flex-col pt-5 md:overflow-y-auto md:sticky md:top-0 md:max-h-screen">
<ClickableLogo logoClassName="h-8 w-auto ml-4 mt-0.5" />
Expand All @@ -57,17 +57,17 @@ export default function DocsLayout({ post, navItems = {}, children }) {
</div>
</div>
</div>
<div className="flex flex-col w-0 flex-1 max-w-full md:max-w-(screen-16)">
<div className="flex pl-1 pt-2 pb-2 sm:pl-3 sm:pt-3 md:hidden">
<NavBar className="flex px-4 w-full md:hidden" />
<div className="flex flex-col w-0 flex-1 max-w-full lg:max-w-(screen-16)">
<div className="flex pl-1 pt-2 pb-2 sm:pl-3 sm:pt-3 lg:hidden">
<NavBar className="flex px-4 w-full lg:hidden" />
</div>
<div className="hidden md:flex md:border-b md:border-gray-200">
<div className="hidden lg:flex lg:border-b lg:border-gray-200">
<NavBar hideLogo />
</div>
<main className="relative z-0 pt-2 pb-6 focus:outline-none md:py-6" tabIndex="0">
<AnnouncementHero className="text-center mx-4" small={true} />
{!showMenu && (
<div className="md:hidden">
<div className="lg:hidden">
<button onClick={() => setShowMenu(true)} className="flex text-gray-500 px-4 sm:px-6 md:px-8 hover:text-gray-900 focus:outline-none" aria-label="Open sidebar">
<span>{post.sectionTitle}</span>
<ArrowRight className="pl-1 w-5 h-5 transform rotate-90" />
Expand Down
2 changes: 1 addition & 1 deletion components/navigation/MobileNavMenu.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export default function MobileNavMenu ({
onClickClose = () => {},
}) {
return (
<div className="absolute top-0 inset-x-0 py-2 transition transform origin-top-right md:hidden">
<div className="absolute top-0 inset-x-0 py-2 transition transform origin-top-right lg:hidden">
<div className="rounded-lg shadow-lg">
<div className="rounded-lg shadow-xs bg-white divide-y-2 divide-gray-50">
<div className="pt-5 pb-6 px-5 space-y-6">
Expand Down
10 changes: 5 additions & 5 deletions components/navigation/NavBar.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,24 +32,24 @@ export default function NavBar ({

return (
<div className={`relative bg-white ${className} z-50`}>
<div className="flex w-full justify-between items-center py-6 md:justify-start md:space-x-10">
<div className="flex w-full justify-between items-center py-6 lg:justify-start lg:space-x-10">
{
!hideLogo && (
<div className="lg:w-0 lg:flex-1">
<div className="lg:w-auto lg:flex-1">
<a href="/" className="flex">
<AsyncAPILogo className="h-8 w-auto sm:h-8" />
</a>
</div>
)
}
<div className="-mr-2 -my-2 md:hidden">
<div className="-mr-2 -my-2 lg:hidden">
<button onClick={() => setMobileMenuOpen(true)} type="button" className="inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out">
<svg className="h-6 w-6" stroke="currentColor" fill="none" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M4 6h16M4 12h16M4 18h16"/>
</svg>
</button>
</div>
<nav className="hidden md:flex space-x-10">
<nav className="hidden lg:flex space-x-10">
<div className="relative">
<NavItem text="Learning" onClick={() => showMenu('learning')} hasDropdown />
{open === 'learning' && <LearningPanel />}
Expand All @@ -71,7 +71,7 @@ export default function NavBar ({
))
}
</nav>
<div className="hidden md:flex md:flex-1">
<div className="hidden lg:flex lg:flex-1">

</div>
</div>
Expand Down
1 change: 1 addition & 0 deletions components/navigation/otherItems.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
export default [
{ text: 'Blog', href: '/blog' },
// { text: 'Shop', href: 'https://asyncapi.threadless.com', target: '_blank' },
{ text: "Roadmap", href: '/roadmap', className: 'text-green-400 font-bold' },
{ text: "Jobs", href: '/jobs', className: 'text-primary-500 font-bold' },
]
25 changes: 25 additions & 0 deletions components/roadmap/RoadmapColumn.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import RoadmapItem from "./RoadmapItem";

export default function RoadmapColumn({ title, description, colorClass, items = [] }) {
return (
<div className="mt-8 lg:mt-4">
<div className="p-4">
<h3 className="text-md font-semibold uppercase text-center">{title}</h3>
<p className="text-center text-sm text-gray-600 mt-2">{description}</p>
</div>
<ul className="mt-3">
{
items.map((item, index) => (
<RoadmapItem
key={index}
url={item.url}
title={item.title}
bets={item.bets}
colorClass={colorClass}
/>
))
}
</ul>
</div>
)
}
35 changes: 35 additions & 0 deletions components/roadmap/RoadmapItem.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
export default function RoadmapItem({ url, title, bets = [], colorClass }) {
return (
<li className="mt-2">
<div className="flex shadow-sm rounded-md">
<a href={url} target="_blank" className={`flex-shrink-0 flex items-center justify-center w-4 text-sm font-medium rounded-l-md ${colorClass}`}></a>
<div className="flex-1 flex items-center justify-between border-t border-r border-b border-gray-200 bg-white rounded-r-md">
<div className="flex-1 px-4 py-2 text-sm">
<a href={url} target="_blank" className="block text-gray-900 font-medium hover:text-gray-600">{title}</a>
</div>
</div>
</div>

<ul className="mt-3">
{
bets.map((bet, index) => (
<li key={index} className="mt-2 flex">
<div className="border-b-2 border-l-2 border-gray-200 rounded-bl-md w-5 my-2 ml-4 mr-2"></div>
<div className="flex flex-1 shadow-sm rounded-md">
<a href={bet.html_url} target="_blank" className="flex-shrink-0 flex items-center justify-center w-4 text-sm font-medium rounded-l-md bg-gray-700"></a>
<div className="flex-1 flex items-center justify-between border-t border-r border-b border-gray-200 bg-white rounded-r-md">
<div className="flex flex-1 px-4 py-2 text-sm">
{
bet.state === 'closed' && (<div className="text-xs rounded-md h-6 px-1.5 py-0.5 mr-2 uppercase font-semibold bg-gray-100 text-pink-600">Done</div>)
}
<a href={bet.html_url} target="_blank" className="block text-gray-900 font-medium hover:text-gray-600">{bet.title}</a>
</div>
</div>
</div>
</li>
))
}
</ul>
</li>
)
}
100 changes: 97 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 5 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
"version": "0.1.0",
"description": "AsyncAPI website",
"scripts": {
"dev": "node scripts/build-post-list.js && next -p 8080",
"build": "node scripts/build-post-list.js && next build",
"dev": "node scripts/build-post-list.js && node scripts/build-roadmap.js && next -p 8080",
"build": "node scripts/build-post-list.js && node scripts/build-roadmap.js && next build",
"start": "next start",
"export": "next export",
"lint": "echo \"No linter configured yet\"",
Expand Down Expand Up @@ -35,16 +35,19 @@
"@mdx-js/react": "^1.6.4",
"@monaco-editor/react": "^3.3.0",
"@next/mdx": "^9.4.2",
"@octokit/graphql": "^4.6.0",
"@tailwindcss/ui": "^0.3.0",
"@zeit/next-css": "^1.0.1",
"autoprefixer": "^9.7.6",
"dotenv": "^8.2.0",
"gray-matter": "^4.0.2",
"lodash": "^4.17.19",
"markdown-to-txt": "^1.0.1",
"markdown-toc": "^1.2.0",
"moment": "^2.26.0",
"monaco-editor": "^0.20.0",
"next": "^9.4.4",
"node-fetch": "^2.6.1",
"postcss-import": "^12.0.1",
"react": "^16.13.1",
"react-dom": "^16.13.1",
Expand Down
Loading