Букмарклет (англ. bookmarklet; bookmark — «закладка» и applet — «апплет») — небольшая JavaScript-программа, оформленная как javascript: URL и сохраняемая как браузерная закладка.

Инструкция по использованию (видео демонстрация). Коротко: 1) перетаскиваем ссылку на панель закладок; 2) нажимаем соответствующую закладку для совершения определенного действия.

Читать далее «Букмарклеты»

Выбираем технический виноград для черноземья

Интересуют только технические (т.е. для виноделия) сорта. Почитав различные форумы и статьи отобрал следующие сорта:

Красные: Каберне Кортис, Маркетт, Леон Мийо, Рондо, ЧБЗ, Регент, Голубок, Августа.

Белые: Цитронный Магарача, Дружба

Интересно есть ли локализованные пино или саперави?

Планы домов

Ссылки на планы домов:



Идиомы английского языка

I couldn’t agree more = Не могу не согласиться

Agree completely. Typically used in the first person (preceded by «I»), but also seen in some third-person constructions.

A: «Regardless of what your political views are, we need more civility in our discourse.»
B: «I couldn’t agree more. I’m glad to hear you say that.» We’ve heard what you’ve had to say, and frankly we couldn’t agree more. It’s just that we don’t have the funding.

Show someone the rope = Показать как надо

To explain or demonstrate to someone how to do or perform a job, task, or activity.

I know there’s a lot to take in, but your partner has been here for over 10 years and will show you the ropes. This class is intense! You’re expected to know to do everything from day one, without anyone showing you the ropes.

touch wood = постучим по дереву

A superstitious expression said, typically in combination with actually touching or knocking on a wooden object or surface, when one desires something positive to continue, lest the mention of it «jinx» or somehow reverse one’s good fortune. More commonly expressed as «knock on wood.»

I’ve been driving for 36 years and have never been in an accident. Touch wood! Hopefully, touch wood, we’ll continue to avoid sickness this winter.

Фиксированный (липкий) блок при прокрутке

Небольшой код на JavaScript позволяет сделать на странице фиксированный/липкий(sticky) блок

