Skip to content

Commit

Permalink
Use Binder with Quarto
Browse files Browse the repository at this point in the history
  • Loading branch information
julianpistorius committed Feb 23, 2024
1 parent fcfc4cf commit 6eba6d4
Show file tree
Hide file tree
Showing 4 changed files with 125 additions and 0 deletions.
13 changes: 13 additions & 0 deletions .jupyter/jupyter_notebook_config.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Traitlet configuration file for jupyter-notebook.

c.ServerProxy.servers = {
'vscode': {
'command': ['code-server', '--auth', 'none', '--disable-telemetry', '--port={port}', '.'],
'timeout': 300,
'launcher_entry': {
'enabled': True,
'icon_path': '.jupyter/vscode.svg',
'title': 'VS Code',
},
},
}
21 changes: 21 additions & 0 deletions .jupyter/vscode.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions apt.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
zip
90 changes: 90 additions & 0 deletions postBuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
#!/bin/bash -v

# determine which version of Quarto to install
QUARTO_VERSION=1.4.550

# See whether we need to lookup a Quarto version
if [ $QUARTO_VERSION = "prerelease" ]; then
QUARTO_JSON="_prerelease.json"
elif [ $QUARTO_VERSION = "release" ]; then
QUARTO_JSON="_download.json"
fi

if [ $QUARTO_JSON != "" ]; then

# create a python script and run it
PYTHON_SCRIPT=_quarto_version.py
if [ -e $PYTHON_SCRIPT ]; then
rm -rf $PYTHON_SCRIPT
fi

cat > $PYTHON_SCRIPT <<EOF
import urllib, json
import urllib.request, json
with urllib.request.urlopen("https://quarto.org/docs/download/${QUARTO_JSON}") as url:
data = json.load(url)
print(data['version'])
EOF

QUARTO_VERSION=$(python $PYTHON_SCRIPT)
rm -rf $PYTHON_SCRIPT

fi


echo
echo Installing Quarto $QUARTO_VERSION
echo

# download and install the deb file
curl -LO https://github.com/quarto-dev/quarto-cli/releases/download/v$QUARTO_VERSION/quarto-$QUARTO_VERSION-linux-amd64.deb
dpkg -x quarto-$QUARTO_VERSION-linux-amd64.deb .quarto
rm -rf quarto-$QUARTO_VERSION-linux-amd64.deb

# get quarto in the path
mkdir -p ~/.local/bin
ln -s ~/.quarto/opt/quarto/bin/quarto ~/.local/bin/quarto

# create the proper pandoc symlink to enable visual editor in Quarto extension
ln -s ~/.quarto/opt/quarto/bin/tools/x86_64/pandoc ~/.quarto/opt/quarto/bin/tools/pandoc


echo
echo Installed Quarto
echo

echo
echo Configuring VSCode
echo
# download and install VS Code server
CODE_VERSION=4.16.1

# download and extract
wget -q -O code-server.tar.gz https://github.com/coder/code-server/releases/download/v$CODE_VERSION/code-server-$CODE_VERSION-linux-amd64.tar.gz
tar xzf code-server.tar.gz
rm -rf code-server.tar.gz

# place in hidden folder
mv "code-server-$CODE_VERSION-linux-amd64" .code-server

# get code-server in path
mkdir -p ./.local/bin
ln -s ~/.code-server/bin/code-server ~/.local/bin/code-server

# install vscode extensions
code-server --install-extension ms-python.python
code-server --install-extension sumneko.lua
code-server --install-extension quarto.quarto

echo
echo Configured VSCode
echo
# install required python packages
python3 -m pip install jupyter-server-proxy
python3 -m pip install jupyterlab-quarto==0.1.45

echo
echo Completed
echo

0 comments on commit 6eba6d4

Please sign in to comment.