質問

Running AsciiDoctor from the CLI creates a HTML document with an embedded stylesheet:

$ asciidoctor mysample.adoc

....
<title>My First Experience with the Dangers of Documentation</title>
<style>
/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; }
...

However, running Asciidoctor in a Ruby file does not:

r.rb:

#!/usr/bin/env ruby

require 'asciidoctor'
Asciidoctor.render_file('mysample.adoc', :in_place => true)

$ ./r.rb

...
<title>My First Experience with the Dangers of Documentation</title>
<link rel="stylesheet" href="./asciidoctor.css">
...

The documentation doesn't indicate that there should be any difference. What am I missing?

Details:

  • Asciidoctor 0.1.4
  • ruby 2.0.0p247
役に立ちましたか?

解決

To embed the stylesheet, you must have to render the file in the "unsafe" mode:

require 'asciidoctor'
Asciidoctor.render_file('mysample.adoc', :in_place => true, :safe => 'unsafe')

他のヒント

Technically, you only need to set the safe mode to :server or :safe. Only the :secure safe mode (the default when using the API) forcefully enables the linkcss attribute.

I'm thinking about changing this in 1.5.0. I don't think that adding styles to the full document is insecure in any way. Besides, there are plenty of ways to override this behavior so nothing is lost, but usability is definitely gained.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top