204 lines
7 KiB
Org Mode
204 lines
7 KiB
Org Mode
#+TITLE: Some Technicalities about Building My Work Page
|
|
|
|
* Update checklist
|
|
1. [ ] Publications
|
|
2. [ ] Research keywords
|
|
3. [ ] Roles
|
|
4. [ ] Seminars
|
|
5. [ ] Programming
|
|
6. [ ] Teaching
|
|
7. [ ] News
|
|
8. [ ] Dead links
|
|
|
|
* Workflow
|
|
1. Load [[file:work.el][work.el]].
|
|
#+BEGIN_SRC elisp :results none
|
|
(load-file "~/Candies/Sites/work/work.el")
|
|
#+END_SRC
|
|
|
|
2. Open [[file:index.org][index.org]] and publish the current project with a prefix
|
|
(=C-u=) to get the updated timestamp, or run the following
|
|
snippet:
|
|
#+BEGIN_SRC elisp :results silent
|
|
(org-publish-project "work-site" t)
|
|
#+END_SRC
|
|
|
|
3. Go to https://entrepot.ibisc.univ-evry.fr/ and upload the files
|
|
and directories from [[file:www/][www/]] to the folder =ivanov-page-perso=.
|
|
|
|
The username to login to the entrepôt is
|
|
=prénom.nom@ibisc.univ-evry.fr=, and the password is the same one
|
|
as for the Intranet IBISC. Detailed information [[https://intranet.ibisc.univ-evry.fr/projects/intranet/wiki/Entrep%C3%B4t_de_fichiers_Installation][here]].
|
|
|
|
The following source code block is a shortcut for reloading the
|
|
configuration, removing the timestamps, and publishing the
|
|
whole site.
|
|
#+BEGIN_SRC elisp :results silent
|
|
(load-file "~/Candies/Sites/work/work.el")
|
|
(org-publish-project "work-site" t)
|
|
#+END_SRC
|
|
|
|
Evaluating this code block opens the exported site in the last
|
|
viewed Firefox window.
|
|
#+BEGIN_SRC elisp :results silent
|
|
(shell-command "firefox public_html/index.html")
|
|
#+END_SRC
|
|
|
|
* Pushing to remote
|
|
Run the following command:
|
|
#+BEGIN_SRC elisp :results silent
|
|
(async-shell-command "sftp -b push.sftp sivanov@pageperso.ibisc.univ-evry.fr")
|
|
#+END_SRC
|
|
|
|
The output will appear in a buffer called =*Async Shell Command*=.
|
|
|
|
* New way of updating the page <2024-09-25>
|
|
:PROPERTIES:
|
|
:VISIBILITY: folded
|
|
:END:
|
|
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:
|
|
#+BEGIN_SRC shell
|
|
sftp sivanov@pageperso.ibisc.univ-evry.fr
|
|
#+END_SRC
|
|
Pubkey authentication with my normal public key works as of today.
|
|
|
|
I wrote a [[file:push.sftp][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> :old:
|
|
:PROPERTIES:
|
|
:VISIBILITY: folded
|
|
:END:
|
|
Before today, I used to need to call
|
|
#+BEGIN_SRC elisp :results silent
|
|
(org-publish-remove-all-timestamps)
|
|
#+END_SRC
|
|
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:
|
|
:PROPERTIES:
|
|
:VISIBILITY: folded
|
|
:END:
|
|
** Problem
|
|
After another update, Seafile started telling me this when I tried
|
|
to start it:
|
|
#+BEGIN_QUOTE
|
|
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)
|
|
#+END_QUOTE
|
|
|
|
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:
|
|
#+BEGIN_SRC shell
|
|
nix-env -iA nixpkgs.qt5.qtbase
|
|
export XDG_DATA_DIRS=$HOME/.nix-profile/share:$XDG_DATA_DIRS
|
|
#+END_SRC
|
|
Tried this literally, got
|
|
#+BEGIN_QUOTE
|
|
error: attribute 'nixpkgs' in selection path 'nixpkgs.qt5.qtbase' not found
|
|
#+END_QUOTE
|
|
|
|
- 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 [[https://hydra.nixos.org/build/96804884/download/1/nixpkgs/manual.html#sec-language-qt][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:
|
|
|
|
1. Add =qt5.qtbase= and =seafile-client= to =home.packages= in
|
|
[[/home/scolobb/.config/nixpkgs/home.nix][=home.nix=]].
|
|
|
|
2. Install =seafile-shared= instead of =seafile-client= in
|
|
[[file:shell-seafile.nix][=shell-seafile.nix=]].
|
|
|
|
Very weirdly, this makes =seafile-applet= work. I tried not doing
|
|
(1) and putting all the packages in [[file:shell-seafile.nix][=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
|
|
#+BEGIN_QUOTE
|
|
lang = English, translation = (null), locale.name() = en_US
|
|
#+END_QUOTE
|
|
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 [[https://hydra.nixos.org/build/96804884/download/1/nixpkgs/manual.html#sec-language-qt][way to describe Qt packages]].
|
|
|
|
* Removing the publish cache
|
|
:PROPERTIES:
|
|
:VISIBILITY: folded
|
|
:END:
|
|
Org-publish will not detect files being deleted from the output. To
|
|
force it to clear its caches, do the following:
|
|
#+BEGIN_SRC elisp
|
|
(org-publish-remove-all-timestamps)
|
|
#+END_SRC
|
|
|
|
* Possible colors for the banner
|
|
:PROPERTIES:
|
|
:VISIBILITY: folded
|
|
:END:
|
|
#+BEGIN_SRC css
|
|
background-color: azure;
|
|
background-color: lightcyan;
|
|
background-color: paleturquoise;
|
|
#+END_SRC
|
|
|
|
* References
|
|
:PROPERTIES:
|
|
:VISIBILITY: folded
|
|
:END:
|
|
** Org-mode
|
|
- https://orgmode.org/worg/org-tutorials/org-publish-html-tutorial.html
|
|
- https://orgmode.org/manual/Configuration.html#Configuration
|
|
- https://orgmode.org/manual/CSS-support.html#CSS-support
|
|
** Examples
|
|
- https://justin.abrah.ms/emacs/orgmode_static_site_generator.html
|
|
- https://bastibe.de/2013-11-13-blogging-with-emacs.html
|
|
- https://ogbe.net/blog/blogging_with_org.html
|
|
|
|
* Local Variables :noexport:
|
|
:PROPERTIES:
|
|
:VISIBILITY: folded
|
|
:END:
|
|
# Local Variables:
|
|
# eval: (auto-fill-mode)
|
|
# ispell-local-dictionary: "en"
|
|
# org-link-file-path-type: relative
|
|
# End:
|