sil-hostil https://planet.communia.org/ca ca Linkback module tagged alpha https://planet.communia.org/ca/content/linkback-module-tagged-alpha <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--blog--rss.html.twig * field--node--title--blog.html.twig x field--node--title.html.twig * field--node--blog.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/field--node--title.html.twig' --> <span>Linkback module tagged alpha</span> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-image--blog--rss.html.twig * field--node--field-image--blog.html.twig * field--node--field-image.html.twig * field--node--blog.html.twig * field--field-image.html.twig * field--image.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="image field field--node-field-image field--name-field-image field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'responsive_image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/responsive-image-formatter.html.twig' --> <a href="/sites/default/files/webmention-logo-380_0_0.png"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'responsive_image' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/responsive-image.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/image.html.twig' --> <img loading="eager" srcset="/sites/default/files/styles/max_325x325/public/webmention-logo-380_0_0.png?itok=WRUx7Pve 325w, /sites/default/files/styles/max_650x650/public/webmention-logo-380_0_0.png?itok=wJueH0N0 380w" sizes="(min-width: 1290px) 325px, (min-width: 851px) 25vw, (min-width: 560px) 50vw, 100vw" width="325" height="325" src="/sites/default/files/styles/max_325x325/public/webmention-logo-380_0_0.png?itok=WRUx7Pve" alt="" /> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/responsive-image.html.twig' --> </a> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/responsive-image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--blog--rss.html.twig * field--node--uid--blog.html.twig x field--node--uid.html.twig * field--node--blog.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/field--node--uid.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'themes/custom/planet_foundated/templates/username.html.twig' --> <a href="/user/1" class="visually-hidden p-author h-card" rel="author" title="kinta">kinta <img src="" alt="kinta" /> </a> <a title="View user profile." href="/ca/users/kinta">kinta</a> <!-- END OUTPUT from 'themes/custom/planet_foundated/templates/username.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--blog--rss.html.twig * field--node--created--blog.html.twig x field--node--created.html.twig * field--node--blog.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/field--node--created.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'time' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/time.html.twig' --> <time datetime="2017-12-04T15:48:52+01:00" title="Monday, December 4, 2017 - 15:48">Mon, 12/04/2017 - 15:48</time> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/time.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--blog--rss.html.twig * field--node--body--blog.html.twig * field--node--body.html.twig * field--node--blog.html.twig * field--body.html.twig * field--text-with-summary.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="body field field--node-body field--name-body field--type-text-with-summary field--label-hidden field__item"><p>The <a href="https://www.drupal.org/project/linkback">Linkback module</a>(<a href="https://planet.communia.org/content/manual-de-linkback-drupal-8">background information</a>) for Drupal 8 has been tagged alpha today!  here a good intro about it written by <a href="http://hongpong.com/">HongPong</a>. We've done a lot of work to get there!</p> <blockquote> <p>Note for alpha1 release:</p> <p>We are proud to bring you the first alpha release of <strong>Linkback</strong>, an interesting suite of modules which can help integrate your website with the wider internet. Linkback provides the backend functionality to save both outgoing and incoming pings and webmentions involving remote sites.</p> <p>This first release focuses on a robust, spam resistant and fault tolerant approach to processing and storing Linkbacks as Drupal entities, which provides a standardized and efficient storage structure that can be easily queried and extended. (Anyone interested in improving the theming is invited to file an issue or share code with us :) More information about the functions in the Linkback suite is in Developer.md and the Readme.md files inside each child module.</p> <p>linkback_pingback creates the appropriate endpoints on your site to receive pingbacks from other sites (that is, someone on a WordPress site includes a link to your site and attempts to send a pingback; linkback_pingback receives the ping, scans the originating site URL to see if it a really existing anchor there, and if so, then it saves a new Linkback with the pingback handler attached to it.</p> <p>linkback_webmention provides much the same functionality for your site to send and receive Webmentions. (see other <a href="https://webmention.net/implementations/" rel="nofollow">Webmention implementations</a> - this module should interoperate with them). Services such as <a href="https://brid.gy/" rel="nofollow">brid.gy</a> can help connect proprietary content silos like Facebook and Twitter to your webmentions.</p> <p>Linkback has been cleverly structured to apply the best of Drupal 8 and Symfony architecture while reapplying many of the ideas from its predecessor <a href="https://drupal.org/project/vinculum" rel="nofollow">Vinculum</a> which provided similar services in Drupal 7. It should be feasible to extend Linkback to store other similar types of entities as records of intra-site communication.</p> <p>Thank you for trying Linkback - it is a product of several years of effort including bringing "<a href="https://indieweb.org/" rel="nofollow">indieweb</a>" principles and specifications into Drupal.</p> </blockquote></div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--blog--rss.html.twig * field--node--field-tags--blog.html.twig * field--node--field-tags.html.twig * field--node--blog.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="field field--node-field-tags field--name-field-tags field--type-entity-reference field--label-inline clearfix"> <div class="field-label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/en/etiquetes/sil-hostil" hreflang="en">sil-hostil</a></div> <div class="field__item"><a href="/ca/etiquetes/webmentions" hreflang="ca">webmentions</a></div> <div class="field__item"><a href="/ca/etiquetes/linkback" hreflang="ca">linkback</a></div> <div class="field__item"><a href="/ca/etiquetes/semantica" hreflang="ca">semantica</a></div> <div class="field__item"><a href="/ca/etiquetes/rdf" hreflang="ca">rdf</a></div> <div class="field__item"><a href="/ca/etiquetes/microformats2" hreflang="ca">microformats2</a></div> <div class="field__item"><a href="/en/etiquetes/pingbacks" hreflang="en">pingbacks</a></div> <div class="field__item"><a href="/ca/etiquetes/drupal-8" hreflang="ca">Drupal 8</a></div> <div class="field__item"><a href="/ca/etiquetes/drupal" hreflang="ca">Drupal</a></div> </div> </div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'links__node' --> <!-- FILE NAME SUGGESTIONS: * links--node.html.twig * links--node.html.twig x links.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/planet_foundated/templates/links.html.twig' --> <!-- END OUTPUT from 'themes/custom/planet_foundated/templates/links.html.twig' --> Mon, 04 Dec 2017 14:48:52 +0000 kinta 6374 at https://planet.communia.org https://planet.communia.org/ca/content/linkback-module-tagged-alpha#comments Recuperant webmentions https://planet.communia.org/ca/content/recuperant-webmentions <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--blog--rss.html.twig * field--node--title--blog.html.twig x field--node--title.html.twig * field--node--blog.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/field--node--title.html.twig' --> <span>Recuperant webmentions</span> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-image--blog--rss.html.twig * field--node--field-image--blog.html.twig * field--node--field-image.html.twig * field--node--blog.html.twig * field--field-image.html.twig * field--image.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="image field field--node-field-image field--name-field-image field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'responsive_image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/responsive-image-formatter.html.twig' --> <a href="/sites/default/files/planet.png"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'responsive_image' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/responsive-image.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/image.html.twig' --> <img loading="eager" srcset="/sites/default/files/styles/max_325x325/public/planet.png?itok=WlfB-ANz 325w, /sites/default/files/styles/max_650x650/public/planet.png?itok=747KkjPA 650w, /sites/default/files/styles/max_1300x1300/public/planet.png?itok=RNBsppS- 843w" sizes="(min-width: 1290px) 325px, (min-width: 851px) 25vw, (min-width: 560px) 50vw, 100vw" width="325" height="293" src="/sites/default/files/styles/max_325x325/public/planet.png?itok=WlfB-ANz" alt="" /> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/responsive-image.html.twig' --> </a> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/responsive-image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--blog--rss.html.twig * field--node--uid--blog.html.twig x field--node--uid.html.twig * field--node--blog.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/field--node--uid.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'themes/custom/planet_foundated/templates/username.html.twig' --> <a href="/user/1" class="visually-hidden p-author h-card" rel="author" title="kinta">kinta <img src="" alt="kinta" /> </a> <a title="View user profile." href="/ca/users/kinta">kinta</a> <!-- END OUTPUT from 'themes/custom/planet_foundated/templates/username.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--blog--rss.html.twig * field--node--created--blog.html.twig x field--node--created.html.twig * field--node--blog.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/field--node--created.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'time' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/time.html.twig' --> <time datetime="2017-05-02T01:00:00+02:00" title="Tuesday, May 2, 2017 - 01:00">Tue, 05/02/2017 - 01:00</time> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/time.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--blog--rss.html.twig * field--node--body--blog.html.twig * field--node--body.html.twig * field--node--blog.html.twig * field--body.html.twig * field--text-with-summary.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="body field field--node-body field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Finalment he decidit fer un pas enrere quan a la utilització de gnusocial com a motor de comentaris, crec que en el cas del planet de communia i el seu entorn afegia complexitat per poder comentar de manera ràpida.</p> <p>Però la voluntat que planet.communia.org segueixi sent un node dins de la blogosfera, entenent aquesta com a xarxa distribuïda, continua. I per fer possible que hi hagi una interacció des de l'espai sobirà de cada un dels autors,<a href="https://planet.communia.org/ca/content/cap-una-lliure-distribucio-de-converses"> he tornat a donar-li voltes a les webmentions</a>. </p> <p>A més, la recuperació de la implementació de webmentions a aquest blog, ha coincidit amb que des del 12 de gener de 2017, s'ha convertit amb una <a href="https://www.w3.org/TR/webmention/">recomenació de la W3C</a>, cosa que ha augmentat la contribucions al mòdul <a href="https://www.drupal.org/project/linkback">linkback de drupal</a>. M'he animat de nou per dedicar-hi temps al desenvolupament i ha culminat amb la publicació d'una versió de "dev". Pel que fa al <a href="https://github.com/pfefferle/wordpress-webmention">plugin de wordpress</a>, tot i no fer-lo servir,  també hi ha hagut un salt i n'han millorat l'estabilitat. No m'atreveixo a augurar cap futur, però crec que és un bon camí a seguir pels blogs que es resisteixin a les centralitats i acumulacions de informació/poder, ja que fàcilment tens un site amb converses federades.</p> <p>La millora del codi, s'ha vist acompanyada amb la incorporació d'alguna de les feature requests que més desitjava, la semantització dels enllaços. Crec que és el que significa un salt qualitatiu respecte als pingbacks. Amb la combinació de <a href="http://microformats.org/wiki/microformats2">microformats(2)</a>  i realitzant webmentions, podem habilitar de manera senzilla la conversa enriquida i federada, sense passar per especificacions complexes ni API's massa especifiques. De moment és possible fer likes, favs, rsvp's, bookmarks, tags, repost...</p> <p>Per posar un exemple senzill,  si posem el link amb la classe 'u-in-reply-to', des del meu site sabré que m'has contestat un post :</p> <pre> &lt;a class="u-in-reply-to" href="planet.communia.org/content/awesomeblogentry"&gt;Answering communia&lt;/a&gt;</pre><p><s>En breu crearé </s>documentació més extensa per habilitar-ho en llocs drupal 8 amb el mòdul linkback<s> i l'enllaçaré aquí.</s> -&gt; Documentació dedicada a linkbacks i drupal: <a href="https://planet.communia.org/content/manual-de-linkback-drupal-8">https://planet.communia.org/content/manual-de-linkback-drupal-8</a> .</p> <p>A més a més amb la feina de <a href="http://indieweb.org/">indiewebcamp</a> hi ha disponible una estratègia per incorporar els sils a la conversa per permetre que els que han delegat la seva identitat a tercers puguin interactuar amb el nostre site, amb l'eina <a href="https://brid.gy/">brid.gy</a> podrem incorporar twitter, facebook, medium, instagram, gplus... </p> <p>El que vingui a partir d'ara és a les nostres mans i es poden obrir ontologies rdf o mf2 concretes per parlar entre sites: Per exemple es pot afegir invitacions als events, fer fluxes de converses, donar feedback entre dipòsits d'enllaços i blogs... Un altre camí també seria  afegir <a href="https://www.w3.org/community/ostatus/">ostatus</a> tal com estan <a href="https://lasindias.blog/experimentando-con-lamatriz">provant altres nodes</a>.</p> <p>Ara, sense masses complicacions i sense artefactes que impliquen massa desenvolupament, podem federar de nou les converses. Si més no això motiva per poder recuperar la constància perduda.</p> <p> </p> <p>PS: Com sempre els desenvolupaments nous requereixen una fase de proves i pot ser que els errors 500 siguin freqüents al principi. </p> <p>PS2: Hi ha un resum de com s'ha fet la implementació en drupal 8 a <a href="https://planet.communia.org/content/manual-de-linkback-drupal-8">https://planet.communia.org/content/manual-de-linkback-drupal-8</a> .</p> <p> </p> <p> </p> <p> </p> </div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--blog--rss.html.twig * field--node--field-tags--blog.html.twig * field--node--field-tags.html.twig * field--node--blog.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="field field--node-field-tags field--name-field-tags field--type-entity-reference field--label-inline clearfix"> <div class="field-label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/ca/etiquetes/planet" hreflang="ca">planet</a></div> <div class="field__item"><a href="/ca/etiquetes/conversa-federada" hreflang="ca">conversa federada</a></div> <div class="field__item"><a href="/en/etiquetes/pingbacks" hreflang="en">pingbacks</a></div> <div class="field__item"><a href="/ca/etiquetes/linkbacks" hreflang="ca">linkbacks</a></div> <div class="field__item"><a href="/en/etiquetes/sil-hostil" hreflang="en">sil-hostil</a></div> <div class="field__item"><a href="/ca/etiquetes/webmentions" hreflang="ca">webmentions</a></div> </div> </div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'links__node' --> <!-- FILE NAME SUGGESTIONS: * links--node.html.twig * links--node.html.twig x links.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/planet_foundated/templates/links.html.twig' --> <!-- END OUTPUT from 'themes/custom/planet_foundated/templates/links.html.twig' --> Mon, 01 May 2017 23:00:00 +0000 kinta 125 at https://planet.communia.org https://planet.communia.org/ca/content/recuperant-webmentions#comments Manual de Linkback per drupal 8 https://planet.communia.org/ca/content/manual-de-linkback-drupal-8 <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--blog--rss.html.twig * field--node--title--blog.html.twig x field--node--title.html.twig * field--node--blog.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/field--node--title.html.twig' --> <span>Manual de Linkback per drupal 8</span> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-image--blog--rss.html.twig * field--node--field-image--blog.html.twig * field--node--field-image.html.twig * field--node--blog.html.twig * field--field-image.html.twig * field--image.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="image field field--node-field-image field--name-field-image field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'responsive_image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/responsive-image-formatter.html.twig' --> <a href="/sites/default/files/webmention-logo-380_0.png"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'responsive_image' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/responsive-image.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/image.html.twig' --> <img loading="eager" srcset="/sites/default/files/styles/max_325x325/public/webmention-logo-380_0.png?itok=qBkStNvE 325w, /sites/default/files/styles/max_650x650/public/webmention-logo-380_0.png?itok=SU0ngvBJ 380w" sizes="(min-width: 1290px) 325px, (min-width: 851px) 25vw, (min-width: 560px) 50vw, 100vw" width="325" height="325" src="/sites/default/files/styles/max_325x325/public/webmention-logo-380_0.png?itok=qBkStNvE" alt="" title="webmentions" /> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/responsive-image.html.twig' --> </a> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/responsive-image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--blog--rss.html.twig * field--node--uid--blog.html.twig x field--node--uid.html.twig * field--node--blog.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/field--node--uid.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'themes/custom/planet_foundated/templates/username.html.twig' --> <a href="/user/1" class="visually-hidden p-author h-card" rel="author" title="kinta">kinta <img src="" alt="kinta" /> </a> <a title="View user profile." href="/ca/users/kinta">kinta</a> <!-- END OUTPUT from 'themes/custom/planet_foundated/templates/username.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--blog--rss.html.twig * field--node--created--blog.html.twig x field--node--created.html.twig * field--node--blog.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/field--node--created.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'time' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/time.html.twig' --> <time datetime="2017-05-02T00:33:32+02:00" title="Tuesday, May 2, 2017 - 00:33">Tue, 05/02/2017 - 00:33</time> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/time.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--blog--rss.html.twig * field--node--body--blog.html.twig * field--node--body.html.twig * field--node--blog.html.twig * field--body.html.twig * field--text-with-summary.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="body field field--node-body field--name-body field--type-text-with-summary field--label-hidden field__item"><p><strong>¡¡Aquesta entrada té un contingut amb llenguatge tècnic, sobre com instal·lar i desenvolupar un blog federable-federat dins la blogosfera</strong>!!</p> <h2>Instal·lació i configuració</h2> <p>Avís: el mòdul <a href="https://www.drupal.org/project/linkback">linkback</a> està en desenvolupament, i tot i que hi ha una versió en dev, que sigui en dev significa que to el que explico a continuació és susceptible a canvis.</p> <p>Descarrega el módul de linkbacks i activa linkback_pingback i linkback webmention. El mòdul linkback s'activarà com a dependència. Com que té dependències d'algunes llibreries via composer, s'haurà de modificar el composer.json de l'arrel, això s'haurà de fer cada cop que s'actualitzi el core:</p> <ul><li> <p>Activar el repo de github per la lib de microformats/test , dependència de mf2:</p> <ul><li> <pre> composer config repositories.1 vcs https://github.com/microformats/tests</pre></li> </ul></li> <li> <p>Activar la llibreria de mf2:</p> <ul><li> <pre> composer require mf2/mf2:dev-master</pre></li> </ul></li> <li> <p>Activar el client de webmention :</p> <ul><li> <pre> composer require indieweb/mention-client:dev-master</pre></li> </ul></li> <li> <p>Afegim el camp linkbacks al tipus de contingut que vulguem (de moment només es pot associar a entitats de tipus node [contingut]). Amb això ja tindrem la base.</p> </li> <li> <p>Hi han poques coses a configurar: si vols processar els linkbacks rebuts o enviats via cron o manualment, per llocs en producció més val confiar en el cron. Arribats a aquest punt quan rebem pingbacks/webmentions la nostra web ho porcessarà.</p> </li> <li> <p>Tot i això podem treure més suc de les relacions de web a web i dotar d'una semàntica bàsica el nostre site, podem triar microformats2 o rdf. Tot i que amb RDF podrem construir descripcions més acurades, com a punt de partida i tenint en compte que volem tenir un blog pel segle XXI amb microformats ja en tindrem prou. En una propera entrada de blog ja especificaré com es podria fer per dotar de descriptors rdf el nostre site i adaptar el mòdul linkbacks per tal que processi rdf's més complexes.</p> </li> </ul><h2>Oferta microformats2</h2> <p>Pel que fa al processament de microformats2 el mòdul linkbacks ja té tot el que ha de tenir, fa servir la <a href="https://packagist.org/packages/mf2/mf2">llibreria mf2</a>. El que no tindrem preparat és l'oferta de microformats al nostre lloc web. Per fer-ho haurem de modificar una mica el tema que haguem escollit pel nostre drupal. En el nostre cas fem servir un subtema de <a href="http://foundation.zurb.com/">foundation 6</a>, però es pot aplicar al que vulguem. Hi han dos entitats que necessiten ser modificades:</p> <ul><li> <p>El tipus de contingut que fem servir per crear entrades de blog. Normalment article o blog_entry.</p> </li> <li> <p>L'usuari. Això es configura al directori themes/nomdeltema/nomdeltema.theme i s'afegeixen les plantilles pertinents al directori themes/nomdeltema/templates/.</p> </li> </ul><h3>Theming del tipus de contingut</h3> <p>Hi han algunes aplicacions globals: e-content pel que fa a body i p-name pel que fa a títols. Així doncs en tots els camps on s'utilitzi aquests camps afegirem la classe corresponent. Al fitxer nomdeltema.theme:</p> <pre> /** * Implements template_preprocess_field(). */ function planet_founding_preprocess_field(&amp;$variables) { $element = $variables['element']; switch($element['#field_name']){ case 'body': $apply_mf = "e-content"; break; case 'title': $apply_mf = "p-name"; break; } if (!empty($apply_mf)){ $variables['attributes']['class'][] = $apply_mf; $variables['items'][0]['content']['#options']['attributes']['class'][] = $apply_mf; } }</pre><p>Un cop fet això podem modificar les plantilles per tal que s'afegeixin algunes classes i per adaptar l'estructura del DOM. A node.html.twig:</p> <pre> /** * El tag de html 'article' es descriu com a: h-entry. * * @todo Remove the id attribute (or make it a class), because if that gets * rendered twice on a page this is invalid CSS for example: two lists * in different view modes. * * @ingroup themeable */ #} {# !MF2 Afegim la descripció de h-entry a l'etiquta article #} &lt;article id="node-{{ node.id }}" {{ attributes.addClass('h-entry') }} &gt; {# !MF2 Afegim el link a la url del node amb text buit i la propietat u-url #} &lt;a class="u-url" href="{{ url }}"&gt;&lt;/a&gt; {{ title_prefix }} {% if teaser %} {# !MF2 En cas de teaser afegir la propietat p-name al títol#} &lt;h1{{ title_attributes.addClass('teaser').addClass('p-name') }}&gt; &lt;a href="{{ url }}" rel="bookmark"&gt;{{ label }}&lt;/a&gt; &lt;/h1&gt; {% elseif not page %} &lt;h2{{ title_attributes }}&gt; {# !MF2 En cas que no sigui teaser i tampoc pàgina completa afegir la propietat p-name al títol #} &lt;a href="{{ url }}" rel="bookmark" class="p-name" &gt;{{ label }}&lt;/a&gt; &lt;/h2&gt; {% elseif page %} {# !MF2 En cas que sigui pàgina completa afegir la propietat p-name al títol #} &lt;span class="hidden p-name"&gt;{{ label }}&lt;/span&gt; {% endif %} {{ title_suffix }} {% if display_submitted %} &lt;small&gt; &lt;p&gt; &lt;div class="posted row"&gt; &lt;div class="columns shrink align-self-middle"&gt; &lt;div class="float-left"&gt; {{ author_picture }} &lt;/div&gt; &lt;div{{ author_attributes.addClass('float-left').addClass('submitted') }}&gt; {# !MF2 Afegim la propietat de data del post dt-published #} {% trans %}Submitted by {{ author_name }} on &lt;time class="dt-published"&gt;{{ date }}&lt;/time&gt;{% endtrans %} {{ metadata }} &lt;/div&gt; {% if content.field_tags|length &gt; 2 and not is_front %} &lt;div class="tags fi-pricetag-multiple"&gt; {{ content.field_tags }} &lt;/div&gt; {% endif %} &lt;/div&gt; &lt;/div&gt; &lt;/p&gt; &lt;/small&gt; {% endif %} {# We hide the comments and links now so that we can render them later. #} &lt;div{{ content_attributes }}&gt; {# En cas que fem servir un tipus de comentari diferent per cada tipus de contingut , Amaguem els comentaris associats al tipus de contingut per poder-lo mostrar després #} {{ content|without('comment','comment_node_blog', 'links', 'field_tags') }} &lt;/div&gt; {{ content.links }} {{ content.comment }} &lt;/article&gt; &lt;hr class="superspace"&gt; </pre><h3>Theming de l'usuari</h3> <p>Pel que fa a l'usuari s'ha d'afegir microformats a l'username insertat a dins el tipus de contingut(modificant la plantilla username), i també a la pròpia pàgina de l'usuari(full). A la pàgina pròpia de l'usuari també afegirem la variable view_mode per tal de poder treure etiquetes només en cas que es mostri l'usuari amb el display 'full'.</p> <p>Haurem d'afegir les propietats de l'usuari:</p> <p>- url</p> <p>- nom d'usuari</p> <p>- thumbnail</p> <p>Amb una estructura(especificada a <a href="http://microformats.org/wiki/microformats-2">http://microformats.org/wiki/microformats-2</a>) similar a: <a href="http://microformats.org/wiki/microformats-2">http://microformats.org/wiki/microformats-2</a> :</p> <pre> &lt;a class="h-card" href="http://url_de_l_usuari"&gt; &lt;img alt="nom de l'autor" src="urldelaimatge.jpg" /&gt; &lt;/a&gt;</pre><p>Pel que fa a <b>thumbnail</b> afegirem la variable userthumb als dos llocs per disposar de la url a la imatge de l'avatar sencera, tant des del node com des de l'usuari. A nomdeltema.theme:</p> <pre> /** * Implements template_preprocess_username(). */ function planet_founding_preprocess_username(&amp;$variables){ if (!$variables['account']-&gt;user_picture-&gt;isEmpty()) { $fid = $variables['account']-&gt;user_picture-&gt;first()-&gt;target_id; $file = \Drupal\file\Entity\File::load($fid); $variables['user_thumb'] = file_create_url($file-&gt;getFileUri()); } } /** * Implements template_preprocess_user * * Add template suggestions and classes */ function planet_founding_preprocess_user(&amp;$variables) { if (!$variables['user']-&gt;user_picture-&gt;isEmpty()) { $variables['user_thumb'] = file_create_url($variables['user']-&gt;user_picture-&gt;entity-&gt;getFileUri()); } $variables['view_mode'] = $variables['elements']['#view_mode']; }</pre><p>Pel que fa a l'estructura del <b>dom username</b> dins cada entrada de blog es mostrarà amb la plantilla username.html.twig:</p> <pre> {# /** * @file * Theme override for displaying a username. * * Available variables: * - account: The full account information for the user. * - name: The user's name, sanitized. * - extra: Additional text to append to the user's name, sanitized. * - link_path: The path or URL of the user's profile page, home page, * or other desired page to link to for more information about the user. * - link_options: Options to set on the \Drupal\Core\Url object if linking the * user's name to the user's page. * - attributes: HTML attributes for the containing element. * * @see template_preprocess_username() * - user_thumb: the thumbnail */ #} {% if link_path -%} &lt;a href="/{{ link_path }}" class="visually-hidden p-author h-card" rel="author" title="{{ name }}"&gt;{{ name }} &lt;img src="{{ user_thumb }}" alt="{{ name }}" /&gt; &lt;/a&gt; &lt;a{{ attributes }}&gt;{{ name }}{{ extra }}&lt;/a&gt; {%- else -%} &lt;span{{ attributes }}&gt;{{ name }}{{ extra }}&lt;/span&gt; {%- endif -%} </pre><p>Pel que fa al display de <b>l'usuari sencer</b> modificarem la plantilla user.html.twig afegirem una estructura similar a:</p> <pre> + * + * - view_mode: the rendered view mode string. */ #} -&lt;article{{ attributes }}&gt; +&lt;article{{ attributes.addClass('h-card') }}&gt; +{% if view_mode == "full" %} + &lt;a class="visually-hidden p-name u-url" href="user/{{ user.uid.value }}" rel="me" title=&gt;{{ user.name.value }}&lt;/a&gt; + &lt;img class="hidden u-photo" src="{{ user_thumb }}" /&gt; +{% endif %}</pre><p>  </p> <h3>Dotar de semàntica els links que afegim al cos de l'entrada de blog</h3> <p>Per tal de poder afegir semàntica als links que afegim via l'editor de text enriquit podem instal·lar el mòdul <a href="https://www.drupal.org/sandbox/kinta/2865999">editorsemanticlink</a> que ens permetrà dotar de semàntica a cada link a que afegim via l'editor ckeditor. (Configurar correctament a admin/config/content/formats/manage/basichtml o admin/config/content/formats/manage/fullhtml afegint atributs class i rel a l'etiqueta a) Amb això ja podrem afegir links semàntics al cos de text de les entrades de blog.</p> <h2>Consum de linkbacks</h2> <p>Cada cop que rebem un linkback s’anirà al lloc d’origen i s’intentarà fer un parsing de la metainformació del lloc que ens menciona, si té microformats2 o RDF crearà un array json que s’emmagatzemarà al camp metainfo del linkback. Si volem utilitzar aquesta metainformació (per exemple per fer llistats de linkbacks filtrables o agrupables), hauriem de mapejar camps del json a camps del linkback.</p> <p>Per fer-ho haurem d’anar a admin/structure/linkback/manage i afegir els camps que vulguem. El mapejarem anant a l’edició del field, i al camp de text afegirem la proietat de l’array json: per exemple si creem el camp autor, al mapeig hi posarem «author/name» per agafar la propietat:</p> <pre> { «autor» : {«name» : «alison»}, «url»: «http://myurl» }</pre><p>Si es vol agafar la propietat url, simplement es posa «url»</p> <p>Cada cop que es guardi processarà el mapeig i assignarà el valor.</p> <p>Pel mapeig hi ha més informació a: <a href="https://www.drupal.org/docs/8/modules/linkback/metainfo-mappinghttps://www.drupal.org/docs/8/modules/linkback/metainfo-mappinghttps://www.drupal.org/docs/8/modules/linkback/metainfo-mapping">https://www.drupal.org/docs/8/modules/linkback/metainfo-mapping</a></p> <h3>Mostrar linkbacks</h3> <p>Un cop fet això ja podrem rebre i enviar linkbacks semàntics i quedarà mostrar a cada entrada de blog un comptador i el llistat de comentaris.</p> <p>Per tenir-ho podem utilitzar <a href="https://www.drupal.org/sandbox/kinta/2873693">el módul Linkback semantic</a>. Que crea el camp semantic_type a l’entitat linkback i instal·la un bloc.</p> <p>Aquest es pot configurar perquè només es mostri als tipus de contingut que ens interessi i farà que quan rebem linkbacks i aquests siguin categoritzables semànticament, es pugui veure un comptador per tipus i un llistat de comentaris agrupats per tipus.</p> <p>També disposa d'una plantilla per tal de poder fer el theming corresponent. Si no convenç la llista de comentaris, es pot fer amb views.</p> </div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--blog--rss.html.twig * field--node--field-tags--blog.html.twig * field--node--field-tags.html.twig * field--node--blog.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="field field--node-field-tags field--name-field-tags field--type-entity-reference field--label-inline clearfix"> <div class="field-label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/en/etiquetes/sil-hostil" hreflang="en">sil-hostil</a></div> <div class="field__item"><a href="/ca/etiquetes/webmentions" hreflang="ca">webmentions</a></div> <div class="field__item"><a href="/ca/etiquetes/linkback" hreflang="ca">linkback</a></div> <div class="field__item"><a href="/ca/etiquetes/semantica" hreflang="ca">semantica</a></div> <div class="field__item"><a href="/ca/etiquetes/rdf" hreflang="ca">rdf</a></div> <div class="field__item"><a href="/ca/etiquetes/microformats2" hreflang="ca">microformats2</a></div> <div class="field__item"><a href="/en/etiquetes/pingbacks" hreflang="en">pingbacks</a></div> <div class="field__item"><a href="/ca/etiquetes/drupal-8" hreflang="ca">Drupal 8</a></div> <div class="field__item"><a href="/ca/etiquetes/drupal" hreflang="ca">Drupal</a></div> </div> </div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'links__node' --> <!-- FILE NAME SUGGESTIONS: * links--node.html.twig * links--node.html.twig x links.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/planet_foundated/templates/links.html.twig' --> <!-- END OUTPUT from 'themes/custom/planet_foundated/templates/links.html.twig' --> Mon, 01 May 2017 22:33:32 +0000 kinta 126 at https://planet.communia.org https://planet.communia.org/ca/content/manual-de-linkback-drupal-8#comments Cap a una lliure distribució de converses https://planet.communia.org/ca/content/cap-una-lliure-distribucio-de-converses <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--blog--rss.html.twig * field--node--title--blog.html.twig x field--node--title.html.twig * field--node--blog.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/field--node--title.html.twig' --> <span>Cap a una lliure distribució de converses</span> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-image--blog--rss.html.twig * field--node--field-image--blog.html.twig * field--node--field-image.html.twig * field--node--blog.html.twig * field--field-image.html.twig * field--image.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="image field field--node-field-image field--name-field-image field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'responsive_image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/responsive-image-formatter.html.twig' --> <a href="/sites/default/files/davenport_ia_grain_elevator_blast_1975.jpg"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'responsive_image' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/responsive-image.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/image.html.twig' --> <img loading="eager" srcset="/sites/default/files/styles/max_325x325/public/davenport_ia_grain_elevator_blast_1975.jpg?itok=BJr5QIIM 325w, /sites/default/files/styles/max_650x650/public/davenport_ia_grain_elevator_blast_1975.jpg?itok=3WgPL3D8 650w, /sites/default/files/styles/max_1300x1300/public/davenport_ia_grain_elevator_blast_1975.jpg?itok=uW0P2q9C 757w" sizes="(min-width: 1290px) 325px, (min-width: 851px) 25vw, (min-width: 560px) 50vw, 100vw" width="325" height="258" src="/sites/default/files/styles/max_325x325/public/davenport_ia_grain_elevator_blast_1975.jpg?itok=BJr5QIIM" /> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/responsive-image.html.twig' --> </a> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/responsive-image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--blog--rss.html.twig * field--node--uid--blog.html.twig x field--node--uid.html.twig * field--node--blog.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/field--node--uid.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'themes/custom/planet_foundated/templates/username.html.twig' --> <a href="/user/1" class="visually-hidden p-author h-card" rel="author" title="kinta">kinta <img src="" alt="kinta" /> </a> <a title="View user profile." href="/ca/users/kinta">kinta</a> <!-- END OUTPUT from 'themes/custom/planet_foundated/templates/username.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--blog--rss.html.twig * field--node--created--blog.html.twig x field--node--created.html.twig * field--node--blog.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/field--node--created.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'time' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/time.html.twig' --> <time datetime="2014-12-16T02:02:05+01:00" title="Tuesday, December 16, 2014 - 02:02">Tue, 12/16/2014 - 02:02</time> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/time.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--blog--rss.html.twig * field--node--body--blog.html.twig * field--node--body.html.twig * field--node--blog.html.twig * field--body.html.twig * field--text-with-summary.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="body field field--node-body field--name-body field--type-text-with-summary field--label-hidden field__item"><p>M'agradaria poder fer una crítica constructiva als que com planet.communia.org, tenen un espai d'enunciació, de conversa i de confecció de discurs i coneixement. Un dels motius és poder presentar alternatives al paisatge gris que dibuixa la concentració i la capitalització dels vectors per on flueix la informació. Parlaré de infraestructures comunes, i de <a href="http://en.wiktionary.org/wiki/silo">sils</a> una analogia que crec que és més que encertada quan parlem d'estructures en sistemes d'informació que estan relacionades deficientment amb altres estructures, en les qual s'impedeix l'intercanvi lliure de dades.</p> <p>Qualsevol xarxa està formada per nodes i enllaços entre ells. Tant si s'eliminen els creadors de continguts(nodes), com la infraestructura i les tecnologies de comunicació (enllaços) la xarxa deixa d'existir. En aquesta entrada no entraré a discutir com s'han de regular o no els enllaços entre creadors de continguts i consumidors partint del conflicte, d'això ja hi ha molt escrit...</p> <p>Quan crees continguts arriba un cert punt en el qual cal traçar una estratègia per poder generar xarxa i evitar que certes topologies impedeixin manifestar-te per tu mateix i expressar-te amb el màxim d'autonomia i personalitat. Hem escoltat per activa i per passiva que hem d'intentar caminar cap a la distribució lliure de continguts, <a href="http://us.cdn281.fansshare.com/photos/network/net-paul-baran-on-distributed-communications-networks-2059365127.jpg">els gràfics de Paul Baran</a> sobre la distribució i no la descentralització de les xarxes per fer-les resilients són habituals en <a href="http://lasindias.com/indianopedia/topologias-de-red">ponències i estudis</a>. Però per fer-ho, a més a més de generar continguts (esdevenir nodes actius), hem de pensar en la relació i com cuidar l'enllaç entre nosaltres i les nostres converses, més quan la tendència a maltractar-lo està a l'ordre del dia per consecutives<a href="http://hipertextual.com/2014/11/texto-canon-aede"> reformes de la propietat intelectual</a>.</p> <p>Analitzant les possibilitats que tenim actualment a l'hora de crear continguts, per tal d'esdevenir nodes actius i productius, podem posar-los en una escala segons el grau de restricció, intermediació, i control (vigilància). Dins d'aquesta divisió si a un cantó hi han els <a href="http://indiewebcamp.com/silos"><em>silos</em></a>, webs que ofereixen publicació de continguts sovint propietat de grans companyies(twitter, facebook, gplus... ), a l'altra hi ha la <a href="http://lasindias.com/indianopedia/blogsfera">blogosfera</a> . Segons les característiques proposades per <a href="https://indiewebcamp.com/silos">https://indiewebcamp.com/silos</a>, podem contraposar-les:</p> <ul><li>Requeriment de crear una identitat in-situ Vs. Identitat flexible i determinada per l'usuari.</li> <li>Comunicació isolada: únicament en el lloc amb usuaris del lloc Vs. Comunicació amb qualsevol contacte o xarxa.</li> <li>Creació de contingut d'un tipus determinat. Vs. Creació de qualsevol contingut (text, hypertext, imatges, video, àudio).</li> <li>Restricció a l'hora d'indexar el contingut en tota la totalitat Vs. Possibilitat d'indexació</li> <li>Acatar uns termes de servei i ús Vs. Crear els teus propis termes.</li> <li>Obligació a cedir part de l'autoria o llicència a qualsevol contingut creat Vs. Autoria i llicència flexible( tu la decideixes ).</li> <li>Restricció a l'hora d'importar/exportar el teu contingut o continguts sobre els teus continguts ( comentaris,tags... ) Vs. Possibilitat de exportar segons les possiblitats i habilitats tècniques</li> <li>Generació de context temporal transformant converses en rànquing al cap de poc temps (per exemple, si vols utilitzar twitter com a canal de comentaris,<a href="https://dev.twitter.com/rest/public/search"> et trobaràs que les converses duren una setmana</a>) Vs. Generació de context permanent (limitat a l'existència del blog).</li> <li>Escalabilitat per part de la corporació Vs. Escalabilitat segons habilitats tècniques i framework.</li> </ul><p>Si bé per exprimir algunes de les característiques es depèn de les habilitats tècniques i de la infraestructura( sovint requereix el pagament d'un hosting ), també pots gaudir de bona part de l'autonomia si obres un blog a un proveïdor com wordpress.com, i el grau d'autonomia segueix sent significatiu respecte a serveis tot-en-un com facebook.</p> <p>Així, crec que podem acceptar que el sistema més autònom de creació de continguts ara per ara continua sent el blog. Tot i això hi ha alguns components de l'experiència dels usuaris en les quals el blog no ha seguit innovant i en les quals els <em>sils</em> si que ho han fet: Likes, shares, retweet... Accions que han permès nous fluxes de contingut i noves relacions. Malgrat que se'ls pugui criticar que tendeixen a fenòmens d'agregació i que minven la interacció, hem d'admetre que hi ha hagut innovació i que en molts casos han sigut els propis usuaris (sense estratègia prèvia del proveïdor) els que han implementat millores importants, un exemple és la <a href="https://twitter.com/chrismessina/status/223115412">semantització de temes de debat al twitter via hashtag</a>.  Curiosament en espais autònoms com la blogsfera, aquest grau de millora per part dels creadors de continguts, no sol ser freqüent, si més no es visualitza i valoritza molt menys.</p> <p>Pel que fa a la interacció social dels blogs se situa en 1) els comentaris i 2) les mencions. Els comentaris són el flux de reaccions sobre una entrada de blog( el mur ). <strong>Les mencions crec que són una de les peces fonamentals</strong>; és l'avís quan algú enllaça una entrada de blog teva, i ara per ara el més estès és fer-ho a través dels <a href="http://web.archive.org/web/20030813124915/http://www.hixie.ch/specs/pingback/pingback-1.0">pingbacks</a>(obvio el fiasco dels trackbacks, per la seves debilitats contra l'spam ): Quan algú menciona un text meu, ja sigui per reconèixer, per rebatre, o pel que sigui, jo puc acceptar o no la conversa i plasmar-ho publicant que el text ha estat mencionat per tal blog remot a la mateixa entrada de blog meva. És la part social dels blogs que permet la federació de continguts i l'articulació de lliures acords d'igual a igual (Jo com a blogger em manifesto des del meu espai autogestionat i qui em menciona està en la mateixa condició). Situa una conversa en igualtat de condicions. Però sorprenentment, sovint s'obvia aquesta petita joia i fins i tot es desactiva aquesta interacció,  es té com a una tecnologia vella que visualment no s'entén i que no aporta res. Per exemple, als tallers de Radical Community Manager, vaig veure com en la formació sobre eines de creació de contingut per entitats, els pingbacks eren desactivats sense cap explicació. Crec que és un error estratègic, ja que no donar possibilitat de interacció en la conversa i segueix la lògica de crear nous parlaments, on<strong> qui parla no escolta a qui l'escolta</strong>.</p> <p>El que si és cert és que és una tecnologia vella,  que ha evolucionat poc  ja que aquesta tecnologia no ha variat gaire<a href="http://web.archive.org/web/20030817120358/http://simon.incutio.com/archive/2002/09/02/testingPingback"> des del 2002</a> . Això esdevé crític perquè en el cas dels blogs l'enllaç entre nodes és suficient però poc eficient i podria complementar-se molt més. I no estic parlant de posar icones de social media ni de campanyes de SEO. Em refereixo a com aprofundir en l'essència del blog, permetre que la xarxa segueixi parlant i que poguem millorar el context i les dades de la conversa. Com deia abans, si no cuidem els enllaços entre nosaltres tots els nodes se'n ressenten. En aquest sentit un nou mecanisme eficient i senzill apareix per solucionar algunes mancances: les <a href="https://github.com/converspace/webmention/blob/master/README.md">webmentions</a>. Aquest protocol intenta fer simple i més estàndard la comunicació a la blogsfera, ja que utilitza protocol <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html">estàndar HTTP</a>, enlloc de <a href="http://xmlrpc.scripting.com/spec.html">xmlrpc</a> com els pingbacks . A més proposa la implementació d'accions "socials",<a href="https://indiewebcamp.com/Webmention#types_of_mentions"> categoritzant la menció segons Like, Repost, Reply</a>, accions que tot i que crec que no són suficients, dibuixen un blogging més interactiu i obren la porta a una conversa més enriquida.</p> <p>Anant més enllà, crec que davant la idiosincràsia i especificitat de cada sil o "xarxa social" restrictiva pel que fa a indexar contingut, és necessari dotar-nos de millores en la federació de continguts i converses, això significaria un valor afegit substancial. I quin millor camí que seguir la via distribuïda que permet el protocol http ? Anant encara més enllà podem apostar per la semantització via RDF, o JSON-LD per fer front a les apis a les que ens han acostumat els grans concentradors de contingut i que sovint són artefactes per la gestió d'una escassetat artificial. Per què la semàntica? perquè quan consulta la menció que m'has fet, hauria de ser fàcil poder descobrir l'autor, el contingut de l'entrada, la data, els comentaris...</p> <p>Per poder fer això, significaria que és important que els blogs obrin un apartat bàsic explicant quines possibilitat d'interacció s'ofereixen. Un apartat tipus:</p> <ul><li>Aquest blog publica els continguts de manera enriquida a través de protocols RSS a :</li> <li>Aquest blog publica els recursos descrits via RDFa 1.1 en cada node.</li> <li>Aquest blog permet webmentions, pingbacks i comentaris.</li> </ul><p>Ens encantaria poder articular les converses de manera còmode i per això la idea és poder implementar correctament pingbacks i webmentions.</p> <p>La manera com funciona és que quan jo publico alguna entrada de blog i algú em referencii el sistema de referències va al lloc on m'han mencionat i fa una cerca del context de la menció. Amb els pingbacks és simplement un extracte del tipus:</p> <blockquote><p>... sobre la manera que descriu el mètode<u> hi ha una fòrmula</u> de la ...</p> </blockquote> <p>Que ens aporta ben poc.</p> <p>El problema és la manera com es descriuen els recursos: necessitem un context més acurat. Això és per exemple saber l'autor, la data, el blog , les etiquetes, imatges... Però sobretot definir clarament la descripció i el cos de l'article per tal de poder destinar recursos d'scrapping a buscar negretes enlloc de fer front als widgets dels sils i els llibres de cares. El grau de permeabilitat del teu espai web no depèn només del fet que tingui un disseny agradable a la vista i optimitzat per la llegibilitat, requereix enriquir l'enllaç i fer-lo fort, més ara que es tendeix a criminalitzar-lo. Necessitem que cada blog s'entengui amb els altres, de la mateixa manera com un link ens porta a un altre lloc, estem a un pas de saber si el link es clica per dur a terme una acció (és una resposta, és del tipus favorit, t'agrada, vols compartir el contingut, vols citar-lo...).</p> <p>Si el 2010 la proposta era descrita a <a href="http://www.w3.org/2010/02/rdfa/sources/rdfa-primer/alice-example.html">http://www.w3.org/2010/02/rdfa/sources/rdfa-primer/alice-example.html </a>, ara sembla que schema.org  porta la veu cantant quan parlem de descripció de recursos, però al marge d'aquest, encara tenim foaf, sioc...  i amb ells ja ens podem entendre. I si no sempre pots crear ontologies específiques a la teva comunitat, estenent-ne alguna d'existent. Pot semblar complicat però per continguts simples com les entrades de blog no hauria de ser-ho, més quan ja tenim exemples com<a href="http://www.w3.org/TR/html-rdfa/#bib-XHTML-RDFA"> http://www.w3.org/TR/html-rdfa/#bib-XHTML-RDFA</a>. I més quan ja tenim plugins tant de <a href="https://wordpress.org/plugins/webmention/">webmentions</a> com de rdf pels serveis de blog (per drupal hi ha una versió a github, a la qual jo mateix intento <a href="https://github.com/sanduhrs/vinculum/pull/2">aportar-hi hores</a>), també serveis de captura de mencions <a href="http://webmention.io">cap als nostres blogs que eviten i trenquen l'encerclament de comuns</a>.</p> <p>Però hi han més perills. El que resulta paradoxal, és que més que posar valor a la lliure distribució de continguts, la utlització d'artilugis com l'RDF es distorsiona quan entra la paraula SEO, llavors passa de ser una eina útil per la federació, a ser un mecanisme d'indexació i de estatus als cercadors i sovint es relega al màrqueting. Hem de posar en valor les eines i veure-les més enllà de poder fer el passadís a Google per tal d'arreglar l'aparador que tots <a href="http://www.google.com/webmasters/tools/richsnippets?q=http%3A%2F%2Fplanet.communia.org%2Fcontent%2Fbombillas-milagro">els blogs hi tenim</a>. Així el SEO és un a més a més, no una finalitat en si, i hem de vigilar a no cedir recursos ni atorgar llicències. Per posar un exemple: Google et posarà una foto teva a l'índex de cerca al costat de la teva entrada de blog però com a contrapartida <a href="http://www.seoskeptic.com/structured-data-for-author-pages-and-linked-snippets/#articlerl">hauràs de cedir la teva identitat traslladant-la a Google Plus</a>. Hem d'aprofitar els avenços com a comunitat i entre comunitats, no destinar-los únicament a enriquir els intermediaris i atorgar-los així el benefici de ser propietaris de recursos propis. Com sempre pensar el web i els seus estàndards per la distribució, per l'intercanvi entre iguals, no per la centralització.</p> <p>Així fins ara planet.communia.org tenia incorporat un sistema dual de pingbacks i trackbacks. A partir d'ara incorporem el sistema de webmentions, seguim amb els pingbacks, i cancelem els trackbacks, ja que amb tot el temps que els hem tingut actius només hem rebut  4 de bons (del mateix planet), i uns 2500 de spam. </p> <p>La semàntica a drupal per defecte es fa a través de rdfa 1.0 a tots els continguts, alguns microformats i el propi html5 que ens ajuda a definir bé els tipus de continguts. Els mecanismes de interacció quedaran reflectits a l'entrada<a href="http://planet.communia.org/content/api"> (un)API</a> del <a href="#drupal-live-announce">menú de peu de pàgina </a>. A part hem afegit <a href="https://www.drupal.org/project/microdata">microformats</a>, algunes especificacions de <a href="http://schema.org/">schema.org</a>, i RDFa 1.1. Així els continguts tindran especificacions de foaf, sioc, og, i schema.org. Intentant implementar en la mesura <a href="http://www.w3.org/TR/rdfa-primer/">del possible els estàndards</a>.</p> </div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--blog--rss.html.twig * field--node--field-tags--blog.html.twig * field--node--field-tags.html.twig * field--node--blog.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="field field--node-field-tags field--name-field-tags field--type-entity-reference field--label-inline clearfix"> <div class="field-label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/en/etiquetes/blogosfera" hreflang="en">Blogosfera</a></div> <div class="field__item"><a href="/en/etiquetes/comuns" hreflang="en">comuns</a></div> <div class="field__item"><a href="/en/etiquetes/pingbacks" hreflang="en">pingbacks</a></div> <div class="field__item"><a href="/en/etiquetes/sil-hostil" hreflang="en">sil-hostil</a></div> <div class="field__item"><a href="/en/etiquetes/P2p" hreflang="en">P2p</a></div> </div> </div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'links__node' --> <!-- FILE NAME SUGGESTIONS: * links--node.html.twig * links--node.html.twig x links.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/planet_foundated/templates/links.html.twig' --> <!-- END OUTPUT from 'themes/custom/planet_foundated/templates/links.html.twig' --> Tue, 16 Dec 2014 01:02:05 +0000 kinta 99 at https://planet.communia.org https://planet.communia.org/ca/content/cap-una-lliure-distribucio-de-converses#comments