Skip to content

Commit 98fc380

Browse files
authored
Merge pull request #549 from jupyter/alpha-in-use
Alpha in use
2 parents a305a9b + cb591c4 commit 98fc380

File tree

12 files changed

+274
-201
lines changed

12 files changed

+274
-201
lines changed

.github/images/netlify-preview.png

63.8 KB
Loading

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ Gemfile.lock
55
vendor
66
.bundle
77
.sass-cache
8+
.nox
9+
__pycache__/

README.md

Lines changed: 92 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,52 +2,103 @@
22

33
This is the source to [Jupyter.org](https://jupyter.org/).
44

5-
# Build instructions
5+
## Build the site locally
66

7-
The site is built using GitHub Pages Jekyll, see [Jekyll
8-
website](https://jekyllrb.com/) for customizing the build process, and detail on how
9-
what where.
7+
The site is built with Jekyll, see [the Jekyll website](https://jekyllrb.com/) for how to customize the build process.
108

11-
# Quick local testing
9+
There are a few ways to build the site locally, see the sections below.
1210

13-
Clone this repository locally, and cd into it:
11+
### Build the site automatically with `nox`
1412

15-
```
16-
git clone https://github.com/jupyter/jupyter.github.io
17-
cd jupyter.github.io
18-
```
13+
The easiest way to build the site locally is by using the [`nox` command line tool](https://nox.thea.codes/). This tool makes it easy to automate commands in a repository, and we have included a `build` command to quickly install the dependencies and build the site.
1914

20-
Install `bundler`, and use it to install the dependencies to build the website:
15+
To build and preview the site locally, follow these steps:
2116

22-
```
23-
gem install bundler
24-
bundle install
25-
```
17+
1. **Clone this repository**.
18+
19+
```console
20+
$ git clone https://github.com/jupyter/jupyter.github.io
21+
$ cd jupyter.github.io
22+
```
23+
2. **Install `nox`**
2624

27-
Now you can ask Jekyll to build the website.
25+
```console
26+
$ pip install nox
27+
```
28+
3. **Run the `build` command**
29+
30+
```console
31+
$ nox -s build
32+
```
2833

29-
```
30-
bundle exec jekyll serve liveserve
31-
```
3234

33-
Open your browser to localhost:4000.
35+
This will install the needed dependencies in a virtual environment using [the `conda` package manager](https://docs.conda.io/en/latest/).
3436

35-
Edit the various parts, the `liveserve` option should automatically rebuild and
36-
refresh the pages when changes occur.
37+
**When the build is finished, go to `localhost:4000`**. When Jekyll finishes building your site, it will open a port on your computer and serve the website there so that you may preview it.
38+
39+
**You can make changes and watch the preview auto-update**. When you make changes to the website, they will automatically be updated in your preview in the browser.
3740

3841
To stop serving the website, press **`Ctrl`**-`C` in your terminal
3942

40-
Enjoy.
43+
### Build the site manually
44+
45+
To build the site manually, you'll need Ruby, Jekyll, and the packages that Jekyll uses to build the site (these are defined in [`Gemfile`](Gemfile)).
46+
47+
Follow these steps:
48+
49+
1. **Install Jekyll**. You have two options:
50+
- [Follow the Jekyll installation instructions](https://jekyllrb.com/docs/#instructions). These steps will guide you through installing Ruby and Jekyll locally.
51+
- Use [the anaconda distribution](https://conda.io) and [conda-forge](https://conda-forge.org/).
52+
53+
First [install miniconda](https://conda.io/miniconda.html), then run the following command:
54+
55+
```console
56+
$ conda install -c conda-forge ruby c-compiler compilers cxx-compiler
57+
```
58+
59+
Finally install Jekyll and Bundler, which will let you install the site's dependencies:
60+
61+
```console
62+
$ gem install jekyll bundler
63+
```
64+
2. **Install the site's build dependencies**. These are specified in [`Gemfile`](Gemfile).
65+
66+
```console
67+
$ bundle install
68+
```
69+
70+
This step might take a few moments as it must download and install a number of local extensions. It will create a local file called `Gemfile.lock`. These are the "frozen" dependencies and their version numbers needed to build the site.
4171

42-
# What is where
72+
3. **Build the site locally**.
73+
74+
```console
75+
$ bundle exec jekyll serve liveserve
76+
```
77+
78+
This will build the site's HTML and open a server at `localhost:4000` for you to preview the site.
79+
80+
81+
## Where the site is hosted
82+
83+
The site is automatically built with [Netlify](https://netlify.com), a hosting service for static websites. When any changes are merged into the `master` branch, Netlify will automatically build them and update the website at [jupyter.org](https://jupyter.org).
84+
85+
## Preview changes in a Pull Request
86+
87+
Netlify will automatically build a preview of the website in an open Pull Request. To see this, click on the **`Show all checks`** button just above the comment box in the Pull Request window. Then click on the **`details`** link on the **`deploy/netlify`** row to see a preview of the built site.
88+
89+
Here's an image of this box on a GitHub PR page:
90+
91+
![Netlify Preview Button](.github/images/netlify-preview.png)
92+
93+
## Structure of this website
4394

4495
Most pages are located at the place where their URL is, nothing fancy. Headers
4596
and footer are in `_includes/head.html`, `_includes/header.html`,
4697
`_includes/footer.html`.
4798

4899
The **navbar** is in `_data/nav.yml` and looks like that:
49100

50-
```
101+
```yaml
51102
head:
52103
- Home
53104
- title: Install
@@ -70,7 +121,7 @@ which means, insert in order the following links into the navbar:
70121
The navbar will automatically target `_blank` pages where the url is explicit,
71122
and mark the correct link as the "current" one.
72123

73-
# How do I create a new page?
124+
## Create a new page
74125

75126
Create `my_page.html` (will have url `https://jupyter.org/my_page.html`)
76127
or `my_page/index.html` (will have url `https://jupyter.org/my_page/`), start with the following:
@@ -88,11 +139,20 @@ You cannot do it yet with .md file, but you will be able soon.
88139

89140
Add commit (and don't forget to add to `_data/nav.yml`).
90141

91-
# Previewing a Pull Request
142+
## Site quirks and tips
143+
144+
### Lazy loading of images
145+
146+
The Jupyter website uses [lazy loading of images](https://web.dev/browser-level-image-lazy-loading/). In general, images that are "below the fold" (below the browser window on page load) for laptop-sized screen sizes are encouraged to be configured for "lazy loading".
147+
148+
Add lazy loading to an image by adding a `loading="lazy"` configuration to the `<img>` element. For example:
149+
150+
```html
151+
<img class="my-class" src="my/src.png" loading="lazy" />
152+
```
92153

93-
Netlify is used to provide a link to a rendered website with the changes proposed
94-
in a PR. This convenience helps reviewers see how the change would look
95-
before it is deployed in production.
154+
For images that are "above the fold" (that will be seen by users immediately after page load), use "eager" loading to make sure they are loaded immediately. For example:
96155

97-
The link is found in the GitHub PR status box. In the **deploy/netlify** section,
98-
click on the `Details` link.
156+
```html
157+
<img class="my-class" src="my/src.png" loading="eager" />
158+
```

_data/nav.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,8 @@ head:
33
url: /install
44
- title: Get Involved
55
url: /community
6-
- title: Events
7-
url: /events
86
- title: Documentation
97
url: /documentation
10-
- title: Widgets
11-
url: /widgets
128
- title: News
139
url: https://blog.jupyter.org
1410
newpage: true

_includes/head.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<meta property="og:title" content="Project Jupyter" />
99
<meta property="og:description" content="{{ site.description|strip_html }}">
1010
<meta property="og:url" content="{{ site.url }}" />
11-
<meta property="og:image" content="{{ "/assets/homepage.png" | prepend: site.url }}" />
11+
<meta property="og:image" content="{{ "/assets/share.png" | prepend: site.url }}" />
1212
<link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}">
1313
<link rel="stylesheet" href="{{ "/assets/css/bootstrap.css" | prepend: site.baseurl }}">
1414
<link rel="stylesheet" href="{{ "/assets/css/main.css" | prepend: site.baseurl }}">

_sass/_markdown.scss

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,22 @@ div.page_content.container > p,
1515
div.page_content.container > h1,
1616
div.page_content.container > h2,
1717
div.page_content.container > h3,
18+
div.page_content.container > h4,
1819
div.page_content.container > div.highlighter-rouge
1920
{
2021
padding-left:30px;
2122
padding-right: 30px;
2223
}
2324

25+
div.page_content.container > iframe {
26+
margin-left: 30px;
27+
}
28+
29+
div.page_content.container > ul {
30+
padding-left: 50px;
31+
}
32+
33+
2434
img.title_image {
2535
max-height: 200px;
2636
padding-top: 10px;

assets/homepage.png

-202 KB
Binary file not shown.

assets/share.png

35.6 KB
Loading

community.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,3 +124,68 @@ where you can get involved. **We always welcome participation in the Jupyter com
124124
</div>
125125
</div>
126126
</section>
127+
128+
## Live events
129+
130+
Project Jupyter events provide a forum for community members to come together in person or virtually to share and learn from each other.
131+
132+
This page is for in person, one-of-a-kind events, for community engagement, see the community page.
133+
134+
### Calendar
135+
136+
This is a calendar of regular online events. It might not be exhaustive.
137+
138+
<iframe title="Calendar of Project Jupyter events" id="calendariframe" src="https://calendar.google.com/calendar/embed?height=600&amp;wkst=1&amp;bgcolor=%23ffffff&amp;ctz=local&amp;src=ZGdwZDM2ZjQzZXQ5Z3JhYm42dGRpbjZwbWNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&amp;src=bTNoZWs2OWRhZzczODF1bXQ4a2NqZDc1dTRAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&amp;src=YXFwa3VpNXE3b2kzMnBrOXRjcDUzaG5zc2NAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&amp;src=ZDE4NzR1cjZmZGh1ajBzbmpuaWxhYzJubGNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&amp;src=cGlhaGluZWpqcjZzc3ZpOGlrbWpqb3A2cm9AZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&amp;color=%23AD1457&amp;color=%23EF6C00&amp;color=%23616161&amp;color=%23F6BF26&amp;color=%239E69AF" style="border:solid 1px #777" width="800" height="600" frameborder="0" scrolling="no"></iframe>
139+
<script>document.getElementById("calendariframe").src = document.getElementById("calendariframe").src.replace("ctz=local", "ctz=" + Intl.DateTimeFormat().resolvedOptions().timeZone)</script>
140+
141+
See [this page](https://jupyter.readthedocs.io/en/latest/community/content-community.html#jupyter-wide-meetings) for
142+
more informations.
143+
144+
### JupyterCon
145+
146+
Global JupyterCon conferences provide opportunities for the Jupyter community to come together to learn and share.
147+
148+
* [JupyterCon 2017](https://conferences.oreilly.com/jupyter/jup-ny-2017.html) ([videos](https://www.youtube.com/playlist?list=PL055Epbe6d5aP6Ru42r7hk68GTSaclYgi))
149+
* [JupyterCon 2018](https://conferences.oreilly.com/jupyter/jup-ny.html) ([videos](https://www.youtube.com/playlist?list=PL055Epbe6d5b572IRmYAHkUgcq3y6K3Ae))
150+
* [JupyterCon 2020 (virtual)](https://jupytercon.com/) ([videos](https://www.youtube.com/c/JupyterCon/videos))
151+
152+
### Jupyter Community Workshops
153+
154+
[Jupyter Community Workshops](https://blog.jupyter.org/jupyter-community-workshops-cbd34ac82549) bring together small groups (approximately 12 to 24 people) of Jupyter community members and core contributors for high-impact strategic work and community engagement on focused topics.
155+
156+
Much of Jupyter’s work is accomplished through remote, online collaboration; yet, over the years, we have found deep value in focused in-person work over a few days. These in-person events are particularly useful for tackling challenging development and design projects, growing the community of contributors, and strengthening collaborations.
157+
158+
#### Round 1: 2018
159+
160+
- [Round 1: Call for Proposals](https://blog.jupyter.org/jupyter-community-workshops-cbd34ac82549)
161+
162+
Individual workshops:
163+
- [Jupyter Widgets workshop](https://blog.jupyter.org/jupyter-community-workshops-cbd34ac82549)
164+
- [Jupyter Hackathon in Hawaii](https://blog.jupyter.org/jupyter-hackathon-series-in-hawaii-97b3d1fbce68)
165+
- [Teaching and Learning with Jupyter](https://blog.jupyter.org/teaching-and-learning-with-jupyter-c1d965f7b93a)
166+
167+
#### Round 2: 2019
168+
169+
- [Round 2: Call for Proposals](https://blog.jupyter.org/jupyter-community-workshops-call-for-proposals-26a8417e5b6a)
170+
- [Round 2: Announcement of Workshops](https://blog.jupyter.org/jupyter-community-workshops-a7f1dca1735e)
171+
- [Round 2: 2019 Year in Review](https://blog.jupyter.org/jupyter-community-workshops-2019-year-in-review-8876336924e4)
172+
173+
Individual workshops:
174+
- [Jupyter Server Design and Roadmap Workshop](https://blog.jupyter.org/jupyter-community-workshop-jupyter-server-design-and-roadmap-workshop-6e6760cc5098): (Luciano Resende)
175+
- [Building upon the Jupyter Kernel Protocol](https://blog.jupyter.org/field-report-on-the-kernel-community-workshop-a4ad73a1a718) (Sylvain Corlay)
176+
- [Jupyter nbgrader Hackathon/Code Sprint](https://blog.jupyter.org/https-blog-jupyter-org-university-of-edinburgh-jupyter-community-nbgrader-hackathon-2eff14df298a): (James Slack)
177+
- [Intro to Python for Kids, Parents & Teachers Series](https://datasciencecornwall.blogspot.com/2019/06/python-data-science-for-kids-taster.html): (Tariq Rashad)
178+
- [Dashboarding in the Jupyter Ecosystem](https://blog.jupyter.org/report-on-the-jupyter-community-workshop-on-dashboarding-14f8ad9f3c0): (Pascal Bugnion, Sylvain Corlay)
179+
- [Jupyter for Scientific User Facilities and High-Performance Computing](https://blog.jupyter.org/jupyter-for-science-user-facilities-and-high-performance-computing-de178106872): (Rollin Thomas)
180+
- [South America Jupyter Community Workshop](https://blog.jupyter.org/south-america-jupyter-community-workshop-4edc51c7a6ce): (Damian Avila)
181+
182+
#### Round 3: 2020-2022
183+
184+
- [Round 3: Call for Proposals](https://blog.jupyter.org/jupyter-community-workshops-call-for-proposals-for-jan-aug-2020-710f687e30f4)
185+
186+
Due to the COVID-19 pandemic, workshops were put on hold during 2020. Stay tuned for more details about workshops funded in round 3.
187+
188+
### Jupyter Community Calls
189+
190+
[Jupyter Community Calls](https://jupyter.readthedocs.io/en/latest/community/content-community.html#jupyter-wide-meetings) provide a regular virtual forum for community-wide discussion and sharing.
191+

events.md

Lines changed: 0 additions & 87 deletions
This file was deleted.

0 commit comments

Comments
 (0)