3

从 CLI 运行 AsciiDoctor 会创建一个带有嵌入式样式表的 HTML 文档:

$ 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; }
...

但是,在 Ruby 文件中运行 Asciidoctor 不会:

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">
...

文档并未表明应该有任何区别。我错过了什么?

细节:

  • Asciidoctor 0.1.4
  • 红宝石 2.0.0p247
4

2 回答 2

6

要嵌入样式表,您必须以“不安全”模式呈现文件:

require 'asciidoctor'
Asciidoctor.render_file('mysample.adoc', :in_place => true, :safe => 'unsafe')
于 2014-02-25T04:36:47.517 回答
1

从技术上讲,您只需将安全模式设置为 :server 或 :safe。只有 :secure 安全模式(使用 API 时的默认值)强制启用 linkcss 属性。

我正在考虑在 1.5.0 中对此进行更改。我不认为向整个文档添加样式是不安全的。此外,有很多方法可以覆盖此行为,因此不会丢失任何内容,但肯定会获得可用性。

于 2014-03-02T00:11:51.417 回答