sutty-base-jekyll-theme

Plantilla de base para empezar a desarrollar plantillas usando la
metodología y flujo de trabajo de Sutty :)
This commit is contained in:
f 2020-03-21 12:55:50 -03:00
commit 71cd849b47
No known key found for this signature in database
GPG key ID: 2AE5A13E321F953D
11 changed files with 483 additions and 0 deletions

7
.gitignore vendored Normal file
View file

@ -0,0 +1,7 @@
*.gem
.bundle
.jekyll-cache
.sass-cache
_site
Gemfile.lock
node_modules/

4
Gemfile Normal file
View file

@ -0,0 +1,4 @@
# frozen_string_literal: true
source "https://rubygems.org"
gemspec

168
LICENSE.txt Normal file
View file

@ -0,0 +1,168 @@
Copyright (c) 2020 Sutty
The following license is modified from the MIT license and downloaded
from <https://github.com/Laurelai/anti-fascist-mit-license> on
2019-07-11.
Anti-Fascist MIT License:
The following conditions must be met by any person obtaining a copy of
this software:
- You MAY NOT be a fascist.
- You MUST not financially support fascists.
- You MUST not intentionally provide or knowingly provide through
inaction a platform for fascists to spread propaganda or organize.
- You MUST not publicly voice support for fascists.
- You MAY NOT be a member of any fascist organization, even if you are a
member to infiltrate for anti-fascist purposes.
"Fascist" can be understood as any group or individual who promotes the
political ideology of fascism.
"Fascism" can be broken down into 11 ideological features as well as 8
tactics that can form a fascist system in varying combinations, for the
sake of simplicity and brevity the individual or organization in
question must match to at least 5 features or tactics or a combination
of the two determined by the individual licencer.
Said licencer may provide a list if an individual or group matches to at
least 5 features upon request from the individual or group in question.
The ideological features are listed below.
1. Hyper-nationalism.
As defined as "The belief in the superiority of one's nation and of the
paramount importance of advancing it."
2. Militarism.
As defined as "Advocating for an increase in military forces beyond what
the real defense of a nation needs, more influence of the military upon
the policies of the civilian government, and a preference for force as a
solution over diplomacy for problems."
3. Glorification of violence and readiness to use it in politics.
As defined as "The belief that violence can be used to cleanse a
tarnished nation, also by using violence to harm, intimidate or kill
political oppoenents."
4. Fetishization of youth.
As defined as "Extolling the virtues of youth and making a special
appeal to young people to join a cause or organization"
5. Fetishization of masculinity.
As defined as "Extolling the virtues of male authority or patriarchy and
making a special appeal to men to be leaders of households and groups"
6. Leader cult.
As defined as "Creating an idealized, heroic, and worshipful image of a
leader, often through unquestioning flattery and praise."
7. Lost-golden-age syndrome.
As defined as "Creating or promoting the idea that a nation had a lost
or stolen golden age in the past that must be returned to"
8. Self-definition by opposition.
As defined as "Creating or promoting the idea that the group or
individual is the only person or way who can fight real or imagined
evils within a society."
9. Mass mobilization and mass party.
As defined as "Creating or promoting the creation of a populist group or
party for the advancment of fascist tactics or features."
10. Hierarchical party structure and tendency to purge the disloyal.
As defined as "Removal of membership from a group for lacking absolute
loyalty or lacking further usefulness to the group. Also having a
hierarchical structure within the group itself."
11. Theatricality.
As defined as "Using spectacle to gain and keep the attention of those
inside and outside of the group using speeches full of absolutes and or
superlatives. Elaborate collective rituals (rallies) meant to reenforce
loyalty within the group."
Fascist tactics include
1) Persecution of national minorities.
2) Persecution of racial minorities.
3) Persecution of religious minorities (Anti-Semitism, Islamophobia and others).
4) Promotion of a type of national purity.
5) Promotion of a state run by ideologically oriented corporate bodies.
6) Persecution of gender or sexual minorities.
7) Persecution of the disabled.
8) Formation of extra-legal forces (brownshirts) to defend fascist values.
Special criteria: Meeting only one point of the special criteria is
enough to consider someone or a group to be fascist for the purposes of
this licence.
1. Promotion of any theories that state members of the jewish ethnicity
or faith control or largely control the world, finance, or other
global major power system.
2. Denial of the holocaust or any other historically proven genocide.
3. Promotion of ethnostates.
4. Advocating for eugenics. Either positive or negative eugenics.
Promotion for the rights of abortion are not considered eugenics.
5. Advocating for the removal of rights or legal protections from a
class or group of people.
Former fascists: People or organizations who used to promote the
political ideology of fascism but no longer do so must meet the
following criterea to be able to use this software.
1. Publicly disavow past fascist deeds and ideologies.
2. Expose any and all known fascists former allies to the public.
A suggested route would be through the one peoples project
(onepeoplesproject.com). If they can confirm you have done so that
will count as meeting condition two.
3. Publicly destroy any and all fascist paraphenelia you have in your
posession including removal of tattoos and body markings
affiliated with fascist groups or gangs.
ANTI-FASCIST-MIT LICENSE:
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
The above licence agreement conditions are met in full.
The Anti-Fascist MIT License may only be used under the terms of the
Anti-Fascist MIT License.
Any modified versions of this software must also include the
Anti-Fascist MIT Licence.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

