Hack2o page d'acceuil

Page wiki de travail de conception et déploiement d’une page d’accueil pour hack2o.eu. Voir aussi Hack2O.eu - #38 by XavCC

Les Besoins

  • Une page légère (~ 512KB max / hors carte géographique embarquée)
  • Accessibilité
  • Multilangues
  • Pas de javascript
  • pas de cdn
  • un lien vers espace « news / blog »
  • Licence
  • CGU
  • Données personnelles
  • Suggestion de couleurs pour la page (hex) 02394a ; 043565 ; 5158bb ; f26df9 ; eb4b98
  • …/robot.txt et …/security.txt

Les fonctionnalités

La technique

Backend

Frontend

Pour moi il faudrait utiliser un générateur de site statique (je penche pour Serum en ce moment) et un Discourse derrière. Je suis d’accord pour faire une page légère, et même bien moins que 512KB. Pour l’instant on est à 670 byes :slight_smile: donc on pourrait viser 32KB. Une page d’accueil qui charge vite c’est indispensable.

J’vais testé Serum, ai pas touché Erlang et Elixir depuis 2018 :scream_cat:

Ah, y’a du .js Serum/new.ex at 4181c549f9dbe4d93e3959a94e3216e054075a9c · Dalgona/Serum · GitHub

    [
      "assets/css",
      "assets/images",
      "assets/js",
      "includes",
      "media",
      "pages",
      "posts",
      "templates"
    ]

Je pense que c’est optionnel

j’ai un mix.exs

defmodule Website.MixFile do
  use Mix.Project

  def project do
    [
      app: :website,
      version: "~> 0.1.0",
      elixir: "~> 1.14",
      start_permanent: Mix.env == :prod ,
      deps: deps()
    ]
  end

  def application do
    [
      applications: [:serum]
    ]
  end

  def deps do
    [
      {:serum, ">= 1.1.0 or < 2.0.0"},
      {:serum_theme_essence, "~> 1.1.0"},
    ]
  end
end

Et toute l’après-midi il m’a rendu fou avec :scream_cat: (sans trouver l’origine du problème, ni des modifications apportant une résolution des conflit)

$ mix do deps.get, deps.compile
Resolving Hex dependencies...
Resolution completed in 0.433s
New:
  certifi 2.9.0
  combine 0.10.0
  cowboy 2.9.0
  cowlib 2.11.0
  earmark 1.4.4
  expo 0.4.1
  file_system 0.2.10
  floki 0.30.1
  gettext 0.22.1
  hackney 1.18.1
  html_entities 0.5.2
  idna 6.1.1
  metrics 1.0.1
  microscope 1.4.0
  mime 1.6.0
  mimerl 1.2.0
  parse_trans 3.3.1
  ranch 1.8.0
  serum 1.5.1
  serum_theme_essence 1.1.0
  ssl_verify_fun 1.1.6
  timex 3.7.11
  tzdata 1.1.1
  unicode_util_compat 0.7.0
** (Mix) Invalid requirement any for app serum

avec

$ mix hex.info serum                                                                           1 ↵
Yet another static website generator written in Elixir

Config: {:serum, "~> 1.5"}
Releases: 1.5.1, 1.5.0, 1.4.1, 1.4.0, 1.3.0, 1.2.0, 1.1.0, 1.1.0-pre.0, ...

Licenses: MIT
Links:
  GitHub: https://github.com/Dalgona/Serum
  Website: http://dalgona.github.io/Serum

Je commence mal dans Elixir

Ah zut. Je vais tâcher de jeter un coup d’œil demain et te passer ma config…

From Lucy https://yip.pe/

  1. it’s the designer’s fault, never the user’s fault

  2. there’s no such thing as “newbies” or “dummies”. There’s a variety of people with different motives, backgrounds and experiences. The belief in this simplistic dichotomy of “smart” vs “dumb” creates heirarchies that allow emotional toddlers to believe they are geniuses on the basis of knowing how to code in C

  3. developers, and power users deserve good UI too. we shouldn’t measure expertise on the basis of the amount of suffering we are willing to endure.

  4. every configuration switch is a failure to make a design decision.

there are a bunch of exceptions here for accessibility; but mostly, configuration isn’t freedom, it’s pointless busywork that makes documentation harder, and troubleshooting a nightmare

Convention over configuration ← Rails

Mais bon, moi ce que je préfère, c’est éditer des fichiers Markdown et faire git push pour les mettre en ligne. Cet après-midi je vais jeter un oeil à ces static website managers qui sont censés marcher tout seuls. J’en ai besoin pour éviter de faire un autre lesoiseaux.io.git que je suis pratiquement le seul à savoir bouger.

Je suis sur Debian 12 (bookworm, AKA testing).
J’ai installé elixir (version 1.14.0) et les dépendances d’Erlang.

Ensuite :

mix archive.install hex serum_new
mix serum.new /srv/www/hack2o_eu
cd /srv/www/hack2o_eu
mix deps.get
mix deps.compile
mix serum.server

Aucune erreur jusque là.

Mon mix.exs :

defmodule Hack2oEu.MixFile do
  use Mix.Project

  def project do
    [
      app: :hack2o_eu,
      version: "0.1.0",
      elixir: "~> 1.14",
      start_permanent: Mix.env == :prod,
      deps: deps()
    ]
  end

  def application do
    [
      applications: [:serum]
    ]
  end

  defp deps do
    [
      {:serum, "~> 1.5"}
    ]
  end
end

Alors soit le theme_essence est brûlé, soit il te manque des headers. Ou bien tu as plusieurs versions d’elixir installées ?

