wysiwyg-rails 1.1.5 → 1.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +26 -1
- data/app/assets/javascripts/froala_editor.min.js +5 -5
- data/app/assets/javascripts/froala_editor_ie8.min.js +5 -0
- data/app/assets/javascripts/langs/ar.js +88 -0
- data/app/assets/javascripts/langs/cs.js +88 -0
- data/app/assets/javascripts/langs/da.js +88 -0
- data/app/assets/javascripts/langs/de.js +88 -0
- data/app/assets/javascripts/langs/en_ca.js +88 -0
- data/app/assets/javascripts/langs/en_gb.js +88 -0
- data/app/assets/javascripts/langs/en_us.js +88 -0
- data/app/assets/javascripts/langs/es.js +88 -0
- data/app/assets/javascripts/langs/fa.js +88 -0
- data/app/assets/javascripts/langs/fi.js +88 -0
- data/app/assets/javascripts/langs/fr.js +88 -0
- data/app/assets/javascripts/langs/hu.js +88 -0
- data/app/assets/javascripts/langs/id.js +88 -0
- data/app/assets/javascripts/langs/it.js +88 -0
- data/app/assets/javascripts/langs/ja.js +88 -0
- data/app/assets/javascripts/langs/ko.js +88 -0
- data/app/assets/javascripts/langs/nb.js +88 -0
- data/app/assets/javascripts/langs/nl.js +88 -0
- data/app/assets/javascripts/langs/pl.js +88 -0
- data/app/assets/javascripts/langs/pt_br.js +88 -0
- data/app/assets/javascripts/langs/pt_pt.js +88 -0
- data/app/assets/javascripts/langs/ro.js +88 -0
- data/app/assets/javascripts/langs/ru.js +88 -0
- data/app/assets/javascripts/langs/sv.js +88 -0
- data/app/assets/javascripts/langs/th.js +88 -0
- data/app/assets/javascripts/langs/tr.js +88 -0
- data/app/assets/javascripts/langs/zh_cn.js +88 -0
- data/app/assets/javascripts/langs/zh_tw.js +88 -0
- data/app/assets/javascripts/libs/beautify/beautify-css.js +384 -0
- data/app/assets/javascripts/libs/beautify/beautify-html.js +840 -0
- data/app/assets/javascripts/libs/beautify/beautify.js +1737 -0
- data/app/assets/javascripts/plugins/block_styles.min.js +5 -0
- data/app/assets/javascripts/plugins/colors.min.js +5 -0
- data/app/assets/javascripts/plugins/fonts/font_family.min.js +5 -0
- data/app/assets/javascripts/plugins/fonts/font_size.min.js +5 -0
- data/app/assets/javascripts/plugins/fonts/fonts.min.js +5 -0
- data/app/assets/javascripts/plugins/media_manager.min.js +5 -0
- data/app/assets/javascripts/plugins/tables.min.js +5 -0
- data/app/assets/javascripts/plugins/video.min.js +5 -0
- data/app/assets/stylesheets/froala_editor.min.css +2 -2
- data/app/assets/stylesheets/themes/dark.min.css +4 -0
- data/lib/wysiwyg-rails/version.rb +1 -1
- metadata +46 -5
@@ -0,0 +1,88 @@
|
|
1
|
+
/*!
|
2
|
+
* froala_editor v1.1.6 (http://editor.froala.com)
|
3
|
+
* Copyright 2014-2014 Froala
|
4
|
+
*/
|
5
|
+
|
6
|
+
/**
|
7
|
+
* Swedish
|
8
|
+
*/
|
9
|
+
|
10
|
+
$.Editable.LANGS['sv'] = {
|
11
|
+
translation: {
|
12
|
+
"Bold": "Fetstil",
|
13
|
+
"Italic": "Kursiv stil",
|
14
|
+
"Underline": "Understruken",
|
15
|
+
"Strikethrough": "Genomstruken",
|
16
|
+
"Font Size": "Storlek",
|
17
|
+
"Color": "F\u00e4rg",
|
18
|
+
"Background Color": "Bakgrundsf\u00e4rg",
|
19
|
+
"Text Color": "Textf\u00e4rg",
|
20
|
+
"Format Block": "Format",
|
21
|
+
"Normal": "Normal",
|
22
|
+
"Paragraph": "Br\u00f6dtext",
|
23
|
+
"Code": "Kod",
|
24
|
+
"Quote": "Blockcitat",
|
25
|
+
"Heading 1": "Rubrik 1",
|
26
|
+
"Heading 2": "Rubrik 2",
|
27
|
+
"Heading 3": "Rubrik 3",
|
28
|
+
"Heading 4": "Rubrik 4",
|
29
|
+
"Heading 5": "Rubrik 5",
|
30
|
+
"Heading 6": "Rubrik 6",
|
31
|
+
"Alignment": "Justering",
|
32
|
+
"Align Left": "V\u00e4nsterst\u00e4ll",
|
33
|
+
"Align Center": "Centrera",
|
34
|
+
"Align Right": "H\u00f6gerst\u00e4ll",
|
35
|
+
"Justify": "Justera",
|
36
|
+
"Numbered List": "Nummerlista",
|
37
|
+
"Bulleted List": "Punktlista",
|
38
|
+
"Indent Less": "Minska indrag",
|
39
|
+
"Indent More": "\u00d6ka indrag",
|
40
|
+
"Select All": "Markera allt",
|
41
|
+
"Insert Link": "Infoga l\u00e4nk",
|
42
|
+
"Insert Image": "Infoga bild",
|
43
|
+
"Insert Video": "Infoga video",
|
44
|
+
"Undo": "\u00c5ngra",
|
45
|
+
"Redo": "G\u00f6r om",
|
46
|
+
"Show HTML": "Visa HTML",
|
47
|
+
"Float Left": "V\u00e4nster",
|
48
|
+
"Float None": "Ingen",
|
49
|
+
"Float Right": "H\u00f6ger",
|
50
|
+
"Replace Image": "Ers\u00e4tt bild",
|
51
|
+
"Remove Image": "Ta bort bild",
|
52
|
+
"Title": "Titel",
|
53
|
+
"Insert image": "Infoga bild",
|
54
|
+
"Drop image": "Sl\u00e4ppa bild",
|
55
|
+
"or click": "eller klicka",
|
56
|
+
"Enter URL": "Ange URL",
|
57
|
+
"Please wait!": "V\u00e4nta!",
|
58
|
+
"Are you sure? Image will be deleted.": "\u00c4r du s\u00e4ker? Bild kommer att raderas.",
|
59
|
+
"UNLINK": "Ta bort l\u00e4nk",
|
60
|
+
"Open in new tab": "\u00d6ppna i ny flik",
|
61
|
+
"Type something": "Ange n\u00e5got",
|
62
|
+
"Cancel": "Avbryt",
|
63
|
+
"OK": "Ok",
|
64
|
+
"Manage images": "Hantera bilder",
|
65
|
+
"Delete": "Radera",
|
66
|
+
"Font Family": "Teckensnitt",
|
67
|
+
"Insert Horizontal Line": "Infoga horisontell linje",
|
68
|
+
"Table": "Tabell",
|
69
|
+
"Insert table": "Infoga tabell",
|
70
|
+
"Cell": "Cell",
|
71
|
+
"Row": "Rad",
|
72
|
+
"Column": "Kolumn",
|
73
|
+
"Delete table": "Radera tabell",
|
74
|
+
"Insert cell before": "Infoga cell innan",
|
75
|
+
"Insert cell after": "Infoga cell efter",
|
76
|
+
"Delete cell": "Radera cell",
|
77
|
+
"Merge cells": "Sammanfoga celler",
|
78
|
+
"Horizontal split": "Horisontell split",
|
79
|
+
"Vertical split": "Vertikal split",
|
80
|
+
"Insert row above": "Infoga rad f\u00f6re",
|
81
|
+
"Insert row below": "Infoga rad efter",
|
82
|
+
"Delete row": "Radera rad",
|
83
|
+
"Insert column before": "Infoga kollumn f\u00f6re",
|
84
|
+
"Insert column after": "Infoga kolumn efter",
|
85
|
+
"Delete column": "Radera kolumn"
|
86
|
+
},
|
87
|
+
direction: "ltr"
|
88
|
+
};
|
@@ -0,0 +1,88 @@
|
|
1
|
+
/*!
|
2
|
+
* froala_editor v1.1.6 (http://editor.froala.com)
|
3
|
+
* Copyright 2014-2014 Froala
|
4
|
+
*/
|
5
|
+
|
6
|
+
/**
|
7
|
+
* Thai
|
8
|
+
*/
|
9
|
+
|
10
|
+
$.Editable.LANGS['th'] = {
|
11
|
+
translation: {
|
12
|
+
"Bold": "\u0e15\u0e31\u0e27\u0e2b\u0e19\u0e32",
|
13
|
+
"Italic": "\u0e15\u0e31\u0e27\u0e40\u0e2d\u0e35\u0e22\u0e07",
|
14
|
+
"Underline": "\u0e02\u0e35\u0e14\u0e40\u0e2a\u0e49\u0e19\u0e43\u0e15\u0e49",
|
15
|
+
"Strikethrough": "\u0e02\u0e35\u0e14\u0e17\u0e31\u0e1a",
|
16
|
+
"Font Size": "\u0e02\u0e19\u0e32\u0e14\u0e41\u0e1a\u0e1a\u0e2d\u0e31\u0e01\u0e29\u0e23",
|
17
|
+
"Color": "\u0e2a\u0e35",
|
18
|
+
"Background Color": "\u0e2a\u0e35\u0e1e\u0e37\u0e49\u0e19\u0e2b\u0e25\u0e31\u0e07",
|
19
|
+
"Text Color": "\u0e2a\u0e35\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21",
|
20
|
+
"Format Block": "\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a",
|
21
|
+
"Normal": "\u0e1b\u0e01\u0e15\u0e34",
|
22
|
+
"Paragraph": "\u0e22\u0e48\u0e2d\u0e2b\u0e19\u0e49\u0e32",
|
23
|
+
"Code": "\u0e42\u0e04\u0e49\u0e14",
|
24
|
+
"Quote": "\u0e01\u0e32\u0e23\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07",
|
25
|
+
"Heading 1": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27 1",
|
26
|
+
"Heading 2": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27 2",
|
27
|
+
"Heading 3": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27 3",
|
28
|
+
"Heading 4": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27 4",
|
29
|
+
"Heading 5": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27 5",
|
30
|
+
"Heading 6": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27 6",
|
31
|
+
"Alignment": "\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e41\u0e19\u0e27",
|
32
|
+
"Align Left": "\u0e08\u0e31\u0e14\u0e0a\u0e34\u0e14\u0e0b\u0e49\u0e32\u0e22",
|
33
|
+
"Align Center": "\u0e08\u0e31\u0e14\u0e01\u0e36\u0e48\u0e07\u0e01\u0e25\u0e32\u0e07",
|
34
|
+
"Align Right": "\u0e08\u0e31\u0e14\u0e0a\u0e34\u0e14\u0e02\u0e27\u0e32",
|
35
|
+
"Justify": "\u0e40\u0e15\u0e47\u0e21\u0e41\u0e19\u0e27",
|
36
|
+
"Numbered List": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e40\u0e25\u0e02",
|
37
|
+
"Bulleted List": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2b\u0e31\u0e27\u0e02\u0e49\u0e2d\u0e22\u0e48\u0e2d\u0e22",
|
38
|
+
"Indent Less": "\u0e25\u0e14\u0e01\u0e32\u0e23\u0e40\u0e22\u0e37\u0e49\u0e2d\u0e07",
|
39
|
+
"Indent More": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e01\u0e32\u0e23\u0e40\u0e22\u0e37\u0e49\u0e2d\u0e07",
|
40
|
+
"Select All": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
|
41
|
+
"Insert Link": "\u0e41\u0e17\u0e23\u0e01\u0e25\u0e34\u0e07\u0e01\u0e4c",
|
42
|
+
"Insert Image": "\u0e41\u0e17\u0e23\u0e01\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e",
|
43
|
+
"Insert Video": "\u0e41\u0e17\u0e23\u0e01\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d",
|
44
|
+
"Undo": "\u0e40\u0e25\u0e34\u0e01\u0e17\u0e33",
|
45
|
+
"Redo": "\u0e17\u0e4d\u0e32\u0e0b\u0e49\u0e33",
|
46
|
+
"Show HTML": "\u0e41\u0e2a\u0e14\u0e07 HTML",
|
47
|
+
"Float Left": "\u0e0b\u0e49\u0e32\u0e22",
|
48
|
+
"Float None": "\u0e44\u0e21\u0e48\u0e21\u0e35",
|
49
|
+
"Float Right": "\u0e02\u0e27\u0e32",
|
50
|
+
"Replace Image": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48\u0e20\u0e32\u0e1e",
|
51
|
+
"Remove Image": "\u0e25\u0e1a\u0e20\u0e32\u0e1e",
|
52
|
+
"Title": "\u0e0a\u0e37\u0e48\u0e2d\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07",
|
53
|
+
"Insert image": "\u0e41\u0e17\u0e23\u0e01\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e",
|
54
|
+
"Drop image": "\u0e27\u0e32\u0e07\u0e20\u0e32\u0e1e",
|
55
|
+
"or click": "\u0e2b\u0e23\u0e37\u0e2d\u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48",
|
56
|
+
"Enter URL": "\u0e1b\u0e49\u0e2d\u0e19 URL",
|
57
|
+
"Please wait!": "\u0e01\u0e23\u0e38\u0e13\u0e32\u0e23\u0e2d\u0e2a\u0e31\u0e01\u0e04\u0e23\u0e39\u0e48!",
|
58
|
+
"Are you sure? Image will be deleted.": "\u0e04\u0e38\u0e13\u0e41\u0e19\u0e48\u0e43\u0e08\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48 \u0e20\u0e32\u0e1e\u0e08\u0e30\u0e16\u0e39\u0e01\u0e25\u0e1a",
|
59
|
+
"UNLINK": "\u0e40\u0e2d\u0e32\u0e25\u0e34\u0e07\u0e01\u0e4c\u0e2d\u0e2d\u0e01",
|
60
|
+
"Open in new tab": "\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e19\u0e41\u0e17\u0e47\u0e1a\u0e43\u0e2b\u0e21\u0e48",
|
61
|
+
"Type something": "\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e1a\u0e32\u0e07\u0e2a\u0e34\u0e48\u0e07\u0e1a\u0e32\u0e07\u0e2d\u0e22\u0e48\u0e32\u0e07",
|
62
|
+
"Cancel": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01",
|
63
|
+
"OK": "\u0e15\u0e01\u0e25\u0e07",
|
64
|
+
"Manage images": "\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e20\u0e32\u0e1e",
|
65
|
+
"Delete": "\u0e25\u0e1a",
|
66
|
+
"Font Family": "\u0e15\u0e23\u0e30\u0e01\u0e39\u0e25\u0e41\u0e1a\u0e1a\u0e2d\u0e31\u0e01\u0e29\u0e23",
|
67
|
+
"Insert Horizontal Line": "\u0e41\u0e17\u0e23\u0e01\u0e40\u0e2a\u0e49\u0e19\u0e41\u0e19\u0e27\u0e19\u0e2d\u0e19",
|
68
|
+
"Table": "\u0e15\u0e32\u0e23\u0e32\u0e07",
|
69
|
+
"Insert table": "\u0e41\u0e17\u0e23\u0e01\u0e15\u0e32\u0e23\u0e32\u0e07",
|
70
|
+
"Cell": "\u0e40\u0e0b\u0e25\u0e25\u0e4c",
|
71
|
+
"Row": "\u0e41\u0e16\u0e27",
|
72
|
+
"Column": "\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c",
|
73
|
+
"Delete table": "\u0e25\u0e1a\u0e15\u0e32\u0e23\u0e32\u0e07",
|
74
|
+
"Insert cell before": "\u0e43\u0e2a\u0e48\u0e21\u0e37\u0e2d\u0e16\u0e37\u0e2d\u0e01\u0e48\u0e2d\u0e19",
|
75
|
+
"Insert cell after": "\u0e43\u0e2a\u0e48\u0e21\u0e37\u0e2d\u0e16\u0e37\u0e2d\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01",
|
76
|
+
"Delete cell": "\u0e25\u0e1a\u0e40\u0e0b\u0e25\u0e25\u0e4c",
|
77
|
+
"Merge cells": "\u0e1c\u0e2a\u0e32\u0e19\u0e40\u0e0b\u0e25\u0e25\u0e4c",
|
78
|
+
"Horizontal split": "\u0e41\u0e22\u0e01\u0e41\u0e19\u0e27\u0e19\u0e2d\u0e19",
|
79
|
+
"Vertical split": "\u0e41\u0e22\u0e01\u0e43\u0e19\u0e41\u0e19\u0e27\u0e15\u0e31\u0e49\u0e07",
|
80
|
+
"Insert row above": "\u0e41\u0e17\u0e23\u0e01\u0e41\u0e16\u0e27\u0e14\u0e49\u0e32\u0e19\u0e1a\u0e19",
|
81
|
+
"Insert row below": "\u0e41\u0e17\u0e23\u0e01\u0e41\u0e16\u0e27\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07",
|
82
|
+
"Delete row": "\u0e25\u0e1a\u0e41\u0e16\u0e27",
|
83
|
+
"Insert column before": "\u0e41\u0e17\u0e23\u0e01\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c\u0e02\u0e49\u0e32\u0e07\u0e2b\u0e19\u0e49\u0e32",
|
84
|
+
"Insert column after": "\u0e41\u0e17\u0e23\u0e01\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c\u0e02\u0e49\u0e32\u0e07\u0e2b\u0e25\u0e31\u0e07",
|
85
|
+
"Delete column": "\u0e25\u0e1a\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c"
|
86
|
+
},
|
87
|
+
direction: "ltr"
|
88
|
+
};
|
@@ -0,0 +1,88 @@
|
|
1
|
+
/*!
|
2
|
+
* froala_editor v1.1.6 (http://editor.froala.com)
|
3
|
+
* Copyright 2014-2014 Froala
|
4
|
+
*/
|
5
|
+
|
6
|
+
/**
|
7
|
+
* Turkish
|
8
|
+
*/
|
9
|
+
|
10
|
+
$.Editable.LANGS['tr'] = {
|
11
|
+
translation: {
|
12
|
+
"Bold": "Kal\u0131n",
|
13
|
+
"Italic": "\u0130talik",
|
14
|
+
"Underline": "Alt\u0131 \u00e7izili",
|
15
|
+
"Strikethrough": "\u00dcst\u00fc \u00e7izili",
|
16
|
+
"Font Size": "Yaz\u0131tipi B\u00fcy\u00fckl\u00fc\u011f\u00fc",
|
17
|
+
"Color": "Rengi",
|
18
|
+
"Background Color": "Arkaplan rengi",
|
19
|
+
"Text Color": "Yaz\u0131 rengi",
|
20
|
+
"Format Block": "Bi\u00e7imler",
|
21
|
+
"Normal": "Normal",
|
22
|
+
"Paragraph": "Paragraf",
|
23
|
+
"Code": "Kod",
|
24
|
+
"Quote": "Al\u0131nt\u0131",
|
25
|
+
"Heading 1": "Ba\u015fl\u0131k 1",
|
26
|
+
"Heading 2": "Ba\u015fl\u0131k 2",
|
27
|
+
"Heading 3": "Ba\u015fl\u0131k 3",
|
28
|
+
"Heading 4": "Ba\u015fl\u0131k 4",
|
29
|
+
"Heading 5": "Ba\u015fl\u0131k 5",
|
30
|
+
"Heading 6": "Ba\u015fl\u0131k 6",
|
31
|
+
"Alignment": "Hizalama",
|
32
|
+
"Align Left": "Sola hizala",
|
33
|
+
"Align Center": "Ortala",
|
34
|
+
"Align Right": "Sa\u011fa hizala",
|
35
|
+
"Justify": "\u0130ki yana yasla",
|
36
|
+
"Numbered List": "S\u0131ral\u0131 liste",
|
37
|
+
"Bulleted List": "S\u0131ras\u0131z liste",
|
38
|
+
"Indent Less": "Girintiyi azalt",
|
39
|
+
"Indent More": "Girintiyi art\u0131r",
|
40
|
+
"Select All": "T\u00fcm\u00fcn\u00fc se\u00e7",
|
41
|
+
"Insert Link": "Ba\u011flant\u0131 ekle",
|
42
|
+
"Insert Image": "Resim ekle",
|
43
|
+
"Insert Video": "Video ekle",
|
44
|
+
"Undo": "Geri Al",
|
45
|
+
"Redo": "Yinele",
|
46
|
+
"Show HTML": "G\u00f6ster HTML",
|
47
|
+
"Float Left": "Sol",
|
48
|
+
"Float None": "Hi\u00e7biri",
|
49
|
+
"Float Right": "Sa\u011f",
|
50
|
+
"Replace Image": "Resim de\u011fi\u015ftirmek",
|
51
|
+
"Remove Image": "Resim kald\u0131r",
|
52
|
+
"Title": "Ba\u015fl\u0131k",
|
53
|
+
"Insert image": "Resim ekle",
|
54
|
+
"Drop image": "B\u0131rak resim",
|
55
|
+
"or click": "ya da t\u0131klay\u0131n",
|
56
|
+
"Enter URL": "URL'yi girin",
|
57
|
+
"Please wait!": "L\u00fctfen bekleyin!",
|
58
|
+
"Are you sure? Image will be deleted.": "Emin misin? Resim silinecektir.",
|
59
|
+
"UNLINK": "Ba\u011flant\u0131y\u0131 kald\u0131r",
|
60
|
+
"Open in new tab": "Yeni sekmede a\u00e7",
|
61
|
+
"Type something": "Bir \u015fey yaz\u0131n",
|
62
|
+
"Cancel": "\u0130ptal",
|
63
|
+
"OK": "Tamam",
|
64
|
+
"Manage images": "G\u00f6r\u00fcnt\u00fcleri y\u00f6netin",
|
65
|
+
"Delete": "Silmek",
|
66
|
+
"Font Family": "Yaz\u0131tipi Ailesi",
|
67
|
+
"Insert Horizontal Line": "Yatay \u00e7izgi ekleme",
|
68
|
+
"Table": "Tablo",
|
69
|
+
"Insert table": "Tablo ekle",
|
70
|
+
"Cell": "H\u00fccre",
|
71
|
+
"Row": "Sat\u0131r",
|
72
|
+
"Column": "S\u00fctun",
|
73
|
+
"Delete table": "Tabloyu sil",
|
74
|
+
"Insert cell before": "\u00d6nce h\u00fccre ekler",
|
75
|
+
"Insert cell after": "Sonra h\u00fccre ekler",
|
76
|
+
"Delete cell": "H\u00fccreyi silmek",
|
77
|
+
"Merge cells": "H\u00fccreleri birle\u015ftir",
|
78
|
+
"Horizontal split": "Yatay b\u00f6l\u00fcnm\u00fc\u015f",
|
79
|
+
"Vertical split": "Dikey b\u00f6l\u00fcnm\u00fc\u015f",
|
80
|
+
"Insert row above": "\u00d6ncesine yeni sat\u0131r ekle",
|
81
|
+
"Insert row below": "Sonras\u0131na yeni sat\u0131r ekle",
|
82
|
+
"Delete row": "Sat\u0131r\u0131 sil",
|
83
|
+
"Insert column before": "\u00d6ncesine yeni s\u00fctun ekle",
|
84
|
+
"Insert column after": "Sonras\u0131na yeni s\u00fctun ekle",
|
85
|
+
"Delete column": "S\u00fctunu sil"
|
86
|
+
},
|
87
|
+
direction: "ltr"
|
88
|
+
};
|
@@ -0,0 +1,88 @@
|
|
1
|
+
/*!
|
2
|
+
* froala_editor v1.1.6 (http://editor.froala.com)
|
3
|
+
* Copyright 2014-2014 Froala
|
4
|
+
*/
|
5
|
+
|
6
|
+
/**
|
7
|
+
* Simplified Chinese spoken in China.
|
8
|
+
*/
|
9
|
+
|
10
|
+
$.Editable.LANGS['zh_cn'] = {
|
11
|
+
translation: {
|
12
|
+
"Bold": "\u7c97\u4f53",
|
13
|
+
"Italic": "\u659c\u4f53",
|
14
|
+
"Underline": "\u4e0b\u5212\u7ebf",
|
15
|
+
"Strikethrough": "\u5220\u9664\u7ebf",
|
16
|
+
"Font Size": "\u5b57\u53f7",
|
17
|
+
"Color": "\u989c\u8272",
|
18
|
+
"Background Color": "\u80cc\u666f\u8272",
|
19
|
+
"Text Color": "\u6587\u5b57\u989c\u8272",
|
20
|
+
"Format Block": "\u683c\u5f0f",
|
21
|
+
"Normal": "\u6b63\u5e38",
|
22
|
+
"Paragraph": "\u6bb5\u843d",
|
23
|
+
"Code": "\u4ee3\u7801",
|
24
|
+
"Quote": "\u5f15\u7528",
|
25
|
+
"Heading 1": "\u6807\u98981",
|
26
|
+
"Heading 2": "\u6807\u98982",
|
27
|
+
"Heading 3": "\u6807\u98983",
|
28
|
+
"Heading 4": "\u6807\u98984",
|
29
|
+
"Heading 5": "\u6807\u98985",
|
30
|
+
"Heading 6": "\u6807\u98986",
|
31
|
+
"Alignment": "\u5bf9\u9f50\u65b9\u5f0f",
|
32
|
+
"Align Left": "\u5de6\u5bf9\u9f50",
|
33
|
+
"Align Center": "\u5c45\u4e2d",
|
34
|
+
"Align Right": "\u53f3\u5bf9\u9f50",
|
35
|
+
"Justify": "\u4e24\u7aef\u5bf9\u9f50",
|
36
|
+
"Numbered List": "\u7f16\u53f7\u5217\u8868",
|
37
|
+
"Bulleted List": "\u9879\u76ee\u7b26\u53f7",
|
38
|
+
"Indent Less": "\u51cf\u5c11\u7f29\u8fdb",
|
39
|
+
"Indent More": "\u589e\u52a0\u7f29\u8fdb",
|
40
|
+
"Select All": "\u5168\u9009",
|
41
|
+
"Insert Link": "\u63d2\u5165\u94fe\u63a5",
|
42
|
+
"Insert Image": "\u63d2\u5165\u56fe\u7247",
|
43
|
+
"Insert Video": "\u63d2\u5165\u89c6\u9891",
|
44
|
+
"Undo": "\u64a4\u6d88",
|
45
|
+
"Redo": "\u91cd\u590d",
|
46
|
+
"Show HTML": "\u663e\u793a\u7684HTML",
|
47
|
+
"Float Left": "\u5de6\u5bf9\u9f50",
|
48
|
+
"Float None": "\u65e0",
|
49
|
+
"Float Right": "\u53f3\u5bf9\u9f50",
|
50
|
+
"Replace Image": "\u66f4\u6362\u56fe\u50cf",
|
51
|
+
"Remove Image": "\u5220\u9664\u56fe\u50cf",
|
52
|
+
"Title": "\u6807\u9898",
|
53
|
+
"Insert image": "\u63d2\u5165\u56fe\u7247",
|
54
|
+
"Drop image": "\u56fe\u50cf\u62d6\u653e",
|
55
|
+
"or click": "\u6216\u70b9\u51fb",
|
56
|
+
"Enter URL": "\u8f93\u5165\u7f51\u5740",
|
57
|
+
"Please wait!": "\u8bf7\u7a0d\u7b49\uff01",
|
58
|
+
"Are you sure? Image will be deleted.": "\u4f60\u786e\u5b9a\u5417\uff1f\u56fe\u50cf\u5c06\u88ab\u5220\u9664\u3002",
|
59
|
+
"UNLINK": "\u5220\u9664\u94fe\u63a5",
|
60
|
+
"Open in new tab": "\u5f00\u542f\u5728\u65b0\u6807\u7b7e\u9875",
|
61
|
+
"Type something": "\u8f93\u5165\u4e00\u4e9b\u5185\u5bb9",
|
62
|
+
"Cancel": "\u53d6\u6d88",
|
63
|
+
"OK": "\u786e\u5b9a",
|
64
|
+
"Manage images": "\u7ba1\u7406\u56fe\u50cf",
|
65
|
+
"Delete": "\u5220\u9664",
|
66
|
+
"Font Family": "\u5b57\u4f53",
|
67
|
+
"Insert Horizontal Line": "\u63d2\u5165\u6c34\u5e73\u7ebf",
|
68
|
+
"Table": "\u8868\u683c",
|
69
|
+
"Insert table": "\u63d2\u5165\u8868\u683c",
|
70
|
+
"Cell": "\u5355\u5143\u683c",
|
71
|
+
"Row": "\u884c",
|
72
|
+
"Column": "\u5217",
|
73
|
+
"Delete table": "\u5220\u9664\u8868\u683c",
|
74
|
+
"Insert cell before": "\u524d\u63d2\u5165\u5355\u5143\u683c",
|
75
|
+
"Insert cell after": "\u540e\u63d2\u5165\u7535\u6c60",
|
76
|
+
"Delete cell": "\u5220\u9664\u5355\u5143\u683c",
|
77
|
+
"Merge cells": "\u5408\u5e76\u5355\u5143\u683c",
|
78
|
+
"Horizontal split": "\u6c34\u5e73\u5206\u5272",
|
79
|
+
"Vertical split": "\u5782\u76f4\u5206\u5272",
|
80
|
+
"Insert row above": "\u5728\u4e0a\u65b9\u63d2\u5165",
|
81
|
+
"Insert row below": "\u5728\u4e0b\u65b9\u63d2\u5165",
|
82
|
+
"Delete row": "\u5220\u9664\u884c",
|
83
|
+
"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165",
|
84
|
+
"Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165",
|
85
|
+
"Delete column": "\u5220\u9664\u5217"
|
86
|
+
},
|
87
|
+
direction: "ltr"
|
88
|
+
};
|
@@ -0,0 +1,88 @@
|
|
1
|
+
/*!
|
2
|
+
* froala_editor v1.1.6 (http://editor.froala.com)
|
3
|
+
* Copyright 2014-2014 Froala
|
4
|
+
*/
|
5
|
+
|
6
|
+
/**
|
7
|
+
* Traditional Chinese spoken in Taiwan.
|
8
|
+
*/
|
9
|
+
|
10
|
+
$.Editable.LANGS['zh_tw'] = {
|
11
|
+
translation: {
|
12
|
+
"Bold": "\u7c97\u9ad4",
|
13
|
+
"Italic": "\u659c\u9ad4",
|
14
|
+
"Underline": "\u5e95\u7dda",
|
15
|
+
"Strikethrough": "\u522a\u9664\u7dda",
|
16
|
+
"Font Size": "\u5b57\u578b\u5927\u5c0f",
|
17
|
+
"Color": "\u984f\u8272",
|
18
|
+
"Background Color": "\u80cc\u666f\u984f\u8272",
|
19
|
+
"Text Color": "\u6587\u5b57\u984f\u8272",
|
20
|
+
"Format Block": "\u683c\u5f0f",
|
21
|
+
"Normal": "\u6b63\u5e38",
|
22
|
+
"Paragraph": "\u6bb5\u843d",
|
23
|
+
"Code": "\u7a0b\u5f0f\u78bc",
|
24
|
+
"Quote": "\u5f15\u7528",
|
25
|
+
"Heading 1": "\u6a19\u984c 1",
|
26
|
+
"Heading 2": "\u6a19\u984c 2",
|
27
|
+
"Heading 3": "\u6a19\u984c 3",
|
28
|
+
"Heading 4": "\u6a19\u984c 4",
|
29
|
+
"Heading 5": "\u6a19\u984c 5",
|
30
|
+
"Heading 6": "\u6a19\u984c 6",
|
31
|
+
"Alignment": "\u5c0d\u9f4a",
|
32
|
+
"Align Left": "\u7f6e\u5de6\u5c0d\u9f4a",
|
33
|
+
"Align Center": "\u7f6e\u4e2d\u5c0d\u9f4a",
|
34
|
+
"Align Right": "\u7f6e\u53f3\u5c0d\u9f4a",
|
35
|
+
"Justify": "\u5de6\u53f3\u5c0d\u9f4a",
|
36
|
+
"Numbered List": "\u6578\u5b57\u6e05\u55ae",
|
37
|
+
"Bulleted List": "\u9805\u76ee\u6e05\u55ae",
|
38
|
+
"Indent Less": "\u6e1b\u5c11\u7e2e\u6392",
|
39
|
+
"Indent More": "\u589e\u52a0\u7e2e\u6392",
|
40
|
+
"Select All": "\u5168\u9078",
|
41
|
+
"Insert Link": "\u63d2\u5165\u9023\u7d50",
|
42
|
+
"Insert Image": "\u63d2\u5165\u5716\u7247",
|
43
|
+
"Insert Video": "\u63d2\u5165\u5f71\u97f3",
|
44
|
+
"Undo": "\u5fa9\u539f",
|
45
|
+
"Redo": "\u53d6\u6d88\u5fa9\u539f",
|
46
|
+
"Show HTML": "\u663e\u793a\u7684\u0048\u0054\u004d\u004c",
|
47
|
+
"Float Left": "\u5de6\u908a",
|
48
|
+
"Float None": "\u7121",
|
49
|
+
"Float Right": "\u53f3\u908a",
|
50
|
+
"Replace Image": "\u66f4\u6362\u56fe\u50cf",
|
51
|
+
"Remove Image": "\u5220\u9664\u56fe\u50cf",
|
52
|
+
"Title": "\u6a19\u984c",
|
53
|
+
"Insert image": "\u63d2\u5165\u5716\u7247",
|
54
|
+
"Drop image": "\u56fe\u50cf\u62d6\u653e",
|
55
|
+
"or click": "\u6216\u70b9\u51fb",
|
56
|
+
"Enter URL": "\u8f93\u5165\u7f51\u5740",
|
57
|
+
"Please wait!": "\u8bf7\u7a0d\u7b49\uff01",
|
58
|
+
"Are you sure? Image will be deleted.": "\u4f60\u786e\u5b9a\u5417\uff1f\u56fe\u50cf\u5c06\u88ab\u5220\u9664\u3002",
|
59
|
+
"UNLINK": "\u79fb\u9664\u9023\u7d50",
|
60
|
+
"Open in new tab": "\u5f00\u542f\u5728\u65b0\u6807\u7b7e\u9875",
|
61
|
+
"Type something": "\u8f93\u5165\u4e00\u4e9b\u5185\u5bb9",
|
62
|
+
"Cancel": "\u53d6\u6d88",
|
63
|
+
"OK": "\u78ba\u5b9a",
|
64
|
+
"Manage images": "\u7ba1\u7406\u5716\u50cf",
|
65
|
+
"Delete": "\u522a\u9664",
|
66
|
+
"Font Family": "\u5b57\u9ad4",
|
67
|
+
"Insert Horizontal Line": "\u63d2\u5165\u6c34\u5e73\u7dda",
|
68
|
+
"Table": "\u8868\u683c",
|
69
|
+
"Insert table": "\u63d2\u5165\u8868\u683c",
|
70
|
+
"Cell": "\u5355\u5143\u683c",
|
71
|
+
"Row": "\u884c",
|
72
|
+
"Column": "\u5217",
|
73
|
+
"Delete table": "\u5220\u9664\u8868\u683c",
|
74
|
+
"Insert cell before": "\u524d\u63d2\u5165\u55ae\u5143\u683c",
|
75
|
+
"Insert cell after": "\u5f8c\u63d2\u5165\u96fb\u6c60",
|
76
|
+
"Delete cell": "\u522a\u9664\u55ae\u5143\u683c",
|
77
|
+
"Merge cells": "\u5408\u4f75\u55ae\u5143\u683c",
|
78
|
+
"Horizontal split": "\u6c34\u5e73\u5206\u5272",
|
79
|
+
"Vertical split": "\u5782\u76f4\u5206\u5272",
|
80
|
+
"Insert row above": "\u5728\u4e0a\u65b9\u63d2\u5165",
|
81
|
+
"Insert row below": "\u5728\u4e0b\u65b9\u63d2\u5165",
|
82
|
+
"Delete row": "\u5220\u9664\u884c",
|
83
|
+
"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165",
|
84
|
+
"Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165",
|
85
|
+
"Delete column": "\u5220\u9664\u5217"
|
86
|
+
},
|
87
|
+
direction: "ltr"
|
88
|
+
};
|
@@ -0,0 +1,384 @@
|
|
1
|
+
/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */
|
2
|
+
/*
|
3
|
+
|
4
|
+
The MIT License (MIT)
|
5
|
+
|
6
|
+
Copyright (c) 2007-2013 Einar Lielmanis and contributors.
|
7
|
+
|
8
|
+
Permission is hereby granted, free of charge, to any person
|
9
|
+
obtaining a copy of this software and associated documentation files
|
10
|
+
(the "Software"), to deal in the Software without restriction,
|
11
|
+
including without limitation the rights to use, copy, modify, merge,
|
12
|
+
publish, distribute, sublicense, and/or sell copies of the Software,
|
13
|
+
and to permit persons to whom the Software is furnished to do so,
|
14
|
+
subject to the following conditions:
|
15
|
+
|
16
|
+
The above copyright notice and this permission notice shall be
|
17
|
+
included in all copies or substantial portions of the Software.
|
18
|
+
|
19
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
20
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
21
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
22
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
23
|
+
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
24
|
+
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
25
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
26
|
+
SOFTWARE.
|
27
|
+
|
28
|
+
|
29
|
+
CSS Beautifier
|
30
|
+
---------------
|
31
|
+
|
32
|
+
Written by Harutyun Amirjanyan, (amirjanyan@gmail.com)
|
33
|
+
|
34
|
+
Based on code initially developed by: Einar Lielmanis, <einar@jsbeautifier.org>
|
35
|
+
http://jsbeautifier.org/
|
36
|
+
|
37
|
+
Usage:
|
38
|
+
css_beautify(source_text);
|
39
|
+
css_beautify(source_text, options);
|
40
|
+
|
41
|
+
The options are (default in brackets):
|
42
|
+
indent_size (4) — indentation size,
|
43
|
+
indent_char (space) — character to indent with,
|
44
|
+
selector_separator_newline (true) - separate selectors with newline or
|
45
|
+
not (e.g. "a,\nbr" or "a, br")
|
46
|
+
end_with_newline (false) - end with a newline
|
47
|
+
|
48
|
+
e.g
|
49
|
+
|
50
|
+
css_beautify(css_source_text, {
|
51
|
+
'indent_size': 1,
|
52
|
+
'indent_char': '\t',
|
53
|
+
'selector_separator': ' ',
|
54
|
+
'end_with_newline': false,
|
55
|
+
});
|
56
|
+
*/
|
57
|
+
|
58
|
+
// http://www.w3.org/TR/CSS21/syndata.html#tokenization
|
59
|
+
// http://www.w3.org/TR/css3-syntax/
|
60
|
+
|
61
|
+
(function () {
|
62
|
+
function css_beautify(source_text, options) {
|
63
|
+
options = options || {};
|
64
|
+
var indentSize = options.indent_size || 4;
|
65
|
+
var indentCharacter = options.indent_char || ' ';
|
66
|
+
var selectorSeparatorNewline = (options.selector_separator_newline === undefined) ? true : options.selector_separator_newline;
|
67
|
+
var endWithNewline = (options.end_with_newline === undefined) ? false : options.end_with_newline;
|
68
|
+
|
69
|
+
// compatibility
|
70
|
+
if (typeof indentSize === "string") {
|
71
|
+
indentSize = parseInt(indentSize, 10);
|
72
|
+
}
|
73
|
+
|
74
|
+
|
75
|
+
// tokenizer
|
76
|
+
var whiteRe = /^\s+$/;
|
77
|
+
var wordRe = /[\w$\-_]/;
|
78
|
+
|
79
|
+
var pos = -1,
|
80
|
+
ch;
|
81
|
+
|
82
|
+
function next() {
|
83
|
+
ch = source_text.charAt(++pos);
|
84
|
+
return ch;
|
85
|
+
}
|
86
|
+
|
87
|
+
function peek() {
|
88
|
+
return source_text.charAt(pos + 1);
|
89
|
+
}
|
90
|
+
|
91
|
+
function eatString(endChar) {
|
92
|
+
var start = pos;
|
93
|
+
while (next()) {
|
94
|
+
if (ch === "\\") {
|
95
|
+
next();
|
96
|
+
next();
|
97
|
+
} else if (ch === endChar) {
|
98
|
+
break;
|
99
|
+
} else if (ch === "\n") {
|
100
|
+
break;
|
101
|
+
}
|
102
|
+
}
|
103
|
+
return source_text.substring(start, pos + 1);
|
104
|
+
}
|
105
|
+
|
106
|
+
function eatWhitespace() {
|
107
|
+
var start = pos;
|
108
|
+
while (whiteRe.test(peek())) {
|
109
|
+
pos++;
|
110
|
+
}
|
111
|
+
return pos !== start;
|
112
|
+
}
|
113
|
+
|
114
|
+
function skipWhitespace() {
|
115
|
+
var start = pos;
|
116
|
+
do {} while (whiteRe.test(next()));
|
117
|
+
return pos !== start + 1;
|
118
|
+
}
|
119
|
+
|
120
|
+
function eatComment(singleLine) {
|
121
|
+
var start = pos;
|
122
|
+
next();
|
123
|
+
while (next()) {
|
124
|
+
if (ch === "*" && peek() === "/") {
|
125
|
+
pos++;
|
126
|
+
break;
|
127
|
+
} else if (singleLine && ch === "\n") {
|
128
|
+
break;
|
129
|
+
}
|
130
|
+
}
|
131
|
+
|
132
|
+
return source_text.substring(start, pos + 1);
|
133
|
+
}
|
134
|
+
|
135
|
+
|
136
|
+
function lookBack(str) {
|
137
|
+
return source_text.substring(pos - str.length, pos).toLowerCase() ===
|
138
|
+
str;
|
139
|
+
}
|
140
|
+
|
141
|
+
function isCommentOnLine() {
|
142
|
+
var endOfLine = source_text.indexOf('\n', pos);
|
143
|
+
if (endOfLine === -1) {
|
144
|
+
return false;
|
145
|
+
}
|
146
|
+
var restOfLine = source_text.substring(pos, endOfLine);
|
147
|
+
return restOfLine.indexOf('//') !== -1;
|
148
|
+
}
|
149
|
+
|
150
|
+
// printer
|
151
|
+
var indentString = source_text.match(/^[\r\n]*[\t ]*/)[0];
|
152
|
+
var singleIndent = new Array(indentSize + 1).join(indentCharacter);
|
153
|
+
var indentLevel = 0;
|
154
|
+
var nestedLevel = 0;
|
155
|
+
|
156
|
+
function indent() {
|
157
|
+
indentLevel++;
|
158
|
+
indentString += singleIndent;
|
159
|
+
}
|
160
|
+
|
161
|
+
function outdent() {
|
162
|
+
indentLevel--;
|
163
|
+
indentString = indentString.slice(0, -indentSize);
|
164
|
+
}
|
165
|
+
|
166
|
+
var print = {};
|
167
|
+
print["{"] = function (ch) {
|
168
|
+
print.singleSpace();
|
169
|
+
output.push(ch);
|
170
|
+
print.newLine();
|
171
|
+
};
|
172
|
+
print["}"] = function (ch) {
|
173
|
+
print.newLine();
|
174
|
+
output.push(ch);
|
175
|
+
print.newLine();
|
176
|
+
};
|
177
|
+
|
178
|
+
print._lastCharWhitespace = function () {
|
179
|
+
return whiteRe.test(output[output.length - 1]);
|
180
|
+
};
|
181
|
+
|
182
|
+
print.newLine = function (keepWhitespace) {
|
183
|
+
if (!keepWhitespace) {
|
184
|
+
while (print._lastCharWhitespace()) {
|
185
|
+
output.pop();
|
186
|
+
}
|
187
|
+
}
|
188
|
+
|
189
|
+
if (output.length) {
|
190
|
+
output.push('\n');
|
191
|
+
}
|
192
|
+
if (indentString) {
|
193
|
+
output.push(indentString);
|
194
|
+
}
|
195
|
+
};
|
196
|
+
print.singleSpace = function () {
|
197
|
+
if (output.length && !print._lastCharWhitespace()) {
|
198
|
+
output.push(' ');
|
199
|
+
}
|
200
|
+
};
|
201
|
+
var output = [];
|
202
|
+
if (indentString) {
|
203
|
+
output.push(indentString);
|
204
|
+
}
|
205
|
+
/*_____________________--------------------_____________________*/
|
206
|
+
|
207
|
+
var insideRule = false;
|
208
|
+
var enteringConditionalGroup = false;
|
209
|
+
|
210
|
+
while (true) {
|
211
|
+
var isAfterSpace = skipWhitespace();
|
212
|
+
|
213
|
+
if (!ch) {
|
214
|
+
break;
|
215
|
+
} else if (ch === '/' && peek() === '*') { /* css comment */
|
216
|
+
print.newLine();
|
217
|
+
output.push(eatComment(), "\n", indentString);
|
218
|
+
var header = lookBack("");
|
219
|
+
if (header) {
|
220
|
+
print.newLine();
|
221
|
+
}
|
222
|
+
} else if (ch === '/' && peek() === '/') { // single line comment
|
223
|
+
output.push(eatComment(true), indentString);
|
224
|
+
} else if (ch === '@') {
|
225
|
+
// strip trailing space, if present, for hash property checks
|
226
|
+
var atRule = eatString(" ").replace(/ $/, '');
|
227
|
+
|
228
|
+
// pass along the space we found as a separate item
|
229
|
+
output.push(atRule, ch);
|
230
|
+
|
231
|
+
// might be a nesting at-rule
|
232
|
+
if (atRule in css_beautify.NESTED_AT_RULE) {
|
233
|
+
nestedLevel += 1;
|
234
|
+
if (atRule in css_beautify.CONDITIONAL_GROUP_RULE) {
|
235
|
+
enteringConditionalGroup = true;
|
236
|
+
}
|
237
|
+
}
|
238
|
+
} else if (ch === '{') {
|
239
|
+
eatWhitespace();
|
240
|
+
if (peek() === '}') {
|
241
|
+
next();
|
242
|
+
output.push(" {}");
|
243
|
+
} else {
|
244
|
+
indent();
|
245
|
+
print["{"](ch);
|
246
|
+
// when entering conditional groups, only rulesets are allowed
|
247
|
+
if (enteringConditionalGroup) {
|
248
|
+
enteringConditionalGroup = false;
|
249
|
+
insideRule = (indentLevel > nestedLevel);
|
250
|
+
} else {
|
251
|
+
// otherwise, declarations are also allowed
|
252
|
+
insideRule = (indentLevel >= nestedLevel);
|
253
|
+
}
|
254
|
+
}
|
255
|
+
} else if (ch === '}') {
|
256
|
+
outdent();
|
257
|
+
print["}"](ch);
|
258
|
+
insideRule = false;
|
259
|
+
if (nestedLevel) {
|
260
|
+
nestedLevel--;
|
261
|
+
}
|
262
|
+
} else if (ch === ":") {
|
263
|
+
eatWhitespace();
|
264
|
+
if (insideRule || enteringConditionalGroup) {
|
265
|
+
// 'property: value' delimiter
|
266
|
+
// which could be in a conditional group query
|
267
|
+
output.push(ch, " ");
|
268
|
+
} else {
|
269
|
+
if (peek() === ":") {
|
270
|
+
// pseudo-element
|
271
|
+
next();
|
272
|
+
output.push("::");
|
273
|
+
} else {
|
274
|
+
// pseudo-class
|
275
|
+
output.push(ch);
|
276
|
+
}
|
277
|
+
}
|
278
|
+
} else if (ch === '"' || ch === '\'') {
|
279
|
+
output.push(eatString(ch));
|
280
|
+
} else if (ch === ';') {
|
281
|
+
if (isCommentOnLine()) {
|
282
|
+
var beforeComment = eatString('/');
|
283
|
+
var comment = eatComment(true);
|
284
|
+
output.push(beforeComment, comment.substring(1, comment.length - 1), '\n', indentString);
|
285
|
+
} else {
|
286
|
+
output.push(ch, '\n', indentString);
|
287
|
+
}
|
288
|
+
} else if (ch === '(') { // may be a url
|
289
|
+
if (lookBack("url")) {
|
290
|
+
output.push(ch);
|
291
|
+
eatWhitespace();
|
292
|
+
if (next()) {
|
293
|
+
if (ch !== ')' && ch !== '"' && ch !== '\'') {
|
294
|
+
output.push(eatString(')'));
|
295
|
+
} else {
|
296
|
+
pos--;
|
297
|
+
}
|
298
|
+
}
|
299
|
+
} else {
|
300
|
+
if (isAfterSpace) {
|
301
|
+
print.singleSpace();
|
302
|
+
}
|
303
|
+
output.push(ch);
|
304
|
+
eatWhitespace();
|
305
|
+
}
|
306
|
+
} else if (ch === ')') {
|
307
|
+
output.push(ch);
|
308
|
+
} else if (ch === ',') {
|
309
|
+
eatWhitespace();
|
310
|
+
output.push(ch);
|
311
|
+
if (!insideRule && selectorSeparatorNewline) {
|
312
|
+
print.newLine();
|
313
|
+
} else {
|
314
|
+
print.singleSpace();
|
315
|
+
}
|
316
|
+
} else if (ch === ']') {
|
317
|
+
output.push(ch);
|
318
|
+
} else if (ch === '[') {
|
319
|
+
if (isAfterSpace) {
|
320
|
+
print.singleSpace();
|
321
|
+
}
|
322
|
+
output.push(ch);
|
323
|
+
} else if (ch === '=') { // no whitespace before or after
|
324
|
+
eatWhitespace();
|
325
|
+
output.push(ch);
|
326
|
+
} else {
|
327
|
+
if (isAfterSpace) {
|
328
|
+
print.singleSpace();
|
329
|
+
}
|
330
|
+
|
331
|
+
output.push(ch);
|
332
|
+
}
|
333
|
+
}
|
334
|
+
|
335
|
+
|
336
|
+
var sweetCode = output.join('').replace(/[\n ]+$/, '');
|
337
|
+
|
338
|
+
// establish end_with_newline
|
339
|
+
var should = endWithNewline;
|
340
|
+
var actually = /\n$/.test(sweetCode);
|
341
|
+
if (should && !actually) {
|
342
|
+
sweetCode += "\n";
|
343
|
+
} else if (!should && actually) {
|
344
|
+
sweetCode = sweetCode.slice(0, -1);
|
345
|
+
}
|
346
|
+
|
347
|
+
return sweetCode;
|
348
|
+
}
|
349
|
+
|
350
|
+
// https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule
|
351
|
+
css_beautify.NESTED_AT_RULE = {
|
352
|
+
"@page": true,
|
353
|
+
"@font-face": true,
|
354
|
+
"@keyframes": true,
|
355
|
+
// also in CONDITIONAL_GROUP_RULE below
|
356
|
+
"@media": true,
|
357
|
+
"@supports": true,
|
358
|
+
"@document": true
|
359
|
+
};
|
360
|
+
css_beautify.CONDITIONAL_GROUP_RULE = {
|
361
|
+
"@media": true,
|
362
|
+
"@supports": true,
|
363
|
+
"@document": true
|
364
|
+
};
|
365
|
+
|
366
|
+
/*global define */
|
367
|
+
if (typeof define === "function" && define.amd) {
|
368
|
+
// Add support for AMD ( https://github.com/amdjs/amdjs-api/wiki/AMD#defineamd-property- )
|
369
|
+
define([], function () {
|
370
|
+
return { css_beautify: css_beautify };
|
371
|
+
});
|
372
|
+
} else if (typeof exports !== "undefined") {
|
373
|
+
// Add support for CommonJS. Just put this file somewhere on your require.paths
|
374
|
+
// and you will be able to `var html_beautify = require("beautify").html_beautify`.
|
375
|
+
exports.css_beautify = css_beautify;
|
376
|
+
} else if (typeof window !== "undefined") {
|
377
|
+
// If we're running a web page and don't have either of the above, add our one global
|
378
|
+
window.css_beautify = css_beautify;
|
379
|
+
} else if (typeof global !== "undefined") {
|
380
|
+
// If we don't even have window, try global.
|
381
|
+
global.css_beautify = css_beautify;
|
382
|
+
}
|
383
|
+
|
384
|
+
}());
|