Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
18 changes: 4 additions & 14 deletions .github/workflows/build-and-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,34 +17,24 @@ concurrency:

jobs:
build:
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.7"
- name: Install uv
uses: astral-sh/setup-uv@v6

- name: Install dependencies
run: |
pip install -r requirements.txt
# tidy-html5 needs to be installed separately via system package manager
sudo apt-get update && sudo apt-get install -y tidy

- name: Patch nbconvert to fix filename conflicts
run: |
# Find nbconvert's extractoutput.py and apply the fix
NBCONVERT_PATH=$(python -c "import nbconvert.preprocessors.extractoutput as e; print(e.__file__)")
sed -i 's/if filename in resources\['\''outputs'\''\]:/if filename in resources['\''outputs'\''] and False:/' "$NBCONVERT_PATH"
echo "Applied nbconvert patch to disable duplicate filename check"

- name: Build site
run: |
python make.py publish
uv run --with-requirements ./requirements.txt --python 3.13 python make.py publish

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
Expand Down
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@
[submodule "content/notebooks/working_with_colors_in_mpl"]
path = content/notebooks/working_with_colors_in_mpl
url = https://gist.github.com/5636372.git
[submodule "extras/pelican-plugins"]
path = extras/pelican-plugins
url = https://github.com/pelson/pelican-plugins.git
[submodule "content/notebooks/massive_virtual_arrays_with_biggus"]
path = content/notebooks/massive_virtual_arrays_with_biggus
url = https://gist.github.com/6139282.git
Expand All @@ -25,3 +22,6 @@
[submodule "content/field_notes/coast_path_pt1"]
path = content/field_notes/coast_path_pt1
url = https://gist.github.com/21fbdc5a944f478bdd896faa95ab3cc7.git
[submodule "extras/liquid-tags"]
path = extras/liquid-tags
url = https://github.com/pelson/liquid-tags.git
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,16 @@ OR

Next, create an environment:

conda create -p ./build_env ...
uv venv ./venv
source ./venv/bin/activate
uv pip install -r requirements.txt ./extras/liquid-tags

Finally, for a local server that watches all changed files:
To run a local server that watches all changed files:

python make.py reload

To update the requirements.txt:

uv pip compile requirements.in | grep -v pelican-liquid-tags > requirements.txt


Note on branches
----------------
The source branch is the master/trunk for the actual source to generate the site, and the master branch is where
the rendered html lives (this is a result of the way github pages are done).
1 change: 1 addition & 0 deletions extras/liquid-tags
Submodule liquid-tags added at 6842f9
1 change: 0 additions & 1 deletion extras/pelican-plugins
Submodule pelican-plugins deleted from 1958d2
3 changes: 3 additions & 0 deletions extras/theme/templates/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@
<link rel="stylesheet" href="{{ SITEURL }}/theme/font-awesome/css/font-awesome.min.css">
<link href="//fonts.googleapis.com/css?family=Pacifico" rel="stylesheet" type="text/css">

{% if EXTRA_HEADER %}
{{ EXTRA_HEADER }}
{% endif %}
{% block header %}
{% endblock %}
</head>
Expand Down
1 change: 0 additions & 1 deletion make.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ def publish():
old = os.path.join(root, fname)
new = os.path.join(new_root, fname)
if fname.endswith('.html'):
print('\nConverting {}:'.format(old))
cmd = ['tidy', '-config', 'tidy_config.txt', old]
with open(new, 'w') as fh:
try:
Expand Down
13 changes: 9 additions & 4 deletions pelicanconf.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,9 @@
TAG_URL = 'tag/{slug}/'
TAG_SAVE_AS = 'tag/{slug}/index.html'

PLUGIN_PATHS = ['extras/pelican-plugins']
PLUGIN_PATHS = ['extras/liquid-tags/pelican/plugins']
PLUGINS = ['liquid_tags.img', 'liquid_tags.video',
'liquid_tags.include_code', 'liquid_tags.notebook', 'summary',
'feed_summary']
FEED_USE_SUMMARY = True
'liquid_tags.include_code', 'liquid_tags.notebook']

THEME = "extras/theme"
DIRECT_TEMPLATES = ('index', 'archives', 'sitemap', 'announce', 'articles', 'field_notes', 'hints')
Expand All @@ -67,3 +65,10 @@
#MARKDOWN = ['codehilite(noclasses=True, pygments_style=native)', 'extra'] # enable MD options

IGNORE_FILES = ['README.md']

