Skip to content
razykov edited this page Nov 15, 2014 · 7 revisions

Работа с конспектом лекций по Языкам программирования

Рабочие файлы и каталоги

  • src/ - В этом каталоге содержатся исходники лекций. Все изменения в текст лекций вносятся через правку файлов, содержащихся в данном каталоге. Для того чтобы внесенные изменения сделать доступными на Pages необходимо выполнить скрипт build.py в корневом каталоге проекта.
  • lecture/ - Содержимое данного каталога генерируется автоматически и не нуждается в правке. Здесь содержатся *.md файлы, из которых Pages создают html-страницы видимые пользователю.
  • lecture/stream.md - Содержимое данного файла генерируется автоматически и не нуждается в правке. Здесь содержатся все лекции одним файлом. Все изменения попадают в файл при выполнении команды ./build.py
  • build.py - Запустите данный скрипт для перегенерации проекта, после внесения изменений в текст лекций.
  • scripts/ - Здесь содержатся скрипты, которые занимаются генерацией содержимого папки lecture/, index.md и словаря(dictionary). Однако использовать их не стоит - для сборки проекта используется скрипт build.py в корневом каталоге проекта.
  • dictionary - файл, в котором хранятся переводы markdown-заголовков файлов лекций.

Словарь

Файл dictionary в корневом каталоге создан для решения двух проблем:

  1. Он кэширует результаты уже встречавшихся запросов к google.translate, что значительно сокращает время сборки проекта.
  2. Внося правки в этот файл, можно вручную задавать переводы markdown-заголовков.

Ручной перевод

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

  1. Разделителем пары ключ-значение является ' : ' (пробел-двоеточие-пробел)
  2. На одной строке находится одна пара
  3. Убедитесь, что перед парой ключ-значение нет пробелов (ключ не должен пострадать, иначе он станет недействительным)

При обычной сборке проекта внесенные изменения останутся, однако при запуске скрипта build.py с ключом -r словарь очищается и генерируется заново, как следствие пропадут ручные правки. Для избежания подобных потерь в словаре предусмотрен замок #. Если поставить его в начале измененной строки, например:

#Действие передаваемое параметром (callback) : callback 

тогда, при очистке словаря, эта строка сохранится.

build.py

  • команда ./build.py заново генерирует содержимое lecture/stream.md, не публикуя результат в основном хранилище лекций. Используется на этапе добавления и редактирования новой лекции.
  • команда ./build.py -r перед началом генерации проекта очищает словарь. Флаг -r предназначен для пересборки проекта после внесения изменений в правила генерации словаря - в иных случаях его использование неудобно т.к. создание нового словаря может длиться несколько минут.

ВНИМАНИЕ!!! Использование флага -r имеет смысл только с ключом -p.

  • команда ./build.py -p заново генерирует содержимое lecture/ и index.md, используя данные из src/ и dictionary, добавляя в словарь не найденные переводы. Используется для публикации лекции после окончания редактирования.

ВНИМАНИЕ!!! Для работы скрипта необходима версия Python 3.x