Skip to content

Commit 7b66701

Browse files
authored
Merge pull request linode#25 from linode/development
Release (updates prior to launch)
2 parents 9fa4be9 + 9edf8df commit 7b66701

File tree

8 files changed

+265
-107
lines changed

8 files changed

+265
-107
lines changed

gatsby-config.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,32 @@ module.exports = {
2626
]
2727
},
2828
plugins: [
29+
{
30+
resolve: `gatsby-plugin-google-analytics`,
31+
options: {
32+
trackingId: "UA-177150-22",
33+
// Defines where to place the tracking script - `true` in the head and `false` in the body
34+
head: false,
35+
// Setting this parameter is optional
36+
anonymize: true,
37+
// Setting this parameter is also optional
38+
respectDNT: true,
39+
// Avoids sending pageview hits from custom paths
40+
exclude: [],
41+
// Delays sending pageview hits on route update (in milliseconds)
42+
pageTransitionDelay: 0,
43+
// Enables Google Optimize using your container Id
44+
optimizeId: "",
45+
// Enables Google Optimize Experiment ID
46+
experimentId: "",
47+
// Set Variation ID. 0 for original 1,2,3....
48+
variationId: "",
49+
// Any additional create only fields (optional)
50+
sampleRate: 5,
51+
siteSpeedSampleRate: 10,
52+
cookieDomain: "developers.linode.com"
53+
}
54+
},
2955
{
3056
resolve: "gatsby-plugin-netlify-cms",
3157
options: {

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"gatsby": "^2.9.2",
1212
"gatsby-image": "^2.0.29",
1313
"gatsby-plugin-catch-links": "^2.1.2",
14+
"gatsby-plugin-google-analytics": "^2.1.4",
1415
"gatsby-plugin-manifest": "^2.0.17",
1516
"gatsby-plugin-netlify-cms": "^4.0.1",
1617
"gatsby-plugin-offline": "^2.0.22",

src/components/2_molecules/sidemenu.js

Lines changed: 115 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,15 @@ class SideMenu extends React.Component {
104104
}
105105
};
106106

107+
toggleMobileMenu = e => {
108+
const menu = document.querySelector(".mobile-sidebar");
109+
if (menu && menu.classList.contains("is-expanded")) {
110+
menu.classList.remove("is-expanded");
111+
} else if (menu) {
112+
menu.classList.add("is-expanded");
113+
}
114+
};
115+
107116
render() {
108117
const { activePage } = this.state;
109118
const groups = this.props.data.allPaths.group;
@@ -138,104 +147,120 @@ class SideMenu extends React.Component {
138147
<ul className="p-0 mb-4">
139148
<TopMenu />
140149
</ul>
141-
{groups.map((group, i) => {
142-
return (
143-
<div className="list-container" key={i}>
144-
<button
145-
onClick={this.toggleActive}
146-
className="sidemenu-button"
147-
>
148-
<span className="mt-0">
149-
<b>{group.fieldValue}</b>
150-
</span>
151-
<span className="caret ml-2">
152-
<Caret />
153-
</span>
154-
</button>
155-
<div
156-
id={_.kebabCase(group.fieldValue)}
157-
className="list-group"
158-
>
159-
{group.edges.map((link, i) => {
160-
const n = link.node;
161-
return (
162-
<ul key={i} className="p-0">
163-
{n.get && (
164-
<li className="list-reset">
165-
<Link
166-
to={`/api/v4/${_.kebabCase(n.name)}`}
167-
className={`${
168-
_.kebabCase(n.name) + "/" === activePage
169-
? "active-item"
170-
: null
171-
}
150+
<div className="mobile-sidebar">
151+
<div className="mobile-sidebar__header-wrapper md:hidden">
152+
<div onClick={this.toggleMobileMenu}>
153+
<p className="mobile-sidebar__header">Endpoints</p>
154+
</div>
155+
<span className="mobile-sidebar__caret ml-2">
156+
<Caret />
157+
</span>
158+
</div>
159+
<div className="mobile-sidebar__list">
160+
{groups.map((group, i) => {
161+
return (
162+
<div className="list-container" key={i}>
163+
<button
164+
onClick={this.toggleActive}
165+
className="sidemenu-button"
166+
>
167+
<span className="mt-0">
168+
<b>{group.fieldValue}</b>
169+
</span>
170+
<span className="caret ml-2">
171+
<Caret />
172+
</span>
173+
</button>
174+
<div
175+
id={_.kebabCase(group.fieldValue)}
176+
className="list-group"
177+
>
178+
{group.edges.map((link, i) => {
179+
const n = link.node;
180+
return (
181+
<ul key={i} className="p-0">
182+
{n.get && (
183+
<li className="list-reset">
184+
<Link
185+
to={`/api/v4/${_.kebabCase(n.name)}`}
186+
className={`${
187+
_.kebabCase(n.name) + "/" === activePage
188+
? "active-item"
189+
: null
190+
}
172191
api-link
173192
`}
174-
onClick={this.toggleActiveLink}
175-
>
176-
{n.get.summary}
177-
</Link>
178-
</li>
179-
)}
180-
{n.post && (
181-
<li className="list-reset">
182-
<Link
183-
to={`/api/v4/${_.kebabCase(n.name)}/#post`}
184-
className={`${
185-
_.kebabCase(n.name) + "/#post" === activePage
186-
? "active-item"
187-
: null
188-
}
193+
onClick={this.toggleActiveLink}
194+
>
195+
{n.get.summary}
196+
</Link>
197+
</li>
198+
)}
199+
{n.post && (
200+
<li className="list-reset">
201+
<Link
202+
to={`/api/v4/${_.kebabCase(n.name)}/#post`}
203+
className={`${
204+
_.kebabCase(n.name) + "/#post" ===
205+
activePage
206+
? "active-item"
207+
: null
208+
}
189209
api-link
190210
`}
191-
onClick={this.toggleActiveLink}
192-
>
193-
{n.post.summary}
194-
</Link>
195-
</li>
196-
)}
197-
{n.put && (
198-
<li className="list-reset">
199-
<Link
200-
to={`/api/v4/${_.kebabCase(n.name)}/#put`}
201-
className={`${
202-
_.kebabCase(n.name) + "/#put" === activePage
203-
? "active-item"
204-
: null
205-
}
211+
onClick={this.toggleActiveLink}
212+
>
213+
{n.post.summary}
214+
</Link>
215+
</li>
216+
)}
217+
{n.put && (
218+
<li className="list-reset">
219+
<Link
220+
to={`/api/v4/${_.kebabCase(n.name)}/#put`}
221+
className={`${
222+
_.kebabCase(n.name) + "/#put" ===
223+
activePage
224+
? "active-item"
225+
: null
226+
}
206227
api-link
207228
`}
208-
onClick={this.toggleActiveLink}
209-
>
210-
{n.put.summary}
211-
</Link>
212-
</li>
213-
)}
214-
{n.delete && (
215-
<li className="list-reset">
216-
<Link
217-
to={`/api/v4/${_.kebabCase(n.name)}/#delete`}
218-
className={`${
219-
_.kebabCase(n.name) + "/#delete" ===
220-
activePage
221-
? "active-item"
222-
: null
223-
}
229+
onClick={this.toggleActiveLink}
230+
>
231+
{n.put.summary}
232+
</Link>
233+
</li>
234+
)}
235+
{n.delete && (
236+
<li className="list-reset">
237+
<Link
238+
to={`/api/v4/${_.kebabCase(
239+
n.name
240+
)}/#delete`}
241+
className={`${
242+
_.kebabCase(n.name) + "/#delete" ===
243+
activePage
244+
? "active-item"
245+
: null
246+
}
224247
api-link
225248
`}
226-
onClick={this.toggleActiveLink}
227-
>
228-
{n.delete.summary}
229-
</Link>
230-
</li>
231-
)}
232-
</ul>
233-
);
234-
})}
235-
</div>
236-
</div>
237-
);
238-
})}
249+
onClick={this.toggleActiveLink}
250+
>
251+
{n.delete.summary}
252+
</Link>
253+
</li>
254+
)}
255+
</ul>
256+
);
257+
})}
258+
</div>
259+
</div>
260+
);
261+
})}
262+
</div>
263+
</div>
239264
</div>
240265
</div>
241266
</div>

