update footer, simpler css
This commit is contained in:
parent
8d398cb862
commit
71c6f95ce5
|
@ -56,7 +56,8 @@ for fic in $filelist; do
|
|||
done
|
||||
debug CSS: $csssize
|
||||
total=$(( htmlsize + imgsize + csssize ))
|
||||
sizeinfos=$(print -- "Size: $(toh $total) (HTML: $(toh $htmlsize), CSS: $(toh $csssize), IMG: $(toh $imgsize))")
|
||||
# the space is important before the toh total
|
||||
sizeinfos=$(print -- " $(toh $total) (HTML: $(toh $htmlsize), CSS: $(toh $csssize), IMG: $(toh $imgsize))")
|
||||
print -- $sizeinfos
|
||||
perl -pi -e 's#(<div class="?web-file-size"?>)[^<]*(</div>)#$1'"$sizeinfos"'$2#' $fic
|
||||
done
|
||||
|
|
107
project.el
107
project.el
|
@ -108,6 +108,14 @@
|
|||
(apply 'concat
|
||||
(mapcar 'rand-obfs txt)))
|
||||
|
||||
(defun keywords-to-html (keywords)
|
||||
(let ((keywords (split-string keywords ",\s*")))
|
||||
(format " <span class=\"keywords\">%s</span>"
|
||||
(mapconcat (lambda (k)
|
||||
(format "<span class=\"keyword\">#%s</span>" k))
|
||||
(cl-sort keywords 'string-lessp :key 'downcase)
|
||||
" "))))
|
||||
|
||||
(defun org-blog-postamble (info)
|
||||
"Post-amble for whole blog."
|
||||
(concat
|
||||
|
@ -117,33 +125,61 @@
|
|||
;; (format "<a href=\"https://comments.esy.fun/slug/%s\">comment</a>"
|
||||
;; (url-hexify-string url)))
|
||||
"<footer>"
|
||||
(when-let ((author (get-from-info info :author)))
|
||||
(if-let ((email (plist-get info :email)))
|
||||
(let* ((obfs-email (obfuscate-html email))
|
||||
(obfs-author (obfuscate-html author))
|
||||
(obfs-title (obfuscate-html (get-from-info info :title)))
|
||||
(full-email (format "%s <%s>" obfs-author obfs-email)))
|
||||
(format "<div class=\"author\">Author: <a href=\"%s%s%s%s\">%s</a></div>"
|
||||
(obfuscate-html "mailto:")
|
||||
full-email
|
||||
(obfuscate-html "?subject=yblog: ")
|
||||
obfs-title
|
||||
full-email))
|
||||
(format "<div class=\"author\">Author: %s</div>" author)))
|
||||
(when-let ((date (get-from-info info :date)))
|
||||
(format "<div class=\"date\">Created: %s (%s)</div>" date (y-date date)))
|
||||
(when-let ((keywords (plist-get info :keywords)))
|
||||
(format "<div class=\"keywords\">Keywords: <code>%s</code></div>" keywords))
|
||||
"<div class=\"rss\"><a rel=\"alternate\" type=\"application/rss+xml\" href=\"/rss.xml\">RSS</a>: <a href=\"https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fher.esy.fun%2Frss.xml\">Valid RSS</a></div>"
|
||||
(format "<div class=\"date\">Generated: %s</div>"
|
||||
(format-time-string "%Y-%m-%d %H:%M:%S"))
|
||||
"<div class=\"web-file-size\">Size: XXK (HTML: XXK, CSS: XXK, IMG: XXK)</div>"
|
||||
(format (concat "<div class=\"creator\"> Generated with "
|
||||
"<a href=\"https://www.gnu.org/software/emacs/\" target=\"_blank\" rel=\"noopener noreferrer\">Emacs %s</a>, "
|
||||
"<a href=\"http://spacemacs.org\" target=\"_blank\" rel=\"noopener noreferrer\">Spacemacs %s</a>, "
|
||||
"<a href=\"http://orgmode.org\" target=\"_blank\" rel=\"noopener noreferrer\">Org Mode %s</a>"
|
||||
"</div>")
|
||||
emacs-version spacemacs-version org-version)
|
||||
(let* ((author (when-let ((author (get-from-info info :author)))
|
||||
(if-let ((email (plist-get info :email)))
|
||||
(let* ((obfs-email (obfuscate-html email))
|
||||
(obfs-author (obfuscate-html author))
|
||||
(obfs-title (obfuscate-html (get-from-info info :title)))
|
||||
(full-email (format "%s <%s>" obfs-author obfs-email)))
|
||||
(format "<span class=\"author\"><a href=\"%s%s%s%s\">%s</a></span>"
|
||||
(obfuscate-html "mailto:")
|
||||
full-email
|
||||
(obfuscate-html "?subject=yblog: ")
|
||||
obfs-title
|
||||
full-email))
|
||||
(format "<span class=\"author\">%s</span>" author))))
|
||||
(date (when-let ((date (get-from-info info :date)))
|
||||
(format "<div class=\"date\">Created: %s (%s)</div>" date (y-date date))))
|
||||
(keywords (when-let ((keywords (plist-get info :keywords)))
|
||||
(keywords-to-html keywords)))
|
||||
(rss
|
||||
(concat
|
||||
"<div class=\"rss\">"
|
||||
"<a rel=\"alternate\""
|
||||
" type=\"application/rss+xml\""
|
||||
" href=\"/rss.xml\">"
|
||||
"RSS"
|
||||
"</a>"
|
||||
" (<a href=\"https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fher.esy.fun%2Frss.xml\">"
|
||||
" validate</a>)"
|
||||
"</div>"))
|
||||
(generated-date
|
||||
(format "<div class=\"date\">%s</div>"
|
||||
(format-time-string "%Y-%m-%d %H:%M:%S")))
|
||||
(size
|
||||
"<div class=\"web-file-size\">XXK (HTML: XXK, CSS: XXK, IMG: XXK)</div>")
|
||||
(generated-with
|
||||
(format (concat "<div class=\"creator\">"
|
||||
"<a href=\"https://www.gnu.org/software/emacs/\" target=\"_blank\" rel=\"noopener noreferrer\">Emacs %s</a>, "
|
||||
"<a href=\"http://spacemacs.org\" target=\"_blank\" rel=\"noopener noreferrer\">Spacemacs %s</a>, "
|
||||
"<a href=\"http://orgmode.org\" target=\"_blank\" rel=\"noopener noreferrer\">Org Mode %s</a>"
|
||||
"</div>")
|
||||
emacs-version spacemacs-version org-version)))
|
||||
(concat
|
||||
"<table>"
|
||||
(mapconcat (lambda (entry)
|
||||
(when (cdr entry)
|
||||
(format "<tr><td>%s</td><td>%s</td></tr>"
|
||||
(car entry) (cdr entry))))
|
||||
`(("Author" . ,author)
|
||||
("Date" . ,date)
|
||||
("Keywords" . ,keywords)
|
||||
("RSS" . ,rss)
|
||||
("Size" . ,size)
|
||||
("Generated" . ,generated-date)
|
||||
("Generated with" . ,generated-with))
|
||||
" ")
|
||||
"</table>"))
|
||||
"</footer>"
|
||||
(menu '("<a href=\"#preamble\">↑ Top ↑</a>"))
|
||||
"</div>"))
|
||||
|
@ -168,19 +204,16 @@
|
|||
(when (string-match "posts/.*" entry)
|
||||
(let* ((file (org-publish--expand-file-name entry project))
|
||||
(title (org-publish-find-title entry project))
|
||||
(date (format-time-string "%Y-%m-%d" (org-publish-find-date entry project)))
|
||||
(keywords (split-string (y/get-meta file "KEYWORDS") ",\s*"))
|
||||
(artdate (format-time-string "%Y-%m-%d" (org-publish-find-date entry project)))
|
||||
;; (keywords (y/get-meta file "KEYWORDS"))
|
||||
(description (y/get-meta file "DESCRIPTION")))
|
||||
(concat
|
||||
"- "
|
||||
(format " [%s]" date)
|
||||
(format " @@html:<span class=\"metas\">%s</span>@@: " artdate)
|
||||
(format " *[[file:%s][%s]]*" file title)
|
||||
(format " @@html:<div class=\"keywords\">@@%s@@html:</div>@@"
|
||||
(mapconcat (lambda (k) (format "@@html:<span class=\"keyword\">@@#%s@@html:</span>@@" k))
|
||||
(cl-sort keywords 'string-lessp :key 'downcase)
|
||||
" "))
|
||||
(format "@@html:<div class=\"description\">@@%s@@html:</div>@@" description)
|
||||
(format "@@html:<br/>@@" description)))))
|
||||
(format " @@html:<div class=\"description\">@@%s@@html:</div>@@" description)
|
||||
(format " @@html:<div class=\"metas\">@@ ")
|
||||
;; (keywords-to-html keywords)
|
||||
" @@html:</div>@@\n"))))
|
||||
|
||||
(defun org-blog-sitemap-fn-descr (descr title list)
|
||||
"Return sitemap using TITLE and LIST returned by `org-blog-sitemap-format-entry'."
|
||||
|
|
BIN
project.el.sig
BIN
project.el.sig
Binary file not shown.
|
@ -30,6 +30,9 @@ I try to look at my email everyday.
|
|||
But sometime a few days could go without me checking them.
|
||||
|
||||
So I'll answer, it can just take a lot of time.
|
||||
|
||||
My preferred way to be contacted is via encrypted email.
|
||||
This will certainly be the best way for me to notice you among notifications.
|
||||
#+end_notes
|
||||
|
||||
[fn:dm] http://www.calnewport.com/books/digital-minimalism/
|
||||
|
@ -39,35 +42,19 @@ So I'll answer, it can just take a lot of time.
|
|||
:CUSTOM_ID: contact
|
||||
:END:
|
||||
|
||||
- *email*: @@html: <a href="mailto:yann@esposito.host">Yann Esposito <yann@esposito.host></a>@@
|
||||
Self hosted services:
|
||||
#+MACRO: pemail @@html: <a href="mailto:yann@esposito.host">Yann Esposito <yann@esposito.host></a>@@
|
||||
|
||||
| programs | [[https://gitea.esy.fun/yogsototh][gitea]] |
|
||||
| bookmarks | [[https://espial.esy.fun/u:yogsototh][espial public bookmarks]] |
|
||||
| notes/microblog | [[https://espial.esy.fun/u:yogsototh/notes][espial public notes]] |
|
||||
| email | {{{pemail}}} |
|
||||
| gpg | [[file:files/publickey.txt][CB420F8005F1A662]] |
|
||||
| programs | [[https://gitea.esy.fun/yogsototh][gitea]] / [[https://github.com/yogsototh][github/yogsototh]] |
|
||||
| bookmarks | [[https://espial.esy.fun/u:yogsototh][espial]] / [[https://pinboard.in/u:yogsototh][pinboard/u:yogsototh]] |
|
||||
| microblog | [[https://espial.esy.fun/u:yogsototh/notes][espial]] / [[https://twitter.com/yogsototh][twitter/@yogsototh]] |
|
||||
| keybase | [[https://keybase.io/yogsototh][yogsototh]] |
|
||||
| lobste.rs | [[https://lobste.rs/u/yogsototh][/u/yogsototh]] |
|
||||
| reddit | [[https://reddit.com/u/yogsototh][/u/yogsototh]] |
|
||||
| stack overflow | [[https://stackoverflow.com/users/40569/yogsototh][yogsototh]] |
|
||||
|
||||
** Social Platforms
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: social-platforms
|
||||
:END:
|
||||
|
||||
| keybase | [[https://keybase.io/yogsototh][yogsototh]] |
|
||||
| bookmarks | [[https://pinboard.in/u:yogsototh][u:yogsototh]] |
|
||||
| lobste.rs | [[https://lobste.rs/u/yogsototh][/u/yogsototh]] |
|
||||
| github | [[https://github.com/yogsototh][yogsototh]] |
|
||||
| twitter | [[https://twitter.com/yogsototh][@yogsototh]] |
|
||||
| reddit | [[https://reddit.com/u/yogsototh][/u/yogsototh]] |
|
||||
| stack overflow | [[https://stackoverflow.com/users/40569/yogsototh][yogsototh]] |
|
||||
|
||||
** old websites
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: old-websites
|
||||
:END:
|
||||
|
||||
- https://yannesposito.com ✞ 2016
|
||||
- http://yann.esposito.free.fr ✞ 2007
|
||||
|
||||
* Who am I
|
||||
* Who am I?
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: who-am-i
|
||||
:END:
|
||||
|
@ -79,3 +66,40 @@ In particular:
|
|||
- [[http://yannesposito.com/Scratch/en/blog/Haskell-the-Hard-Way/][Learn Haskell Fast and Hard]]
|
||||
- [[http://yannesposito.com/Scratch/en/blog/Yesod-tutorial-for-newbies/][Haskell Web Programming]]
|
||||
- [[http://yannesposito.com/Scratch/en/blog/Category-Theory-Presentation/][Category Theory Presentation]]
|
||||
|
||||
** Work
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: work
|
||||
:END:
|
||||
|
||||
#+MACRO: br @@html:<br/>@@
|
||||
|
||||
I'm a functional programmer, working remotely for Cisco.{{{br}}}
|
||||
I work in Clojure and use Haskell/Purescript during the weekends.
|
||||
|
||||
I am part of a full remote team.
|
||||
I work on the backend and I'm particularly specialized in Authentication.
|
||||
I wrote a full OAuth2 and OpenID Connect Provider in Clojure.
|
||||
Right now there is no plan to make it opensource.
|
||||
|
||||
** Tooling
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: tooling
|
||||
:END:
|
||||
|
||||
In our programmer community, tooling is essential.
|
||||
|
||||
- emacs (former vim user)
|
||||
- spacemacs
|
||||
- org-mode / org-journal / org-roam
|
||||
- magit / forge / github-review
|
||||
- weechat
|
||||
- weeslack
|
||||
|
||||
* former websites
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: old-websites
|
||||
:END:
|
||||
|
||||
- https://yannesposito.com ✞ 2016
|
||||
- http://yann.esposito.free.fr ✞ 2007
|
||||
|
|
|
@ -143,7 +143,7 @@ hr {
|
|||
#table-of-contents {
|
||||
margin-bottom: var(--lh);
|
||||
}
|
||||
#postamble:before, hr:after {
|
||||
hr:after {
|
||||
font-family: Menlo, monospace;
|
||||
text-align: center;
|
||||
content: "----------------------------------------------------------";
|
||||
|
@ -191,9 +191,6 @@ figure, .figure {
|
|||
#postamble {
|
||||
margin-top: var(--lh);
|
||||
}
|
||||
.timestamp-wrapper {
|
||||
font-size: 14px;
|
||||
}
|
||||
.todo, .done {
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
|
@ -232,9 +229,6 @@ figure, .figure {
|
|||
label + pre {
|
||||
margin-top: 0;
|
||||
}
|
||||
li .keywords {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* COLORS */
|
||||
:root {
|
||||
|
@ -260,7 +254,7 @@ li .keywords {
|
|||
--fg0: var(--b0);
|
||||
--fg: var(--b02);
|
||||
--rfg: #000;
|
||||
--hl: var(--o);
|
||||
--hl: var(--c);
|
||||
}
|
||||
|
||||
img {
|
||||
|
@ -278,9 +272,6 @@ h1, h2, h3, h4, h5, h6 {
|
|||
a {
|
||||
color: var(--hl);
|
||||
}
|
||||
#content a, #content a:visited {
|
||||
color: var(--rfg);
|
||||
}
|
||||
|
||||
b, strong, i, em {
|
||||
color: var(--rfg);
|
||||
|
@ -301,22 +292,10 @@ h1:before, h2:before, h3:before, h4:before, h5:before, h6:before {
|
|||
nav a, nav a:visited {
|
||||
color: var(--fg);
|
||||
}
|
||||
li .keywords,
|
||||
ol > li:before, pre::after,pre::before,hr:after, label, label a, label a:visited {
|
||||
color: var(--fg0);
|
||||
}
|
||||
|
||||
#labels label:hover,
|
||||
a:hover,
|
||||
a:hover *,
|
||||
.metas a:hover,
|
||||
#content a:hover,
|
||||
#content a:hover *,
|
||||
nav a:hover {
|
||||
color: var(--bg);
|
||||
background: var(--hl);
|
||||
}
|
||||
|
||||
abbr { border-bottom: dashed 1px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
|
52
src/files/publickey.txt
Normal file
52
src/files/publickey.txt
Normal file
|
@ -0,0 +1,52 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
knVzm9h9eZeOhQ==
|
||||
=y96G
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
@ -1,4 +1,4 @@
|
|||
#+TITLE: Welcome!
|
||||
#+TITLE: Yann Esposito's Website
|
||||
#+KEYWORDS: programming
|
||||
#+AUTHOR: Yann Esposito
|
||||
#+EMAIL: yann@esposito.host
|
||||
|
@ -20,15 +20,25 @@
|
|||
</span>
|
||||
</nav>@@
|
||||
|
||||
#+MACRO: br @@html:<br/><br/>@@
|
||||
#+MACRO: br @@html:<br/>@@
|
||||
#+MACRO: pemail @@html: <a href="mailto:yann@esposito.host">Yann Esposito <yann@esposito.host></a>@@
|
||||
|
||||
Welcome to my personal website.
|
||||
I generally talk about programming, maybe movies, or miscellaneous topics.
|
||||
You can follow new articles via [[https://her.esy.fun/rss.xml][RSS]].
|
||||
I also expose some of my presentations here.
|
||||
I'm a functional programmer, working remotely for Cisco.{{{br}}}
|
||||
I work in Clojure and use Haskell/Purescript during the weekends.
|
||||
|
||||
- [[file:archive.org][articles]]
|
||||
- [[file:slides.org][presentations]]
|
||||
- [[https://gitea.esy.fun/yogsototh][I write softwares]] ([[https://github.com/yogsototh][backuped on github]]),
|
||||
- [[file:archive.org][I blog]] (you can follow new articles via [[https://her.esy.fun/rss.xml][RSS]]),
|
||||
- [[file:slides.org][I sometime make some presentations]]
|
||||
|
||||
| email | {{{pemail}}} |
|
||||
| gpg | [[file:files/publickey.txt][CB420F8005F1A662]] |
|
||||
| programs | [[https://gitea.esy.fun/yogsototh][gitea]] / [[https://github.com/yogsototh][github/yogsototh]] |
|
||||
| bookmarks | [[https://espial.esy.fun/u:yogsototh][espial]] / [[https://pinboard.in/u:yogsototh][pinboard/u:yogsototh]] |
|
||||
| microblog | [[https://espial.esy.fun/u:yogsototh/notes][espial]] / [[https://twitter.com/yogsototh][twitter/@yogsototh]] |
|
||||
| keybase | [[https://keybase.io/yogsototh][yogsototh]] |
|
||||
| lobste.rs | [[https://lobste.rs/u/yogsototh][/u/yogsototh]] |
|
||||
| reddit | [[https://reddit.com/u/yogsototh][/u/yogsototh]] |
|
||||
| stack overflow | [[https://stackoverflow.com/users/40569/yogsototh][yogsototh]] |
|
||||
|
||||
That website was created with the following constraints in mind by order of
|
||||
priority:
|
||||
|
@ -36,14 +46,18 @@ priority:
|
|||
1. *Respect Privacy*; no tracker of any sort (no ads, no google analytics, no
|
||||
referrer for all external links, etc...)
|
||||
{{{br}}}
|
||||
{{{br}}}
|
||||
2. *Almost javascript free*; no js at all except for a single exception,
|
||||
pages containing Math formulæ are displayed using mathjax.
|
||||
{{{br}}}
|
||||
{{{br}}}
|
||||
3. *Accessibility*; should be easy to read on a text browser so people with
|
||||
disabilities could easily consume it.
|
||||
{{{br}}}
|
||||
{{{br}}}
|
||||
4. *RSS*; you should be able to get informed when I add a new blog post.
|
||||
{{{br}}}
|
||||
{{{br}}}
|
||||
5. *Frugal*; try to minimize the resources needed to visit my website; no
|
||||
javascript, no web-font, not too much CSS magic, not much images or really
|
||||
compressed one.
|
||||
|
|
|
@ -22,13 +22,16 @@
|
|||
|
||||
* English
|
||||
|
||||
- [2018-10-25 Thu] [[file:slides/git-project-manager.org][Git Project Manager]] is a talk I made for the "Commission Open Source"
|
||||
about how to gain back autonomy with git by providing most features
|
||||
Github propose just with a few conventions. I even written a tool to help
|
||||
manage issues, code review, git hosting, etc...
|
||||
@@html:<span class="metas">2018-10-25</span>@@: *[[file:slides/git-project-manager.org][Git Project Manager]]*
|
||||
|
||||
This is a talk I made for the "Commission Open Source" about how to gain
|
||||
back autonomy with git by providing most features Github propose just with
|
||||
a few conventions.
|
||||
I even written a tool to help manage issues, code review, git hosting,
|
||||
etc...
|
||||
|
||||
* French
|
||||
|
||||
- [2018-03-15 Thu]
|
||||
[[file:slides/Intro-to-FP-with-Haskell.org][Introduction à la programmation fonctionnelle avec Haskell]]
|
||||
is a French talk introducing Functional programming concept with Haskell.
|
||||
@@html:<span class="metas">2018-03-15</span>@@: *[[file:slides/Intro-to-FP-with-Haskell.org][Introduction à la programmation fonctionnelle avec Haskell]]*
|
||||
|
||||
A talk in French introducing Functional programming concept with Haskell.
|
||||
|
|
Loading…
Reference in a new issue