deckar01-task_list 2.3.1 → 2.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f0330fd795e85907a1881f60b1c6b0978d6b21ca
4
- data.tar.gz: b959123390681ce1eec8a1258cec9316f864b533
2
+ SHA256:
3
+ metadata.gz: 25b1e9330f205a0fdcd27bffcd57709c3b13d45d6554075dc66472d71230421a
4
+ data.tar.gz: 575a135f17373ec21748d76cd96cd7143a2846aae8667b8fba7a0d2c10a4312f
5
5
  SHA512:
6
- metadata.gz: b681c7fc2e15caa7472ef19bb4a69bdfe7161c5df192e93665d95ed302636ba2b3269adf30cec39ce489119efee641440e08c8d885ada8df573feecf7c41bae2
7
- data.tar.gz: 3b6fa5652857c7024339c29efa8f42e7c2706bbcfef90b7784baab46fbf0d563db0b1e979190609838af233ddd61e059162f22325dd1ed738f085b844100fd0c
6
+ metadata.gz: 6bef865f56600783b7c5da763891fec1fdd2de59152af2f698c481ff936859f60d7a5b5ce3756a90021d82dea1e50894f362701384606c8e4a9ef8ebbd62e739
7
+ data.tar.gz: 72cc545b970a28c4fe2b03b2fe271c9ad7304b5a3880305a8aed1f458e7cd67141c73e7f7d3829044bfd6d128cb61c9350b451ccc9af817dec7284e657bb98b1
data/.gitignore CHANGED
@@ -19,3 +19,4 @@ tmp
19
19
  bower_components
20
20
  node_modules
21
21
  vendor/gems/
22
+ vendor/bundle/
data/.gitlab-ci.yml ADDED
@@ -0,0 +1,22 @@
1
+ .test: &test
2
+ stage: test
3
+ before_script:
4
+ - ./script/bootstrap
5
+ script:
6
+ - ./script/cibuild
7
+
8
+ test 3.0:
9
+ image: "ruby:3.0"
10
+ <<: *test
11
+
12
+ test 3.1:
13
+ image: "ruby:3.1"
14
+ <<: *test
15
+
16
+ test 3.2:
17
+ image: "ruby:3.2"
18
+ <<: *test
19
+
20
+ test 3.3:
21
+ image: "ruby:3.3-rc"
22
+ <<: *test
data/README.md CHANGED
@@ -1,8 +1,6 @@
1
1
  # Task Lists
2
2
 
