Mercurial > agora
annotate static/js/agora.js @ 137:00c71a6192de
Make line numbers work for real
This commit has a very long and tragic backstory. For details:
http://dellsystem.me/posts/line-numbering/
author | dellsystem <ilostwaldo@gmail.com> |
---|---|
date | Sat, 29 Sep 2012 18:03:07 -0400 |
parents | 2bca07be6e51 |
children | 4d358e1e3014 |
rev | line source |
---|---|
107 | 1 (function ($) { |
2 // Handle showing the login popup | |
3 var handleLoginLink = function () { | |
4 var loginLink = $('.login-link'); | |
5 | |
6 if (loginLink.length) { | |
7 loginLink.click(function () { | |
8 $('#login-popup').show(); | |
9 | |
10 return false; | |
11 }); | |
12 | |
13 $('#login-popup').click(function (event) { | |
14 // Only catch events in the outer, overlay div | |
15 if (event.target === this) { | |
16 $(this).hide(); | |
17 } | |
18 }); | |
19 } | |
20 }; | |
21 | |
22 $(document).ready(function () { | |
23 handleLoginLink(); | |
137
00c71a6192de
Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents:
107
diff
changeset
|
24 |
00c71a6192de
Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents:
107
diff
changeset
|
25 // Add in the line numbers (no JS fallback unfortunately) |
00c71a6192de
Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents:
107
diff
changeset
|
26 if ($('.snippet').length) { |
00c71a6192de
Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents:
107
diff
changeset
|
27 var counter = 1; |
00c71a6192de
Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents:
107
diff
changeset
|
28 |
00c71a6192de
Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents:
107
diff
changeset
|
29 $('.code-lines').children().each(function () { |
00c71a6192de
Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents:
107
diff
changeset
|
30 // Set the top offset to be the same as that of the line |
00c71a6192de
Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents:
107
diff
changeset
|
31 var div = '<p style="top: ' + this.offsetTop + 'px">' + |
00c71a6192de
Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents:
107
diff
changeset
|
32 '<a href="#l' + counter + '">' + counter + '</a></p>'; |
00c71a6192de
Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents:
107
diff
changeset
|
33 counter++; |
00c71a6192de
Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents:
107
diff
changeset
|
34 $('.line-counters').append(div); |
00c71a6192de
Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents:
107
diff
changeset
|
35 }); |
00c71a6192de
Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents:
107
diff
changeset
|
36 } |
107 | 37 }); |
38 })(jQuery); |