jekyll-jupyter-notebook 0.0.4 → 0.0.6

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
2
  SHA256:
3
- metadata.gz: 425f800ab9b773e9a5af9360ba2715ca339d576fe1719deafdb3a328aa6c8ac8
4
- data.tar.gz: 1f2cd269d33799891f4f79c547d785cb9e571f9a4b01cfcd18a115ce18bfd4f9
3
+ metadata.gz: bab18fecb1e9b9614f39547d0567f2cbf2077ecc2f3d9c0b6c9fd3338480c7b6
4
+ data.tar.gz: 44832784b374c9b572d9c517612c939dfe80283dbd6d7d722d211c510e83a7d2
5
5
  SHA512:
6
- metadata.gz: dc9f20a00e845900a7f1e10eee2d9b23a92c9842f8e0838581be05552b72a7fe54bb9e1ddd94152428c90f3522d5fbc267887bef5dd3e8b9b4e084a395e93454
7
- data.tar.gz: '074847bc947f0a7ed68d4ee9e1add0259dc7785adef09e712a3f7d0587c058fb2b516bed6bd06cbcf347fc1c0fac83ea40b440f669765757789b3abc2820b2ca'
6
+ metadata.gz: 61c75285f0a349d5d7459750505167b21a6c73f415ff053be2bb98016ba373c3f88676f08dec282cfd285e3a74f69da50f7f7461924665c40f94fdda167d8590
7
+ data.tar.gz: d0b52e4a9827731f7f8f2b4980448d551c3fe597cbd1430d82f43ba614184a12fb9d2989be4857fb520be1f4214816d0ccaef8230d1887cbabafb06ed58fad78
data/README.md CHANGED
@@ -53,6 +53,33 @@ If you use kramdown as Markdown parser and get strange result, try to surround `
53
53
  {:/nomarkdown}
54
54
  ```
55
55
 
56
+ ## Configurations
57
+
58
+ You can customize `.ipynb` to `.html` conversion by `jupyter_notebook` in `_config.yml`:
59
+
60
+ ```yaml
61
+ jupyter_notebook:
62
+ # ...
63
+ ```
64
+
65
+ ### `prompt`
66
+
67
+ You can control whether a converted `.html` includes `In [N]`/`Out[N]` prompts or not by `prompt`:
68
+
69
+ ```yaml
70
+ jupyter_notebook:
71
+ prompt: true
72
+ ```
73
+
74
+ The default value is `true`. It means that `In [N]`/`Out[N]` are shown.
75
+
76
+ You can remove them by using `false`:
77
+
78
+ ```yaml
79
+ jupyter_notebook:
80
+ prompt: false
81
+ ```
82
+
56
83
  ## Authors
57
84
 
58
85
  * Kouhei Sutou \<kou@clear-code.com\>
data/Rakefile CHANGED
@@ -12,9 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require "rubygems"
16
15
  require "bundler/gem_helper"
17
- require "packnga"
18
16
 
19
17
  base_dir = File.join(File.dirname(__FILE__))
20
18
 
@@ -26,14 +24,6 @@ end
26
24
  helper.install
27
25
  spec = helper.gemspec
28
26
 
29
- Packnga::DocumentTask.new(spec) do |task|
30
- task.original_language = "en"
31
- task.translate_language = "ja"
32
- end
33
-
34
- Packnga::ReleaseTask.new(spec) do
35
- end
36
-
37
27
  # desc "Run tests"
38
28
  # task :test do
39
29
  # ruby("test/run-test.rb")
data/doc/text/news.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # News
2
2
 