function getTopOffset(e) { 
    var y = 0;
    do { y += e.offsetTop; } while (e = e.offsetParent);
    return y;
var block = document.getElementById('fixblock'); /* fixblock - значение атрибута id блока */
if ( null != block ) {
    var topPos = getTopOffset( block );

    window.onscroll = function() {
  var scrollHeight = Math.max( document.documentElement.scrollHeight, document.documentElement.clientHeight),

      // высота рекламного блока
      blockHeight = 450,

      // высота подвала
      footerHeight =  250, 

      // считаем позицию, до которой блок будет зафиксирован 
      stopPos = scrollHeight - blockHeight - footerHeight; 

  var newcss = (topPos < window.pageYOffset) ? 
      'margin-left: 25px; top: 5px; position: fixed;' : 'position:static;';

  if ( window.pageYOffset > stopPos ) 
      newcss = 'position:static;';

  block.setAttribute( 'style', newcss );



Исходная css нормализация для WordPress

Версия 1.0 Для кастомной темы HSTR

# Normalize based on 
/*not important tags normalization*/
abbr[title] {border-bottom: 1px dotted;}
b,strong {font-weight: bold;}
dfn {font-style: italic;}
mark {background: #ff0;	color: #000;}
small {font-size: 80%;}
sub,sup {font-size: 75%;	line-height: 0;	position: relative;	vertical-align: baseline;}
sup {top: -0.5em;}
sub {bottom: -0.25em;}
svg:not(:root) {	overflow: hidden;}
figure {margin: 1em 40px;}
hr {box-sizing: content-box;height: 0;}
pre {overflow: auto;}
code,kbd,pre,samp {font-family: monospace, monospace;font-size: 1em;}
fieldset {border: 1px solid #c0c0c0;margin: 0 2px;	padding: 0.35em 0.625em 0.75em;}
legend {border: 0;padding: 0;}
optgroup {font-weight: bold;}
article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary {	display: block;}
audio,canvas,progress,video {	display: inline-block;	vertical-align: baseline;}
audio:not([controls]) {	display: none;	height: 0;}
[hidden],template {	display: none;}
dfn, cite, em, i {	font-style: italic;}
blockquote {margin: 0 1.5em;}
address {margin: 0 0 1.5em;}
pre {background: #eee;font-family: "Courier 10 Pitch", Courier, monospace;font-size: 15px;font-size: 0.9375rem;line-height: 1.6;margin-bottom: 1.6em;max-width: 100%;overflow: auto;padding: 1.6em;}
code, kbd, tt, var {font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;font-size: 15px;font-size: 0.9375rem;}
abbr, acronym {border-bottom: 1px dotted #666;cursor: help;}
mark, ins {background: #fff9c0;text-decoration: none;}
big {font-size: 125%;}
blockquote, q {quotes: "" "";}
blockquote:before, blockquote:after, q:before, q:after {content: "";}
hr {background-color: #ccc;border: 0;height: 1px;margin-bottom: 1.5em;}
dt {font-weight: bold;}
dd {margin: 0 1.5em 1.5em;}
figure {margin: 1em 0;}
/*forms and buttons*/
button,input[type="button"],input[type="reset"],input[type="submit"] {border: 1px solid;border-color: #ccc #ccc #bbb;border-radius: 3px;background: #e6e6e6;color: rgba(0, 0, 0, 0.8);font-size: 12px;font-size: 0.75rem;line-height: 1;padding: .6em 1em .4em;}
button:hover,input[type="button"]:hover,input[type="reset"]:hover,input[type="submit"]:hover {border-color: #ccc #bbb #aaa;}
button:active, button:focus,input[type="button"]:active,input[type="button"]:focus,input[type="reset"]:active,input[type="reset"]:focus,input[type="submit"]:active,input[type="submit"]:focus {border-color: #aaa #bbb #bbb;}
input[type="text"],input[type="email"],input[type="url"],input[type="password"],input[type="search"],input[type="number"],input[type="tel"],input[type="date"],input[type="month"],input[type="week"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="color"],textarea {color: #666;border: 1px solid #ccc;border-radius: 3px;padding: 3px;}
input[type="text"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="password"]:focus,input[type="search"]:focus,input[type="number"]:focus,input[type="tel"]:focus,input[type="range"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="week"]:focus,input[type="time"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="color"]:focus,textarea:focus {color: #111;}
input[type="range"] {color: #fff;height:20px;border-radius: 8px;background:-webkit-gradient(linear,center top, center bottom, from(#CFDCDD),to(#DFE9EA),color-stop(50%,#DFE9EA));}
select {	border: 1px solid #ccc;}
textarea {width: 100%; overflow: auto;}
button,input,optgroup,select,textarea {color: inherit;font: inherit;margin: 0;}
button {overflow: visible;}
button,select {text-transform: none;}
button,html input[type="button"],input[type="reset"],input[type="submit"] {-webkit-appearance: button;	cursor: pointer;}
button[disabled],html input[disabled] {cursor: default;}
button::-moz-focus-inner,input::-moz-focus-inner {	border: 0;	padding: 0;}
input {	line-height: normal;}
input[type="checkbox"],input[type="radio"] {	box-sizing: border-box;	padding: 0;}
input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button {height: auto;}
input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration {-webkit-appearance: none;}
/*Main tags normalization*/
*,*:before,*:after {	box-sizing: inherit;/* Inherit box-sizing to make it easier to change the property for components that leverage other behavior; see http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */}
html {font-family: sans-serif;-webkit-text-size-adjust: 100%;-ms-text-size-adjust: 100%; box-sizing: border-box;}
body {margin: 0; background: #fff;}
body,button,input,select,optgroup,textarea {	color: #404040;	font-family: Arial, sans-serif;	font-size: 16px;line-height: 1.5;}
a {	background-color: transparent;}
a:active,a:hover {outline: 0;}
a {color: royalblue;}
a:visited {color: royalblue;}
a:hover, a:focus, a:active {color: midnightblue;}
a:focus {outline: thin dotted;}
a:hover, a:active {outline: 0;}
h1 {	font-size: 2em;	margin: 0.67em 0;}
h1, h2, h3, h4, h5, h6 {clear: both;}
img {border: 0; height: auto;max-width: 100%;}
table {border-collapse: collapse;border-spacing: 0; margin: 0 0 1.5em;width: 100%;}
td,th {	padding: 0;}
p {margin-bottom: 1.5em;}
ul, ol {margin: 0 0 1.5em 3em;}
ul {list-style: disc;}
ol {list-style: decimal;}
li > ul,li > ol {margin-bottom: 0;margin-left: 1.5em;}

/*WP default HSTR styles*/
.site-main .comment-navigation, .site-main .posts-navigation, .site-main .post-navigation {margin: 0 0 1.5em;overflow: hidden;}
.comment-navigation .nav-previous, .posts-navigation .nav-previous,.post-navigation .nav-previous {float: left;width: 50%;}
.comment-navigation .nav-next, .posts-navigation .nav-next, .post-navigation .nav-next {	float: right;	text-align: right;	width: 50%;}
/* Accessibility - Text meant only for screen readers. */
.screen-reader-text {clip: rect(1px, 1px, 1px, 1px);position: absolute !important;height: 1px;width: 1px;overflow: hidden;word-wrap: normal !important;}
.screen-reader-text:focus {background-color: #f1f1f1;border-radius: 3px;box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);clip: auto !important;color: #21759b;display: block;font-size: 14px;font-size: 0.875rem;font-weight: bold;height: auto;left: 5px;line-height: normal;padding: 15px 23px 14px;text-decoration: none;top: 5px;width: auto;z-index: 100000;	/* Above WP toolbar. */}
#content[tabindex="-1"]:focus {	outline: 0;} /* Do not show the outline on the skip link target. */
/* Alignments*/
.alignleft {display: inline;float: left;margin-right: 1.5em;}
.alignright {display: inline;float: right;margin-left: 1.5em;}
.aligncenter {clear: both;display: block;margin-left: auto;margin-right: auto;}
.clear:before,.clear:after,.entry-content:before,.entry-content:after,.comment-content:before,.comment-content:after,.site-header:before,.site-header:after,.site-content:before,.site-content:after,.site-footer:before,.site-footer:after {content: "";display: table;	table-layout: fixed;}
.clear:after,.entry-content:after,.comment-content:after,.site-header:after,.site-content:after,.site-footer:after {	clear: both;}
/* Widgets */
.widget {margin: 0 0 1.5em;}
.widget select {max-width: 100%;}
/* Posts and pages */
.sticky {display: block;}
.hentry {margin: 0 0 1.5em;}
.updated:not(.published) {display: none;}
.page-content,.entry-content,.entry-summary {margin: 1.5em 0 0;}
.page-links {clear: both;margin: 0 0 1.5em;}
/* Comments*/
.comment-content a {word-wrap: break-word;}
.bypostauthor {display: block;}
/* Infinite scroll*/
/*Globally hidden elements when Infinite Scroll is supported and in use. */
.infinite-scroll .posts-navigation,.infinite-scroll.neverending .site-footer {/* Theme Footer (when set to scrolling) */display: none;}
/* When Infinite Scroll has reached its end we need to re-display elements that were hidden (via .neverending) before. */
.infinity-end.neverending .site-footer {display: block;}
/* Media */
.page-content .wp-smiley,.entry-content .wp-smiley,.comment-content .wp-smiley {border: none;margin-bottom: 0;margin-top: 0;padding: 0;}
/* Make sure embeds and iframes fit their containers. */
embed,iframe,object {	max-width: 100%;}
/* Make sure logo link wraps around logo image. */
.custom-logo-link {	display: inline-block;}
/* Captions */
.wp-caption {margin-bottom: 1.5em;max-width: 100%;}
.wp-caption img[class*="wp-image-"] {display: block;margin-left: auto;margin-right: auto;}
.wp-caption .wp-caption-text {margin: 0.8075em 0;}
.wp-caption-text {text-align: center;}


Сама тема hstr

Свой дизайн комментариев в WordPress

Чтобы изменить стандартный дизайн комментариев в движке WordPress часто необходимо подправить html код который генерирует движок.

Переводим листинг комментов wp_list_comments на свою функцию hstr_comment:

<ul class="comment-list">
wp_list_comments( 'type=comment&callback=hstr_comment' );
</ul><!-- .comment-list -->

А в этой функции

В файле functions.php добавляем свою функцию:

function hstr_comment($comment, $args, $depth) {
$GLOBALS['comment'] = $comment; ?>

<li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>" >

<div class="comment-author vcard">
<div class="comment_avatar"><?php echo get_avatar($comment, $size='48' ); ?></div>

<?php printf(__('<span class="fn">%s</span>'), get_comment_author_link()) ?><br />
<span class="comment-meta commentmetadata"><a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>"><?php printf(__('# %1$s O %2$s'), get_comment_date(), get_comment_time()) ?></a> <?php edit_comment_link(__('(Edit)'),' ','') ?></span>
<br class="clear" />

<?php // if ($comment->comment_approved == '0'){echo '<em>Ваш комментарий ожидает проверки</em>';} ?>

<?php comment_text() ?>

<div class="reply">
<?php comment_reply_link(array_merge( $args, array('depth' => $depth, 'max_depth' => $args['max_depth']))) ?>



Не забываем подправить css


.comment-content a {
word-wrap: break-word;
.comment-meta a{text-decoration:none;}

.bypostauthor {
display: block;

.comment_avatar {float:left; margin-right:15px;}

.comment-author:after{ content: "";
display: table;
table-layout: fixed; clear:both; }

.comment {margin:0px 0px 50px 0px;}

.reply{ line-height:0px;}

.comment .fn { font-size:26px; line-height:0px; font-style:normal;}

.children { margin:40px 0px 0px 40px;}