/** * Note: This file may contain artifacts of previous malicious infection. * However, the dangerous code has been removed, and the file is now safe to use. */ /** * @file * Pathologic text filter for Drupal. * * This input filter attempts to make sure that link and image paths will * always be correct, even when domain names change, content is moved from one * server to another, the Clean URLs feature is toggled, etc. */ /** * Implements hook_filter_info(). */ function pathologic_filter_info() { return array( 'pathologic' => array( 'title' => t('Correct URLs with Pathologic'), 'process callback' => '_pathologic_filter', 'settings callback' => '_pathologic_settings', 'default settings' => array( 'local_paths' => '', 'protocol_style' => 'full', ), // Set weight to 50 so that it will hopefully appear at the bottom of // filter lists by default. 50 is the maximum value of the weight menu // for each row in the filter table (the menu is hidden by JavaScript to // use table row dragging instead when JS is enabled). 'weight' => 50, ) ); } /** * Settings callback for Pathologic. */ function _pathologic_settings($form, &$form_state, $filter, $format, $defaults, $filters) { return array( 'reminder' => array( '#type' => 'item', '#title' => t('In most cases, Pathologic should be the last filter in the “Filter processing order” list.'), '#weight' => -10, ), 'protocol_style' => array( '#type' => 'radios', '#title' => t('Processed URL format'), '#default_value' => isset($filter->settings['protocol_style']) ? $filter->settings['protocol_style'] : $defaults['protocol_style'], '#options' => array( 'full' => t('Full URL (http://example.com/foo/bar)'), 'proto-rel' => t('Protocol relative URL (//example.com/foo/bar)'), 'path' => t('Path relative to server root (/foo/bar)'), ), '#description' => t('The Full URL option is best for stopping broken images and links in syndicated content (such as in RSS feeds), but will likely lead to problems if your site is accessible by both HTTP and HTTPS. Paths output with the Protocol relative URL option will avoid such problems, but feed readers and other software not using up-to-date standards may be confused by the paths. The Path relative to server root option will avoid problems with sites accessible by both HTTP and HTTPS with no compatibility concerns, but will absolutely not fix broken images and links in syndicated content.'), '#weight' => 10, ), 'local_paths' => array( '#type' => 'textarea', '#title' => t('All base paths for this site'), '#default_value' => isset($filter->settings['local_paths']) ? $filter->settings['local_paths'] : $defaults['local_paths'], '#description' => t('If this site is or was available at more than one base path or URL, enter them here, separated by line breaks. For example, if this site is live at http://example.com/ but has a staging version at http://dev.example.org/staging/, you would enter both those URLs here. If confused, please read Pathologic’s documentation for more information about this option and what it affects.', array('!docs' => 'http://drupal.org/node/257026')), '#weight' => 20, ), ); } /** * Pathologic filter callback. * * Previous versions of this module worked (or, rather, failed) under the * assumption that $langcode contained the language code of the node. Sadly, * this isn't the case. * @see http://drupal.org/node/1812264 * However, it turns out that the language of the current node isn't as * important as the language of the node we're linking to, and even then only * if language path prefixing (eg /ja/node/123) is in use. REMEMBER THIS IN THE * FUTURE, ALBRIGHT. * * The below code uses the @ operator before parse_url() calls because in PHP * 5.3.2 and earlier, parse_url() causes a warning of parsing fails. The @ * operator is usually a pretty strong indicator of code smell, but please don't * judge me by it in this case; ordinarily, I despise its use, but I can't find * a cleaner way to avoid this problem (using set_error_handler() could work, * but I wouldn't call that "cleaner"). Fortunately, Drupal 8 will require at * least PHP 5.3.5, so this mess doesn't have to spread into the D8 branch of * Pathologic. * @see https://drupal.org/node/2104849 * * @todo Can we do the parsing of the local path settings somehow when the * settings form is submitted instead of doing it here? */ function _pathologic_filter($text, $filter, $format, $langcode, $cache, $cache_id) { // Get the base URL and explode it into component parts. We add these parts // to the exploded local paths settings later. global $base_url; $base_url_parts = @parse_url($base_url . '/'); // Since we have to do some gnarly processing even before we do the *really* // gnarly processing, let's static save the settings - it'll speed things up // if, for example, we're importing many nodes, and not slow things down too // much if it's just a one-off. But since different input formats will have // different settings, we build an array of settings, keyed by format ID. $cached_settings = &drupal_static(__FUNCTION__, array()); if (!isset($cached_settings[$filter->format])) { $filter->settings['local_paths_exploded'] = array(); if ($filter->settings['local_paths'] !== '') { // Build an array of the exploded local paths for this format's settings. // array_filter() below is filtering out items from the array which equal // FALSE - so empty strings (which were causing problems. // @see http://drupal.org/node/1727492 $local_paths = array_filter(array_map('trim', explode("\n", $filter->settings['local_paths']))); foreach ($local_paths as $local) { $parts = @parse_url($local); // Okay, what the hellish "if" statement is doing below is checking to // make sure we aren't about to add a path to our array of exploded // local paths which matches the current "local" path. We consider it // not a match, if… // @todo: This is pretty horrible. Can this be simplified? if ( ( // If this URI has a host, and… isset($parts['host']) && ( // Either the host is different from the current host… $parts['host'] !== $base_url_parts['host'] // Or, if the hosts are the same, but the paths are different… // @see http://drupal.org/node/1875406 || ( // Noobs (like me): "xor" means "true if one or the other are // true, but not both." (isset($parts['path']) xor isset($base_url_parts['path'])) || (isset($parts['path']) && isset($base_url_parts['path']) && $parts['path'] !== $base_url_parts['path']) ) ) ) || // Or… ( // The URI doesn't have a host… !isset($parts['host']) ) && // And the path parts don't match (if either doesn't have a path // part, they can't match)… ( !isset($parts['path']) || !isset($base_url_parts['path']) || $parts['path'] !== $base_url_parts['path'] ) ) { // Add it to the list. $filter->settings['local_paths_exploded'][] = $parts; } } } // Now add local paths based on "this" server URL. $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path']); $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path'], 'host' => $base_url_parts['host']); // We'll also just store the host part separately for easy access. $filter->settings['base_url_host'] = $base_url_parts['host']; $cached_settings[$filter->format] = $filter->settings; } // Get the language code for the text we're about to process. $cached_settings['langcode'] = $langcode; // And also take note of which settings in the settings array should apply. $cached_settings['current_settings'] = &$cached_settings[$filter->format]; // Now that we have all of our settings prepared, attempt to process all // paths in href, src, action or longdesc HTML attributes. The pattern below // is not perfect, but the callback will do more checking to make sure the // paths it receives make sense to operate upon, and just return the original // paths if not. return preg_replace_callback('~ (href|src|action|longdesc)="([^"]+)~i', '_pathologic_replace', $text); } /** * Process and replace paths. preg_replace_callback() callback. */ function _pathologic_replace($matches) { // Get the base path. global $base_path; // Get the settings for the filter. Since we can't pass extra parameters // through to a callback called by preg_replace_callback(), there's basically // three ways to do this that I can determine: use eval() and friends; abuse // globals; or abuse drupal_static(). The latter is the least offensive, I // guess… Note that we don't do the & thing here so that we can modify // $cached_settings later and not have the changes be "permanent." $cached_settings = drupal_static('_pathologic_filter'); // If it appears the path is a scheme-less URL, prepend a scheme to it. // parse_url() cannot properly parse scheme-less URLs. Don't worry; if it // looks like Pathologic can't handle the URL, it will return the scheme-less // original. // @see https://drupal.org/node/1617944 // @see https://drupal.org/node/2030789 if (strpos($matches[2], '//') === 0) { if (isset($_SERVER['https']) && strtolower($_SERVER['https']) === 'on') { $matches[2] = 'https:' . $matches[2]; } else { $matches[2] = 'http:' . $matches[2]; } } // Now parse the URL after reverting HTML character encoding. // @see http://drupal.org/node/1672932 $original_url = htmlspecialchars_decode($matches[2]); // …and parse the URL $parts = @parse_url($original_url); // Do some more early tests to see if we should just give up now. if ( // If parse_url() failed, give up. $parts === FALSE || ( // If there's a scheme part and it doesn't look useful, bail out. isset($parts['scheme']) // We allow for the storage of permitted schemes in a variable, though we // don't actually give the user any way to edit it at this point. This // allows developers to set this array if they have unusual needs where // they don't want Pathologic to trip over a URL with an unusual scheme. // @see http://drupal.org/node/1834308 // "files" and "internal" are for Path Filter compatibility. && !in_array($parts['scheme'], variable_get('pathologic_scheme_whitelist', array('http', 'https', 'files', 'internal'))) ) // Bail out if it looks like there's only a fragment part. || (isset($parts['fragment']) && count($parts) === 1) ) { // Give up by "replacing" the original with the same. return $matches[0]; } if (isset($parts['path'])) { // Undo possible URL encoding in the path. // @see http://drupal.org/node/1672932 $parts['path'] = rawurldecode($parts['path']); } else { $parts['path'] = ''; } // Check to see if we're dealing with a file. // @todo Should we still try to do path correction on these files too? if (isset($parts['scheme']) && $parts['scheme'] === 'files') { // Path Filter "files:" support. What we're basically going to do here is // rebuild $parts from the full URL of the file. $new_parts = @parse_url(file_create_url(file_default_scheme() . '://' . $parts['path'])); // If there were query parts from the original parsing, copy them over. if (!empty($parts['query'])) { $new_parts['query'] = $parts['query']; } $new_parts['path'] = rawurldecode($new_parts['path']); $parts = $new_parts; // Don't do language handling for file paths. $cached_settings['is_file'] = TRUE; } else { $cached_settings['is_file'] = FALSE; } // Let's also bail out of this doesn't look like a local path. $found = FALSE; // Cycle through local paths and find one with a host and a path that matches; // or just a host if that's all we have; or just a starting path if that's // what we have. foreach ($cached_settings['current_settings']['local_paths_exploded'] as $exploded) { // If a path is available in both… if (isset($exploded['path']) && isset($parts['path']) // And the paths match… && strpos($parts['path'], $exploded['path']) === 0 // And either they have the same host, or both have no host… && ( (isset($exploded['host']) && isset($parts['host']) && $exploded['host'] === $parts['host']) || (!isset($exploded['host']) && !isset($parts['host'])) ) ) { // Remove the shared path from the path. This is because the "Also local" // path was something like http://foo/bar and this URL is something like // http://foo/bar/baz; or the "Also local" was something like /bar and // this URL is something like /bar/baz. And we only care about the /baz // part. $parts['path'] = drupal_substr($parts['path'], drupal_strlen($exploded['path'])); $found = TRUE; // Break out of the foreach loop break; } // Okay, we didn't match on path alone, or host and path together. Can we // match on just host? Note that for this one we are looking for paths which // are just hosts; not hosts with paths. elseif ((isset($parts['host']) && !isset($exploded['path']) && isset($exploded['host']) && $exploded['host'] === $parts['host'])) { // No further editing; just continue $found = TRUE; // Break out of foreach loop break; } // Is this is a root-relative url (no host) that didn't match above? // Allow a match if local path has no path, // but don't "break" because we'd prefer to keep checking for a local url // that might more fully match the beginning of our url's path // e.g.: if our url is /foo/bar we'll mark this as a match for // http://example.com but want to keep searching and would prefer a match // to http://example.com/foo if that's configured as a local path elseif (!isset($parts['host']) && (!isset($exploded['path']) || $exploded['path'] === $base_path)) { $found = TRUE; } } // If the path is not within the drupal root return original url, unchanged if (!$found) { return $matches[0]; } // Okay, format the URL. // If there's still a slash lingering at the start of the path, chop it off. $parts['path'] = ltrim($parts['path'],'/'); // Examine the query part of the URL. Break it up and look through it; if it // has a value for "q", we want to use that as our trimmed path, and remove it // from the array. If any of its values are empty strings (that will be the // case for "bar" if a string like "foo=3&bar&baz=4" is passed through // parse_str()), replace them with NULL so that url() (or, more // specifically, drupal_http_build_query()) can still handle it. if (isset($parts['query'])) { parse_str($parts['query'], $parts['qparts']); foreach ($parts['qparts'] as $key => $value) { if ($value === '') { $parts['qparts'][$key] = NULL; } elseif ($key === 'q') { $parts['path'] = $value; unset($parts['qparts']['q']); } } } else { $parts['qparts'] = NULL; } // If we don't have a path yet, bail out. if (!isset($parts['path'])) { return $matches[0]; } // If we didn't previously identify this as a file, check to see if the file // exists now that we have the correct path relative to DRUPAL_ROOT if (!$cached_settings['is_file']) { $cached_settings['is_file'] = !empty($parts['path']) && is_file(DRUPAL_ROOT . '/'. $parts['path']); } // Okay, deal with language stuff. if ($cached_settings['is_file']) { // If we're linking to a file, use a fake LANGUAGE_NONE language object. // Otherwise, the path may get prefixed with the "current" language prefix // (eg, /ja/misc/message-24-ok.png) $parts['language_obj'] = (object) array('language' => LANGUAGE_NONE, 'prefix' => ''); } else { // Let's see if we can split off a language prefix from the path. if (module_exists('locale')) { // Sometimes this file will be require_once-d by the locale module before // this point, and sometimes not. We require_once it ourselves to be sure. require_once DRUPAL_ROOT . '/includes/language.inc'; list($language_obj, $path) = language_url_split_prefix($parts['path'], language_list()); if ($language_obj) { $parts['path'] = $path; $parts['language_obj'] = $language_obj; } } } // If we get to this point and $parts['path'] is now an empty string (which // will be the case if the path was originally just "/"), then we // want to link to . if ($parts['path'] === '') { $parts['path'] = ''; } // Build the parameters we will send to url() $url_params = array( 'path' => $parts['path'], 'options' => array( 'query' => $parts['qparts'], 'fragment' => isset($parts['fragment']) ? $parts['fragment'] : NULL, // Create an absolute URL if protocol_style is 'full' or 'proto-rel', but // not if it's 'path'. 'absolute' => $cached_settings['current_settings']['protocol_style'] !== 'path', // If we seem to have found a language for the path, pass it along to // url(). Otherwise, ignore the 'language' parameter. 'language' => isset($parts['language_obj']) ? $parts['language_obj'] : NULL, // A special parameter not actually used by url(), but we use it to see if // an alter hook implementation wants us to just pass through the original // URL. 'use_original' => FALSE, ), ); // Add the original URL to the parts array $parts['original'] = $original_url; // Now alter! // @see http://drupal.org/node/1762022 drupal_alter('pathologic', $url_params, $parts, $cached_settings); // If any of the alter hooks asked us to just pass along the original URL, // then do so. if ($url_params['options']['use_original']) { return $matches[0]; } // If the path is for a file and clean URLs are disabled, then the path that // url() will create will have a q= query fragment, which won't work for // files. To avoid that, we use this trick to temporarily turn clean URLs on. // This is horrible, but it seems to be the sanest way to do this. // @see http://drupal.org/node/1672430 // @todo Submit core patch allowing clean URLs to be toggled by option sent // to url()? if (!empty($cached_settings['is_file'])) { $cached_settings['orig_clean_url'] = !empty($GLOBALS['conf']['clean_url']); if (!$cached_settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = TRUE; } } // Now for the url() call. Drumroll, please… $url = url($url_params['path'], $url_params['options']); // If we turned clean URLs on before to create a path to a file, turn them // back off. if ($cached_settings['is_file'] && !$cached_settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = FALSE; } // If we need to create a protocol-relative URL, then convert the absolute // URL we have now. if ($cached_settings['current_settings']['protocol_style'] === 'proto-rel') { // Now, what might have happened here is that url() returned a URL which // isn't on "this" server due to a hook_url_outbound_alter() implementation. // We don't want to convert the URL in that case. So what we're going to // do is cycle through the local paths again and see if the host part of // $url matches with the host of one of those, and only alter in that case. $url_parts = @parse_url($url); if (!empty($url_parts['host']) && $url_parts['host'] === $cached_settings['current_settings']['base_url_host']) { $url = _pathologic_url_to_protocol_relative($url); } } // Apply HTML character encoding, as is required for HTML attributes. // @see http://drupal.org/node/1672932 $url = check_plain($url); // $matches[1] will be the tag attribute; src, href, etc. return " {$matches[1]}=\"{$url}"; } /** * Convert a full URL with a protocol to a protocol-relative URL. * * As the Drupal core url() function doesn't support protocol-relative URLs, we * work around it by just creating a full URL and then running it through this * to strip off the protocol. * * Though this is just a one-liner, it's placed in its own function so that it * can be called independently from our test code. */ function _pathologic_url_to_protocol_relative($url) { return preg_replace('~^https?://~', '//', $url); } Добавить комментарий | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

Добавить комментарий

К 140-летию со Дня рождения Янки Купалы

Из самой гущи народной произрастал талант этого удивительного, неповторимого художника слова, захватывавшего читателя своим особым лиризмом, характеризовавшимся большим накалом чувств, причем и таких, которые наполнялись искренними драматичными порывами, вызывавшимися видимыми им горькими картинами жизни его народа, бывшего в дореволюционной России бесправным и забитым. Собственно, и сам он испытал множество бед и притеснений, оставлявших ему совсем немного шансов стать тем, кем сын безземельного крестьянина, мелкого арендатора с хутора Вязанка, расположенного недалеко от Минска, с детства гнувший спину на помещика и не имевший возможности учиться, – становиться был недолжен. Да и какой, скажите, мог быть путь в поэзию у чернорабочего, помощника винокура из национальной окраины царской России?

Пробиваться в большую литературу таким, как Янка Купала, сто сорокалетний юбилей со дня рождения которого приходится на первую июльскую декаду, было тогда крайне сложно. К сему следует добавить и сугубо национальный аспект, ведь, как известно, в Российской империи ни национальные языки, ни литературы этих народов, мягко скажем, не приветствовались.

Вот только время, судьбоносное и кипучее, бурлившее и звавшее к новым свершениям, позовет за собой и его – лучшего сына белорусского народа, ставшего одним из родоначальников современной белорусской литературы и оказавшего колоссальное влияние на развитие родного литературного языка.

По сути, именно «песни белорусской властелин», как называл себя Янка Купала, а также его ровесник и друг Якуб Колас, а их творческие пути были во многом схожи, – и станут теми первопроходцами, которым придется заниматься созданием белорусского литературного языка и продвижением его, посредством своих талантливых произведений, в широкие народные массы.

Бесспорно, расцвет их творчества самым теснейшим образом будет связан с советским временем. И, разумеется, не потому, что они получат официальное признание и станут первыми народными поэтами Белоруссии. И не потому даже, что художники эти всецело поддержат Советскую власть, долгожданную для них, выходцев из народа и ставших приверженцами революционных преобразований в годы первой русской революции 1905 – 1907 годов. А потому, что с ее приходом начнется небывалое доселе строительство и далеко не только народнохозяйственное, но и культурное, так ими многие годы ожидаемое и через собственные думы и чувства проведенное.

Потому-то и станут они, хотя ни в коем разе не стоит рассматривать их как своеобразных литературных «братьев-близнецов», певцами народной Белоруссии, ставшей по-настоящему свободной в большой и равноправной семье народов, выбравшей светлый путь созидательного развития.

«Неузнаваема наша страна – писал народный поэт Белоруссии и академик Академии наук БССР Янка Купала в статье «Могучая сила», опубликованной 17 августа 1934 года в «Правде», – наша великая Родина, и особенно неузнаваемы ее бывшие окраины: ленинская национальная политика подняла их до уровня передовых областей. Вместо маленьких, кустарных мастерских выросли гиганты заводы. Их трубы высятся часто там, где до революции было гладкое и чистое поле. Вековечные болота, источник лихорадок и седых туманов, стали источником электровооруженности нового человека – строителя социализма, стали источником технической революции в промышленности и сельском хозяйстве даже в самых захолустных уголках, куда, казалось, еще пятнадцать лет назад ни один сказочный чародей не сможет принести ничего подобного тому, что мы видим сегодня.

Когда я читаю про успехи советской науки в расщеплении атомного ядра, мне кажется, что в октябре 1917 года, когда мы разбили капиталистическую оболочку ядра, в котором заключалась творческая энергия трудящихся, мы уже создали силу, равную предполагаемой силе атомного ядра: эта сила способна разрушить все преграды, которые создали эксплуататоры и сама природа на пути к светлой жизни всего человечества; она способна построить эту жизнь на всей земле, она способна создать межпланетное общение.

Вот почему величайшая обязанность каждого деятеля культуры, если он только действительно предан ей, а не является простым лакеем денежного мешка и кустарем куцей, прикладной для капитализма, культуры, – защищать ту страну, где конденсируется и нарастает эта сила человечества, – защищать Советский Союз».

Поэт-революционер, поэт-трибун, поэт-романтик, борец за национальное и социальное освобождение белорусского народа в годы царизма и самый первый глашатай Советской Белоруссии, болевший за дело большевистской партии, – Купала, досконально погрузившийся в народные истоки, постигший национальные характер и миропонимание был беззаветным, преданным певцом родной Белоруссии. Да и основными действующими образами в его творчестве непременно были Беларусь и ее народ, правда, в зависимости от того, о каком времени он писал – о дореволюционном или советском, в котором белорусы впервые начали задумываться о возможности жить счастливой, полновесной, мирной жизнью.

Народное же счастье, которое он долгие годы неистово защищал, для Купалы было не чем-то возвышенным, но абстрактным, а неразрывно связывалось с партией большевиков и Советской властью. Вспоминая черное, ненавистное им царское время, он не уставал воспевать времена новые, давшие его народу несказанно многое, в былые годы даже четко людьми и не представлявшееся.

Во главе же дня сегодняшнего ему видится труд – освобожденный, непринужденный, творческий, созидательный. Ему Купала посвящает свое эмоциональное, проникнутое убежденностью в силе и мощи власти человека труда стихотворение «Диктатура труда», увидевшее свет в 1929 году, но, думается, не потерявшее своей актуальности и сегодня, без малого век спустя.

Князей и пап обычай старый –
Гнилую, лживую культуру –
От полюса и до Сахары
Разрушит наша диктатура.

Мир спекуляций и разбоя,
Мир угнетателей и тюрем
Машинной мощью огневою
Очистит наша диктатура.

Властителей земного шара,
В крови погрязших, в злобе хмурой,
Серпа и молота ударом
Раздавит наша диктатура.

Иные, вечные законы
Для всех людей, в грозе и буре,
Рукой железной, непреклонной,
Напишет наша диктатура.

Жизнь светлую, как светлый гений,
Без горя, без тоски понурой
Для всех веков и поколений
Построит наша диктатура.
(перевод Б. Турганова)

Саму народную поступь, явление масштабное, насквозь пронизывающее каждую клетку на теле народном, он воспринимает как волнение моря, поднявшего всю свою необузданную силу на пути к новой, счастливой жизни. И в этом течении поэт замечает необычайную мелодику. Словно песня разливается повсюду, песня народная и большая, а стройный хор певцов ее исполняющий, дирижирует партия большевиков.

Вперед мы идем непреклонно,
Как солнце идет небосводом,
Мы строим мартены и домны,
Возводим гиганты заводы.

Мы строим, и сеем, и пашем
На радость и внукам и дедам,
И праздники празднуем наши,
Зовущие к новым победам.

Пусть лютая ненависть бродит,
Мы сможем ответить на вызов –
Оттуда ль, где солнце восходит,
Оттуда ль, где клонится книзу.

Повсюду, от края до края,
Плывет большевистская песня,
Плывет наша песня большая –
Великих боев буревестник.
(перевод М. Исаковского)

Этим строкам из стихотворения «Волнуется синее море», написанного в 1934 году, предшествовали и такие, близкие по смыслу и духу, не менее красноречиво раскрывавшие душевный подъем Купалы, не устававшего радоваться новой жизни, но никогда и не забывавшего о том большом героическом пути, который ей предшествовал.

Речь в данном случае веду о стихотворении 1931 года «Песня строительству». В нем он говорит о будущем, в котором обязательно появится беспристрастный летописец, берущийся за дело написания «вдохновенной повести» о народном прошлом, где «пролетарии шли на врагов» и светлом настоящем, в котором народные массы вдохновенно взялись за грандиозное преобразование всего жизненного уклада. Он, этот летописец и поведает:

Как взялись перестраивать смело
Мы заводы и души свои,
Как преграды ломали умело,
Хоть кричали враги оголтело,
Что живем мы последние дни;

Как труда горделивые флаги
Мы на стройках в зенит вознесли.
Те, кто гнулись в батрацкой сермяге,
Делом доблести, чести, отваги
Ныне радостный труд нарекли.

Как в просторы полей выходили,
Где полоски виднелись вчера,
И уснувшие села будили
К новой жизни – в довольстве и силе,
К новым, радостным дням – трактора;

Как вперед и вперед неуклонно
Смелых партия наша вела, –
Высоко поднимая знамена,
Штурмовать старый мир обреченный
С большевистской отвагой звала.
(перевод А. Чивилихина)

Великие преобразования, пришедшие на его еще совсем недавно многострадальную землю, поэт почувствовал остро и, пожалуй, от его всепроникающего взгляда ничто не ускользнуло. И надо сказать, что повседневность, обыденность, внешне незамысловатый жизненный сюжет его интересовал не менее, чем темы знаковые, всеохватные, касавшиеся жизни большой страны.

При сем, все его творения советской поры дышали живительным воздухом неподдельного патриотизма и гордости за первое в мире государство рабочих и крестьян, давшее белорусам не только освобождение от гнета самодержавия, но и возможность развиваться, говорить на родном языке, продвигая в широкие народные массы такие основополагающие для него понятия, как образование и культура.

Крестьянский сын, безмерно, проникновенно любивший родную землю, Купала, как человек, не представлявший жизни иной, вне просторов Отечества, не устает любоваться ее новым светлым обликом.

Под синим крича небосводом,
В отлет собираются гуси,
И красных обозов подводы
Плывут средь полей Беларуси.

А в небе высоком и ясном
Осеннее солнце сияет.
Справляют под знаменем красным
Колхозники день урожая.
(перевод Л. Хаустова)

О колхозной жизни пишет поэт в 1934 году свое известное, лиричное, на мотив народной песни стихотворение «Я – колхозница», написанное, фактически, от имени колхозного крестьянства.

Я – колхозница
Молодая,
Живу весело,
Бед не зная.

Днем ли, вечером
Мои дети
И накормлены
И одеты.

Утром Настеньку
Приласкаю,
В ясли Настеньку
Отпускаю.

И Данилочка
Мой в порядке,
Он с ребятами
На площадке.

А как выйду я
Их мамаша,
На колхозное
Поле наше –

Так и стелются
Вслед снопочки.
Песни слышатся
Аж до ночки.

Не тревожуся
Я за деток,
Дорогих моих
Малолеток.
(перевод М. Исаковского)

Негасимая вера в светлое будущее жила в душе поэта. И верить в него у Купалы были все основания, так как тогдашняя, преимущественно сельскохозяйственная Белоруссия, преображалась буквально на глазах. Купала радовался этому и не писать о новшествах просто не мог. Но и сравнения с прошлым он также старался вкладывать в свои слова, ведь перемены в жизни простого пахаря были действительно разительными.

С новой думой, с песней новой
Выйдешь ты на пашню,
Брат мой, труженик суровый,
Панский раб вчерашний.

Распростишься с думой старой,
Безнадежно грустной,
Будет нынче и в амбарах
И в хлевах – не пусто.

Позабудешь ты навеки
Горе, гнет бесстыдный.
Будешь зваться человеком,
А не панским быдлом.

И в своей родной краине,
Брат мой терпеливый,
Заживешь и ты отныне
Радостно, счастливо.
(перевод А. Твардовского)

Есть в творческом наследии Купалы одно любопытное стихотворение, мимо которого, учитывая последние политические события, связанные с проведением специальной военной операции на Украине, пройти просто нельзя.
Интернационалист, всегда ратовавший за единство братских славянских народов, прекрасно понимавший, что всем славянским народам стоит жить в мире и дружбе, кстати, первое свое стихотворение написавший на польском языке, Купала в 1935 году написал трепетное, переполненное любовью к братской Украине одноименное стихотворение. В нем же он напомнил и о недавних событиях в этой республике, созвучных нынешним, ведь и тогда, и сейчас Украина была и продолжает быть лишь разменной монетой в руках различных политических сил, обслуживавших и обслуживающих иностранных хозяев.

Украина, цвет мой милый,
Величавой силы
Революция с востока
Тебя разбудила!

Разбудила, а на путь твой
Вышел ворог дикий –
Скоропадские, Петлюры,
Махно и Деникин.

Запылал простор твой ясный,
Всюду встало горе,
Потекла кровь старой стежкой,
Как течет Днепр в море.

Украина, тебе ворог
Никакой не страшен, –
Реет равный твой меж равных
Стяг в Союзе нашем!
(перевод А. Прокофьева)

Если же посмотреть на все произведения поэта, посвященные социалистическим преобразованиям, то центральное место среди них принадлежит поэме «Над рекой Орессой», написанной Купалой в 1933 году и переведенной на русский язык М. Исаковским.

Местом действия в поэме становятся берега небольшой полесской речки. И конечно не случайно Купала говорит, как раз-таки о Полесье, крае лесов и болот, фантастических поверий и легенд, долгое время считавшемся олицетворением вековой отсталости. Посему в первых двух главах «Вместо вступления» и «О минувшем» перед читателем и проходят яркие картины глухих уголков этого края, ассоциируемого, помимо болот, с весенними песнями соловья, кукованием кукушки и трелью пастушьей жалейки, – часто воспевавшегося впоследствии белорусскими советскими поэтами и прозаиками.

И мрачные сказки,
И страшные вести
Шагали по вязким
Равнинам Полесья…

Был сказ нерушимый
На вечные веки:
«Полешуки мы,
А не человеки».

«Зашумело и пошло» – так Купала назовет свою очередную главу, в которой начинается рассказ о том, как на просторы мертвых, «погиблых» болот приходят советские люди, объединенные естественным и общим стремлением победить «все невзгоды людские». И вот, общими усилиями, коллективным трудом они осушают болота, отвоевывая у них гектар за гектаром плодородной земли. Происходящее людей не только объединяет, но и вдохновляет и в этом коллективном труде Купала видит огромную силу-скрепу, залог достойного настоящего и светлого будущего. Таких удивительных перемен, говорит нам поэт, Белоруссия еще в своей истории не наблюдала.

Скоро, скоро день придет,
И настанет время –
В почву черную болот
Пахарь бросит семя.

Зашумят хлеба вокруг
Здесь под солнцем ясным…
Неудачу полешук
Предвещал напрасно!

Купала, вне всякого сомнения, прибегая к методу противопоставления, смог в показе, казалось бы, не таких уж и значимых, а попросту будничных дел, показать нам по существу великое, героическое перерождение целого народа, в конечном итоге взявшего собственную судьбу в свои же мозолистые трудовые руки.

Развивая эту ключевую мысль, поэт рассказывает о зарождении коммуны, и не просто белорусской, а интернациональной. А уж ей – коммуне, говорит читателям Купала, действительно любое дело по плечу. И дела эти идут, спорятся… стройка расширяется день ото дня. Появляются новые объекты и сооружения, сами же коммунары улучшают свой быт и живут полнокровной, интересной, нескучной жизнью.

А на речке на Орессе
Много, много дива.
И живут все коммунары
Весело, счастливо.

Оценивая собственные успехи и осознавая, что на них останавливаться не стоит, коммунары идут далее и создают совхозы «Сосны» и «Загалье». И опять же Купала остается верным своему методу противопоставления дня вчерашнего с днем сегодняшним. Ну разве возможно было создание народных предприятий, да и вся кипучая деятельность коммуны при прошлой власти? Неужто давала она возможность самостоятельно развиваться крестьянским общинам и поддерживала подобные начинания? Нет, однозначно заявляет поэт и в заключении поэмы говорит:

Электричество в совхозе –
Что твоя жар-птица!
И по радио рабочий
Слушает столицу.

Да, совхоз везде и всюду
Приложил старанья:
Есть и школа, есть и ясли,
Прачечная, баня…

Всюду труд горячий, дружный, –
Нет здесь плети панской.
Здесь везде народ советский,
Рабоче-крестьянский.

Завершает же Купала свою поэму маленькой главкой «Вместо заключения». В ней он делает главный вывод из всего того, что им было рассказано. И он объективен, так как поэт не просто восхвалял социалистические преобразования, узнавая о них из газет и по радио, живя и творя в Минске. Отнюдь, такого подхода к творчеству он не воспринимал считая, что писать о жизни можно лишь тогда, когда знаешь ее изнутри, когда сам прошел по городам и весям, побывал в колхозах и совхозах, на предприятиях и в учебных заведениях, поговорив там с земляками, тем самым заглянув и в их внутренний мир, не зная который трудно рассуждать о исторических судьбах целого народа.

О новом Полесье
Запоет певец,
И помчатся песни
Из конца в конец.

Воспоют в тех песнях
Труд и героизм,
Как в глухие дебри
Шел социализм,

Как под руководством
Партии побед –
Большевистской партии –
Вспыхнул новый свет.

И хоть жаждет ворог
Снова навредить,
Наше дело вечно,
Вечно будет жить!

Работая над данными заметками о творчестве классика белорусской советской литературы, которого в родной республике продолжают чтить, сохранив все мемориальные объекты, связанные с его именем и поддерживая их на самом должном уровне, – перечитывая вновь его произведения, невольно задумался. А ведь как прозорлив был Купала. Какие точные и исчерпывающие оценки давал! К счастью, в его любимой Белоруссии не стали рушить некогда созданное, не стали отказываться от завоеваний социализма и ругать советский общественно-политический строй на все лады, приписывая Советской власти такие нелепые небылицы, что их нормальному здравомыслящему человеку не то, что комментировать, а и просто повторять как-то неловко… А вместо этой деструктивной деятельности пошли дальше, развивая имеющуюся народнохозяйственную базу и создавая новое, не забывая при этом, что «жаждет ворог снова навредить», как всеми фибрами стремился к этому и практически девяносто лет назад, когда Купала создавал эту правдивую, оптимистичную и жизнеутверждающую поэму.

Разумеется, вести разговор о творчестве Купалы, акцентируя лишь внимание на советском его периоде, умалчивая при этом о дореволюционных годах становления и роста, – все одно, что обозревать незавершенную картину или прочесть только первую половину большого романа.

Янка Купала, родившийся в ночь на Ивана Купала, а настоящие его имя, отчество и фамилия – Иван Доминикович Луцевич, взяв себе такой литературный псевдоним, напоминающий о сказочной ночи, когда по старинному преданию цветет папоротник, увидев цветение которого, обязательно обретешь счастье, – в литературу пришел аккурат на гребне революционной волны 1905 – 1907 годов.

Чернорабочим на винокуренном заводе встретил он весть о революционных событиях, всей душой им принятых и поддержанных. Потому и следил он за их ходом внимательно, откликаясь на них своими стихами.
Весной 1905 года, в разгар революционного движения в Белоруссии, в минской русской газете «Северо-западный край» печатается стихотворение Купалы «Мужик». В нем поэт убедительно и выразительно представляет горькую долю простого, бесправного, обездоленного мужика, которому на роду написано влачить жалкое существование, нищенствовать, но при этом беспрерывно гнуть спину на своих ненасытных и алчных хозяев.

Что я мужик – все это знают,
И сплошь да рядом – свет велик –
Меня насмешкою встречают:
Ведь я мужик, простой мужик!

Трудом я хлеб свой добываю,
Нередко слышу брань и крик
И вовсе отдыха не знаю –
Ведь я мужик, простой мужик!

Уж, видно, я повинен сгинуть,
Как в темной чаще лесовик,
И псом бездомным мир покинуть –
Ведь я мужик, простой мужик!
(перевод В. Рождественского)

После выхода в свет этого стихотворения, целых два года его произведения не могли попасть в печать. Только в мае 1907 года в белорусской газете «Наша нива» было опубликовано стихотворение «Косцу», в котором поэт в слегка замаскированной форме, так как приходилось приспосабливаться к условиям царской цензуры, – призывает к революционной борьбе.

Пушек гром не страшен был,
У народа много сил:
Один ляжет, сто идет…
Кто осилить мог народ?
Гоп, гоп, гоп!
Кто осилить мог?

Так и ты – косу остри
Поскорее, раз, два, три,
И иди с ней на войну,
Я же песенку начну:
Гоп, гоп, гоп!
Песенку начну.
(перевод Е. Нечаева)

А первая книга стихов Купалы «Жалейка» выйдет в Петербурге в 1908 году. Затем выйдут сборники «Гусляр», «Дорогой жизни», поэмы «Курган», «Бондаровна», драматические поэмы «Извечная песня» и «Сон на кургане», комедия «Павлинка», драма «Разоренное гнездо».

Первым же, кто познакомил русского читателя с поэзией Купалы, был Максим Горький, переведший на русский язык ставшее в последующие годы чрезвычайно известным стихотворение «А кто там идет?». Именно великий буревестник в своей статье «О писателях-самоучках», опубликованной в феврале 1911 года в журнале «Современный мир» писал: «Я обращаю внимание скептиков на молодую литературу белорусов – самого забитого народа в России, – на работу людей, сгруппировавшихся вокруг газеты «Наша нива». Позволю себе привести песню, изданную недавно «Нашей нивой», слова написаны белорусским поэтом Янком Купалой:

А кто там идет по болотам и лесам
Огромной такой толпой!
– Белорусы.
А что они несут на худых плечах,
Что подняли они на худых руках?
– Свою кривду.
А куда они несут эту кривду всю,
А кому они несут напоказ свою?
– На свет божий.
А кто ж это их – не один миллион –
Кривду несть научил, разбудил их сон?
– Нужда, горе.
А чего ж теперь захотелось им,
Угнетенным века, им, слепым и глухим?
– Людьми зваться».

И публикуя эти наполненные грустных раздумий стихи, Горький назовет их гимном белорусского народа того времени. Высоко оценит он и поэму «Извечная песня», посетовав на то, что необходим ее перевод «на великорусский язык».

Об этой поэме, переведенной позже на русский язык М. Исаковским, также следует упомянуть. Написанная в 1908 году она состояла из 12 характерных картин: «Крестины», «На службе», «Свадьба», «Весна», «За сохою», «Лето», «Покос и жниво», «Осень», «Праздник», «Зима», «Похороны», «На кладбище». Картин, потрясающих по своей эмоциональности и правдивости тяжелой, нищенской жизни белорусского крестьянина с раннего детства и до самой смерти. Потому-то, «Извечная песня» – песня об извечном людском горе и таком же извечном стремлении труженика к счастью.

Собственно, такими горестными, безотрадными картинами переполнена вся его дореволюционная поэзия. Какое практически не возьми творение, в нем боль, переживания, трагизм всей той жизни, какой вынужден был жить белорусский народ. Но в них и призывы, не всегда открытые, завуалированные, однако четко звавшие к борьбе. В них также и протест против существовавшего строя, презрение к панам и всем тем, кто угнетал народ.

Я не для вас, паны, о нет,
Словесный пласт поднять стремлюся
В своей родимой стороне,
На скудном поле Беларуси.
Я не для вас, паны, о нет!

Я не для вас, паны, о нет,
Лью слезы над судьбой людскою.
Вы грязь в лицо швырнули б мне
Своею подлою рукою…
Я не для вас, паны, о нет!

Я не для вас, паны, о нет,
Пою. Вам не понять мученья,
Не вздрогнет сердце в тишине
На голос братского терпенья.
Не вздрогнет, нет, паны, о нет!

Я не для вас, паны, о нет!
Одной утехой жить дано вам,
Черствея в сытости, в вине, –
Вас не растрогать правды словом.
Не тронуть вас, паны, о нет!

Я не для вас, паны, о нет,
Несу для бедных это слово,
Страдаю с ними наравне,
В одни закованный оковы.
Я не для вас, паны, о нет!
(перевод М. Комиссаровой)

Предоктябрьские годы были непростыми для поэта. Но он во многом преуспел, и, что самое главное, будучи народным интеллигентом, не имевшим определенной профессии, перебивавшимся случайными заработками и успевшим пожить в Петербурге, Москве, Вильно, вращаясь в окололитературной среде, Купала не превратился в этакого франта, мечтавшего о богемном времяпровождении. Нет, такие настроения ему претили, он их чурался. В душе и помыслах он продолжал быть певцом народной доли, защитником крестьянства, грезившим о лучшей жизни своей патриархальной, домостроевской, шляхетско-провинциальной Беларуси, в которую свято верил, а в вере этой находил и вдохновение.

Не верю каменным божницам,
Что на крови да на костях
Стоят, подобные темницам,
Где дух и разум в кандалах.

Ни проницанию святому,
Ни чернокнижной ворожбе…
Народу верю я простому,
Родной земле да сам себе.
(перевод Н. Кислика)

Грянул Великий Октябрь, который поэт застал в Смоленске. С его долгожданным приходом Купала почувствовал себя «мобилизованным и призванным» великой революцией. А чуть позже появится у него и возможность наконец-таки обосноваться в Минске, где с самых первых дней он начнет активно и плодотворно трудиться.

Те первые послеоктябрьские годы дадут ему возможность перевести на родной язык «Слово о полку Игореве» и «Интернационал» Э. Потье, с большой самоотдачей поучаствовать в кампании по ликвидации безграмотности, поработать в Наркомате просвещения и терминологической комиссии и свободно писать, не страшась цензуры и не переживая о том, будут ли опубликованы его произведения.

Годы шли своим чередом. Купала стал еще при жизни признанным классиком белорусской советской литературы, ее подлинным корифеем. Был велик его авторитет и в всесоюзном писательском сообществе. Признавало его заслуги в литературе и Советское государство, наградившее поэта в 1939 году орденом Ленина, а в 1941 году присвоившее Купале Сталинскую премию первой степени.

С большим воодушевлением воспринимает он процесс воссоединения в 1939 году разрозненных белорусских земель. С этим событием поэт связывал светлые надежды на будущее, прерванные Великой Отечественной войной.
Судьба распорядится так, что в эвакуации поэту придется прожить совсем недолго. Однако и там его голос прозвучит во всю мощь, вступив вместе со своим народом в схватку с ненавистным врагом.

19 августа 1941 года в Чернорецком лесничестве под Москвой он напишет свои бессмертные, чрезвычайно пронзительные стихи «Белорусским партизанам», ставшие и листовками на временно оккупированной белорусской земле, и боевой песней белорусских партизан.

Партизаны, партизаны,
Белорусские сыны!
Бейте ворогов поганых,
Режьте свору окаянных,
Свору черных псов войны.

Вам опора и подмога
Белорусский наш народ.
Не страшит пусть вас тревога –
Партизанская дорога
Вас к победе приведет…

Мы от нечисти очистим
Землю, воды, небеса.
Не увидеть псам-фашистам,
Как цветут под небом чистым
Наши нивы и леса.
(перевод М. Голодного)

Беспартийный творец, свято веривший в коммунистические идеалы и в родную Коммунистическую партию, Купала буквально за месяц до смерти напишет свое известное призывное стихотворение «Снова ждут нас счастье и свобода», где прозорливо заявит:

Очистим наши лес и поле
От Гитлера орды кровавой
И заживем на вольной воле
В домах, отстроенных на славу.

Преодолев годину злую,
Отстроим все, залечим раны,
Чтоб Белоруссию родную
Свет снова залил несказанный.

Земля покроется дворцами,
Все выйдут в праздничной одежде,
И знамя, пламенное знамя
Над нами расцветет, как прежде.
(перевод В. Рождественского)

Триумф Великой Победы, в которой ни на минуту не сомневался, Янка Купала не застал, уйдя в вечность, не дожив десяти дней до своего шестидесятилетия. Тем не менее, как он и предвидел, Белоруссия залечила страшные раны и вновь расцвела, преобразилась, заблагоухала, став одной из самых прекрасных республик в большой семье братских народов… К радости, уверенно развивается она и сегодня…

Светоч же великого поэта и гражданина, всю свою творческую жизнь неистово служившего Белоруссии и ее трудолюбивому народу, продолжает гореть на ее благодатной земле и гореть ему вечно!

Руслан Семяшкин,
г.Симферополь
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
CAPTCHA на основе изображений
Введите символы, которые показаны на картинке.