90
README.md Normal file
View file

@ -0,0 +1,90 @@
# sutty-base-jekyll-theme
CAMBIAME: Esta es una plantilla base para comenzar cualquier plantilla
relacionada con Sutty, con el entorno de desarrollo que usamos según
nuestro flujo de trabajo.
La instalación de esta gema se realiza bifurcando el desarrollo de esta
usando git, por ejemplo:
```bash
# Hacer un fork local desde sutty-base-jekyll-theme a nuestra plantilla
git clone https://0xacab.org/sutty/jekyll/sutty-base-jekyll-theme.git \
CAMBIAME-jekyll-theme
cd CAMBIAME-jekyll-theme
# Sutty-base ahora es el proyecto base, desde el que podemos tomar
# cambios, pero no enviamos para no mezclar las cosas
git remote rename origin upstream
# Agregamos el repositorio donde vamos a enviar y publicar cambios
git remote add origin \
git@0xacab.org:sutty/jekyll/CAMBIAME-jekyll-theme.git
# Configuramos git para que envíe siempre los cambios al repositorio
# nuevo
git push --set-upstream origin master
```
Para empezar, hay que buscar y reemplazar donde diga `CAMBIAME`.
También hay que instalar las dependencias de CSS y JS con `yarn`.
## Installation
Add this line to your Jekyll site's `Gemfile`:
```ruby
gem "CAMBIAME-jekyll-theme"
```
And add this line to your Jekyll site's `_config.yml`:
```yaml
theme: CAMBIAME-jekyll-theme
```
And then execute:
$ bundle
Or install it yourself as:
$ gem install CAMBIAME-jekyll-theme
## Usage
CAMBIAME
## Contributing
Bug reports and pull requests are welcome on 0xacab.org at
https://0xacab.org/sutty/jekyll/CAMBIAME-jekyll-theme. This project is
intended to be a safe, welcoming space for collaboration, and
contributors are expected to adhere to the [Sutty's code of
conduct](http://sutty.nl/en/code-of-conduct).
## Development
To set up your environment to develop this theme, run `bundle install`.
Your theme is setup just like a normal Jekyll site! To test your theme,
run `bundle exec jekyll serve` and open your browser at
`http://localhost:4000`. This starts a Jekyll server using your
theme. Add pages, documents, data, etc. like normal to test your theme's
contents. As you make modifications to your theme and to your content,
your site will regenerate and you should see the changes in the browser
after a refresh, just like normal.
When your theme is released, only the files in `_layouts`, `_includes`,
`_sass` and `assets` tracked with Git will be bundled.
To add a custom directory to your theme-gem, please edit the array in
`CAMBIAME-jekyll-theme.gemspec` accordingly.
## License
The theme is available as open source under the terms of the [Antifacist
MIT License](LICENSE.txt).

29
_includes/navbar.html Normal file
View file

@ -0,0 +1,29 @@
<nav class="navbar navbar-expand-lg navbar-light bg-light d-print-block" role="navigation" aria-label="{{ site.i18n.menu.title }}">
<a class="navbar-brand" href="">
{% include_cached logo.svg %}
</a>
{% comment %}
TODO: Add CSS-only hamburger menu.
{% endcomment %}
<ul class="navbar-nav d-print-none">
{%- for item in site.i18n.menu.items -%}
{% comment %}
This makes it hard to just cache the whole navbar, but we prefer
to mark the active item in code rather than with JS.
{% endcomment %}
<li class="nav-item">
<a class="nav-link{% if page.url == item.url %} active{% endif %}" href="{{ item.url }}">
{{ item.text }}
{%- if page.url == item.url -%}
<span class="sr-only">
{{ site.i18n.menu.active | default: '(current)' }}
</span>
{%- endif %}
</a>
</li>
{%- endfor -%}
</ul>
</nav>

25
_layouts/default.html Normal file
View file

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="{{ site.lang }}" dir="{{ site.dir }}">
<head>
<meta charset="UTF-8">
<base href="{% base %}" />
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<meta name="theme-color" content="white"/>
<meta name="color-scheme" content="light"/>
<link href="assets/css/styles.css" rel="stylesheet">
{% seo %}
{% feed_meta %}
</head>
<body>
<main class="container">
<div class="row justify-content-center d-print-block">
<div class="col">
{{ content }}
</div>
</div>
</main>
</body>
</html>

69
_layouts/post.html Normal file
View file

@ -0,0 +1,69 @@
---
layout: default
---
<article class="h-entry" itemscope itemtype="http://schema.org/Article">
<header>
<h1 class="p-name" itemprop="name headline">{{ page.title | escape }}</h1>
{%- if page.description -%}
<p class="lead p-summary" itemprop="description">{{ page.description | escape }}</p>
{%- endif -%}
{%- if page.image.path -%}
<picture>
{% for size in site.images.sizes %}
<source srcset="{{ page.image.path | thumbnail: size }}" media="(max-width: {{ size }}px)" />
{% endfor %}
<img class="img-fluid" src="{{ page.image.path | thumbnail: 1140 }}" alt="{{ page.image.description }}" />
</picture>
{%- endif -%}
<p>
<time class="dt-published" datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">
{%- assign date_format = site.i18n.date | default: "%b %-d, %Y" -%}
{{ page.date | date: date_format }}
</time>
{%- for author in page.author -%}
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
<span class="p-author h-card" itemprop="name">
{{ author | escape }}
</span>
</span>
{%- endfor -%}
</p>
</header>
<div class="e-content" itemprop="articleBody">
{{ content }}
</div>
<footer>
<a class="u-url" itemprop="url" href="{{ page.url }}" hidden>
{{ site.url }}/{{ page.url }}
</a>
{%- if page.uuid -%}
<span hidden itemprop="identifier">{{ page.uuid }}</span>
{%- endif -%}
{%- if page.license.url -%}
<p itemprop="license" itemtype="http://schema.org/CreativeWork">
<a rel="license" itemprop="url" href="{{ page.license.url }}">
<span itemprop="articleBody">
{{ page.license.description }}
</span>
</a>
</p>
{%- endif -%}
{%- if page.tags %}
<span itemprop="keywords" hidden>{{ page.tags | join: ', ' }}</span>
{%- for tag in page.tags -%}
<span hidden class="h-category">{{ tag }}</span>
{%- endfor -%}
{%- endif -%}
</footer>
</article>

12
assets/css/styles.scss Normal file
View file

@ -0,0 +1,12 @@
---
# Ponemos un frontmatter porque queremos que Jekyll procese este archivo
---
/*
* XXX: Solo importar los archivos necesarios de bootstrap para
* facilitar la reducción de CSS. Por ahora pedimos todo para poder
* empezar a trabajar en el HTML sin pensar en CSS.
*
* Los archivos se encuentran en node_modules/bootstrap/scss
*/
@import "bootstrap/scss/bootstrap";

5
package.json Normal file
View file

@ -0,0 +1,5 @@
{
"dependencies": {
"bootstrap": "~4.4"
}
}

View file

@ -0,0 +1,66 @@
# frozen_string_literal: true
# XXX: No te olvides de cambiar el nombre de archivo para que coincida
# con el nombre de la gema!
Gem::Specification.new do |spec|
# Este es el nombre de la gema
spec.name = 'CAMBIAME-jekyll-theme'
# Versión inicial, usamos semver.org
spec.version = '0.1.0'
# Una lista con todes les autores, esto se ve luego en el perfil de
# rubygems.org
spec.authors = ['f']
# Una lista de direcciones de correo, que coincide con la lista de
# autores
spec.email = ['f@sutty.nl']
# Descripción corta de la plantilla
spec.summary = 'CAMBIAME'
# Dirección de la plantilla
spec.homepage = 'https://0xacab.org/sutty/jekyll/CAMBIAME-jekyll-theme'
# Estamos usando la licencia MIT Antifacista, que no es reconocida por
# rubygems
spec.license = 'Nonstandard'
# La gemspec por defecto incluye todos los archivos que ponemos en
# git, pero como no todos los que pongamos son necesarios para la
# gema, hacemos nuestra propia lista de archivos.
spec.files = Dir['assets/**/*',
'_layouts/**/*',
'_includes/**/*',
'_sass/**/*',
'LICENSE*',
'README*']
# Archivos que son parte de la documentación
spec.extra_rdoc_files = Dir['README.md', 'CHANGELOG.md', 'LICENSE.txt']
# Opciones para el generador de documentación
spec.rdoc_options += [
'--title', "#{spec.name} - #{spec.summary}",
'--main', 'README.md',
'--line-numbers',
'--inline-source',
'--quiet'
]
# Otros metadatos de la gema
spec.metadata = {
'bug_tracker_uri' => "#{spec.homepage}/issues",
'homepage_uri' => spec.homepage,
'source_code_uri' => spec.homepage,
'changelog_uri' => "#{spec.homepage}/-/blob/master/CHANGELOG.md",
'documentation_uri' => "https://rubydoc.info/gems/#{spec.name}"
}
# Dependencias, esto se va a instalar al instalar la gema
spec.add_runtime_dependency 'jekyll', '~> 4.0'
spec.add_runtime_dependency 'jekyll-relative-urls', '~> 0.0'
spec.add_runtime_dependency 'jekyll-feed', '~> 0.9'
spec.add_runtime_dependency 'jekyll-seo-tag', '~> 2.1'
spec.add_runtime_dependency 'jekyll-images', '~> 0.2'
spec.add_runtime_dependency 'jekyll-include-cache', '~> 0'
# Dependencias de desarrollo
spec.add_development_dependency 'bundler', '~> 2.1'
spec.add_development_dependency 'rake', '~> 12.0'
end

8
yarn.lock Normal file
View file

@ -0,0 +1,8 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
bootstrap@~4.4:
version "4.4.1"
resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.4.1.tgz#8582960eea0c5cd2bede84d8b0baf3789c3e8b01"
integrity sha512-tbx5cHubwE6e2ZG7nqM3g/FZ5PQEDMWmMGNrCUBVRPHXTJaH7CBDdsLeu3eCh3B1tzAxTnAbtmrzvWEvT2NNEA==