3
+ ## 0.0.6 - 2024-04-08
4
+
5
+ ### Improvements
6
+
7
+ * Added `prompt` option that controls whether `In [N]`/`Out[N]` prompts are shown or not.
8
+ * GH-9
9
+ * Reported by Julian Hatzky
10
+
11
+ ### Thanks
12
+
13
+ * Julian Hatzky
14
+
15
+ ## 0.0.5 - 2022-08-20
16
+
17
+ ### Improvements
18
+
19
+ * Added support for collection.
20
+ [GitHub#8][Reported by Jeremy Lloyd Conlin]
21
+
22
+ ### Thanks
23
+
24
+ * Jeremy Lloyd Conlin
25
+
3
26
  ## 0.0.4 - 2018-08-08
4
27
 
5
28
  ### Improvements
@@ -43,7 +43,5 @@ Gem::Specification.new do |spec|
43
43
 
44
44
  spec.add_development_dependency("bundler")
45
45
  spec.add_development_dependency("rake")
46
- spec.add_development_dependency("test-unit")
47
- spec.add_development_dependency("packnga")
48
46
  spec.add_development_dependency("kramdown")
49
47
  end
@@ -25,7 +25,7 @@ module JekyllJupyterNotebook
25
25
  def convert(content)
26
26
  config = @config["jupyter_notebook"] || {}
27
27
 
28
- html = convert_notebook(content)
28
+ html = convert_notebook(content, config)
29
29
  html.sub!(/<link.+?href="custom.css">/, "")
30
30
  case config["content"] || "html"
31
31
  when "html"
@@ -42,17 +42,20 @@ module JekyllJupyterNotebook
42
42
  end
43
43
 
44
44
  private
45
- def convert_notebook(content)
45
+ def convert_notebook(content, config)
46
46
  notebook = Tempfile.new(["jekyll-jupyter-notebook", ".ipynb"])
47
47
  notebook.print(content)
48
48
  notebook.close
49
49
  IO.pipe do |input, output|
50
- pid = spawn("jupyter",
51
- "nbconvert",
52
- "--to", "html",
53
- "--stdout",
54
- notebook.path,
55
- :out => output)
50
+ command_line = [
51
+ "jupyter",
52
+ "nbconvert",
53
+ "--to", "html",
54
+ "--stdout",
55
+ ]
56
+ command_line << "--no-prompt" unless config.fetch("prompt", true)
57
+ command_line << notebook.path
58
+ pid = spawn(*command_line, out: output)
56
59
  begin
57
60
  output.close
58
61
  html = nil
@@ -11,26 +11,48 @@
11
11
  # limitations under the License.
12
12
 
13
13
  module JekyllJupyterNotebook
14
- module IFramePage
14
+ module IFramable
15
15
  def output_ext
16
- ext + super
16
+ extname + super
17
17
  end
18
18
  end
19
19
 
20
20
  class Generator < Jekyll::Generator
21
21
  def generate(site)
22
+ generate_site_static_files(site)
23
+ site.collections.each_value do |collection|
24
+ generate_collection_filtered_entries(collection)
25
+ end
26
+ end
27
+
28
+ private
29
+ def generate_site_static_files(site)
22
30
  site.static_files.reject! do |static_file|
23
- if static_file.extname == ".ipynb"
24
- base = static_file.instance_variable_get(:@base)
25
- dir = static_file.instance_variable_get(:@dir)
26
- name = static_file.name
27
- page = Jekyll::Page.new(site, base, dir, name)
28
- page.extend(IFramePage)
29
- site.pages << page
30
- true
31
- else
32
- false
33
- end
31
+ next false unless static_file.extname == ".ipynb"
32
+
33
+ base = static_file.instance_variable_get(:@base)
34
+ dir = static_file.instance_variable_get(:@dir)
35
+ name = static_file.name
36
+ page = Jekyll::Page.new(site, base, dir, name)
37
+ page.extend(IFramable)
38
+ site.pages << page
39
+ true
40
+ end
41
+ end
42
+
43
+ def generate_collection_filtered_entries(collection)
44
+ collection.filtered_entries.reject! do |file_path|
45
+ full_path = collection.collection_dir(file_path)
46
+ next false unless File.extname(file_path) == ".ipynb"
47
+ next false if Jekyll::Utils.has_yaml_header?(full_path)
48
+
49
+ document = Jekyll::Document.new(full_path,
50
+ site: collection.site,
51
+ collection: collection)
52
+ document.extend(IFramable)
53
+ document.read
54
+ collection.docs << document
55
+ true
34
56
  end
35
57
  end
36
58
  end
@@ -11,5 +11,5 @@
11
11
  # limitations under the License.
12
12
 
13
13
  module JekyllJupyterNotebook
14
- VERSION = "0.0.4"
14
+ VERSION = "0.0.6"
15
15
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-jupyter-notebook
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouhei Sutou
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2018-08-08 00:00:00.000000000 Z
10
+ date: 2024-04-07 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: jekyll
@@ -52,34 +51,6 @@ dependencies:
52
51
  - - ">="
53
52
  - !ruby/object:Gem::Version
54
53
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: test-unit
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: packnga
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
54
  - !ruby/object:Gem::Dependency
84
55
  name: kramdown
85
56
  requirement: !ruby/object:Gem::Requirement
@@ -117,7 +88,6 @@ homepage: https://github.com/red-data-tools/jekyll-jupyter-notebook
117
88
  licenses:
118
89
  - Apache-2.0
119
90
  metadata: {}
120
- post_install_message:
121
91
  rdoc_options: []
122
92
  require_paths:
123
93
  - lib
@@ -132,9 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
102
  - !ruby/object:Gem::Version
133
103
  version: '0'
134
104
  requirements: []
135
- rubyforge_project:
136
- rubygems_version: 3.0.0.beta1
137
- signing_key:
105
+ rubygems_version: 3.6.0.dev
138
106
  specification_version: 4
139
107
  summary: Jekyll Jupyter Notebook plugin adds [Jupyter](http://jupyter.org/) Notebook
140
108
  support to Jekyll. You can embed Jupyter Notebooks into your texts.