diff --git a/config/build/mdtopot b/config/build/mdtopot index e2c45e5..bac27b8 100755 --- a/config/build/mdtopot +++ b/config/build/mdtopot @@ -2,10 +2,7 @@ # encoding: UTF-8 # coding: UTF-8 -require 'simple_po_parser' require 'fileutils' -require 'time' -require 'json' # Displays message when something goes wrong def check condition, err_msg @@ -48,7 +45,7 @@ check(ARGV[0] == nil, "ERROR: File is required.") # Cleans path md_path = md_dir + File.basename(ARGV[0]) -# Check if the file exists +# Checks if the file exists check(File.exist?(md_path) == false, "ERROR: File doesn't exist.") # Gets the content and create an array where each element is a md text block @@ -71,20 +68,19 @@ js = File.open(js_path, 'w:UTF-8') js.puts md_clean js.close -# Create pot file based in js file +# Creates pot file based in js file pot_path = pot_dir + File.basename(md_path, '.*') + '.pot' system("xgettext #{js_path} #{ARGV[1] != nil ? '-j' : ''} --language=JavaScript --from-code=UTF-8 -o #{pot_path}") # Cleans pot file -pot_clean = File.read(pot_path) -pot_clean.gsub!(/\n"\s/, "\n\"") - .gsub!(/#[\s,].*?\n/, '') - .gsub!(/"Language.*?\n/, '') - .gsub!(/"PO-Revision-Date:.*?\n/, '') - .gsub!('"Report-Msgid-Bugs-To: ', '"Report-Msgid-Bugs-To: ' + name) - .gsub!('PACKAGE VERSION', File.basename(md_path, '.*') + ' 1.0') - .gsub!('FULL NAME ', name) - .gsub!('charset=CHARSET', 'charset=UTF-8') +pot_clean = File.read(pot_path).split("\n")[5..-1].join("\n") +pot_clean.gsub!(/\n"\s/, "\n" + '"') +pot_clean.gsub!(/"Language.*?\n/, '') +pot_clean.gsub!(/"PO-Revision-Date:.*?\n/, '') +pot_clean.gsub!('"Report-Msgid-Bugs-To: ', '"Report-Msgid-Bugs-To: ' + name) +pot_clean.gsub!('PACKAGE VERSION', File.basename(md_path, '.*') + ' 1.0') +pot_clean.gsub!('FULL NAME ', name) +pot_clean.gsub!('charset=CHARSET', 'charset=UTF-8') pot = File.open(pot_path, 'w:UTF-8') pot.puts pot_clean pot.close diff --git a/config/build/postohtmls b/config/build/postohtmls new file mode 100755 index 0000000..07acfa4 --- /dev/null +++ b/config/build/postohtmls @@ -0,0 +1,97 @@ +#!/usr/bin/env ruby +# encoding: UTF-8 +# coding: UTF-8 + +require 'simple_po_parser' +require 'fileutils' +require 'time' + +# Displays message when something goes wrong +def check condition, err_msg + if condition then puts err_msg + ' For help use -h or --help.'; abort end +end + +# To the root directory +Dir.chdir(File.dirname(__FILE__) + '/../..') + +# Variables +po_dir = 'content/po/' +po_path = '' +html_dir = 'content/html/' +html_name = '' +html_tmp = '' +md_name = '' +primary = false + +# Displays help +if ARGV[0] =~ /-h/ + puts "postohtmls generates html files from pos files." + puts "\nUse:" + puts " postohtmls [po file] [option]" + puts "\nOption:" + puts " -p Indicates if is a primary HTML file." + puts "\nExamples:" + puts " postohtmls file.po" + puts " postohtmls file.po -m" + puts "\nA primary HTML is a content of the main sections." + puts "\nAll locales are converted to HTML." + puts "\nThe po file has to be in '#{po_dir}/*' and the html files are going to be stored in '#{html_dir}'." + abort +end + +# Checks if the user gave the path to the file +check(ARGV[0] == nil, "ERROR: File is required.") + +# Cleans path +po_path = po_dir + 'en/' + File.basename(ARGV[0]) +html_name = File.basename(ARGV[0], '.*') + '.html' + +# Checks if the file exists +check(File.exist?(po_path) == false, "ERROR: File doesn't exist.") + +# Checks if it is a primary file +if ARGV[1] != nil then primary = true end + +# Creates each HTML file +Dir.glob(po_dir + '*/*.po').each do |po| + if File.basename(po) == File.basename(po_path) + hash = { + "locale" => po.gsub(po_dir, '').split('/')[0], + "file" => html_name, + "content" => [] + } + + # Extracts the translations + SimplePoParser.parse(po)[1..-1].each do |e| + translation = e[:msgstr] + + if translation.class == Array + translation = translation.join('') + end + + hash["content"].push(translation + "\n\n") + end + + # Creates locale folder if it doesn't exists + if !File.directory?(html_dir + hash['locale']) + Dir.mkdir(html_dir + hash['locale']) + end + + Dir.chdir(html_dir + hash['locale']) + + # Creates a temporary MD file + md_name = File.basename(hash['file'], '.*') + '.md' + file = File.open(md_name, 'w:utf-8') + file.puts hash['content'] + file.close + + # Creates a temporary HTML file + puts "Creating #{html_dir + hash['locale'] + '/' + html_name}…" + system("pc-pandog -i #{md_name} -o #{html_name}") + FileUtils.rm(md_name) + + # html_tmp => read, regex, add template + + Dir.chdir('../../..') + end +end diff --git a/config/build/pottopos b/config/build/pottopos index f414069..0a94aca 100755 --- a/config/build/pottopos +++ b/config/build/pottopos @@ -2,10 +2,7 @@ # encoding: UTF-8 # coding: UTF-8 -require 'simple_po_parser' require 'fileutils' -require 'time' -require 'json' # Displays message when something goes wrong def check condition, err_msg @@ -45,7 +42,7 @@ check(ARGV[0] == nil, "ERROR: File is required.") pot_path = pot_dir + File.basename(ARGV[0]) po_name = File.basename(ARGV[0], '.*') + '.po' -# Check if the file exists +# Checks if the file exists check(File.exist?(pot_path) == false, "ERROR: File doesn't exist.") # Creates locale directory if need it diff --git a/config/template/site/footer.html b/config/template/site/footer.html new file mode 100644 index 0000000..6068ff3 --- /dev/null +++ b/config/template/site/footer.html @@ -0,0 +1,9 @@ + + + diff --git a/config/template/site/head.html b/config/template/site/head.html new file mode 100644 index 0000000..b35f3d8 --- /dev/null +++ b/config/template/site/head.html @@ -0,0 +1,15 @@ + + + + Publishing is Coding: Change My Mind | @title + + + + + + + + + + + diff --git a/config/template/site/header.html b/config/template/site/header.html new file mode 100644 index 0000000..7db0ed8 --- /dev/null +++ b/config/template/site/header.html @@ -0,0 +1,7 @@ + + +
+

