diff --git a/README.markdown b/README.markdown index d7720b8..b6d9778 100644 --- a/README.markdown +++ b/README.markdown @@ -1,10 +1,10 @@ # Clojure FMI Lectures -The lectures for the [Clojure fourse in FMI Sofia](http://fmi.clojure.bg/). +The lectures for the [Clojure course in FMI Sofia](http://fmi.clojure.bg/). This repository contains both the code needed to generate the lectures as HTML and the lectures themselves (as text files, in Bulgarian). -## Usage +## Usage (compiling lectures) If you want to compile all the lectures to HTML, just execute: @@ -14,6 +14,30 @@ If you want to compile a specific lecture (for example 7), you can run: $ lein run 7 +## Creating new lectures + To add a new lecture you must first create the `.lecture` file for it and after that add it to the `index.yml` file. + Adding to the `index.yml` file is simple just add a new entry in this format. + + + '': + title: + date: <date of the lecture> + slug: <filename of the lecture file> + + +**Warning:** The filename of the lecture file does not contain the file extension `.lecture`. + + +###Example + '7': + title: 07. Референтни типове, част 1 + date: 2013-03-26 + slug: 07-referential-types-1 + +## Lecture file syntax (.lecture files) + + Lecture syntax is described(in Bulgarian) in the `SYNTAX.markdown` file. + ## License Copyright © 2013 diff --git a/SYNTAX.markdown b/SYNTAX.markdown new file mode 100644 index 0000000..5637ea5 --- /dev/null +++ b/SYNTAX.markdown @@ -0,0 +1,101 @@ +## Синтакис на слайдовете + +Тук е описан синтаксиса на файловете (.lecture) с който са +описани презентациите.Когато сте добавили лекцията в `index.yml` файла първия слайд ще бъде запълнен със заглавитето и датата опоменати там. + + +Основната структура на файла (.lecture) е съвкупността от слайдове характеризирани със тяхното заглавие и подзаглавие.Когато сложим маркер за заглавие на слайд тогава завършваме предния слайд тоест няма специален синтаксис за край на слайд. + +За да започнем нов слайд описаваме неговото заглавие започвайки реда с `=` + +### _Пример_ + = Заглавие + +Опционално може да добавим подзаглавие на слайда като добавим ред започващ със `==`. + +###Пример: + = Заглавие + == Подзаглавие (опционално) + +След описанието на заглавието и/или подзаглавието започва същинското съдържание на слайда. + +То може да се формира от следните няколко елемента: +##1. Текст + Може свободно да се пише текст като в него може да има болднат текст както и код. + Синтаксиса е идентичен с този на Markdown тоест: + +### _Пример_ + Нормален *Болднат текст* и съответно `код` + +##2. Линкове + Линковете могат да се два вида нормален (Markdown) и съответно GitHub +###2.1 GitHub линкове + Ползват се за лесно добавяне на линкове към хранилище в GitHub.Вместо да излписвате пълния линк може да пропуснем `https://github.com` . + +### _Пример_ + [gh:fmi/lectures] + +###2.2 Хтмл линк + Описва линк със заглавие аналогично на синтаксиса на Markdown +### _Пример_ + [Заглавие на хиперлинка](http://еxample.com) + +##3. Код (Clojure) + Има два начина да покажете код в слайдовете - нормално и със анотация. За улеснени кода е highlighed както и при hover върху Clojure функции се показва тяхната документация.Документацията е както е описана от `doc` формата. + +### Annotated +Ако искаме да изпълним парче код в лекциите трябва да ползваме `:annotated` и добавяме коментар `; =>`. Коментара ще остойности последната форма преди него. + +### _Пример_ + :annotated + (defn sum [a b] + (+ a b)) + + (sum 1 2) ; => +Тогава в лекциите ще се преработи: + + (defn sum [a b] + (+ a b)) + + (sum 1 2) ; 3 + + Другия вариант е просто код без да се evaluate коментарите. + +### _Пример_ + :code + (def hello-world [name] + (prn "Hello," name)) + + +##4. Списък + Може и да добавяте списък от елементи, който е неподреден + +### _Пример_ + + * Булет 1 + * Булет 2 + +##5. HTML + Освен всичко гореупоменато може да се добавя и html код без специален синтаксис. + +#Примерен (.lecture) файл: + + = Слайд 1 + == Подзаглавие + + * Слайдовете са в GitHub - [gh:fmi/lectures] + * Това е текст *болд* и малко код `code` + * [Примерен сайт](http://example.com) + * [http://clojure.org/cheatsheet] + + :code + ((fn [a b c d e] + (+ a b c d e)) + 1 2 3 4 5) + + :annotate + (map str [1 2 3 4 5]) + ; => + + Това е тестов HTML фрагмент: + <img src="image.jpg" alt="Custom image"></img>