7 KiB
Some Technicalities about Building My Work Page
- Update checklist
- Workflow
- Pushing to remote
- New way of updating the page <2024-09-25 Wed>
- Forcing Org-mode to ignore the timestamps <2021-11-20 Sat>
- Seafile problem <2020-02-17 Mon>
- Removing the publish cache
- Possible colors for the banner
- References
Update checklist
- Publications
- Research keywords
- Roles
- Seminars
- Programming
- Teaching
- News
- Dead links
Workflow
-
Load work.el.
(load-file "~/Candies/Sites/work/work.el")
-
Open index.org and publish the current project with a prefix (
C-u
) to get the updated timestamp, or run the following snippet:(org-publish-project "work-site" t)
- Go to https://entrepot.ibisc.univ-evry.fr/ and upload the files
and directories from www/ to the folder
ivanov-page-perso
. The username to login to the entrepôt isprénom.nom@ibisc.univ-evry.fr
, and the password is the same one as for the Intranet IBISC. Detailed information here.
The following source code block is a shortcut for reloading the configuration, removing the timestamps, and publishing the whole site.
(load-file "~/Candies/Sites/work/work.el")
(org-publish-project "work-site" t)
Evaluating this code block opens the exported site in the last viewed Firefox window.
(shell-command "firefox public_html/index.html")
Pushing to remote
Run the following command:
(async-shell-command "sftp -b push.sftp sivanov@pageperso.ibisc.univ-evry.fr")
The output will appear in a buffer called *Async Shell Command*
.
New way of updating the page <2024-09-25 Wed>
I asked Ludovic again if he could give me some direct access to a directory so that I don't have to toy with Seafile, which also regularly broke and didn't actually update my page.
Ludovic gave me SFTP access to a remote directory which I can check out as follows:
sftp sivanov@pageperso.ibisc.univ-evry.fr
Pubkey authentication with my normal public key works as of today.
I wrote a short SFTP script to push the files to remote.
I used to put the exported HTML files into www/
, but I could not
figure out how to make sftp
transfer www/
and overwrite
public_html/
remotely, rather than putting it in as a subdirectory.
I figured it was easier to just rename the local directory, as I don't
care anyway.
Forcing Org-mode to ignore the timestamps <2021-11-20 Sat> old
Before today, I used to need to call
(org-publish-remove-all-timestamps)
in order to force Org-mode to export every file. Now, this can be
done by setting the FORCE
argument of org-publish-project
to
t
, as seen in the above code blocks.
Seafile problem <2020-02-17 Mon> old
Problem
After another update, Seafile started telling me this when I tried to start it:
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in "" This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Aborted (core dumped)
I did a couple hours of searching, and found some threads, which did not help:
-
https://github.com/NixOS/nixpkgs/issues/42893
Idea: imperatively install Seafile and then tell it where to search for plugin:
nix-env -iA nixpkgs.qt5.qtbase export XDG_DATA_DIRS=$HOME/.nix-profile/share:$XDG_DATA_DIRS
Tried this literally, got
error: attribute 'nixpkgs' in selection path 'nixpkgs.qt5.qtbase' not found
- https://github.com/NixOS/nixpkgs/issues/65399 There is a new way to describe Qt packages which correctly handles looking for plugins, this issue is there to help track all the problems that this may lead to. There is some documentation as to how to do it properly. I didn't feel like hacking Nixpkgs right away.
- https://forum.qt.io/topic/111553/solved-qt-qpa-plugin-could-not-find-the-qt-platform-plugin-xcb-in/7 Tell Seafile where to look for plugins. This is not necessarily even applicable with Nix.
- https://github.com/haiwen/seafile/issues/6
Apparently, Seafile has a CLI interface, but I don't find it in
my installation. More concretely, the file
seafile-cli
appears in shell completions, but it doesn't launch nor could I find where it was.
My hack <2020-02-17 Mon>
My current hack consists in the following modifications:
- Add
qt5.qtbase
andseafile-client
tohome.packages
inhome.nix
. - Install
seafile-shared
instead ofseafile-client
inshell-seafile.nix
.
Very weirdly, this makes seafile-applet
work. I tried not doing
(1) and putting all the packages in shell-seafile.nix
, but it
won't work. Also, again weirdly, outside of Nix shell the
seafile-applet
coming from the home-manager installation never
gets past the message
lang = English, translation = (null), locale.name() = en_US
without showing the interface or doing whatsoever.
Proper solution?
A proper solution would probably consist in updating the Seafile package to comply with the new way to describe Qt packages.
Removing the publish cache
Org-publish will not detect files being deleted from the output. To force it to clear its caches, do the following:
(org-publish-remove-all-timestamps)
Possible colors for the banner
background-color: azure;
background-color: lightcyan;
background-color: paleturquoise;