Publishing is Coding: Change My Mind

+ +
diff --git a/content/html/en/_about.html b/content/html/en/_about.html new file mode 100644 index 0000000..f5698a5 --- /dev/null +++ b/content/html/en/_about.html @@ -0,0 +1,17 @@ + + + + + Título + + + +

About

+

Hi, I am a dog-publisher—what a surprise, right? I am mexican and, as you can see, English is not my first language. But whatever. My education background is on Philosophy, specifically Philosophy of Culture. My grade studies focus on intellectual property—mainly copyright—, free culture, free software and, of course, publishing. If you still want a name, call me Nika Zhenya.

+

This blog is about publishing and coding. But it doesn't approach on techniques that mades great code. Actually my programming skills are kind of narrow. I have the following opinions. (a) If you use a computer to made publications, not matter their output, publishing is coding. (b) Publishing it is not just about developing software or skills, it is also a tradition, a profession, an art but also a method. (c) To be able to visualize that, we have to talk about how publishing implies and affects how we do culture. (d) If we don't criticize and self-criticize our work, we are lost.

+

In other terms, this blog is about what surrounds and what is supposed to be the foundations of publishing. Yeah, of course you are gonna find technical writing. However, it is just because on those days the spine of publishing talks with zeros and ones. So, let start to think what is publishing nowadays!

+

Some last words. I have to admit I don't feel comfortable about writing in English. I find unfair that we, people from Latin America, have to use this language in order to be noticed. It makes me feel bad that we are constantly translating what other persons are saying while just a few homies translate from Spanish to English. So I decided to have at least a bilingual blog. I write in English while I translate to Spanish—so I can improve this skill; also: thanks SO for help me to improve the English version xoxo.

+

That is not enough and doesn't invite to collaboration. So this blog uses po files for its contents. You can always collaborate in the translation or edition of any language. Just contact me.

+

That's all folks! And don't forget: fuck adds. Fuck spam. And fuck proprietary culture. Freedom to the moon!