Si tu veux on se fait une session rapide quand tu as un moment.

Bon, je suis passé à la phase suivante qui consiste à ajouter la ligne {:serum_theme_essence, "~> 1.0"} et là, :boom: ça foire exactement comme pour toi.

Sur cette ligne j’ai defp deps do. Pas sûr que cela change quoi que ce soit… L’erreur est la même avec ou sans le p. defp définit une fonction privée, donc mieux vaut probablement le conserver.

@XavCC, dans la série WTF, je te présente : , override: true

  defp deps do
    [
      {:serum, "~> 1.5", override: true},
      {:serum_theme_blaze, "~> 1.1"}
    ]
  end

(Le thème Blaze fait partie des trucs que j’ai essayé, cela ne devrait pas changer grand chose à l’affaire. Mais le override vire l’erreur…)

Moi pas comprendre

Cf. elixir - (Mix) Hex dependency resolution failed - Stack Overflow

1 Like

allons, soyons de folie aujourd’hui.

Je me refais un shoot de serum et je vous partage ci-après e que ça donne.

1 Like

Voilà à quoi cela commence ressembler avec serum et thème essence sans ici dans l’exemple faire de modification sur le thème utilisé

  • LOL pour utiliser un thème quel qu’il soit, il faut par exemple {:serum_theme_essence, git: "https://github.com/Dalgona/serum-theme-essence"} (cela doit pouvoir être résolu en mettant à dispo la source en local). Sinon cela crash (chez moi 14/16) avec du très moche et peu verbeux:
  ERROR  UndefinedFunctionError while loading theme (module: Serum.Themes.Essence): function Serum.Themes.Essence.name/0 is undefined (module Serum.Themes.Essence is not available)
   WARN  Error occurred while building the website.
   WARN  The website may not be displayed correctly.
  • en configuration de base, le thème essence ne prend pas [^note-1] avec [^note-1]: comme note de bas de page dans markdown parsé à l’aide de https://github.com/pragdave/earmark. Pour autant 'Elixir.Earmark.Ast.Renderer.FootnoteListRenderer' se trouve bien dans le …/earmark/ebin/eamark.app. Je ne désespère donc pas de trouver un truc à débloquer.

  • Il reste encore un peu de taf avant de proposer d’envoyer le dépot via ssh (OpenSSH_9.6p1, OpenSSL 3.2.0 23 Nov 2023 en considérant Terrapin Attack) sur https://code.cepheide.org/

j’ai un vrai problème avec la carte :

  1. elle occulte les territoires Sami et ceux de la Terre de Feu qui sont tous deux endroits de luttes importantes
  2. tous les points indiqués se trouvent dans le Nord Global et ne distinguent aucunement les types de luttes.
  3. la projection est toujours la même et problématique…

Par ailleurs je trouve la présentation bien trop détachée et abstraite. Elle ne pose pas les enjeux concrets des luttes en cours, l’orientation politique de leur positionnement, ni l’importance des ou la possibilité des liaisons.

Je n’ai malheuerusement pas le temps là de m’y coller mais honnêtement cette carte me donne mal au ventre.

ToDo (avant d’envoyer le code sur https://code.cepheide.org/) à ce jour du 3 janv. 2024

  • Base
    • Convenir de règles pour la mise du code sur cepheide
      • Règles de hygiènes et sécu (SSH / port / install / Build et dépendances, ect.)
      • Une branche dédiée avant pod nommée "main "? Puis review et Merge request
      • Une branche nommée “stage” Sur laquelle envoyer les dédiée à « l’attente » et tests (si possibles cf Convenir de règles pour la mise du code sur cepheide.
      • branche nommée pour ‘staging’ {prod} / live/ online
      • règles de base dans le code source et la config en convenant pour mise en prod
  • Dev
    • Résoudre
      • Les appels à :
        • repo github du theme essence
        • g00gle fonts
        • prismjs.com
      • L’usage des bases d’utilisation de la syntaxe en markdown (exemple les notes de bas de page)
        • Cela semble venir d’un false par défaut[1] que l’on retrouve dans le theme Essence à …/serum-theme-essence/deps/earmark/lib/earmark/options.ex (faut donc modifier avant de faire compiler.
        • Note: in serum-theme-essence/priv/assets/js/prism.js cf Prism.languages.markdown=Prism […]
  • Intégration
    • Licences appropriées
    • Affichages de :ps:
    • Lien d’accès au code source
    • Une page d’accueil claire, concise et jolie
    • Passer le texte d’explication d’hack2o en “post” (et non plus en page d’accueil)
  • Documentation
    • Mettre à dispo les premiers paragraphe de documentation concernant cette page d’accueil / elixir / serum (conception, utilisation, modification, etc)
      janv

  1. GitHub - RobertDober/earmark_parser: The Markdown to AST part of Earmark. ↩︎

Pour les branches du dépôt : main et stage pour la prod et le staging.

BTW le cgit est pété…

Je me bats comme un dératé avec tout cela (ci-dessus). Pas de soucis, cela va se dénouer et c’est cool.

Je voudrais avoir une page web publiée avant OFFDEM. Vous pigez pourquoi, j’en suis persuadé.

Ce serait okay pour vous d’avoir un page web très « épurée » et simple (contenant quand même des “WIP” pour le sections ‘wiki’ et f’orum’ ?) ?

Dans ce cas, je finis au plus vite et j’envoie là où ça va bien et de droits.

« Épuré » c’est ce que j’attends depuis deux ans. Mais dans ce cas, ne pas mettre ni forum ni wiki : si cela n’existe pas, ce n’est pas la peine d’en parler.