src/components/5_templates/api.js

Lines changed: 44 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,21 @@ const apiPage = ({ data }) => {
3333
default: "default"
3434
};
3535
return (
36-
<Layout
37-
// title="API Documentation"
38-
// subtitle="Linode API Documentation"
39-
fullWidth
40-
>
41-
<SEO title="Linode API Documentation" description="Container Tools" />
36+
<Layout fullWidth>
37+
<SEO
38+
title={
39+
"Linode API | " + (n.get && n.get.tags) ||
40+
(n.post && n.post.tags) ||
41+
(n.put && n.put.tags) ||
42+
(n.delete && n.delete.tags)
43+
}
44+
description={
45+
(n.get && n.get.description ? n.get.description : "") +
46+
(n.post && n.post.description ? n.post.description : "") +
47+
(n.put && n.put.description ? n.put.description : "") +
48+
(n.delete && n.delete.description ? n.delete.description : "")
49+
}
50+
/>
4251
<div className="flex flex-wrap">
4352
<div className="md:hidden search-header-wrapper">
4453
<SearchHeader />
@@ -64,11 +73,23 @@ const apiPage = ({ data }) => {
6473
<span id={mode} className="endpoint-anchor" />
6574
<div className="xs-full mb-8">
6675
<h2 className="mt-0">{m.summary}</h2>
67-
<div className="bg-ThemeCell p-4 mt-4 mb-8 flex items-center">
68-
<span className="tag big bold mr-2 uppercase">
69-
{mode}
70-
</span>
71-
<pre>https://api.linode.com/v4{n.name}</pre>
76+
<div className="bg-ThemeCell p-4 mt-4 mb-8 flex items-center justify-between flex-wrap">
77+
<div className="flex items-center mr-4">
78+
<span className="tag big bold mr-2 uppercase">
79+
{mode}
80+
</span>
81+
<pre className="whitespace-pre-line">
82+
{m.servers
83+
? m.servers[0].url
84+
: "https://api.linode.com/v4"}
85+
{n.name}
86+
</pre>
87+
</div>
88+
{m.servers &&
89+
m.servers[0].url ===
90+
"https://api.linode.com/v4beta" && (
91+
<span className="tag tag-beta">BETA</span>
92+
)}
7293
</div>
7394
<Markdown
7495
source={m.description}
@@ -195,6 +216,9 @@ export const query = graphql`
195216
x_linode_cli_skip
196217
x_linode_redoc_load_ids
197218
x_linode_cli_command
219+
servers {
220+
url
221+
}
198222
tags
199223
security {
200224
oauth
@@ -278,6 +302,9 @@ export const query = graphql`
278302
lang
279303
source
280304
}
305+
servers {
306+
url
307+
}
281308
requestBody {
282309
description
283310
content {
@@ -360,6 +387,9 @@ export const query = graphql`
360387
lang
361388
source
362389
}
390+
servers {
391+
url
392+
}
363393
requestBody {
364394
description
365395
content {
@@ -438,6 +468,9 @@ export const query = graphql`
438468
lang
439469
source
440470
}
471+
servers {
472+
url
473+
}
441474
responses {
442475
_200 {
443476
description

src/css/components/1_atoms/tag.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,7 @@
1616
.tag-deprecated {
1717
@apply font-sans text-sm bg-orange text-white;
1818
}
19+
20+
.tag-beta {
21+
@apply font-sans text-sm font-bold bg-orange text-white rounded;
22+
}

0 commit comments

Comments
 (0)