published: {{ post.published_date }}
+{{ post.title }}
+{{ post.text|linebreaksbr }}
+diff --git a/.bookignore b/.bookignore
new file mode 100644
index 00000000000..7e458990f2f
--- /dev/null
+++ b/.bookignore
@@ -0,0 +1,6 @@
+.bookignore
+.github
+.gitignore
+crowdin.yaml
+package-lock.json
+package.json
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
new file mode 100644
index 00000000000..ee061951a8b
--- /dev/null
+++ b/.github/CODEOWNERS
@@ -0,0 +1,24 @@
+# default:
+* @DjangoGirls/committers
+
+# language PR review teams for the respective translations:
+/bg/ @DjangoGirls/bg-pr
+/cs/ @DjangoGirls/cs-pr
+/de/ @DjangoGirls/de-pr
+/el/ @DjangoGirls/el-pr
+/en/ @DjangoGirls/en-pr
+/es/ @DjangoGirls/es-pr
+/fa/ @DjangoGirls/fa-pr
+/fr/ @DjangoGirls/fr-pr
+/hu/ @DjangoGirls/hu-pr
+/hy/ @DjangoGirls/hy-pr
+/it/ @DjangoGirls/it-pr
+/ja/ @DjangoGirls/ja-pr
+/ko/ @DjangoGirls/ko-pr
+/pl/ @DjangoGirls/pl-pr
+/pt/ @DjangoGirls/pt-pr
+/ru/ @DjangoGirls/ru-pr
+/sk/ @DjangoGirls/sk-pr
+/tr/ @DjangoGirls/tr-pr
+/uk/ @DjangoGirls/uk-pr
+/zh/ @DjangoGirls/zh-pr
diff --git a/.github/issue_template.md b/.github/issue_template.md
new file mode 100644
index 00000000000..52373ac3126
--- /dev/null
+++ b/.github/issue_template.md
@@ -0,0 +1,11 @@
+### Issue description
+
+Describe what's the problem here.
+
+### Language
+
+Is this related to a specific language of the tutorial?
+
+### Operating system
+
+What operating system does this issue relate to?
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
new file mode 100644
index 00000000000..741ca75c3e7
--- /dev/null
+++ b/.github/pull_request_template.md
@@ -0,0 +1,5 @@
+Changes in this pull request:
+
+-
+-
+-
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
new file mode 100644
index 00000000000..0f9e33b9a56
--- /dev/null
+++ b/.github/workflows/deploy.yml
@@ -0,0 +1,54 @@
+---
+name: Build and Deploy
+
+on:
+ push:
+ branches:
+ - master
+
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+concurrency:
+ group: "pages"
+ cancel-in-progress: true
+
+jobs:
+ build:
+ runs-on: ubuntu-24.04
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ persist-credentials: false
+ - uses: awalsh128/cache-apt-pkgs-action@v1
+ with:
+ packages: calibre
+ - name: Install and Build
+ run: |
+ sudo apt install rename
+ npm install
+ npx honkit build
+ npx honkit epub
+ rename 's/^book/django-girls-tutorial/' book_*.epub
+ mv *.epub _book/
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v3
+ with:
+ path: _book
+
+ deploy:
+ needs: build
+ permissions:
+ pages: write
+ id-token: write
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-24.04
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v4
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 00000000000..f0bd5c4a811
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,17 @@
+name: Build
+on:
+ - pull_request
+
+jobs:
+ build:
+ runs-on: ubuntu-24.04
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ persist-credentials: false
+
+ - name: Install and Build
+ run: |
+ npm install
+ npx honkit build
diff --git a/.gitignore b/.gitignore
index 53de980d74a..3045a3d9538 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,8 @@ MANIFEST
.DS_Store
_book
node_modules
+package-lock.json
+.idea
+.swp
+.langs
+.vscode/
diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 00000000000..c28f4c7a21b
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,587 @@
+# Change Log
+
+## [v1.1.0+20150402](https://github.com/djangogirls/tutorial/tree/v1.1.0+20150402) (2015-04-02)
+
+[Full Changelog](https://github.com/djangogirls/tutorial/compare/v1.0.0+20150329...v1.1.0+20150402)
+
+**Implemented enhancements:**
+
+- Warning before git section in the deploy chapter [\#297](https://github.com/DjangoGirls/tutorial/issues/297)
+
+**Closed issues:**
+
+- Add .pyc files to .gitignore [\#302](https://github.com/DjangoGirls/tutorial/issues/302)
+
+**Merged pull requests:**
+
+- typo fix [\#309](https://github.com/DjangoGirls/tutorial/pull/309) ([lancelote](https://github.com/lancelote))
+
+- typos fix [\#308](https://github.com/DjangoGirls/tutorial/pull/308) ([lancelote](https://github.com/lancelote))
+
+- Fix links in polish and ukrainian version [\#307](https://github.com/DjangoGirls/tutorial/pull/307) ([mrfuxi](https://github.com/mrfuxi))
+
+- Advise readers not to use non-ascii characters [\#305](https://github.com/DjangoGirls/tutorial/pull/305) ([xavierdutreilh](https://github.com/xavierdutreilh))
+
+- working directory warning and git status intro [\#304](https://github.com/DjangoGirls/tutorial/pull/304) ([lancelote](https://github.com/lancelote))
+
+- Fixed \#302 -- Added .pyc files to gitignore [\#303](https://github.com/DjangoGirls/tutorial/pull/303) ([MarkusH](https://github.com/MarkusH))
+
+- Bumped Django version to 1.8 [\#301](https://github.com/DjangoGirls/tutorial/pull/301) ([MarkusH](https://github.com/MarkusH))
+
+## [v1.0.0+20150329](https://github.com/djangogirls/tutorial/tree/v1.0.0+20150329) (2015-03-28)
+
+**Implemented enhancements:**
+
+- Consistently link to 127.0.0.1 [\#217](https://github.com/DjangoGirls/tutorial/issues/217)
+
+- Querysets are too early in the tutorial [\#176](https://github.com/DjangoGirls/tutorial/issues/176)
+
+- Treats should not only be unhealthy food [\#134](https://github.com/DjangoGirls/tutorial/issues/134)
+
+- Add "real" README [\#34](https://github.com/DjangoGirls/tutorial/issues/34)
+
+- Proofreading [\#26](https://github.com/DjangoGirls/tutorial/issues/26)
+
+- Deploy chapter - heroku create [\#12](https://github.com/DjangoGirls/tutorial/issues/12)
+
+- Show what's the goal of the tutorial in introduction [\#9](https://github.com/DjangoGirls/tutorial/issues/9)
+
+- Illustrations in explaining how Django works [\#2](https://github.com/DjangoGirls/tutorial/issues/2)
+
+**Fixed bugs:**
+
+- end of chapter 7 implies code editor isn't installed yet [\#263](https://github.com/DjangoGirls/tutorial/issues/263)
+
+- Links between chapters broken due to i18n [\#235](https://github.com/DjangoGirls/tutorial/issues/235)
+
+- Add import of timezone to ORM lesson for date filters [\#225](https://github.com/DjangoGirls/tutorial/issues/225)
+
+- add .py as a note/optional extension to scripts [\#181](https://github.com/DjangoGirls/tutorial/issues/181)
+
+- Remove bootstrap javascript from code example [\#170](https://github.com/DjangoGirls/tutorial/issues/170)
+
+- Screenshot doesn't match narrative documentation [\#141](https://github.com/DjangoGirls/tutorial/issues/141)
+
+- Improvements in HTML/Template chapters [\#113](https://github.com/DjangoGirls/tutorial/issues/113)
+
+- The chapter "Python installation" refers to console without explain it first [\#35](https://github.com/DjangoGirls/tutorial/issues/35)
+
+**Closed issues:**
+
+- At the point where we are asked to get all posts, we would probably have existing posts [\#282](https://github.com/DjangoGirls/tutorial/issues/282)
+
+- i would like to add korean [\#275](https://github.com/DjangoGirls/tutorial/issues/275)
+
+- Wrong chapter for deployment [\#262](https://github.com/DjangoGirls/tutorial/issues/262)
+
+- Dutch translation [\#258](https://github.com/DjangoGirls/tutorial/issues/258)
+
+- Language German [\#251](https://github.com/DjangoGirls/tutorial/issues/251)
+
+- Use \_\_lte=now\(\) instead of \_\_isnull=False when filtering published Posts [\#249](https://github.com/DjangoGirls/tutorial/issues/249)
+
+- Chapter 5: inequality operator is not described [\#245](https://github.com/DjangoGirls/tutorial/issues/245)
+
+- translation of Django Girls Tutorial into Russian [\#238](https://github.com/DjangoGirls/tutorial/issues/238)
+
+- Adding Farsi translation [\#236](https://github.com/DjangoGirls/tutorial/issues/236)
+
+- Please add German to crowdin.com [\#234](https://github.com/DjangoGirls/tutorial/issues/234)
+
+- Tutorial in french [\#228](https://github.com/DjangoGirls/tutorial/issues/228)
+
+- There is no translations of Chinese [\#226](https://github.com/DjangoGirls/tutorial/issues/226)
+
+- git commit -m "My Django Girls app" will not work [\#224](https://github.com/DjangoGirls/tutorial/issues/224)
+
+- Chapter 12: replace 'mysite' by 'djangogirls' [\#223](https://github.com/DjangoGirls/tutorial/issues/223)
+
+- Chapter 11: syncdb requires after creating superuser [\#222](https://github.com/DjangoGirls/tutorial/issues/222)
+
+- Translation into Ukrainian [\#216](https://github.com/DjangoGirls/tutorial/issues/216)
+
+- "Django ORM": `User` vs. `user` is confusing [\#215](https://github.com/DjangoGirls/tutorial/issues/215)
+
+- Translate the tutorial to spanish [\#213](https://github.com/DjangoGirls/tutorial/issues/213)
+
+- Switch to files earlier in the "Intro to Python" chapter [\#212](https://github.com/DjangoGirls/tutorial/issues/212)
+
+- Switch to file-based code execution in chapter 4 \(intro to python\) [\#207](https://github.com/DjangoGirls/tutorial/issues/207)
+
+- Go back to using gunicorn [\#206](https://github.com/DjangoGirls/tutorial/issues/206)
+
+- After deploying to heroku, it shouldn't show 404 [\#192](https://github.com/DjangoGirls/tutorial/issues/192)
+
+- Split the Python Introduction chapter to use files instead of command line [\#190](https://github.com/DjangoGirls/tutorial/issues/190)
+
+- Tutorial skips over the need to stop runserver [\#187](https://github.com/DjangoGirls/tutorial/issues/187)
+
+- missing jQuery [\#184](https://github.com/DjangoGirls/tutorial/issues/184)
+
+- wrong directory in Django Girls Tutorial: Extensions [\#183](https://github.com/DjangoGirls/tutorial/issues/183)
+
+- file encoding [\#180](https://github.com/DjangoGirls/tutorial/issues/180)
+
+- change font for code samples [\#179](https://github.com/DjangoGirls/tutorial/issues/179)
+
+- bug: search is not working [\#177](https://github.com/DjangoGirls/tutorial/issues/177)
+
+- Highlight double underscores [\#166](https://github.com/DjangoGirls/tutorial/issues/166)
+
+- Explain \o/ symbols [\#162](https://github.com/DjangoGirls/tutorial/issues/162)
+
+- Bringing git push heroku master back [\#160](https://github.com/DjangoGirls/tutorial/issues/160)
+
+- Location of warning in the intro to command line. [\#151](https://github.com/DjangoGirls/tutorial/issues/151)
+
+- Session missing. [\#149](https://github.com/DjangoGirls/tutorial/issues/149)
+
+- How to build the docs? [\#145](https://github.com/DjangoGirls/tutorial/issues/145)
+
+- heroku-push bug on windows [\#143](https://github.com/DjangoGirls/tutorial/issues/143)
+
+- Proposal to move Deploy section to the end of tutorial [\#139](https://github.com/DjangoGirls/tutorial/issues/139)
+
+- Tutorial Chapter 10 "Bug" [\#133](https://github.com/DjangoGirls/tutorial/issues/133)
+
+- Create a PT-BR translation team on Crowdin. [\#131](https://github.com/DjangoGirls/tutorial/issues/131)
+
+- Please have a teacher make a deep review of the course [\#127](https://github.com/DjangoGirls/tutorial/issues/127)
+
+- Problems with heroku-push [\#126](https://github.com/DjangoGirls/tutorial/issues/126)
+
+- Update to Django 1.7 [\#122](https://github.com/DjangoGirls/tutorial/issues/122)
+
+- Questions and issues link broken [\#112](https://github.com/DjangoGirls/tutorial/issues/112)
+
+- Set published date when creating new post. [\#111](https://github.com/DjangoGirls/tutorial/issues/111)
+
+- Command Line chapter more interactive [\#110](https://github.com/DjangoGirls/tutorial/issues/110)
+
+- Move homeworks and contributing out of tutorial to another book [\#108](https://github.com/DjangoGirls/tutorial/issues/108)
+
+- Visit your application - what's process type and dyno running? [\#103](https://github.com/DjangoGirls/tutorial/issues/103)
+
+- Improvements to deploy chapter [\#98](https://github.com/DjangoGirls/tutorial/issues/98)
+
+- Links to documentation [\#97](https://github.com/DjangoGirls/tutorial/issues/97)
+
+- Querysets [\#96](https://github.com/DjangoGirls/tutorial/issues/96)
+
+- Better explanation of Models [\#95](https://github.com/DjangoGirls/tutorial/issues/95)
+
+- Heroku static files [\#83](https://github.com/DjangoGirls/tutorial/issues/83)
+
+- Newly added part on dictionaries \(Intro to Python chapter\) [\#82](https://github.com/DjangoGirls/tutorial/issues/82)
+
+- Inconsistent terminology [\#80](https://github.com/DjangoGirls/tutorial/issues/80)
+
+- RFC: Re-order the tutorial [\#79](https://github.com/DjangoGirls/tutorial/issues/79)
+
+- Authentication and Authorization not accessible from the menu [\#71](https://github.com/DjangoGirls/tutorial/issues/71)
+
+- Creating blog entries while not logged in results in an ugly error [\#68](https://github.com/DjangoGirls/tutorial/issues/68)
+
+- Broken link on introduction page [\#61](https://github.com/DjangoGirls/tutorial/issues/61)
+
+- Coordinate with OpenHatch to avoid work duplication [\#60](https://github.com/DjangoGirls/tutorial/issues/60)
+
+- Env setup instructions not sufficient for Ubuntu 14.04 [\#58](https://github.com/DjangoGirls/tutorial/issues/58)
+
+- Contributing chapter needs proof-reading [\#50](https://github.com/DjangoGirls/tutorial/issues/50)
+
+- Advanced Tutorial on Authentication [\#47](https://github.com/DjangoGirls/tutorial/issues/47)
+
+- Rearrange folder structure [\#46](https://github.com/DjangoGirls/tutorial/issues/46)
+
+- Deploying to Heroku without git [\#41](https://github.com/DjangoGirls/tutorial/issues/41)
+
+- Static files on Heroku [\#40](https://github.com/DjangoGirls/tutorial/issues/40)
+
+- Fix installation process for pip on Ubuntu 12.04 [\#39](https://github.com/DjangoGirls/tutorial/issues/39)
+
+- Resolve PostgreSQL issues [\#38](https://github.com/DjangoGirls/tutorial/issues/38)
+
+- Add LICENSE and appropriate credit [\#36](https://github.com/DjangoGirls/tutorial/issues/36)
+
+- The "Installation" book should not include "What is Django?" chapter [\#23](https://github.com/DjangoGirls/tutorial/issues/23)
+
+- Create a reading for girls to do before workshop [\#10](https://github.com/DjangoGirls/tutorial/issues/10)
+
+- Discussion about first draft of tutorial [\#8](https://github.com/DjangoGirls/tutorial/issues/8)
+
+- Chapter about installing Postgres [\#7](https://github.com/DjangoGirls/tutorial/issues/7)
+
+- Decide on one, either localhost or 127.0.0.1 [\#6](https://github.com/DjangoGirls/tutorial/issues/6)
+
+- Consistent screenshots [\#5](https://github.com/DjangoGirls/tutorial/issues/5)
+
+- Check everything for style [\#4](https://github.com/DjangoGirls/tutorial/issues/4)
+
+- Missing parts: pip installation [\#1](https://github.com/DjangoGirls/tutorial/issues/1)
+
+**Merged pull requests:**
+
+- Changed code for post\_detail.html [\#298](https://github.com/DjangoGirls/tutorial/pull/298) ([jinsollee92](https://github.com/jinsollee92))
+
+- Poprawione literówki i składnia / Typos and grammar fixes [\#295](https://github.com/DjangoGirls/tutorial/pull/295) ([eppyk](https://github.com/eppyk))
+
+- Fix few typos [\#294](https://github.com/DjangoGirls/tutorial/pull/294) ([lancelote](https://github.com/lancelote))
+
+- Minor updates to "Starting a django project" [\#293](https://github.com/DjangoGirls/tutorial/pull/293) ([sodevious](https://github.com/sodevious))
+
+- python -\> python3 in django installation tutorial [\#290](https://github.com/DjangoGirls/tutorial/pull/290) ([rz](https://github.com/rz))
+
+- Grammar fix [\#289](https://github.com/DjangoGirls/tutorial/pull/289) ([lancelote](https://github.com/lancelote))
+
+- Wrong usage of word "set" [\#287](https://github.com/DjangoGirls/tutorial/pull/287) ([haxoza](https://github.com/haxoza))
+
+- Update README.md [\#286](https://github.com/DjangoGirls/tutorial/pull/286) ([eppyk](https://github.com/eppyk))
+
+- activate virtualenv in Start Dj Project [\#285](https://github.com/DjangoGirls/tutorial/pull/285) ([eppyk](https://github.com/eppyk))
+
+- Activate virtualenv after command prompt restart [\#284](https://github.com/DjangoGirls/tutorial/pull/284) ([doriczapari](https://github.com/doriczapari))
+
+- Reword tutorial to support stuff in database [\#283](https://github.com/DjangoGirls/tutorial/pull/283) ([phalt](https://github.com/phalt))
+
+- Bump django version to 1.7.7 [\#280](https://github.com/DjangoGirls/tutorial/pull/280) ([phalt](https://github.com/phalt))
+
+- Fix typo: Boostrap -\> Bootstrap [\#278](https://github.com/DjangoGirls/tutorial/pull/278) ([victorneo](https://github.com/victorneo))
+
+- Added a description of the inequality operator. [\#274](https://github.com/DjangoGirls/tutorial/pull/274) ([annekoopman](https://github.com/annekoopman))
+
+- Added Spanish translation from crowdin [\#273](https://github.com/DjangoGirls/tutorial/pull/273) ([bmispelon](https://github.com/bmispelon))
+
+- Change some potentially confusing naming [\#269](https://github.com/DjangoGirls/tutorial/pull/269) ([AlexHill](https://github.com/AlexHill))
+
+- Revert "Update python version to 3.4.3 in Chapter 11 - Deploy!" [\#267](https://github.com/DjangoGirls/tutorial/pull/267) ([asendecka](https://github.com/asendecka))
+
+- Update python version to 3.4.3 in Chapter 11 - Deploy! [\#266](https://github.com/DjangoGirls/tutorial/pull/266) ([ProProgrammer](https://github.com/ProProgrammer))
+
+- Update Python to the latests version \(from 3.4.2 to 3.4.3\) [\#265](https://github.com/DjangoGirls/tutorial/pull/265) ([ana-balica](https://github.com/ana-balica))
+
+- Bumped Django version to 1.7.5 [\#264](https://github.com/DjangoGirls/tutorial/pull/264) ([MarkusH](https://github.com/MarkusH))
+
+- Introduce \_\_lte=now\(\) instead of isnull=False [\#259](https://github.com/DjangoGirls/tutorial/pull/259) ([aniav](https://github.com/aniav))
+
+- Fixed Intro to Command Line link [\#256](https://github.com/DjangoGirls/tutorial/pull/256) ([rgbm21](https://github.com/rgbm21))
+
+- Deploy - Merge changes in mysite/settings.py [\#254](https://github.com/DjangoGirls/tutorial/pull/254) ([martinsvoboda](https://github.com/martinsvoboda))
+
+- Change "Postman" to gender-neutral "Mail Carrier". [\#253](https://github.com/DjangoGirls/tutorial/pull/253) ([Geekfish](https://github.com/Geekfish))
+
+- Removed/replaced references to sweet treats [\#252](https://github.com/DjangoGirls/tutorial/pull/252) ([kerstin](https://github.com/kerstin))
+
+- Better instructions to run `django-admin startproject` [\#247](https://github.com/DjangoGirls/tutorial/pull/247) ([encukou](https://github.com/encukou))
+
+- Python intro: range is a function, not a method [\#246](https://github.com/DjangoGirls/tutorial/pull/246) ([encukou](https://github.com/encukou))
+
+- Fix typo in intro to command line [\#243](https://github.com/DjangoGirls/tutorial/pull/243) ([encukou](https://github.com/encukou))
+
+- Some things I found while reading PL version of the tutorial. [\#242](https://github.com/DjangoGirls/tutorial/pull/242) ([owad](https://github.com/owad))
+
+- Don't include empty date div if there is no date [\#241](https://github.com/DjangoGirls/tutorial/pull/241) ([HonzaKral](https://github.com/HonzaKral))
+
+- Bump psycopg version [\#240](https://github.com/DjangoGirls/tutorial/pull/240) ([HonzaKral](https://github.com/HonzaKral))
+
+- startproject commands are the same for win/posix [\#239](https://github.com/DjangoGirls/tutorial/pull/239) ([HonzaKral](https://github.com/HonzaKral))
+
+- DG tutorial POL - proof-read [\#237](https://github.com/DjangoGirls/tutorial/pull/237) ([agagata](https://github.com/agagata))
+
+- Adding missing links [\#233](https://github.com/DjangoGirls/tutorial/pull/233) ([rgbm21](https://github.com/rgbm21))
+
+- Small fixes in Polish version. [\#232](https://github.com/DjangoGirls/tutorial/pull/232) ([aniav](https://github.com/aniav))
+
+- Update CONTRIBUTING.md [\#231](https://github.com/DjangoGirls/tutorial/pull/231) ([ossanna16](https://github.com/ossanna16))
+
+- Formatting/typo fixes [\#230](https://github.com/DjangoGirls/tutorial/pull/230) ([papisz](https://github.com/papisz))
+
+- Minor formatting corrections [\#229](https://github.com/DjangoGirls/tutorial/pull/229) ([papisz](https://github.com/papisz))
+
+- Format dictionaries [\#227](https://github.com/DjangoGirls/tutorial/pull/227) ([mostaszewski](https://github.com/mostaszewski))
+
+- made 127.0.0.1 references links [\#219](https://github.com/DjangoGirls/tutorial/pull/219) ([alvynmcq](https://github.com/alvynmcq))
+
+- replaced 'User' variable with 'me' [\#218](https://github.com/DjangoGirls/tutorial/pull/218) ([alvynmcq](https://github.com/alvynmcq))
+
+- Change python intro to use files [\#210](https://github.com/DjangoGirls/tutorial/pull/210) ([phalt](https://github.com/phalt))
+
+- small typo fix [\#209](https://github.com/DjangoGirls/tutorial/pull/209) ([JaimeLynSchatz](https://github.com/JaimeLynSchatz))
+
+- Pip freeze [\#205](https://github.com/DjangoGirls/tutorial/pull/205) ([pozorvlak](https://github.com/pozorvlak))
+
+- Warn about psycopg compilation output [\#203](https://github.com/DjangoGirls/tutorial/pull/203) ([pozorvlak](https://github.com/pozorvlak))
+
+- Minor grammar fix; make it clear `manage.py shell` should be run in a virtualenv. [\#200](https://github.com/DjangoGirls/tutorial/pull/200) ([pozorvlak](https://github.com/pozorvlak))
+
+- add translation section on readme.md [\#199](https://github.com/DjangoGirls/tutorial/pull/199) ([luzfcb](https://github.com/luzfcb))
+
+- Change google link in HTML chapter to dgangogirls.org [\#198](https://github.com/DjangoGirls/tutorial/pull/198) ([rebkwok](https://github.com/rebkwok))
+
+- revisions to Deploy chapter [\#197](https://github.com/DjangoGirls/tutorial/pull/197) ([rebkwok](https://github.com/rebkwok))
+
+- Removed confusing comment. [\#194](https://github.com/DjangoGirls/tutorial/pull/194) ([loic](https://github.com/loic))
+
+- Made git bootstrapping a little more predictable. [\#193](https://github.com/DjangoGirls/tutorial/pull/193) ([loic](https://github.com/loic))
+
+- Restore git push [\#186](https://github.com/DjangoGirls/tutorial/pull/186) ([bmispelon](https://github.com/bmispelon))
+
+- Fixed typo in ORM chapter. [\#182](https://github.com/DjangoGirls/tutorial/pull/182) ([timgraham](https://github.com/timgraham))
+
+- Updated to Django 1.7.1 [\#178](https://github.com/DjangoGirls/tutorial/pull/178) ([timgraham](https://github.com/timgraham))
+
+- root page returns "not found", so point to admin/ [\#175](https://github.com/DjangoGirls/tutorial/pull/175) ([kermit666](https://github.com/kermit666))
+
+- Made the startproject warning a little more prominent. [\#174](https://github.com/DjangoGirls/tutorial/pull/174) ([loic](https://github.com/loic))
+
+- Fixed missing call to createsuperuser. [\#173](https://github.com/DjangoGirls/tutorial/pull/173) ([loic](https://github.com/loic))
+
+- Minor fixes [\#172](https://github.com/DjangoGirls/tutorial/pull/172) ([MarkusH](https://github.com/MarkusH))
+
+- Fixed \#166 -- Highlight the significance of the double underscore syntax [\#169](https://github.com/DjangoGirls/tutorial/pull/169) ([bmispelon](https://github.com/bmispelon))
+
+- Updated to use django-admin \(.py suffix not required in Django 1.7\) [\#168](https://github.com/DjangoGirls/tutorial/pull/168) ([timgraham](https://github.com/timgraham))
+
+- Updated urls.py for Django 1.7. [\#167](https://github.com/DjangoGirls/tutorial/pull/167) ([timgraham](https://github.com/timgraham))
+
+- Fixed \#162 -- Removed \o/ [\#164](https://github.com/DjangoGirls/tutorial/pull/164) ([bmispelon](https://github.com/bmispelon))
+
+- Use original heroku-push repo instead of fork [\#161](https://github.com/DjangoGirls/tutorial/pull/161) ([andriykohut](https://github.com/andriykohut))
+
+- Updated code\_editor/README.md [\#159](https://github.com/DjangoGirls/tutorial/pull/159) ([syndbg](https://github.com/syndbg))
+
+- Deployment needs a persistent database [\#158](https://github.com/DjangoGirls/tutorial/pull/158) ([goranche](https://github.com/goranche))
+
+- Update README.md [\#157](https://github.com/DjangoGirls/tutorial/pull/157) ([victorwestmann](https://github.com/victorwestmann))
+
+- note the difficulty of deployment chapter, fixes \#139 [\#156](https://github.com/DjangoGirls/tutorial/pull/156) ([domenkozar](https://github.com/domenkozar))
+
+- Use lazy evaluated ForeignKey references to prevent future problems [\#155](https://github.com/DjangoGirls/tutorial/pull/155) ([MarkusH](https://github.com/MarkusH))
+
+- Fix a small grammar mistake [\#154](https://github.com/DjangoGirls/tutorial/pull/154) ([zanderle](https://github.com/zanderle))
+
+- Add a Gitter chat badge to README.md [\#152](https://github.com/DjangoGirls/tutorial/pull/152) ([gitter-badger](https://github.com/gitter-badger))
+
+- minor spelling correction [\#150](https://github.com/DjangoGirls/tutorial/pull/150) ([annaqui](https://github.com/annaqui))
+
+- Change syncdb to migrate when preparing db on heroku. [\#148](https://github.com/DjangoGirls/tutorial/pull/148) ([MattBlack85](https://github.com/MattBlack85))
+
+- Fixes for heroku-push on Windows [\#144](https://github.com/DjangoGirls/tutorial/pull/144) ([andriykohut](https://github.com/andriykohut))
+
+- bump gitbook-plugin-richquotes to fix syling on modern browsers [\#142](https://github.com/DjangoGirls/tutorial/pull/142) ([domenkozar](https://github.com/domenkozar))
+
+- Consistency [\#140](https://github.com/DjangoGirls/tutorial/pull/140) ([domenkozar](https://github.com/domenkozar))
+
+- consistency [\#138](https://github.com/DjangoGirls/tutorial/pull/138) ([domenkozar](https://github.com/domenkozar))
+
+- Small typo [\#137](https://github.com/DjangoGirls/tutorial/pull/137) ([domenkozar](https://github.com/domenkozar))
+
+- typo fix in orm chapter [\#136](https://github.com/DjangoGirls/tutorial/pull/136) ([hellotaotao](https://github.com/hellotaotao))
+
+- Fixed a typo in the ORM chapter [\#135](https://github.com/DjangoGirls/tutorial/pull/135) ([alex](https://github.com/alex))
+
+- Update README.md to demonstrate user creation [\#132](https://github.com/DjangoGirls/tutorial/pull/132) ([Mbosco](https://github.com/Mbosco))
+
+- Specify Python interpreter on Ubuntu 14.04 [\#130](https://github.com/DjangoGirls/tutorial/pull/130) ([siemieniec](https://github.com/siemieniec))
+
+- Update to Django 1.7 [\#129](https://github.com/DjangoGirls/tutorial/pull/129) ([MattBlack85](https://github.com/MattBlack85))
+
+- Add apostrophe in string example [\#128](https://github.com/DjangoGirls/tutorial/pull/128) ([MattBlack85](https://github.com/MattBlack85))
+
+- some \(mostly\) minor edits and proofreading changes [\#125](https://github.com/DjangoGirls/tutorial/pull/125) ([rebkwok](https://github.com/rebkwok))
+
+- Have all entries in SUMMARY capitalized similarly [\#124](https://github.com/DjangoGirls/tutorial/pull/124) ([miohtama](https://github.com/miohtama))
+
+- Reduced double body tag to one [\#121](https://github.com/DjangoGirls/tutorial/pull/121) ([ozanyildiz](https://github.com/ozanyildiz))
+
+- Fixed minor QuerySet typos [\#120](https://github.com/DjangoGirls/tutorial/pull/120) ([Railslide](https://github.com/Railslide))
+
+- A few fixes for the ORM chapter [\#118](https://github.com/DjangoGirls/tutorial/pull/118) ([bmispelon](https://github.com/bmispelon))
+
+- Changed template folder structure so that mysite is not needed in INSTALLED\_APPS [\#117](https://github.com/DjangoGirls/tutorial/pull/117) ([bmispelon](https://github.com/bmispelon))
+
+- base.html placed inside the mysite directory [\#116](https://github.com/DjangoGirls/tutorial/pull/116) ([elya5](https://github.com/elya5))
+
+- Added more errors in the "Introduction to Python" chapter. [\#109](https://github.com/DjangoGirls/tutorial/pull/109) ([bmispelon](https://github.com/bmispelon))
+
+- Fixed \#82 -- Improved the chapter on dictionaries. [\#107](https://github.com/DjangoGirls/tutorial/pull/107) ([bmispelon](https://github.com/bmispelon))
+
+- Update README.md [\#106](https://github.com/DjangoGirls/tutorial/pull/106) ([maynkj](https://github.com/maynkj))
+
+- Fixed \#103 -- Explained what process types and dynos are on Heroku. [\#105](https://github.com/DjangoGirls/tutorial/pull/105) ([bmispelon](https://github.com/bmispelon))
+
+- Small corrections [\#104](https://github.com/DjangoGirls/tutorial/pull/104) ([hannahu](https://github.com/hannahu))
+
+- Editorial tweaks + how to print a given element of a dictionary [\#102](https://github.com/DjangoGirls/tutorial/pull/102) ([MarysiaLowas](https://github.com/MarysiaLowas))
+
+- distinguish operators and functions [\#100](https://github.com/DjangoGirls/tutorial/pull/100) ([hjwp](https://github.com/hjwp))
+
+- python intro - ctrl+d doesnt work on windows. [\#99](https://github.com/DjangoGirls/tutorial/pull/99) ([hjwp](https://github.com/hjwp))
+
+- minor changes to python intro and virtualenv instructions [\#94](https://github.com/DjangoGirls/tutorial/pull/94) ([JesseIrwin](https://github.com/JesseIrwin))
+
+- got rid of mention of domain discount [\#93](https://github.com/DjangoGirls/tutorial/pull/93) ([JesseIrwin](https://github.com/JesseIrwin))
+
+- Added to post\_new to allow 24. Homework: add security to work [\#92](https://github.com/DjangoGirls/tutorial/pull/92) ([JesseIrwin](https://github.com/JesseIrwin))
+
+- Update README.md [\#90](https://github.com/DjangoGirls/tutorial/pull/90) ([r1chardj0n3s](https://github.com/r1chardj0n3s))
+
+- Update README.md [\#89](https://github.com/DjangoGirls/tutorial/pull/89) ([chernolya](https://github.com/chernolya))
+
+- Update README.md [\#88](https://github.com/DjangoGirls/tutorial/pull/88) ([yalitan](https://github.com/yalitan))
+
+- Updating timezone instructions [\#87](https://github.com/DjangoGirls/tutorial/pull/87) ([OctoKatie](https://github.com/OctoKatie))
+
+- Corrected typo on heading in What is Django [\#86](https://github.com/DjangoGirls/tutorial/pull/86) ([Charcol](https://github.com/Charcol))
+
+- Fix syntax highlighting for dictionary section [\#85](https://github.com/DjangoGirls/tutorial/pull/85) ([hzy](https://github.com/hzy))
+
+- clarifications/rewordings, added explanation of what CLI is [\#84](https://github.com/DjangoGirls/tutorial/pull/84) ([kerstin](https://github.com/kerstin))
+
+- folder/directory consitency [\#81](https://github.com/DjangoGirls/tutorial/pull/81) ([BluesFiend](https://github.com/BluesFiend))
+
+- Adding in note re logged in user missing during post creation [\#78](https://github.com/DjangoGirls/tutorial/pull/78) ([BluesFiend](https://github.com/BluesFiend))
+
+- Added dictionaries in the introduction to Python [\#77](https://github.com/DjangoGirls/tutorial/pull/77) ([deeptiGuptaUIUC](https://github.com/deeptiGuptaUIUC))
+
+- Editorial changes to Intro to Command Line [\#76](https://github.com/DjangoGirls/tutorial/pull/76) ([MarysiaLowas](https://github.com/MarysiaLowas))
+
+- small tweak to cli intro as windows can also use mkdir to remove confusi... [\#75](https://github.com/DjangoGirls/tutorial/pull/75) ([BluesFiend](https://github.com/BluesFiend))
+
+- use safe and linebreaks filters for the text [\#74](https://github.com/DjangoGirls/tutorial/pull/74) ([kampfschlaefer](https://github.com/kampfschlaefer))
+
+- Proofreading of new Auth page [\#73](https://github.com/DjangoGirls/tutorial/pull/73) ([BluesFiend](https://github.com/BluesFiend))
+
+- adding authentication to SUMMARY.md [\#72](https://github.com/DjangoGirls/tutorial/pull/72) ([BluesFiend](https://github.com/BluesFiend))
+
+- Typo found by Aigerim doing the tutorial. [\#70](https://github.com/DjangoGirls/tutorial/pull/70) ([kampfschlaefer](https://github.com/kampfschlaefer))
+
+- Proofreading more pages [\#69](https://github.com/DjangoGirls/tutorial/pull/69) ([BluesFiend](https://github.com/BluesFiend))
+
+- wording, grammar, clarified some things etc. [\#67](https://github.com/DjangoGirls/tutorial/pull/67) ([kerstin](https://github.com/kerstin))
+
+- Add venv instructions for Ubuntu 14.04 [\#66](https://github.com/DjangoGirls/tutorial/pull/66) ([eddie-dunn](https://github.com/eddie-dunn))
+
+- Proofreading [\#65](https://github.com/DjangoGirls/tutorial/pull/65) ([BluesFiend](https://github.com/BluesFiend))
+
+- Clearing up some unclear bits and editorial changes [\#64](https://github.com/DjangoGirls/tutorial/pull/64) ([MarysiaLowas](https://github.com/MarysiaLowas))
+
+- wording, clarified instructions, grammar,... [\#63](https://github.com/DjangoGirls/tutorial/pull/63) ([kerstin](https://github.com/kerstin))
+
+- Fixing Intro contributing link [\#62](https://github.com/DjangoGirls/tutorial/pull/62) ([BluesFiend](https://github.com/BluesFiend))
+
+- Rename venv to myvenv for a little clarity [\#59](https://github.com/DjangoGirls/tutorial/pull/59) ([BluesFiend](https://github.com/BluesFiend))
+
+- Use SQLite as default database [\#57](https://github.com/DjangoGirls/tutorial/pull/57) ([BluesFiend](https://github.com/BluesFiend))
+
+- Fixed Spelling [\#56](https://github.com/DjangoGirls/tutorial/pull/56) ([deeptiGuptaUIUC](https://github.com/deeptiGuptaUIUC))
+
+- Intro to command line by Becky Smith and Ruth Shemla [\#55](https://github.com/DjangoGirls/tutorial/pull/55) ([ruthshemla](https://github.com/ruthshemla))
+
+- CSS chapter - added explanations about CSS and fixed some language mistakes [\#54](https://github.com/DjangoGirls/tutorial/pull/54) ([shmool](https://github.com/shmool))
+
+- A chapter on authentication and authorization [\#53](https://github.com/DjangoGirls/tutorial/pull/53) ([kampfschlaefer](https://github.com/kampfschlaefer))
+
+- Fixed starts at beginning to be a link [\#52](https://github.com/DjangoGirls/tutorial/pull/52) ([miohtama](https://github.com/miohtama))
+
+- wording, grammar, clarified a few things [\#51](https://github.com/DjangoGirls/tutorial/pull/51) ([kerstin](https://github.com/kerstin))
+
+- Folder structure rearrange [\#49](https://github.com/DjangoGirls/tutorial/pull/49) ([BluesFiend](https://github.com/BluesFiend))
+
+- wording, sentence structure [\#48](https://github.com/DjangoGirls/tutorial/pull/48) ([kerstin](https://github.com/kerstin))
+
+- Contributing chapter added [\#45](https://github.com/DjangoGirls/tutorial/pull/45) ([miohtama](https://github.com/miohtama))
+
+- Just two small typos [\#44](https://github.com/DjangoGirls/tutorial/pull/44) ([kampfschlaefer](https://github.com/kampfschlaefer))
+
+- Updated installation instructions for OSX [\#42](https://github.com/DjangoGirls/tutorial/pull/42) ([miohtama](https://github.com/miohtama))
+
+- added a missing dot in 'from .local\_settings import \*' [\#37](https://github.com/DjangoGirls/tutorial/pull/37) ([maciejgryka](https://github.com/maciejgryka))
+
+- Fixed typo. [\#33](https://github.com/DjangoGirls/tutorial/pull/33) ([bmispelon](https://github.com/bmispelon))
+
+- Fixes and improvements [\#32](https://github.com/DjangoGirls/tutorial/pull/32) ([keimlink](https://github.com/keimlink))
+
+- Some more native speaker proofreading [\#31](https://github.com/DjangoGirls/tutorial/pull/31) ([mcmillan](https://github.com/mcmillan))
+
+- Explain how to add Postgres to PATH on OS X [\#30](https://github.com/DjangoGirls/tutorial/pull/30) ([foonicorn](https://github.com/foonicorn))
+
+- Proofreading changes [\#29](https://github.com/DjangoGirls/tutorial/pull/29) ([rebkwok](https://github.com/rebkwok))
+
+- Changed the psycopg2 install method for Windows. [\#28](https://github.com/DjangoGirls/tutorial/pull/28) ([bmispelon](https://github.com/bmispelon))
+
+- Suggested changes for HTML chapter [\#27](https://github.com/DjangoGirls/tutorial/pull/27) ([evildmp](https://github.com/evildmp))
+
+- Small improvements in the first chapters [\#25](https://github.com/DjangoGirls/tutorial/pull/25) ([foonicorn](https://github.com/foonicorn))
+
+- Added more Windows-specific PostgreSQL installations steps [\#24](https://github.com/DjangoGirls/tutorial/pull/24) ([maciejgryka](https://github.com/maciejgryka))
+
+- Native speaker attacks. [\#22](https://github.com/DjangoGirls/tutorial/pull/22) ([mjtamlyn](https://github.com/mjtamlyn))
+
+- Small fixes [\#21](https://github.com/DjangoGirls/tutorial/pull/21) ([suda](https://github.com/suda))
+
+- Used consistent absolute file paths. [\#20](https://github.com/DjangoGirls/tutorial/pull/20) ([bmispelon](https://github.com/bmispelon))
+
+- Fixed \#6 -- Use 127.0.0.1 instead of localhost. [\#19](https://github.com/DjangoGirls/tutorial/pull/19) ([bmispelon](https://github.com/bmispelon))
+
+- Make Heroku use Python 3. [\#18](https://github.com/DjangoGirls/tutorial/pull/18) ([bmispelon](https://github.com/bmispelon))
+
+- More typo fixes. [\#17](https://github.com/DjangoGirls/tutorial/pull/17) ([bmispelon](https://github.com/bmispelon))
+
+- Fixed the output of `syncdb`. [\#16](https://github.com/DjangoGirls/tutorial/pull/16) ([bmispelon](https://github.com/bmispelon))
+
+- Fixed typo in code example. [\#15](https://github.com/DjangoGirls/tutorial/pull/15) ([bmispelon](https://github.com/bmispelon))
+
+- Fixes from notes [\#14](https://github.com/DjangoGirls/tutorial/pull/14) ([bmispelon](https://github.com/bmispelon))
+
+- Minor grammar and typo fixes. [\#13](https://github.com/DjangoGirls/tutorial/pull/13) ([bmispelon](https://github.com/bmispelon))
+
+- Added description about ssh keys [\#11](https://github.com/DjangoGirls/tutorial/pull/11) ([lukaszb](https://github.com/lukaszb))
+
+- Fixing Python Version Link [\#292](https://github.com/DjangoGirls/tutorial/pull/292) ([StephenDonaldson](https://github.com/StephenDonaldson))
+
+- Add pyc files to .gitignore [\#291](https://github.com/DjangoGirls/tutorial/pull/291) ([powerfool](https://github.com/powerfool))
+
+- Fix broken link for getting started [\#288](https://github.com/DjangoGirls/tutorial/pull/288) ([AnSavvides](https://github.com/AnSavvides))
+
+- Korean [\#281](https://github.com/DjangoGirls/tutorial/pull/281) ([sjyun](https://github.com/sjyun))
+
+- Link not working [\#270](https://github.com/DjangoGirls/tutorial/pull/270) ([mauricioabreu](https://github.com/mauricioabreu))
+
+- Revert back to python version to 3.4.2 in Chapter 11 - Deploy! as 3.4.3 not supported by Heroku as of now [\#268](https://github.com/DjangoGirls/tutorial/pull/268) ([ProProgrammer](https://github.com/ProProgrammer))
+
+- fix broken link in the project-wide README [\#261](https://github.com/DjangoGirls/tutorial/pull/261) ([ana-balica](https://github.com/ana-balica))
+
+- Fixed Intro to Command Line link [\#257](https://github.com/DjangoGirls/tutorial/pull/257) ([rgbm21](https://github.com/rgbm21))
+
+- Fixed Intro to Command Line link [\#255](https://github.com/DjangoGirls/tutorial/pull/255) ([rgbm21](https://github.com/rgbm21))
+
+- Only the admin page is visible after the first `git push`. [\#204](https://github.com/DjangoGirls/tutorial/pull/204) ([pozorvlak](https://github.com/pozorvlak))
+
+- Explain requirements for a Heroku application name. [\#202](https://github.com/DjangoGirls/tutorial/pull/202) ([pozorvlak](https://github.com/pozorvlak))
+
+- Make it clear that runserver takes over the prompt [\#201](https://github.com/DjangoGirls/tutorial/pull/201) ([pozorvlak](https://github.com/pozorvlak))
+
+- Added desired screen after first push to heroku [\#185](https://github.com/DjangoGirls/tutorial/pull/185) ([parodia](https://github.com/parodia))
+
+- Fixed misleading inline code \(differed from block code\) [\#163](https://github.com/DjangoGirls/tutorial/pull/163) ([MarkusH](https://github.com/MarkusH))
+
+- added `\_\_unicode\(\)\_\_` support. [\#147](https://github.com/DjangoGirls/tutorial/pull/147) ([abdelouahabb](https://github.com/abdelouahabb))
+
+- Heroku no longer creates default postgres database [\#146](https://github.com/DjangoGirls/tutorial/pull/146) ([andriykohut](https://github.com/andriykohut))
+
+- Numbered the chapter folders so that they're listed in order. [\#119](https://github.com/DjangoGirls/tutorial/pull/119) ([bmispelon](https://github.com/bmispelon))
+
+- Added settings.py modification after creating a template [\#115](https://github.com/DjangoGirls/tutorial/pull/115) ([doriczapari](https://github.com/doriczapari))
+
+- Made Command Line chapter more interactive. Refs \#110 [\#114](https://github.com/DjangoGirls/tutorial/pull/114) ([olasitarska](https://github.com/olasitarska))
+
+- Add a brief description of the print statement [\#101](https://github.com/DjangoGirls/tutorial/pull/101) ([hjwp](https://github.com/hjwp))
+
+- .gitignore file should also contain \*.pyc [\#91](https://github.com/DjangoGirls/tutorial/pull/91) ([rebeccad](https://github.com/rebeccad))
+
+- `source` command on available on all Linuxes [\#43](https://github.com/DjangoGirls/tutorial/pull/43) ([miohtama](https://github.com/miohtama))
+
+
+
+\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
diff --git a/CNAME b/CNAME
new file mode 100644
index 00000000000..e204ba9c9a7
--- /dev/null
+++ b/CNAME
@@ -0,0 +1 @@
+tutorial.djangogirls.org
\ No newline at end of file
diff --git a/LANGS.md b/LANGS.md
new file mode 100644
index 00000000000..751d6faf913
--- /dev/null
+++ b/LANGS.md
@@ -0,0 +1,20 @@
+* [🇺🇸 English](en/)
+* [🇧🇬 Български (beta)](bg/)
+* [🇨🇿 Čeština (beta)](cs/)
+* [🇩🇪 Deutsch](de/)
+* [🇬🇷 Ελληνικά (beta)](el/)
+* [🇪🇸 Español (beta)](es/)
+* [🇮🇷 فارسی (beta)](fa/)
+* [🇫🇷 Français (beta)](fr/)
+* [🇭🇺 Magyar (beta)](hu/)
+* [🇦🇲 հայերեն (beta)](hy/)
+* [🇮🇹 Italiano (beta)](it/)
+* [🇯🇵 日本語](ja/)
+* [🇰🇵/🇰🇷 한국어 (beta)](ko/)
+* [🇵🇱 Polski](pl/)
+* [🇧🇷 Português-brasileiro](pt/)
+* [🇷🇺 Русский (beta)](ru/)
+* [🇸🇰 Slovenčina (beta)](sk/)
+* [🇹🇷 Türkçe (beta)](tr/)
+* [🇺🇦 Українська](uk/)
+* [🇨🇳 简体中文](zh/)
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 00000000000..fcdd44ca093
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,2 @@
+This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.
+To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/
\ No newline at end of file
diff --git a/Makefile b/Makefile
new file mode 100644
index 00000000000..6a480076486
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,111 @@
+LANG := en
+LANG_FILE := $(shell test -f .langs && echo .langs || echo LANGS.md)
+LANG_DATA := $(shell grep "$(LANG)/" $(LANG_FILE))
+LANG_NAME := $(shell echo "$(LANG_DATA)" | sed 's/.*\[\(.*\)\].*/\1/')
+
+define ebook_support
+ @if which ebook-convert 1> /dev/null; then\
+ npx honkit $(1) ./ ./djangogirls.$(1);\
+ else\
+ echo "Error: ebook-convert is not found";\
+ echo " * Follow the guide at https://honkit.netlify.app/ebook";\
+ echo " - For Debian/Ubuntu, Try: sudo apt install calibre";\
+ echo " - For MacOS, Try: brew install --cask calibre";\
+ echo " - For Windows and any other OS, Download from https://github.com/kovidgoyal/calibre/releases";\
+ false;\
+ fi
+endef
+
+help:
+ @echo
+ @echo "Usage: make command [LANG= Your username and password didn't match. Please try again.връзка
`, ще се прилага стилът `h1 a`. В този случай ние му казваме да промени цвета си на `#C25100`, което е тъмно оранжево. Или можете да поставите свой собствен цвят тук, но се уверете, че той има добър контраст на бял фон!
+
+Във CSS файл определяме стилове за елементи в HTML файла. Първият начин да идентифицираме елементите е с името на елемента. Може да ги запомните като тагове от секцията HTML. Неща като `a`, `h1` и `body` са примери за имена на елементи. Ние също така идентифицираме елементи по атрибут `class` или атрибут `id`. Class и id са имена, които сами давате на елемента. Класовете определят групи от елементи, а идентификаторите сочат конкретни елементи. Например, можете да идентифицирате следния маркер, като използвате името на тага `a`, класа `external_link` или id `link_to_wiki_page`:
+
+```html
+
+```
+
+Можете да прочетете повече за [CSS селектори в w3schools](http://www.w3schools.com/cssref/css_selectors.asp).
+
+Трябва също така да кажем на нашия HTML шаблон, че добавихме някои CSS. Отворете файла `blog/templates/blog/post_list.html` в редактора на кода и добавете този ред в самото начало:
+
+{% filename %}blog/templates/blog/post_list.html{% endfilename %}
+
+```html
+{% load static %}
+```
+
+Тук просто зареждаме статични файлове. :) Между таговете `` и ``, след връзките към CSS файловете на Bootstrap, добавете този ред:
+
+{% filename %}blog/templates/blog/post_list.html{% endfilename %}
+
+```html
+
+```
+
+Браузърът чете файловете в реда, в който са зададени, така че трябва да се уверим, че това е на правилното място. В противен случай кодът в нашия файл може да бъде редактиран от кода във файловете на Bootstrap. Току-що казахме на нашия шаблон къде се намира нашият CSS файл.
+
+Вашият файл сега трябва да изглежда така:
+
+{% filename %}blog/templates/blog/post_list.html{% endfilename %}
+
+```html
+{% load static %}
+
+
+ Django Girls Blog
+
Ако сега се опитате да посетите http://127.0.0.1:8000/, ще видите съобщение от рода на 'web page not available' . Това е така, защото сървърът (помните командата runserver`?) вече не е активен. Погледнете в конзолата на сървъра си и разберете защо.
+
+
+
+Конзолата ви показва грешка, но не се тревожете – това всъщност е много полезно: Казва ви, **че няма атрибут с име 'post_list'**. Това е името на изгледа, който Django се опитва да намери и използва, но ние не сме го създали все още. На този етап, вашият `/admin/` също няма да работи. Не се тревожете – ще стигнем и до там. Ако виждате съобщение с друга греша, опитайте се да презаредите уеб сървъра. За да направите това, в конзолния прозорец, където сте пуснали сървъра, натиснете Ctrl+C за да го спрете (Ctrl + C заедно). На Windows може би трябва да натиснете Ctrl+Break. След това трябва да презаредите уеб сървъра като напишете командата `python manage.py runserver`.
+
+> Ако искате да научите повече за Django URLconfs, вижте в официалната документация: https://docs.djangoproject.com/en/2.2/topics/http/urls/
\ No newline at end of file
diff --git a/bg/django_urls/images/error1.png b/bg/django_urls/images/error1.png
new file mode 100644
index 00000000000..50618fca3fe
Binary files /dev/null and b/bg/django_urls/images/error1.png differ
diff --git a/bg/django_urls/images/url.png b/bg/django_urls/images/url.png
new file mode 100644
index 00000000000..c22441e930e
Binary files /dev/null and b/bg/django_urls/images/url.png differ
diff --git a/bg/django_views/README.md b/bg/django_views/README.md
new file mode 100644
index 00000000000..02efa058ccc
--- /dev/null
+++ b/bg/django_views/README.md
@@ -0,0 +1,44 @@
+# Django views - време за създаване!
+
+Време е да премахнем пречката, която създадохме в последната глава! :)
+
+*view* е мястото, където поставяме "логиката" на приложението ни. Ще изиска информация от моделът, който създадохме по-рано и ще го подаде на шаблона. Ще създадем шаблон в следващата глава. Изгледите са просто Python фукнции, които са малко по-сложни от тези, които написахме в главата **Въведение в Python**.
+
+Изгледите са във файла `views.py`. Ние ще добавим първи си изглед към файла `blog/views.py`.
+
+## blog/views.py
+
+И така, нека отворим файла в редактора си видим какво има в него:
+
+{% filename %}blog/views.py{% endfilename %}
+
+```python
+from django.shortcuts import render
+
+# Create your views here.
+```
+
+Няма почти нищо все още.
+
+Помнете, че редовете, които започват с `#` са коментари – което означава, че тези редове няма да се четат от Python.
+
+Нека създадем *view* както коментара предлага да направим. Добавете следният минимален изглед под него:
+
+{% filename %}blog/views.py{% endfilename %}
+
+```python
+def post_list(request):
+ return render(request, 'blog/post_list.html', {})
+```
+
+Както забелязвате, създаваме фукнция (`def`) наречена `post_list`, която взима за стойност `request` ще върне друга функция `render`, взимайки стойността, шаблона и контекста.
+
+Запазете файла и отидете на http://127.0.0.1:8000/ за да видите какво имаме там.
+
+Друга грешка! Прочетете какво се случва сега:
+
+
+
+Това показва, че сървърът отново работи, но все още не изглежда както трябва, нали? Не се тревожете. Това е само страница с грешка, няма от какво да се страхувате! Също като съобщение с грешка в конзолата, тези са всъщност от голяма полза. Можете да прочетете, че *TemplateDoesNotExist*. Нека отстраним тази грешка и създадем шаблон в следващата глава!
+
+> Научете повече за Django изгледите като прочетете официалната документация: https://docs.djangoproject.com/en/2.2/topics/http/views/
\ No newline at end of file
diff --git a/bg/django_views/images/error.png b/bg/django_views/images/error.png
new file mode 100644
index 00000000000..1530c879cb5
Binary files /dev/null and b/bg/django_views/images/error.png differ
diff --git a/bg/dynamic_data_in_templates/README.md b/bg/dynamic_data_in_templates/README.md
new file mode 100644
index 00000000000..7268cc70b0b
--- /dev/null
+++ b/bg/dynamic_data_in_templates/README.md
@@ -0,0 +1,81 @@
+# Динамични данни в шаблоните
+
+Имаме различни парчета на места: `Post` моделът е дефиниран в `models.py`, имаме `post_list` във `views.py` и добавен шаблон. Но как всъщност ще направим, така че нашите публикации да се показват на HMTL шаблон? Защото това е, което искаме да направим – да вземем някакво съдържание (запазените модели в базата от данни) и да се показват хубаво на нашия шаблон, нали?
+
+Това е точно, което *views* трябва да правят: свързват моделите с шаблоните. В нашия изглед за `post_list` ще трябва да вземем моделите, които искаме да показваме и да ги предадем на шаблоните. В изгледа ние определяме какво (модел) ще се изобразява в шаблона.
+
+Добре, как ще го постигнем?
+
+Трябва да отворим `blog/views.py` в редактора си. До момента `post_list` изгледа е такъв:
+
+{% filename %}blog/views.py{% endfilename %}
+
+```python
+from django.shortcuts import render
+
+def post_list(request):
+ return render(request, 'blog/post_list.html', {})
+```
+
+Помните ли когато говорихме за вмъкване на код написан в различни файлове? Сега е моментът, в който трябва да вмъкнем модела, който създадохме в `models.py`. Ще добавим реда `from .models import Post` така:
+
+{% filename %}blog/views.py{% endfilename %}
+
+```python
+from django.shortcuts import render
+from .models import Post
+```
+
+Точката преди `models` означава настояща директория или настояща апликация. Двата файла `views.py` и `models.py` са в една и съща директория. Това означава, че можем да използваме `.` и името на файла (без разширението `.py`). Тогава въвеждаме името на модела (`Post`).
+
+Но след това какво? За да вземем всъщност публикация от `Post` модела ни трябва нещо наречено `QuerySet`.
+
+## QuerySet
+
+Вече трябва да сте запознати как работят QuerySets. Говорихме за тях в главата [Django ORM (QuerySets)](../django_orm/README.md).
+
+Сега искаме публикуваните ни блог постове сортирани по дата на публикуване, нали? Вече направихме това в главата QuerySets!
+
+{% filename %}blog/views.py{% endfilename %}
+
+```python
+Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
+```
+
+И така, нека да отворим файла `blog/views.py` в редактора и добавим този код към функцията `def post_list(request)` -- но нека не забравяме първо да добавим `from django.utils import timezone`:
+
+{% filename %}blog/views.py{% endfilename %}
+
+```python
+from django.shortcuts import render
+from django.utils import timezone
+from .models import Post
+
+def post_list(request):
+ posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
+ return render(request, 'blog/post_list.html', {})
+```
+
+Последната липсваща част е подаването на QuerySet постове към контекста на шаблона. Не се притеснявайте -- ще обясним как става в по-следваща глава.
+
+Моля забележете, че създадохме променлива за нашия QuerySet: `posts`. Ползвайте това като име на нашия QuerySet. От сега нататък можем да се отнасяме към него с това име.
+
+В `render` функцията имаме един параметър `request` (всичко се получава от потребителят чрез Internet) и друг даващ файла на шаблона (`'blog/post_list.html'`). Последният параметър, `{}`, е място в което може да добавим някакви неща, така че шаблона да ги използва. Трябва да им дадем имена (ще се придържаме към `'posts'` засега). :) Трябва да изглежда ето така: `{'posts': posts}`. Забележете, че частта преди `:` е низ; трябва да го заградите с кавички: `''`.
+
+И така накрая нашия файл `blog/views.py` трябва да изглежда така:
+
+{% filename %}blog/views.py{% endfilename %}
+
+```python
+from django.shortcuts import render
+from django.utils import timezone
+from .models import Post
+
+def post_list(request):
+ posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
+ return render(request, 'blog/post_list.html', {'posts': posts})
+```
+
+Това е! Време е да се върнем към нашия шаблон и да покажем на екрана QuerySet!
+
+Искате да прочетете малко повече за QuerySets в Django? Трябва да погледнете тук: https://docs.djangoproject.com/en/2.2/ref/models/querysets/
\ No newline at end of file
diff --git a/bg/extend_your_application/README.md b/bg/extend_your_application/README.md
new file mode 100644
index 00000000000..923f2555b66
--- /dev/null
+++ b/bg/extend_your_application/README.md
@@ -0,0 +1,215 @@
+{% set warning_icon = '' %}
+
+# Продължете апликацията си
+
+Вече завършихме всички различни стъпки необходими за създаването на нашия уеб сайт: знаем как да напишем модел, URL, изглед и шаблон. Знаем също и как да направим сайта ни хубав.
+
+Време е за практика!
+
+Първото нешо, което ни е необходимо за блога е очевидно страница, която да показва една публикация, нали така?
+
+Вече разполагаме с `Post` модел, така че няма нужда да правим промени в `models.py`.
+
+## Създайте връзка към шаблона със съдържанието на поста.
+
+Ще започнем като добавим връзка във файла `blog/templates/blog/post_list.html`. Отворете го в редактора си, като до момента трябва да изглежда по този начин: {% filename %}blog/templates/blog/post_list.html{% endfilename %}
+
+```html
+{% extends 'blog/base.html' %}
+
+{% block content %}
+ {% for post in posts %}
+
+ {% endfor %}
+{% endblock %}
+```
+
+{% raw %} Искаме да имаме връзка от заглавието на поста в листа с публикациите до страницата със съдържанието на поста. Нека променим ` създадохме URL правило наречено `post_detail`, което се отнася до изглед с име `views.post_detail`. Това означава, че Django ще очаква изглед функция наречена `post_detail` вътре в `blog/views.py`.
+
+Трябва да отворим `blog/views.py` в редактора и да добавим следния код близо до другите редове `from` :
+
+{% filename %}blog/views.py{% endfilename %}
+
+```python
+from django.shortcuts import render, get_object_or_404
+
+```
+
+И накрая на файла ще добавим нашия изглед (*view*):
+
+{% filename %}blog/views.py{% endfilename %}
+
+```python
+def post_detail(request, pk):
+ post = get_object_or_404(Post, pk=pk)
+ return render(request, 'blog/post_detail.html', {'post': post})
+```
+
+Да. Време е да презаредим страницата: http://127.0.0.1:8000/
+
+
+
+Работи! Но сега какво става, когато кликнете върху връзката със заглавието на поста?
+
+
+
+Оо, не! Друга грешка! Но вече знаем как да се справим с това, нали? Трябва да добавим нов шаблон!
+
+## Създайте шаблон за съдържанието на поста
+
+Ще създадем файл в `blog/templates/blog` наречен `post_detail.html`, и ще го отворим в редактора.
+
+Впишете следния код:
+
+{% filename %}blog/templates/blog/post_detail.html{% endfilename %}
+
+```html
+{% extends 'blog/base.html' %}
+
+{% block content %}
+ {{ post.title }}
`, така че да се свързва със съдържанието на страницата:{% endraw %}
+
+{% filename %}{{ warning_icon }} blog/templates/blog/post_list.html{% endfilename %}
+
+```html
+{{ post.title }}
+```
+
+{% raw %} Време е да обясним мистериозния код `{% url 'post_detail' pk=post.pk %}`. Може би забелязахте, че означението `{% %}` означава, че използваме Django шаблонни етикети. Този път ще изполваме такъв, който създава URL за нас! {% endraw %}
+
+`post_detail` частта означава, че Django трябва да очаква URL в `blog/urls.py` с име name=post_detail
+
+А какво за `pk=post.pk`? `pk` идва накратко от primary key, което е уникален идентификатор за всеки един запис в базата данни. Всеки Django модел има поле, което служи за негов първоначален код (primary key), и каквото и друго име да има, то може също да се съотнесе като "pk". Тъй като не уточнихме първоначалната стойност в нашия `Post` модел, Django създава един за нас (по подразбиране, полето "id" , съдържащо номер, който се увеличава при всеки запис, т.е. 1, 2, 3) и го добавя към полето на всеки от нашите постове. Можем да достигнем primary key като напишем `post.pk`, по същия начин достъпваме други полета (`title`, `author`, и т.н.) в нашия `Post` обект!
+
+Сега като отидем на http://127.0.0.1:8000/ ще видим грешка ( както се очаквкаше, тъй като все още нямаме URL или *view* за `post_detail`). Ще изглежда така:
+
+
+
+## Създаване на URL към съдържанието на поста
+
+Нека създадем URL в `urls.py` за нашия `post_detail` *view*!
+
+Искаме първия ни пост да бъде показван на този **URL**: http://127.0.0.1:8000/post/1/
+
+Сега да направим URL във файла `blog/urls.py`, който да насочва Django към *view* наречен `post_detail`, който ще показва целия блог пост. Отворете файла `blog/urls.py` в редактора си и добавете следния ред `path('post/
{{ post.text|linebreaksbr }}
+Hi there!
+It works!
+ + +``` + +Така, как изглежда уебсайта ви в момента? Отидете на: http://127.0.0.1:8000/ за да разберете + + + +Работи! Добра работа :) + +* Най-простия етикет `` е винаги в началото на една страница и `` е винаги в края и. Както може да видите, цялото съдържание на страницата е между отварящият `` и затварящият етикет `` +* `` е етикет за абзацни елементи; `
` затваря всеки един абзац + +## Глава и тяло на страницата (head и body) + +Всяка HTML страница е разделена на два елемена: **head** и **body**. + +* **head** е елемент, който съдържа информация относно документа, който е показан на екрана. + +* **body** е елемент, който съдържа всичко, което е показано като част от уеб страницата. + +Използваме `` за да кажем на търсачката за конфигурацията на страницата и `` какво точно е на страницата. + +Например, може да сложите заглавие на елемента вътре в `` ето така: + +{% filename %}blog/templates/blog/post_list.html{% endfilename %} + +```html + + +Hi there!
+It works!
+ + +``` + +Запазете файла и презаредете страницата. + + + +Забелязахте ли как търсачката ви разбра, че заглавието на блога е "Ola's blog"? Тълкува `Абзац
` +* `текст` набляга на текста +* `текст` удебелява текста +* `published: 14.06.2014, 12:14
+Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.
+published: 14.06.2014, 12:14
+Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut f.
+