[ANN] PlutoStyles.jl: override styles of Pluto notebooks

I changed my plutostyles alias so that I can run it alongside the normal version.

alias plutostyles='julia --project=@. -e "using PlutoStyles
if length(ARGS) > 0
    notebook = ARGS[1]
    Pluto.run(notebook=joinpath(pwd(), notebook); port=1235)
    Pluto.run(; port=1235)

I don’t see a new version. Are you sure you did git push? :slight_smile:

Sure! These lines contain the new styles:

For some weird reason it looks like the commit where you added this things on gitlab appear as “authored 6 months ago”, exactly at midnight GMT of the beginning of the year:


Yes, that’s intended.
I’m not comfortable sharing exact details (date & time) of all my open-source commits with every person in the world, see Publish packages without complete commit history for some discussion. So I do all development in private github repos, and have a script (using GitFiterRepo.jl) that transfers the repo to gitlab, rounding all dates to the year.
That makes it still possible to see the commits history - without exact dates, but year is enough to tell whether the project is abandoned long ago or not.


Ah I see, interesting to know this is possible!

You know best how you want to work, but to me a repo where last commits are six months ago looks somewhat abandoned. It’s also pretty hard to know it has been updated since last I looked, especially since you don’t want this to be a package that I could just ] up .


I request this feature by filing an issue. However, the author directs me to use Pluto inside feedback instead. I then make a request through Pluto inside feedback. But nothing seems to change yet. Perhaps the Pluto author don’t like this kind of suggestion. I really hate the … button!

1 Like

To each his own (definition of abandoned). I hope for this package to become obsolete at some point anyway, when themes get added to pluto itself.

Can’t you really use ]up here? I though Pkg does update packages added by url as well.

Such visual changes should be possible by modifying static assets - css or js files.

I also don’t support some opinionated choices made in Pluto. But these choices and the ability to easily make them are likely major reasons of why Pluto manages to provide a fresh but consistent take on notebooks.

1 Like

Is it possible to put the output of the cell below the code using styles? And could we add, by default, a content menu?

More broadly, can the package accept new style contributions, as if they were themes, so one could just choose a theme?

1 Like

Maybe, I didn’t need it myself and haven’t tried. Everyone is welcome to play with CSS and share their results.
Btw, what is “content menu” here?

Well, first I intended PlutoStyles to serve as a basis or inspiration for others, so that people create themes for themselves by modifying this package or building on top of it. But if there is indeed a demand for several styling options, I’m open to such contributions into PlutoStyles itself.

1 Like

Just tried for fun to swap output and inputs of cells.

It is quite hacky and the run-area part where the play button and the execution time of the cell get always at the bottom of the output cell, but it seems doable:

Don’t know if other things break by doing this though

1 Like

There’s a problem, and it’s that you haven’t defined a license. Currently you’ve reserved all rights.

1 Like

This one.

I see! Table of contents definitely isn’t going to be included in the styles PlutoStyles.jl applies by default, I never use/want ToC in my Pluto notebooks. As I said, alternative themes are clearly possible, with at least two different approaches.
#1: you or someone else fork my repo and add/change styles there. Others can do ]add <your_url>/PlutoStyles.jl instead of ]add https://gitlab.com/aplavin/PlutoStyles.jl then.
#2: potentially, theme selection can be added to a single PlutoStyles package.
I don’t see any advantages for #2 vs #1 though, so would prefer the first solution due to its simplicity.

Thanks for pointing out! If only all problems could be resolved as easily (:
Added a LICENSE file.