Jekyll,修改一些html标签的呈现方式



我想修改一些html标签在jekyll上呈现的方式。我需要的是自动添加一些css类(在本例中为"。

我正在使用红毯降价处理器。我想我需要写一个插件来扩展渲染器,但我找不到任何好的例子…

我想到了这个,但它只是一个复制/粘贴工作,它不起作用…

require 'redcarpet'
class BootstrapTables < Redcarpet::Render::HTML
  def table(header, body)
    "n<table class='table'><thead>n#{ header }</thead><tbody>n#{ body }</tbody></table>n"
  end
end

有人能帮忙吗?

我已经测试过,您可以使用kramdown

为markdown元素提供一个类
{:.foo}
| First Header  | Second Header |
| ------------- | ------------- |
| Content Cell  | Content Cell  |
| Content Cell  | Content Cell  |

你的表有一个类foo

注意:这个答案是一个月前在SO给出的

我找到了方法并纠正了代码,我需要一个正确配置的自定义渲染器。使用RedcarpetExt作为_config中的标记变量。Yaml 将激活它。

# Create a custom renderer that extend Redcarpet to customize its behavior.
require 'jekyll'
require 'redcarpet'
class RedcarpetExtender < Redcarpet::Render::HTML
  # Extend the table to be compatible with the Bootstrap css.
  def table(header, body)
    "n<table class='table-bordered table-hover'><thead>n#{ header }</thead><tbody>n#{ body }</tbody></table>n"
  end
end
class Jekyll::Converters::Markdown::RedcarpetExt
  def initialize(config)
    @site_config = config
  end
  def extensions
    Hash[ *@site_config['redcarpet']['extensions'].map {|e| [e.to_sym, true]}.flatten ]
  end
  def markdown
    @markdown ||= Redcarpet::Markdown.new(RedcarpetExtender, extensions)
  end
  def convert(content)
    return super unless @site_config['markdown'] == 'RedcarpetExt'
    markdown.render(content)
  end
end

另一个解决方案是使用sass Bootstrap版本。

此版本与twbs/bootstrap同步,sass/scss由Jekyll原生支持。

然后,一旦你的sass工作(这需要五分钟),你只需要创建一个自定义样式的规则。SCSS文件:

table{
  @extend .table;
}

然后每个表将使用。table引导规则

相关内容

  • 没有找到相关文章

最新更新