+ + diff --git a/content/html/es/_about.html b/content/html/es/_about.html new file mode 100644 index 0000000..eb09001 --- /dev/null +++ b/content/html/es/_about.html @@ -0,0 +1,10 @@ + + + + + Título + + + + + diff --git a/content/md/_donate.md b/content/md/_donate.md index a1c19a8..f817dfc 100644 --- a/content/md/_donate.md +++ b/content/md/_donate.md @@ -1,6 +1,6 @@ # Donate -_My server_ is actually an account powered by Hacklab Colima +_My server_ is actually an account powered by [Hacklab Colima](https://gnusocial.net/hacklab) ---thanks, dawgs, for host my crap!---. Also this blog and all the free publishing events that we organize are build with free labor. diff --git a/content/po/en/_about.po b/content/po/en/_about.po new file mode 100644 index 0000000..9cbcc33 --- /dev/null +++ b/content/po/en/_about.po @@ -0,0 +1,107 @@ +msgid "" +msgstr "" +"Project-Id-Version: _about 1.0\n" +"Report-Msgid-Bugs-To: Nika Zhenya \n" +"POT-Creation-Date: 2019-02-01 14:43-0600\n" +"Last-Translator: Automatically generated\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"PO-Revision-Date: 2019-02-01 14:43-0600\n" +"Language-Team: none\n" +"Language: en\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: content/md/_about.js:1 +msgid "# About" +msgstr "# About" + +#: content/md/_about.js:2 +msgid "" +"Hi, I am a dog-publisher---what a surprise, right? I am mexican and, as you " +"can see, English is not my first language. But whatever. My education " +"background is on Philosophy, specifically Philosophy of Culture. My grade " +"studies focus on intellectual property---mainly copyright---, free culture, " +"free software and, of course, publishing. If you still want a name, call me " +"Nika Zhenya." +msgstr "" +"Hi, I am a dog-publisher---what a surprise, right? I am mexican and, as you " +"can see, English is not my first language. But whatever. My education " +"background is on Philosophy, specifically Philosophy of Culture. My grade " +"studies focus on intellectual property---mainly copyright---, free culture, " +"free software and, of course, publishing. If you still want a name, call me " +"Nika Zhenya." + +#: content/md/_about.js:7 +msgid "" +"This blog is about publishing and coding. But it _doesn't_ approach on " +"techniques that mades great code. Actually my programming skills are kind of " +"narrow. I have the following opinions. (a) If you use a computer to made " +"publications, not matter their output, _publishing is coding_. (b) " +"Publishing it is not just about developing software or skills, it is also a " +"tradition, a profession, an art but also a _method_. (c) To be able to " +"visualize that, we have to talk about how publishing implies and affects how " +"we do culture. (d) If we don't criticize and _self-criticize_ our work, we " +"are lost." +msgstr "" +"This blog is about publishing and coding. But it _doesn't_ approach on " +"techniques that mades great code. Actually my programming skills are kind of " +"narrow. I have the following opinions. (a) If you use a computer to made " +"publications, not matter their output, _publishing is coding_. (b) " +"Publishing it is not just about developing software or skills, it is also a " +"tradition, a profession, an art but also a _method_. (c) To be able to " +"visualize that, we have to talk about how publishing implies and affects how " +"we do culture. (d) If we don't criticize and _self-criticize_ our work, we " +"are lost." + +#: content/md/_about.js:15 +msgid "" +"In other terms, this blog is about what surrounds and what is supposed to be " +"the foundations of publishing. Yeah, of course you are gonna find technical " +"writing. However, it is just because on those days the spine of publishing " +"talks with zeros and ones. So, let start to think what is publishing " +"nowadays!" +msgstr "" +"In other terms, this blog is about what surrounds and what is supposed to be " +"the foundations of publishing. Yeah, of course you are gonna find technical " +"writing. However, it is just because on those days the spine of publishing " +"talks with zeros and ones. So, let start to think what is publishing " +"nowadays!" + +#: content/md/_about.js:20 +msgid "" +"Some last words. I have to admit I don't feel comfortable about writing in " +"English. I find unfair that we, people from Latin America, have to use this " +"language in order to be noticed. It makes me feel bad that we are constantly " +"translating what other persons are saying while just a few homies translate " +"from Spanish to English. So I decided to have at least a bilingual blog. I " +"write in English while I translate to Spanish---so I can improve this skill; " +"also: thanks +++SO+++ for help me to improve the English version xoxo." +msgstr "" +"Some last words. I have to admit I don't feel comfortable about writing in " +"English. I find unfair that we, people from Latin America, have to use this " +"language in order to be noticed. It makes me feel bad that we are constantly " +"translating what other persons are saying while just a few homies translate " +"from Spanish to English. So I decided to have at least a bilingual blog. I " +"write in English while I translate to Spanish---so I can improve this skill; " +"also: thanks +++SO+++ for help me to improve the English version xoxo." + +#: content/md/_about.js:27 +msgid "" +"That is not enough and doesn't invite to collaboration. So this blog uses po " +"files for its contents. You can always collaborate in the translation or " +"edition of any language. Just [contact me](https://perrotuerto.blog/contact." +"html)." +msgstr "" +"That is not enough and doesn't invite to collaboration. So this blog uses po " +"files for its contents. You can always collaborate in the translation or " +"edition of any language. Just [contact me](https://perrotuerto.blog/contact." +"html)." + +#: content/md/_about.js:30 +msgid "" +"That's all folks! And don't forget: fuck adds. Fuck spam. And fuck " +"proprietary culture. Freedom to the moon! " +msgstr "" +"That's all folks! And don't forget: fuck adds. Fuck spam. And fuck " +"proprietary culture. Freedom to the moon! " diff --git a/content/po/es/_about.po b/content/po/es/_about.po new file mode 100644 index 0000000..9190b3d --- /dev/null +++ b/content/po/es/_about.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"Project-Id-Version: _about 1.0\n" +"Report-Msgid-Bugs-To: Nika Zhenya \n" +"POT-Creation-Date: 2019-02-01 14:43-0600\n" +"Last-Translator: Automatically generated\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"PO-Revision-Date: 2019-02-01 14:43-0600\n" +"Language-Team: none\n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: content/md/_about.js:1 +msgid "# About" +msgstr "" + +#: content/md/_about.js:2 +msgid "" +"Hi, I am a dog-publisher---what a surprise, right? I am mexican and, as you " +"can see, English is not my first language. But whatever. My education " +"background is on Philosophy, specifically Philosophy of Culture. My grade " +"studies focus on intellectual property---mainly copyright---, free culture, " +"free software and, of course, publishing. If you still want a name, call me " +"Nika Zhenya." +msgstr "" + +#: content/md/_about.js:7 +msgid "" +"This blog is about publishing and coding. But it _doesn't_ approach on " +"techniques that mades great code. Actually my programming skills are kind of " +"narrow. I have the following opinions. (a) If you use a computer to made " +"publications, not matter their output, _publishing is coding_. (b) " +"Publishing it is not just about developing software or skills, it is also a " +"tradition, a profession, an art but also a _method_. (c) To be able to " +"visualize that, we have to talk about how publishing implies and affects how " +"we do culture. (d) If we don't criticize and _self-criticize_ our work, we " +"are lost." +msgstr "" + +#: content/md/_about.js:15 +msgid "" +"In other terms, this blog is about what surrounds and what is supposed to be " +"the foundations of publishing. Yeah, of course you are gonna find technical " +"writing. However, it is just because on those days the spine of publishing " +"talks with zeros and ones. So, let start to think what is publishing " +"nowadays!" +msgstr "" + +#: content/md/_about.js:20 +msgid "" +"Some last words. I have to admit I don't feel comfortable about writing in " +"English. I find unfair that we, people from Latin America, have to use this " +"language in order to be noticed. It makes me feel bad that we are constantly " +"translating what other persons are saying while just a few homies translate " +"from Spanish to English. So I decided to have at least a bilingual blog. I " +"write in English while I translate to Spanish---so I can improve this skill; " +"also: thanks +++SO+++ for help me to improve the English version xoxo." +msgstr "" + +#: content/md/_about.js:27 +msgid "" +"That is not enough and doesn't invite to collaboration. So this blog uses po " +"files for its contents. You can always collaborate in the translation or " +"edition of any language. Just [contact me](https://perrotuerto.blog/contact." +"html)." +msgstr "" + +#: content/md/_about.js:30 +msgid "" +"That's all folks! And don't forget: fuck adds. Fuck spam. And fuck " +"proprietary culture. Freedom to the moon! " +msgstr "" diff --git a/content/pot/_about.pot b/content/pot/_about.pot new file mode 100644 index 0000000..c25f89e --- /dev/null +++ b/content/pot/_about.pot @@ -0,0 +1,71 @@ +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: _about 1.0\n" +"Report-Msgid-Bugs-To: Nika Zhenya \n" +"POT-Creation-Date: 2019-02-01 14:43-0600\n" +"Last-Translator: Nika Zhenya \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: content/md/_about.js:1 +msgid "# About" +msgstr "" + +#: content/md/_about.js:2 +msgid "" +"Hi, I am a dog-publisher---what a surprise, right? I am mexican and, as you " +"can see, English is not my first language. But whatever. My education " +"background is on Philosophy, specifically Philosophy of Culture. My grade " +"studies focus on intellectual property---mainly copyright---, free culture, " +"free software and, of course, publishing. If you still want a name, call me " +"Nika Zhenya." +msgstr "" + +#: content/md/_about.js:7 +msgid "" +"This blog is about publishing and coding. But it _doesn't_ approach on " +"techniques that mades great code. Actually my programming skills are kind of " +"narrow. I have the following opinions. (a) If you use a computer to made " +"publications, not matter their output, _publishing is coding_. (b) " +"Publishing it is not just about developing software or skills, it is also a " +"tradition, a profession, an art but also a _method_. (c) To be able to " +"visualize that, we have to talk about how publishing implies and affects how " +"we do culture. (d) If we don't criticize and _self-criticize_ our work, we " +"are lost." +msgstr "" + +#: content/md/_about.js:15 +msgid "" +"In other terms, this blog is about what surrounds and what is supposed to be " +"the foundations of publishing. Yeah, of course you are gonna find technical " +"writing. However, it is just because on those days the spine of publishing " +"talks with zeros and ones. So, let start to think what is publishing " +"nowadays!" +msgstr "" + +#: content/md/_about.js:20 +msgid "" +"Some last words. I have to admit I don't feel comfortable about writing in " +"English. I find unfair that we, people from Latin America, have to use this " +"language in order to be noticed. It makes me feel bad that we are constantly " +"translating what other persons are saying while just a few homies translate " +"from Spanish to English. So I decided to have at least a bilingual blog. I " +"write in English while I translate to Spanish---so I can improve this skill; " +"also: thanks +++SO+++ for help me to improve the English version xoxo." +msgstr "" + +#: content/md/_about.js:27 +msgid "" +"That is not enough and doesn't invite to collaboration. So this blog uses po " +"files for its contents. You can always collaborate in the translation or " +"edition of any language. Just [contact me](https://perrotuerto.blog/contact." +"html)." +msgstr "" + +#: content/md/_about.js:30 +msgid "" +"That's all folks! And don't forget: fuck adds. Fuck spam. And fuck " +"proprietary culture. Freedom to the moon! " +msgstr "" diff --git a/css/extra.css b/css/extra.css new file mode 100644 index 0000000..e69de29 diff --git a/css/styles.css b/css/styles.css new file mode 100644 index 0000000..b2b66ee --- /dev/null +++ b/css/styles.css @@ -0,0 +1,817 @@ +/**************************************************/ +/******************* RESETEADOR *******************/ +/**************************************************/ + +/* http://meyerweb.com/eric/tools/css/reset/ v2.0 */ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} + +/* Old browsers / Para viejos exploradores */ + +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} + +body { + line-height: 1.5; +} + +ol, ul { + list-style: none; +} + +blockquote, q { + quotes: none; +} + +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +/**************************************************/ + +/* Fuentes */ + +@font-face { + font-family: "Alegreya Regular"; + src: url(../ttf/alegreya-regular.ttf); +} + +@font-face { + font-family: "Alegreya Italic"; + src: url(../ttf/alegreya-italic.ttf); +} + +@font-face { + font-family: "Alegreya Bold"; + src: url(../ttf/alegreya-bold.ttf); +} + +@font-face { + font-family: "Alegreya BoldItalic"; + src: url(../ttf/alegreya-bolditalic.ttf); +} + +/* Body / Cuerpo */ + +@media screen and (min-width: 769px) { + body { + margin: 5em; + } + + .no-margin, .sin-margen { + margin: -5em; + } +} + +@media screen and (max-width: 768px) { + body { + margin: 4em; + } + + .no-margin, .sin-margen { + margin: -4em; + } +} + +@media screen and (max-width: 640px) { + body { + margin: 3em; + } + + .no-margin, .sin-margen { + margin: -3em; + } +} + +@media screen and (max-width: 480px) { + body { + margin: 2em; + } + + .no-margin, .sin-margen { + margin: -2em; + } +} + +@media screen and (max-width: 320px) { + body { + margin: 1em; + } + + .no-margin, .sin-margen { + margin: -1em; + } +} + +@media amzn-mobi, amzn-kf8 { /* For Kindle because it generates a lot of margin / Para Kindle porque genera mucho margen */ + body { + margin: 0; + } + + .no-margin, .sin-margen { + margin: 0; + } +} + +/* Sections / Secciones */ + +section + section { + margin-top: 10em; +} + +/* Headers / Encabezados */ + +h1, h2, h3, h4, h5, h6 { + font-family: "Alegreya Regular", Georgia, "Palatino Linotype", "Book Antiqua", Palatino, serif; + margin-bottom: 1em; + text-align: left; + font-size: 1em; + -moz-hyphens: none !important; + -webkit-hyphens: none !important; + -o-hyphens: none !important; + -ms-hyphens: none !important; + hyphens: none !important; +} + +h2, h3, h4, h5, h6 { + margin-top: 2em; +} + +h4, h5, h6 { + text-align: right; +} + +h1 { + margin-bottom: 6em; +} + +h3, h5 { + font-family: "Alegreya Italic", Georgia, "Palatino Linotype", "Book Antiqua", Palatino, serif; + font-style: italic; +} + +h6 { + font-family: "Alegreya Bold", Georgia, "Palatino Linotype", "Book Antiqua", Palatino, serif; + font-weight: bold; +} + +h1.title, h1.titulo { + margin-top: 4em; + margin-bottom: 0; + font-size: 2em; +} + +h2.subtitle, h2.subtitulo { + margin-top: .5em; + margin-bottom: 3em; + font-size: 1.25em; +} + +/* Paragraphs / Párrafos */ + +p, blockquote, li, figcaption, details, aside { + font-family: "Alegreya Regular", Georgia, "Palatino Linotype", "Book Antiqua", Palatino, serif; + font-size: 1em; + text-align: justify; + line-height: 1.5em; + -moz-hyphens: auto; + -webkit-hyphens: auto; + -o-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; +} + +p + p { + text-indent: 1.5em; +} + +blockquote { + font-size: .9em; + margin: 1em 1.5em; +} + +blockquote + blockquote { + text-indent: 1.5em; + margin-top: -1em; +} + +blockquote, blockquote > * { + line-height: 1.65; +} + +.justified, .justificado { + text-align: justify !important; +} + +.right, .derecha { + text-indent: 0; + text-align: right !important; +} + +.left, .izquierda { + text-align: left !important; +} + +.centered, .centrado { + text-indent: 0; + text-align: center !important; +} + +.hanging, .frances { + margin-left: 1.5em; + text-indent: -1.5em; + text-align: left !important; +} + +* + .hanging, * + .frances { + margin-top: 1em; +} + +.hanging + .hanging, .frances + .frances { + margin-top: 0; + text-indent: -1.5em; +} + +.indent, .sangria { + text-indent: 1.5em; +} + +.no-indent, .sin-sangria { + text-indent: 0; +} + +.no-hyphens, .sin-separacion { + -moz-hyphens: none !important; + -webkit-hyphens: none !important; + -o-hyphens: none !important; + -ms-hyphens: none !important; + hyphens: none !important; +} + +.invisible { + visibility: hidden; +} + +.hidden, .oculto { + display: none; +} + +.block, .bloque { + display: block; +} + +/* Font effects / Efectos en las fuentes */ + +i, em { + font-family: "Alegreya Italic", Georgia, "Palatino Linotype", "Book Antiqua", Palatino, serif; + font-style: italic; +} + +b, strong { + font-family: "Alegreya Bold", Georgia, "Palatino Linotype", "Book Antiqua", Palatino, serif; + font-weight: bold; +} + +i > b, b > i, +em > strong, strong > em, +i > strong, strong > i, +em > b, b > em { + font-family: "Alegreya BoldItalic", Georgia, "Palatino Linotype", "Book Antiqua", Palatino, serif; +} + +.initial, .capitular { + float: left; + font-size: 3em; + margin-top: .15em; + padding-right: .1em; +} + +.uppercase, .versal { + text-transform: uppercase; +} + +.normal, .redonda { + font-variant: none; +} + +.smallcap-light, .versalita-ligera { + font-variant: small-caps; + -moz-hyphens: auto; + -webkit-hyphens: auto; + -o-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; +} + +.smallcap, .versalita { + text-transform: lowercase; + font-variant: small-caps; + -moz-hyphens: auto; + -webkit-hyphens: auto; + -o-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; +} + +.underline, .subrayado { + text-decoration: underline black; +} + +.auto-width, .anchura-auto { + display: block; + width: auto; + margin-left: auto; + margin-right: auto; +} + +@media not amzn-mobi, not amzn-kf8 { /* For any device except Kindle / Para cualquier dispositivo excepto Kindle */ + .auto-width, .anchura-auto { + max-width: 100%; + } +} + +/* Links / Enlaces */ + +a, a:link, a:visited { + text-decoration: none; +} + +/* Lists / Listas */ + +ol, ul { + margin: 1em 1em 1em 2.5em; + padding: 0; +} + +ol { + list-style-type: decimal; +} + +ul { + list-style-type: disc; +} + +ol ol, ol ul, +ul ol, ul ul { + margin: 0 1em; +} + +ol p, ul p { + margin-left: .5em; +} + +ul.dash, ul.en-dash, ul.em-dash { + list-style-type: none; +} + +ul.dash > li:before, ul.en-dash > li:before, ul.em-dash > li:before { + display: block; + width: 1.5em; + text-align: right; + padding: 0 .5em 0 0; + margin: 0 0 -1.25em -2em; +} + +ul.dash > li:before { + content: "-"; +} + +ul.en-dash > li:before { + content: "–"; +} + +ul.em-dash > li:before { + content: "—"; +} + +li.no-count { + list-style-type: none; +} + +li.no-count:before { + content: none !important; +} + +.li-manual { + list-style-type: none; +} + +.li-manual > li > p:first-child > span:first-of-type:not(.versalita) { + display: block; + margin-left: -1.5em; + margin-bottom: -1.25em; +} + +li > .li-manual { + margin: 0 0 0 1.5em; +} + +/* Images / Imágenes */ + +img { /* It helps if the source doesn't exist / Ayuda a detectarlos si no existe el recurso */ + color: #0000EE; + width: 100%; +} + +figure { + margin: 2em auto; +} + +figcaption { + font-family: "Alegreya Regular", Georgia, "Palatino Linotype", "Book Antiqua", Palatino, serif; + margin-top: .5em; + font-size: .9em; +} + +figure + figure { + margin-top: 0; +} + +p + img { + margin-left: -1.5em; + margin-top: 2em; + margin-bottom: 2em; +} + +.caption, .leyenda { + font-size: .9em; + margin-top: -1.5em; + margin-bottom: 2em; +} + +.caption + img, .leyenda + img { + margin-top: 0; +} + +img + .caption, img + .leyenda { + margin-top: .5em; +} + +.caption + p, .leyenda + p { + text-indent: 0; +} + +p > img { + display: inline; + height: 1.5em; + width: auto; +} + +/* Superscript and subscripts / Superíndices y subíndices */ + +sup, sub { + font-size: .75em; + vertical-align: super; +} + +sub { + vertical-align: sub; +} + +/* Code / Código (inspirados en https://codepen.io/elomatreb/pen/hbgxp)*/ + +code { + font-family: "Courier New", Courier, monospace; + background-color: #fff; + padding: .125em .5em; + border: 1px solid #ddd; + border-radius: .25em; + -moz-hyphens: none; + -webkit-hyphens: none; + -o-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre { + width: 90%; + font-family: "Courier New", Courier, monospace; + background-color: #fff; + margin: 2em auto; + padding: .5em; + line-height: 1.5; + border-radius: .25em; + box-shadow: .1em .1em .5em rgba(0,0,0,.45); + white-space: unset; +} + +pre * { + color: #555; +} + +pre code { + display: block; + margin: 0; + padding: 0; + background-color: inherit; + border: none; + border-radius: 0; +} + +pre code:before { + width: 1.5em; + display: inline-block; + padding: 0 .5em; + margin-right: .5em; + color: #888; +} + +@media not amzn-mobi, not amzn-kf8 { /* For any device except Kindle / Para cualquier dispositivo excepto Kindle */ + pre { + counter-reset: line; + overflow: scroll; + } + + pre code:before { + counter-increment: line; + content: counter(line); + } + + pre code { + white-space: pre; + } +} + +@media amzn-mobi, amzn-kf8 { /* Only for Kindle / Solo para Kindle */ + pre code:before { + content: "•"; + } +} + +/* Glosses / Glosas */ + +section.gloss, body.gloss, section.glosa, body.glosa { /* El estilo ha de ponerse en el contenedor de los párrafos y en el span de la glosa */ + margin-right: 7em; +} + +span.gloss, span.glosa { + width: 6em; /* No son 7 porque se resta uno del margen añadido a continuación */ + margin-right: -8em; /* No son -7 porque se añade 1 de margen */ + float: right; + text-indent: 0; + text-align: left; + font-size: .75em; +} + +/* Poetry / Poesía:

