Commit 8a6dd0a0 authored by Abrüpt's avatar Abrüpt
Browse files

fix: finitions articles

parent 407949ea
Pipeline #112861321 passed with stage
in 40 seconds
......@@ -167,7 +167,7 @@ a {
text-decoration: none;
display: inline-block;
background: linear-gradient(to bottom, #f00 0%, #f00 100%);
background-position: 0 72%;
background-position: 0 75%;
background-repeat: repeat-x;
background-size: 3px 3px;
}
......
......@@ -597,6 +597,7 @@ video {
border-bottom: none;
color: #ff0000;
font-style: normal;
background: unset;
}
/* Input and search */
......
......@@ -125,64 +125,3 @@ content.addEventListener('touchmove', function (event) {
event.preventDefault();
}
});
// Grid scripts
// Sortable for Grid
var container = document.querySelector('.grid');
var sortable = Sortable.create(container, {
animation: 500,
draggable: ".item",
fallbackTolerance: 3,
});
// Shuffle Grid
//function shuffleArray(a) {
// for (let i = a.length - 1; i > 0; i--) {
// const j = Math.floor(Math.random() * (i + 1));
// [a[i], a[j]] = [a[j], a[i]];
// }
// return a;
//}
function shuffle() {
// let elementsArray = Array.prototype.slice.call(container.querySelectorAll('.item'));
// elementsArray.forEach(function(element){
// container.removeChild(element);
// })
// shuffleArray(elementsArray);
// elementsArray.forEach(function(element){
// container.appendChild(element);
//})
for (let i = container.children.length; i >= 0; i--) {
container.appendChild(container.children[Math.random() * i | 0]);
}
}
const shuffleBtn = document.querySelector('.btn--shuffle');
shuffleBtn.addEventListener('click', (e) => {
e.preventDefault();
shuffle();
shuffleBtn.animate([
{ transform: 'rotate(0)' },
{ transform: 'rotate(-90deg)' },
{ transform: 'rotate(0)' },
], {
duration: 300,
iterations: 1
});
container.animate([
{ transform: 'translate(0,0)' },
{ transform: 'translate(5px,0)' },
{ transform: 'translate(0,0)' },
{ transform: 'translate(5px,0)' },
{ transform: 'translate(0,0)' },
{ transform: 'translate(5px,0)' },
{ transform: 'translate(0,0)' },
{ transform: 'translate(5px,0)' },
{ transform: 'translate(0,0)' }
], {
duration: 300,
iterations: 1
});
});
......@@ -18,4 +18,4 @@ echo:
Le livre numérique est mort. Le bruit court bon train, et le milieu se repaît de papier. Il organise l’automatique destruction des cybervelléités, l’avanie des salons pour l’écriture dite numérique. Si le livre numérique est mort, quel en fut son bourreau, son supplice. Nos mémoires de l’instant n’arrivent pas à remonter le cours des évènements. Le souvenir : un autodafé des circuits électroniques. Nous nous sommes réjouis de notre destruction en ce bûcher, nous avons crépité, subi l’envoûtement des flammes, et les belles vapeurs numériques qui sont venues faire strates supplémentaires à la pollution des ciels nous ont accordé des hallucinations mécaniques. Le livre numérique est mort. Nous actons. Et que faire ? Que faire de la littérature qui se refuse aux moisissures, qui rêve à l’unisson des réseaux, et trouve sa fraternité parmi les robots ? Les gens de bien n’ont que faire, mais les autres, mais nous ? Que faire des hiérarchies, des publications sans les verticalités argentées, les autorités et les étiquettes, celles qui qualifient la beauté et son instant, celles qui nomment le putride et donnent les prix ? Que faire ? Eh bien, à côté, se faire clandestin en la littérature, la belle, et faire sans le milieu et sans les hiérarchies, avec des réseaux et des robots. Le livre numérique est mort, et sa littérature fomente un avenir immatériel. Gloire au mort-vivant !
(*Mort à la littérature !*)
(*Mort à la littérature ! La salissure reine !*)
......@@ -25,7 +25,7 @@ Geplanter Gedichtzyklus »Onéirocritie«: »Symptômes de ruines. Bâtiments im
</div>
</div>
{{< figurelazy src="/img/181008-glitchbaudelaire-1.gif" alt="Glitch de la photographie de Baudelaire par Nadar 1" width="100%" >}}
{{< figurelazy src="/img/181008-glitchbaudelaire.gif" alt="Glitch de la photographie de Baudelaire par Nadar 1" width="50%" class="figure--centre" >}}
\[...\] cite donc Charles Baudelaire dans *Charles Baudelaire intime*, Paris 1911, chez A. Blaizot, éditeur, 26, rue Le Peletier, 26, qui \[...\]
......@@ -43,7 +43,7 @@ Geplanter Gedichtzyklus »Onéirocritie«: »Symptômes de ruines. Bâtiments im
</div>
</div>
{{< figurelazy src="/img/181008-glitchbaudelaire-2.gif" alt="Glitch de la photographie de Baudelaire par Nadar 2" width="100%" >}}
{{< figurelazy src="/img/181008-glitchbaudelaire-2.gif" alt="Glitch de la photographie de Baudelaire par Nadar 2" width="50%" class="figure--centre" >}}
\[...\] ne fait qu’ébaucher l’aphasie des pays pluvieux, son triste cerveau ou ce que le spleen n’a pu. \[...\]
......@@ -57,7 +57,6 @@ Geplanter Gedichtzyklus »Onéirocritie«: »Symptômes de ruines. Bâtiments im
*\[...\] Nadar dans (le texte et puis dans) les glitchs \[...\]*
<script async src="/js_plus.js"></script>
<script>
// Pour baffle
// Pour baffle dans symptômes de ruine
......
......@@ -27,7 +27,7 @@ La version PDF du microantilivre est <a href="https://txt.abrupt.ch/antilivre/mi
Je me trouvais avec Dausse en compagnie de plusieurs personnes dont je ne me souviens pas. À un moment donné, nous quittâmes cette compagnie, Dausse et moi. Après nous être absentés, nous nous trouvâmes dans un fouillis ; je m'aperçus que presqu'à même le sol, se trouvait un drôle de genre de couches. Ces couches étaient constituées par des constructions très basses. Elles semblaient être en pierres, mais en m'y appuyant je m'aperçus qu'on s'y enfonçait mollement comme dans un lit ; elle était couverte d'une sorte de mousse et de lierres. Je m'aperçus que ces couches étaient distribuées deux à deux. À l'instant où je pensais m'étendre sur celle qui voisinait avec une couche que je pensais affectée à Dausse, je me rendis compte que le chevet de cette couche était déjà occupé par d'autres personnes. Nous quittâmes donc ces couches qui étaient des tombes et nous poursuivîmes notre chemin.
{{< figurelazy src="/img/181012-glitchbenjamin.gif" alt="Glitch de la photographie de Walter Benjamin" width="100%" >}}
{{< figurelazy src="/img/181012-glitchbenjamin.gif" alt="Glitch de la photographie de Walter Benjamin" width="50%" class="figure--centre" >}}
L'endroit ressemblait toujours à une forêt, mais il y avait dans la distribution des fûts et des branches quelque chose d'artificiel qui donnait à cette partie du décor une vague ressemblance avec une construction nautique. En longeant quelque poutre et en traversant quelques marches en bois, nous nous trouvâmes sur une sorte de pont de bateau minuscule, de petites terrasses en bois. C'était là que se trouvaient les femmes avec lesquelles Dausse vivait. Elles étaient trois ou quatre et me paraissaient d'une grande beauté. La première chose qui m'étonnait fut que Dausse ne me présenta pas. Cela ne me gêna pas plus que la découverte que je fis au moment de déposer mon chapeau sur un piano à queue. C'était un vieux chapeau de paille, un *panama* dont j'avais hérité de mon père. (Ce chapeau n'existe plus depuis longtemps.) Je fus frappé en m'en débarrassant, une large fente avait été appliquée dans la partie supérieure du chapeau. J'aperçus incidemment et sans m'en formaliser que les bords de cette fente présentaient des traces de couleur rouge.
......@@ -35,4 +35,4 @@ Une des dames qui étaient assises s'était entre-temps occupée de graphologie.
J'avais à peine prononcé ces mots qu'il se passa quelque chose d'intrigant. Je m'aperçus qu'il y avait une parmi les femmes, très belle également, qui était couchée dans un lit. En entendant mon explication, elle eut un mouvement bref comme un éclair. Elle écarta parcimonieusement et de façon toute subite la couverture qui l'abritait dans son lit. Ce n'était pas pour faire voir son corps, mais le dessin de son drap de lit qui devait offrir une imagerie analogue à celle que j'avais dû *écrire* il y a bien des années, pour en faire cadeau à Dausse. Je sus très bien que la dame faisait ce mouvement. Mais ce qui m'en informait, était une sorte de vision supplémentaire. Car quant aux yeux de mon corps, ils étaient ailleurs, et je ne distinguais nullement ce que pouvait offrir le drap de lit qui s'était si fugitivement ouvert pour moi.
{{< figurelazy src="/img/divers/microantilivre.gif" alt="Pliage du microantilivre" width="100%" >}}
{{< figurelazy src="/img/divers/microantilivre.gif" alt="Pliage du microantilivre" width="50%" class="figure--centre" >}}
......@@ -51,7 +51,7 @@ Mais Desbarreaux le cartésien répondrait à la Providence&nbsp;:
*À la faute à la photo à Nadar (aussi)*
<script src="interact.min.js"></script>
<script src="/js/interact.min.js"></script>
<script>
/* enable javascript to view a demo */
interact('.resize-drag')
......
......@@ -87,10 +87,12 @@ les propriétaires dominent, où la liberté semble si précaire, il faut faire
littéraire, offrir aux multiples dimensions du texte leur indépendance, pirater
les normes numériques pour instaurer une idée : l’autonomie créatrice.&nbsp;»
{{< figurehover src1="/img/181104-ascii-1.jpg" src2="/img/181104-ascii-2.jpg" alt="ASCII art" width="100%" >}}
{{< figurehover src1="/img/181104-ascii.jpg" src2="/img/181104-ascii-2.jpg" alt="ASCII art" width="100%" >}}
*De l’image cunéiforme aux rêves intersidéraux, le texte est abrupt.*
*(Toutes les dimensions de ce texte &mdash; versions audio, vidéo, dynamique, brute, antilivresque &mdash; se trouvent dans le domaine public volontaire sous la licence Creative Commons Zero, comme le précise notre politique de [partage](https://abrupt.ch/partage).</a>)*
{{< figurelazy src="/img/181104-cuneiforme.jpg" alt="Excav.txt cunéiforme" width="100%" >}}
*(Le Réseaü @ <a href="https://edhea.ch/" target="_blank">EDHEA</a>)*
......@@ -14,6 +14,34 @@ echo:
- "microantilivre"
- "Artaud"
- "graphique"
script: |
// Source inspiration : a pen by Milica, codepen.io/micikato/pen/PpaXMb
var hero = document.querySelector('.ombresmouvantes');
var text = hero.querySelector('.ombresmouvantes__texte');
var walk = 100; // px
function shadow(e) {
var width = hero.offsetWidth, height = hero.offsetHeight;
var x = e.offsetX, y = e.offsetY;
if (this !== e.target) {
x = x + e.target.offsetLeft;
y = y + e.target.offsetTop;
}
var xWalk = Math.round(x / width * walk - walk / 2);
var yWalk = Math.round(y / height * walk - walk / 2);
text.style.textShadow = '\n ' +
xWalk + 'px ' + yWalk + 'px 0 rgba(0,0,0,0.05),\n ' +
xWalk * -1 + 'px ' + yWalk + 'px 0 rgba(0,0,0,0.07),\n ' +
yWalk + 'px ' + xWalk * -1 + 'px 0 rgba(0,0,0,0.09),\n ' +
yWalk * -1 + 'px ' + xWalk + 'px 0 rgba(0,0,0,0.11)\n ';
}
hero.addEventListener('mousemove', shadow);
---
*La Nouvelle lettre sur moi-même a paru dans La Révolution Surréaliste, n°&nbsp;5, le 15 octobre 1925.*
......@@ -42,39 +70,3 @@ echo:
</div>
</div>
<script>
// Source inspiration : a pen by Milica, codepen.io/micikato/pen/PpaXMb
var hero = document.querySelector('.ombresmouvantes');
var text = hero.querySelector('.ombresmouvantes__texte');
var walk = 100; // px
function shadow(e) {var
width =
hero.offsetWidth,height = hero.offsetHeight;var
x =
e.offsetX,y = e.offsetY;
if (this !== e.target) {
x = x + e.target.offsetLeft;
y = y + e.target.offsetTop;
}
var xWalk = Math.round(x / width * walk - walk / 2);
var yWalk = Math.round(y / height * walk - walk / 2);
text.style.textShadow = '\n ' +
xWalk + 'px ' + yWalk + 'px 0 rgba(0,0,0,0.05),\n ' +
xWalk * -1 + 'px ' + yWalk + 'px 0 rgba(0,0,0,0.07),\n ' +
yWalk + 'px ' + xWalk * -1 + 'px 0 rgba(0,0,0,0.09),\n ' +
yWalk * -1 + 'px ' + xWalk + 'px 0 rgba(0,0,0,0.11)\n ';
}
hero.addEventListener('mousemove', shadow);
</script>
......@@ -28,13 +28,15 @@ Bien des gens aujourd'hui, émus par les horreurs de toute espèce que notre ép
La croyance contraire, si commune à la fin du XIXe siècle et jusqu'en 1914, c'est-à-dire la croyance en une diminution progressive de la barbarie dans l'humanité dite civilisée, n'est, me semble-il, pas moins erronée. Et l'illusion en pareille matière est dangereuse, car on ne cherche pas à conjurer ce qu'on croit être en voie d'extinction. L'acceptation de la guerre, en 1914, a été ainsi rendue bien plus aisée ; on ne croyait pas qu'elle pût être sauvage, faite par des hommes que l'on croyait exempts de sauvagerie. Comme les personnes qui répètent sans cesse qu'elles sont trop bonnes sont celles dont il faut attendre, à l'occasion, la plus froide et la plus tranquille cruauté, de même, lorsqu'un groupement humain se croit porteur de civilisation, cette croyance même le fera succomber à la première occasion qui pourra se présenter à lui d'agir en barbare. À cet égard, rien n'est plus dangereux que la foi en une race, en une nation, en une classe sociale, en un parti. Aujourd'hui, nous ne pouvons plus avoir dans le progrès la même confiance naïve qu'ont eue nos pères et nos grands-pères ; mais à la barbarie qui ensanglante le monde nous cherchons tous des causes hors du milieu où nous vivons, dans des groupements humains qui nous sont ou que nous affirmons nous être étrangers. Je voudrais proposer de considérer la barbarie comme un caractère permanent et universel de la nature humaine, qui se développe plus ou moins selon que les circonstances lui donnent plus ou moins de jeu.
{{< figurelazy src="/img/190903-weil-barbarie-1.jpg" alt="Simone Weil Glitch" width="70%" class="figure--centre" >}}
Une telle vue s'accorde parfaitement avec le matérialisme dont les marxistes se réclament ; mais elle ne s'accorde pas avec le marxisme lui-même, qui, dans sa foi messianique, croit qu'une certaine classe sociale est, par une sorte de prédestination, porteuse et unique porteuse de civilisation. Il a cru trouver dans la notion de classe la clef de l'histoire, mais il n'a jamais même commencé à utiliser effectivement cette clef ; aussi bien n'est-elle pas utilisable. Je ne crois pas que l'on puisse former des pensées claires sur les rapports humains tant qu'on n'aura pas mis au centre la notion de force, comme la notion de rapport est au centre des mathématiques. Mais la première a besoin, comme en a eu besoin la seconde, d'être élucidée. Ce n'est pas aisé.
Je proposerais volontiers ce postulat : on est toujours barbare envers les faibles. Ou du moins, pour ne pas nier tout pouvoir à la vertu, on pourrait affirmer que, sauf au prix d'un effort de générosité aussi rare que le génie, on est toujours barbare envers les faibles. Le plus ou moins de barbarie diffuse dans une société dépendrait ainsi de la distribution des forces. Cette vue, si on pouvait l'étudier assez sérieusement pour lui donner un contenu clair, permettrait au moins en principe de situer toute structure sociale, soit stable, soit passagère, dans une échelle de valeurs, à condition que l'on considère la barbarie comme un mal et son absence comme un bien. Cette restriction est nécessaire ; car il ne manque pas d'hommes qui, soit par une estime exclusive et aristocratique de la culture intellectuelle, soit par ambition, soit par une sorte d'idolâtrie de l'Histoire et d'un avenir rêvé, soit parce qu'ils confondent la fermeté d'âme avec l'insensibilité, soit, enfin, qu'ils manquent d'imagination, s'accommodent fort bien de la barbarie et la considèrent ou comme un détail indifférent ou comme un instrument utile. Ce n'est pas là mon cas ; ce n'est pas non plus, je suppose, le cas de ceux qui lisent cette revue.
{{< figurelazy src="/img/190903-weil-barbarie-2.jpg" alt="Simone Weil Glitch" width="50%" class="figure--centre" >}}
Pour entrevoir une telle relation entre la carte des forces dans un système social et le degré de la barbarie, il faut considérer cette dernière nation un peu autrement que ne le fait la foule. La sensibilité publique ne s'émeut...
{{< figurelazy src="/img/190903-weil-barbarie-2.jpg" alt="Simone Weil Glitch" width="70%" class="figure--centre" >}}
Hitler n'est pas un barbare, plût au ciel qu'il en fût un ! Les barbares, dans leurs ravages, n'ont jamais fait que des maux limités. Comme les calamités naturelles, en détruisant, ils réveillent l'esprit rappelé à l'insécurité des choses humaines ; leurs cruautés, leurs perfidies, mêlées d'actes de loyauté et de générosité, tempérées par l'inconstance et le caprice, ne mettent en péril rien de vital chez ceux qui survivent à leurs armes. Seul un État extrêmement civilisé, mais bassement civilisé, si l'on peut s'exprimer ainsi, comme fut Rome, peut amener chez ceux qu'il menace et chez ceux qu'il soumet cette décomposition morale qui non seulement brise d'avance tout espoir de résistance effective, mais rompt brutalement et définitivement la continuité dans la vie spirituelle, lui substituant une mauvaise imitation de médiocres vainqueurs. Car seul un État parvenu à un mode savant d'organisation peut paralyser chez ses adversaires la faculté même de réagir, par l'empire qu'exerce sur l'imagination un mécanisme impitoyable, que ni les faiblesses humaines ni les vertus humaines ne peuvent arrêter dès qu'il s'agit de saisir un avantage, et qui utilise indifféremment à cette fin le mensonge ou la vérité, le respect simulé ou le mépris avoué des conventions. Nous ne sommes pas en Europe dans la situation de civilisés qui luttent contre un barbare, mais dans la position bien plus difficile et plus périlleuse de pays indépendants menacés de colonisation ; et nous ne ferons pas utilement face à ce danger si nous n'inventons pas des méthodes qui y correspondent.
......@@ -23,6 +23,10 @@ Nous proposons ici une traduction d'Ann Persson, qui a pris le parti de respecte
Ce placard est disponible dans un format A3 recto-verso afin d'être <a href="https://txt.abrupt.ch/antilivre/placard_abrupt_heine_heinrich_tisserands_silesiens.pdf">lu, imprimé, placardé !</a> *Vorwärts!*
{{< figurehover src1="/img/190919-pauvres-tisserands-1.jpg" src2="/img/190919-pauvres-tisserands-2.jpg" alt="Pauvres tisserands" width="100%" >}}
&nbsp;<br>
<h1 class="glitch ligneblanche" data-text="Heinrich Heine">Heinrich Heine</h1>
<h1 class="glitch ligneblanche" data-text="Les tisserands tilésiens">Les tisserands silésiens</h1>
......
......@@ -54,7 +54,7 @@ Arthur, tu as bien fait de partir... mais nos paysages cybernétiques resteront
{{< figurelazy src="/img/191016-robot-rimbaud-4.jpg" alt="Arthur Rimbaud" width="40%" class="figure--centre" >}}
<script src="baffle.min.js"></script>
<script src="/js/baffle.min.js"></script>
<script>
const texte = [
"Aussitôt après que l'idée du Déluge se fut rassise.",
......
......@@ -23,6 +23,34 @@ echo:
- "glitch"
- "praxis"
- "hypermodernité"
script: |
// Source inspiration : a pen by Milica, codepen.io/micikato/pen/PpaXMb
var hero = document.querySelector('.ombresmouvantes');
var text = hero.querySelector('.ombresmouvantes__texte');
var walk = 100; // px
function shadow(e) {
var width = hero.offsetWidth, height = hero.offsetHeight;
var x = e.offsetX, y = e.offsetY;
if (this !== e.target) {
x = x + e.target.offsetLeft;
y = y + e.target.offsetTop;
}
var xWalk = Math.round(x / width * walk - walk / 2);
var yWalk = Math.round(y / height * walk - walk / 2);
text.style.textShadow = '\n ' +
xWalk + 'px ' + yWalk + 'px 0 rgba(0,0,0,0.05),\n ' +
xWalk * -1 + 'px ' + yWalk + 'px 0 rgba(0,0,0,0.07),\n ' +
yWalk + 'px ' + xWalk * -1 + 'px 0 rgba(0,0,0,0.09),\n ' +
yWalk * -1 + 'px ' + xWalk + 'px 0 rgba(0,0,0,0.11)\n ';
}
hero.addEventListener('mousemove', shadow);
---
[Anthropie](https://abrupt.ch/anthropie) hacke nos imaginaires et jette à nos cerveaux consumé(riste)s des rêves d'émeutes éclairées.
......@@ -68,6 +96,8 @@ insurrectionnelle.</p>
<p>Notre seul espoir de faire communauté, c’est le foisonnement, c’est la
vitesse, c’est le désordre.</p>
{{< figurelazy src="/img/191112-directement-dans-les-visages-3.gif" alt="La transdialectique" width="50%" class="figure--centre" >}}
<p>Il n’y a plus le temps pour l’académisme de la transgression. Dans le
cocon du faux libertinage intellectuel, seule l’injonction morale choque
encore, et tout est moral, parce que tout est à refaire, tout est
......@@ -78,8 +108,6 @@ dominants et d’inventer des contre-récits, de découdre les fils des
romans nationaux, de se réapproprier le <em>storytelling</em> comme instrument
de re-modélisation du monde, de partage et d’amour.</p>
{{< figurelazy src="/img/191112-directement-dans-les-visages-3.gif" alt="La transdialectique" width="50%" class="figure--centre" >}}
<p>Il faut une écriture moralisatrice, une écriture qui dise quoi faire,
même si elle se plante, au moins elle aura essayé, elle n’aura pas fait
semblant, elle aura voulu miner les tours d’ivoire.</p>
......@@ -95,6 +123,8 @@ machines et les esprits, déjouer l’hypervisibilité, rester dans l’ombre.
Il faut insérer cette puissance de déraillement dans la triade écran &ndash;
cerveau &ndash; logiciel.</p>
{{< figurehover src1="/img/191112-directement-dans-les-visages-1.jpg" src2="/img/191112-directement-dans-les-visages-2.jpg" alt="Directement dans les visages" width="100%" >}}
<p>Ce texte invoque les réseaux, il s'offre à tous·tes, et n'appartient à personne puisqu'il n'a pas de valeur. Il pourra toujours être réécrit, piraté et mis en téléchargement libre en d'obscurs endroits du cyberespace. Sa lecture n'est que transition, puisqu'il peut être transmis à tous·tes, en tous lieux, à tous instants. Et les conservateurices finiront par être dupé·e·s, puisque les réseaux que nous adorons dissimulent, derrière leur marchandisation fétichisée, une puissance séditieuse, celle de la multitude partageuse, dont nous nous faisons l'écho et qui transformera leurs cerveaux accapareurs en faisant d'elleux une ex-bourgeoisie révolutionnaire.</p>
<p>Insoumis·es à la forme, ensemble, nous composerons des langages autonomes et nouveaux qui triompheront et essaimeront le siècle en d'incessantes métamorphoses réticulaires.</p>
......@@ -104,39 +134,3 @@ cerveau &ndash; logiciel.</p>
</div>
</div>
<script>
// Source inspiration : a pen by Milica, codepen.io/micikato/pen/PpaXMb
var hero = document.querySelector('.ombresmouvantes');
var text = hero.querySelector('.ombresmouvantes__texte');
var walk = 100; // px
function shadow(e) {var
width =
hero.offsetWidth,height = hero.offsetHeight;var
x =
e.offsetX,y = e.offsetY;
if (this !== e.target) {
x = x + e.target.offsetLeft;
y = y + e.target.offsetTop;
}
var xWalk = Math.round(x / width * walk - walk / 2);
var yWalk = Math.round(y / height * walk - walk / 2);
text.style.textShadow = '\n ' +
xWalk + 'px ' + yWalk + 'px 0 rgba(0,0,0,0.05),\n ' +
xWalk * -1 + 'px ' + yWalk + 'px 0 rgba(0,0,0,0.07),\n ' +
yWalk + 'px ' + xWalk * -1 + 'px 0 rgba(0,0,0,0.09),\n ' +
yWalk * -1 + 'px ' + xWalk + 'px 0 rgba(0,0,0,0.11)\n ';
}
hero.addEventListener('mousemove', shadow);
</script>
......@@ -22,5 +22,54 @@
{{ end }}
</div>
</section>
<script src="/js/sortable.min.js"></script>
<script>
// Grid scripts
// Sortable for Grid
var container = document.querySelector('.grid');
var sortable = Sortable.create(container, {
animation: 500,
draggable: ".item",
fallbackTolerance: 3,
});
// Shuffle Grid
function shuffle() {
for (let i = container.children.length; i >= 0; i--) {
container.appendChild(container.children[Math.random() * i | 0]);
}
}
const shuffleBtn = document.querySelector('.btn--shuffle');
shuffleBtn.addEventListener('click', (e) => {
e.preventDefault();
shuffle();
shuffleBtn.animate([
{ transform: 'rotate(0)' },
{ transform: 'rotate(-90deg)' },
{ transform: 'rotate(0)' },
], {
duration: 300,
iterations: 1
});
container.animate([
{ transform: 'translate(0,0)' },
{ transform: 'translate(5px,0)' },
{ transform: 'translate(0,0)' },
{ transform: 'translate(5px,0)' },
{ transform: 'translate(0,0)' },
{ transform: 'translate(5px,0)' },
{ transform: 'translate(0,0)' },
{ transform: 'translate(5px,0)' },
{ transform: 'translate(0,0)' }
], {
duration: 300,
iterations: 1
});
});
</script>
{{ end }}
......@@ -14,5 +14,53 @@
{{ end }}
</div>
<script src="/js/sortable.min.js"></script>
<script>
// Grid scripts
// Sortable for Grid
var container = document.querySelector('.grid');
var sortable = Sortable.create(container, {
animation: 500,
draggable: ".item",
fallbackTolerance: 3,
});
// Shuffle Grid
function shuffle() {
for (let i = container.children.length; i >= 0; i--) {
container.appendChild(container.children[Math.random() * i | 0]);
}
}
const shuffleBtn = document.querySelector('.btn--shuffle');
shuffleBtn.addEventListener('click', (e) => {
e.preventDefault();
shuffle();
shuffleBtn.animate([
{ transform: 'rotate(0)' },
{ transform: 'rotate(-90deg)' },
{ transform: 'rotate(0)' },
], {
duration: 300,
iterations: 1
});
container.animate([
{ transform: 'translate(0,0)' },
{ transform: 'translate(5px,0)' },
{ transform: 'translate(0,0)' },
{ transform: 'translate(5px,0)' },
{ transform: 'translate(0,0)' },
{ transform: 'translate(5px,0)' },
{ transform: 'translate(0,0)' },
{ transform: 'translate(5px,0)' },
{ transform: 'translate(0,0)' }
], {
duration: 300,
iterations: 1
});
});
</script>
{{ end }}
......@@ -4,9 +4,8 @@
{{ $jquery := resources.Get "js/jquery.min.js" }}
{{ $fancybox := resources.Get "js/jquery.fancybox.min.js" }}
{{ $baffle := resources.Get "js/baffle.min.js" }}
{{ $sortable := resources.Get "js/sortable.min.js" }}
{{ $global := resources.Get "js/global.js" }}
{{ $js := slice $lazyload $jquery $fancybox $baffle $sortable $global | resources.Concat "js/bundle.js" | resources.Minify | resources.Fingerprint }}
{{ $js := slice $lazyload $jquery $fancybox $baffle $global | resources.Concat "js/bundle.js" | resources.Minify | resources.Fingerprint }}
<script async src="{{ $js.Permalink }}" integrity="{{ $js.Data.Integrity }}"></script>
{{ if .Params.library }}
......
......@@ -69,6 +69,7 @@ Header append Vary User-Agent
RewriteEngine on
# No hotlinking
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?cyberpoetique.org [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?transdialectique.org [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?abrupt.ch [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
......@@ -94,8 +95,8 @@ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# ENFORCE WWW
RewriteEngine On
RewriteCond %{HTTP_HOST} ^transdialectique\.org [NC]
RewriteRule ^(.*)$ https://www.transdialectique.org/$1 [L,R=301,NC]
RewriteCond %{HTTP_HOST} ^cyberpoetique\.org [NC]
RewriteRule ^(.*)$ https://www.cyberpoetique.org/$1 [L,R=301,NC]
# Hide git
RedirectMatch 404 /\.git
......
......@@ -12,7 +12,7 @@
<script type="text/javascript">
if (location.hostname.search("gitlab.io") != -1) { var path; if (location.pathname.lastIndexOf("/", 0) === 0) { path = location.pathname; } else { path = "/" + location.pathname; } location.href = "https:\/\/www.cyberpoetique.org" + path + location.search + location.hash; }
</script>
<link rel="stylesheet" href="https://www.cyberpoetique.org/css/style.7d7d98cfa4c6226e606ad127714a07dcc770047f8725c2af9ec078243add1282.css" integrity="sha256-fX2Yz6TGIm5gatEncUoH3MdwBH&#43;HJcKvnsB4JDrdEoI=">
<link rel="stylesheet" href="https://www.cyberpoetique.org/css/style.be194d07dc10d1283e414c3fc7c0d6f01451e5c3ed8d53da9f69e749c4521690.css" integrity="sha256-vhlNB9wQ0Sg&#43;QUw/x8DW8BRR5cPtjVPan2nnScRSFpA=">
<link rel="apple-touch-icon" sizes="180x180" href="https://www.cyberpoetique.org/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://www.cyberpoetique.org/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="https://www.cyberpoetique.org/favicon/favicon-16x16.png">
......@@ -22,7 +22,7 @@ if (location.hostname.search("gitlab.io") != -1) { var path; if (location.pathna
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-config" content="https://www.cyberpoetique.org/favicon/browserconfig.xml">
<meta name="theme-color" content="#ffffff">
<script type="text/javascript">var _paq = window._paq || []; _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="//www.abrupt.ch/u/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '2']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })();</script>
<script type="text/javascript"> var _paq = window._paq || []; _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="//www.abrupt.ch/u/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '3']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script>
<meta property="og:title" content="404 Page not found" />
<meta property="og:description" content="La cyberpoétique rêve sa révolte en dessous de nos mondes électriques. Elle chante l&#39;espace de ses métamorphoses, disperse ses échos parmi l&#39;abrüpt, désordonne ses passés, se met à la recherche de son devenir numérique. Elle silence, mais nous demeurons à son écoute." />
<meta property="og:type" content="website" />
......@@ -68,8 +68,7 @@ if (location.hostname.search("gitlab.io") != -1) { var path; if (location.pathna
<script async src="https://www.cyberpoetique.org/js/bundle.min.b4844ca5fafdd6d63999cc4241d0ccb1439d5489eb9c8eee8fbab0ddff7276b3.js" integrity="sha256-tIRMpfr91tY5mcxCQdDMsUOdVInrnI7uj7qw3f9ydrM="></script>
<script async src="https://www.cyberpoetique.org/js/bundle.min.1b67a4826308fe00d0d114d7497bfbcdbe56961441b7c96d303de2f884ecaac5.js" integrity="sha256-G2ekgmMI/gDQ0RTXSXv7zb5WlhRBt8ltMD3i&#43;ITsqsU="></script>
......
......@@ -12,7 +12,7 @@
<script type="text/javascript">
if (location.hostname.search("gitlab.io") != -1) { var path; if (location.pathname.lastIndexOf("/", 0) === 0) { path = location.pathname; } else { path = "/" + location.pathname; } location.href = "https:\/\/www.cyberpoetique.org" + path + location.search + location.hash; }
</script>
<link rel="stylesheet" href="https://www.cyberpoetique.org/css/style.7d7d98cfa4c6226e606ad127714a07dcc770047f8725c2af9ec078243add1282.css" integrity="sha256-fX2Yz6TGIm5gatEncUoH3MdwBH&#43;HJcKvnsB4JDrdEoI=">
<link rel="stylesheet" href="https://www.cyberpoetique.org/css/style.be194d07dc10d1283e414c3fc7c0d6f01451e5c3ed8d53da9f69e749c4521690.css" integrity="sha256-vhlNB9wQ0Sg&#43;QUw/x8DW8BRR5cPtjVPan2nnScRSFpA=">
<link rel="apple-touch-icon" sizes="180x180" href="https://www.cyberpoetique.org/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://www.cyberpoetique.org/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="https://www.cyberpoetique.org/favicon/favicon-16x16.png">
......@@ -22,7 +22,7 @@ if (location.hostname.search("gitlab.io") != -1) { var path; if (location.pathna
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-config" content="https://www.cyberpoetique.org/favicon/browserconfig.xml">
<meta name="theme-color" content="#ffffff">
<script type="text/javascript">var _paq = window._paq || []; _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="//www.abrupt.ch/u/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '2']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })();</script>
<script type="text/javascript"> var _paq = window._paq || []; _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="//www.abrupt.ch/u/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '3']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script>
<meta property="og:title" content="Agrégat d’Artaud" />
<meta property="og:description" content="C’est en ce moment pour moi une sale époque, toutes les époques d’ailleurs sont dégueulasses dans l’état où je suis. Vous n’imaginez pas à quel point je puis être privé d’idées. Je n’ai même pas les idées qui pourraient correspondre à ma chair, à mon état de bête physique, soumise aux choses et rejaillissant à la multiplicité de leurs contacts." />
<meta property="og:type" content="article" />
......@@ -63,28 +63,28 @@ if (location.hostname.search("gitlab.io") != -1) { var path; if (location.pathna
<div class="glitch-image">
<img class="lazy article__image"
data-src="https://www.cyberpoetique.org/img/190218-agregat-dartaud.jpg" alt="Agrégat d’Artaud"
data-sizes="(max-width: 80em) 100vw, 1000px"
data-srcset="https://www.cyberpoetique.org/img/190218-agregat-dartaud-small.jpg 300w,
https://www.cyberpoetique.org/img/190218-agregat-dartaud-medium.jpg 600w,
https://www.cyberpoetique.org/img/190218-agregat-dartaud-large.jpg 1200w,
https://www.cyberpoetique.org/img/190218-agregat-dartaud.jpg 2000w">
<img class="lazy article__image"
data-src="https://www.cyberpoetique.org/img/190218-agregat-dartaud.jpg" alt="Agrégat d’Artaud"
data-sizes="(max-width: 80em) 100vw, 1000px"
data-srcset="https://www.cyberpoetique.org/img/190218-agregat-dartaud-small.jpg 300w,
https://www.cyberpoetique.org/img/190218-agregat-dartaud-medium.jpg 600w,
https://www.cyberpoetique.org/img/190218-agregat-dartaud-large.jpg 1200w,
https://www.cyberpoetique.org/img/190218-agregat-dartaud.jpg 2000w">
<img class="lazy article__image"
data-src="https://www.cyberpoetique.org/img/190218-agregat-dartaud.jpg" alt="Agrégat d’Artaud"
data-sizes="(max-width: 80em) 100vw, 1000px"
data-srcset="https://www.cyberpoetique.org/img/190218-agregat-dartaud-small.jpg 300w,
https://www.cyberpoetique.org/img/190218-agregat-dartaud-medium.jpg 600w,
https://www.cyberpoetique.org/img/190218-agregat-dartaud-large.jpg 1200w,
https://www.cyberpoetique.org/img/190218-agregat-dartaud.jpg 2000w">
<div class="glitch-image">
<img class="lazy article__image"
data-src="https://www.cyberpoetique.org/img/190218-agregat-dartaud.jpg" alt="Agrégat d’Artaud"
data-sizes="(max-width: 80em) 100vw, 1000px"
data-srcset="https://www.cyberpoetique.org/img/190218-agregat-dartaud-small.jpg 300w,
https://www.cyberpoetique.org/img/190218-agregat-dartaud-medium.jpg 600w,
https://www.cyberpoetique.org/img/190218-agregat-dartaud-large.jpg 1200w,
https://www