You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
NOTE: Right now, https://github.com/asciidoctor/asciidoctor-doctest/issues/12[doctest issue #12] means that the generated examples will not be pretty.
141
157
142
-
You can open the generated `.html` in `test/output/slim/` in a Web browser.
158
+
You can open the generated `.html` in `test/doctest/` in a Web browser.
143
159
144
160
145
161
== Asciidoctor API's gotchas
@@ -192,12 +208,14 @@ Well, for most people.
192
208
193
209
=== Work-in-progress pull-requests
194
210
195
-
If you prepend "WIP" in front of your pull request we will understand that it is not complete and we will not merge it before you remove the WIP string.
211
+
Letting know to the maintainers that you are working on a feature or a fix is useful.
212
+
Early communication often times save time consuming mistakes or avoids duplicated effort.
213
+
We encourage contributors to communicate with us early.
196
214
197
-
This is useful to let people know that you are working on stuff.
198
-
Branches are not that visible otherwise but pull requests are.
215
+
Branches on forks of this project are not very visible to maintainers as much as pull requests (PR).
216
+
For this reason we used to recommend sending a PR even if it's not ready and prepend "WIP" in front of its name to let everyone see that you are working on a specific topic.
217
+
Now, instead of prepending "WIP", we recommend using GitHub "draft pull request" feature instead.
199
218
200
-
You might even be able to get some feedback early which could save you some time.
201
219
202
220
=== 'needs review' label
203
221
@@ -211,8 +229,7 @@ Makes triaging easier.
211
229
212
230
In order to test the Node package, you first need to build the converter into Javascript and create a tarball of the project.
213
231
214
-
$ bundle exec rake build:converter:opal
215
-
$ npm run build
232
+
$ bundle exec rake build:js
216
233
$ npm pack
217
234
218
235
That last command will produce a file named `asciidoctor-reveal.js-<version>.tgz` in the working directory.
@@ -230,16 +247,47 @@ NOTE: The relative portion of the last command is where you are installing the l
230
247
231
248
Then proceed as documented in the `README.adoc`.
232
249
233
-
=== Upgrade Asciidoctor.js version
250
+
[[node-binary-compatibility]]
251
+
=== Binary package compatibility with Asciidoctor.js
252
+
253
+
Asciidoctor.js is source-to-source compiled into JavaScript from Ruby using Opal.
254
+
The JavaScript generated requires a specific version of the Opal-runtime for it to work with Node.js.
255
+
This project is source-to-source compiled into JavaScript from Ruby using Opal too.
256
+
In order for Asciidoctor.js to be able to call code from this converter, the versions of Opal (both runtime and compiler) must be compatible.
257
+
Right now we track the exact git revision of Opal used by Asciidoctor.js and make sure that we match.
258
+
Here is how:
259
+
260
+
Versions known to work together can be found by looking at the Asciidoctor.js release notes, just replace <tag> with the `asciidoctor.js` release you are interested in: https://github.com/asciidoctor/asciidoctor.js/releases/tag/<tag>.
261
+
Then that Opal version and git revision (if required) must be specified in `asciidoctor-revealjs.gemspec`.
262
+
263
+
Starting with 3.0.0 we aim to retain binary compatibility between Asciidoctor.js and Asciidoctor-reveal.js.
264
+
This should allow other Asciidoctor extensions to be called along with this converter.
265
+
Asciidoctor.js is no longer a direct dependency but should be seen as a tool that powers this converter.
266
+
We need to allow users to have flexibility in the version they choose to run.
267
+
Asciidoctor.js maintainer told us that he is going to consider binary package incompatibility a major break and so we adjusted our README to tell users to install with a specific version range.
268
+
269
+
We will track and maintain the README on the major version supported and recommended:
270
+
271
+
* In the link:README.adoc#node-install[version range to install by default] for a given release (and on master)
272
+
* In the link:README.adoc#asciidoctorjs-compatibility-matrix[compatibility matrix]
273
+
274
+
See https://github.com/asciidoctor/asciidoctor-reveal.js/issues/187#issuecomment-570771473[this issue] for background details on that topic.
275
+
276
+
Asciidoctor.js versioning policy is https://asciidoctor-docs.netlify.com/asciidoctor.js/project/version-and-lifecycle-policies/[available here].
277
+
278
+
=== Debugging
279
+
280
+
To debug the JavaScript application, just add `--node-arg=--inspect-brk` to the npx command to run the application.
Then open the Chrome Dev Tools and click on the Node logo in the top left corner.
234
286
235
-
WARNING: It is important to track `Asciidoctor.js` and `bestikk-opal-compiler` versions together.
236
-
The `opal-compiler` used to compile our node package must match `asciidoctor.js` `opal-runtime`.
237
-
The former is explicitly installed by users on install and the later is specified in our `package.json`.
238
-
When you update one remember to update the other.
239
-
Versions known to work together can be found here, just replace <tag> with the `asciidoctor.js` release you are interested in: https://github.com/asciidoctor/asciidoctor.js/blob/<tag>/package.json
240
287
241
288
== RubyGem package
242
289
290
+
[[ruby-localversion]]
243
291
=== Test a local asciidoctor-revealjs version
244
292
245
293
Compile the converter:
@@ -258,44 +306,82 @@ Then run:
258
306
259
307
== Release process
260
308
309
+
310
+
. Make sure that the highlight plugin code embed in _lib/asciidoctor-revealjs/highlightjs.rb_ is up-to-date with the version of reveal.js
311
+
. Do we need to do anything regarding our Opal dependency and Asciidoctor.js?
312
+
See <<node-binary-compatibility,our section on the topic>>.
313
+
. Update dependencies and test the package in both languages
314
+
+
315
+
bundle update
316
+
bundle exec rake build
317
+
bundle exec rake test
318
+
bundle exec rake examples:convert
319
+
npm install
320
+
npm update
321
+
bundle exec rake build:js
322
+
npm test
323
+
npm run examples
324
+
325
+
. Commit the updated dependencies
261
326
. Update the version in `lib/asciidoctor-revealjs/version.rb` and `package.json`
. Submit a PR upstream to sync the documentation on asciidoctor.org
298
380
** Modify this page: https://github.com/asciidoctor/asciidoctor.org/edit/master/docs/asciidoctor-revealjs.adoc
381
+
. Submit a PR downstream to update Asciidoctor reveal.js version inside docker-asciidoctor
382
+
** Modify the `Dockerfile`, `Makefile` and `README.adoc` of: https://github.com/asciidoctor/docker-asciidoctor
383
+
. Submit a PR downstream to update AsciidoctorJ reveal.js version
384
+
** Modify `gradle.properties`, `asciidoctorj-revealjs/gradle.properties` and `asciidoctorj-revealjs/build.gradle` in: https://github.com/asciidoctor/asciidoctorj-reveal.js
299
385
300
386
== Ruby and asciidoctor-doctest tests
301
387
@@ -324,3 +410,23 @@ This is done using the following command:
324
410
325
411
Files in the `examples/` directory are used as tests.
326
412
Resulting slides are kept in `test/doctest/`.
413
+
414
+
415
+
== Netlify Integration
416
+
417
+
On every commit or PR, the https://www.netlify.com[Netlify] service will convert some examples into slides and host the resulting pages on its platform where it will be visible by anyone.
418
+
It hosts the converted HTML files, reveal.js framework and static content like images and CSS.
419
+
This integration will allow us to easily preview PRs and demo features to users (source and converted result).
420
+
See the `publish` rake task in `Rakefile` and the `netlify.toml` configuration file.
421
+
422
+
=== Sensitive Data Accidentally Pushed Out
423
+
424
+
Only content that is copied into the `public/` directory will be published on the Netlify site.
425
+
If, by accident, something sensitive is copied over there, delete it, rewrite the git history to remove the sensitive information and force push the branch.
426
+
Reach out to our netlify integration contact to make sure that deployed branches were rebuilt and no longer contain the sensitive information.
427
+
428
+
=== Integration Contact
429
+
430
+
Main Contact: https://github.com/Mogztter[@Mogztter]
431
+
432
+
Also, in order to stay with a free plan, only the following people have control over our netlify integration: https://github.com/Mogztter[@Mogztter], https://github.com/mojavelinux[@mojavelinux] and https://github.com/graphitefriction[@graphitefriction].
0 commit comments