├── gawk
├── gawk-5.1.1
├── 실수값표현법.doc
├── cover_awk.png
├── cover_bash.png
├── cover_macro.png
├── cover_make.png
├── cover_sed.png
├── examples
├── cat.jpg
└── webserver.awk
├── images
├── array_for.png
├── array_if.png
├── debugging.gif
├── fflush_n.png
├── fflush_n2.png
├── fflush_y.png
├── workflow.png
├── buttons
│ ├── fs.png
│ ├── ofs.png
│ ├── ors.png
│ ├── rs.png
│ ├── fpat.png
│ ├── lint.png
│ ├── ofmt.png
│ ├── prec.png
│ ├── subsep.png
│ ├── binmode.png
│ ├── convfmt.png
│ ├── fieldwidths.png
│ ├── ignorecase.png
│ ├── roundmode.png
│ └── textdomain.png
├── close_file.png
├── close_pipe.png
├── extension_1.png
├── function_1.png
├── function_2.png
├── function_ex.png
├── named_pipe.mp4
├── tcp_ip_fork.png
├── tcp_ip_uri.png
├── close_coproc.png
├── data_example1.png
├── data_example2.png
├── data_example3.png
├── getline_pipe.png
├── number_regex.gif
├── proc_net_tcp.png
├── sort_example.png
└── control_statements
│ ├── for.png
│ ├── while.png
│ ├── if-else.png
│ ├── switch.png
│ └── do-while.png
├── builtin
├── images
│ ├── fflush_1.png
│ └── fflush_2.png
└── type.html
├── gitbook
├── images
│ ├── favicon.ico
│ └── apple-touch-icon-precomposed-152.png
├── fonts
│ └── fontawesome
│ │ ├── FontAwesome.otf
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.ttf
│ │ └── fontawesome-webfont.woff
└── plugins
│ ├── gitbook-plugin-search
│ ├── search.css
│ ├── search.js
│ └── lunr.min.js
│ ├── gitbook-plugin-sharing
│ └── buttons.js
│ ├── gitbook-plugin-highlight
│ ├── ebook.css
│ └── website.css
│ └── gitbook-plugin-fontsettings
│ ├── buttons.js
│ └── website.css
├── closing.md
├── patch
├── bug_reports.html
├── index.html
├── debugging.html
└── index2.html
/gawk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/gawk
--------------------------------------------------------------------------------
/gawk-5.1.1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/gawk-5.1.1
--------------------------------------------------------------------------------
/실수값표현법.doc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/실수값표현법.doc
--------------------------------------------------------------------------------
/cover_awk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/cover_awk.png
--------------------------------------------------------------------------------
/cover_bash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/cover_bash.png
--------------------------------------------------------------------------------
/cover_macro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/cover_macro.png
--------------------------------------------------------------------------------
/cover_make.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/cover_make.png
--------------------------------------------------------------------------------
/cover_sed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/cover_sed.png
--------------------------------------------------------------------------------
/examples/cat.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/examples/cat.jpg
--------------------------------------------------------------------------------
/images/array_for.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/array_for.png
--------------------------------------------------------------------------------
/images/array_if.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/array_if.png
--------------------------------------------------------------------------------
/images/debugging.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/debugging.gif
--------------------------------------------------------------------------------
/images/fflush_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/fflush_n.png
--------------------------------------------------------------------------------
/images/fflush_n2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/fflush_n2.png
--------------------------------------------------------------------------------
/images/fflush_y.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/fflush_y.png
--------------------------------------------------------------------------------
/images/workflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/workflow.png
--------------------------------------------------------------------------------
/images/buttons/fs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/buttons/fs.png
--------------------------------------------------------------------------------
/images/buttons/ofs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/buttons/ofs.png
--------------------------------------------------------------------------------
/images/buttons/ors.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/buttons/ors.png
--------------------------------------------------------------------------------
/images/buttons/rs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/buttons/rs.png
--------------------------------------------------------------------------------
/images/close_file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/close_file.png
--------------------------------------------------------------------------------
/images/close_pipe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/close_pipe.png
--------------------------------------------------------------------------------
/images/extension_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/extension_1.png
--------------------------------------------------------------------------------
/images/function_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/function_1.png
--------------------------------------------------------------------------------
/images/function_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/function_2.png
--------------------------------------------------------------------------------
/images/function_ex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/function_ex.png
--------------------------------------------------------------------------------
/images/named_pipe.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/named_pipe.mp4
--------------------------------------------------------------------------------
/images/tcp_ip_fork.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/tcp_ip_fork.png
--------------------------------------------------------------------------------
/images/tcp_ip_uri.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/tcp_ip_uri.png
--------------------------------------------------------------------------------
/images/buttons/fpat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/buttons/fpat.png
--------------------------------------------------------------------------------
/images/buttons/lint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/buttons/lint.png
--------------------------------------------------------------------------------
/images/buttons/ofmt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/buttons/ofmt.png
--------------------------------------------------------------------------------
/images/buttons/prec.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/buttons/prec.png
--------------------------------------------------------------------------------
/images/buttons/subsep.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/buttons/subsep.png
--------------------------------------------------------------------------------
/images/close_coproc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/close_coproc.png
--------------------------------------------------------------------------------
/images/data_example1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/data_example1.png
--------------------------------------------------------------------------------
/images/data_example2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/data_example2.png
--------------------------------------------------------------------------------
/images/data_example3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/data_example3.png
--------------------------------------------------------------------------------
/images/getline_pipe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/getline_pipe.png
--------------------------------------------------------------------------------
/images/number_regex.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/number_regex.gif
--------------------------------------------------------------------------------
/images/proc_net_tcp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/proc_net_tcp.png
--------------------------------------------------------------------------------
/images/sort_example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/sort_example.png
--------------------------------------------------------------------------------
/builtin/images/fflush_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/builtin/images/fflush_1.png
--------------------------------------------------------------------------------
/builtin/images/fflush_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/builtin/images/fflush_2.png
--------------------------------------------------------------------------------
/gitbook/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/gitbook/images/favicon.ico
--------------------------------------------------------------------------------
/images/buttons/binmode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/buttons/binmode.png
--------------------------------------------------------------------------------
/images/buttons/convfmt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/buttons/convfmt.png
--------------------------------------------------------------------------------
/images/buttons/fieldwidths.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/buttons/fieldwidths.png
--------------------------------------------------------------------------------
/images/buttons/ignorecase.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/buttons/ignorecase.png
--------------------------------------------------------------------------------
/images/buttons/roundmode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/buttons/roundmode.png
--------------------------------------------------------------------------------
/images/buttons/textdomain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/buttons/textdomain.png
--------------------------------------------------------------------------------
/images/control_statements/for.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/control_statements/for.png
--------------------------------------------------------------------------------
/images/control_statements/while.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/control_statements/while.png
--------------------------------------------------------------------------------
/images/control_statements/if-else.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/control_statements/if-else.png
--------------------------------------------------------------------------------
/images/control_statements/switch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/control_statements/switch.png
--------------------------------------------------------------------------------
/images/control_statements/do-while.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/images/control_statements/do-while.png
--------------------------------------------------------------------------------
/gitbook/fonts/fontawesome/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/gitbook/fonts/fontawesome/FontAwesome.otf
--------------------------------------------------------------------------------
/gitbook/fonts/fontawesome/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/gitbook/fonts/fontawesome/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/gitbook/fonts/fontawesome/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/gitbook/fonts/fontawesome/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/gitbook/fonts/fontawesome/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/gitbook/fonts/fontawesome/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/gitbook/images/apple-touch-icon-precomposed-152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mug896/awk-script/HEAD/gitbook/images/apple-touch-icon-precomposed-152.png
--------------------------------------------------------------------------------
/closing.md:
--------------------------------------------------------------------------------
1 | # 맺음말
2 |
3 |
4 | 텍스트 데이터는 사람에게는 간단히 볼 수 있는 장점이 있지만
5 | 컴퓨터 입장에서는 처리하는데 비효율적인 형식입니다.
6 | 가령 숫자를 가지고 연산을 하려면 텍스트 데이터는
7 | 먼저 스트링을 cpu 에서 처리할 수 있는 숫자로 변경을 해줘야 합니다.
8 | 데이터량이 많지 않으면 별문제가 되지 않겠지만 그렇지 않고
9 | 데이터 크기가 커지면 시간이 누적되어 차이가 많이 나게 됩니다.
10 |
11 | 따라서 데이터 사이즈가 크고 여러번 처리를 해야 된다면
12 | 데이터 처리 전용 툴인 database 를 이용하는 것이 효율적입니다.
13 | 처음 insert 하는데 시간이 걸리기는 하지만 이후에는
14 | 아무런 index 생성을 안해도 database 가 훨씬 빠릅니다.
15 | 단순히 데이터 처리작업을 하는데 여러가지 설정을 해야 하는 database server 를 사용하기보다는
16 | [sqlite3](http://www.sqlite.org/) 를 이용하는 것도 좋습니다.
17 | 데몬 프로세스가 생성되는 것도 아니고 shell 에서 일반 명령 사용하듯이 간단히 사용할 수 있습니다.
18 |
19 |
--------------------------------------------------------------------------------
/gitbook/plugins/gitbook-plugin-search/search.css:
--------------------------------------------------------------------------------
1 | .book .book-summary .book-search {
2 | padding: 6px;
3 | background: transparent;
4 | position: absolute;
5 | top: -50px;
6 | left: 0px;
7 | right: 0px;
8 | transition: top 0.5s ease;
9 | }
10 | .book .book-summary .book-search input,
11 | .book .book-summary .book-search input:focus,
12 | .book .book-summary .book-search input:hover {
13 | width: 100%;
14 | background: transparent;
15 | border: 1px solid transparent;
16 | box-shadow: none;
17 | outline: none;
18 | line-height: 22px;
19 | padding: 7px 4px;
20 | color: inherit;
21 | }
22 | .book.with-search .book-summary .book-search {
23 | top: 0px;
24 | }
25 | .book.with-search .book-summary ul.summary {
26 | top: 50px;
27 | }
28 |
--------------------------------------------------------------------------------
/patch:
--------------------------------------------------------------------------------
1 | diff -ruN a/mpfr.c b/mpfr.c
2 | --- a/mpfr.c 2019-08-29 03:54:14.000000000 +0900
3 | +++ b/mpfr.c 2020-07-08 14:00:38.477382839 +0900
4 | @@ -293,6 +293,17 @@
5 | else
6 | cp1 = cp;
7 |
8 | + /*
9 | + * Maybe "+" or "-" was the field. mpg_strtoui
10 | + * won't check for that and set errno, so we have
11 | + * to check manually.
12 | + */
13 | + if (*cp1 == '\0') {
14 | + *cpend = save;
15 | + mpg_zero(n);
16 | + return false;
17 | + }
18 | +
19 | if (do_nondec)
20 | base = get_numbase(cp1, cpend - cp1, use_locale);
21 |
22 | diff -ruN a/node.c b/node.c
23 | --- a/node.c 2020-02-07 05:52:57.000000000 +0900
24 | +++ b/node.c 2020-07-08 14:00:35.245287010 +0900
25 | @@ -315,11 +315,13 @@
26 | r = mpg_integer();
27 | mpz_set(r->mpg_i, n->mpg_i);
28 | r->flags = n->flags;
29 | + r->strndmode = MPFR_round_mode;
30 | } else if ((n->flags & MPFN) != 0) {
31 | r = mpg_float();
32 | int tval = mpfr_set(r->mpg_numbr, n->mpg_numbr, ROUND_MODE);
33 | IEEE_FMT(r->mpg_numbr, tval);
34 | r->flags = n->flags;
35 | + r->strndmode = MPFR_round_mode;
36 | } else {
37 | #endif
38 | getnode(r);
39 | @@ -342,6 +344,7 @@
40 | emalloc(r->stptr, char *, n->stlen + 1, "r_dupnode");
41 | memcpy(r->stptr, n->stptr, n->stlen);
42 | r->stptr[n->stlen] = '\0';
43 | + r->stlen = n->stlen;
44 | if ((n->flags & WSTRCUR) != 0) {
45 | r->wstlen = n->wstlen;
46 | emalloc(r->wstptr, wchar_t *, sizeof(wchar_t) * (n->wstlen + 1), "r_dupnode");
47 |
--------------------------------------------------------------------------------
/examples/webserver.awk:
--------------------------------------------------------------------------------
1 | @load "filefuncs"
2 | @load "readfile"
3 | BEGIN {
4 | RS = ORS = "\r\n"
5 | datefmt = "Date: %a, %d %b %Y %H:%M:%S %Z"
6 | socket = "/inet/tcp/8080/0/0"
7 | while ((socket |& getline) > 0) {
8 | if ( $1 == "GET" ) {
9 | print "GET : ", $2
10 | $2 = substr($2, 2)
11 | switch ($2) {
12 | case /\.(jpg|gif|png)$/ :
13 | sendImage($2)
14 | break
15 | default :
16 | sendHtml()
17 | }
18 | }
19 | }
20 | }
21 | function sendHtml( arr) {
22 | arr["type"] = "text/html"
23 | arr["content"] = "\
24 | \n\
25 |
', {
41 | 'class': 'book-search',
42 | 'role': 'search'
43 | });
44 |
45 | $searchInput = $('
', {
46 | 'type': 'text',
47 | 'class': 'form-control',
48 | 'val': value,
49 | 'placeholder': 'Type to search'
50 | });
51 |
52 | $searchInput.appendTo($searchForm);
53 | $searchForm.prependTo(gitbook.state.$book.find('.book-summary'));
54 | }
55 |
56 | // Return true if search is open
57 | function isSearchOpen() {
58 | return gitbook.state.$book.hasClass("with-search");
59 | }
60 |
61 | // Toggle the search
62 | function toggleSearch(_state) {
63 | if (isSearchOpen() === _state) return;
64 |
65 | gitbook.state.$book.toggleClass("with-search", _state);
66 |
67 | // If search bar is open: focus input
68 | if (isSearchOpen()) {
69 | gitbook.sidebar.toggle(true);
70 | $searchInput.focus();
71 | } else {
72 | $searchInput.blur();
73 | $searchInput.val("");
74 | gitbook.sidebar.filter(null);
75 | }
76 | }
77 |
78 | // Recover current search when page changed
79 | function recoverSearch() {
80 | var keyword = gitbook.storage.get("keyword", "");
81 |
82 | createForm(keyword);
83 |
84 | if (keyword.length > 0) {
85 | if(!isSearchOpen()) {
86 | toggleSearch();
87 | }
88 | gitbook.sidebar.filter(_.pluck(search(keyword), "path"));
89 | }
90 | };
91 |
92 |
93 | gitbook.events.bind("start", function(config) {
94 | // Pre-fetch search index and create the form
95 | fetchIndex();
96 | createForm();
97 |
98 | // Type in search bar
99 | $(document).on("keyup", ".book-search input", function(e) {
100 | var key = (e.keyCode ? e.keyCode : e.which);
101 | var q = $(this).val();
102 |
103 | if (key == 27) {
104 | e.preventDefault();
105 | toggleSearch(false);
106 | return;
107 | }
108 | if (q.length == 0) {
109 | gitbook.sidebar.filter(null);
110 | gitbook.storage.remove("keyword");
111 | } else {
112 | var results = search(q);
113 | gitbook.sidebar.filter(
114 | _.pluck(results, "path")
115 | );
116 | gitbook.storage.set("keyword", q);
117 | }
118 | });
119 |
120 | // Create the toggle search button
121 | gitbook.toolbar.createButton({
122 | icon: 'fa fa-search',
123 | label: 'Search',
124 | position: 'left',
125 | onClick: toggleSearch
126 | });
127 |
128 | // Bind keyboard to toggle search
129 | gitbook.keyboard.bind(['f'], toggleSearch)
130 | });
131 |
132 | gitbook.events.bind("page.change", recoverSearch);
133 | });
134 |
135 |
136 |
--------------------------------------------------------------------------------
/gitbook/plugins/gitbook-plugin-fontsettings/buttons.js:
--------------------------------------------------------------------------------
1 | require(["gitbook", "lodash", "jQuery"], function(gitbook, _, $) {
2 | var fontState;
3 |
4 | var THEMES = {
5 | "white": 0,
6 | "sepia": 1,
7 | "night": 2
8 | };
9 |
10 | var FAMILY = {
11 | "serif": 0,
12 | "sans": 1
13 | };
14 |
15 | // Save current font settings
16 | function saveFontSettings() {
17 | gitbook.storage.set("fontState", fontState);
18 | update();
19 | }
20 |
21 | // Increase font size
22 | function enlargeFontSize(e) {
23 | e.preventDefault();
24 | if (fontState.size >= 4) return;
25 |
26 | fontState.size++;
27 | saveFontSettings();
28 | };
29 |
30 | // Decrease font size
31 | function reduceFontSize(e) {
32 | e.preventDefault();
33 | if (fontState.size <= 0) return;
34 |
35 | fontState.size--;
36 | saveFontSettings();
37 | };
38 |
39 | // Change font family
40 | function changeFontFamily(index, e) {
41 | e.preventDefault();
42 |
43 | fontState.family = index;
44 | saveFontSettings();
45 | };
46 |
47 | // Change type of color
48 | function changeColorTheme(index, e) {
49 | e.preventDefault();
50 |
51 | var $book = $(".book");
52 |
53 | if (fontState.theme !== 0)
54 | $book.removeClass("color-theme-"+fontState.theme);
55 |
56 | fontState.theme = index;
57 | if (fontState.theme !== 0)
58 | $book.addClass("color-theme-"+fontState.theme);
59 |
60 | saveFontSettings();
61 | };
62 |
63 | function update() {
64 | var $book = gitbook.state.$book;
65 |
66 | $(".font-settings .font-family-list li").removeClass("active");
67 | $(".font-settings .font-family-list li:nth-child("+(fontState.family+1)+")").addClass("active");
68 |
69 | $book[0].className = $book[0].className.replace(/\bfont-\S+/g, '');
70 | $book.addClass("font-size-"+fontState.size);
71 | $book.addClass("font-family-"+fontState.family);
72 |
73 | if(fontState.theme !== 0) {
74 | $book[0].className = $book[0].className.replace(/\bcolor-theme-\S+/g, '');
75 | $book.addClass("color-theme-"+fontState.theme);
76 | }
77 | };
78 |
79 | function init(config) {
80 | var $bookBody, $book;
81 |
82 | //Find DOM elements.
83 | $book = gitbook.state.$book;
84 | $bookBody = $book.find(".book-body");
85 |
86 | // Instantiate font state object
87 | fontState = gitbook.storage.get("fontState", {
88 | size: config.size || 2,
89 | family: FAMILY[config.family || "sans"],
90 | theme: THEMES[config.theme || "white"]
91 | });
92 |
93 | update();
94 | };
95 |
96 |
97 | gitbook.events.bind("start", function(e, config) {
98 | var opts = config.fontsettings;
99 |
100 | // Create buttons in toolbar
101 | gitbook.toolbar.createButton({
102 | icon: 'fa fa-font',
103 | label: 'Font Settings',
104 | className: 'font-settings',
105 | dropdown: [
106 | [
107 | {
108 | text: 'A',
109 | className: 'font-reduce',
110 | onClick: reduceFontSize
111 | },
112 | {
113 | text: 'A',
114 | className: 'font-enlarge',
115 | onClick: enlargeFontSize
116 | }
117 | ],
118 | [
119 | {
120 | text: 'Serif',
121 | onClick: _.partial(changeFontFamily, 0)
122 | },
123 | {
124 | text: 'Sans',
125 | onClick: _.partial(changeFontFamily, 1)
126 | }
127 | ],
128 | [
129 | {
130 | text: 'White',
131 | onClick: _.partial(changeColorTheme, 0)
132 | },
133 | {
134 | text: 'Sepia',
135 | onClick: _.partial(changeColorTheme, 1)
136 | },
137 | {
138 | text: 'Night',
139 | onClick: _.partial(changeColorTheme, 2)
140 | }
141 | ]
142 | ]
143 | });
144 |
145 |
146 | // Init current settings
147 | init(opts);
148 | });
149 | });
150 |
151 |
152 |
--------------------------------------------------------------------------------
/gitbook/plugins/gitbook-plugin-fontsettings/website.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Theme 1
3 | */
4 | .color-theme-1 .dropdown-menu {
5 | background-color: #111111;
6 | border-color: #7e888b;
7 | }
8 | .color-theme-1 .dropdown-menu .dropdown-caret .caret-inner {
9 | border-bottom: 9px solid #111111;
10 | }
11 | .color-theme-1 .dropdown-menu .buttons {
12 | border-color: #7e888b;
13 | }
14 | .color-theme-1 .dropdown-menu .button {
15 | color: #afa790;
16 | }
17 | .color-theme-1 .dropdown-menu .button:hover {
18 | color: #73553c;
19 | }
20 | /*
21 | * Theme 2
22 | */
23 | .color-theme-2 .dropdown-menu {
24 | background-color: #2d3143;
25 | border-color: #272a3a;
26 | }
27 | .color-theme-2 .dropdown-menu .dropdown-caret .caret-inner {
28 | border-bottom: 9px solid #2d3143;
29 | }
30 | .color-theme-2 .dropdown-menu .buttons {
31 | border-color: #272a3a;
32 | }
33 | .color-theme-2 .dropdown-menu .button {
34 | color: #62677f;
35 | }
36 | .color-theme-2 .dropdown-menu .button:hover {
37 | color: #f4f4f5;
38 | }
39 | .book .book-header .font-settings .font-enlarge {
40 | line-height: 30px;
41 | font-size: 1.4em;
42 | }
43 | .book .book-header .font-settings .font-reduce {
44 | line-height: 30px;
45 | font-size: 1em;
46 | }
47 | .book.color-theme-1 .book-body {
48 | color: #704214;
49 | background: #f3eacb;
50 | }
51 | .book.color-theme-1 .book-body .page-wrapper .page-inner section {
52 | background: #f3eacb;
53 | }
54 | .book.color-theme-2 .book-body {
55 | color: #bdcadb;
56 | background: #1c1f2b;
57 | }
58 | .book.color-theme-2 .book-body .page-wrapper .page-inner section {
59 | background: #1c1f2b;
60 | }
61 | .book.font-size-0 .book-body .page-inner section {
62 | font-size: 1.2rem;
63 | }
64 | .book.font-size-1 .book-body .page-inner section {
65 | font-size: 1.4rem;
66 | }
67 | .book.font-size-2 .book-body .page-inner section {
68 | font-size: 1.6rem;
69 | }
70 | .book.font-size-3 .book-body .page-inner section {
71 | font-size: 2.2rem;
72 | }
73 | .book.font-size-4 .book-body .page-inner section {
74 | font-size: 4rem;
75 | }
76 | .book.font-family-0 {
77 | font-family: Georgia, serif;
78 | }
79 | .book.font-family-1 {
80 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
81 | }
82 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal {
83 | color: #704214;
84 | }
85 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal a {
86 | color: inherit;
87 | }
88 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1,
89 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2,
90 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h3,
91 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h4,
92 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h5,
93 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 {
94 | color: inherit;
95 | }
96 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1,
97 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2 {
98 | border-color: inherit;
99 | }
100 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 {
101 | color: inherit;
102 | }
103 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal hr {
104 | background-color: inherit;
105 | }
106 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal blockquote {
107 | border-color: inherit;
108 | }
109 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre,
110 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code {
111 | background: #fdf6e3;
112 | color: #657b83;
113 | border-color: #f8df9c;
114 | }
115 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal .highlight {
116 | background-color: inherit;
117 | }
118 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table th,
119 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table td {
120 | border-color: #f5d06c;
121 | }
122 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr {
123 | color: inherit;
124 | background-color: #fdf6e3;
125 | border-color: #444444;
126 | }
127 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) {
128 | background-color: #fbeecb;
129 | }
130 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal {
131 | color: #bdcadb;
132 | }
133 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal a {
134 | color: #3eb1d0;
135 | }
136 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1,
137 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2,
138 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h3,
139 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h4,
140 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h5,
141 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 {
142 | color: #fffffa;
143 | }
144 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1,
145 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2 {
146 | border-color: #373b4e;
147 | }
148 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 {
149 | color: #373b4e;
150 | }
151 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal hr {
152 | background-color: #373b4e;
153 | }
154 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal blockquote {
155 | border-color: #373b4e;
156 | }
157 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre,
158 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code {
159 | color: #9dbed8;
160 | background: #2d3143;
161 | border-color: #2d3143;
162 | }
163 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal .highlight {
164 | background-color: #282a39;
165 | }
166 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table th,
167 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table td {
168 | border-color: #3b3f54;
169 | }
170 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr {
171 | color: #b6c2d2;
172 | background-color: #2d3143;
173 | border-color: #3b3f54;
174 | }
175 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) {
176 | background-color: #35394b;
177 | }
178 | .book.color-theme-1 .book-header {
179 | color: #afa790;
180 | background: transparent;
181 | }
182 | .book.color-theme-1 .book-header .btn {
183 | color: #afa790;
184 | }
185 | .book.color-theme-1 .book-header .btn:hover {
186 | color: #73553c;
187 | background: none;
188 | }
189 | .book.color-theme-1 .book-header h1 {
190 | color: #704214;
191 | }
192 | .book.color-theme-2 .book-header {
193 | color: #7e888b;
194 | background: transparent;
195 | }
196 | .book.color-theme-2 .book-header .btn {
197 | color: #3b3f54;
198 | }
199 | .book.color-theme-2 .book-header .btn:hover {
200 | color: #fffff5;
201 | background: none;
202 | }
203 | .book.color-theme-2 .book-header h1 {
204 | color: #bdcadb;
205 | }
206 | .book.color-theme-1 .book-body .navigation {
207 | color: #afa790;
208 | }
209 | .book.color-theme-1 .book-body .navigation:hover {
210 | color: #73553c;
211 | }
212 | .book.color-theme-2 .book-body .navigation {
213 | color: #383f52;
214 | }
215 | .book.color-theme-2 .book-body .navigation:hover {
216 | color: #fffff5;
217 | }
218 | /*
219 | * Theme 1
220 | */
221 | .book.color-theme-1 .book-summary {
222 | color: #afa790;
223 | background: #111111;
224 | border-right: 1px solid rgba(0, 0, 0, 0.07);
225 | }
226 | .book.color-theme-1 .book-summary .book-search {
227 | background: transparent;
228 | }
229 | .book.color-theme-1 .book-summary .book-search input,
230 | .book.color-theme-1 .book-summary .book-search input:focus {
231 | border: 1px solid transparent;
232 | }
233 | .book.color-theme-1 .book-summary ul.summary li.divider {
234 | background: #7e888b;
235 | box-shadow: none;
236 | }
237 | .book.color-theme-1 .book-summary ul.summary li i.fa-check {
238 | color: #33cc33;
239 | }
240 | .book.color-theme-1 .book-summary ul.summary li.done > a {
241 | color: #877f6a;
242 | }
243 | .book.color-theme-1 .book-summary ul.summary li a,
244 | .book.color-theme-1 .book-summary ul.summary li span {
245 | color: #877f6a;
246 | background: transparent;
247 | font-weight: normal;
248 | }
249 | .book.color-theme-1 .book-summary ul.summary li.active > a,
250 | .book.color-theme-1 .book-summary ul.summary li a:hover {
251 | color: #704214;
252 | background: transparent;
253 | font-weight: normal;
254 | }
255 | /*
256 | * Theme 2
257 | */
258 | .book.color-theme-2 .book-summary {
259 | color: #bcc1d2;
260 | background: #2d3143;
261 | border-right: none;
262 | }
263 | .book.color-theme-2 .book-summary .book-search {
264 | background: transparent;
265 | }
266 | .book.color-theme-2 .book-summary .book-search input,
267 | .book.color-theme-2 .book-summary .book-search input:focus {
268 | border: 1px solid transparent;
269 | }
270 | .book.color-theme-2 .book-summary ul.summary li.divider {
271 | background: #272a3a;
272 | box-shadow: none;
273 | }
274 | .book.color-theme-2 .book-summary ul.summary li i.fa-check {
275 | color: #33cc33;
276 | }
277 | .book.color-theme-2 .book-summary ul.summary li.done > a {
278 | color: #62687f;
279 | }
280 | .book.color-theme-2 .book-summary ul.summary li a,
281 | .book.color-theme-2 .book-summary ul.summary li span {
282 | color: #c1c6d7;
283 | background: transparent;
284 | font-weight: 600;
285 | }
286 | .book.color-theme-2 .book-summary ul.summary li.active > a,
287 | .book.color-theme-2 .book-summary ul.summary li a:hover {
288 | color: #f4f4f5;
289 | background: #252737;
290 | font-weight: 600;
291 | }
292 |
--------------------------------------------------------------------------------
/gitbook/plugins/gitbook-plugin-search/lunr.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 0.5.12
3 | * Copyright (C) 2015 Oliver Nightingale
4 | * MIT Licensed
5 | * @license
6 | */
7 | !function(){var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.5.12",t.utils={},t.utils.warn=function(t){return function(e){t.console&&console.warn&&console.warn(e)}}(this),t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var t=Array.prototype.slice.call(arguments),e=t.pop(),n=t;if("function"!=typeof e)throw new TypeError("last argument must be a function");n.forEach(function(t){this.hasHandler(t)||(this.events[t]=[]),this.events[t].push(e)},this)},t.EventEmitter.prototype.removeListener=function(t,e){if(this.hasHandler(t)){var n=this.events[t].indexOf(e);this.events[t].splice(n,1),this.events[t].length||delete this.events[t]}},t.EventEmitter.prototype.emit=function(t){if(this.hasHandler(t)){var e=Array.prototype.slice.call(arguments,1);this.events[t].forEach(function(t){t.apply(void 0,e)})}},t.EventEmitter.prototype.hasHandler=function(t){return t in this.events},t.tokenizer=function(t){return arguments.length&&null!=t&&void 0!=t?Array.isArray(t)?t.map(function(t){return t.toLowerCase()}):t.toString().trim().toLowerCase().split(/[\s\-]+/):[]},t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.registeredFunctions[e];if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(e);if(-1==i)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(e);if(-1==i)throw new Error("Cannot find existingFn");this._stack.splice(i,0,n)},t.Pipeline.prototype.remove=function(t){var e=this._stack.indexOf(t);-1!=e&&this._stack.splice(e,1)},t.Pipeline.prototype.run=function(t){for(var e=[],n=t.length,i=this._stack.length,o=0;n>o;o++){for(var r=t[o],s=0;i>s&&(r=this._stack[s](r,o,t),void 0!==r);s++);void 0!==r&&e.push(r)}return e},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Vector=function(){this._magnitude=null,this.list=void 0,this.length=0},t.Vector.Node=function(t,e,n){this.idx=t,this.val=e,this.next=n},t.Vector.prototype.insert=function(e,n){this._magnitude=void 0;var i=this.list;if(!i)return this.list=new t.Vector.Node(e,n,i),this.length++;if(e
n.idx?n=n.next:(i+=e.val*n.val,e=e.next,n=n.next);return i},t.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},t.SortedSet=function(){this.length=0,this.elements=[]},t.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},t.SortedSet.prototype.add=function(){var t,e;for(t=0;t1;){if(r===t)return o;t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o]}return r===t?o:-1},t.SortedSet.prototype.locationFor=function(t){for(var e=0,n=this.elements.length,i=n-e,o=e+Math.floor(i/2),r=this.elements[o];i>1;)t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o];return r>t?o:t>r?o+1:void 0},t.SortedSet.prototype.intersect=function(e){for(var n=new t.SortedSet,i=0,o=0,r=this.length,s=e.length,a=this.elements,h=e.elements;;){if(i>r-1||o>s-1)break;a[i]!==h[o]?a[i]h[o]&&o++:(n.add(a[i]),i++,o++)}return n},t.SortedSet.prototype.clone=function(){var e=new t.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},t.SortedSet.prototype.union=function(t){var e,n,i;return this.length>=t.length?(e=this,n=t):(e=t,n=this),i=e.clone(),i.add.apply(i,n.toArray()),i},t.SortedSet.prototype.toJSON=function(){return this.toArray()},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.Store,this.tokenStore=new t.TokenStore,this.corpusTokens=new t.SortedSet,this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var t=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,t)},t.Index.prototype.off=function(t,e){return this.eventEmitter.removeListener(t,e)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;return n._fields=e.fields,n._ref=e.ref,n.documentStore=t.Store.load(e.documentStore),n.tokenStore=t.TokenStore.load(e.tokenStore),n.corpusTokens=t.SortedSet.load(e.corpusTokens),n.pipeline=t.Pipeline.load(e.pipeline),n},t.Index.prototype.field=function(t,e){var e=e||{},n={name:t,boost:e.boost||1};return this._fields.push(n),this},t.Index.prototype.ref=function(t){return this._ref=t,this},t.Index.prototype.add=function(e,n){var i={},o=new t.SortedSet,r=e[this._ref],n=void 0===n?!0:n;this._fields.forEach(function(n){var r=this.pipeline.run(t.tokenizer(e[n.name]));i[n.name]=r,t.SortedSet.prototype.add.apply(o,r)},this),this.documentStore.set(r,o),t.SortedSet.prototype.add.apply(this.corpusTokens,o.toArray());for(var s=0;s0&&(i=1+Math.log(this.documentStore.length/n)),this._idfCache[e]=i},t.Index.prototype.search=function(e){var n=this.pipeline.run(t.tokenizer(e)),i=new t.Vector,o=[],r=this._fields.reduce(function(t,e){return t+e.boost},0),s=n.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];n.forEach(function(e,n,s){var a=1/s.length*this._fields.length*r,h=this,l=this.tokenStore.expand(e).reduce(function(n,o){var r=h.corpusTokens.indexOf(o),s=h.idf(o),l=1,u=new t.SortedSet;if(o!==e){var c=Math.max(3,o.length-e.length);l=1/Math.log(c)}return r>-1&&i.insert(r,a*s*l),Object.keys(h.tokenStore.get(o)).forEach(function(t){u.add(t)}),n.union(u)},new t.SortedSet);o.push(l)},this);var a=o.reduce(function(t,e){return t.intersect(e)});return a.map(function(t){return{ref:t,score:i.similarity(this.documentVector(t))}},this).sort(function(t,e){return e.score-t.score})},t.Index.prototype.documentVector=function(e){for(var n=this.documentStore.get(e),i=n.length,o=new t.Vector,r=0;i>r;r++){var s=n.elements[r],a=this.tokenStore.get(s)[e].tf,h=this.idf(s);o.insert(this.corpusTokens.indexOf(s),a*h)}return o},t.Index.prototype.toJSON=function(){return{version:t.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},t.Index.prototype.use=function(t){var e=Array.prototype.slice.call(arguments,1);e.unshift(this),t.apply(this,e)},t.Store=function(){this.store={},this.length=0},t.Store.load=function(e){var n=new this;return n.length=e.length,n.store=Object.keys(e.store).reduce(function(n,i){return n[i]=t.SortedSet.load(e.store[i]),n},{}),n},t.Store.prototype.set=function(t,e){this.has(t)||this.length++,this.store[t]=e},t.Store.prototype.get=function(t){return this.store[t]},t.Store.prototype.has=function(t){return t in this.store},t.Store.prototype.remove=function(t){this.has(t)&&(delete this.store[t],this.length--)},t.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},t.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",o=n+"[^aeiouy]*",r=i+"[aeiou]*",s="^("+o+")?"+r+o,a="^("+o+")?"+r+o+"("+r+")?$",h="^("+o+")?"+r+o+r+o,l="^("+o+")?"+i,u=new RegExp(s),c=new RegExp(h),f=new RegExp(a),d=new RegExp(l),p=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,v=/^(.+?)eed$/,y=/^(.+?)(ed|ing)$/,g=/.$/,S=/(at|bl|iz)$/,w=new RegExp("([^aeiouylsz])\\1$"),x=new RegExp("^"+o+i+"[^aeiouwxy]$"),k=/^(.+?[^aeiou])y$/,b=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,E=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,_=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,F=/^(.+?)(s|t)(ion)$/,O=/^(.+?)e$/,P=/ll$/,N=new RegExp("^"+o+i+"[^aeiouwxy]$"),T=function(n){var i,o,r,s,a,h,l;if(n.length<3)return n;if(r=n.substr(0,1),"y"==r&&(n=r.toUpperCase()+n.substr(1)),s=p,a=m,s.test(n)?n=n.replace(s,"$1$2"):a.test(n)&&(n=n.replace(a,"$1$2")),s=v,a=y,s.test(n)){var T=s.exec(n);s=u,s.test(T[1])&&(s=g,n=n.replace(s,""))}else if(a.test(n)){var T=a.exec(n);i=T[1],a=d,a.test(i)&&(n=i,a=S,h=w,l=x,a.test(n)?n+="e":h.test(n)?(s=g,n=n.replace(s,"")):l.test(n)&&(n+="e"))}if(s=k,s.test(n)){var T=s.exec(n);i=T[1],n=i+"i"}if(s=b,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+t[o])}if(s=E,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+e[o])}if(s=_,a=F,s.test(n)){var T=s.exec(n);i=T[1],s=c,s.test(i)&&(n=i)}else if(a.test(n)){var T=a.exec(n);i=T[1]+T[2],a=c,a.test(i)&&(n=i)}if(s=O,s.test(n)){var T=s.exec(n);i=T[1],s=c,a=f,h=N,(s.test(i)||a.test(i)&&!h.test(i))&&(n=i)}return s=P,a=c,s.test(n)&&a.test(n)&&(s=g,n=n.replace(s,"")),"y"==r&&(n=r.toLowerCase()+n.substr(1)),n};return T}(),t.Pipeline.registerFunction(t.stemmer,"stemmer"),t.stopWordFilter=function(e){return e&&t.stopWordFilter.stopWords[e]!==e?e:void 0},t.stopWordFilter.stopWords={a:"a",able:"able",about:"about",across:"across",after:"after",all:"all",almost:"almost",also:"also",am:"am",among:"among",an:"an",and:"and",any:"any",are:"are",as:"as",at:"at",be:"be",because:"because",been:"been",but:"but",by:"by",can:"can",cannot:"cannot",could:"could",dear:"dear",did:"did","do":"do",does:"does",either:"either","else":"else",ever:"ever",every:"every","for":"for",from:"from",get:"get",got:"got",had:"had",has:"has",have:"have",he:"he",her:"her",hers:"hers",him:"him",his:"his",how:"how",however:"however",i:"i","if":"if","in":"in",into:"into",is:"is",it:"it",its:"its",just:"just",least:"least",let:"let",like:"like",likely:"likely",may:"may",me:"me",might:"might",most:"most",must:"must",my:"my",neither:"neither",no:"no",nor:"nor",not:"not",of:"of",off:"off",often:"often",on:"on",only:"only",or:"or",other:"other",our:"our",own:"own",rather:"rather",said:"said",say:"say",says:"says",she:"she",should:"should",since:"since",so:"so",some:"some",than:"than",that:"that",the:"the",their:"their",them:"them",then:"then",there:"there",these:"these",they:"they","this":"this",tis:"tis",to:"to",too:"too",twas:"twas",us:"us",wants:"wants",was:"was",we:"we",were:"were",what:"what",when:"when",where:"where",which:"which","while":"while",who:"who",whom:"whom",why:"why",will:"will","with":"with",would:"would",yet:"yet",you:"you",your:"your"},t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter"),t.trimmer=function(t){var e=t.replace(/^\W+/,"").replace(/\W+$/,"");return""===e?void 0:e},t.Pipeline.registerFunction(t.trimmer,"trimmer"),t.TokenStore=function(){this.root={docs:{}},this.length=0},t.TokenStore.load=function(t){var e=new this;return e.root=t.root,e.length=t.length,e},t.TokenStore.prototype.add=function(t,e,n){var n=n||this.root,i=t[0],o=t.slice(1);return i in n||(n[i]={docs:{}}),0===o.length?(n[i].docs[e.ref]=e,void(this.length+=1)):this.add(o,e,n[i])},t.TokenStore.prototype.has=function(t){if(!t)return!1;for(var e=this.root,n=0;n
2 |
3 |
4 |
5 |
6 |
7 |
8 |
14 |
15 |
16 |
17 |
18 | Bug reports | Introduction
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 |
56 |
57 |
58 |
59 |
60 |
61 |
68 |
69 |
70 |
657 |
658 |
659 |
660 |
670 |
671 |
672 |
673 |
674 |
675 |
676 |
677 | Bug reports
678 | 책 내용 중에 수정, 보완해야 될 부분이 있거나 또는 추가하면 좋을 내용이 있으시면 아래 github issues 게시판을 통해 알려주시면 감사하겠습니다.
679 | https://github.com/mug896/awk-script/issues
680 |
681 | 현재 gawk 5.1.0 버전까지 -M 옵션 사용시 버그가 있습니다. 버그 리포트를 보냈고 다음 버전에서 수정될 것 같습니다.
682 | 정식 버전이 나오기 전에 패치가 필요하신 분은 다음 파일을 받아서 gawk 소스에 적용하면 됩니다.
683 |
684 | 패치 파일 ( 현재 gawk maintainer 분이 보내준 패치입니다.) : patch
685 | 패치 적용한 실행파일 ( ubuntu 20.10 / x86_64 ) : gawk
686 |
687 |
688 | 위 버그는 gawk 5.1.1 버전에서 수정되었습니다. 5.1.1 버전을 사용하세요 : gawk
689 |
690 | Bash shell script 가이드
691 |
702 |
703 |
704 | Sed stream editor 가이드
705 |
716 |
717 |
718 |
719 | AWK script 가이드
720 |
731 |
732 |
733 | Make script 가이드
734 |
745 |
746 |
747 |
748 |
749 |
750 |
751 | Macro 가이드
752 |
763 |
764 |
765 |
766 |
767 |
768 |
769 |
770 |
771 |
772 |
773 |
774 |
775 |
776 |
777 |
778 |
779 |
780 |
781 |
782 |
783 |
784 |
785 |
786 |
787 |
788 |
789 |
790 |
791 |
792 |
793 |
794 |
795 |
796 |
797 |
798 |
799 |
800 |
801 |
807 |
808 |
809 |
810 |
811 |
812 |
--------------------------------------------------------------------------------
/builtin/type.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
14 |
15 |
16 |
17 |
18 | Type Functions | Introduction
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 |
56 |
57 |
58 |
59 |
60 |
61 |
68 |
69 |
70 |
657 |
658 |
659 |
660 |
670 |
671 |
672 |
673 |
674 |
675 |
676 |
677 | Type functions
678 | awk 는 실제 연산을 할 때는 숫자와 스트링의 구분이 있지만
679 | 내부적으로 관리하는 정보에는 단지 scalar 와 array 구분만 있습니다.
680 | 다음은 실행 중인 awk 에 설정되어 있는 identifiers 목록을 출력한 것입니다.
681 | $ awk '
682 | BEGIN {
683 | PROCINFO["sorted_in"] = "@ind_str_asc"
684 | for ( i in PROCINFO["identifiers"] )
685 | print i, PROCINFO["identifiers"][i]
686 | }' | column -t
687 | ARGC scalar
688 | ARGIND scalar
689 | ARGV array
690 | BINMODE scalar
691 | CONVFMT scalar
692 | ENVIRON array
693 | ERRNO scalar
694 | FIELDWIDTHS scalar
695 | FILENAME scalar
696 | FNR scalar
697 | FPAT scalar
698 | FS scalar
699 | FUNCTAB array
700 | IGNORECASE scalar
701 | LINT scalar
702 | NF scalar
703 | NR scalar
704 | OFMT scalar
705 | OFS scalar
706 | ORS scalar
707 | PREC scalar
708 | PROCINFO array
709 | RLENGTH scalar
710 | ROUNDMODE scalar
711 | RS scalar
712 | RSTART scalar
713 | RT scalar
714 | SUBSEP scalar
715 | SYMTAB array
716 | TEXTDOMAIN scalar
717 | and builtin
718 | asort builtin
719 | asorti builtin
720 | atan2 builtin
721 | bindtextdomain builtin
722 | close builtin
723 | compl builtin
724 | cos builtin
725 | dcgettext builtin
726 | dcngettext builtin
727 | exp builtin
728 | extension builtin
729 | fflush builtin
730 | gensub builtin
731 | gsub builtin
732 | i untyped
733 | index builtin
734 | int builtin
735 | isarray builtin
736 | length builtin
737 | log builtin
738 | lshift builtin
739 | match builtin
740 | mktime builtin
741 | or builtin
742 | patsplit builtin
743 | rand builtin
744 | rshift builtin
745 | sin builtin
746 | split builtin
747 | sprintf builtin
748 | sqrt builtin
749 | srand builtin
750 | strftime builtin
751 | strtonum builtin
752 | sub builtin
753 | substr builtin
754 | system builtin
755 | systime builtin
756 | tolower builtin
757 | toupper builtin
758 | xor builtin
759 |
760 | isarray( x )
761 | 이 함수는 다차원 배열을 다룰 때 해당 원소가 array 인지 scalar 인지 테스트할 때나
762 | 함수에 전달된 인수가 array 인지 scalar 인지 테스트할 때 사용할 수 있습니다.
763 |
764 |
765 |
766 |
767 |
768 |
769 |
770 |
771 |
772 |
773 |
774 |
775 |
776 |
777 |
778 |
779 |
780 |
781 |
782 |
783 |
784 |
785 |
786 |
787 |
788 |
789 |
790 |
791 |
792 |
793 |
794 |
795 |
796 |
797 |
798 |
799 |
800 |
806 |
807 |
808 |
809 |
810 |
811 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
14 |
15 |
16 |
17 |
18 | Introduction | Introduction
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 |
56 |
57 |
58 |
59 |
66 |
67 |
68 |
655 |
656 |
657 |
658 |
668 |
669 |
670 |
671 |
672 |
673 |
674 |
675 |
676 | Introduction
677 | Sed 가 텍스트를 처리하는데 있어서 훌륭한 툴이기는 하지만 한가지 단점이
678 | 연산을 할수가 없다는 것입니다.
679 | 가령 foo 라는 단어가 몇번 나왔는지 센다거나 숫자로된 스트링을 모두 더해서
680 | 합계를 구하려고 할때는 awk 를 사용해야 합니다.
681 | awk 는 sed 와 같이 텍스트 스트림을 입력받아 처리할 수 있는 스트림 에디터인데
682 | 내부적으로 연산자가 있고 변수와 함수를 사용할 수 있어서
683 | 필요한 데이터 조작을 쉽게 처리할 수가 있습니다.
684 | ( sed 가 원시적인 프로그래밍 언어라면 awk 는 그보다 좀 더 발전된 형태? )
685 | awk 의 장점은 기존에 프로그래밍 경험이 있고 shell script 에 대한 지식이 있으면
686 | 실제 사용하는데 많은 시간이 들지 않는다는 것입니다.
687 | 예를 들어 입, 출력을 shell 에서와 같이 pipe 와 redirection 문자를 이용해 처리합니다.
688 | awk 는 실행하기 위해 꼭 데이터 입력 스트림이 필요하지 않습니다.
689 | BEGIN 블록을 이용하면 입력 스트림 없이도 독자적으로 스크립트를 실행시킬 수가 있습니다.
690 | awk 는 텍스트 조작에 필요한 스트링 함수 외에도 numeric, i/o, time 같은 함수들과
691 | socket 연결 기능도 제공하므로 데이터 스트림을 처리할 때뿐만 아니라
692 | 독립적인 프로그램 작성용으로도 활용할 수가 있습니다.
693 | awk 는 1970년대에 Bell 연구소에서 Alfred Aho, Peter Weinberger, Brian Kernighan
694 | 세 사람에 의해 처음 만들어졌는데 awk 라는 이름은 이 세 사람 이름의 첫 글자를 따서 만들었다고 합니다.
695 | Brian Kernighan 은 awk 를 만든 이유에 대해
696 | "필요한 프로그램을 단 몇 줄의 라인으로도 쉽게 만들 수 있게 하려고.." 라고 했는데요.
697 | 실제 awk 를 사용해보면 이 말의 의미를 알수가 있습니다.
698 | Ubuntu Linux 에서 GNU Awk version 4.2.1 를 이용하여 설명하였습니다.
699 |
700 | 필요에 따라 수시로 업데이트 되므로 파일을 다운로드하는 것보다는 웹에서 보는 것이 좋습니다.
701 | 흰색 바탕이 너무 밝을 경우 좌측 상단에 보면 어두운 바탕으로 테마를 변경할 수 있습니다.
702 | ( 참고로 페이지는 Night 모드에서 작성하였습니다. )
703 |
704 |
705 |
706 |
707 |
708 |
709 |
710 |
711 |
712 |
713 |
714 |
715 |
716 |
717 |
718 |
719 |
720 |
721 |
722 |
723 |
724 |
725 |
726 |
727 |
728 |
729 |
730 |
731 |
732 |
733 |
734 |
735 |
736 |
737 |
738 |
744 |
745 |
746 |
747 |
748 |
749 |
--------------------------------------------------------------------------------
/debugging.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
14 |
15 |
16 |
17 |
18 | Debugging | Introduction
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 |
56 |
57 |
58 |
59 |
60 |
61 |
68 |
69 |
70 |
657 |
658 |
659 |
660 |
670 |
671 |
672 |
673 |
674 |
675 |
676 |
677 | Debugging
678 | 아래의 스크립트는 어디가 잘못되었을까요?
679 | 자세히 보면 getine( getline ), prit( print ) 에 typo 오류가 있습니다.
680 | 하지만 이것은 awk 문법에 있어서 변수로 취급되어 오류가 되지 않기 때문에
681 | 값이 아무것도 표시되지 않을 뿐이지 정상적으로 실행이 됩니다.
682 | $ awk 'BEGIN { getine var < "file1"; prit var }'
683 | $
684 |
685 | 이때 --lint 옵션을 사용하면 기존에는 볼 수 없었던 다양한 메시지를 볼 수 있습니다.
686 | $ awk --lint 'BEGIN { getine var < "file1"; prit var}'
687 | awk: cmd. line:1 : warning: statement may have no effect
688 | awk: warning: statement may have no effect
689 | awk: cmd. line:1 : warning: reference to uninitialized variable 'getine'
690 | awk: cmd. line:1 : warning: reference to uninitialized variable 'var'
691 | awk: cmd. line:1 : warning: reference to uninitialized variable 'prit'
692 | awk: cmd. line:1 : warning: reference to uninitialized variable 'var'
693 |
694 | awk 는 실행파일이 1M 도 안되는데 (660k 정도) 자체 내장 디버거가 있습니다.
695 | 이전에 gdb 를 사용해본 경험이 있으면 어렵지 않게 사용하실 수 있습니다.
696 | readline 라이브러리를 사용하므로 shell 에서처럼 history 와 라인 에디팅 기능을 사용할 수 있습니다.
697 | 다음은 실제 디버깅을 하는 영상입니다. 디버깅을 할때는 항상 코드를 파일로 만들어서 해야 합니다.
698 |
699 | -o, --pretty-print 옵션을 이용해 파일을 생성할 수 있습니다.
700 |
701 | $ cat transpose.awk
702 | {
703 | for (i=1 ; i<=NF; i++)
704 | r[i]=r[i] sep $i
705 | sep=FS
706 | }
707 | END {
708 | for (i=1 ; i<=NF; i++)
709 | print r[i]
710 | }
711 | ..................................
712 |
713 | $ cat matrix
714 | a1;a2;a3;a4;a5
715 | b1;b2;b3;b4;b5
716 | c1;c2;c3;c4;c5
717 | d1;d2;d3;d4;d5
718 | ..................................
719 |
720 | $ awk -F\; -f transpose.awk matrix
721 | a1;b1;c1;d1
722 | a2;b2;c2;d2
723 | a3;b3;c3;d3
724 | a4;b4;c4;d4
725 | a5;b5;c5;d5
726 | ..................................
727 |
728 |
729 | $ awk -D -F\; -f transpose.awk matrix
730 | gawk> ....
731 |
732 | [ 예제 출처 ] http://backreference.org/2010/02/10/idiomatic-awk/
733 | VIDEO
734 |
735 | Main Debugger Commands
736 | https://www.gnu.org/software/gawk/manual/html_node/Debugger.html
737 |
745 |
746 | Profiling
747 | https://www.gnu.org/software/gawk/manual/html_node/Profiling.html
748 |
749 |
750 |
751 |
752 |
753 |
754 |
755 |
756 |
757 |
758 |
759 |
760 |
761 |
762 |
763 |
764 |
765 |
766 |
767 |
768 |
769 |
770 |
771 |
772 |
773 |
774 |
775 |
776 |
777 |
778 |
779 |
780 |
781 |
782 |
783 |
784 |
785 |
791 |
792 |
793 |
794 |
795 |
796 |
--------------------------------------------------------------------------------
/index2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
14 |
15 |
16 |
17 |
18 | Index | Introduction
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 |
56 |
57 |
58 |
59 |
60 |
61 |
68 |
69 |
70 |
657 |
658 |
659 |
660 |
670 |
671 |
672 |
673 |
674 |
675 |
676 |
677 | Index
678 | 컴퓨터가 속도가 빠르다고 하지만 처리해야 될 데이터량이 많아지면
679 | 속도가 느려질 수밖에 없는데요.
680 | 이때 사용할 수 있는 방법이 index 입니다.
681 | index 는 일종에 특정 컬럼 값을 중심으로 미리 정렬을 해놓는 것입니다.
682 | 레코드가 정렬되어 있다고 가정하면 특정 연산을 빠르게
683 | 처리할 수 있고 메모리 사용량도 줄일 수가 있습니다.
684 |
685 | ORDER BY amount LIMIT 100 연산을 할 경우
686 |
687 | 레코드가 amount 값을 중심으로 정렬 되어있다고 가정하면
688 | 전체 데이터를 검색할 필요 없이 그냥 순차적으로 앞에서 100 개의 레코드를 출력하고
689 | 바로 연산을 종료할 수 있습니다.
690 |
691 | 레코드 값이 중복되어 저장될 경우 uniq 한 레코드만 출력하고자 할 때
692 |
693 | 만약에 전체 데이터 크기가 1G 이고 uniq 한 레코드가 700M, 중복되는 레코드가 300M
694 | 라고 한다면 awk 에서 group by 를 이용해 array 로 700M 를 메모리로 읽어들여야 하는데요.
695 | 간단히 테스트해보면 알 수 있지만 awk 에서는 메모리가 딱 700M 만 사용되지 않습니다.
696 | 실제 데이터의 약 15 배 이상 사용되는 것을 볼 수 있는데요
697 | 만약에 레코드가 정렬되어 있다고 가정하면 다음과 같이 처리가 가능하기 때문에
698 | 메모리가 거의 사용되지 않습니다.
699 | $ awk -F, '
700 | { current = $0 }
701 | previous != current { print }
702 | { previous = current }
703 | ' mydata > mydata.uniq
704 |
705 | awk 는 database 가 아니기 때문에 따로 index 를 생성해서 사용하는 기능은 없습니다.
706 | 하지만 sort 명령을 이용해 미리 데이터를 정렬해놓은 다음 awk 명령을
707 | 사용하면 index 를 사용하는 효과를 볼 수 있습니다.
708 | sort 명령도 실행 시에 메모리를 많이 사용합니다.
709 | 경우에 따라서 실제 데이터 크기의 10 배 이상 사용하는 것을 볼 수 있는데요
710 | 따라서 먼저 데이터를 작은 사이즈로 split 한 다음 개별 파일을 sort 하고
711 | 마지막으로 merge sort 를 해서 하나로 만들어야 합니다.
712 | $ cat sort.sh
713 |
714 |
715 | dataFile=mydata_file
716 | sortOptions="-t ',' -k3,3 -k2,2r"
717 | splitSize=100 M
718 | tmpFile=$(mktemp -p .)
719 |
720 | split --additional-suffix=.split -C $splitSize "$dataFile "
721 |
722 | for splitFile in *.split; do
723 | sort $sortOptions $splitFile > $tmpFile
724 | mv -f $tmpFile $splitFile
725 | done
726 |
727 | sort -m $sortOptions *.split > "$dataFile .sorted"
728 |
729 | rm -f *.split $tmpFile
730 |
731 |
732 |
733 |
734 |
735 |
736 |
737 |
738 |
739 |
740 |
741 |
742 |
743 |
744 |
745 |
746 |
747 |
748 |
749 |
750 |
751 |
752 |
753 |
754 |
755 |
756 |
757 |
758 |
759 |
760 |
761 |
762 |
763 |
764 |
765 |
766 |
767 |
768 |
774 |
775 |
776 |
777 |
778 |
779 |
--------------------------------------------------------------------------------
/gitbook/plugins/gitbook-plugin-highlight/website.css:
--------------------------------------------------------------------------------
1 | .book .book-body .page-wrapper .page-inner section.normal pre,
2 | .book .book-body .page-wrapper .page-inner section.normal code {
3 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
4 | /* Tomorrow Comment */
5 | /* Tomorrow Red */
6 | /* Tomorrow Orange */
7 | /* Tomorrow Yellow */
8 | /* Tomorrow Green */
9 | /* Tomorrow Aqua */
10 | /* Tomorrow Blue */
11 | /* Tomorrow Purple */
12 | }
13 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-comment,
14 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-comment,
15 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-title,
16 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-title {
17 | color: #8e908c;
18 | }
19 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-variable,
20 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-variable,
21 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute,
22 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-attribute,
23 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-tag,
24 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-tag,
25 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp,
26 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-regexp,
27 | .book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-constant,
28 | .book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-constant,
29 | .book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-tag .hljs-title,
30 | .book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-tag .hljs-title,
31 | .book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-pi,
32 | .book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-pi,
33 | .book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-doctype,
34 | .book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-doctype,
35 | .book .book-body .page-wrapper .page-inner section.normal pre .html .hljs-doctype,
36 | .book .book-body .page-wrapper .page-inner section.normal code .html .hljs-doctype,
37 | .book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-id,
38 | .book .book-body .page-wrapper .page-inner section.normal code .css .hljs-id,
39 | .book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-class,
40 | .book .book-body .page-wrapper .page-inner section.normal code .css .hljs-class,
41 | .book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-pseudo,
42 | .book .book-body .page-wrapper .page-inner section.normal code .css .hljs-pseudo {
43 | color: #c82829;
44 | }
45 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-number,
46 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-number,
47 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor,
48 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor,
49 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-pragma,
50 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-pragma,
51 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in,
52 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-built_in,
53 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-literal,
54 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-literal,
55 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-params,
56 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-params,
57 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-constant,
58 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-constant {
59 | color: #f5871f;
60 | }
61 | .book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-class .hljs-title,
62 | .book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-class .hljs-title,
63 | .book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-rules .hljs-attribute,
64 | .book .book-body .page-wrapper .page-inner section.normal code .css .hljs-rules .hljs-attribute {
65 | color: #eab700;
66 | }
67 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-string,
68 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-string,
69 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-value,
70 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-value,
71 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-inheritance,
72 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-inheritance,
73 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-header,
74 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-header,
75 | .book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-symbol,
76 | .book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-symbol,
77 | .book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata,
78 | .book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata {
79 | color: #718c00;
80 | }
81 | .book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-hexcolor,
82 | .book .book-body .page-wrapper .page-inner section.normal code .css .hljs-hexcolor {
83 | color: #3e999f;
84 | }
85 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-function,
86 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-function,
87 | .book .book-body .page-wrapper .page-inner section.normal pre .python .hljs-decorator,
88 | .book .book-body .page-wrapper .page-inner section.normal code .python .hljs-decorator,
89 | .book .book-body .page-wrapper .page-inner section.normal pre .python .hljs-title,
90 | .book .book-body .page-wrapper .page-inner section.normal code .python .hljs-title,
91 | .book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-function .hljs-title,
92 | .book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-function .hljs-title,
93 | .book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-title .hljs-keyword,
94 | .book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-title .hljs-keyword,
95 | .book .book-body .page-wrapper .page-inner section.normal pre .perl .hljs-sub,
96 | .book .book-body .page-wrapper .page-inner section.normal code .perl .hljs-sub,
97 | .book .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-title,
98 | .book .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-title,
99 | .book .book-body .page-wrapper .page-inner section.normal pre .coffeescript .hljs-title,
100 | .book .book-body .page-wrapper .page-inner section.normal code .coffeescript .hljs-title {
101 | color: #4271ae;
102 | }
103 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword,
104 | .book .book-body .page-wrapper .page-inner section.normal code .hljs-keyword,
105 | .book .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-function,
106 | .book .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-function {
107 | color: #8959a8;
108 | }
109 | .book .book-body .page-wrapper .page-inner section.normal pre .hljs,
110 | .book .book-body .page-wrapper .page-inner section.normal code .hljs {
111 | display: block;
112 | background: white;
113 | color: #4d4d4c;
114 | padding: 0.5em;
115 | }
116 | .book .book-body .page-wrapper .page-inner section.normal pre .coffeescript .javascript,
117 | .book .book-body .page-wrapper .page-inner section.normal code .coffeescript .javascript,
118 | .book .book-body .page-wrapper .page-inner section.normal pre .javascript .xml,
119 | .book .book-body .page-wrapper .page-inner section.normal code .javascript .xml,
120 | .book .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula,
121 | .book .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula,
122 | .book .book-body .page-wrapper .page-inner section.normal pre .xml .javascript,
123 | .book .book-body .page-wrapper .page-inner section.normal code .xml .javascript,
124 | .book .book-body .page-wrapper .page-inner section.normal pre .xml .vbscript,
125 | .book .book-body .page-wrapper .page-inner section.normal code .xml .vbscript,
126 | .book .book-body .page-wrapper .page-inner section.normal pre .xml .css,
127 | .book .book-body .page-wrapper .page-inner section.normal code .xml .css,
128 | .book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata,
129 | .book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata {
130 | opacity: 0.5;
131 | }
132 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre,
133 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code {
134 | /*
135 |
136 | Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull
137 |
138 | */
139 | /* Solarized Green */
140 | /* Solarized Cyan */
141 | /* Solarized Blue */
142 | /* Solarized Yellow */
143 | /* Solarized Orange */
144 | /* Solarized Red */
145 | /* Solarized Violet */
146 | }
147 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs,
148 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs {
149 | display: block;
150 | padding: 0.5em;
151 | background: #fdf6e3;
152 | color: #657b83;
153 | }
154 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-comment,
155 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-comment,
156 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-template_comment,
157 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-template_comment,
158 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .diff .hljs-header,
159 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .diff .hljs-header,
160 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-doctype,
161 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-doctype,
162 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-pi,
163 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-pi,
164 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .lisp .hljs-string,
165 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .lisp .hljs-string,
166 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-javadoc,
167 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-javadoc {
168 | color: #93a1a1;
169 | }
170 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword,
171 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword,
172 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-winutils,
173 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-winutils,
174 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .method,
175 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .method,
176 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-addition,
177 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-addition,
178 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-tag,
179 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .css .hljs-tag,
180 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-request,
181 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-request,
182 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-status,
183 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-status,
184 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .nginx .hljs-title,
185 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .nginx .hljs-title {
186 | color: #859900;
187 | }
188 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-number,
189 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-number,
190 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-command,
191 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-command,
192 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-string,
193 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-string,
194 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-tag .hljs-value,
195 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-tag .hljs-value,
196 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-rules .hljs-value,
197 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-rules .hljs-value,
198 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-phpdoc,
199 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-phpdoc,
200 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula,
201 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula,
202 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp,
203 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp,
204 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-hexcolor,
205 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-hexcolor,
206 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link_url,
207 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link_url {
208 | color: #2aa198;
209 | }
210 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-title,
211 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-title,
212 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-localvars,
213 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-localvars,
214 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-chunk,
215 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-chunk,
216 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-decorator,
217 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-decorator,
218 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in,
219 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in,
220 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-identifier,
221 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-identifier,
222 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .vhdl .hljs-literal,
223 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .vhdl .hljs-literal,
224 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-id,
225 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-id,
226 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-function,
227 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .css .hljs-function {
228 | color: #268bd2;
229 | }
230 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute,
231 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute,
232 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable,
233 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-variable,
234 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .lisp .hljs-body,
235 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .lisp .hljs-body,
236 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .smalltalk .hljs-number,
237 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .smalltalk .hljs-number,
238 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-constant,
239 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-constant,
240 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-class .hljs-title,
241 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-class .hljs-title,
242 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-parent,
243 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-parent,
244 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .haskell .hljs-type,
245 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .haskell .hljs-type,
246 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link_reference,
247 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link_reference {
248 | color: #b58900;
249 | }
250 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor,
251 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor,
252 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor .hljs-keyword,
253 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor .hljs-keyword,
254 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-pragma,
255 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-pragma,
256 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-shebang,
257 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-shebang,
258 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol,
259 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol,
260 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol .hljs-string,
261 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol .hljs-string,
262 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .diff .hljs-change,
263 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .diff .hljs-change,
264 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-special,
265 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-special,
266 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attr_selector,
267 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attr_selector,
268 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-subst,
269 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-subst,
270 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-cdata,
271 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-cdata,
272 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .clojure .hljs-title,
273 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .clojure .hljs-title,
274 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-pseudo,
275 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .css .hljs-pseudo,
276 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-header,
277 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-header {
278 | color: #cb4b16;
279 | }
280 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion,
281 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-deletion,
282 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-important,
283 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-important {
284 | color: #dc322f;
285 | }
286 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link_label,
287 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link_label {
288 | color: #6c71c4;
289 | }
290 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula,
291 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula {
292 | background: #eee8d5;
293 | }
294 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre,
295 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code {
296 | /* Tomorrow Night Bright Theme */
297 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */
298 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
299 | /* Tomorrow Comment */
300 | /* Tomorrow Red */
301 | /* Tomorrow Orange */
302 | /* Tomorrow Yellow */
303 | /* Tomorrow Green */
304 | /* Tomorrow Aqua */
305 | /* Tomorrow Blue */
306 | /* Tomorrow Purple */
307 | }
308 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-comment,
309 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-comment,
310 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-title,
311 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-title {
312 | color: #969896;
313 | }
314 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable,
315 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-variable,
316 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute,
317 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute,
318 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-tag,
319 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-tag,
320 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp,
321 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp,
322 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-constant,
323 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-constant,
324 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-tag .hljs-title,
325 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-tag .hljs-title,
326 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-pi,
327 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-pi,
328 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-doctype,
329 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-doctype,
330 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .html .hljs-doctype,
331 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .html .hljs-doctype,
332 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-id,
333 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-id,
334 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-class,
335 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-class,
336 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-pseudo,
337 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-pseudo {
338 | color: #d54e53;
339 | }
340 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-number,
341 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-number,
342 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor,
343 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor,
344 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-pragma,
345 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-pragma,
346 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in,
347 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in,
348 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-literal,
349 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-literal,
350 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-params,
351 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-params,
352 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-constant,
353 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-constant {
354 | color: #e78c45;
355 | }
356 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-class .hljs-title,
357 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-class .hljs-title,
358 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-rules .hljs-attribute,
359 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-rules .hljs-attribute {
360 | color: #e7c547;
361 | }
362 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-string,
363 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-string,
364 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-value,
365 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-value,
366 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-inheritance,
367 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-inheritance,
368 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-header,
369 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-header,
370 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-symbol,
371 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-symbol,
372 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata,
373 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata {
374 | color: #b9ca4a;
375 | }
376 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-hexcolor,
377 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-hexcolor {
378 | color: #70c0b1;
379 | }
380 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-function,
381 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-function,
382 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .python .hljs-decorator,
383 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .python .hljs-decorator,
384 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .python .hljs-title,
385 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .python .hljs-title,
386 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-function .hljs-title,
387 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-function .hljs-title,
388 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-title .hljs-keyword,
389 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-title .hljs-keyword,
390 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .perl .hljs-sub,
391 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .perl .hljs-sub,
392 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-title,
393 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-title,
394 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .coffeescript .hljs-title,
395 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .coffeescript .hljs-title {
396 | color: #7aa6da;
397 | }
398 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword,
399 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword,
400 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-function,
401 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-function {
402 | color: #c397d8;
403 | }
404 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs,
405 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs {
406 | display: block;
407 | background: black;
408 | color: #eaeaea;
409 | padding: 0.5em;
410 | }
411 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .coffeescript .javascript,
412 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .coffeescript .javascript,
413 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .javascript .xml,
414 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .javascript .xml,
415 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula,
416 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula,
417 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .javascript,
418 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .javascript,
419 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .vbscript,
420 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .vbscript,
421 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .css,
422 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .css,
423 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata,
424 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata {
425 | opacity: 0.5;
426 | }
427 |
--------------------------------------------------------------------------------