tocmd 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 639cebb65a02bbcfa8207ee17cddaeeb8d5a0522
4
- data.tar.gz: 7b8987bc95be39bca48eba00ef65a8a60179a6a3
3
+ metadata.gz: 3e83c31950b40f1c55248ccb60c5454b5ceb5a75
4
+ data.tar.gz: f212313e28a0917ec249580df4cf93fd6e6d52ca
5
5
  SHA512:
6
- metadata.gz: 408cc979832ddae0e3f5c0b34c7140ab5fbc64f8155ad5e4575a87854b6aeeba088c0ce9e674aacebfb76be670d91317062d386747932820a9204a8042286b48
7
- data.tar.gz: 009bc6e584b841be14b04d0f9202afbb2dba17de0b6da8cccff7dc949d8ca41ff97b21828c77386e4bff6669f27cadc73901b644fc7cfb8d8a81ef71b48bc2e3
6
+ metadata.gz: 89089f917c9bbf99ecb9e5bbd4439fb8d54de6c04941949ca1772c18c8263204422d1ac52940a3a664c1a7c1925c1246cb2c8636a54d23e3c7f32458f0eda5be
7
+ data.tar.gz: 1c1e3a70cb348e29a79bc1ee05115f4e3b0436227304bbf436649cca10cce936479ee9e233641bfdce5ebdeaa0b8372cb68f6631f65b0d7e81e39914ee3cb97c
@@ -1,5 +1,6 @@
1
1
  require 'pathname'
2
2
  # require 'FileUtils'
3
+ require 'fileutils'
3
4
 
4
5
  class Mdpreview::Translator
5
6
  def initialize(source_file_path)
@@ -209,17 +210,18 @@ class Mdpreview::Translator
209
210
  </style>
210
211
  </head>
211
212
  <body>
212
- <div>
213
-
214
- </div>
215
- <div id='readme' style='width:834px;margin:20px auto'>
216
- <ul id="tree" class="ztree" style="">
213
+ <div>
214
+ <div style='width:25%;'>
215
+ <ul id="tree" class="ztree" style='width:100%'>
217
216
 
218
- </ul>
219
- <article class='markdown-body'>
220
- #{parse_markdown}
221
- </article>
222
- </div>
217
+ </ul>
218
+ </div>
219
+ <div id='readme' style='width:70%;margin-left:20%;'>
220
+ <article class='markdown-body'>
221
+ #{parse_markdown}
222
+ </article>
223
+ </div>
224
+ </div>
223
225
  </body>
224
226
  </html>
225
227
  <script type="text/javascript" src="#{@editor_path}/toc/js/jquery-1.4.4.min.js"></script>
@@ -229,7 +231,8 @@ class Mdpreview::Translator
229
231
  <!--
230
232
  $(document).ready(function(){
231
233
  $('#tree').ztree_toc({
232
-
234
+ is_auto_number:true,
235
+ documment_selector:'.markdown-body'
233
236
  });
234
237
  });
235
238
  //-->