Verse 1
verse 2
verse 3.

*/ + +.poetry, .poesia { + margin: 1em 1.5em; + text-indent: 0; + -moz-hyphens: none; + -webkit-hyphens: none; + -o-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +/* Screenwriting / Guiones */ + +.mono, +section.script *, section.guion * { + font-family: "Courier New", Courier, monospace; +} + +section.script *, section.guion * { + font-size: 1em; + font-style: normal; + font-weight: normal; + font-variant: normal; + margin: 0; + padding: 0; + text-indent: 0; + text-align: left; + -moz-hyphens: none !important; + -webkit-hyphens: none !important; + -o-hyphens: none !important; + -ms-hyphens: none !important; + hyphens: none !important; +} + +section.script ol, section.guion ol, +section.script ul, section.guion ul { + margin: 1em 2em; +} + +section.script h2, section.guion h2, +section.script h3, section.guion h3, +section.script blockquote, section.guion blockquote { + width: 60%; + margin-left: 3em; +} + +section.script h1, section.guion h1 { + text-transform: uppercase; + margin-bottom: 1em; +} + +section.script h2, section.guion h2 { + margin-top: 1em; + padding-left: 6em; + text-transform: uppercase; +} + +section.script h3, section.guion h3 { + padding-left: 3em; +} + +section.script > p, section.guion > p { + margin-top: 1em; +} + +section.script blockquote + blockquote > p, +section.guion blockquote + blockquote > p { + text-indent: 1.5em; +} + +/* Special contents / Contenidos especiales */ + +.title, .titulo { + margin-top: 3em; + margin-left: 0; + font-size: 2em; +} + +.subtitle, .subtitulo { + margin-top: -1.25em; + margin-bottom: 3em; + margin-left: 0; +} + +.author, .autor { + width: 250px; /* Avoids 100% width in author image / Se añade a la imagen del autor para que no abarque el 100% */ +} + +.contributor + p, .contribuidor + p { + text-indent: 0; +} + +h1 + .contributor, h1 + .contribuidor { + margin-top: -6em !important; + margin-bottom: 6em; +} + +.copyright, .legal * { + text-indent: 0; +} + +.epigraph, .epigrafe { + font-size: .9em; + text-align: right; + line-height: 1.65em; + margin-left: 40%; +} + +body > .epigraph:first-child, body > .epigrafe:first-child { + margin-top: 3em; +} + +.epigraph + p, .epigrafe + p { + margin-top: 2em; + text-indent: 0; +} + +.epigraph + .epigraph, .epigrafe + .epigrafe { + margin-top: .5em; +} + +.vertical-space1, .espacio-arriba1 { + margin-top: 1em !important; +} + +.vertical-space2, .espacio-arriba2 { + margin-top: 2em !important; +} + +.vertical-space3, .espacio-arriba3 { + margin-top: 3em !important; +} + +.space, .espacio { + white-space: pre-wrap; +} + +/* Footnotes / Notas al pie */ + +.n-note-sup { + font-style: normal; + font-weight: normal; +} + +.n-note-hr { + margin-top: 2em; + width: 25%; + margin-left: 0; + border: 1px solid blue; + background-color: blue; +} + +.n-note-a { + display: block; + margin-left: -3em; + margin-bottom: -1.375em; +} + +.n-note-sup:before, .n-note-a:before { + content: "["; + color: #0000EE; +} + +.n-note-sup:after, .n-note-a:after { + content: "]"; + color: #0000EE; +} + +.n-note-p, .n-note-p2 { + margin-left: 3em; + font-size: .9em; + text-indent: 0; +} + +* + .n-note-p { + margin-top: 1em; + text-indent: 0; +} + +.n-note-p2 { + margin-top: 0; + text-indent: 1.5em; +} + +/* Indexes / Índices analíticos */ + +.i-item-section p { + margin-top: .5em !important; +} + +.i-item-div > h2:first-child, .i-item-div-single > h2:first-child { + margin-top: 0; +} + +@media screen and (min-width:768px) { + @media not amzn-mobi, not-amzn-kf8 { /* For any device except Kindle / Para cualquier dispositivo excepto Kindle */ + .i-item-div { + column-count: 2; + column-gap: 2em; + column-rule: solid 1px lightgray; + } + } +} + +.i-item-a:before { + content: "["; + color: #0000EE; +} + +.i-item-a:after { + content: "]"; + color: #0000EE; +} + +/* For print / Para impresión */ + +@media print { + section { + page-break-before: always; + } + + section:first-of-type { + page-break-before: avoid; + } + + section > h1:first-child { + padding-top: 5em !important; + } +} + +/* Styles for this edition / Estilos de esta edición */ + +/* ADD HERE CUSTOM STYLES / AGREGAR ESTILOS PERSONALIZADOS */ diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..d1c929f Binary files /dev/null and b/icon.png differ diff --git a/js/extra.js b/js/extra.js new file mode 100644 index 0000000..e69de29 diff --git a/js/functions.js b/js/functions.js new file mode 100644 index 0000000..e69de29 diff --git a/js/piwik.js b/js/piwik.js new file mode 100644 index 0000000..4ff6574 --- /dev/null +++ b/js/piwik.js @@ -0,0 +1,11 @@ +var _paq = _paq || []; +/* tracker methods like "setCustomDimension" should be called before "trackPageView" */ +_paq.push(['trackPageView']); +_paq.push(['enableLinkTracking']); +(function() { + var u="https://analytics.cliteratu.re/"; + _paq.push(['setTrackerUrl', u+'piwik.php']); + _paq.push(['setSiteId', '12']); + 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+'piwik.js'; s.parentNode.insertBefore(g,s); +})(); diff --git a/ttf/alegreya-bold.ttf b/ttf/alegreya-bold.ttf new file mode 100644 index 0000000..102e158 Binary files /dev/null and b/ttf/alegreya-bold.ttf differ diff --git a/ttf/alegreya-bolditalic.ttf b/ttf/alegreya-bolditalic.ttf new file mode 100644 index 0000000..8d1b53b Binary files /dev/null and b/ttf/alegreya-bolditalic.ttf differ diff --git a/ttf/alegreya-italic.ttf b/ttf/alegreya-italic.ttf new file mode 100644 index 0000000..6692b10 Binary files /dev/null and b/ttf/alegreya-italic.ttf differ diff --git a/ttf/alegreya-regular.ttf b/ttf/alegreya-regular.ttf new file mode 100644 index 0000000..170a90e Binary files /dev/null and b/ttf/alegreya-regular.ttf differ