remove NodeJS
This commit is contained in:
parent
3cb4edbd55
commit
a696a12f2c
@ -34,6 +34,7 @@ help:
|
||||
@echo ' make html (re)generate the web site '
|
||||
@echo ' make clean remove the generated files '
|
||||
@echo ' make regenerate regenerate files upon modification '
|
||||
@echo ' make hashover_backup backup of hashover '
|
||||
@echo ' make publish generate using production settings '
|
||||
@echo ' make serve [PORT=8000] serve site at http://localhost:8000 '
|
||||
@echo ' make serve-global [SERVER=0.0.0.0] serve (as root) to $(SERVER):80 '
|
||||
@ -51,7 +52,7 @@ help:
|
||||
generate:
|
||||
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
|
||||
|
||||
html: generate vendor
|
||||
html: clean generate vendor
|
||||
|
||||
clean:
|
||||
[ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR)
|
||||
@ -96,8 +97,11 @@ publish: publishconf vendor
|
||||
ssh_upload: publish
|
||||
scp -P $(SSH_PORT) -r $(OUTPUTDIR)/* $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR)
|
||||
|
||||
hashover_backup:
|
||||
rsync -rvzc $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR)/hashover-next $(BASEDIR)/local.env/
|
||||
|
||||
rsync_upload: publish
|
||||
rsync -e "ssh -p $(SSH_PORT)" -P -rvzc --delete $(OUTPUTDIR)/ $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) --cvs-exclude
|
||||
rsync -e "ssh -p $(SSH_PORT)" -P -rvzc --delete $(OUTPUTDIR)/ $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR)/
|
||||
|
||||
ftp_upload: publish
|
||||
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
|
||||
|
16
README.md
16
README.md
@ -19,22 +19,8 @@ los siguientes programas instalados:
|
||||
de la página.
|
||||
* [BeautifulSoup4](https://pypi.python.org/pypi/beautifulsoup4/).
|
||||
Requerido por el complemento tipue-search.
|
||||
* [uglifycss](https://github.com/fmarcia/UglifyCSS). Compresor de código
|
||||
<abbr title="Cascading Style Sheets">CSS</abbr>.
|
||||
* [uglifyjs](http://lisperator.net/uglifyjs/). Compresor de código
|
||||
JavaScript.
|
||||
* [nodejs](https://nodejs.org/). Node.js® es un entorno de ejecución
|
||||
para JavaScript construido con el motor de JavaScript V8 de Chrome. Se
|
||||
utiliza para ejecutar uglifycss y uglifyjs.
|
||||
* [npm](https://www.npmjs.com/). Gestor de paquetes de nodejs. Utilizado
|
||||
para instalar uglifycss y uglifyjs.
|
||||
|
||||
Para instalar los compresores de CSS y JavaScript primero instala nodejs
|
||||
y npm. Finalmente, ejecuta:
|
||||
|
||||
`sudo npm install -g uglifycss uglify-es`
|
||||
|
||||
Opcionalmente podemos instalar `virtualenv` con:
|
||||
Instalar `virtualenv` con:
|
||||
|
||||
Distros basadas en Debian:
|
||||
|
||||
|
@ -5,11 +5,10 @@ Slug: librejs
|
||||
Status: hidden
|
||||
Title: LibreJS
|
||||
|
||||
<table id="jslicense-labels1" class="table table-striped table-dark">
|
||||
<table id="jslicense-labels1" class="table table-striped table-dark text-center">
|
||||
<caption class="text-center mb-2">Tabla de Licencias de JavaScript</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Archivo</th>
|
||||
<th>Licencia</th>
|
||||
<th>Fuente</th>
|
||||
@ -17,19 +16,16 @@ Title: LibreJS
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td><a href="../../theme/modules/plyr/plyr.min.js">plyr.min.js</a></td>
|
||||
<td><a href="https://www.freebsd.org/copyright/freebsd-license.html">Expat</a></td>
|
||||
<td><a href="https://libregit.org/heckyel/plyr/archive/v2.0.2.tar.gz">plyr.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td><a href="../../theme/js/play.js">play.js</a></td>
|
||||
<td><a href="http://www.gnu.org/licenses/gpl-3.0.html">GPL-3.0</a></td>
|
||||
<td><a href="../../theme/js/play.js">play.js</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td><a href="../../hashover-next/comments.php">hashover.js</a></td>
|
||||
<td><a href="http://www.gnu.org/licenses/agpl-3.0.html">AGPL-3.0</a></td>
|
||||
<td><a href="../../hashover-next/comments.php">hashover.js</a></td>
|
||||
|
6000
libretube-theme/static/css/bootstrap/bootstrap.css
vendored
Normal file
6000
libretube-theme/static/css/bootstrap/bootstrap.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
826
libretube-theme/static/css/styles.css
Normal file
826
libretube-theme/static/css/styles.css
Normal file
@ -0,0 +1,826 @@
|
||||
/*!
|
||||
* Author: jesus e.
|
||||
* Version: 1.2.10
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: local("Open Sans Regular"), local("OpenSans-Regular"), url(../fonts/opensans/latin.woff2) format("woff2");
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
body {
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
color: #fff;
|
||||
background: #111;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 24px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #007bff;
|
||||
}
|
||||
a:hover {
|
||||
color: #0091EA;
|
||||
text-decoration: none;
|
||||
transition: all 0.3s ease-in-out;
|
||||
-o-transition: all 0.3s ease-in-out;
|
||||
-ms-transition: all 0.3s ease-in-out;
|
||||
-moz-transition: all 0.3s ease-in-out;
|
||||
-webkit-transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
.hr-author {
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
a.link-author {
|
||||
color: #fff;
|
||||
}
|
||||
a.link-author:hover {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.style-scope svg {
|
||||
width: 0.8rem;
|
||||
height: 0.8rem;
|
||||
fill: #555;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
hr {
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
background-color: #222;
|
||||
border: none;
|
||||
margin: 30px 0;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 1rem;
|
||||
font-size: 1rem;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
summary {
|
||||
font-weight: 700;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
text-transform: uppercase;
|
||||
font-size: .8rem;
|
||||
}
|
||||
|
||||
.button {
|
||||
background-color: #0091EA;
|
||||
color: #fff;
|
||||
padding: 17px 25px;
|
||||
text-transform: uppercase;
|
||||
font-weight: 700;
|
||||
font-size: 12px;
|
||||
border: 2px solid #0091EA;
|
||||
float: left;
|
||||
border-radius: 999px;
|
||||
}
|
||||
.button:hover {
|
||||
background-color: #fff;
|
||||
color: #0288D1;
|
||||
border: 2px solid #0288D1;
|
||||
text-decoration: none;
|
||||
transition: all 0.3s ease-in-out;
|
||||
-o-transition: all 0.3s ease-in-out;
|
||||
-ms-transition: all 0.3s ease-in-out;
|
||||
-moz-transition: all 0.3s ease-in-out;
|
||||
-webkit-transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
.clear {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
video {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* highlight search */
|
||||
.highlighted {
|
||||
background: #0091EA;
|
||||
display: inline-block;
|
||||
font-weight: bold;
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
/* Code */
|
||||
code {
|
||||
background-color: #282828;
|
||||
color: #73d1ed;
|
||||
}
|
||||
|
||||
pre {
|
||||
background-color: #282828;
|
||||
color: #78dcfa;
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
/* Colors Code */
|
||||
.highlight {
|
||||
background: #000000;
|
||||
color: #cccccc;
|
||||
}
|
||||
.highlight pre {
|
||||
font-size: 75%;
|
||||
}
|
||||
.highlight .hll {
|
||||
background-color: #222222;
|
||||
}
|
||||
.highlight .c {
|
||||
color: #4E4F8E;
|
||||
}
|
||||
.highlight .err {
|
||||
color: #cccccc;
|
||||
border: 1px solid #FF0000;
|
||||
}
|
||||
.highlight .esc, .highlight .g {
|
||||
color: #cccccc;
|
||||
}
|
||||
.highlight .k {
|
||||
color: #cdcd00;
|
||||
}
|
||||
.highlight .l, .highlight .n {
|
||||
color: #cccccc;
|
||||
}
|
||||
.highlight .o {
|
||||
color: #3399cc;
|
||||
}
|
||||
.highlight .x {
|
||||
color: #cccccc;
|
||||
}
|
||||
.highlight .p {
|
||||
color: #fac0ba;
|
||||
}
|
||||
.highlight .ch, .highlight .cm, .highlight .cp, .highlight .cpf, .highlight .c1 {
|
||||
color: #4E4F8E;
|
||||
}
|
||||
.highlight .cs {
|
||||
color: #cd0000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .gd {
|
||||
color: #cd0000;
|
||||
}
|
||||
.highlight .ge {
|
||||
color: #cccccc;
|
||||
font-style: italic;
|
||||
}
|
||||
.highlight .gr {
|
||||
color: #FF0000;
|
||||
}
|
||||
.highlight .gh {
|
||||
color: #4E4F8E;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .gi {
|
||||
color: #00cd00;
|
||||
}
|
||||
.highlight .go {
|
||||
color: #888888;
|
||||
}
|
||||
.highlight .gp {
|
||||
color: #4E4F8E;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .gs {
|
||||
color: #cccccc;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .gu {
|
||||
color: #800080;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .gt {
|
||||
color: #0044DD;
|
||||
}
|
||||
.highlight .kc {
|
||||
color: #cdcd00;
|
||||
}
|
||||
.highlight .kd {
|
||||
color: #00cd00;
|
||||
}
|
||||
.highlight .kn {
|
||||
color: #cd00cd;
|
||||
}
|
||||
.highlight .kp, .highlight .kr {
|
||||
color: #cdcd00;
|
||||
}
|
||||
.highlight .kt {
|
||||
color: #00cd00;
|
||||
}
|
||||
.highlight .ld {
|
||||
color: #cccccc;
|
||||
}
|
||||
.highlight .m {
|
||||
color: #cd00cd;
|
||||
}
|
||||
.highlight .s {
|
||||
color: #cd0000;
|
||||
}
|
||||
.highlight .na {
|
||||
color: #cccccc;
|
||||
}
|
||||
.highlight .nb {
|
||||
color: #cd00cd;
|
||||
}
|
||||
.highlight .nc {
|
||||
color: #00cdcd;
|
||||
}
|
||||
.highlight .no, .highlight .nd, .highlight .ni {
|
||||
color: #cccccc;
|
||||
}
|
||||
.highlight .ne {
|
||||
color: #666699;
|
||||
font-weight: bold;
|
||||
}
|
||||
.highlight .nf, .highlight .nl, .highlight .nn, .highlight .nx, .highlight .py {
|
||||
color: #cccccc;
|
||||
}
|
||||
.highlight .nt {
|
||||
color: orange;
|
||||
}
|
||||
.highlight .nv {
|
||||
color: #00cdcd;
|
||||
}
|
||||
.highlight .ow {
|
||||
color: #cdcd00;
|
||||
}
|
||||
.highlight .w {
|
||||
color: #cccccc;
|
||||
}
|
||||
.highlight .mb, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .mo {
|
||||
color: #cd00cd;
|
||||
}
|
||||
.highlight .sb, .highlight .sc, .highlight .sd, .highlight .s2, .highlight .se, .highlight .sh, .highlight .si, .highlight .sx, .highlight .sr, .highlight .s1, .highlight .ss {
|
||||
color: #cd0000;
|
||||
}
|
||||
.highlight .bp {
|
||||
color: #cd00cd;
|
||||
}
|
||||
.highlight .vc, .highlight .vg, .highlight .vi {
|
||||
color: #00cdcd;
|
||||
}
|
||||
.highlight .il {
|
||||
color: #cd00cd;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
header {
|
||||
background: #222;
|
||||
}
|
||||
|
||||
.fixed-top {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
z-index: 4;
|
||||
}
|
||||
|
||||
.logo {
|
||||
max-width: 60%;
|
||||
}
|
||||
|
||||
#menu-toggle {
|
||||
position: relative;
|
||||
color: white;
|
||||
}
|
||||
#menu-toggle img {
|
||||
width: 20px;
|
||||
}
|
||||
|
||||
.menu-bars {
|
||||
left: 1rem;
|
||||
}
|
||||
|
||||
.menu-logo {
|
||||
position: relative;
|
||||
left: 2rem;
|
||||
}
|
||||
|
||||
input {
|
||||
border: 1px solid #000;
|
||||
color: #fff;
|
||||
font-size: 12px;
|
||||
padding: 0.5rem 1rem;
|
||||
width: 100%;
|
||||
background: url(../images/search.png) #111 no-repeat right 35px center;
|
||||
background-size: 3%;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.notifications {
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
margin: 0px;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.notifications li {
|
||||
list-style: none;
|
||||
}
|
||||
.notifications li:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
.notifications i {
|
||||
color: #bbc3ca;
|
||||
font-size: 20px;
|
||||
margin: 0rem 0.2rem;
|
||||
}
|
||||
.notifications span {
|
||||
border-radius: 50px;
|
||||
background-color: #0091EA;
|
||||
color: #fff;
|
||||
font-weight: 700;
|
||||
padding: 4px 9px;
|
||||
font-size: 11px;
|
||||
position: relative;
|
||||
top: -12px;
|
||||
left: -12px;
|
||||
}
|
||||
|
||||
/* Menu-profile */
|
||||
.menu-profile {
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-ms-flex-wrap: nowrap;
|
||||
flex-wrap: nowrap;
|
||||
-ms-flex-pack: end;
|
||||
justify-content: flex-end;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
}
|
||||
.menu-profile ul {
|
||||
display: -ms-inline-flexbox;
|
||||
display: inline-flex;
|
||||
list-style: none;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.image-profile-menu {
|
||||
width: 1rem;
|
||||
}
|
||||
.image-profile-menu img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.log-out a {
|
||||
background: #0091EA;
|
||||
color: white;
|
||||
padding: .2rem;
|
||||
font-size: .8rem;
|
||||
font-weight: 700;
|
||||
}
|
||||
.log-out a:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
/*----------------------*/
|
||||
.username {
|
||||
color: #fff;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
/* header mt-6 */
|
||||
.mt-6, .my-6 {
|
||||
margin-top: 6rem !important;
|
||||
}
|
||||
|
||||
/* Tabs */
|
||||
.tab {
|
||||
text-align: center;
|
||||
margin: -10px 0;
|
||||
}
|
||||
.tab li {
|
||||
display: inline-block;
|
||||
text-transform: uppercase;
|
||||
color: #808791;
|
||||
font-weight: 700;
|
||||
font-size: 12px;
|
||||
margin: 0 20px;
|
||||
}
|
||||
.tab li:hover {
|
||||
color: #0091EA;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s ease-in-out;
|
||||
-o-transition: all 0.3s ease-in-out;
|
||||
-ms-transition: all 0.3s ease-in-out;
|
||||
-moz-transition: all 0.3s ease-in-out;
|
||||
-webkit-transition: all 0.3s ease-in-out;
|
||||
}
|
||||
.tab li > a {
|
||||
color: white;
|
||||
}
|
||||
.tab .active {
|
||||
border-bottom: 3px solid #0091EA;
|
||||
padding-bottom: 20px;
|
||||
margin-bottom: -20px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/* Main Content */
|
||||
details {
|
||||
font-size: 14px;
|
||||
}
|
||||
details > ul, details > ol {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
caption {
|
||||
color: #fff;
|
||||
caption-side: top;
|
||||
}
|
||||
|
||||
.main-videos h2 {
|
||||
margin: 0px 0px 0px 0px;
|
||||
font-weight: 900;
|
||||
font-size: 1rem;
|
||||
text-align: center;
|
||||
}
|
||||
.main-videos h2 > a {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.area {
|
||||
position: relative;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.duration {
|
||||
background-color: #000;
|
||||
color: #fff;
|
||||
padding: 2px 5px;
|
||||
text-transform: uppercase;
|
||||
font-weight: 700;
|
||||
font-size: 12px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: .2rem;
|
||||
}
|
||||
|
||||
p.views {
|
||||
color: #343434;
|
||||
}
|
||||
|
||||
.video p {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #757a80;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
.area:hover .mask {
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
opacity: 100;
|
||||
transition: all 0.3s ease-in-out;
|
||||
-o-transition: all 0.3s ease-in-out;
|
||||
-ms-transition: all 0.3s ease-in-out;
|
||||
-moz-transition: all 0.3s ease-in-out;
|
||||
-webkit-transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
.vertical-align {
|
||||
position: relative;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
-webkit-transform: translateY(-50%);
|
||||
-ms-transform: translateY(-50%);
|
||||
}
|
||||
|
||||
.mask {
|
||||
position: absolute;
|
||||
background-color: rgba(17, 17, 17, 0.5);
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
opacity: 0;
|
||||
}
|
||||
.mask p {
|
||||
color: #fff;
|
||||
font-weight: 700;
|
||||
}
|
||||
.mask i {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.mini {
|
||||
list-style: none;
|
||||
}
|
||||
.mini h4 {
|
||||
margin-top: 13px;
|
||||
font-weight: 700;
|
||||
}
|
||||
.mini p {
|
||||
font-size: 12px;
|
||||
margin-top: 6px;
|
||||
}
|
||||
.mini .duration {
|
||||
padding: 2px 5px;
|
||||
}
|
||||
.mini .mask p {
|
||||
display: none;
|
||||
}
|
||||
.mini .soumaicon.play svg {
|
||||
width: 3rem;
|
||||
height: 3rem;
|
||||
}
|
||||
|
||||
li.mini:nth-child(2) {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.video h4 {
|
||||
margin-top: 15px;
|
||||
font-weight: 400;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.single-channel .video p {
|
||||
margin-top: 7px;
|
||||
}
|
||||
|
||||
/* Channel Information Section */
|
||||
.channel-bio hr {
|
||||
margin: 20px 0;
|
||||
}
|
||||
.channel-bio p {
|
||||
text-align: justify;
|
||||
}
|
||||
.channel-bio .button {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.channel-name {
|
||||
font-weight: 500;
|
||||
font-size: 16px;
|
||||
}
|
||||
.channel-name img {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.page-item:first-child .page-link > span, .page-item:last-child .page-link > span {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.page-link {
|
||||
background-color: #222;
|
||||
border: 1px solid #111;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.page-item.disabled .page-link {
|
||||
pointer-events: none;
|
||||
cursor: auto;
|
||||
background-color: #111;
|
||||
border-color: #222;
|
||||
}
|
||||
|
||||
.page-link:hover {
|
||||
text-decoration: none;
|
||||
background-color: #0091EA;
|
||||
border: solid 1px #026de0;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.page-item.active .page-link {
|
||||
color: #fff;
|
||||
background-color: #0091EA;
|
||||
border-color: #0091EA;
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
text-align: center;
|
||||
padding: 0 0 30px;
|
||||
}
|
||||
footer li {
|
||||
display: inline;
|
||||
margin: 0 15px;
|
||||
}
|
||||
footer ul:nth-child(1) a {
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
color: #fff;
|
||||
}
|
||||
footer ul:nth-child(2) {
|
||||
margin: 20px 0;
|
||||
}
|
||||
footer ul:nth-child(2) a {
|
||||
color: #f5f5f5;
|
||||
}
|
||||
footer li a:hover {
|
||||
color: #0091EA;
|
||||
text-decoration: none;
|
||||
transition: all 0.3s ease-in-out;
|
||||
-o-transition: all 0.3s ease-in-out;
|
||||
-ms-transition: all 0.3s ease-in-out;
|
||||
-moz-transition: all 0.3s ease-in-out;
|
||||
-webkit-transition: all 0.3s ease-in-out;
|
||||
}
|
||||
footer > h4, footer > h6 {
|
||||
color: #aaa7a7;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
/* Sidebar */
|
||||
.title {
|
||||
color: #00A5FF;
|
||||
text-transform: uppercase;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
margin-top: 0px;
|
||||
/* Adjust vertical columm with menu-bar */
|
||||
}
|
||||
.sidebar ul {
|
||||
margin-bottom: 5px;
|
||||
list-style: none;
|
||||
}
|
||||
.sidebar li {
|
||||
line-height: 40px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.sidebar a {
|
||||
color: #828c95;
|
||||
font-weight: 500;
|
||||
}
|
||||
.sidebar a:hover {
|
||||
color: #0091EA;
|
||||
text-decoration: none;
|
||||
}
|
||||
.sidebar i {
|
||||
font-size: 20px;
|
||||
margin-right: 15px;
|
||||
}
|
||||
.sidebar #subs img {
|
||||
margin-right: 15px;
|
||||
width: 25px;
|
||||
}
|
||||
|
||||
#playlist p {
|
||||
font-size: 12px;
|
||||
font-weight: 300;
|
||||
margin-left: 35px;
|
||||
margin-top: -15px;
|
||||
}
|
||||
#playlist i {
|
||||
float: left;
|
||||
}
|
||||
|
||||
#sidebar-wrapper {
|
||||
padding-top: 10px;
|
||||
padding-left: 30px;
|
||||
padding-right: 30px;
|
||||
margin-bottom: -10px;
|
||||
font-weight: 600;
|
||||
font-size: 14px;
|
||||
background-color: #111;
|
||||
border-right: 1px solid #dbdee0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
z-index: 1000;
|
||||
left: 0;
|
||||
position: fixed;
|
||||
width: 300px;
|
||||
margin-left: -300px;
|
||||
overflow-x: hidden;
|
||||
overflow-y: hidden;
|
||||
transition: all 0.3s ease-in-out;
|
||||
-o-transition: all 0.3s ease-in-out;
|
||||
-ms-transition: all 0.3s ease-in-out;
|
||||
-moz-transition: all 0.3s ease-in-out;
|
||||
-webkit-transition: all 0.3s ease-in-out;
|
||||
}
|
||||
#sidebar-wrapper.active {
|
||||
left: 300px;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
#menu-close {
|
||||
padding: 7px 0;
|
||||
}
|
||||
#menu-close img {
|
||||
width: 10px;
|
||||
}
|
||||
|
||||
/* Main */
|
||||
h2.title-video {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
soumaicon {
|
||||
display: -ms-inline-flexbox;
|
||||
display: inline-flex;
|
||||
-ms-flex-line-pack: center;
|
||||
align-content: center;
|
||||
}
|
||||
|
||||
/*------ play icon -------*/
|
||||
.soumaicon svg {
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
fill: currentcolor;
|
||||
}
|
||||
.soumaicon:hover svg {
|
||||
fill: #0091EA;
|
||||
}
|
||||
.soumaicon.play svg {
|
||||
width: 4rem;
|
||||
height: 4rem;
|
||||
}
|
||||
.soumaicon.play:hover svg {
|
||||
fill: currentcolor;
|
||||
}
|
||||
|
||||
/*------- End play -------*/
|
||||
@media only screen and (max-width: 991px) {
|
||||
.logo {
|
||||
max-width: 15%;
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
.menu-profile {
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.mt-8 {
|
||||
margin-top: 8rem !important;
|
||||
}
|
||||
|
||||
.mt-10 {
|
||||
margin-top: 10rem !important;
|
||||
}
|
||||
}
|
||||
@media only screen and (max-width: 480px) {
|
||||
.logo {
|
||||
max-width: 20%;
|
||||
}
|
||||
|
||||
.channel-bio .button {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
ul#user-info {
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-ms-flex-direction: column;
|
||||
flex-direction: column;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.notifications {
|
||||
position: relative;
|
||||
right: 0px;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
.ml-1 {
|
||||
margin-left: -15px !important;
|
||||
}
|
||||
|
||||
.mt-8, .mt-10 {
|
||||
margin-top: 1rem !important;
|
||||
}
|
||||
|
||||
.fixed-top {
|
||||
position: relative;
|
||||
top: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
z-index: 3;
|
||||
}
|
||||
}
|
4
libretube-theme/static/css/styles.min.css
vendored
4
libretube-theme/static/css/styles.min.css
vendored
File diff suppressed because one or more lines are too long
@ -18,7 +18,7 @@
|
||||
|
||||
<!-- Bootstrap 4.3.1 -->
|
||||
<link href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/css/bootstrap/bootstrap.min.css" rel="stylesheet"
|
||||
integrity="sha384-ONlyUYiydvEl2Z0Ek20D0U9Qluun2QM6+pzDuFhgbkByDrwjhKo6ENYGZyBtGDVr">
|
||||
integrity="sha384-63+VK53+oFYHzIqG3ljBEZ1Pr9+l0uKU+6UK4YsgNZtVkXQQtsvr0TRcBxncV0gG">
|
||||
<!-- Main Styling -->
|
||||
<link href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/css/styles.min.css" rel="stylesheet">
|
||||
|
||||
|
@ -24,7 +24,7 @@ MARKDOWN = {
|
||||
|
||||
PATH = 'content'
|
||||
PLUGIN_PATHS = ['plugins']
|
||||
PLUGINS = ['another_read_more_link', 'i18n_subsites', 'neighbors', 'pelican-css-js', 'sitemap', 'tag-cloud', 'tipue-search']
|
||||
PLUGINS = ['another_read_more_link', 'compressor', 'i18n_subsites', 'neighbors', 'pelican-css-js', 'sitemap', 'tag-cloud', 'tipue-search']
|
||||
# PAGE_PATHS = ['pages']
|
||||
# PAGE_URL = 'pages/{slug}/'
|
||||
# PAGE_SAVE_AS = 'pages/{slug}/index.html'
|
||||
|
@ -9,31 +9,36 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
# Display command output on DEBUG and TRACE
|
||||
SHOW_OUTPUT = logger.getEffectiveLevel() <= logging.DEBUG
|
||||
PATH_CSS = 'output/theme/css/'
|
||||
PATH_JS = 'output/theme/js/'
|
||||
|
||||
"""
|
||||
Minify CSS and JS files in output path
|
||||
with uglifycss and uglifyjs.
|
||||
with css-html-js-minify.
|
||||
"""
|
||||
|
||||
|
||||
def minify(pelican):
|
||||
"""
|
||||
Minify CSS and JavaScript
|
||||
:param pelican: The Pelican instance
|
||||
"""
|
||||
for dirpath, _, filenames in os.walk(pelican.settings['OUTPUT_PATH']):
|
||||
for dirpathcss, _, filenames in os.walk(PATH_CSS):
|
||||
for name in filenames:
|
||||
if os.path.splitext(name)[1] in ('.css'):
|
||||
filepath = os.path.join(dirpath, name)
|
||||
logger.info('minifiy %s with uglifycss', filepath)
|
||||
debug = '--debug' if SHOW_OUTPUT else ''
|
||||
call('uglifycss {} --output {} {}'.format(debug, filepath, filepath),
|
||||
filepath = os.path.join(dirpathcss, name)
|
||||
logger.info('minifiy %s with css-html-js-minify', filepath)
|
||||
call('css-html-js-minify {}'.format(filepath),
|
||||
shell=True)
|
||||
elif os.path.splitext(name)[1] in ('.js'):
|
||||
filepath = os.path.join(dirpath, name)
|
||||
logger.info('minifiy %s with uglifyjs', filepath)
|
||||
verbose = '-v' if SHOW_OUTPUT else ''
|
||||
min_filepath = filepath[:-3] + '.min' + filepath[-3:]
|
||||
call("uglifyjs {} {} -o {} --mangle".format(filepath, verbose, min_filepath),
|
||||
|
||||
for dirpathjs, _, filenames in os.walk(PATH_JS):
|
||||
for name in filenames:
|
||||
if os.path.splitext(name)[1] in ('.js'):
|
||||
filepath = os.path.join(dirpathjs, name)
|
||||
logger.info('minifiy %s with css-html-js-minify', filepath)
|
||||
call("css-html-js-minify {}".format(filepath),
|
||||
shell=True)
|
||||
|
||||
|
||||
def register():
|
||||
signals.finalized.connect(minify)
|
||||
|
@ -1,6 +1,7 @@
|
||||
Babel==2.6.0
|
||||
beautifulsoup4==4.7.1
|
||||
blinker==1.4
|
||||
css-html-js-minify==2.5.5
|
||||
docutils==0.14
|
||||
feedgenerator==1.9
|
||||
html5validator==0.3.1
|
||||
|
Loading…
x
Reference in New Issue
Block a user