@@ -1,3 +1,3 @@
1
1
  module Mdpreview
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
data/vendor/meta.js ADDED
@@ -0,0 +1 @@
1
+ /Volumes/data/Github/toc.md/
@@ -0,0 +1,277 @@
1
+ /*! ztree_toc - v0.2.0 - 2014-02-05
2
+ * https://github.com/i5ting/jQuery.zTree_Toc.js
3
+ * Copyright (c) 2014 alfred.sang; Licensed MIT */
4
+ function encode_id_with_array(opts,arr) {
5
+ var result = 0;
6
+ for(var z = 0; z < arr.length; z++ ) {
7
+ result += factor(opts, arr.length - z ,arr[z]);
8
+ }
9
+
10
+ return result;
11
+ }
12
+
13
+
14
+ /**
15
+ * 1.1.1 = 1*100*100 + 1*100 + 1
16
+ * 1.2.2 = 1*100*100 + 2*100 + 3
17
+ *
18
+ * 1 = 0*100 +1
19
+
20
+ 1,1 = 100
21
+
22
+ */
23
+ function get_parent_id_with_array(opts,arr) {
24
+ var result_arr = [];
25
+
26
+ for(var z = 0; z < arr.length; z++ ) {
27
+ result_arr.push(arr[z]);
28
+ }
29
+
30
+ result_arr.pop();
31
+
32
+ var result = 0;
33
+ for(var z = 0; z < result_arr.length; z++ ) {
34
+ result += factor(opts,result_arr.length - z,result_arr[z]);
35
+ }
36
+
37
+ return result;
38
+ }
39
+
40
+ function factor(opts ,count,current) {
41
+ if(1 == count) {
42
+ return current;
43
+ }
44
+
45
+ var str = '';
46
+ for(var i = count - 1;i > 0; i-- ) {
47
+ str += current * opts.step+'*';
48
+ }
49
+
50
+ return eval( str + '1' );
51
+ }
52
+
53
+ ;(function($) {
54
+ /*
55
+ * 根据header创建目录内容
56
+ */
57
+ function create_toc(opts) {
58
+ $(opts.documment_selector).find(':header').each(function() {
59
+ var level = parseInt(this.nodeName.substring(1), 10);
60
+
61
+ _rename_header_content(opts,this,level);
62
+
63
+ _add_header_node(opts,$(this));
64
+ });//end each
65
+ }
66
+
67
+ /*
68
+ * 渲染ztree
69
+ */
70
+ function render_with_ztree(opts) {
71
+ var t = $(opts._zTree);
72
+ t = $.fn.zTree.init(t,opts.ztreeSetting,opts._header_nodes).expandAll(opts.is_expand_all);
73
+ // alert(opts._headers * 88);
74
+ // $(opts._zTree).height(opts._headers * 33 + 33);
75
+
76
+ $(opts._zTree).css(opts.ztreeStyle);
77
+ }
78
+
79
+ /*
80
+ * 将已有header编号,并重命名
81
+ */
82
+ function _rename_header_content(opts ,header_obj ,level) {
83
+ if(opts._headers.length == level) {
84
+ opts._headers[level - 1]++;
85
+ } else if(opts._headers.length > level) {
86
+ opts._headers = opts._headers.slice(0, level);
87
+ opts._headers[level - 1] ++;
88
+ } else if(opts._headers.length < level) {
89
+ for(var i = 0; i < (level - opts._headers.length); i++) {
90
+ // console.log('push 1');
91
+ opts._headers.push(1);
92
+ }
93
+ }
94
+
95
+ if(opts.is_auto_number == true) {
96
+ $(header_obj).text(opts._headers.join('.') + '. ' + $(header_obj).text());
97
+ }
98
+ }
99
+
100
+ /*
101
+ * 给ztree用的header_nodes增加数据
102
+ */
103
+ function _add_header_node(opts ,header_obj) {
104
+ var id = encode_id_with_array(opts,opts._headers);
105
+ var pid = get_parent_id_with_array(opts,opts._headers);
106
+
107
+ // 设置锚点id
108
+ $(header_obj).attr('id',id);
109
+
110
+ log($(header_obj).text());
111
+
112
+ opts._header_offsets.push($(header_obj).offset().top - opts.highlight_offset);
113
+
114
+ log('h offset ='+( $(header_obj).offset().top - opts.highlight_offset ) );
115
+
116
+ opts._header_nodes.push({
117
+ id:id,
118
+ pId:pid ,
119
+ name:$(header_obj).text()||'null',
120
+ open:true,
121
+ url:'#'+ id,
122
+ target:'_self'
123
+ });
124
+ }
125
+
126
+ /*
127
+ * 根据滚动确定当前位置,并更新ztree
128
+ */
129
+ function bind_scroll_event_and_update_postion(opts) {
130
+ var timeout;
131
+ var highlight_on_scroll = function(e) {
132
+ if (timeout) {
133
+ clearTimeout(timeout);
134
+ }
135
+
136
+ timeout = setTimeout(function() {
137
+ var top = $(window).scrollTop(),highlighted;
138
+
139
+ if(opts.debug) console.log('top='+top);
140
+
141
+ for (var i = 0, c = opts._header_offsets.length; i < c; i++) {
142
+ // fixed: top+5防止点击ztree的时候,出现向上抖动的情况
143
+ if (opts._header_offsets[i] >= (top + 5) ) {
144
+ console.log('opts._header_offsets['+ i +'] = '+opts._header_offsets[i]);
145
+ $('a').removeClass('curSelectedNode');
146
+
147
+ // 由于有root节点,所以i应该从1开始
148
+ var obj = $('#tree_' + (i+1) + '_a').addClass('curSelectedNode');
149
+ break;
150
+ }
151
+ }
152
+ }, opts.refresh_scroll_time);
153
+ };
154
+
155
+ if (opts.highlight_on_scroll) {
156
+ $(window).bind('scroll', highlight_on_scroll);
157
+ highlight_on_scroll();
158
+ }
159
+ }
160
+
161
+ /*
162
+ * 初始化
163
+ */
164
+ function init_with_config(opts) {
165
+ opts.highlight_offset = $(opts.documment_selector).offset().top;
166
+ }
167
+
168
+ /*
169
+ * 日志
170
+ */
171
+ function log(str) {
172
+ return;
173
+ if($.fn.ztree_toc.defaults.debug == true) {
174
+ console.log(str);
175
+ }
176
+ }
177
+
178
+ $.fn.ztree_toc = function(options) {
179
+ // 将defaults 和 options 参数合并到{}
180
+ var opts = $.extend({},$.fn.ztree_toc.defaults,options);
181
+
182
+ return this.each(function() {
183
+ opts._zTree = $(this);
184
+
185
+ // 初始化
186
+ init_with_config(opts);
187
+
188
+ // 创建table of content,获取元数据_headers
189
+ create_toc(opts);
190
+
191
+ // 根据_headers生成ztree
192
+ render_with_ztree(opts);
193
+
194
+ // 根据滚动确定当前位置,并更新ztree
195
+ bind_scroll_event_and_update_postion(opts);
196
+ });
197
+ // each end
198
+ }
199
+
200
+ //定义默认
201
+ $.fn.ztree_toc.defaults = {
202
+ _zTree: null,
203
+ _headers: [],
204
+ _header_offsets: [],
205
+ _header_nodes: [{ id:1, pId:0, name:"Table of Content",open:true}],
206
+ debug: true,
207
+ highlight_offset: 0,
208
+ highlight_on_scroll: true,
209
+ /*
210
+ * 计算滚动判断当前位置的时间,默认是50毫秒
211
+ */
212
+ refresh_scroll_time: 50,
213
+ documment_selector: 'body',
214
+ is_posion_top: false,
215
+ /*
216
+ * 默认是否显示header编号
217
+ */
218
+ is_auto_number: false,
219
+ /*
220
+ * 默认是否展开全部
221
+ */
222
+ is_expand_all: true,
223
+ /*
224
+ * 是否对选中行,显示高亮效果
225
+ */
226
+ is_highlight_selected_line: true,
227
+ step: 100,
228
+ ztreeStyle: {
229
+ width:'260px',
230
+ overflow: 'auto',
231
+ position: 'fixed',
232
+ 'z-index': 2147483647,
233
+ border: '0px none',
234
+ left: '0px',
235
+ bottom: '0px',
236
+ // height:'100px'
237
+ },
238
+ ztreeSetting: {
239
+ view: {
240
+ dblClickExpand: false,
241
+ showLine: true,
242
+ showIcon: false,
243
+ selectedMulti: false
244
+ },
245
+ data: {
246
+ simpleData: {
247
+ enable: true,
248
+ idKey : "id",
249
+ pIdKey: "pId",
250
+ // rootPId: "0"
251
+ }
252
+ },
253
+ callback: {
254
+ beforeClick: function(treeId, treeNode) {
255
+ $('a').removeClass('curSelectedNode');
256
+ if(treeNode.id == 1){
257
+ // TODO: when click root node
258
+ console.log('click root table of content');
259
+ }
260
+ if($.fn.ztree_toc.defaults.is_highlight_selected_line == true) {
261
+ $('#' + treeNode.id).css('color' ,'red').fadeOut("slow" ,function() {
262
+ // Animation complete.
263
+ $(this).show().css('color','black');
264
+ });
265
+ }
266
+ },
267
+ onRightClick: function(event, treeId, treeNode) {
268
+ if(treeNode.id == 1){
269
+ // TODO: when right_click root node:table content
270
+ console.log('right_click root table of content');
271
+ }
272
+ }
273
+ }
274
+ }
275
+ };
276
+
277
+ })(jQuery);
@@ -1,4 +1,4 @@
1
- /*! ztree_toc - v0.1.0 - 2014-01-27
1
+ /*! ztree_toc - v0.2.0 - 2014-02-05
2
2
  * https://github.com/i5ting/jQuery.zTree_Toc.js
3
3
  * Copyright (c) 2014 alfred.sang; Licensed MIT */
