Total Pageviews

Monday, 11 April 2022

用Gitbook和Github轻松打造属于自己的出版平台

用Gitbook和Github轻松搭建自出版平台.

http://imfly.github.io/how-to-create-self-publishing-platform

http://self-publishing.ebookchain.org/

关于

本电子书由gitbook-summary(以下简称Summary)生成,它是一个自动构建文档目录的小工具。这是它的中文文档,也是Demo工程。

电子书地址 源文地址

说明

想象一下,一大堆的文档,堆积在不同的文件夹里,没有索引或目录该是多么糟糕的事情。Summary可以让您从这些麻烦中解脱出来,帮您一键生成规范的目录文件,并转化为电子书(html、pdf等格式)。

本书,就是这么生成的,同时也要告诉您这个完整的实现过程。

对象

要求了解node.js,会用npm安装summary。另外,简单的git操作也要会,玩过github.com更好。

贡献

有什么想法或问题,可以直接发布到**这里**

from  https://github.com/imfly/how-to-create-self-publishing-platform

---------------------------------------------------------------

A command line tool to generate a summary.md for Gitbook.

Gitbook Summary

npm version Build Status Dependencies Status Coverage Status

A command line tool to generate a SUMMARY.MD from a folder。Demo 中文文档

EBooks

More Gitbooks : https://www.gitbook.com/@imfly

Features

  • Generate SUMMARY.md by using a CLI with some options
  • Setting with book.json
  • Link README.md to the parent directory
  • Only get '.md' files
  • Order by alphabet or numbers
  • ...

CoC (Convention over Configuration)

Source directory:

sources
├── 1-FirstChapter   // The first chapter,format: {orderNumber or alphabet}-{chapterName}.md
├────── 1-FirstDocument.md
├────── 5-SecondDocument.md  // concentrating solely on the order, not the numbers.
├── 3-SecondChapter                     // Focus only on the order, not the numbers.
├────── 1-FirstDocumentOfSecondChapter.md
├────── 2-SecondDocumentOfSecondChapter.md  
├── 7-ThirdChapter
├── FourthChapter  // May have no order
├── README.md // In addition to readme.md, not to put other markdown documents
└── book.json     // Set up the book

Install

npm install -g gitbook-summary

Using

1> Generate a SUMMARY.md Simply

$ cd /path/to/your/book/
$ book sm

or, For example:

$ book sm -r ../sailsjs-docs-gitbook/en -i 0home -u 'myApp' -c 'concepts, reference, userguides' -n "Sails.js 官方文档(中英合辑)"

To see the command line options:

$ book sm --help

  Usage: summary|sm [options]

  Generate a `SUMMARY.md` from a folder

  Options:

    -h, --help                    output usage information
    -r, --root [string]           root folder, default is `.`
    -t, --title [string]          book title, default is `Your Book Title`.
    -c, --catalog [list]          catalog folders included book files, default is `all`.
    -i, --ignores [list]          ignore folders that be excluded, default is `[]`.
    -u, --unchanged [list]        unchanged catalog like `request.js`, default is `[]`.
    -o, --outputfile [string]     output file, defaut is `./SUMMARY.md`
    -s, --sortedBy [string]       sorted by sortedBy, for example: `num-`, defaut is sorted by characters
    -d, --disableTitleFormatting  don't convert filename/folder name to start case (for example: `JavaScript` to `Java Script`), default is `false`

Notes

  • The article title is taken from title property in the articles front-matter. If this property is not available, the articles filename will be used as title for the summary.
  • The option -s or --sortedBy can not be given - as argument, because commander.js will parse it an option. But you can set it in book.json as follows.
  • set up the sortedBy and if there are any summaries missing the order, look at the example below and follow,
    for example, you have summaries like this 01-elementry-school, 02-middle-school, 03-university, ...
    you realized high school was missing, then You can make correct order in the following way
    eg. 01-elementry-school, 02-middle-school, 02a-high-school, 03-university, ...
    not 01-elementry-school, 02-middle-school, 03-high-school, 04-university, ...

2> Create a book.json in the book`s root folder

for example:

// test/books/config-json/book.json
{
    "title": "json-config-name",
    "outputfile": "test.md",
    "catalog": "all",  // or [chapter1,chapter2, ...]
    "ignores": [],  //Default: '.*', '_book'...
    "unchanged": [], // for example: ['myApp'] -> `myApp` not `My App`
    "sortedBy": "-",
    "disableTitleFormatting": true // default: false
}

then, you can do:

$ book sm

You will get a test.md file:

test.md.jpg

3> Get a markdown artical from a html file or a remote url

$ book md -l "http://book.btcnodejs.com/index.html" -s "div.className"

You will get the 'index.html' and 'index.md'.

4> Get convert between zh and zh-tw, zh-hk, or zh-sg

$ book cv -f ./test/language/test.md -l zh-tw -t "./test/language/test2.md"

Development

npm install
npm link

Test

npm test
from  https://github.com/imfly/gitbook-summary

No comments:

Post a Comment