polyphony 0.38 → 0.43
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 +4 -4
- data/.github/workflows/test.yml +11 -2
- data/.gitignore +2 -2
- data/.rubocop.yml +30 -0
- data/CHANGELOG.md +25 -2
- data/Gemfile.lock +15 -12
- data/README.md +2 -1
- data/Rakefile +3 -3
- data/TODO.md +27 -97
- data/docs/_config.yml +56 -7
- data/docs/_sass/custom/custom.scss +0 -30
- data/docs/_sass/overrides.scss +0 -46
- data/docs/{user-guide → _user-guide}/all-about-timers.md +0 -0
- data/docs/_user-guide/index.md +9 -0
- data/docs/{user-guide → _user-guide}/web-server.md +0 -0
- data/docs/api-reference/fiber.md +2 -2
- data/docs/api-reference/index.md +9 -0
- data/docs/api-reference/polyphony-process.md +1 -1
- data/docs/api-reference/thread.md +1 -1
- data/docs/faq.md +21 -11
- data/docs/getting-started/index.md +10 -0
- data/docs/getting-started/installing.md +2 -6
- data/docs/getting-started/overview.md +486 -0
- data/docs/getting-started/tutorial.md +27 -19
- data/docs/index.md +1 -1
- data/docs/main-concepts/concurrency.md +0 -5
- data/docs/main-concepts/design-principles.md +69 -21
- data/docs/main-concepts/extending.md +1 -1
- data/docs/main-concepts/index.md +9 -0
- data/examples/core/01-spinning-up-fibers.rb +1 -0
- data/examples/core/03-interrupting.rb +4 -1
- data/examples/core/04-handling-signals.rb +19 -0
- data/examples/core/xx-agent.rb +102 -0
- data/examples/core/xx-sleeping.rb +14 -6
- data/examples/io/tunnel.rb +48 -0
- data/examples/io/xx-irb.rb +1 -1
- data/examples/performance/thread-vs-fiber/polyphony_mt_server.rb +7 -6
- data/examples/performance/thread-vs-fiber/polyphony_server.rb +13 -36
- data/examples/performance/thread-vs-fiber/polyphony_server_read_loop.rb +58 -0
- data/examples/performance/xx-array.rb +11 -0
- data/examples/performance/xx-fiber-switch.rb +9 -0
- data/examples/performance/xx-snooze.rb +15 -0
- data/ext/{gyro → polyphony}/extconf.rb +2 -2
- data/ext/{gyro → polyphony}/fiber.c +17 -23
- data/ext/{gyro → polyphony}/libev.c +0 -0
- data/ext/{gyro → polyphony}/libev.h +0 -0
- data/ext/polyphony/libev_agent.c +718 -0
- data/ext/polyphony/libev_queue.c +216 -0
- data/ext/{gyro/gyro.c → polyphony/polyphony.c} +16 -40
- data/ext/{gyro/gyro.h → polyphony/polyphony.h} +19 -39
- data/ext/polyphony/polyphony_ext.c +23 -0
- data/ext/{gyro → polyphony}/socket.c +21 -18
- data/ext/polyphony/thread.c +206 -0
- data/ext/{gyro → polyphony}/tracing.c +1 -1
- data/lib/polyphony.rb +19 -14
- data/lib/polyphony/adapters/irb.rb +1 -1
- data/lib/polyphony/adapters/postgres.rb +6 -5
- data/lib/polyphony/adapters/process.rb +5 -5
- data/lib/polyphony/adapters/trace.rb +28 -28
- data/lib/polyphony/core/channel.rb +3 -3
- data/lib/polyphony/core/exceptions.rb +1 -1
- data/lib/polyphony/core/global_api.rb +13 -11
- data/lib/polyphony/core/resource_pool.rb +3 -3
- data/lib/polyphony/core/sync.rb +2 -2
- data/lib/polyphony/core/thread_pool.rb +6 -6
- data/lib/polyphony/core/throttler.rb +13 -6
- data/lib/polyphony/event.rb +27 -0
- data/lib/polyphony/extensions/core.rb +22 -14
- data/lib/polyphony/extensions/fiber.rb +4 -4
- data/lib/polyphony/extensions/io.rb +59 -25
- data/lib/polyphony/extensions/openssl.rb +36 -16
- data/lib/polyphony/extensions/socket.rb +27 -9
- data/lib/polyphony/extensions/thread.rb +16 -9
- data/lib/polyphony/net.rb +9 -9
- data/lib/polyphony/version.rb +1 -1
- data/polyphony.gemspec +4 -4
- data/test/helper.rb +14 -1
- data/test/test_agent.rb +124 -0
- data/test/{test_async.rb → test_event.rb} +15 -7
- data/test/test_ext.rb +25 -4
- data/test/test_fiber.rb +19 -10
- data/test/test_global_api.rb +4 -4
- data/test/test_io.rb +46 -24
- data/test/test_queue.rb +74 -0
- data/test/test_signal.rb +3 -40
- data/test/test_socket.rb +34 -0
- data/test/test_thread.rb +37 -16
- data/test/test_trace.rb +6 -5
- metadata +40 -43
- data/docs/_includes/nav.html +0 -51
- data/docs/_includes/prevnext.html +0 -17
- data/docs/_layouts/default.html +0 -106
- data/docs/api-reference.md +0 -11
- data/docs/api-reference/gyro-async.md +0 -57
- data/docs/api-reference/gyro-child.md +0 -29
- data/docs/api-reference/gyro-queue.md +0 -44
- data/docs/api-reference/gyro-timer.md +0 -51
- data/docs/api-reference/gyro.md +0 -25
- data/docs/getting-started.md +0 -10
- data/docs/main-concepts.md +0 -10
- data/docs/user-guide.md +0 -10
- data/examples/core/forever_sleep.rb +0 -19
- data/ext/gyro/async.c +0 -162
- data/ext/gyro/child.c +0 -141
- data/ext/gyro/gyro_ext.c +0 -33
- data/ext/gyro/io.c +0 -489
- data/ext/gyro/queue.c +0 -142
- data/ext/gyro/selector.c +0 -228
- data/ext/gyro/signal.c +0 -133
- data/ext/gyro/thread.c +0 -308
- data/ext/gyro/timer.c +0 -149
- data/test/test_timer.rb +0 -56
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4eb88a97bf07f85f50aa46923883fce2fe1bbd253407021a6f5bb246e0fdcfdc
|
4
|
+
data.tar.gz: c707861eb93f709661aa90abb33519004df5ff5db16f2d3da00387b292234027
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b554716ed26188fec86606198cdca669253d921017748ef0d9231db9f01e08e046b62fc38c0c6c3595a42f1976771db8b42c352c0431cc73f4b1ed64f7edf3c9
|
7
|
+
data.tar.gz: 3ba74e7427fab47a65cd466e9bbe14e48176f737f6fd7fca21b3143d75d1dd9fa2ddef24b723d83f26f321949171359d946cfd4281b3b96c33bf43593199adce
|
data/.github/workflows/test.yml
CHANGED
@@ -4,12 +4,21 @@ on: [push]
|
|
4
4
|
|
5
5
|
jobs:
|
6
6
|
build:
|
7
|
-
|
7
|
+
strategy:
|
8
|
+
fail-fast: false
|
9
|
+
matrix:
|
10
|
+
os: [ubuntu-latest]
|
11
|
+
ruby: [2.6, 2.7]
|
12
|
+
|
13
|
+
name: >-
|
14
|
+
${{matrix.os}}, ${{matrix.ruby}}
|
15
|
+
|
16
|
+
runs-on: ${{matrix.os}}
|
8
17
|
steps:
|
9
18
|
- uses: actions/checkout@v1
|
10
19
|
- uses: actions/setup-ruby@v1
|
11
20
|
with:
|
12
|
-
ruby-version:
|
21
|
+
ruby-version: ${{matrix.ruby}}
|
13
22
|
- name: Install dependencies
|
14
23
|
run: |
|
15
24
|
gem install bundler
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -143,3 +143,33 @@ Style/HashTransformKeys:
|
|
143
143
|
|
144
144
|
Style/HashTransformValues:
|
145
145
|
Enabled: true
|
146
|
+
|
147
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
148
|
+
Enabled: true
|
149
|
+
|
150
|
+
Layout/SpaceAroundMethodCallOperator:
|
151
|
+
Enabled: true
|
152
|
+
|
153
|
+
Lint/DeprecatedOpenSSLConstant:
|
154
|
+
Enabled: true
|
155
|
+
|
156
|
+
Lint/MixedRegexpCaptureTypes:
|
157
|
+
Enabled: true
|
158
|
+
|
159
|
+
Lint/RaiseException:
|
160
|
+
Enabled: true
|
161
|
+
|
162
|
+
Lint/StructNewOverride:
|
163
|
+
Enabled: true
|
164
|
+
|
165
|
+
Style/ExponentialNotation:
|
166
|
+
Enabled: true
|
167
|
+
|
168
|
+
Style/RedundantRegexpCharacterClass:
|
169
|
+
Enabled: true
|
170
|
+
|
171
|
+
Style/RedundantRegexpEscape:
|
172
|
+
Enabled: true
|
173
|
+
|
174
|
+
Style/SlicingWithRange:
|
175
|
+
Enabled: true
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,26 @@
|
|
1
|
+
## 0.43 2020-07-05
|
2
|
+
|
3
|
+
* Add IO#read_loop
|
4
|
+
* Fix OpenSSL extension
|
5
|
+
* More work on docs
|
6
|
+
|
7
|
+
## 0.42 2020-07-03
|
8
|
+
|
9
|
+
* Improve documentation
|
10
|
+
* Fix backtrace on SIGINT
|
11
|
+
* Implement LibevAgent#accept_loop, #read_loop
|
12
|
+
* Move ref counting from thread to agent
|
13
|
+
* Short circuit switchpoint if continuing with the same fiber
|
14
|
+
* Always do a switchpoint in #read, #write, #accept
|
15
|
+
|
16
|
+
## 0.41 2020-06-27
|
17
|
+
|
18
|
+
* Introduce System Agent design, remove all `Gyro` classes
|
19
|
+
|
20
|
+
## 0.40 2020-05-04
|
21
|
+
|
22
|
+
* More improvements to stability after fork
|
23
|
+
|
1
24
|
## 0.38 2020-04-13
|
2
25
|
|
3
26
|
* Fix post-fork segfault if parent process has multiple threads with active watchers
|
@@ -17,13 +40,13 @@
|
|
17
40
|
|
18
41
|
* Rename `Fiber#cancel!` to `Fiber#cancel`
|
19
42
|
* Rename `Gyro::Async#signal!` to `Gyro::Async#signal`
|
20
|
-
* Use `Fiber#
|
43
|
+
* Use `Fiber#auto_watcher` in thread pool, thread extension
|
21
44
|
* Implement `Fiber#auto_io` for reusing IO watcher instances
|
22
45
|
* Refactor C code
|
23
46
|
|
24
47
|
## 0.34 2020-03-25
|
25
48
|
|
26
|
-
* Add `Fiber#
|
49
|
+
* Add `Fiber#auto_watcher` mainly for use in places like `Gyro::Queue#shift`
|
27
50
|
* Refactor C extension
|
28
51
|
* Improved GC'ing for watchers
|
29
52
|
* Implement process supervisor (`Polyphony::ProcessSupervisor`)
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
polyphony (0.
|
4
|
+
polyphony (0.43)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -27,7 +27,6 @@ GEM
|
|
27
27
|
multi_xml (>= 0.5.2)
|
28
28
|
i18n (0.9.5)
|
29
29
|
concurrent-ruby (~> 1.0)
|
30
|
-
jaro_winkler (1.5.4)
|
31
30
|
jekyll (3.8.6)
|
32
31
|
addressable (~> 2.4)
|
33
32
|
colorator (~> 1.0)
|
@@ -52,10 +51,10 @@ GEM
|
|
52
51
|
jekyll-watch (2.2.1)
|
53
52
|
listen (~> 3.0)
|
54
53
|
json (2.3.0)
|
55
|
-
just-the-docs (0.
|
56
|
-
jekyll (
|
54
|
+
just-the-docs (0.3.0)
|
55
|
+
jekyll (>= 3.8.5)
|
57
56
|
jekyll-seo-tag (~> 2.0)
|
58
|
-
rake (
|
57
|
+
rake (>= 12.3.1, < 13.1.0)
|
59
58
|
kramdown (1.17.0)
|
60
59
|
liquid (4.0.3)
|
61
60
|
listen (3.2.1)
|
@@ -78,7 +77,7 @@ GEM
|
|
78
77
|
ast (~> 2.4.0)
|
79
78
|
pathutil (0.16.2)
|
80
79
|
forwardable-extended (~> 2.6)
|
81
|
-
pg (1.1.
|
80
|
+
pg (1.1.4)
|
82
81
|
public_suffix (4.0.3)
|
83
82
|
rainbow (3.0.0)
|
84
83
|
rake (12.3.3)
|
@@ -88,16 +87,20 @@ GEM
|
|
88
87
|
rb-inotify (0.10.1)
|
89
88
|
ffi (~> 1.0)
|
90
89
|
redis (4.1.0)
|
90
|
+
regexp_parser (1.7.1)
|
91
91
|
rexml (3.2.4)
|
92
92
|
rouge (3.15.0)
|
93
|
-
rubocop (0.
|
94
|
-
jaro_winkler (~> 1.5.1)
|
93
|
+
rubocop (0.85.1)
|
95
94
|
parallel (~> 1.10)
|
96
95
|
parser (>= 2.7.0.1)
|
97
96
|
rainbow (>= 2.2.2, < 4.0)
|
97
|
+
regexp_parser (>= 1.7)
|
98
98
|
rexml
|
99
|
+
rubocop-ast (>= 0.0.3)
|
99
100
|
ruby-progressbar (~> 1.7)
|
100
|
-
unicode-display_width (>= 1.4.0, <
|
101
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
102
|
+
rubocop-ast (0.0.3)
|
103
|
+
parser (>= 2.7.0.1)
|
101
104
|
ruby-progressbar (1.10.1)
|
102
105
|
rubyzip (2.0.0)
|
103
106
|
safe_yaml (1.0.5)
|
@@ -123,15 +126,15 @@ DEPENDENCIES
|
|
123
126
|
jekyll (~> 3.8.6)
|
124
127
|
jekyll-remote-theme (~> 0.4.1)
|
125
128
|
jekyll-seo-tag (~> 2.6.1)
|
126
|
-
just-the-docs (~> 0.
|
129
|
+
just-the-docs (~> 0.3.0)
|
127
130
|
localhost (= 1.1.4)
|
128
131
|
minitest (= 5.13.0)
|
129
132
|
minitest-reporters (= 1.4.2)
|
130
|
-
pg (= 1.1.
|
133
|
+
pg (= 1.1.4)
|
131
134
|
polyphony!
|
132
135
|
rake-compiler (= 1.0.5)
|
133
136
|
redis (= 4.1.0)
|
134
|
-
rubocop (= 0.
|
137
|
+
rubocop (= 0.85.1)
|
135
138
|
simplecov (= 0.17.1)
|
136
139
|
|
137
140
|
BUNDLED WITH
|
data/README.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# Polyphony - Fine-Grained Concurrency for Ruby
|
2
2
|
|
3
|
+
|
3
4
|
[](http://rubygems.org/gems/polyphony)
|
4
5
|
[](https://github.com/digital-fabric/polyphony/actions?query=workflow%3ATests)
|
5
6
|
[](https://github.com/digital-fabric/polyphony/blob/master/LICENSE)
|
@@ -46,4 +47,4 @@ The complete documentation for Polyphony could be found on the
|
|
46
47
|
|
47
48
|
Issues and pull requests will be gladly accepted. Please use the [Polyphony git
|
48
49
|
repository](https://github.com/digital-fabric/polyphony) as your primary point
|
49
|
-
of departure for contributing.
|
50
|
+
of departure for contributing.
|
data/Rakefile
CHANGED
@@ -4,8 +4,8 @@ require "bundler/gem_tasks"
|
|
4
4
|
require "rake/clean"
|
5
5
|
|
6
6
|
require "rake/extensiontask"
|
7
|
-
Rake::ExtensionTask.new("
|
8
|
-
ext.ext_dir = "ext/
|
7
|
+
Rake::ExtensionTask.new("polyphony_ext") do |ext|
|
8
|
+
ext.ext_dir = "ext/polyphony"
|
9
9
|
end
|
10
10
|
|
11
11
|
task :recompile => [:clean, :compile]
|
@@ -20,7 +20,7 @@ task :stress_test do
|
|
20
20
|
end
|
21
21
|
|
22
22
|
task :docs do
|
23
|
-
exec 'RUBYOPT=-W0 jekyll serve -s docs'
|
23
|
+
exec 'RUBYOPT=-W0 jekyll serve -s docs -H ec2-35-158-110-38.eu-central-1.compute.amazonaws.com'
|
24
24
|
end
|
25
25
|
|
26
26
|
CLEAN.include "**/*.o", "**/*.so", "**/*.bundle", "**/*.jar", "pkg", "tmp"
|
data/TODO.md
CHANGED
@@ -1,42 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
The use case is being able to supervise fibers that run on separate threads.
|
4
|
-
This might be useful for distributing jobs (such as handling HTTP connections)
|
5
|
-
over multiple threads.
|
1
|
+
## 0.43
|
6
2
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
thread (in `Thread#initialize`).
|
12
|
-
- An API:
|
13
|
-
|
14
|
-
```ruby
|
15
|
-
spin(on_thread: thread) { do_something_important }
|
16
|
-
```
|
17
|
-
|
18
|
-
An alternative is to turn the main fiber of spawned threads into a child of
|
19
|
-
the spawning fiber. But since a lot of people might start threads without any
|
20
|
-
regard to fibers, it might be better to implement this in a new API. An
|
21
|
-
example of the top of my head for threads that shouldn't be children of the
|
22
|
-
spawning fiber is our own test helper, which kills all child fibers after each
|
23
|
-
test. MiniTest has some threads it spawns for running tests in parallel, and
|
24
|
-
we don't want to stop them after each test!
|
25
|
-
|
26
|
-
So, a good solution would be:
|
27
|
-
|
28
|
-
```ruby
|
29
|
-
t = Thread.new { do_stuff }
|
30
|
-
t.parent_fiber = Fiber.current
|
31
|
-
# or otherwise:
|
32
|
-
Fiber.current.add_child_fiber(t.main_fiber)
|
33
|
-
```
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
## 0.40 Some more API work, more docs
|
3
|
+
- Reimplement ResourcePool, Channel, Mutex using LibevQueue
|
4
|
+
-- Add `Fiber#schedule_with_priority` method, aliased by `Fiber#wakeup`
|
5
|
+
- Implement agent interface is virtual function table
|
6
|
+
- Implement proxy agent for plugging in a user-provided agent class
|
40
7
|
|
41
8
|
- Debugging
|
42
9
|
- Eat your own dogfood: need a good tool to check what's going on when some
|
@@ -148,13 +115,12 @@
|
|
148
115
|
- links to the interesting stuff
|
149
116
|
- benchmarks
|
150
117
|
- explain difference between `sleep` and `suspend`
|
151
|
-
- add explanation about async vs sync, blocking vs non-blocking
|
152
118
|
- discuss using `snooze` for ensuring responsiveness when executing CPU-bound work
|
153
119
|
|
154
|
-
- Check why first call to `#sleep` returns too early in tests. Check the
|
155
|
-
sleep behaviour in a spawned thread.
|
156
120
|
|
157
|
-
## 0.
|
121
|
+
## 0.44
|
122
|
+
|
123
|
+
### Some more API work, more docs
|
158
124
|
|
159
125
|
- sintra app with database access (postgresql)
|
160
126
|
|
@@ -164,13 +130,16 @@
|
|
164
130
|
- test performance
|
165
131
|
- proceed from there
|
166
132
|
|
167
|
-
|
133
|
+
|
134
|
+
## 0.45
|
135
|
+
|
136
|
+
### Sinatra / Sidekiq
|
168
137
|
|
169
138
|
- Pull out redis/postgres code, put into new `polyphony-xxx` gems
|
170
139
|
|
171
|
-
## 0.
|
140
|
+
## 0.46
|
172
141
|
|
173
|
-
|
142
|
+
### Testing && Docs
|
174
143
|
|
175
144
|
- More tests
|
176
145
|
- Implement some basic stuff missing:
|
@@ -180,11 +149,11 @@
|
|
180
149
|
- `IO.foreach`
|
181
150
|
- `Process.waitpid`
|
182
151
|
|
183
|
-
## 0.
|
152
|
+
## 0.47
|
184
153
|
|
185
|
-
|
154
|
+
### Real IO#gets and IO#read
|
186
155
|
|
187
|
-
## 0.
|
156
|
+
## 0.48 DNS
|
188
157
|
|
189
158
|
### DNS client
|
190
159
|
|
@@ -217,56 +186,17 @@ Prior art:
|
|
217
186
|
|
218
187
|
- https://github.com/socketry/async-dns
|
219
188
|
|
220
|
-
|
221
|
-
|
222
|
-
- Introduce mailbox limiting:
|
223
|
-
- add API for limiting mailbox size:
|
224
|
-
|
225
|
-
```ruby
|
226
|
-
Fiber.current.mailbox_limit = 1000
|
227
|
-
```
|
228
|
-
|
229
|
-
- Add the limit for `Gyro::Queue`
|
230
|
-
|
231
|
-
```ruby
|
232
|
-
Gyro::Queue.new(1000)
|
233
|
-
```
|
234
|
-
|
235
|
-
- Pushing to a limited queue will block if limit is reached
|
236
|
-
|
237
|
-
- Introduce selective receive:
|
238
|
-
|
239
|
-
```ruby
|
240
|
-
# returns (or waits for) the first message for which the block returns true
|
241
|
-
(_, item) = receive { |msg| msg.first == ref }
|
242
|
-
```
|
243
|
-
|
244
|
-
Possible implementation:
|
245
|
-
|
246
|
-
```ruby
|
247
|
-
def receive
|
248
|
-
return @mailbox.shift unless block_given?
|
249
|
-
|
250
|
-
loop
|
251
|
-
msg = @mailbox.shift
|
252
|
-
return msg if yield(msg)
|
253
|
-
|
254
|
-
# message didn't match condition, put it back in queue
|
255
|
-
@mailbox.push msg
|
256
|
-
end
|
257
|
-
end
|
258
|
-
```
|
189
|
+
## Work on API
|
259
190
|
|
260
191
|
- Add option for setting the exception raised on cancelling using `#cancel_after`:
|
261
192
|
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
```
|
193
|
+
```ruby
|
194
|
+
cancel_after(3, with_error: MyErrorClass) do
|
195
|
+
do_my_thing
|
196
|
+
end
|
197
|
+
# or a RuntimeError with message
|
198
|
+
cancel_after(3, with_error: 'Cancelled due to timeout') do
|
199
|
+
do_my_thing
|
200
|
+
end
|
201
|
+
```
|
272
202
|
|
data/docs/_config.yml
CHANGED
@@ -1,15 +1,64 @@
|
|
1
1
|
title: "Polyphony"
|
2
|
+
description: Fine-grained concurrency for Ruby
|
2
3
|
|
4
|
+
plugins:
|
5
|
+
- jekyll-remote-theme
|
6
|
+
|
7
|
+
permalink: pretty
|
3
8
|
remote_theme: pmarsceill/just-the-docs
|
4
|
-
color_scheme:
|
9
|
+
color_scheme: light
|
5
10
|
|
6
11
|
search_enabled: true
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
+
search:
|
13
|
+
# Split pages into sections that can be searched individually
|
14
|
+
# Supports 1 - 6, default: 2
|
15
|
+
heading_level: 2
|
16
|
+
# Maximum amount of previews per search result
|
17
|
+
# Default: 3
|
18
|
+
previews: 3
|
19
|
+
# Maximum amount of words to display before a matched word in the preview
|
20
|
+
# Default: 5
|
21
|
+
preview_words_before: 5
|
22
|
+
# Maximum amount of words to display after a matched word in the preview
|
23
|
+
# Default: 10
|
24
|
+
preview_words_after: 10
|
25
|
+
# Set the search token separator
|
26
|
+
# Default: /[\s\-/]+/
|
27
|
+
# Example: enable support for hyphenated search words
|
28
|
+
tokenizer_separator: /[\s/]+/
|
29
|
+
# Display the relative url in search results
|
30
|
+
# Supports true (default) or false
|
31
|
+
rel_url: true
|
32
|
+
# Enable or disable the search button that appears in the bottom right corner of every page
|
33
|
+
# Supports true or false (default)
|
34
|
+
button: false
|
12
35
|
|
13
36
|
aux_links:
|
14
37
|
"Polyphony on GitHub":
|
15
|
-
- "//github.com/digital-fabric/polyphony"
|
38
|
+
- "//github.com/digital-fabric/polyphony"
|
39
|
+
|
40
|
+
# Makes Aux links open in a new tab. Default is false
|
41
|
+
aux_links_new_tab: false
|
42
|
+
|
43
|
+
# Enable or disable heading anchors
|
44
|
+
heading_anchors: true
|
45
|
+
|
46
|
+
back_to_top: true
|
47
|
+
back_to_top_text: "Back to top"
|
48
|
+
|
49
|
+
footer_content: "Copyright © 2020 Sharon Rosner. Distributed by an <a href=\"https://github.com/digital-fabric/polyphony/tree/master/LICENSE\">MIT license.</a>"
|
50
|
+
|
51
|
+
# Footer "Edit this page on GitHub" link text
|
52
|
+
gh_edit_link: true # show or hide edit this page link
|
53
|
+
gh_edit_link_text: "Edit this page on GitHub"
|
54
|
+
gh_edit_repository: "https://github.com/digital-fabric/polyphony" # the github URL for your repo
|
55
|
+
gh_edit_branch: "master/docs" # the branch that your docs is served from
|
56
|
+
gh_edit_view_mode: "tree" # "tree" or "edit" if you want the user to jump into the editor immediately
|
57
|
+
|
58
|
+
compress_html:
|
59
|
+
clippings: all
|
60
|
+
comments: all
|
61
|
+
endings: all
|
62
|
+
startings: []
|
63
|
+
blanklines: false
|
64
|
+
profile: false
|