const pug = require('pug');
const pbem = require('pbem');
const scope = pbem({
blocksDir: __dirname + 'views/blocks'
}).precompile();
const separateTemplate = pug.compileFile(__dirname + 'views/page.pug');
let renderedSeparateTemplate = separateTemplate({
block: scope.createBlock
});
!= block('block-name').local('varName', 'varValue')
div&attributes( attributes() )
!= element('element-name').local('varName', varName)
@mobile: (max-width: 460px);
@tablet: (min-width: 461px) and (max-width: 970px);
@desktop: (min-width: 971px);
// Значения придуманы от балды
.selector {
@media @mobile {
// ...
}
@media @tablet {
// ...
}
@media @desktop {
// ...
}
}
/* Файл /bem/block/block.less */
.block {
@media @mobile {
// ...
}
@media @tablet {
// ...
}
@media @desktop {
// ...
}
}
/* Файл /bem/block/__element/block__element.less */
.block {
&__element {
@media @mobile {
// ...
}
@media @tablet {
// ...
}
@media @desktop {
// ...
}
}
}
- Опа, а у меня нет такого шрифта.
- Где же мне его взять?..
- О, вот — в
@font-face
указано, где он лежит.- Загружаю.
sticky
:.menu {
background-color: blue;
width: 10%;
height: 600px;
position: absolute; /* а transition нам не нужен */
}
.menu.sticky {
top: 0;
position: fixed;
}
$(document).ready(function() {
var menu = $('.menu');
var menuPosition = menu.offset().top;
$(window).scroll(function () {
if ($(window).scrollTop() > menuPosition){
menu.addClass('sticky');
} else {
menu.removeClass('sticky');
}
});
});
<header class="header">
<!-- Название сайта -->
{% if page.layout == 'page' %}
<p class="title">Вася Пупкин</p>
{% elsif page.layout == 'intro' %}
<h1 class="title">Вася Пупкин</h1>
{% endif %}
<p class="description">Кто такой Вася</p>
</header>
<main>
<!-- Название страницы -->
{% if page.layout == 'page' %}
<h1 class="title">Заголовок страницы</h1>
{% elsif page.layout == 'intro' %}
<h2 class="title">Портфолио</h2>
{% endif %}
{{ content }}
</main>
<footer class="footer">
<div class="contacts">
{% if page.layout == 'page' %}
<h1 class="title">Вася Пупкин</h1>
{% elsif page.layout == 'intro' %}
<h2 class="title">Контакты</h2>
{% endif %}
<!-- Кстати да, в <address> нельзя помещать заголовки и секционные элементы -->
<address>
<ul>...</ul>
</address>
</div>
<div class="copy">
<h1 class="title">Авторские права</h1>
<p>© Вася Пупкин</p>
<p>И ещё чьи-то права</p>
</div>
</footer>
page.layout == 'page'
W3C валидатор генерирует следующий outline:- Заголовок страницы (h1)
- Раздел1 (h2)
- Подраздел1 (h3)
- Подраздел2 (h3)
- Раздел2 (h2)
- Вася Пупкин (h1)
- Авторские права (h1)
page.layout == 'intro'
, то:- Вася Пупкин (h1)
- Портфолио (h2)
- Раздел1 (h3)
- Раздел2 (h3)
- Контакты (h2)
- Авторские права (h1)
<section>
уже писали на Хабре, и в данном случае я думаю, что <footer>
внутри <section>
— это взаимоисключающие вещи. И, более того, тэг <section>
априори подразумевает вложенность. То есть контент внутри него не может быть верхнего уровня. Даже валидатор напрягается по поводу присутствия <h1>
внутри <section>
, а в outline отображает такой заголовок как вложенный. // Если просто регулярка, то:
var botLoginReg = /^(?!(login1|login2|login3)$)[a-z\d_]{5,16}$/i;
// Если есть массив с логинами (наверняка есть):
var botsLoginsArray = [
'login1',
'login2',
'login3'
];
var botLoginReg = new RegExp(`^(?!(${botsLoginsArray.join('|')})$)[a-zA-Z\d_]{5,16}`, 'i');
wget 'http://mirror.yandex.ru/ubuntu/dists/wily/main/binary-amd64/Packages.gz'
на удалённом сервере, увидел, что скорость до зеркала очень даже ничего. Позвонил провайдеру, мне сказали, что виноват роутер. Подключил кабель провайдера напрямую — получил скорость по тарифу. Скачал файл. Подключился обратно через роутер — скачал тот же файл с той же скоростью, а новый файл — снова медленно. Я так понимаю, как и догадывался Влад Животнев, у них там кеширующий прокси, но изначально причина не в этом. Оператор сказал мне, что проблема может быть в том, что сервер зеркала сам режет скорость, отвечая на серый IP, и что сейчас они назначат мне белый IP, мол это всё, что они могут для меня сделать.wget 'http://mirror.yandex.ru/ubuntu/dists/wily/Contents-amd64.gz';
wget 'http://archive.ubuntu.com/ubuntu/dists/wily/Contents-amd64.gz';
# Скорость отличная.
~/bin/
. if(isset($_POST['submit'])) // у Вас по данному условию выполняется только
$address = $_POST['address']; // это
// А вот всё следующее выполняется В ЛЮБОМ СЛУЧАЕ:
$IP = $_POST['IP'];
$sql = 'INSERT INTO table(address, IP, Login, TV, Terminal, monitoring) '
. 'VALUES("'.$address.'", "'.$IP.'", "'.$IP.'", "'.$IP.'", "'.$IP.'", "'.$IP.'")';
// проверка
if(!mysql_query($sql)) {
echo '<center><p><b>Ошибка при добавлении данных!</b></p></center>';
} else {
echo '<center><p><b>Данные добавлены!</b></p></center>';
}