Code Monkey home page Code Monkey logo

my-pluto-notebooks's Introduction

static-export-template

This is a demo repository containing two Pluto notebooks that are automatically converted to HTML by a github action, and published to github pages! 🌝

See the github pages deployment of this repository: https://juliapluto.github.io/static-export-template/

More info here: https://www.notion.so/Interactive-web-articles-bf3af6de77854660807e674148c27b1f#1a997e538e0d48e0bf54d2d5f29dfc2b

Don't use the code in this repository for your own project just yet.

How to use the template

πŸ‘‰ Step 1

Create a GitHub account, and click on "Use this template". Choose a new name!

Schermafbeelding 2021-01-06 om 00 40 34

πŸ‘‰ Step 2

Click on Add files, and then Upload files. In the next page, upload your .jl notebook files.

Schermafbeelding 2021-01-06 om 00 15 06

Your notebooks will run on github every time that you update the files in this repository. To check the progress, click on "Actions", you will find the workflow for the last commit.

Schermafbeelding 2021-01-06 om 00 45 25

Wait for the Action to finish running your notebook.

πŸ‘‰ Step 3

Go to the "Settings" page of your repository, and scroll down to "GitHub Pages". For the "Source", choose gh-pages. Wait a minute for everything to initialize, and the URL to your web page will be shown!

Schermafbeelding 2021-01-06 om 00 43 00

Don't worry if it doesn't work immediately! It can take a while for the web page to be ready, even after your settings page says it's done. (Github pages says 20 minutes, but it can take even longer.)

Update notebook files

To update an existing notebook file, simply repeat Step 2 above! (You can also use Add files > Upload files to update upload a file that already exists on the repository.)

Alternative setup: add web pages to an existing repository

If you already have a github repository with some pluto notebooks in it, you may want to add a web view like the one for this repository. In that case, the steps are slightly different. In this case, I assume that you are familiar with adding files to a repository. If not, follow the steps above.

πŸ‘‰ Step 1

Make sure that all your Pluto notebooks can be run from a fresh Julia environment. See the tips below about packages.

πŸ‘‰ Step 2

From this repository, download ExportPluto.yaml.

Save the file in your own repository, in the same location: make a folder .github in the main directory, within that a folder workflows, and add the file there, with the name ExportPluto.yaml. Commit the new file to your repository.

Note: The yaml file states that github should use the github notebooks in the main branch or master branch of your repository. If you changed the name of your default branch, or you want to use a different branch, change main in line 5 in the yaml file to the name of your favourite branch.

Your notebooks will run on github every time that you update the files in this repository. To check the progress, click on "Actions", you will find the workflow for the last commit.

Schermafbeelding 2021-01-06 om 00 45 25

πŸ‘‰ Step 3

Go to the "Settings" page of your repository, and in the left pane, choose the category "Pages". For the "Source", choose gh-pages. Wait a minute for everything to initialize, and the URL to your web page will be shown!

Schermafbeelding 2021-01-06 om 00 43 00

Don't worry if it doesn't work immediately! It can take a while for the web page to be ready, even after your settings page says it's done. (Github pages says 20 minutes, but it can take even longer.)

πŸ’‘Tips

Julia Packages

When your notebook runs on github, no packages are installed. To solve this, you need to declare a package environment inside the notebook, using Pkg.

For example, instead of:

using Plots
using PlutoUI

You should write:

begin
    import Pkg
    # activate a clean environment
    Pkg.activate(mktempdir())

    Pkg.add([
        Pkg.PackageSpec(name="Plots"),
        Pkg.PackageSpec(name="PlutoUI"),
        # ... keep adding your packages
    ])

    using Plots
    using PlutoUI
    # ... place all usings and imports into this one cell
end

You can use this helper tool to generate these commands!

Important to note:

  • Place the Pkg commands and the imports in the same cell.
  • You can use the same setup when running your notebook locally. Julia will re-use existing package installations, so this will only download and install packages the first time.

In the future, Pluto will automate this process for you! πŸ™ˆ

Homepage

If you go to the (GitHub Pages) URL of repository, you will see a small index of the notebooks in this repository. You can customize this page, two options are:

  • Create your own index.html or index.md file, it will be used as the homepage.
  • Rename one of your notebooks to index.jl, and it will be the default notebook!

my-pluto-notebooks's People

Contributors

codewithkaranjeswani avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.