3
- [![Build Status](http://img.shields.io/travis/deckar01/task_list.svg)][travis]
4
-
5
- [travis]: https://travis-ci.org/deckar01/task_list
3
+ [![pipeline status](https://gitlab.com/deckar01/task_list/badges/master/pipeline.svg)](https://gitlab.com/deckar01/task_list/-/commits/master)
6
4
 
7
5
  This is a community fork of GitHub's archived [`task_list`][task_list] gem.
8
6
 
@@ -85,7 +83,7 @@ NOTE: Updates are not persisted to the server automatically. Persistence is the
85
83
 
86
84
  Read through the documented behaviors and samples [in the source][frontend_behaviors] for more detail, including documented events.
87
85
 
88
- [frontend_behaviors]: https://github.com/deckar01/task_list/blob/master/app/assets/javascripts/task_list.coffee
86
+ [frontend_behaviors]: https://gitlab.com/deckar01/task_list/blob/master/app/assets/javascripts/task_list.coffee
89
87
 
90
88
  ## Installation
91
89
 
@@ -202,7 +202,7 @@ class TaskList
202
202
  # Used to skip checkbox markup inside of code fences.
203
203
  # http://rubular.com/r/TfCDNsy8x4
204
204
  @startFencesPattern: /^`{3}.*$/
205
- @endFencesPattern: /^`{3}$/
205
+ @endFencesPattern: /^`{3}\s*$/
206
206
 
207
207
  # Used to filter out potential mismatches (items not in lists).
208
208
  # http://rubular.com/r/OInl6CiePy
data/bower.json CHANGED
@@ -2,10 +2,9 @@
2
2
  "name": "deckar01-task_list",
3
3
  "version": "2.0.1",
4
4
  "description": "Markdown TaskList components",
5
- "homepage": "https://github.com/deckar01/task_list",
5
+ "homepage": "https://gitlab.com/deckar01/task_list",
6
6
  "devDependencies": {
7
7
  "jquery": ">= 1.9.1 <3",
8
- "qunit": "^1.0.0",
9
8
  "rails-behaviors": "^0.8.4"
10
9
  },
11
10
  "main": [
data/build.mjs ADDED
@@ -0,0 +1,26 @@
1
+ import { build } from 'esbuild';
2
+ import coffeeScriptPlugin from 'esbuild-coffeescript';
3
+ import { umdWrapper } from 'esbuild-plugin-umd-wrapper';
4
+
5
+ await build({
6
+ entryPoints: ['app/assets/javascripts/task_list.coffee'],
7
+ bundle: true,
8
+ minify: true,
9
+ format: 'umd',
10
+ outfile: 'dist/task_list.js',
11
+ plugins: [
12
+ coffeeScriptPlugin(),
13
+ umdWrapper({libraryName: 'TaskList'}),
14
+ ],
15
+ logLevel: 'info',
16
+ });
17
+
18
+ await build({
19
+ entryPoints: ['test/unit/*.coffee'],
20
+ bundle: true,
21
+ outdir: 'bin/test/unit/',
22
+ plugins: [
23
+ coffeeScriptPlugin(),
24
+ ],
25
+ logLevel: 'info',
26
+ });
@@ -54,13 +54,18 @@ class TaskList
54
54
 
55
55
  class XPathSelectorFunction
56
56
  def self.task_list_item(nodes)
57
- nodes.select { |node| node.text =~ ItemPattern }
57
+ nodes.select { |li| Filter::item_container(li).inner_html =~ ItemPattern }
58
58
  end
59
59
  end
60
60
 
61
61
  # Selects first P tag of an LI, if present
62
62
  ItemParaSelector = "./p[1]".freeze
63
63
 
64
+ # The the node directly containing the checkbox text
65
+ def self.item_container(li)
66
+ li.xpath(ItemParaSelector)[0] || li
67
+ end
68
+
64
69
  # List of `TaskList::Item` objects that were recognized in the document.
65
70
  # This is available in the result hash as `:task_list_items`.
66
71
  #
@@ -80,6 +85,7 @@ class TaskList
80
85
  />)
81
86
  end
82
87
 
88
+ # Deprecated: Removed in v3
83
89
  # Public: Marks up the task list item checkbox with metadata and behavior.
84
90
  #
85
91
  # NOTE: produces a string that, when assigned to a Node's `inner_html`,
@@ -95,6 +101,7 @@ class TaskList
95
101
  item.source.sub(ItemPattern, render_item_checkbox(item)), 'utf-8'
96
102
  end
97
103
 
104
+ # Deprecated: Removed in v3
98
105
  # Public: Select all task list items within `container`.
99
106
  #
100
107
  # Returns an Array of Nokogiri::XML::Element objects for ordered and
@@ -114,24 +121,15 @@ class TaskList
114
121
  # Returns nothing.
115
122
  def filter!
116
123
  list_items(doc).reverse.each do |li|
117
- next if list_items(li.parent).empty?
118
-
119
- add_css_class(li.parent, 'task-list')
120
-
121
- outer, inner =
122
- if p = li.xpath(ItemParaSelector)[0]
123
- [p, p.inner_html]
124
- else
125
- [li, li.inner_html]
126
- end
127
- if match = (inner.chomp =~ ItemPattern && $1)
128
- item = TaskList::Item.new(match, inner)
129
- # prepend because we're iterating in reverse
130
- task_list_items.unshift item
131
-
132
- add_css_class(li, 'task-list-item')
133
- outer.inner_html = render_task_list_item(item)
134
- end
124
+ outer = self.class.item_container(li)
125
+ inner = outer.inner_html
126
+ checkbox = inner.match(ItemPattern).captures[0]
127
+ item = TaskList::Item.new(checkbox, inner)
128
+ # prepend because we're iterating in reverse
129
+ task_list_items.unshift item
130
+ li.parent.add_class('task-list')
131
+ li.add_class('task-list-item')
132
+ outer.inner_html = render_task_list_item(item)
135
133
  end
136
134
  end
137
135
 
@@ -140,6 +138,7 @@ class TaskList
140
138
  doc
141
139
  end
142
140
 
141
+ # Deprecated: Removed in v3
143
142
  # Private: adds a CSS class name to a node, respecting existing class
144
143
  # names.
145
144
  def add_css_class(node, *new_class_names)
@@ -1,3 +1,3 @@
1
1
  class TaskList
2
- VERSION = [2, 3, 1].join('.')
2
+ VERSION = [2, 3, 3].join('.')
3
3
  end