• gradle asciidoc 使用


    备注:
       次文档参考github 例子
     
    1.环境准备
    node npm (yarn) java  KindleGen 
    备注: 具体的安装可以参考网上相关文档,KindleGen 下载地址:https://www.amazon.com/gp/feature.html?docId=1000765211
    2. 代码&&运行
    a. git clone code 
    git clone https://github.com/mraible/infoq-mini-book.git
    修改build.sh 中 KindleGen 位置比如我的在 /opt/kind/kindlegen
    b. build
    ./build.sh   //epub html 
    ./generate-pdf.sh pdf 
    3. 构建结果
    build
    └── asciidoc
        ├── epub3
        │   └── images
        └── html5
            └── images
    4. 效果
     
    5. 代码结构解析
    备注: 主要说明asciidoc 代码
    src/docs 主要是文档以及需要的图片资源
    
    └── asciidoc
        ├── chapters
        ├── images
        └── styles
            ├── epub
            │   └── fonts
            └── pdf
                └── fonts
    build.gradle gradle 构建 task
    
    buildscript {
        repositories {
            jcenter()
        }
    
        dependencies {
            classpath 'com.github.ben-manes:gradle-versions-plugin:0.15.0'
            classpath 'com.bluepapa32:gradle-watch-plugin:0.1.5'
            classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.3'
            classpath 'org.asciidoctor:asciidoctorj-epub3:1.5.0-alpha.7'
            classpath 'org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.16'
            classpath 'org.jruby:jruby-complete:9.1.12.0'
        }
    }
    
    apply plugin: 'java'
    apply plugin: 'org.asciidoctor.convert'
    apply plugin: 'com.github.ben-manes.versions'
    apply plugin: 'com.bluepapa32.watch'
    
    version = '4.1.0-SNAPSHOT'
    
    asciidoctorj {
        version = '1.5.6'
    }
    
    import org.asciidoctor.gradle.AsciidoctorTask
    
    def attrs = ['sourcedir'         : '../../../main/webapp',
                 'source-highlighter': 'coderay',
                 'epub3-stylesdir'   : './styles/epub',
                 // NOTE don't include leading ./ because it messes up paths in the epub files
                 'imagesdir'         : 'images',
                 'toc'               : 'left',
                 'icons'             : 'font',
                 'sectanchors'       : '',
                 'idprefix'          : '',
                 'idseparator'       : '-']
    
    tasks.withType(AsciidoctorTask) { task ->
        attributes attrs
        sources {
            include 'index.adoc'
        }
    }
    
    task html(type: AsciidoctorTask, description: 'Generates single page HTML') {
        backends 'html5'
    }
    
    // NOTE please use ./generate-pdf.sh instead of this task for now
    task prepress(type: AsciidoctorTask, description: 'Generates PDF for prepress printing') {
        attributes attrs + ['media' : 'prepress', 'pdfmarks': '', 'pdf-theme': 'infoq-prepress']
        attrs.remove('source-highlighter')
        requires file('src/main/ruby/asciidoctor-pdf-extensions.rb')
        backends 'pdf'
        outputDir "$buildDir/asciidoc/pdf-prepress"
        separateOutputDirs false
    }
    
    // NOTE please use ./generate-pdf.sh screen instead of this task for now
    task pdf(type: AsciidoctorTask, description: 'Generates PDF') {
        attributes attrs + ['pdfmarks': '']
        requires file('src/main/ruby/asciidoctor-pdf-extensions.rb')
        backends 'pdf'
    }
    
    task epub(type: AsciidoctorTask, description: 'Generates EPUB3') {
        backends 'epub3'
    }
    
    task mobi(type: AsciidoctorTask, description: 'Generates MOBI') {
        backends 'epub3'
        attrs.put('ebook-format', 'kf8')
        attributes attrs
    }
    
    pdf.shouldRunAfter html
    epub.shouldRunAfter pdf
    
    //task all(dependsOn: ['html', 'pdf', 'epub', 'mobi'])
    task all(dependsOn: ['html', 'epub', 'mobi'])
    
    defaultTasks 'all'
    
    watch {
        asciidoc {
            files fileTree(dir: 'src/docs/asciidoc', include: '**/*.adoc')
            tasks 'asciidoctor'
        }
    }
    6. 参考资料
    https://www.amazon.com/gp/feature.html?docId=1000765211
    http://asciidoctor.org/docs/asciidoctor-gradle-plugin/
    https://github.com/asciidoctor/asciidoctor-maven-plugin
  • 相关阅读:
    jchdl
    jchdl进展
    Verilog缺少一个复合数据类型,如C语言中的结构体
    jchdl-GSL-实例
    硬件建模-几个观点
    非阻塞赋值(Non-blocking Assignment)是个伪需求
    jchdl
    jchdl
    HDU 2686 (双线程) Matrix
    LA 3602 DNA Consensus String
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/8032432.html
Copyright © 2020-2023  润新知