4
- function encode_id_with_array(a,b){console.log("---------------- get_id_with_str start---------------\n");for(var c=0,d=0;d<b.length;d++)c+=factor(a,b.length-d,b[d]),console.log("z = "+d+",result=",c);return console.log("result all = "+c),console.log("--------------end-----------------\n"),c}function get_parent_id_with_array(a,b){console.log("---------------- get_id_with_str start---------------\n");for(var c=[],d=0;d<b.length;d++)c.push(b[d]);c.pop();for(var e=0,d=0;d<c.length;d++)e+=factor(a,c.length-d,c[d]),console.log("z = "+d+",result=",e);return console.log("result all = "+e),console.log("--------------end-----------------\n"),e}function factor(opts,count,current){if(1==count)return current;for(var str="",i=count-1;i>0;i--)str+=current*opts.step+"*";return console.log("str = "+str),eval(str+"1")}!function(a){function b(b){a(b.documment_selector).find(":header").each(function(){var c=parseInt(this.nodeName.substring(1),10);d(b,this,c),e(b,a(this))})}function c(b){var c=a(b._zTree);c=a.fn.zTree.init(c,b.ztreeSetting,b._header_nodes).expandAll(b.is_expand_all),a(b._zTree).css(b.ztreeStyle)}function d(b,c,d){if(b._headers.length==d)b._headers[d-1]++;else if(b._headers.length>d)b._headers=b._headers.slice(0,d),b._headers[d-1]++;else if(b._headers.length<d)for(var e=0;e<d-b._headers.length;e++)b._headers.push(1);1==b.is_auto_number&&a(c).text(b._headers.join(".")+". "+a(c).text())}function e(b,c){var d=encode_id_with_array(b,b._headers),e=get_parent_id_with_array(b,b._headers);a(c).attr("id",d),f(a(c).text()),b._header_nodes.push({id:d,pId:e,name:a(c).text()||"null",open:!0,url:"#"+d,target:"_self"})}function f(b){1==a.fn.ztree_toc.defaults.debug&&console.log(b)}a.fn.ztree_toc=function(d){var e=a.extend({},a.fn.ztree_toc.defaults,d);return this.each(function(){e._zTree=a(this),b(e),c(e)})},a.fn.ztree_toc.defaults={_zTree:null,_headers:[],_header_nodes:[{id:1,pId:0,name:"Table of Content",open:!0}],debug:!0,documment_selector:"body",is_posion_top:!1,is_auto_number:!1,is_expand_all:!0,is_highlight_selected_line:!0,step:100,ztreeStyle:{width:"260px",overflow:"auto",position:"fixed","z-index":2147483647,border:"0px none",left:"0px",bottom:"0px"},ztreeSetting:{view:{dblClickExpand:!1,showLine:!0,showIcon:!1,selectedMulti:!1},data:{simpleData:{enable:!0,idKey:"id",pIdKey:"pId"}},callback:{beforeClick:function(b,c){1==a.fn.ztree_toc.defaults.is_highlight_selected_line&&a("#"+c.id).css("color","red").fadeOut("slow",function(){a(this).show().css("color","black")})}}}}}(jQuery);
4
+ function encode_id_with_array(a,b){for(var c=0,d=0;d<b.length;d++)c+=factor(a,b.length-d,b[d]);return c}function get_parent_id_with_array(a,b){for(var c=[],d=0;d<b.length;d++)c.push(b[d]);c.pop();for(var e=0,d=0;d<c.length;d++)e+=factor(a,c.length-d,c[d]);return e}function factor(opts,count,current){if(1==count)return current;for(var str="",i=count-1;i>0;i--)str+=current*opts.step+"*";return eval(str+"1")}!function(a){function b(b){a(b.documment_selector).find(":header").each(function(){var c=parseInt(this.nodeName.substring(1),10);d(b,this,c),e(b,a(this))})}function c(b){var c=a(b._zTree);c=a.fn.zTree.init(c,b.ztreeSetting,b._header_nodes).expandAll(b.is_expand_all),a(b._zTree).css(b.ztreeStyle)}function d(b,c,d){if(b._headers.length==d)b._headers[d-1]++;else if(b._headers.length>d)b._headers=b._headers.slice(0,d),b._headers[d-1]++;else if(b._headers.length<d)for(var e=0;e<d-b._headers.length;e++)b._headers.push(1);1==b.is_auto_number&&a(c).text(b._headers.join(".")+". "+a(c).text())}function e(b,c){var d=encode_id_with_array(b,b._headers),e=get_parent_id_with_array(b,b._headers);a(c).attr("id",d),h(a(c).text()),b._header_offsets.push(a(c).offset().top-b.highlight_offset),h("h offset ="+(a(c).offset().top-b.highlight_offset)),b._header_nodes.push({id:d,pId:e,name:a(c).text()||"null",open:!0,url:"#"+d,target:"_self"})}function f(b){var c,d=function(){c&&clearTimeout(c),c=setTimeout(function(){var c=a(window).scrollTop();b.debug&&console.log("top="+c);for(var d=0,e=b._header_offsets.length;e>d;d++)if(b._header_offsets[d]>=c+5){console.log("opts._header_offsets["+d+"] = "+b._header_offsets[d]),a("a").removeClass("curSelectedNode"),a("#tree_"+(d+1)+"_a").addClass("curSelectedNode");break}},b.refresh_scroll_time)};b.highlight_on_scroll&&(a(window).bind("scroll",d),d())}function g(b){b.highlight_offset=a(b.documment_selector).offset().top}function h(a){}a.fn.ztree_toc=function(d){var e=a.extend({},a.fn.ztree_toc.defaults,d);return this.each(function(){e._zTree=a(this),g(e),b(e),c(e),f(e)})},a.fn.ztree_toc.defaults={_zTree:null,_headers:[],_header_offsets:[],_header_nodes:[{id:1,pId:0,name:"Table of Content",open:!0}],debug:!0,highlight_offset:0,highlight_on_scroll:!0,refresh_scroll_time:50,documment_selector:"body",is_posion_top:!1,is_auto_number:!1,is_expand_all:!0,is_highlight_selected_line:!0,step:100,ztreeStyle:{width:"260px",overflow:"auto",position:"fixed","z-index":2147483647,border:"0px none",left:"0px",bottom:"0px"},ztreeSetting:{view:{dblClickExpand:!1,showLine:!0,showIcon:!1,selectedMulti:!1},data:{simpleData:{enable:!0,idKey:"id",pIdKey:"pId"}},callback:{beforeClick:function(b,c){a("a").removeClass("curSelectedNode"),1==c.id&&console.log("click root table of content"),1==a.fn.ztree_toc.defaults.is_highlight_selected_line&&a("#"+c.id).css("color","red").fadeOut("slow",function(){a(this).show().css("color","black")})},onRightClick:function(a,b,c){1==c.id&&console.log("right_click root table of content")}}}}}(jQuery);
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tocmd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - shiren1118
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-27 00:00:00.000000000 Z
11
+ date: 2014-02-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: convert markdown to html with toc plugin
14
14
  email:
@@ -24,6 +24,7 @@ files:
24
24
  - lib/mdpreview/translator.rb
25
25
  - lib/mdpreview/version.rb
26
26
  - test/mdptest.rb
27
+ - vendor/meta.js
27
28
  - vendor/template.html
28
29
  - vendor/toc/css/demo.css
29
30
  - vendor/toc/css/zTreeStyle/img/diy/1_close.png
@@ -43,6 +44,7 @@ files:
43
44
  - vendor/toc/css/zTreeStyle/zTreeStyle.css
44
45
  - vendor/toc/js/jquery-1.4.4.min.js
45
46
  - vendor/toc/js/jquery.ztree.all-3.5.min.js
47
+ - vendor/toc/js/jquery.ztree_toc.js
46
48
  - vendor/toc/js/jquery.ztree_toc.min.js
47
49
  - vendor/toc/style/Clearness Dark.css
48
50
  - vendor/toc/style/Clearness.css