summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--cs-cz/python3.html.markdown2
-rw-r--r--csharp.html.markdown4
-rw-r--r--d.html.markdown8
-rw-r--r--erlang.html.markdown2
-rw-r--r--es-es/python3-es.html.markdown2
-rw-r--r--fr-fr/python3-fr.html.markdown2
-rw-r--r--json.html.markdown51
-rw-r--r--pl-pl/python-pl.html.markdown159
-rw-r--r--powershell.html.markdown321
-rw-r--r--python3.html.markdown5
-rw-r--r--ru-ru/python3-ru.html.markdown2
-rw-r--r--sass.html.markdown203
-rw-r--r--sk-sk/LearnGit-sk.txt208
-rw-r--r--sk-sk/git.html.markdown523
-rw-r--r--sk-sk/latex.html.markdown.tex227
-rw-r--r--sk-sk/learn-latex-sk.tex209
-rw-r--r--tr-tr/python3-tr.html.markdown2
-rw-r--r--zh-cn/python3-cn.html.markdown2
18 files changed, 1708 insertions, 224 deletions
diff --git a/cs-cz/python3.html.markdown b/cs-cz/python3.html.markdown
index 6d2fd1eb..b498046a 100644
--- a/cs-cz/python3.html.markdown
+++ b/cs-cz/python3.html.markdown
@@ -566,7 +566,7 @@ Clovek.odkaslej_si() # => "*ehm*"
# Lze importovat moduly
import math
-print(math.sqrt(16)) # => 4
+print(math.sqrt(16.0)) # => 4
# Lze také importovat pouze vybrané funkce z modulu
from math import ceil, floor
diff --git a/csharp.html.markdown b/csharp.html.markdown
index dfdd98de..677c2591 100644
--- a/csharp.html.markdown
+++ b/csharp.html.markdown
@@ -45,8 +45,8 @@ using System.Data.Entity;
// Using this code from another source file: using Learning.CSharp;
namespace Learning.CSharp
{
- // Each .cs file should at least contain a class with the same name as the file
- // you're allowed to do otherwise, but shouldn't for sanity.
+ // Each .cs file should at least contain a class with the same name as the file.
+ // You're allowed to do otherwise, but shouldn't for sanity.
public class LearnCSharp
{
// BASIC SYNTAX - skip to INTERESTING FEATURES if you have used Java or C++ before
diff --git a/d.html.markdown b/d.html.markdown
index 6f3710ab..9ebba385 100644
--- a/d.html.markdown
+++ b/d.html.markdown
@@ -53,15 +53,15 @@ void main() {
// For and while are nice, but in D-land we prefer 'foreach' loops.
// The '..' creates a continuous range, including the first value
// but excluding the last.
- foreach(i; 1..1_000_000) {
+ foreach(n; 1..1_000_000) {
if(n % 2 == 0)
- writeln(i);
+ writeln(n);
}
// There's also 'foreach_reverse' when you want to loop backwards.
- foreach_reverse(i; 1..int.max) {
+ foreach_reverse(n; 1..int.max) {
if(n % 2 == 1) {
- writeln(i);
+ writeln(n);
} else {
writeln("No!");
}
diff --git a/erlang.html.markdown b/erlang.html.markdown
index d6ed7b86..a57f295f 100644
--- a/erlang.html.markdown
+++ b/erlang.html.markdown
@@ -177,7 +177,7 @@ is_dog(A) -> false.
% A guard sequence is either a single guard or a series of guards, separated
% by semicolons (`;`). The guard sequence `G1; G2; ...; Gn` is true if at
% least one of the guards `G1`, `G2`, ..., `Gn` evaluates to `true`.
-is_pet(A) when is_atom(A), (A =:= dog) or (A =:= cat) -> true;
+is_pet(A) when is_atom(A), (A =:= dog);(A =:= cat) -> true;
is_pet(A) -> false.
% Warning: not all valid Erlang expressions can be used as guard expressions;
diff --git a/es-es/python3-es.html.markdown b/es-es/python3-es.html.markdown
index 1c69481a..d30af1c8 100644
--- a/es-es/python3-es.html.markdown
+++ b/es-es/python3-es.html.markdown
@@ -478,7 +478,7 @@ Humano.roncar() #=> "*roncar*"
# Puedes importar módulos
import math
-print(math.sqrt(16)) #=> 4
+print(math.sqrt(16)) #=> 4.0
# Puedes obtener funciones específicas desde un módulo
from math import ceil, floor
diff --git a/fr-fr/python3-fr.html.markdown b/fr-fr/python3-fr.html.markdown
index 04d0a55d..3d60157c 100644
--- a/fr-fr/python3-fr.html.markdown
+++ b/fr-fr/python3-fr.html.markdown
@@ -627,7 +627,7 @@ Human.grunt() # => "*grunt*"
# On peut importer des modules
import math
-print(math.sqrt(16)) # => 4
+print(math.sqrt(16)) # => 4.0
# On peut importer des fonctions spécifiques d'un module
from math import ceil, floor
diff --git a/json.html.markdown b/json.html.markdown
index cde7bc40..a612cffe 100644
--- a/json.html.markdown
+++ b/json.html.markdown
@@ -8,27 +8,24 @@ contributors:
- ["Michael Neth", "https://github.com/infernocloud"]
---
-As JSON is an extremely simple data-interchange format, this is most likely going to be the simplest Learn X in Y Minutes ever.
+JSON is an extremely simple data-interchange format. As [json.org](http://json.org) says, it is easy for humans to read and write and for machines to parse and generate.
-JSON in its purest form has no actual comments, but most parsers will accept C-style (`//`, `/* */`) comments. Some parsers also tolerate a trailing comma (i.e. a comma after the last element of an array or the after the last property of an object), but they should be avoided for better compatibility.
-
-For the purposes of this, however, everything is going to be 100% valid JSON. Luckily, it kind of speaks for itself.
-
-A JSON value must be a number, a string, an array, an object, or one of the following 3 literal names: true, false, null.
-
-Supporting browsers are: Firefox 3.5+, Internet Explorer 8.0+, Chrome 1.0+, Opera 10.0+, and Safari 4.0+.
-
-File extension for JSON files is ".json" and the MIME type for JSON text is "application/json".
+A piece of JSON must represent either:
+* A collection of name/value pairs (`{ }`). In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, or associative array.
+* An ordered list of values (`[ ]`). In various languages, this is realized as an array, vector, list, or sequence.
+ an array/list/sequence (`[ ]`) or a dictionary/object/associated array (`{ }`).
-Many programming languages have support for serializing (encoding) and unserializing (decoding) JSON data into native data structures. Javascript has implicit support for manipulating JSON text as data.
+JSON in its purest form has no actual comments, but most parsers will accept C-style (`//`, `/* */`) comments. Some parsers also tolerate a trailing comma (i.e. a comma after the last element of an array or the after the last property of an object), but they should be avoided for better compatibility.
-More information can be found at http://www.json.org/
+For the purposes of this tutorial, everything is going to be 100% valid JSON. Luckily, it kind of speaks for itself.
-JSON is built on two structures:
-* A collection of name/value pairs. In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, or associative array.
-* An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence.
+Supported data types:
-An object with various name/value pairs.
+* Strings: `"hello"`, `"\"A quote.\""`, `"\u0abe"`, `"Newline.\n"`
+* Numbers: `23`, `0.11`, `12e10`, `3.141e-10`, `1.23e+4`
+* Objects: `{ "key": "value" }`
+* Arrays: `["Values"]`
+* Miscellaneous: `true`, `false`, `null`
```json
{
@@ -66,20 +63,20 @@ An object with various name/value pairs.
"alternative style": {
"comment": "check this out!"
- , "comma position": "doesn't matter - as long as it's before the next key, then it's valid"
+ , "comma position": "doesn't matter, if it's before the next key, it's valid"
, "another comment": "how nice"
- }
-}
-```
+ },
-A single array of values by itself is also valid JSON.
-```json
-[1, 2, 3, "text", true]
-```
-Objects can be a part of the array as well.
+ "whitespace": "Does not matter.",
-```json
-[{"name": "Bob", "age": 25}, {"name": "Jane", "age": 29}, {"name": "Jack", "age": 31}]
+
+
+ "that was short": "And done. You now know everything JSON has to offer."
+}
```
+
+## Further Reading
+
+* [JSON.org](http://json.org) All of JSON beautifully explained using flowchart-like graphics.
diff --git a/pl-pl/python-pl.html.markdown b/pl-pl/python-pl.html.markdown
index ade1d7ca..023c3e6b 100644
--- a/pl-pl/python-pl.html.markdown
+++ b/pl-pl/python-pl.html.markdown
@@ -30,7 +30,7 @@ działać w wersjach 2.x. Dla wersji 3.x znajdziesz odpowiedni artykuł na stron
# Pojedyncze komentarze oznaczamy takim symbolem.
""" Wielolinijkowe napisy zapisywane są przy użyciu
- trzech znaków cudzysłowiu i często
+ potrójnych cudzysłowów i często
wykorzystywane są jako komentarze.
"""
@@ -47,11 +47,11 @@ działać w wersjach 2.x. Dla wersji 3.x znajdziesz odpowiedni artykuł na stron
10 * 2 # => 20
35 / 5 # => 7
-# Dzielenie może być kłopotliwe. Poniższe to dzielenie
+# Dzielenie może być kłopotliwe. Poniższe działanie to dzielenie
# całkowitoliczbowe(int) i wynik jest automatycznie zaokrąglany.
5 / 2 # => 2
-# Aby to naprawić musimy powiedzieć nieco o liczbach zmiennoprzecinkowych.
+# Aby to naprawić, musimy powiedzieć nieco o liczbach zmiennoprzecinkowych.
2.0 # To liczba zmiennoprzecinkowa, tzw. float
11.0 / 4.0 # => 2.75 ahhh...znacznie lepiej
@@ -65,7 +65,7 @@ działać w wersjach 2.x. Dla wersji 3.x znajdziesz odpowiedni artykuł na stron
# Operator modulo - wyznaczanie reszty z dzielenia
7 % 3 # => 1
-# Potęgowanie (x do potęgi ytej)
+# Potęgowanie (x do potęgi y-tej)
2**4 # => 16
# Wymuszanie pierwszeństwa w nawiasach
@@ -83,7 +83,7 @@ False or True #=> True # Prawda
2 == True #=> False
k1 == True #=> True
-# aby zanegować użyj "not"
+# aby zanegować, użyj "not"
not True # => False
not False # => True
@@ -112,7 +112,7 @@ not False # => True
# Napisy można dodawać!
"Witaj " + "świecie!" # => "Witaj świecie!"
-# ... a nawet mnożone
+# ... a nawet mnożyć
"Hej" * 3 # => "HejHejHej"
# Napis może być traktowany jako lista znaków
@@ -124,7 +124,7 @@ not False # => True
# Jednak nowszym sposobem formatowania jest metoda "format".
# Ta metoda jest obecnie polecana:
"{0} są {1}".format("napisy", "fajne")
-# Jeśli nie chce ci się liczyć użyj słów kluczowych.
+# Jeśli nie chce ci się liczyć, użyj słów kluczowych.
"{imie} chce zjeść {jadlo}".format(imie="Bob", jadlo="makaron")
# None jest obiektem
@@ -135,12 +135,12 @@ None # => None
"etc" is None # => False
None is None # => True
-# Operator 'is' testuje identyczność obiektów. To nie jest zbyt
+# Operator 'is' testuje identyczność obiektów. Nie jest to zbyt
# pożyteczne, gdy działamy tylko na prostych wartościach,
# ale przydaje się, gdy mamy do czynienia z obiektami.
-# None, 0, i pusty napis "" są odpowiednikami logicznego False.
-# Wszystkie inne wartości są True
+# None, 0 i pusty napis "" są odpowiednikami logicznego False.
+# Wszystkie inne wartości są uznawane za prawdę (True)
bool(0) # => False
bool("") # => False
@@ -149,20 +149,20 @@ bool("") # => False
## 2. Zmienne i zbiory danych
####################################################
-# Python ma wyrażenie wypisujące "print" we wszystkich wersjach 2.x, ale
-# zostało usunięte z wersji 3.
-print "Jestem Python. Miło poznać!"
-# Python ma też funkcję "print" dostępną w wersjach 2.7 and 3...
+# Python ma instrukcję wypisującą "print" we wszystkich wersjach 2.x, ale
+# została ona usunięta z wersji 3.
+print "Jestem Python. Miło Cię poznać!"
+# Python ma też funkcję "print" dostępną w wersjach 2.7 i 3...
# ale w 2.7 musisz dodać import (odkomentuj):
# from __future__ import print_function
print("Ja też jestem Python! ")
# Nie trzeba deklarować zmiennych przed przypisaniem.
-jakas_zmienna = 5 # Konwencja mówi: używaj małych znaków i kładki _
+jakas_zmienna = 5 # Konwencja mówi: używaj małych liter i znaków podkreślenia _
jakas_zmienna # => 5
# Próba dostępu do niezadeklarowanej zmiennej da błąd.
-# Przejdź do sekcji Obsługa wyjątków po więcej...
+# Przejdź do sekcji Obsługa wyjątków, aby dowiedzieć się więcej...
inna_zmienna # Wyrzuca nazwę błędu
# "if" może być użyte jako wyrażenie
@@ -173,7 +173,7 @@ li = []
# Możesz zacząć od wypełnionej listy
inna_li = [4, 5, 6]
-# Dodaj na koniec używając "append"
+# Dodaj na koniec, używając "append"
li.append(1) # li to teraz [1]
li.append(2) # li to teraz [1, 2]
li.append(4) # li to teraz [1, 2, 4]
@@ -185,7 +185,7 @@ li.append(3) # li to znowu [1, 2, 4, 3].
# Dostęp do list jak do każdej tablicy
li[0] # => 1
-# Użyj = aby nadpisać wcześniej wypełnione miejsca w liście
+# Aby nadpisać wcześniej wypełnione miejsca w liście, użyj znaku =
li[0] = 42
li[0] # => 42
li[0] = 1 # Uwaga: ustawiamy starą wartość
@@ -195,7 +195,7 @@ li[-1] # => 3
# Jeżeli wyjdziesz poza zakres...
li[4] # ... zobaczysz IndexError
-# Możesz tworzyć wyniki.
+# Możesz też tworzyć wycinki.
li[1:3] # => [2, 4]
# Bez początku
li[2:] # => [4, 3]
@@ -213,12 +213,12 @@ del li[2] # li to teraz [1, 2, 3]
# Listy można dodawać
li + inna_li # => [1, 2, 3, 4, 5, 6]
-# Uwaga: wartości poszczególnych list się nie zmieniają.
+# Uwaga: wartości oryginalnych list li i inna_li się nie zmieniają.
# Do łączenia list użyj "extend()"
li.extend(other_li) # li to teraz [1, 2, 3, 4, 5, 6]
-# Sprawdź czy jest w liście używając "in"
+# Sprawdź, czy element jest w liście używając "in"
1 in li # => True
# "len()" pokazuje długość listy
@@ -238,7 +238,7 @@ tup[:2] # => (1, 2)
# Można rozpakować krotki i listy do poszczególych zmiennych
a, b, c = (1, 2, 3) # a to teraz 1, b jest 2, a c to 3
-# Jeżeli zapomnisz nawiasów automatycznie tworzone są krotki
+# Jeżeli zapomnisz nawiasów, automatycznie tworzone są krotki
d, e, f = 4, 5, 6
# Popatrz jak prosto zamienić wartości
e, d = d, e # d to teraz 5 a e to 4
@@ -252,28 +252,28 @@ pelen_slownik = {"raz": 1, "dwa": 2, "trzy": 3}
# Podglądany wartość
pelen_slownik["one"] # => 1
-# Wypisz wszystkie klucze używając "keys()"
+# Wypisz wszystkie klucze, używając "keys()"
pelen_slownik.keys() # => ["trzy", "dwa", "raz"]
-# Uwaga: słowniki nie gwarantują kolejności występowania kluczy.
+# Uwaga: słowniki nie zapamiętują kolejności kluczy.
# A teraz wszystkie wartości "values()"
pelen_slownik.values() # => [3, 2, 1]
# Uwaga: to samo dotyczy wartości.
-# Sprawdzanie czy występuje to "in"
+# Sprawdzanie czy klucz występuje w słowniku za pomocą "in"
"raz" in pelen_slownik # => True
1 in pelen_slownik # => False
# Próba dobrania się do nieistniejącego klucza da KeyError
pelen_slownik["cztery"] # KeyError
-# Użyj "get()" method aby uniknąć KeyError
+# Użyj metody "get()", aby uniknąć błędu KeyError
pelen_slownik.get("raz") # => 1
pelen_slownik.get("cztery") # => None
# Metoda get zwraca domyślną wartość gdy brakuje klucza
pelen_slownik.get("one", 4) # => 1
pelen_slownik.get("cztery", 4) # => 4
-# zauważ, że pelen_slownik.get("cztery") jest wciąż => None
+# zauważ, że pelen_slownik.get("cztery") wciąż zwraca => None
# (get nie ustawia wartości słownika)
# przypisz wartość do klucza podobnie jak w listach
@@ -284,12 +284,12 @@ pelen_slownik.setdefault("piec", 5) # pelen_slownik["piec"] daje 5
pelen_slownik.setdefault("piec", 6) # pelen_slownik["piec"] to wciąż 5
-# Teraz zbiory (set) ... cóż zbiory (to po prostu listy ale bez potórzeń)
+# Teraz zbiory (set) - działają jak zwykłe listy, ale bez potórzeń
pusty_zbior = set()
# Inicjalizujemy "set()" pewnymi wartościami
jakis_zbior = set([1, 2, 2, 3, 4]) # jakis_zbior to teraz set([1, 2, 3, 4])
-# kolejność nie jest gwarantowana, nawet gdy wydaje się posortowane
+# kolejność nie jest zachowana, nawet gdy wydaje się posortowane
inny_zbior = set([4, 3, 2, 2, 1]) # inny_zbior to set([1, 2, 3, 4])
# Od Pythona 2.7 nawiasy klamrowe {} mogą być użyte do deklarowania zbioru
@@ -298,7 +298,7 @@ pelen_zbior = {1, 2, 2, 3, 4} # => {1, 2, 3, 4}
# Dodaj więcej elementów przez "add()"
pelen_zbior.add(5) # pelen_zbior is now {1, 2, 3, 4, 5}
-# Znajdź przecięcie zbiorów używając &
+# Znajdź przecięcie (część wspólną) zbiorów, używając &
inny_zbior = {3, 4, 5, 6}
pelen_zbior & other_set # => {3, 4, 5}
@@ -317,32 +317,32 @@ pelen_zbior | other_set # => {1, 2, 3, 4, 5, 6}
## 3. Kontrola przepływu
####################################################
-# Tworzymy zmienną some_var
-some_var = 5
+# Tworzymy zmienną jakas_zm
+jakas_zm = 5
-# Tutaj widzisz wyrażenie warunkowe "if". Wcięcia są ważne Pythonie!
-# wypisze "some_var jest mniejsza niż 10"
-if some_var > 10:
- print("some_var jest wieksza niż 10")
-elif some_var < 10: # This elif clause is optional.
- print("some_var jest mniejsza niż 10")
-else: # This is optional too.
- print("some_var jest równa 10")
+# Tutaj widzisz wyrażenie warunkowe "if". Wcięcia w Pythonie są ważne!
+# Poniższy kod wypisze "jakas_zm jest mniejsza niż 10"
+if jakas_zm > 10:
+ print("jakas_zm jest wieksza niż 10")
+elif some_var < 10: # Opcjonalna klauzula elif
+ print("jakas_zm jest mniejsza niż 10")
+else: # Również opcjonalna klauzula else
+ print("jakas_zm jest równa 10")
"""
-Pętla for iteruje po elementach listy wypisując:
+Pętla for iteruje po elementach listy, wypisując:
pies to ssak
kot to ssak
mysz to ssak
"""
for zwierze in ["pies", "kot", "mysz"]:
- # Możesz użyć % aby stworzyć sformatowane napisy
- print("%s to ssak" % zwierze)
+ # Użyj metody format, aby umieścić wartość zmiennej w ciągu
+ print("{0} to ssak".format(zwierze))
"""
"range(liczba)" zwraca listę liczb
-od zera do danej liczby:
+z przedziału od zera do wskazanej liczby (bez niej):
0
1
2
@@ -352,7 +352,7 @@ for i in range(4):
print(i)
"""
-While to pętla która jest wykonywana dopóki spełniony jest warunek:
+While to pętla, która jest wykonywana, dopóki spełniony jest warunek:
0
1
2
@@ -363,46 +363,46 @@ while x < 4:
print(x)
x += 1 # Skrót od x = x + 1
-# Wyjątki wyłapujemy używając try, except
+# Wyjątki wyłapujemy, używając try i except
# Działa w Pythonie 2.6 i wyższych:
try:
- # Użyj "raise" aby wyrzucić wyjąte
+ # Użyj "raise" aby wyrzucić wyjątek
raise IndexError("To błąd indeksu")
except IndexError as e:
- pass # Pass to brak reakcji na błąd. Zazwyczaj nanosisz tu poprawki.
+ pass # Pass to brak reakcji na błąd. Zwykle opisujesz tutaj, jak program ma się zachować w przypadku błędu.
except (TypeError, NameError):
- pass # kilka wyjątków może być przechwyce razem.
+ pass # kilka wyjątków można przechwycić jednocześnie.
else: # Opcjonalna część bloku try/except. Musi wystąpić na końcu
print "Wszystko ok!" # Zadziała tylko, gdy program nie napotka wyjatku.
####################################################
-## 4. Funkcjie
+## 4. Funkcje
####################################################
-# Użyj "def" aby stworzyć nową funkcję
+# Użyj "def", aby stworzyć nową funkcję
def dodaj(x, y):
- print("x to %s a y to %s" % (x, y))
- return x + y # słówko kluczowe return zwraca wynik działania
+ print("x to %s, a y to %s" % (x, y))
+ return x + y # słowo kluczowe return zwraca wynik działania
-# Tak wywołuje się funkcję z parametrami (args):
-dodaj(5, 6) # => wypisze "x to 5 a y to 6" i zwróci 11
+# Tak wywołuje się funkcję z parametrami:
+dodaj(5, 6) # => wypisze "x to 5, a y to 6" i zwróci 11
# Innym sposobem jest wywołanie z parametrami nazwanymi.
dodaj(y=6, x=5) # tutaj kolejność podania nie ma znaczenia.
-# Można też stworzyć funkcję, które przyjmują różną ilość parametrów
-# nienazwanych args, co będzie interpretowane jako krotka jeśli nie użyjesz *
+# Można też stworzyć funkcję, które przyjmują zmienną liczbę parametrów pozycyjnych,
+# które zostaną przekazana jako krotka, pisząc w definicji funkcji "*args"
def varargs(*args):
return args
varargs(1, 2, 3) # => (1, 2, 3)
-# Można też stworzyć funkcję, które przyjmują różną ilość parametrów
-# nazwanych kwargs, które będa interpretowane jako słownik jeśli nie dasz **
+# Można też stworzyć funkcję, które przyjmują zmienną liczbę parametrów
+# nazwanych kwargs, które zostaną przekazane jako słownik, pisząc w definicji funkcji "**kwargs"
def keyword_args(**kwargs):
return kwargs
@@ -410,12 +410,12 @@ def keyword_args(**kwargs):
keyword_args(wielka="stopa", loch="ness") # => {"wielka": "stopa", "loch": "ness"}
-# Możesz też to pomieszać
+# Możesz też przyjmować jednocześnie zmienną liczbę parametrów pozycyjnych i nazwanych
def all_the_args(*args, **kwargs):
print(args)
print(kwargs)
"""
-all_the_args(1, 2, a=3, b=4) wyrzuci:
+all_the_args(1, 2, a=3, b=4) wypisze:
(1, 2)
{"a": 3, "b": 4}
"""
@@ -435,7 +435,7 @@ def pass_all_the_args(*args, **kwargs):
print varargs(*args)
print keyword_args(**kwargs)
-# Zakres widoczności
+# Zasięg zmiennych
x = 5
def setX(num):
@@ -461,14 +461,14 @@ def rob_dodawacz(x):
dodaj_10 = rob_dodawacz(10)
dodaj_10(3) # => 13
-# Są również funkcje nienazwane "lambda"
+# Są również funkcje anonimowe "lambda"
(lambda x: x > 2)(3) # => True
-# Są także wbudowane funkcje wysokiego poziomu
+# Python ma też wbudowane funkcje wyższego rzędu (przyjmujące inną funkcje jako parametr)
map(add_10, [1, 2, 3]) # => [11, 12, 13]
filter(lambda x: x > 5, [3, 4, 5, 6, 7]) # => [6, 7]
-# Można używać wyrażeń listowych do mapowania (map) i filtrowania (filter)
+# Można używać wyrażeń listowych (list comprehensions) do mapowania i filtrowania
[add_10(i) for i in [1, 2, 3]] # => [11, 12, 13]
[x for x in [3, 4, 5, 6, 7] if x > 5] # => [6, 7]
@@ -485,18 +485,18 @@ class Czlowiek(object):
# Podstawowa inicjalizacja - wywoływana podczas tworzenia instacji.
# Zauważ, że podwójne podkreślenia przed i za nazwą oznaczają
- # obietky lub atrybuty, który żyją tylko w kontrolowanej przez
- # użytkownika przestrzeni nazw. Nie używaj ich we własnych metodach.
+ # specjalne obiekty lub atrybuty wykorzystywane wewnętrznie przez Pythona.
+ # Nie używaj ich we własnych metodach.
def __init__(self, nazwa):
# przypisz parametr "nazwa" do atrybutu instancji
self.nazwa = nazwa
- # Metoda instancji. Wszystkie metody biorą "self" jako pierwszy argument
+ # Metoda instancji. Wszystkie metody przyjmują "self" jako pierwszy argument
def mow(self, wiadomosc):
return "%s: %s" % (self.nazwa, wiadomosc)
# Metoda klasowa współdzielona przez instancje.
- # Ma wywołującą klasę jako pierwszy argument.
+ # Przyjmuje wywołującą klasę jako pierwszy argument.
@classmethod
def daj_gatunek(cls):
return cls.gatunek
@@ -540,7 +540,8 @@ print(ceil(3.7)) # => 4.0
print(floor(3.7)) # => 3.0
# Można zaimportować wszystkie funkcje z danego modułu.
-# Ostrzeżenie: nie jest to polecane.
+# Uwaga: nie jest to polecane, bo później w kodzie trudno połapać się,
+# która funkcja pochodzi z którego modułu.
from math import *
# Można skracać nazwy modułów.
@@ -550,7 +551,7 @@ math.sqrt(16) == m.sqrt(16) # => True
from math import sqrt
math.sqrt == m.sqrt == sqrt # => True
-# Moduły pythona to zwykłe skrypty napisane w tym języku. Możesz
+# Moduły Pythona to zwykłe skrypty napisane w tym języku. Możesz
# pisać własne i importować je. Nazwa modułu to nazwa pliku.
# W ten sposób sprawdzisz jakie funkcje wchodzą w skład modułu.
@@ -568,14 +569,16 @@ def podwojne_liczby(iterowalne):
yield i + i
# Generatory tworzą wartości w locie.
-# W przeciwienstwie do wygenerowania wartości raz i ich zachowania,
-# powstają one na bieżąco, w wyniku iteracji. To oznacza, że wartości
-# większe niż 15 nie będą przetworzone w funkcji "podwojne_liczby".
+# Zamiast generować wartości raz i zapisywać je (np. w liście),
+# generator tworzy je na bieżąco, w wyniku iteracji. To oznacza,
+# że w poniższym przykładzie wartości większe niż 15 nie będą przetworzone
+# w funkcji "podwojne_liczby".
# Zauważ, że xrange to generator, który wykonuje tę samą operację co range.
# Stworzenie listy od 1 do 900000000 zajęłoby sporo czasu i pamięci,
-# a xrange tworzy obiekt generatora zamiast tworzyć całą listę jak range.
-# Użyto podkreślinika, aby odróżnić nazwę zmiennej od słówka kluczowego
-# Pythona.
+# a xrange tworzy obiekt generatora zamiast budować całą listę jak range.
+
+# Aby odróżnić nazwę zmiennej od nazwy zarezerwowanej w Pythonie, używamy
+# zwykle na końcu znaku podkreślenia
xrange_ = xrange(1, 900000000)
# poniższa pętla będzie podwajać liczby aż do 30
@@ -587,7 +590,7 @@ for i in podwojne_liczby(xrange_):
# Dekoratory
# w tym przykładzie "beg" jest nakładką na "say"
-# Beg wywołuje say. Jeśli say_please jest prawdziwe wtedy wzracana wartość
+# Beg wywołuje say. Jeśli say_please jest prawdziwe, wtedy zwracana wartość
# zostanie zmieniona
from functools import wraps
diff --git a/powershell.html.markdown b/powershell.html.markdown
new file mode 100644
index 00000000..ce9cfa72
--- /dev/null
+++ b/powershell.html.markdown
@@ -0,0 +1,321 @@
+---
+category: tool
+tool: powershell
+contributors:
+ - ["Wouter Van Schandevijl", "https://github.com/laoujin"]
+filename: LearnPowershell.ps1
+---
+
+PowerShell is the Windows scripting language and configuration management
+framework from Microsoft built on the .NET Framework. Windows 7 and up ship
+with PowerShell.
+Nearly all examples below can be a part of a shell script or executed directly
+in the shell.
+
+A key difference with Bash is that it is mostly objects that you manipulate
+rather than plain text.
+
+[Read more here.](https://technet.microsoft.com/en-us/library/bb978526.aspx)
+
+If you are uncertain about your environment:
+```powershell
+Get-ExecutionPolicy -List
+Set-ExecutionPolicy AllSigned
+# Execution policies include:
+# - Restricted: Scripts won't run.
+# - RemoteSigned: Downloaded scripts run only if signed by a trusted publisher.
+# - AllSigned: Scripts need to be signed by a trusted publisher.
+# - Unrestricted: Run all scripts.
+help about_Execution_Policies # for more info
+
+# Current PowerShell version:
+$PSVersionTable
+```
+
+Getting help:
+```powershell
+# Find commands
+Get-Command about_* # alias: gcm
+Get-Command -Verb Add
+Get-Alias ps
+Get-Alias -Definition Get-Process
+
+Get-Help ps | less # alias: help
+ps | Get-Member # alias: gm
+
+Show-Command Get-EventLog # Display GUI to fill in the parameters
+
+Update-Help # Run as admin
+```
+
+The tutorial starts here:
+```powershell
+# As you already figured, comments start with #
+
+# Simple hello world example:
+echo Hello world!
+# echo is an alias for Write-Output (=cmdlet)
+# Most cmdlets and functions follow the Verb-Noun naming convention
+
+# Each command starts on a new line, or after a semicolon:
+echo 'This is the first line'; echo 'This is the second line'
+
+# Declaring a variable looks like this:
+$aString="Some string"
+# Or like this:
+$aNumber = 5 -as [double]
+$aList = 1,2,3,4,5
+$aString = $aList -join '--' # yes, -split exists also
+$aHashtable = @{name1='val1'; name2='val2'}
+
+# Using variables:
+echo $aString
+echo "Interpolation: $aString"
+echo "`$aString has length of $($aString.Length)"
+echo '$aString'
+echo @"
+This is a Here-String
+$aString
+"@
+# Note that ' (single quote) won't expand the variables!
+# Here-Strings also work with single quote
+
+# Builtin variables:
+# There are some useful builtin variables, like
+echo "Booleans: $TRUE and $FALSE"
+echo "Empty value: $NULL"
+echo "Last program's return value: $?"
+echo "Exit code of last run Windows-based program: $LastExitCode"
+echo "The last token in the last line received by the session: $$"
+echo "The first token: $^"
+echo "Script's PID: $PID"
+echo "Full path of current script directory: $PSScriptRoot"
+echo 'Full path of current script: ' + $MyInvocation.MyCommand.Path
+echo "FUll path of current directory: $Pwd"
+echo "Bound arguments in a function, script or code block: $PSBoundParameters"
+echo "Unbound arguments: $($Args -join ', ')."
+# More builtins: `help about_Automatic_Variables`
+
+# Inline another file (dot operator)
+. .\otherScriptName.ps1
+
+
+### Control Flow
+# We have the usual if structure:
+if ($Age -is [string]) {
+ echo 'But.. $Age cannot be a string!'
+} elseif ($Age -lt 12 -and $Age -gt 0) {
+ echo 'Child (Less than 12. Greater than 0)'
+} else {
+ echo 'Adult'
+}
+
+# Switch statements are more powerfull compared to most languages
+$val = "20"
+switch($val) {
+ { $_ -eq 42 } { "The answer equals 42"; break }
+ '20' { "Exactly 20"; break }
+ { $_ -like 's*' } { "Case insensitive"; break }
+ { $_ -clike 's*'} { "clike, ceq, cne for case sensitive"; break }
+ { $_ -notmatch '^.*$'} { "Regex matching. cnotmatch, cnotlike, ..."; break }
+ { 'x' -contains 'x'} { "FALSE! -contains is for lists!"; break }
+ default { "Others" }
+}
+
+# The classic for
+for($i = 1; $i -le 10; $i++) {
+ "Loop number $i"
+}
+# Or shorter
+1..10 | % { "Loop number $_" }
+
+# PowerShell also offers
+foreach ($var in 'val1','val2','val3') { echo $var }
+# while () {}
+# do {} while ()
+# do {} until ()
+
+# Exception handling
+try {} catch {} finally {}
+try {} catch [System.NullReferenceException] {
+ echo $_.Exception | Format-List -Force
+}
+
+
+### Providers
+# List files and directories in the current directory
+ls # or `dir`
+cd ~ # goto home
+
+Get-Alias ls # -> Get-ChildItem
+# Uh!? These cmdlets have generic names because unlike other scripting
+# languages, PowerShell does not only operate in the current directory.
+cd HKCU: # go to the HKEY_CURRENT_USER registry hive
+
+# Get all providers in your session
+Get-PSProvider
+
+
+### Pipeline
+# Cmdlets have parameters that control their execution:
+Get-ChildItem -Filter *.txt -Name # Get just the name of all txt files
+# Only need to type as much of a parameter name until it is no longer ambiguous
+ls -fi *.txt -n # -f is not possible because -Force also exists
+# Use `Get-Help Get-ChildItem -Full` for a complete overview
+
+# Results of the previous cmdlet can be passed to the next as input.
+# grep cmdlet filters the input with provided patterns.
+# `$_` is the current object in the pipeline object.
+ls | Where-Object { $_.Name -match 'c' } | Export-CSV export.txt
+ls | ? { $_.Name -match 'c' } | ConvertTo-HTML | Out-File export.html
+
+# If you get confused in the pipeline use `Get-Member` for an overview
+# of the available methods and properties of the pipelined objects:
+ls | Get-Member
+Get-Date | gm
+
+# ` is the line continuation character. Or end the line with a |
+Get-Process | Sort-Object ID -Descending | Select-Object -First 10 Name,ID,VM `
+ | Stop-Process -WhatIf
+
+Get-EventLog Application -After (Get-Date).AddHours(-2) | Format-List
+
+# Use % as a shorthand for ForEach-Object
+(a,b,c) | ForEach-Object `
+ -Begin { "Starting"; $counter = 0 } `
+ -Process { "Processing $_"; $counter++ } `
+ -End { "Finishing: $counter" }
+
+# Get-Process as a table with three columns
+# The third column is the value of the VM property in MB and 2 decimal places
+# Computed columns can be written more verbose as:
+# `@{name='lbl';expression={$_}`
+ps | Format-Table ID,Name,@{n='VM(MB)';e={'{0:n2}' -f ($_.VM / 1MB)}} -autoSize
+
+
+### Functions
+# The [string] attribute is optional.
+function foo([string]$name) {
+ echo "Hey $name, have a function"
+}
+
+# Calling your function
+foo "Say my name"
+
+# Functions with named parameters, parameter attributes, parsable documention
+<#
+.SYNOPSIS
+Setup a new website
+.DESCRIPTION
+Creates everything your new website needs for much win
+.PARAMETER siteName
+The name for the new website
+.EXAMPLE
+New-Website -Name FancySite -Po 5000
+New-Website SiteWithDefaultPort
+New-Website siteName 2000 # ERROR! Port argument could not be validated
+('name1','name2') | New-Website -Verbose
+#>
+function New-Website() {
+ [CmdletBinding()]
+ param (
+ [Parameter(ValueFromPipeline=$true, Mandatory=$true)]
+ [Alias('name')]
+ [string]$siteName,
+ [ValidateSet(3000,5000,8000)]
+ [int]$port = 3000
+ )
+ BEGIN { Write-Verbose 'Creating new website(s)' }
+ PROCESS { echo "name: $siteName, port: $port" }
+ END { Write-Verbose 'Website(s) created' }
+}
+
+
+### It's all .NET
+# A PS string is in fact a .NET System.String
+# All .NET methods and properties are thus available
+'string'.ToUpper().Replace('G', 'ggg')
+# Or more powershellish
+'string'.ToUpper() -replace 'G', 'ggg'
+
+# Unsure how that .NET method is called again?
+'string' | gm
+
+# Syntax for calling static .NET methods
+[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')
+
+# Note that .NET functions MUST be called with parentheses
+# while PS functions CANNOT be called with parentheses
+$writer = New-Object System.IO.StreamWriter($path, $true)
+$writer.Write([Environment]::NewLine)
+$write.Dispose()
+
+### IO
+# Reading a value from input:
+$Name = Read-Host "What's your name?"
+echo "Hello, $Name!"
+[int]$Age = Read-Host "What's your age?"
+
+# Test-Path, Split-Path, Join-Path, Resolve-Path
+# Get-Content filename # returns a string[]
+# Set-Content, Add-Content, Clear-Content
+Get-Command ConvertTo-*,ConvertFrom-*
+
+
+### Useful stuff
+# Refresh your PATH
+$env:PATH = [System.Environment]::GetEnvironmentVariable("Path", "Machine") +
+ ";" + [System.Environment]::GetEnvironmentVariable("Path", "User")
+# Find Python in path
+$env:PATH.Split(";") | Where-Object { $_ -like "*python*"}
+
+# Change working directory without having to remember previous path
+Push-Location c:\temp # change working directory to c:\temp
+Pop-Location # change back to previous working directory
+
+# Unblock a directory after download
+Get-ChildItem -Recurse | Unblock-File
+
+# Open Windows Explorer in working directory
+ii .
+
+# Any key to exit
+$host.UI.RawUI.ReadKey()
+return
+
+# Create a shortcut
+$WshShell = New-Object -comObject WScript.Shell
+$Shortcut = $WshShell.CreateShortcut($link)
+$Shortcut.TargetPath = $file
+$Shortcut.WorkingDirectory = Split-Path $file
+$Shortcut.Save()
+```
+
+
+Configuring your shell
+```powershell
+# $Profile is the full path for your `Microsoft.PowerShell_profile.ps1`
+# All code there will be executed when the PS session starts
+if (-not (Test-Path $Profile)) {
+ New-Item -Type file -Path $Profile -Force
+ notepad $Profile
+}
+# More info: `help about_profiles`
+# For a more usefull shell, be sure to check the project PSReadLine below
+```
+
+Interesting Projects
+* [Channel9](https://channel9.msdn.com/Search?term=powershell%20pipeline#ch9Search&lang-en=en) PowerShell tutorials
+* [PSGet](https://github.com/psget/psget) NuGet for PowerShell
+* [PSReadLine](https://github.com/lzybkr/PSReadLine/) A bash inspired readline implementation for PowerShell (So good that it now ships with Windows10 by default!)
+* [Posh-Git](https://github.com/dahlbyk/posh-git/) Fancy Git Prompt (Recommended!)
+* [PSake](https://github.com/psake/psake) Build automation tool
+* [Pester](https://github.com/pester/Pester) BDD Testing Framework
+* [Jump-Location](https://github.com/tkellogg/Jump-Location) Powershell `cd` that reads your mind
+* [PowerShell Community Extensions](http://pscx.codeplex.com/) (Dead)
+
+Not covered
+* WMI: Windows Management Intrumentation (Get-CimInstance)
+* Multitasking: Start-Job -scriptBlock {...},
+* Code Signing
+* Remoting (Enter-PSSession/Exit-PSSession; Invoke-Command) \ No newline at end of file
diff --git a/python3.html.markdown b/python3.html.markdown
index 1f9d0e42..8cc03320 100644
--- a/python3.html.markdown
+++ b/python3.html.markdown
@@ -224,8 +224,8 @@ li.remove(2) # Raises a ValueError as 2 is not in the list
# Insert an element at a specific index
li.insert(1, 2) # li is now [1, 2, 3] again
-# Get the index of the first item found
-li.index(2) # => 3
+# Get the index of the first item found matching the argument
+li.index(2) # => 1
li.index(4) # Raises a ValueError as 4 is not in the list
# You can add lists
@@ -425,7 +425,6 @@ by step. If step is not indicated, the default value is 1.
prints:
4
6
- 8
"""
for i in range(4, 8, 2):
print(i)
diff --git a/ru-ru/python3-ru.html.markdown b/ru-ru/python3-ru.html.markdown
index 2a7b3f7b..2b6b59a7 100644
--- a/ru-ru/python3-ru.html.markdown
+++ b/ru-ru/python3-ru.html.markdown
@@ -549,7 +549,7 @@ Human.grunt() #=> "*grunt*"
# Вы можете импортировать модули
import math
-print(math.sqrt(16)) #=> 4
+print(math.sqrt(16)) #=> 4.0
# Вы можете импортировать отдельные функции модуля
from math import ceil, floor
diff --git a/sass.html.markdown b/sass.html.markdown
index 02bec47f..4d4ece71 100644
--- a/sass.html.markdown
+++ b/sass.html.markdown
@@ -4,40 +4,41 @@ filename: learnsass.scss
contributors:
- ["Laura Kyle", "https://github.com/LauraNK"]
- ["Sean Corrales", "https://github.com/droidenator"]
+ - ["Kyle Mendes", "https://github.com/pink401k"]
---
-Sass is a CSS extension language that adds features such as variables, nesting, mixins and more.
-Sass (and other preprocessors, such as [Less](http://lesscss.org/)) help developers to write maintainable and DRY (Don't Repeat Yourself) code.
+Sass is a CSS extension language that adds features such as variables, nesting, mixins and more.
+Sass (and other preprocessors, such as [Less](http://lesscss.org/)) help developers write maintainable and DRY (Don't Repeat Yourself) code.
-Sass has two different syntax options to choose from. SCSS, which has the same syntax as CSS but with the added features of Sass. Or Sass (the original syntax), which uses indentation rather than curly braces and semicolons.
+Sass has two different syntax options to choose from. SCSS, which has the same syntax as CSS but with the added features of Sass. Or Sass (the original syntax), which uses indentation rather than curly braces and semicolons.
This tutorial is written using SCSS.
-If you're already familiar with CSS3, you'll be able to pick up Sass relatively quickly. It does not provide any new styling options but rather the tools to write your CSS more efficiently and make maintenance much easier.
+If you're already familiar with CSS3, you'll be able to pick up Sass relatively quickly. It does not provide any new styling properties but rather the tools to write your CSS more efficiently and make maintenance much easier.
```scss
-
+
//Single line comments are removed when Sass is compiled to CSS.
-/*Multi line comments are preserved. */
-
-
-
-/*Variables
-==============================*/
-
-
+/* Multi line comments are preserved. */
+
+
+
+/* Variables
+============================== */
+
+
/* You can store a CSS value (such as a color) in a variable.
Use the '$' symbol to create a variable. */
-
+
$primary-color: #A3A4FF;
$secondary-color: #51527F;
-$body-font: 'Roboto', sans-serif;
+$body-font: 'Roboto', sans-serif;
+
+/* You can use the variables throughout your stylesheet.
+Now if you want to change a color, you only have to make the change once. */
-/* You can use the variables throughout your stylesheet.
-Now if you want to change a color, you only have to make the change once.*/
-
body {
background-color: $primary-color;
color: $secondary-color;
@@ -54,18 +55,18 @@ body {
/* This is much more maintainable than having to change the color
each time it appears throughout your stylesheet. */
-
-/*Mixins
-==============================*/
+
+/* Mixins
+============================== */
/* If you find you are writing the same code for more than one
element, you might want to store that code in a mixin.
-Use the '@mixin' directive, plus a name for your mixin.*/
+Use the '@mixin' directive, plus a name for your mixin. */
@mixin center {
display: block;
@@ -82,7 +83,7 @@ div {
background-color: $primary-color;
}
-/*Which would compile to: */
+/* Which would compile to: */
div {
display: block;
margin-left: auto;
@@ -99,8 +100,8 @@ div {
width: $width;
height: $height;
}
-
-/*Which you can invoke by passing width and height arguments. */
+
+/* Which you can invoke by passing width and height arguments. */
.rectangle {
@include size(100px, 60px);
@@ -110,31 +111,31 @@ div {
@include size(40px, 40px);
}
-/* This compiles to: */
+/* Compiles to: */
.rectangle {
width: 100px;
- height: 60px;
+ height: 60px;
}
.square {
width: 40px;
- height: 40px;
+ height: 40px;
}
-/*Functions
-==============================*/
-
-
-
-/* Sass provides functions that can be used to accomplish a variety of
+/* Functions
+============================== */
+
+
+
+/* Sass provides functions that can be used to accomplish a variety of
tasks. Consider the following */
-/* Functions can be invoked by using their name and passing in the
+/* Functions can be invoked by using their name and passing in the
required arguments */
body {
- width: round(10.25px);
+ width: round(10.25px);
}
.footer {
@@ -149,18 +150,18 @@ body {
.footer {
background-color: rgba(0, 0, 0, 0.75);
-}
-
-/* You may also define your own functions. Functions are very similar to
+}
+
+/* You may also define your own functions. Functions are very similar to
mixins. When trying to choose between a function or a mixin, remember
- that mixins are best for generating CSS while functions are better for
- logic that might be used throughout your Sass code. The examples in
- the Math Operators' section are ideal candidates for becoming a reusable
+ that mixins are best for generating CSS while functions are better for
+ logic that might be used throughout your Sass code. The examples in
+ the Math Operators' section are ideal candidates for becoming a reusable
function. */
-/* This function will take a target size and the parent size and calculate
+/* This function will take a target size and the parent size and calculate
and return the percentage */
-
+
@function calculate-percentage($target-size, $parent-size) {
@return $target-size / $parent-size * 100%;
}
@@ -187,12 +188,12 @@ $main-content: calculate-percentage(600px, 960px);
-/*Extend (Inheritance)
-==============================*/
+/* Extend (Inheritance)
+============================== */
-/*Extend is a way to share the properties of one selector with another. */
+/* Extend is a way to share the properties of one selector with another. */
.display {
@include size(5em, 5em);
@@ -208,36 +209,36 @@ $main-content: calculate-percentage(600px, 960px);
.display, .display-success {
width: 5em;
height: 5em;
- border: 5px solid #51527F;
+ border: 5px solid #51527F;
}
.display-success {
- border-color: #22df56;
+ border-color: #22df56;
}
-/* Extending a CSS statement is preferable to creating a mixin
- because of the way it groups together the classes that all share
- the same base styling. If this was done with a mixin, the width,
- height, and border would be duplicated for each statement that
+/* Extending a CSS statement is preferable to creating a mixin
+ because of the way Sass groups together the classes that all share
+ the same base styling. If this was done with a mixin, the width,
+ height, and border would be duplicated for each statement that
called the mixin. While it won't affect your workflow, it will
add unnecessary bloat to the files created by the Sass compiler. */
-
-/*Nesting
-==============================*/
+
+/* Nesting
+============================== */
-/*Sass allows you to nest selectors within selectors */
+/* Sass allows you to nest selectors within selectors */
ul {
list-style-type: none;
margin-top: 2em;
-
+
li {
- background-color: #FF0000;
- }
+ background-color: #FF0000;
+ }
}
/* '&' will be replaced by the parent selector. */
@@ -249,18 +250,18 @@ For example: */
ul {
list-style-type: none;
margin-top: 2em;
-
+
li {
background-color: red;
-
+
&:hover {
background-color: blue;
}
-
+
a {
color: white;
}
- }
+ }
}
/* Compiles to: */
@@ -284,17 +285,17 @@ ul li a {
-/*Partials and Imports
-==============================*/
-
-
-
+/* Partials and Imports
+============================== */
+
+
+
/* Sass allows you to create partial files. This can help keep your Sass
code modularized. Partial files should begin with an '_', e.g. _reset.css.
Partials are not generated into CSS. */
-
+
/* Consider the following CSS which we'll put in a file called _reset.css */
-
+
html,
body,
ul,
@@ -302,14 +303,14 @@ ol {
margin: 0;
padding: 0;
}
-
+
/* Sass offers @import which can be used to import partials into a file.
- This differs from the traditional CSS @import statement which makes
- another HTTP request to fetch the imported file. Sass takes the
+ This differs from the traditional CSS @import statement which makes
+ another HTTP request to fetch the imported file. Sass takes the
imported file and combines it with the compiled code. */
-
+
@import 'reset';
-
+
body {
font-size: 16px;
font-family: Helvetica, Arial, Sans-serif;
@@ -320,25 +321,25 @@ body {
html, body, ul, ol {
margin: 0;
padding: 0;
-}
+}
body {
font-size: 16px;
font-family: Helvetica, Arial, Sans-serif;
}
-
-
-/*Placeholder Selectors
-==============================*/
-
-
-
+
+
+/* Placeholder Selectors
+============================== */
+
+
+
/* Placeholders are useful when creating a CSS statement to extend. If you
wanted to create a CSS statement that was exclusively used with @extend,
you can do so using a placeholder. Placeholders begin with a '%' instead
of '.' or '#'. Placeholders will not appear in the compiled CSS. */
-
+
%content-window {
font-size: 14px;
padding: 10px;
@@ -364,18 +365,18 @@ body {
background-color: #0000ff;
}
-
-
-/*Math Operations
-==============================*/
-
-
-
+
+
+/* Math Operations
+============================== */
+
+
+
/* Sass provides the following operators: +, -, *, /, and %. These can
be useful for calculating values directly in your Sass files instead
of using values that you've already calculated by hand. Below is an example
of a setting up a simple two column design. */
-
+
$content-area: 960px;
$main-content: 600px;
$sidebar-content: 300px;
@@ -418,14 +419,11 @@ body {
width: 6.25%;
}
-
-```
-
-
+```
## SASS or Sass?
-Have you ever wondered whether Sass is an acronym or not? You probably haven't, but I'll tell you anyway. The name of the language is a word, "Sass", and not an acronym.
-Because people were constantly writing it as "SASS", the creator of the language jokingly called it "Syntactically Awesome StyleSheets".
+Have you ever wondered whether Sass is an acronym or not? You probably haven't, but I'll tell you anyway. The name of the language is a word, "Sass", and not an acronym.
+Because people were constantly writing it as "SASS", the creator of the language jokingly called it "Syntactically Awesome StyleSheets".
## Practice Sass
@@ -434,14 +432,13 @@ You can use either syntax, just go into the settings and select either Sass or S
## Compatibility
-
Sass can be used in any project as long as you have a program to compile it
into CSS. You'll want to verify that the CSS you're using is compatible
-with your target browsers.
+with your target browsers.
+
+[QuirksMode CSS](http://www.quirksmode.org/css/) and [CanIUse](http://caniuse.com) are great resources for checking compatibility.
-[QuirksMode CSS](http://www.quirksmode.org/css/) and [CanIUse](http://caniuse.com) are great resources for checking compatibility.
-
## Further reading
* [Official Documentation](http://sass-lang.com/documentation/file.SASS_REFERENCE.html)
* [The Sass Way](http://thesassway.com/) provides tutorials (beginner-advanced) and articles.
diff --git a/sk-sk/LearnGit-sk.txt b/sk-sk/LearnGit-sk.txt
new file mode 100644
index 00000000..070a0489
--- /dev/null
+++ b/sk-sk/LearnGit-sk.txt
@@ -0,0 +1,208 @@
+$ git init
+
+# Zobraz a Nastav Základné Konfiguračné Premenné (Globálne)
+$ git config --global user.email "MôjEmail@Zoho.com"
+$ git config --global user.name "Moje Meno
+
+# Rýchlo zobraz všetky dostupné príkazy
+$ git help
+
+# Zobraz všetky dostupné príkazy
+$ git help -a
+
+# Zobraz konkrétnu pomoc - použivateľský manuál
+# git help <príkaz_tu>
+$ git help add
+$ git help commit
+$ git help init
+# alebo git <príkaz_tu> --help
+$ git add --help
+$ git commit --help
+$ git init --help
+
+# Zobrazí vetvu, nesledované súbory, zmeny a ostatné rozdiely
+$ git status
+# Zistí iné vychytávky o git statuse
+$ git help status
+
+# pridá súbor z tvojho pracovného adresára
+$ git add HelloWorld.java
+
+# pridá súbor z iného adresára
+$ git add /cesta/k/súboru/HelloWorld.c
+
+# Môžeš použiť regulárne výrazy!
+$ git add ./*.java
+
+# zobraz existujúce vetvy a vzdialené repozitáre
+$ git branch -a
+
+# vytvor novú vetvu
+$ git branch myNewBranch
+
+# vymaž vetvu
+$ git branch -d myBranch
+
+# premenuj vetvu
+# git branch -m <starémeno> <novémeno>
+$ git branch -m mojaStaraVetva mojaNovaVetva
+
+# zmeň opis vetvy
+$ git branch myBranchName --edit-description
+
+# Zobrazí tagy
+$ git tag
+# Vytvorí tag so správou
+# -m špecifikuje správu, ktorá bude s tagom uložená.
+# Ak nešpeficikuješ správu pri tagu so správou,
+# Git spustí tvoj editor, aby si ju napísal.
+$ git tag -a v2.0 -m 'moja verzia 2.0'
+
+# Ukáž informácie o tagu
+# Zobrazí zadané informácie, dátum tagnutia commitu
+# a správu pred zobrazením informácií o commite.
+$ git show v2.0
+
+# Zverejní (pushne) jediný tag do vzdialeného repozitára
+$ git push origin v2.0
+
+# Zverejní viacero tagov do vzdialeného repozitára
+$ git push origin --tags
+
+# Aktualizuj strom, aby odpovedal (predvolene)
+# hlavnej vetve repozitáru (master branch)
+$ git checkout
+
+# Aktualizuj strom, aby odpovedal konrkétnej vetve
+$ git checkout menoVetvy
+
+# Vytvor novú vetvu & prepni sa na ňu
+# ekvivalentný príkaz: "git branch <meno>; git checkout <meno>"
+$ git checkout -b nováVetva
+
+# Naklonuj learnxinyminutes-docs
+$ git clone https://github.com/adambard/learnxinyminutes-docs.git
+
+# povrchné klonovanie - rýchlejšie, uloží iba najnovšiu snímku
+$ git clone --depth 1 https://github.com/adambard/learnxinyminutes-docs.git
+
+# naklonuj iba konkrétnu vetvu
+$ git clone -b master-cn https://github.com/adambard/learnxinyminutes-docs.git --single-branch
+
+# commitni so správou
+$ git commit -m "Pridal som multiplyNumbers() funkciu do HelloWorld.c"
+
+# automaticky pridaj zmenené a vymazané súbory do staging indexu, potom ich commitni.
+$ git commit -a -m "Zmenil som foo.php a vymazal bar.php"
+
+# zmeň posledný commit (toto nahradí predchádzajúci commit novým)
+$ git commit --amend -m "Správna správa"
+
+# Ukáž rozdiel medzi pracovným repozitárom a indexom.
+$ git diff
+
+# Ukáž rozdiely medzi indexom a najnovším commitom.
+$ git diff --cached
+
+# Ukáž rozdiely medzi pracovným adresárom a najnovším commitom.
+$ git diff HEAD
+
+# Nastav, aby sa vo výsledkoch vyhľadávania zobrazovalo číslo riadku
+$ git config --global grep.lineNumber true
+
+# Urob výsledky vyhľadávania čitateľnejšie, vrátane zoskupovania
+$ git config --global alias.g "grep --break --heading --line-number"
+
+# Vďaka Travisovi Jefferymu za túto sekciu
+# Hľadaj "názovPremennej" vo všetkých java súboroch
+$ git grep 'názovPremennej' -- '*.java'
+
+# Hľadaj riadok, ktorý obsahuje "názovPoľa" a "add" alebo "remove"
+$ git grep -e 'arrayListName' --and \( -e add -e remove \)
+
+# Zobraz všetky commity
+$ git log
+
+# Zobraz iba správy a referencie commitov
+$ git log --oneline
+
+# Zobraz zlúčené (merged) commity
+$ git log --merges
+
+# Zobraz všetky commity vo forme ASCII grafu
+$ git log --graph
+
+# Zlúč vybranú vetvu do aktuálnej.
+$ git merge názovVetvy
+
+# Vždy vytvor zlučovací commit
+$ git merge --no-ff názovVetvy
+
+# Premenuj súbor
+$ git mv HelloWorld.c HelloNewWorld.c
+
+# Presuň súbor
+$ git mv HelloWorld.c ./nová/cesta/HelloWorld.c
+
+# "Nasilu" premenuj, alebo presuň
+# "existujúciSúbor" už v adresári existuje, bude prepísaný
+$ git mv -f môjSúbor existujúciSúbor
+
+# Aktualizuje tvoj lokálny repozitár zlúčením nových zmien
+# zo vzdialených "origin" a "master" vetiev.
+# git pull <alias-vzdialeného-repo> <vetva>
+$ git pull origin master
+
+# Predvolene, git pull aktualizuje tvoju aktuálnu vetvu
+# zlúčením nových zmien zo vzdialenej vetvy
+$ git pull
+
+# Zlúč zmeny zo vzdialenej vetvy a presuň vetvu do nového základného commitu (rebase)
+# vetva commitne na tvoj lokálny repozitár, ekvivalentný príkaz: "git pull <alias-vzdialeného-repo> <vrstva>, git rebase <branch>"
+$ git pull origin master --rebase
+
+# Zverejni a zlúč zmeny z lokálneho repozitára do
+# vzdialených vetiev s názvom "origin" a "master".
+# git push <vzdialené> <vetvy>
+$ git push origin master
+
+# Predvolene git zverejní a zlúči zmeny z
+# aktuálnej vetvy do vzdialenej vetvy s ňou spojenej
+$ git push
+
+# Na spojenie lokálnej vetvy so vzdialenou pridaj -u:
+$ git push -u origin master
+# Kedykoľvek budeš chcieť zverejniť z rovnakej lokálnej vetvy, použi príkaz:
+$ git push
+
+# Aplikuj commity z experimentálnej vetvy na master
+# git rebase <základnáVetva> <ináVetva>
+$ git rebase master experimentBranch
+
+# Resetni index (vrstvu medzi pracovným stromom a Git repozitárom), aby odpovedal najnovšiemu commitu (adresár ostane nezmenený)
+$ git reset
+
+# Resetni index, aby odpovedal najnovšiemu commitu (adresár sa prepíše)
+$ git reset --hard
+
+# Presunie vrchol aktuálnuej vetvy do konkrétneho commitu (adresár ostane nezmenený)
+# všetky zmeny sú zachované v adresári.
+$ git reset 31f2bb1
+
+# Vezmi späť konkrétny commit
+$ git revert <commit>
+
+# odstráň HelloWorld.c
+$ git rm HelloWorld.c
+
+# Odstráň súbor z vnoreného adresára
+$ git rm /pather/to/the/file/HelloWorld.c
+
+
+
+
+
+
+
+
+
diff --git a/sk-sk/git.html.markdown b/sk-sk/git.html.markdown
new file mode 100644
index 00000000..21741406
--- /dev/null
+++ b/sk-sk/git.html.markdown
@@ -0,0 +1,523 @@
+---
+category: tool
+tool: git
+contributors:
+ - ["Jake Prather", "http://github.com/JakeHP"]
+ - ["Leo Rudberg" , "http://github.com/LOZORD"]
+ - ["Betsy Lorton" , "http://github.com/schbetsy"]
+ - ["Bruno Volcov", "http://github.com/volcov"]
+ - ["Andrew Taylor", "http://github.com/andrewjt71"]
+translators:
+ - ["Terka Slanináková", "http://github.com/TerkaSlan"]
+lang: sk-sk
+filename: LearnGit-sk.txt
+---
+
+Git je distribuovaný systém riadenia revízií a správy zdrojového kódu.
+
+Funguje robením "snímkov" tvojho projektu, s ktorými ďalej pracuje na revíziach a správe zdrojových kódov.
+
+## Koncept Revízií
+
+### Čo je riadenie revízií?
+
+Riadenie revízií je systém, ktorý postupom času zaznamenáva zmeny súboru (súborov).
+
+### Centralizované Revízie VS Distribuované revízie
+
+* Centralizované riadenie revízií sa zameriava na synchronizáciu, sledovanie a zálohovanie súborov.
+* Distribuované riadenie revízií sa zameriava na zdieľanie zmien. Kaťdá zmena má jedinečný identifikátor (id).
+* Distribuované systémy nemajú definovanú štruktúru. S gitom môžeš mať centralizovaný systém v subversion (SVN) štýle.
+
+[Ďalšie informácie](http://git-scm.com/book/en/Getting-Started-About-Version-Control)
+
+### Prečo Používať Git?
+
+* Môžeš pracovať offline.
+* Spolupráca s ostatnými je jednoduchá!
+* Vetvenie je jednoduché!
+* Zlučovanie je jednoduché!
+* Git je rýchly.
+* Git je flexibilný.
+
+## Architektúra Gitu
+
+
+### Repozitár
+
+Skupina súborov, adresárov, minulých záznamov, commitov (konkrétnych revízií) a odkazy na aktuálu vetvu (HEADs). Predstav si ho ako údajovú štruktúru, kde ti každý "prvok" zdrojového kódu poskytne (okrem iného) prístup k minulým revíziam.
+
+Git repozitár sa skladá z .git adresára a pracovného stromu
+
+### .git Adresár (časť repozitára)
+
+.git adresár obsahuje všetky konfigurácie, logy, vetvy, odkaz na aktuálnu vetvu (HEAD) a ostatné.
+[Detailný zoznam.](http://gitready.com/advanced/2009/03/23/whats-inside-your-git-directory.html)
+
+### Pracovný Strom (Working Tree - časť repozitára)
+
+Toto sú adresáre a súbory v tvojom repozitári. Tiež sa tomu hovorí pracovný adresár.
+
+### Index (časť .git adresára)
+
+Index je také odpočívadlo Gitu. Je to v podstate vrstva, ktorá oddeľuje pracovný strom od Git repozitára. Toto dáva vývojárom viac možností nad tým, čo do repozitára naozaj pošlú.
+
+### Commit
+
+Commit je "snímka" zmien, či manipulácií s tvojím Pracovným Stromom. Ak si napríklad pridal 5 súborov a odstránil 2 ďalšie, tieto zmeny budú zachytené v commite. Ten môže (ale nemusí) byť zverejnený (pushed) do iných repozitárov.
+
+### Vetva (Branch)
+
+Vetva je ukazateľ na posledný vykonaný commit. Po ďalších commitnutiach sa ukazateľ bude automaticky posúvať na ten najnovší.
+
+### Tag
+
+Tag je označenie špecifického bodu v minulosti. Typicky sa používa na značenie vydaných verzií (v1.0, atď).
+
+### HEAD a head (časť .git adresára)
+
+HEAD je ukazateľ na aktuálnu vetvu. Repozitár má len 1 *aktívny* HEAD.
+head je ukazateľ, ktorý môže ukazovať na akýkoľvek commit. Repozitár môže mať niekoľko headov.
+
+### Štádia Gitu
+* Modified - Súbor bol zmenený, no nebol ešte commitnutý do Git Databázy.
+* Staged - Zmenený súbor, ktorý pôjde do najbližšieho commit snímku.
+* Committed - Súbory boli commitnuté do Git Databázy.
+
+### Koncepčné zdroje
+
+* [Git Pre Informatikov](http://eagain.net/articles/git-for-computer-scientists/)
+* [Git Pre Designerov](http://hoth.entp.com/output/git_for_designers.html)
+
+
+## Príkazy
+
+
+### init
+
+Vytvorí prázdny Git repozitár. Jeho nastavenia, uložené informácie a mnoho iného sú uložené v adresári (zložke) s názvom ".git".
+
+```bash
+$ git init
+```
+
+### config
+
+Konfiguruj nastavenia. Či už pre repozitár, samotný systém, alebo globálne konfigurácie (súbor pre globálny config je `~/.gitconfig`).
+
+
+```bash
+# Zobraz a Nastav Základné Konfiguračné Premenné (Globálne)
+$ git config --global user.email "MôjEmail@Zoho.com"
+$ git config --global user.name "Moje Meno "
+```
+
+[Prečítaj si viac o git configu.](http://git-scm.com/docs/git-config)
+
+### pomoc
+
+Máš tiež prístup k extrémne detailnej dokumentácií pre každý príkaz (po anglicky). Hodí sa, ak potrebuješ pripomenúť semantiku.
+
+```bash
+# Rýchlo zobraz všetky dostupné príkazy
+$ git help
+
+# Zobraz všetky dostupné príkazy
+$ git help -a
+
+# Zobraz konkrétnu pomoc - použivateľský manuál
+# git help <príkaz_tu>
+$ git help add
+$ git help commit
+$ git help init
+# alebo git <príkaz_tu> --help
+$ git add --help
+$ git commit --help
+$ git init --help
+```
+
+### ignoruj súbory
+
+Zámerne prestaneš sledovať súbor(y) a zložky. Typicky sa používa pre súkromné a dočasné súbory, ktoré by boli inak zdieľané v repozitári.
+```bash
+$ echo "temp/" >> .gitignore
+$ echo "private_key" >> .gitignore
+```
+
+
+### status
+
+Na zobrazenie rozdielov medzi indexovými súbormi (tvoj pracovný repozitár) a aktuálnym HEAD commitom.
+
+
+```bash
+# Zobrazí vetvu, nesledované súbory, zmeny a ostatné rozdiely
+$ git status
+
+# Zistí iné vychytávky o git statuse
+$ git help status
+```
+
+### add
+
+Pripraví súbory na commit pridaním do tzv. staging indexu. Ak ich nepridáš pomocou `git add` do staging indexu, nebudú zahrnuté v commitoch!
+
+```bash
+# pridá súbor z tvojho pracovného adresára
+$ git add HelloWorld.java
+
+# pridá súbor z iného adresára
+$ git add /cesta/k/súboru/HelloWorld.c
+
+# Môžeš použiť regulárne výrazy!
+$ git add ./*.java
+```
+Tento príkaz len pridáva súbory do staging indexu, necommituje ich do repozitára.
+
+### branch
+
+Spravuj svoje vetvy. Môžeš ich pomocou tohto príkazu zobraziť, meniť, vytvoriť, či zmazať.
+
+```bash
+# zobraz existujúce vetvy a vzdialené repozitáre
+$ git branch -a
+
+# vytvor novú vetvu
+$ git branch myNewBranch
+
+# vymaž vetvu
+$ git branch -d myBranch
+
+# premenuj vetvu
+# git branch -m <starémeno> <novémeno>
+$ git branch -m mojaStaraVetva mojaNovaVetva
+
+# zmeň opis vetvy
+$ git branch myBranchName --edit-description
+```
+
+### tag
+
+Spravuj svoje tagy
+
+```bash
+# Zobraz tagy
+$ git tag
+# Vytvor tag so správou
+# -m špecifikuje správu, ktorá bude s tagom uložená.
+# Ak nešpeficikuješ správu pri tagu so správou,
+# Git spustí tvoj editor, aby si ju napísal.
+$ git tag -a v2.0 -m 'moja verzia 2.0'
+# Ukáž informácie o tagu
+# Zobrazí zadané informácie, dátum tagnutia commitu
+# a správu pred zobrazením informácií o commite.
+$ git show v2.0
+# Zverejní (pushne) jediný tag do vzdialeného repozitára
+$ git push origin v2.0
+# Zverejní viacero tagov do vzdialeného repozitára
+$ git push origin --tags
+```
+
+### checkout
+
+Aktualizuje všetky súbory v pracovnom strome, aby odpovedali verzií v indexe, alebo v inom strome.
+
+```bash
+# Aktualizuj strom, aby odpovedal (predvolene)
+# hlavnej vetve repozitáru (master branch)
+$ git checkout
+# Aktualizuj strom, aby odpovedal konrkétnej vetve
+$ git checkout menoVetvy
+# Vytvor novú vetvu & prepni sa na ňu
+# ekvivalentný príkaz: "git branch <meno>; git checkout <meno>"
+$ git checkout -b nováVetva
+```
+
+### clone
+
+"Naklonuje", alebo vytvorí kópiu existujúceho repozitára do nového adresára. Tiež pridá špeciálne ďiaľkovo-monitorujúce vetvy (remote-tracking branches), ktoré ti umožnia zverejňovať do vzdialených vetiev.
+
+```bash
+# Naklonuj learnxinyminutes-docs
+$ git clone https://github.com/adambard/learnxinyminutes-docs.git
+# povrchné klonovanie - rýchlejšie, uloží iba najnovšiu snímku
+$ git clone --depth 1 https://github.com/adambard/learnxinyminutes-docs.git
+# naklonuj iba konkrétnu vetvu
+$ git clone -b master-cn https://github.com/adambard/learnxinyminutes-docs.git --single-branch
+```
+
+### commit
+
+Uloží aktuálny obsah indexu v novom "commite". Ten obsahuje vytvorené zmeny a s nimi súvisiace správy vytvorené použivateľom.
+
+```bash
+# commitni so správou
+$ git commit -m "Pridal som multiplyNumbers() funkciu do HelloWorld.c"
+
+# automaticky pridaj zmenené a vymazané súbory do staging indexu, potom ich commitni.
+$ git commit -a -m "Zmenil som foo.php a vymazal bar.php"
+
+# zmeň posledný commit (toto nahradí predchádzajúci commit novým)
+$ git commit --amend -m "Správna správa"
+```
+
+### diff
+
+Ukáže rozdiel medzi súborom v pracovnom repozitári, indexe a commitoch.
+
+```bash
+# Ukáž rozdiel medzi pracovným repozitárom a indexom.
+$ git diff
+
+# Ukáž rozdiely medzi indexom a najnovším commitom.
+$ git diff --cached
+
+# Ukáž rozdiely medzi pracovným adresárom a najnovším commitom.
+$ git diff HEAD
+```
+
+### grep
+
+Umožní ti rýchlo prehľadávať repozitár.
+
+Možná konfigurácia:
+
+```bash
+# Nastav, aby sa vo výsledkoch vyhľadávania zobrazovalo číslo riadku
+$ git config --global grep.lineNumber true
+
+# Urob výsledky vyhľadávania čitateľnejšie, vrátane zoskupovania
+$ git config --global alias.g "grep --break --heading --line-number"
+```
+
+```bash
+# Vďaka Travisovi Jefferymu za túto sekciu
+# Hľadaj "názovPremennej" vo všetkých java súboroch
+$ git grep 'názovPremennej' -- '*.java'
+
+# Hľadaj riadok, ktorý obsahuje "názovPoľa" a "add" alebo "remove"
+$ git grep -e 'arrayListName' --and \( -e add -e remove \)
+```
+
+Google je tvoj kamarát; pre viac príkladov skoč na
+[Git Grep Ninja](http://travisjeffery.com/b/2012/02/search-a-git-repo-like-a-ninja)
+
+### log
+
+Zobral commity do repozitára.
+
+```bash
+# Zobraz všetky commity
+$ git log
+
+# Zobraz iba správy a referencie commitov
+$ git log --oneline
+
+# Zobraz zlúčené (merged) commity
+$ git log --merges
+
+# Zobraz všetky commity vo forme ASCII grafu
+$ git log --graph
+```
+
+### merge
+
+"Zlúč" zmeny externých commitov do aktuálnej vetvy.
+
+```bash
+# Zlúč vybranú vetvu do aktuálnej.
+$ git merge názovVetvy
+
+# Vždy vytvor zlučovací commit
+$ git merge --no-ff názovVetvy
+```
+
+### mv
+
+Premenuj, alebo presuň súbor
+
+```bash
+# Premenuj súbor
+$ git mv HelloWorld.c HelloNewWorld.c
+
+# Presuň súbor
+$ git mv HelloWorld.c ./nová/cesta/HelloWorld.c
+
+# "Nasilu" premenuj, alebo presuň
+# "existujúciSúbor" už v adresári existuje, bude prepísaný
+$ git mv -f môjSúbor existujúciSúbor
+```
+
+### pull
+
+Uloží obsah repozitára a zlúči ho s inou vetvou.
+
+```bash
+# Aktualizuje tvoj lokálny repozitár zlúčením nových zmien
+# zo vzdialených "origin" a "master" vetiev.
+# git pull <alias-vzdialeného-repo> <vetva>
+$ git pull origin master
+
+# Predvolene, git pull aktualizuje tvoju aktuálnu vetvu
+# zlúčením nových zmien zo vzdialenej vetvy
+$ git pull
+
+# Zlúč zmeny zo vzdialenej vetvy a presuň vetvu do nového základného commitu (rebase)
+# vetva commitne na tvoj lokálny repozitár, ekvivalentný príkaz: "git pull <alias-vzdialeného-repo> <vrstva>, git rebase <branch>"
+$ git pull origin master --rebase
+```
+
+### push
+
+Zverejní a zlúči zmeny z lokálnej do vzdialenej vetvy.
+
+```bash
+# Zverejni a zlúč zmeny z lokálneho repozitára do
+# vzdialených vetiev s názvom "origin" a "master".
+# git push <vzdialené> <vetvy>
+$ git push origin master
+
+# Predvolene git zverejní a zlúči zmeny z
+# aktuálnej vetvy do vzdialenej vetvy s ňou spojenej
+$ git push
+
+# Na spojenie lokálnej vetvy so vzdialenou pridaj -u:
+$ git push -u origin master
+# Kedykoľvek budeš chcieť zverejniť z rovnakej lokálnej vetvy, použi príkaz:
+$ git push
+```
+
+### stash
+
+Umožní ti opustiť chaotický stav pracovného adresára a uloží ho na zásobník nedokončených zmien, ku ktorým sa môžeš kedykoľvek vrátiť.
+
+Povedzme, že si urobil nejaké zmeny vo svojom git repozitári, ale teraz potrebuješ pullnúť zo vzdialenej repo. Keďže máš necommitnuté zmeny, príkaz `git pull` nebude fungovať. Namiesto toho môžeš použiť `git stash` a uložiť svoje nedokončené zmeny na zásobník!
+
+```bash
+$ git stash
+Saved working directory and index state \
+ "WIP on master: 049d078 added the index file"
+ HEAD is now at 049d078 added the index file
+ (To restore them type "git stash apply")
+```
+
+Teraz môžeš uložiť vzdialenú vetvu!
+
+```bash
+$ git pull
+```
+
+Over, či je všetko v poriadku
+
+```bash
+$ git status
+# On branch master
+nothing to commit, working directory clean
+```
+
+Môžeš si pozrieť, čo za chaos je na zásobníku cez `git stash list`.
+Nedokončené zmeny sú uložené ako Last-In-First-Out (Prvý dnu, posledný von) štruktúra, navrchu sa objavia najnovšie zmeny.
+
+```bash
+$ git stash list
+stash@{0}: WIP on master: 049d078 added the index file
+stash@{1}: WIP on master: c264051 Revert "added file_size"
+stash@{2}: WIP on master: 21d80a5 added number to log
+```
+
+Keď so zmenami budeš chcieť pracovať, odstráň ich zo stacku.
+
+```bash
+$ git stash pop
+# On branch master
+# Changes not staged for commit:
+# (use "git add <file>..." to update what will be committed)
+#
+# modified: index.html
+# modified: lib/simplegit.rb
+#
+```
+
+`git stash apply` urobí presne to isté
+
+Hotovo, môžeš pokračovať v práci!
+
+[Čítaj viac.](http://git-scm.com/book/en/v1/Git-Tools-Stashing)
+
+### rebase (pozor)
+
+Zober všetky zmeny commitnuté do vetvy a aplikuj ich na inú vetvu.
+*Tento príkaz nerob na verejných repozitároch*.
+
+```bash
+# Aplikuj commity z experimentálnej vetvy na master
+# git rebase <základnáVetva> <ináVetva>
+$ git rebase master experimentBranch
+```
+
+[Čítaj viac.](http://git-scm.com/book/en/Git-Branching-Rebasing)
+
+### reset (pozor)
+
+Resetni HEAD (ukazateľ na aktuálnu vetvu) do konrkétneho stavu. To ti umožní vziať späť zlúčenia, zverejnenia, commity, pridania atď. Je to užitočný, no nebezpečný príkaz, pokiaľ nevieš, čo robíš.
+
+```bash
+# Resetni index (vrstvu medzi pracovným stromom a Git repozitárom), aby odpovedal najnovšiemu commitu (adresár ostane nezmenený)
+$ git reset
+
+# Resetni index, aby odpovedal najnovšiemu commitu (adresár sa prepíše)
+$ git reset --hard
+
+# Presunie vrchol aktuálnuej vetvy do konkrétneho commitu (adresár ostane nezmenený)
+# všetky zmeny sú zachované v adresári.
+$ git reset 31f2bb1
+
+# Presunie vrchol aktuálnuej vetvy naopak do konkrétneho commitu
+# a zosúladí ju s pracovným adresárom (vymaže nekomitnuté zmeny).
+$ git reset --hard 31f2bb1
+```
+### revert
+
+Vezme naspäť ("od-urobí") commit. Nezamieňaj s resetom, ktorý obnoví stav
+projektu do predchádzajúceho bodu v čase. Revert pridá nový commit, inverzný tomu, ktorý chceš vymazať, tým ho od-urobí.
+
+```bash
+# Vezmi späť konkrétny commit
+$ git revert <commit>
+```
+
+### rm
+
+Opak od git add, rm odstráni súbory z aktuálneho pracovného stromu.
+
+```bash
+# odstráň HelloWorld.c
+$ git rm HelloWorld.c
+
+# Odstráň súbor z vnoreného adresára
+$ git rm /pather/to/the/file/HelloWorld.c
+```
+
+## Ďalšie informácie
+
+* [tryGit - Zábavný interaktívny spôsob, ako sa naučiť Git.](http://try.github.io/levels/1/challenges/1)
+
+* [Udemy Git Tutoriál: Kompletný návod](https://blog.udemy.com/git-tutorial-a-comprehensive-guide/)
+
+* [Git Immersion - Návod, ktorý Ťa prevedie základmi Gitu](http://gitimmersion.com/)
+
+* [git-scm - Video Tutoriály](http://git-scm.com/videos)
+
+* [git-scm - Dokumentácia](http://git-scm.com/docs)
+
+* [Atlassian Git - Tutoriály & Postupy](https://www.atlassian.com/git/)
+
+* [SalesForce Cheat Sheet](https://na1.salesforce.com/help/doc/en/salesforce_git_developer_cheatsheet.pdf)
+
+* [GitGuys](http://www.gitguys.com/)
+
+* [Git - jednoducho](http://rogerdudler.github.io/git-guide/index.html)
+
+* [Pro Git](http://www.git-scm.com/book/en/v2)
+
+* [Úvod do Gitu a GitHubu pre začiatočníkov (Tutoriál)](http://product.hubspot.com/blog/git-and-github-tutorial-for-beginners)
diff --git a/sk-sk/latex.html.markdown.tex b/sk-sk/latex.html.markdown.tex
new file mode 100644
index 00000000..5e2f9c7f
--- /dev/null
+++ b/sk-sk/latex.html.markdown.tex
@@ -0,0 +1,227 @@
+---
+language: latex
+contributors:
+ - ["Chaitanya Krishna Ande", "http://icymist.github.io"]
+ - ["Colton Kohnke", "http://github.com/voltnor"]
+ - ["Sricharan Chiruvolu", "http://sricharan.xyz"]
+translators:
+ - ["Terka Slanináková", "http://github.com/TerkaSlan"]
+filename: learn-latex-sk.tex
+---
+
+```tex
+% Všetky komentáre začínajú s %
+% Viac-riadkové komentáre sa nedajú urobiť
+
+% LaTeX NIE JE WYSIWY ("What You See Is What You Get") software ako MS Word, alebo OpenOffice Writer
+
+% Každý LaTeX príkaz začína s opačným lomítkom (\)
+
+% LaTeX dokumenty začínajú s definíciou typu kompilovaného dokumentu
+% Ostatné typy sú napríklad kniha (book), správa (report), prezentácia (presentation), atď.
+% Možnosti dokumentu sa píšu do [] zátvoriek. V tomto prípade tam upresňujeme veľkosť (12pt) fontu.
+\documentclass[12pt]{article}
+
+% Ďalej definujeme balíčky, ktoré dokuemnt používa.
+% Ak chceš zahrnúť grafiku, farebný text, či zdrojový kód iného jazyka, musíš rozšíriť možnosti LaTeXu dodatočnými balíčkami.
+% Zahŕňam float a caption. Na podporu slovenčiny treba zahrnúť aj utf8 balíček.
+\usepackage{caption}
+\usepackage{float}
+\usepackage[utf8]{inputenc}
+% Tu môžme definovať ostatné vlastnosti dokumentu!
+% Autori tohto dokumentu, "\\*" znamená "choď na nový riadok"
+\author{Chaitanya Krishna Ande, Colton Kohnke \& Sricharan Chiruvolu, \\*Preklad: Terka Slanináková}
+% Vygeneruje dnešný dátum
+\date{\today}
+\title{Nauč sa LaTeX za Y Minút!}
+% Teraz môžme začať pracovať na samotnom dokumente.
+% Všetko do tohto riadku sa nazýva "Preambula" ("The Preamble")
+\begin{document}
+% ak zadáme položky author, date a title, LaTeX vytvorí titulnú stranu.
+\maketitle
+
+% Väčšina odborných článkov má abstrakt, na jeho vytvorenie môžeš použiť preddefinované príkazy.
+% Ten by sa mal zobraziť v logickom poradí, teda po hlavičke,
+% no pred hlavnými sekciami tela..
+% Tento príkaz je tiež dostupný v triedach article a report.
+% Tzv. makro "abstract" je fixnou súčasťou LaTeXu, ak chceme použiť abstract
+% a napísať ho po slovensky, musíme ho redefinovať nasledujúcim príkazom
+\renewcommand\abstractname{Abstrakt}
+
+\begin{abstract}
+LaTeX dokumentácia v LaTeXe! Aké netradičné riešenie cudzieho nápadu!
+\end{abstract}
+
+% Príkazy pre sekciu sú intuitívne
+% Všetky nadpisy sekcií sú pridané automaticky do obsahu.
+\section{Úvod}
+Čaute, volám sa Colton a spoločne sa pustíme do skúmania LaTeXu (toho druhého)!
+
+\section{Ďalšia sekcia}
+Toto je text ďalšej sekcie. Myslím, že potrebuje podsekciu.
+
+\subsection{Toto je podsekcia} % Podsekcie sú tiež intuitívne.
+Zdá sa mi, že treba ďalšiu.
+
+\subsubsection{Pytagoras}
+To je ono!
+\label{subsec:pytagoras}
+
+% Použitím '*' môžeme potlačiť zabudované číslovanie LaTeXu.
+% Toto funguje aj na iné príkazy.
+\section*{Toto je nečíslovaná sekcia}
+Všetky číslované byť nemusia!
+
+\section{Nejaké poznámočky}
+Zarovnávať veci tam, kde ich chceš mať, je všeobecne ľahké. Ak
+potrebuješ \\ nový \\ riadok \\ pridaj \textbackslash\textbackslash do
+zdrojového kódu. \\
+
+\section{Zoznamy}
+Zoznamy sú jednou z najjednoduchších vecí vôbec! Treba mi zajtra nakúpiť, urobím si zoznam.
+\begin{enumerate} % "enumerate" spustí číslovanie prvkov.
+ % \item povie LaTeXu, ako že treba pripočítať 1
+ \item Vlašský šalát.
+ \item 5 rožkov.
+ \item 3 Horalky.
+ % číslovanie môžeme pozmeniť použitím []
+ \item[koľko?] Stredne veľkých guličkoviek.
+
+ Ja už nie som položka zoznamu, no stále som časť "enumerate".
+
+\end{enumerate} % Všetky prostredia končia s "end".
+
+\section{Matika}
+
+Jedným z primárnych použití LaTeXu je písanie akademických, či technických prác. Zvyčajne za použitia matematiky a vedy. Podpora špeciálnych symbolov preto nemôže chýbať!\\
+
+Matematika má veľa symbolov, omnoho viac, než by klávesnica mohla reprezentovať;
+Množinové a relačné symboly, šípky, operátory a Grécke písmená sú len malou ukážkou.\\
+
+Množiny a relácie hrajú hlavnú rolu v mnohých matematických článkoch.
+Takto napíšeš, že niečo platí pre všetky x patriace do X, $\forall$ x $\in$ X. \\
+% Všimni si, že som pridal $ pred a po symboloch. Je to
+% preto, lebo pri písaní sme v textovom móde,
+% no matematické symboly existujú len v matematickom.
+% Vstúpime doňho z textového práve '$' znamienkami.
+% Platí to aj opačne. Premenná môže byť zobrazená v matematickom móde takisto.
+% Do matematického módu sa dá dostať aj s \[\]
+
+\[a^2 + b^2 = c^2 \]
+
+Moje obľúbené Grécke písmeno je $\xi$. Tiež sa mi pozdávajú $\beta$, $\gamma$ a $\sigma$.
+Ešte som neprišiel na Grécke písmeno, ktoré by LaTeX nepoznal!
+
+Operátory sú dôležitou súčasťou matematických dokumentov:
+goniometrické funkcie ($\sin$, $\cos$, $\tan$),
+logaritmy and exponenciálne výrazy ($\log$, $\exp$),
+limity ($\lim$), atď.
+majú pred-definované LaTeXové príkazy.
+Napíšme si rovnicu, nech vidíme, ako to funguje: \\
+
+$\cos(2\theta) = \cos^{2}(\theta) - \sin^{2}(\theta)$
+
+Zlomky(Čitateľ-menovateľ) sa píšu v týchto formách:
+
+% 10 / 7
+$^{10}/_{7}$
+
+% Relatívne komplexné zlomky sa píšu ako
+% \frac{čitateľ}{menovateľ}
+$\frac{n!}{k!(n - k)!}$ \\
+
+Rovnice tiež môžeme zadať v "rovnicovom prostredí".
+
+% Takto funguje rovnicové prostredie
+\begin{equation} % vstúpi do matematického módu
+ c^2 = a^2 + b^2.
+ \label{eq:pythagoras} % na odkazovanie
+\end{equation} % všetky \begin príkazy musia mať konečný príkaz.
+
+Teraz môžeme odkázať na novovytvorenú rovnicu!
+Rovn.~\ref{eq:pythagoras} je tiež známa ako Pytagorova Veta, ktorá je tiež predmetom Sekc.~\ref{subsec:pytagoras}. Odkazovať môžme na veľa vecí, napr na: čísla, rovnice, či sekcie.
+
+Sumácie a Integrály sa píšu príkazmi sum a int:
+
+% Niektoré prekladače LaTeXu sa môžu sťažovať na prázdne riadky (ak tam sú)
+% v rovnicovom prostredí.
+\begin{equation}
+ \sum_{i=0}^{5} f_{i}
+\end{equation}
+\begin{equation}
+ \int_{0}^{\infty} \mathrm{e}^{-x} \mathrm{d}x
+\end{equation}
+
+\section{Obrázky}
+
+Vloženie obrázku môže byť zložitejšie. Ja si vždy možnosti vloženia pozerám pre každý obrázok.
+\renewcommand\figurename{Obrázok}
+\begin{figure}[H] % H značí možnosť zarovnania.
+ \centering % nacentruje obrázok na stránku
+ % Vloží obrázok na 80% šírky stránky.
+ %\includegraphics[width=0.8\linewidth]{right-triangle.png}
+ % Zakomentované kvôli kompilácií, použi svoju predstavivosť :).
+ \caption{Pravouhlý trojuholník so stranami $a$, $b$, $c$}
+ \label{fig:right-triangle}
+\end{figure}
+% Opäť, fixné makro "table" nahradíme slovenskou tabuľkou. Pokiaľ preferuješ table, nasledujúci riadok nepridávaj
+\renewcommand\tablename{Tabuľka}
+
+\subsection{Tabuľky}
+Tabuľky sa vkládajú podobne ako obrázky.
+
+\begin{table}[H]
+ \caption{Nadpis tabuľky.}
+ % zátvorky: {} hovoria ako sa vykreslí každý riadok.
+ % Toto si nikdy nepamätám a vždy to musím hľadať. Všetko. Každý. Jeden. Raz!
+ \begin{tabular}{c|cc}
+ Číslo & Priezvisko & Krstné meno \\ % Stĺpce sú rozdelené $
+ \hline % horizontálna čiara
+ 1 & Ladislav & Meliško \\
+ 2 & Eva & Máziková
+ \end{tabular}
+\end{table}
+
+% \section{Hyperlinks} % Už čoskoro :)
+
+\section{Prikáž LaTeXu nekompilovať (napr. Zdrojový Kód)}
+Povedzme, že chceme do dokumentu vložiť zdrojový kód, budeme musieť LaTeXu povedať, nech sa ho nesnaží skompilovať, ale nech s ním pracuje ako s textom.
+Toto sa robí vo verbatim prostredí.
+
+% Tiež sú na to špeciálne balíčky, (napr. minty, lstlisting, atď.)
+% ale verbatim je to najzákladnejšie, čo môžeš použiť.
+\begin{verbatim}
+ print("Hello World!")
+ a%b; pozri! Vo verbatime môžme použiť % znamienka.
+ random = 4; #priradené randomným hodom kockou
+\end{verbatim}
+
+\section{Kompilácia}
+
+Už by bolo načase túto nádheru skompilovať a zhliadnuť jej úžasnú úžasnosť v podobe LaTeX pdfka, čo povieš?
+(áno, tento dokument sa musí kompilovať). \\
+Cesta k finálnemu dokumentu pomocou LaTeXu pozostáva z nasledujúcich krokov:
+ \begin{enumerate}
+ \item Napíš dokument v čistom texte (v "zdrojáku").
+ \item Skompiluj zdroják na získanie pdfka.
+ Kompilácia by mala vyzerať nasledovne (v Linuxe): \\
+ \begin{verbatim}
+ $pdflatex learn-latex.tex learn-latex.pdf
+ \end{verbatim}
+ \end{enumerate}
+
+Mnoho LaTeX editorov kombinuje Krok 1 a Krok 2 v jednom prostredí. Krok 1 teda uvidíš, krok 2 už nie.
+Ten sa deje za oponou. Kompilácia v 2. kroku sa postará o produkciu dokumentu v tebou zadanom formáte.
+
+\section{Koniec}
+
+To je zatiaľ všetko!
+
+% koniec dokumentu
+\end{document}
+```
+
+## Viac o LaTeXe (anglicky)
+
+* Úžasná LaTeX wikikniha: [https://en.wikibooks.org/wiki/LaTeX](https://en.wikibooks.org/wiki/LaTeX)
+* Naozajstný tutoriál: [http://www.latex-tutorial.com/](http://www.latex-tutorial.com/)
diff --git a/sk-sk/learn-latex-sk.tex b/sk-sk/learn-latex-sk.tex
new file mode 100644
index 00000000..5cc7b11f
--- /dev/null
+++ b/sk-sk/learn-latex-sk.tex
@@ -0,0 +1,209 @@
+% Všetky komentáre začínajú s %
+% Viac-riadkové komentáre sa nedajú urobiť
+
+% LaTeX NIE JE WYSIWY ("What You See Is What You Get") software ako MS Word, alebo OpenOffice Writer
+
+% Každý LaTeX príkaz začína s opačným lomítkom (\)
+
+% LaTeX dokumenty začínajú s definíciou typu kompilovaného dokumentu
+% Ostatné typy sú napríklad kniha (book), správa (report), prezentácia (presentation), atď.
+% Možnosti dokumentu sa píšu do [] zátvoriek. V tomto prípade tam upresňujeme veľkosť (12pt) fontu.
+\documentclass[12pt]{article}
+
+% Ďalej definujeme balíčky, ktoré dokuemnt používa.
+% Ak chceš zahrnúť grafiku, farebný text, či zdrojový kód iného jazyka, musíš rozšíriť možnosti LaTeXu dodatočnými balíčkami.
+% Zahŕňam float a caption. Na podporu slovenčiny treba zahrnúť aj utf8 balíček.
+\usepackage{caption}
+\usepackage{float}
+\usepackage[utf8]{inputenc}
+% Tu môžme definovať ostatné vlastnosti dokumentu!
+% Autori tohto dokumentu, "\\*" znamená "choď na nový riadok"
+\author{Chaitanya Krishna Ande, Colton Kohnke \& Sricharan Chiruvolu, \\*Preklad: Terka Slanináková}
+% Vygeneruje dnešný dátum
+\date{\today}
+\title{Nauč sa LaTeX za Y Minút!}
+% Teraz môžme začať pracovať na samotnom dokumente.
+% Všetko do tohto riadku sa nazýva "Preambula" ("The Preamble")
+\begin{document}
+% ak zadáme položky author, date a title, LaTeX vytvorí titulnú stranu.
+\maketitle
+
+% Väčšina odborných článkov má abstrakt, na jeho vytvorenie môžeš použiť preddefinované príkazy.
+% Ten by sa mal zobraziť v logickom poradí, teda po hlavičke,
+% no pred hlavnými sekciami tela..
+% Tento príkaz je tiež dostupný v triedach article a report.
+% Tzv. makro "abstract" je fixnou súčasťou LaTeXu, ak chceme použiť abstract
+% a napísať ho po slovensky, musíme ho redefinovať nasledujúcim príkazom
+\renewcommand\abstractname{Abstrakt}
+
+\begin{abstract}
+LaTeX dokumentácia v LaTeXe! Aké netradičné riešenie cudzieho nápadu!
+\end{abstract}
+
+% Príkazy pre sekciu sú intuitívne
+% Všetky nadpisy sekcií sú pridané automaticky do obsahu.
+\section{Úvod}
+Čaute, volám sa Colton a spoločne sa pustíme do skúmania LaTeXu (toho druhého)!
+
+\section{Ďalšia sekcia}
+Toto je text ďalšej sekcie. Myslím, že potrebuje podsekciu.
+
+\subsection{Toto je podsekcia} % Podsekcie sú tiež intuitívne.
+Zdá sa mi, že treba ďalšiu.
+
+\subsubsection{Pytagoras}
+To je ono!
+\label{subsec:pytagoras}
+
+% Použitím '*' môžeme potlačiť zabudované číslovanie LaTeXu.
+% Toto funguje aj na iné príkazy.
+\section*{Toto je nečíslovaná sekcia}
+Všetky číslované byť nemusia!
+
+\section{Nejaké poznámočky}
+Zarovnávať veci tam, kde ich chceš mať, je všeobecne ľahké. Ak
+potrebuješ \\ nový \\ riadok \\ pridaj \textbackslash\textbackslash do
+zdrojového kódu. \\
+
+\section{Zoznamy}
+Zoznamy sú jednou z najjednoduchších vecí vôbec! Treba mi zajtra nakúpiť, urobím si zoznam.
+\begin{enumerate} % "enumerate" spustí číslovanie prvkov.
+ % \item povie LaTeXu, ako že treba pripočítať 1
+ \item Vlašský šalát.
+ \item 5 rožkov.
+ \item 3 Horalky.
+ % číslovanie môžeme pozmeniť použitím []
+ \item[koľko?] Stredne veľkých guličkoviek.
+
+ Ja už nie som položka zoznamu, no stále som časť "enumerate".
+
+\end{enumerate} % Všetky prostredia končia s "end".
+
+\section{Matika}
+
+Jedným z primárnych použití LaTeXu je písanie akademických, či technických prác. Zvyčajne za použitia matematiky a vedy. Podpora špeciálnych symbolov preto nemôže chýbať!\\
+
+Matematika má veľa symbolov, omnoho viac, než by klávesnica mohla reprezentovať;
+Množinové a relačné symboly, šípky, operátory a Grécke písmená sú len malou ukážkou.\\
+
+Množiny a relácie hrajú hlavnú rolu v mnohých matematických článkoch.
+Takto napíšeš, že niečo platí pre všetky x patriace do X, $\forall$ x $\in$ X. \\
+% Všimni si, že som pridal $ pred a po symboloch. Je to
+% preto, lebo pri písaní sme v textovom móde,
+% no matematické symboly existujú len v matematickom.
+% Vstúpime doňho z textového práve '$' znamienkami.
+% Platí to aj opačne. Premenná môže byť zobrazená v matematickom móde takisto.
+% Do matematického módu sa dá dostať aj s \[\]
+
+\[a^2 + b^2 = c^2 \]
+
+Moje obľúbené Grécke písmeno je $\xi$. Tiež sa mi pozdávajú $\beta$, $\gamma$ a $\sigma$.
+Ešte som neprišiel na Grécke písmeno, ktoré by LaTeX nepoznal!
+
+Operátory sú dôležitou súčasťou matematických dokumentov:
+goniometrické funkcie ($\sin$, $\cos$, $\tan$),
+logaritmy and exponenciálne výrazy ($\log$, $\exp$),
+limity ($\lim$), atď.
+majú pred-definované LaTeXové príkazy.
+Napíšme si rovnicu, nech vidíme, ako to funguje: \\
+
+$\cos(2\theta) = \cos^{2}(\theta) - \sin^{2}(\theta)$
+
+Zlomky(Čitateľ-menovateľ) sa píšu v týchto formách:
+
+% 10 / 7
+$^{10}/_{7}$
+
+% Relatívne komplexné zlomky sa píšu ako
+% \frac{čitateľ}{menovateľ}
+$\frac{n!}{k!(n - k)!}$ \\
+
+Rovnice tiež môžeme zadať v "rovnicovom prostredí".
+
+% Takto funguje rovnicové prostredie
+\begin{equation} % vstúpi do matematického módu
+ c^2 = a^2 + b^2.
+ \label{eq:pythagoras} % na odkazovanie
+\end{equation} % všetky \begin príkazy musia mať konečný príkaz.
+
+Teraz môžeme odkázať na novovytvorenú rovnicu!
+Rovn.~\ref{eq:pythagoras} je tiež známa ako Pytagorova Veta, ktorá je tiež predmetom Sekc.~\ref{subsec:pytagoras}. Odkazovať môžme na veľa vecí, napr na: čísla, rovnice, či sekcie.
+
+Sumácie a Integrály sa píšu príkazmi sum a int:
+
+% Niektoré prekladače LaTeXu sa môžu sťažovať na prázdne riadky (ak tam sú)
+% v rovnicovom prostredí.
+\begin{equation}
+ \sum_{i=0}^{5} f_{i}
+\end{equation}
+\begin{equation}
+ \int_{0}^{\infty} \mathrm{e}^{-x} \mathrm{d}x
+\end{equation}
+
+\section{Obrázky}
+
+Vloženie obrázku môže byť zložitejšie. Ja si vždy možnosti vloženia pozerám pre každý obrázok.
+\renewcommand\figurename{Obrázok}
+\begin{figure}[H] % H značí možnosť zarovnania.
+ \centering % nacentruje obrázok na stránku
+ % Vloží obrázok na 80% šírky stránky.
+ %\includegraphics[width=0.8\linewidth]{right-triangle.png}
+ % Zakomentované kvôli kompilácií, použi svoju predstavivosť :).
+ \caption{Pravouhlý trojuholník so stranami $a$, $b$, $c$}
+ \label{fig:right-triangle}
+\end{figure}
+% Opäť, fixné makro "table" nahradíme slovenskou tabuľkou. Pokiaľ preferuješ table, nasledujúci riadok nepridávaj
+\renewcommand\tablename{Tabuľka}
+
+\subsection{Tabuľky}
+Tabuľky sa vkládajú podobne ako obrázky.
+
+\begin{table}[H]
+ \caption{Nadpis tabuľky.}
+ % zátvorky: {} hovoria ako sa vykreslí každý riadok.
+ % Toto si nikdy nepamätám a vždy to musím hľadať. Všetko. Každý. Jeden. Raz!
+ \begin{tabular}{c|cc}
+ Číslo & Priezvisko & Krstné meno \\ % Stĺpce sú rozdelené $
+ \hline % horizontálna čiara
+ 1 & Ladislav & Meliško \\
+ 2 & Eva & Máziková
+ \end{tabular}
+\end{table}
+
+% \section{Hyperlinks} % Už čoskoro :)
+
+\section{Prikáž LaTeXu nekompilovať (napr. Zdrojový Kód)}
+Povedzme, že chceme do dokumentu vložiť zdrojový kód, budeme musieť LaTeXu povedať, nech sa ho nesnaží skompilovať, ale nech s ním pracuje ako s textom.
+Toto sa robí vo verbatim prostredí.
+
+% Tiež sú na to špeciálne balíčky, (napr. minty, lstlisting, atď.)
+% ale verbatim je to najzákladnejšie, čo môžeš použiť.
+\begin{verbatim}
+ print("Hello World!")
+ a%b; pozri! Vo verbatime môžme použiť % znamienka.
+ random = 4; #priradené randomným hodom kockou
+\end{verbatim}
+
+\section{Kompilácia}
+
+Už by bolo načase túto nádheru skompilovať a zhliadnuť jej úžasnú úžasnosť v podobe LaTeX pdfka, čo povieš?
+(áno, tento dokument sa musí kompilovať). \\
+Cesta k finálnemu dokumentu pomocou LaTeXu pozostáva z nasledujúcich krokov:
+ \begin{enumerate}
+ \item Napíš dokument v čistom texte (v "zdrojáku").
+ \item Skompiluj zdroják na získanie pdfka.
+ Kompilácia by mala vyzerať nasledovne (v Linuxe): \\
+ \begin{verbatim}
+ $pdflatex learn-latex.tex learn-latex.pdf
+ \end{verbatim}
+ \end{enumerate}
+
+Mnoho LaTeX editorov kombinuje Krok 1 a Krok 2 v jednom prostredí. Krok 1 teda uvidíš, krok 2 už nie.
+Ten sa deje za oponou. Kompilácia v 2. kroku sa postará o produkciu dokumentu v tebou zadanom formáte.
+
+\section{Koniec}
+
+To je zatiaľ všetko!
+
+% koniec dokumentu
+\end{document}
diff --git a/tr-tr/python3-tr.html.markdown b/tr-tr/python3-tr.html.markdown
index 2477c5da..c7de2922 100644
--- a/tr-tr/python3-tr.html.markdown
+++ b/tr-tr/python3-tr.html.markdown
@@ -538,7 +538,7 @@ Insan.grunt() # => "*grunt*"
# Modülleri içe aktarabilirsiniz
import math
-print(math.sqrt(16)) # => 4
+print(math.sqrt(16)) # => 4.0
# Modülden belirli bir fonksiyonları alabilirsiniz
from math import ceil, floor
diff --git a/zh-cn/python3-cn.html.markdown b/zh-cn/python3-cn.html.markdown
index c223297c..76455a46 100644
--- a/zh-cn/python3-cn.html.markdown
+++ b/zh-cn/python3-cn.html.markdown
@@ -535,7 +535,7 @@ Human.grunt() # => "*grunt*"
# 用import导入模块
import math
-print(math.sqrt(16)) # => 4
+print(math.sqrt(16)) # => 4.0
# 也可以从模块中导入个别值
from math import ceil, floor