base.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. <!DOCTYPE html>
  2. <html lang="{% block html_lang %}{{ DEFAULT_LANG }}{% endblock %}">
  3. <head prefix="og: http://ogp.me/ns# {% if article %}article: http://ogp.me/ns/article#{% endif%}">
  4. {% block head %}
  5. <meta charset="UTF-8">
  6. <meta name="generator" content="Pelican {{ PELICAN_VERSION }}">
  7. <meta name="viewport" content="width=device-width">
  8. <meta name="msapplication-TileImage" content="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/cropped-favicon-270x270.png">
  9. <meta property="og:site_name" content="{{ SITENAME }}">
  10. {% block extra_head %}
  11. {% set SITE_DESCRIPTION = _('Tutoriales, noticias, críticas sobre software libre, GNU con Linux, desarrollo web, cultura libre... Con independencia y un punto de vista crítico, con programas libres y respetando la privacidad.') %}
  12. <meta name="description" content="{{ SITE_DESCRIPTION }}">
  13. <meta name="keywords" content="{{ _('software libre,libertad,libertad de expresión,privacidad,formación,tutoriales,guías,GNU/Linux,desarrollo web,Trisquel') }}">
  14. <meta property="og:title" content="{{ SITENAME }}">
  15. <meta property="og:type" content="website">
  16. <meta property="og:image" content="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/cropped-favicon-270x270.png">
  17. <meta property="og:url" content="{{ SITEURL }}">
  18. <meta property="og:description" content="{{ SITE_DESCRIPTION }}">
  19. {% endblock %}
  20. <title>{% block title %}{{ SITENAME }}{% endblock title %}</title>
  21. {% if FEED_ALL_ATOM %}
  22. <link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_ATOM }}" type="application/atom+xml" rel="alternate" title="{% trans %}Fuente de entradas Atom completa de {{ SITENAME }}{% endtrans %}">
  23. {% endif %}
  24. {% if FEED_ALL_RSS %}
  25. <link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_RSS }}" type="application/rss+xml" rel="alternate" title="{% trans %}Fuente completa de entradas RSS de {{ SITENAME }}{% endtrans %}">
  26. {% endif %}
  27. {% if FEED_ATOM %}
  28. <link href="{{ FEED_DOMAIN }}/{{ FEED_ATOM }}" type="application/atom+xml" rel="alternate" title="{% trans %}Fuente Atom de {{ SITENAME }}{% endtrans %}">
  29. {% endif %}
  30. {% if FEED_RSS %}
  31. <link href="{{ FEED_DOMAIN }}/{{ FEED_RSS }}" type="application/rss+xml" rel="alternate" title="{% trans %}Fuente RSS de {{ SITENAME }}{% endtrans %}">
  32. {% endif %}
  33. {% if CATEGORY_FEED_ATOM and category %}
  34. <link href="{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_ATOM.format(slug=category.slug) }}" type="application/atom+xml" rel="alternate" title="{% trans %}Fuente de categorías Atom de {{ SITENAME }}{% endtrans %}">
  35. {% endif %}
  36. {% if CATEGORY_FEED_RSS and category %}
  37. <link href="{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_RSS.format(slug=category.slug) }}" type="application/rss+xml" rel="alternate" title="{% trans %}Fuente RSS de categorías de {{ SITENAME }}{% endtrans %}">
  38. {% endif %}
  39. {% if TAG_FEED_ATOM and tag %}
  40. <link href="{{ FEED_DOMAIN }}/{{ TAG_FEED_ATOM.format(slug=tag.slug) }}" type="application/atom+xml" rel="alternate" title="{% trans %}Fuente Atom de etiquetas de {{ SITENAME }}{% endtrans %}">
  41. {% endif %}
  42. {% if TAG_FEED_RSS and tag %}
  43. <link href="{{ FEED_DOMAIN }}/{{ TAG_FEED_RSS.format(slug=tag.slug) }}" type="application/rss+xml" rel="alternate" title="{% trans %}Fuente RSS de etiquetas de {{ SITENAME }}{% endtrans %}">
  44. {% endif %}
  45. {% if TRANSLATION_FEED_ATOM %}
  46. <link href="{{ FEED_DOMAIN }}/{{ TRANSLATION_FEED_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ _('Fuente Atom de %(nombre_sitio_web)s', nombre_sitio_web=SITENAME) }}" />
  47. {% endif %}
  48. <link rel="icon" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/cropped-favicon-32x32.png" sizes="32x32">
  49. <link rel="icon" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/cropped-favicon-192x192.png" sizes="192x192">
  50. <link rel="apple-touch-icon-precomposed" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/cropped-favicon-180x180.png">
  51. <link rel="stylesheet" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/css/style.css">
  52. <link rel="stylesheet" id="genericons-css" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/genericons/genericons.css?ver=3.2" type="text/css">
  53. <link rel="stylesheet" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/fontello-translation-icon/css/fontello.css" type="text/css">
  54. <link rel="author" href="{{ SITEURL }}/{{ AUTHORS_URL }}">
  55. <link rel="license" hreflang="{{ DEFAULT_LANG }}" href="https://creativecommons.org/publicdomain/zero/1.0/deed.{{ DEFAULT_LANG }}">
  56. <script src="{{ SITEURL}}/{{ THEME_STATIC_DIR }}/js/jquery-3.1.1.min.js"></script>
  57. {% endblock head %}
  58. </head>
  59. <body class="home blog">
  60. <div id="page" class="hfeed site">
  61. <a class="skip-link screen-reader-text" href="#content">{{ _('Saltar al contenido') }}</a>
  62. <div id="sidebar" class="sidebar">
  63. <input aria-controls="secondary" id="menu-toggle-cbox" role="button" type="checkbox">
  64. <header id="masthead" class="site-header">
  65. <div class="site-branding">
  66. {%- block logo -%}
  67. <a href="{{ SITEURL }}/" class="custom-logo-link" rel="home"><img src="/wp-content/uploads/2024/01/luna-freak.png" class="custom-logo" alt="{{ SITENAME }}" srcset="/wp-content/uploads/2024/01/luna-freak-248x248.png 248w, /wp-content/uploads/2024/01/luna-freak-150x150.png 150w" sizes="(max-width: 248px) 100vw, 248px" width="248" height="248"></a>
  68. {%- endblock -%}
  69. <p class="site-description">{{ _('Mejor con <i>software</i> libre') }}</p>
  70. <label class="secondary-toggle" for="menu-toggle-cbox">{{ _('Menú') }}</label>
  71. </div><!-- .site-branding -->
  72. </header>
  73. <div id="secondary" class="secondary">
  74. {% if DISPLAY_PAGES_ON_MENU %}
  75. <nav id="site-navigation" class="main-navigation">
  76. <div class="menu-menu-container">
  77. <ul id="menu-menu" class="nav-menu">
  78. {% for p in pages %}
  79. <li class="menu-item menu-item-type-post_type menu-item-object-page{% if p == page %} current-menu-item page_item{% endif %}"><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title }}</a></li>
  80. {% endfor %}
  81. <li class="menu-item menu-item-type-post_type menu-item-object-page{% if output_file == ARCHIVES_SAVE_AS %} current-menu-item page_item{% endif %}"><a href="{{ SITEURL }}/{{ ARCHIVES_URL }}">{{ _('Lista de artículos') }}</a></li>
  82. <li class="menu-item menu-item-type-post_type menu-item-object-page{% if output_file == AUTHORS_SAVE_AS %} current-menu-item page_item{% endif %}"><a href="{{ SITEURL }}/{{ AUTHORS_URL }}">{{ _('Créditos') }}</a></li>
  83. </ul>
  84. </div>
  85. </nav>
  86. {% endif %}
  87. <div id="widget-area" class="widget-area" role="complementary">
  88. <aside class="widget">
  89. <form action="/buscar.php">
  90. <input placeholder="{{ _('Buscar ...') }}" type="search" name="q" required>
  91. </form>
  92. </aside>
  93. {% if SHOW_RECENT_POSTS %}
  94. <aside class="widget widget_recent_entries">
  95. <h2 class="widget-title">{{ _('Entradas recientes') }}</h2>
  96. <ul>
  97. {% for article in articles[:SHOW_RECENT_POSTS] %}
  98. <li class="menu-item {% if output_file == article.save_as %} current-menu-item {% endif %}">
  99. <a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a>
  100. </li>
  101. {% endfor %}
  102. </ul>
  103. </aside>
  104. {% endif %}
  105. {% if DISPLAY_CATEGORIES_ON_MENU %}
  106. <aside class="widget widget_categories">
  107. <h2 class="widget-title">{{ _('Categorías') }}</h2>
  108. <ul>
  109. {% for cat, articles in categories %}
  110. <li class="cat-item {% if output_file == cat.save_as %} current-menu-item {% endif %}">
  111. <a href="{{ SITEURL }}/{{ cat.url }}">{{cat}}</a > ({{ articles|length }})
  112. </li>
  113. {% endfor %}
  114. </ul>
  115. </aside>
  116. {% endif %}
  117. <aside class="widget widget_tag_cloud">
  118. <h2 class="widget-title">
  119. <a href="{{ SITEURL}}/{{ TAGS_URL }}">{{ _('Etiquetas') }}</a>
  120. </h2>
  121. <div class="tagcloud">
  122. {% for tag in tag_cloud %}
  123. <a class="tag-{{ tag.1 }}" href="{{ SITEURL }}/{{ tag.0.url }}" title="{% if TAG_CLOUD_BADGE %}{{ tag.2 }}{% endif %}">
  124. {{ tag.0 }}
  125. </a>
  126. {% endfor %}
  127. </div>
  128. </aside>
  129. </div>
  130. </div>
  131. </div><!-- .sidebar -->
  132. <div id="content" class="site-content">
  133. <div id="primary" class="content-area">
  134. <main id="main" class="site-main">
  135. {%- block content -%}
  136. {% for article in articles_page.object_list %}
  137. {% if article.image %}
  138. <article class="has-post-thumbnail post type-post status-publish format-standard hentry">
  139. <a class="post-thumbnail" href="{{ SITEURL }}/{{ article.url }}" aria-hidden="true">
  140. {{ article.image }}
  141. </a>
  142. {% else %}
  143. <article class="post type-post status-publish format-standard hentry">
  144. {% endif %}
  145. <header class="entry-header">
  146. <h2 class="entry-title"><a href="{{ SITEURL }}/{{ article.url }}#titulo" rel="bookmark" title="{{ _('Enlace a %(articulo)s', articulo=article.title|striptags) }}">{{ article.title }}</a></h2>
  147. </header>
  148. <div class="entry-content"> {{ article.summary }} </div><!-- /.entry-content -->
  149. {% include "article_info.html" %}
  150. </article>
  151. {% endfor %}
  152. {% include "pagination.html" %}
  153. {%- endblock -%}
  154. </main>
  155. </div>
  156. </div><!-- .site-content -->
  157. <footer id="colophon" class="site-footer">
  158. <div class="site-info">
  159. <p><a rel="license" href="https://creativecommons.org/publicdomain/zero/1.0/deed.{{ DEFAULT_LANG }}"><img alt="{{ _('Licencia de Creative Commons de dominio público') }}" style="border-width:0" src="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/creativecommons0_88x31.png" /></a>{{ _('El contenido (textos, imágenes, vídeos, comentarios) de Freak Spot es de dominio público.') }}</p>
  160. <ul>
  161. <li><a href="https://codeberg.org/Freak-Spot/Freak-Spot">{{ _('Código fuente') }}</a><a href="{{ SITEURL }}/pages/librejs.html" data-jslicense="1" hidden> ({{ _('Licencias de JavaScript') }})</a></li>
  162. <li><a href="{{ USAGE_POLICY_URL }}">{{ _('Política de uso') }}</a></li>
  163. <li>
  164. <a href="http://63xpbju6u6kzge3k5mobwivob2seui4ka26l2iboraw5lxz262brgjad.onion/">{{ _('Servicio oculto de Tor') }}</a>
  165. </li>
  166. </ul>
  167. </div>
  168. </footer>
  169. </div>
  170. {%- block final_scripts -%}
  171. <script>
  172. // @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-3.0
  173. // If JavaScript is enabled, use JavaScript search engine
  174. $('form:first').attr('action', '{{ SEARCH_URL }}');
  175. /* <![CDATA[ */
  176. var screenReaderText = {'expand':'<span class="screen-reader-text">{{ _('expande el menú inferior') }}</span>','collapse':'<span class="screen-reader-text">{{ _('plegar menú inferior') }}</span>'};
  177. /* ]]> */
  178. // @license-end
  179. </script>
  180. <script src="{{ SITEURL}}/{{ THEME_STATIC_DIR }}/js/functions.min.js"></script>
  181. {% if article %}
  182. {% if article.js %}
  183. {% for script in article.js %}
  184. {% if 'bottom' in script[-7:] %}
  185. {{ script[:-8]|format(SITEURL) }}
  186. {% endif %}
  187. {% endfor %}
  188. {% endif %}
  189. {% endif %}
  190. {%- endblock -%}
  191. </body>
  192. </html>