# Include notebook CSS header
try:
with open('_nb_header.html', 'r', encoding='utf-8') as f:
EXTRA_HEADER = f.read()
except FileNotFoundError:
EXTRA_HEADER = ''
11 changes: 3 additions & 8 deletions requirements.in
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
pelican==3.7
markdown<3.0
ipython==3.*
notebook
nbconvert==5.*
pygments
jinja2<3.0
markupsafe<2.0
pelican
markdown
./extras/liquid-tags/
192 changes: 144 additions & 48 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,57 +1,153 @@
anyio==3.7.1
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
attrs==24.2.0
bleach==6.0.0
blinker==1.6.3
cffi==1.15.1
# This file was autogenerated by uv via the following command:
# uv pip compile requirements.in
anyio==4.10.0
# via watchfiles
asttokens==3.0.0
# via stack-data
attrs==25.3.0
# via
# jsonschema
# referencing
beautifulsoup4==4.13.4
# via nbconvert
bleach==6.2.0
# via nbconvert
blinker==1.9.0
# via pelican
decorator==5.2.1
# via ipython
defusedxml==0.7.1
docutils==0.20.1
entrypoints==0.4
exceptiongroup==1.3.0
# via nbconvert
docutils==0.22
# via pelican
executing==2.2.0
# via stack-data
fastjsonschema==2.21.1
feedgenerator==2.1.0
# via nbformat
feedgenerator==2.2.0
# via pelican
idna==3.10
importlib-metadata==6.7.0
importlib-resources==5.12.0
ipykernel==4.0.1
ipython==3.2.3
ipython-genutils==0.2.0
Jinja2==2.11.3
jsonschema==4.17.3
jupyter-server==1.15.6
jupyter_client==7.4.9
jupyter_core==4.12.0
Markdown==2.6.11
MarkupSafe==1.1.1
mistune==0.8.4
nbclassic==1.2.0
nbconvert==5.6.1
nbformat==5.8.0
nest-asyncio==1.6.0
notebook==6.5.7
notebook_shim==0.2.4
packaging==24.0
# via anyio
ipython==9.4.0
ipython-pygments-lexers==1.1.1
# via ipython
jedi==0.19.2
# via ipython
jinja2==3.1.6
# via
# nbconvert
# pelican
jsonschema==4.25.0
# via nbformat
jsonschema-specifications==2025.4.1
# via jsonschema
jupyter-client==8.6.3
# via nbclient
jupyter-core==5.8.1
# via
# jupyter-client
# nbclient
# nbconvert
# nbformat
jupyterlab-pygments==0.3.0
# via nbconvert
markdown==3.8.2
# via -r requirements.in
markdown-it-py==3.0.0
# via rich
markupsafe==3.0.2
# via
# jinja2
# nbconvert
matplotlib-inline==0.1.7
# via ipython
mdurl==0.1.2
# via markdown-it-py
mistune==3.1.3
# via nbconvert
nbclient==0.10.2
# via nbconvert
nbconvert==7.16.6
nbformat==5.10.4
# via
# nbclient
# nbconvert
ordered-set==4.1.0
# via pelican
packaging==25.0
# via nbconvert
pandocfilters==1.5.1
pelican==3.7.0
pkgutil_resolve_name==1.3.10
prometheus-client==0.17.1
# via nbconvert
parso==0.8.4
# via jedi
pelican==4.11.0
# via
# -r requirements.in
./extras/liquid-tags/
# via -r requirements.in
pexpect==4.9.0
# via ipython
platformdirs==4.3.8
# via jupyter-core
prompt-toolkit==3.0.51
# via ipython
ptyprocess==0.7.0
pycparser==2.21
Pygments==2.17.2
pyrsistent==0.19.3
# via pexpect
pure-eval==0.2.3
# via stack-data
pygments==2.18.0
# via
# ipython
# ipython-pygments-lexers
# nbconvert
# pelican
# rich
python-dateutil==2.9.0.post0
pytz==2025.2
pyzmq==26.2.1
Send2Trash==1.8.3
# via
# jupyter-client
# pelican
pyzmq==27.0.1
# via jupyter-client
referencing==0.36.2
# via
# jsonschema
# jsonschema-specifications
rich==14.1.0
# via pelican
rpds-py==0.26.0
# via
# jsonschema
# referencing
six==1.17.0
# via python-dateutil
sniffio==1.3.1
terminado==0.17.1
testpath==0.6.0
tornado==6.2
traitlets==5.9.0
typing_extensions==4.7.1
Unidecode==1.4.0
# via anyio
soupsieve==2.7
# via beautifulsoup4
stack-data==0.6.3
# via ipython
tinycss2==1.4.0
# via bleach
tornado==6.5.1
# via jupyter-client
traitlets==5.14.3
# via
# ipython
# jupyter-client
# jupyter-core
# matplotlib-inline
# nbclient
# nbconvert
# nbformat
typing-extensions==4.14.1
# via beautifulsoup4
unidecode==1.4.0
# via pelican
watchfiles==1.1.0
# via pelican
wcwidth==0.2.13
# via prompt-toolkit
webencodings==0.5.1
websocket-client==1.6.1
zipp==3.15.0
# via
# bleach
# tinycss2