-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathREADME
55 lines (38 loc) · 1.66 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
learnsanskrit.org
~~~~~~~~~~~~~~~~~
Source code for `learnsanskrit.org`.
Audience
--------
`learnsanskrit.org` is the top result on Google for "learn sanskrit" and
similar queries. Here is an approximate traffic breakdown by locale:
- India: 55%
- United States: 20%
- United Kingdom and Canada: 5%
Leaving aside tools, our most popular content is our beginner-friendly grammar
guide. Based on our analytics and the emails we receive from readers, our
community is primarily one of "informal learners" who study outside of a
traditional or university setting.
Technical design
----------------
`learnsanskrit.org` is served as a static website. Static websites are fast,
stable, and don't require any monitoring, so they're perfect for a project like
ours.
Internally, the site is a Flask app and has access to normal Flask features. At
deployment time, however, we use `flask-freeze` to convert all output to flat
files.
All of the site content is written in SML, a custom markup language that is
lightweight and simple. For details, see `lso/sml`.
Directories
-----------
api # All logic related to the API
build # Output directory when freezing
sml # Markup language implementation
static # Static resources
templates # HTML templates
view # Routes and view logic
content # /guide and /vyakarana content
data # various linguistic data
lso # main application logic
Site commands
-------------
See `Makefile` for build, lint, and test commands.