Есть такой текстовой редактор Sublime Text, про который не писал только ленивый да домохозяйка. Описывать его прекрасные возможности я не собираюсь, а поговорю про Octopress Plugin для него, а точнее как этот самый плагин заставить работать.

Установка

  • Устанавливаем Package Control.
  • Жмем Shift+Cmd+P, начинаем вводить Install, выбираем “Install Package” и ставим Octopress.

Настройка

А теперь самое веселое. В OS X если приложение запускается из GUI, то она использует другие переменные среды, то есть файл .bashrc не грузится. Есть 2 решения проблемы: запускать Sublime Text 2 из command prompt или перед каждым выполнением комманд запускать “source ~/.bashrc”, как нам предлагает делать автор, создавший специальную переменную, которая задается в настройках “octopress_cmd_before_rake”. Первый вариант мы отметаем, хотя и можно создать маленькое приложение в Automator, мы легкие пути не ищем. Второй пункт, при всей своей кажущейся легкости, у многих просто так не работает, о чем свидетельствует эта тема, в которой так никто и не справился с этой проблемой. Но обо всем по порядку. Проблема наблюдается у пользователей OSX, которые используют rvm.

  • Открываем Preferences->Package Settings->Octopress->Settings – User.
  • Можно скопировать все из Preferences->Package Settings->Octopress->Settings – Default, можно и копировать только то, что нужно изменить.
  • Задаем “octopress_path”.
  • Наконец приходим к “octopress_cmd_before_rake”. Как и советует автор, вставляем “source ~/.bashrc”. Нажимаем Shift+Cmd+P и выбираем Octopress: Generate, если Вам повезет, то все пойдет как по маслу, иначе получите такую ошибку в консоли (Ctrl+`):
1
2
3
4
5
6
7
8
9
rake aborted!

no such file to load -- bundler/setup


/Volumes/DATA/Users/goooseman/octopress/Rakefile:2
(See full trace by running task with --trace)

(in /Volumes/DATA/Users/goooseman/octopress)
  • Проверяем свой .bashrc:nano ~/.bashrc мой выглядит так:
1
PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
  • Изменяем “octopress_cmd_before_rake” на “source ~/.bashrc && export GEM_HOME=~/.rvm/gems/ruby-1.9.3-p374”, сохраняем, пробуем, проблема остается.
  • Теперь изменяем на “source ~/.bashrc && export GEM_HOME=~/.rvm/gems/ruby-1.9.3-p374 && gem install bundler”. Пробуем, проблема остается.
  • Изменяем на “source ~/.bashrc && export GEM_HOME=~/.rvm/gems/ruby-1.9.3-p374 && bundle install”. Пробуем, дело должно продвинуться дальше. Но ошибка все равно может вывалиться, только теперь касательно кодировки.
  • Убираем “&& bundle install”. Может все и заработает, но у меня вывалилась такая ошибка:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/Volumes/DATA/Users/goooseman/octopress/plugins/pagination.rb:73:in `pagination_enabled?'
: 
invalid byte sequence in US-ASCII (ArgumentError)

  from /Volumes/DATA/Users/goooseman/octopress/plugins/pagination.rb:14:in `block in generate'

  from /Volumes/DATA/Users/goooseman/octopress/plugins/pagination.rb:13:in `each'
  from /Volumes/DATA/Users/goooseman/octopress/plugins/pagination.rb:13:in `generate'
  from /Users/goooseman/.rvm/gems/ruby-1.9.3-p374/gems/jekyll-0.12.0/lib/jekyll/site.rb:190:in `block in generate'
  from /Users/goooseman/.rvm/gems/ruby-1.9.3-p374/gems/jekyll-0.12.0/lib/jekyll/site.rb:189:in `each'
  from /Users/goooseman/.rvm/gems/ruby-1.9.3-p374/gems/jekyll-0.12.0/lib/jekyll/site.rb:189:in `generate'
  from /Users/goooseman/.rvm/gems/ruby-1.9.3-p374/gems/jekyll-0.12.0/lib/jekyll/site.rb:40:in `process'
  from /Users/goooseman/.rvm/gems/ruby-1.9.3-p374/gems/jekyll-0.12.0/bin/jekyll:264:in `<top (required)>'
  from /Users/goooseman/.rvm/gems/ruby-1.9.3-p374/bin/jekyll:19:in `load'
  from /Users/goooseman/.rvm/gems/ruby-1.9.3-p374/bin/jekyll:19:in `<main>'
  from /Users/goooseman/.rvm/gems/ruby-1.9.3-p374/bin/ruby_noexec_wrapper:14:in `eval'
  from /Users/goooseman/.rvm/gems/ruby-1.9.3-p374/bin/ruby_noexec_wrapper:14:in `<main>'
Configuration from /Volumes/DATA/Users/goooseman/octopress/_config.yml
Building site: source -> public
YAML Exception reading 2013-02-26-dielaiem-skrinshot-pravil'no.markdown: invalid byte sequence in US-ASCII
YAML Exception reading 2013-02-26-vosstanovlieniie-otdiel'nykh-failov-iz-bekapa-itunes.markdown: invalid byte sequence in US-ASCII
YAML Exception reading index.markdown: invalid byte sequence in US-ASCII
YAML Exception reading index.html: invalid byte sequence in US-ASCII
YAML Exception reading index.html: invalid byte sequence in US-ASCII
YAML Exception reading search.html: invalid byte sequence in US-ASCII
  • Если такое вывалилось, то в “octopress_cmd_before_rake” добавляем “&& export LANG=en_US.UTF-8 && export LC_ALL=en_US.UTF-8”. Сохраняем, проверяем, должно завершаться Successfully generated site: source -> public

P.S. Здесь пользователь skarfacegc подсказал еще один вариант:

1
"octopress_cmd_before_rake" : "source $HOME/.rvm/scripts/rvm && export PATH=$HOME/.rvm/bin:$PATH && export GEM_HOME=~/.rvm/gems/ruby-1.9.3-p374" 

rbenv

Если Вы используете rbenv, то Ваш ~/.bashrc должен выглядеть так:

1
PATH="$HOME/.rbenv/versions/1.9.3-p194/bin:$PATH"

А octopress_cmd_before_rake вот так: source ~/.bashrc && export LANG=en_US.UTF-8 && export LC_ALL=en_US.UTF-8. В этом случае устанавливать снова зависимости мне не понадобилось.

Другие возможные ошибки

  • git: command not found
    Если вы используете ~/.bashrc, то в конце значения параметра PATH вы не указали “:$PATH”, который нужен для подгурзки стандартных путей.
1
/Users/<user>/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/pygments.rb-0.3.4/lib/pygments/popen.rb:377:in `header_to_json': Traceback (most recent call last): (MentosError) 

Проблема в подсветке кода, в одной из записей или страниц кода не правильно вставлен код. Какой именно можно найти в этой строчке: ClassNotFound: no lexer for alias 'PATH=$PATH:$HOME/.rvm/bin' found Лучше всего знаки ` с самим кодом отделять переводом каретки.

Комментарии