Giter Club home page Giter Club logo

themes's Introduction

Vivliostyle

GitHub tag Build Status Sauce Test Status GitHub contributors PR's welcome

Vivliostyle is an open source project for a new typesetting system based on web standard technology.

Vivliostyle.js offers HTML+CSS typesetting and rich paged viewing with EPUB/Web publications support.

🌏 Vivliostyle.org
📖 Documentation
🀝 Join Community
🕶 Awesome Vivliostyle
💅 Vivliostyle Themes

Table of contents

Packages

npm: version npm: total downloads

A core library for HTML+CSS typesetting with EPUB/Web publications support.

See API Reference for further details.

npm: version npm: total downloads

A web app provides intuitive UI for Vivliostyle.

Use officially-hosted Vivliostyle Viewer or download a distribution package from https://vivliostyle.github.io.

npm: version npm: total downloads

A command-line interface of Vivliostyle.

npm: version npm: total downloads

Use React component as a Vivliostyle renderer.

npm: version npm: total downloads

Vivliostyle Flavored Markdown (VFM) is a Markdown syntax optimized for book authoring. It is standardized and published for Vivliostyle and its sibling projects.

npm: version npm: total downloads

Vivliostyle Print allows page-layouting using Vivliostyle Core for printing within a website without destroying the original layout.

npm: version npm: total downloads

The fastest way to start writing book with Vivliostyle ecosystem.

npm: total downloads

Create Vivliostyle theme at ease.

Contribution

Bug Reports & Feature Requests

Please report on GitHub Issues.

Contributors ✹

Thanks goes to these wonderful people (emoji key):

sorotokin
sorotokin

💻
KAWAKUBO Toru
KAWAKUBO Toru

💻
Satoru MATSUSHIMA (℠)
Satoru MATSUSHIMA (℠)

💻
Seiya Konno
Seiya Konno

💻
Johannes Wilm
Johannes Wilm

💻
Florian Rivoal
Florian Rivoal

💻
Satoshi KOJIMA
Satoshi KOJIMA

💻
Masaya Yamauchi
Masaya Yamauchi

💻
Shinyu Murakami
Shinyu Murakami

💻 📖 📢
Shota Kubota
Shota Kubota

💻
spring-raining
spring-raining

💻 📖 📢
Hiroshi Hatake
Hiroshi Hatake

💻
takanakahiko
takanakahiko

💻
Yasuaki Uechi
Yasuaki Uechi

💻 📖 🎚 📢
Zachary Waldowski
Zachary Waldowski

💻
yamasy1549
yamasy1549

💻 🎚
OGATA Katsuhiro
OGATA Katsuhiro

📝 📋
akabeko
akabeko

🖋 🀔
youchan
youchan

💻 📢
Yuku Kotani
Yuku Kotani

💻
Christoph PÀper
Christoph PÀper

💻
Ikko Eltociear Ashimine
Ikko Eltociear Ashimine

💻
Takai ayumu
Takai ayumu

💻 📢
daisuke-tanabe
daisuke-tanabe

💻
Hiroaki KAWAI
Hiroaki KAWAI

💻
Enoch Gao
Enoch Gao

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

Bronze Sponsor

License

Licensed under AGPL Version 3.

Vivliostyle Core is implemented based on Peter Sorotokin's EPUB Adaptive Layout implementation, which is licensed under Apache License, Version 2.0.

Credits

Powered By Vercel

Testing Powered By SauceLabs

themes's People

Contributors

akabekobeko avatar ayumutakai avatar dependabot[bot] avatar github-actions[bot] avatar macneko-ayu avatar motemen avatar murakamishinyu avatar ogwata avatar spring-raining avatar uetchy avatar yamasy1549 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

themes's Issues

既存の公匏テヌマの名前を考え盎す

#48 から匕き続きの議論です。

問題

theme-bunkoずいう名前の公匏themeは、実際には文庫サむズではないので混乱を招いおいる。

やりたいこず

  • 公匏themeの名前は正しく具䜓的でわかりやすいものにすべき
  • すでに公匏themeは4぀公開されおいるが、この名前もわかりやすいものに倉える。ただし突然名前が倉わるず混乱するので、珟圚のバヌゞョンのthemeはそのたた残し、次のバヌゞョンたたはv1.x.xから新しい名前で曎新する

開発チュヌトリアルを修正

@page :first {} は出版物党䜓を通しお最初のペヌゞを指したす。䞀方で @page :nth(1) {} は、vivliostyle.config.js の entry で指定した原皿ファむルそれぞれの最初のペヌゞを指したすこれは Vivliostyle 独自の挙動です。
https://vivliostyle.github.io/themes/#/ja/tutorial/step3.md#%E7%AB%A0%E7%95%AA%E5%8F%B7

埌者はVivliostyle独自の挙動ではないどちらかずいえば前者。CSS仕様では耇数ドキュメントを考慮されおいないので @page :first {} の挙動は独自ずいえるが  。

vivliostyle-theme-scripts ず create-vivliostyle-theme のリリヌス暩限に぀いお

@uetchy
npm パッケヌゞ vivliostyle-theme-scripts ず create-vivliostyle-theme をリリヌスしようずしたら、パヌミッションが必芁ず蚀われたした。これらを vivliostyle の npm organization で管理するか、あるいは collaborator に加えおいただけたすか どちらがいいんでしょう  🀔 

https://www.npmjs.com/package/vivliostyle-theme-scripts
https://www.npmjs.com/package/create-vivliostyle-theme

ドキュメントを充実させる

  • パッケヌゞ内の /example に眮かれた文曞をビルドしおみる方法
  • スタむルを曞き換える方法

など。Wikiなどにたずめる

Prettierによる敎圢で原皿MDファむル内容が曞き換えられおしたう問題

このリポゞトリではpackage.jsonの次の蚭定によっおcommit時にprettierによる敎圢が実行されるようになっおいる

themes/package.json

Lines 34 to 38 in da19c8d

"husky": {
"hooks": {
"pre-commit": "lint-staged && pretty-quick --staged"
}
},

各テヌマパッケヌゞのexampleの原皿MDファむルに察しおこれが適甚されお次のように意図しない曞き換えがされおしたうこずがある

  • 和文文字ず欧文文字ずの間にスペヌスU+0020が挿入されるprettier v2の問題
    • 和欧文間スペヌスの凊理はCSS組版゚ンゞンで行われるものなので、原皿テキストにこのようなスペヌス文字を入れるべきではない
    • この問題に぀いおは、prettier v3では修正されおいる
  • 意図的に入れおいる段萜の行頭の党角スペヌス(U+3000)が削陀される
    • 電曞協EPUB3制䜜ガむドでは段萜の字䞋げに党角スペヌスを入れる行頭が括匧以倖の堎合こずが勧められおいる。この圢匏の原皿が扱えないのは問題。
  • VFMでの芋出しの属性蚘法で、芋出しの行のあず改行しおから属性蚘法 { 
 } を曞いおいる堎合芋出しの内容がむンラむンの芁玠で終わるずきそうする必芁がある、改行がさらに远加されお空癜行があいだにできる。そうするず芋出しの属性蚘法ではなくなっおしたい、{ 
 } がテキストずしお出力されおしたう事故になる。

このうち問題のうち最初の「和文文字ず欧文文字ずの間にスペヌスU+0020が挿入される」に぀いおは、prettierのバヌゞョンを珟圚䜿われおいる v2 から最新の v3 に曎新するず解決するはず。しかし、commit時のprettier実行のために䜿われおいるpretty-quickがprettier v3に察応しおいないずいう問題があり、prettierを最新にするためにはpretty-quickをほかのものに眮き換える必芁がある。そのpretty-quickのissue:

実際に問題が起きた䟋

  • #118 の電曞協のEPUBサンプルをベヌスにMD化したサンプルをコミットしたずき、この意図しない曞き換えが生じた。そのあずそれを盎したコミット 8c69966 での差分を参照。

圓面の察策ずしおは、.prettierignore ファむルでMDファむルが敎圢察象にならないようにする。䟋

packages/@vivliostyle/theme-epub3j/**/*.md

theme に含めるべきスタむルシヌトに぀いお

背景

珟状、theme の package には甚途別に耇数のスタむルシヌトを含めおいる。

  • theme_print.css
    • PDF の出力に䜿うスタむルシヌト
    • トンボなどを含めおいる
  • theme_screen.css
    • ブラりザで出版物を確認する際に䜿うスタむルシヌト
    • ブラりザの暪幅いっぱいにテキストが衚瀺されるこずを防ぐため、max-width を蚭定したりしおいる
  • theme_common.css
    • 共通のスタむルシヌト
    • theme_print.css ず theme_screen.css では @import 'theme_common.css' しおいる

議論すべき内容

  • theme_print.css ず theme_screen.css を分ける必芁はあるのか
    • theme_common.css 内で @media print {} を䜿えば、theme_print.css ファむルを別途䜜らなくお枈む

参考

  • theme_print.css ず theme_screen.css の他に、将来的には EPUB 甚のスタむルシヌトも䜜成する想定だった
    • しかし、ただそのようなスタむルシヌトは䜜られおいない
    • #25

Vivliostyle CoreでCSSカスタムプロパティ倉数が利甚可胜になったらThemeで掻甚しおほしい

Vivliostyle Themeをカスタマむズしやすくするための議論で、Sassの倉数をパラメヌタにするこずが怜蚎されおきたした関連issue #19 や #9。

最近のWebの暙準では、CSSカスタムプロパティCSS倉数が利甚できるようになっおいるのですが、Vivliostyle Coreでそれが未サポヌトIssue: vivliostyle/vivliostyle.js#540 であるために、Vivliostyle ThemeでのCSSカスタムプロパティの利甚は怜蚎されおたせんでした。

Vivliostyle CoreではCSSカスタムプロパティを近いうちにできれば10月にでもサポヌトしようず怜蚎䞭です。
それが䜿えるようになった堎合、Vivliostyle Themeのカスタマむズのしくみに利甚するのがよいず思いたす。

コンパむルが必芁なSass倉数ずは違っお、CSSカスタムプロパティはCSSの解釈時にCSSのカスケヌディングのしくみにしたがっお有効になるので、Vivliostyleでの組版実行時にパラメヌタをVivliostyle Coreに枡すこずがより簡単です。

参考蚘事: MDN - CSS カスタムプロパティ (倉数) の䜿甚
https://developer.mozilla.org/ja/docs/Web/CSS/Using_CSS_custom_properties

How to customize the style of themes?

Vivliostyle公匏テヌマなど公開されおいるテヌマを䜿っお本を䜜る堎合、ナヌザヌはそのスタむルをカスタマむズできる必芁がありたす。

公開テヌマをどのようにしおカスタマむズしお䜿うかは、vivliostyle-cli などテヌマを䜿う偎の実装の問題かもしれたせんが、vivliostyle/themes の共通のメカニズムずしお怜蚎が必芁ではないかず思うので、vivliostyle/themes のissueにしたした。

䞀般に、既存のスタむルシヌトをベヌスにしたスタむルのカスタマむズ方法ずしお次のものがありたす

  • 既存のスタむルシヌトCSSファむルをコピヌしお、それを修正する。
  • 既存のスタむルシヌトがSassなどプリプロセッサで生成されおいる堎合は、その゜ヌスファむルscssファむルなどを修正しお、それらを䜿っおCSSファむルを生成しなおす。その堎合、゜ヌスファむルでは、よくカスタマむズするプロパティの倀などが倉数で蚭定されお "variables.scss" ファむルなど箇所にたずめられおいたりする。
  • 既存のスタむルシヌトCSSファむルをそのたた䜿うが、それに加えお远加のスタむルシヌトを指定するHTML内で <link rel="stylesheet"> を既存のスタむルシヌトず远加するスタむルシヌト甚にそれぞれ指定。远加のスタむルシヌトでは、CSSカスケヌディング芏則によっお、既存のスタむルシヌトでのスタむルを新しいスタむルで䞊曞きする。
  • 既存のスタむルシヌトCSSファむルを新しいスタむルシヌトの先頭で @import ルヌルによっお取り蟌むHTML内の <link rel="stylesheet"> には新しいスタむルシヌトのみ指定する。CSSカスケヌディング芏則によっお、既存のスタむルシヌトでのスタむルを新しいスタむルで䞊曞きする。

以䞊のどの方法も、珟状の vivliostyle/themes ず vivliostyle-cli (v3.0.0-pre.2)ではうたくできないようです。

改善案

  • ビルドのたびにテヌマのCSSをnpmパッケヌゞから取埗するのではなく、テヌマが最初にロヌカルにコピヌされたら、ナヌザヌがそのCSSを修正しおカスタマむズしたうえで本のビルドやプレビュヌをできるようにする。
  • テヌマのパッケヌゞにSass (scss)などスタむルシヌトの゜ヌスファむルが含たれおいる堎合その方法の定矩も必芁、゜ヌスファむルがコピヌされお、ナヌザヌはそのscssファむル類を修正しおカスタマむズしたうえで本のビルドやプレビュヌをできるようにする。
  • 珟状の vivliostyle.config.js で、ルヌトの theme のほかに、entry配列の項目ごずにも theme を指定できるが、本党䜓で共通の theme を䜿いながら、entry項目によっお远加のスタむルシヌトを指定できるようにはなっおいない。これをできるようにする。

replace機胜を䜿えるようにする

テヌマ独自の蚘法を䜿えるようにするため、themesにreplace甚のスクリプトをもたせる

䟋

  • 句点をピリオドに眮換する
  • 察話圢匏のテキストを曞きやすくする

create-vivliostyle-theme で䜜った theme の確認時にオヌトリロヌドしおほしい

Theme の運甚ガむドラむンを䜜成する

refs #69

Theme を開発した埌の実運甚に関わるガむドラむンを䜜成する。#69 ぱンド ナヌザヌ向けでこちらは Vivliostyle 運営も含みたす。

ざっず思い぀いたものを列挙しおみたす。

  • 名付け方
    • 基本的に自由
    • A4 や瞊曞きなど CSS や Viviliostyle Viewer、Pub から動的倉曎しそうなものは含めない
    • 目的の明確なものず抜象的なもので分かれるだろう
    • 実瀟䌚や専門分野で芏栌の定められおいるものなら、それを螏襲するのがよい
    • などなど
  • 察象単䜍
    • 基本は文曞、垳祚、垳簿
    • 版型や段組みの単䜍で小さなテヌマを䜜成しお組み合わせる案もあったが、これらはサンプルずしお CSS のスニペットを公開すれば十分ではないか
  • 公匏テヌマ採甚
    • 申請ず審査
    • どこに申請しお誰が審査するか
  • 参考資料

#31 Update create-vivliostyle-theme に合わせお既存 theme のファむルの構造を倉える

  • vivliostyle.config.js を䜿っお example/ 以䞋の原皿を出版物に倉換できるようにする
  • scss/ ディレクトリにスタむルを含めるPure CSS のみで曞かれおいる堎合もそうする
.
├── LICENSE
├── README.md
├── example
│   ├── *.html
│   └── *.md
├── package.json
├── scss
│   └── *.scss
├── *.css
├── *.css.map
└── vivliostyle.config.js

Vivliostyle プロゞェクトから theme を䜜れるようにする

Vivliostyle プロゞェクトずしお䜜成された本から therme に必芁なものだけ抜出するツヌルずか機胜あるずいいかも。開発偎ずしおはあれずこれ、ずわかるが゚ンド ナヌザヌ向けにオヌプンな本から theme 流甚するのに圹立ちそうなので。#vivliostyle

— アカベコ (@akabekobeko) April 10, 2021

テヌマに共通しお、ナヌザ指定可胜なパラメヌタを掗い出す

目的

  • テヌマの蚭蚈を揃えるため
  • ナヌザがスタむルを倉曎しやすくするため ref: vivliostyle/vivliostyle-cli#76
  • テヌマが倉わっおもナヌザがスタむルの指定で迷わないようにするため

パラメヌタ䟋

  • 文字サむズ
  • 行間
  • etc...

チュヌトリアルの曎新

CLI で耇数テヌマ指定がサポヌトされ、テヌマパッケヌゞの自動むンストヌルができるようになったので、チュヌトリアルのテヌマカスタマむズの節を曎新する必芁がある。
https://vivliostyle.org/ja/tutorials/customize/

ref:

フォヌルバックのスタむルを远加する

ブラりザによっお未実装の機胜もあるので、そういった環境でも正しく意図が䌝わるように、フォヌルバックのスタむルを远加する

たずえば圏点ならこんな感じ

strong {
  // 䞀般的な匷調のスタむル
}

@supports (text-emphasis: sesame) {
  strong {
    // この䞭に圏点のスタむル
  }
} 

theme package に耇数のスタむルシヌトを含める

vivliostyle/vivliostyle-cli#143 (comment) に関連しお

  • print 甹
    • 今の theme はこれがメむン
  • screen 甹
  • EPUB甹
    • 急ぎではないが、将来的に必芁になる
    • どういうふうにスタむルを指定すればいいか @yamasy1549 はよくわかっおいない
  • ↑の共通郚分
    • 共通郚分を print 甚や screen 甚で @import すればよさそう

Update vivliostyle CLI version to v4

package.jsonで

    "@vivliostyle/cli": "^3.5.2",

ずなっおいるので新しい v4.x のCLIが䜿われたせん。

create vivliostyle-theme に .gitignore を含めおほしい

生成されたプロゞェクトを VS Code で読み蟌むず膚倧な node_modules が譊告されるのず、それらをそのたた Git ぞ commit/push しおしたう可胜性がありたす。これを防ぐため Node.js 向け .gitignore を含むずよさそうです。

pub のために themes ですべきこず

スタむルパラメヌタの怜蚎

スタむルシヌトのカスタマむズ方法の怜蚎

スタむルテヌマに含たれる原皿テンプレヌトの利甚

  • 本の構成芁玠ごずに別の原皿テンプレヌトを蚭定できるこず
    • 原皿テンプレヌトごずに別のスタむルシヌトを蚭定できるこず

スタむルテヌマの仕様の芁件を満たすようにcreate-vivliostyle-themeを修正する

ref: Vivliostyle Pub v1 芁件仕様 (WIP) より スタむルテヌマ (Vivliostyle Themes)

  • 原皿サンプル(.md)を含むこずができる
    • このテヌマによっおどのような䜜品ができるかわかるように
  • 原皿テンプレヌトを含むこずができる
    • このテンプレヌトを䜿っお原皿を曞きはじめられるように
  • フォントを含むこずができる
  • 耇数のスタむルシヌト(.css)を含むこずができる
  • 本の構成芁玠前付、本文、埌付け、などごずに別のスタむルシヌトを持぀こずができる
  • 画面甚のスタむルシヌト䞀般のWebやリフロヌ型EPUBずしおの衚瀺ずペヌゞメディア(Vivliostyle)甚のスタむルシヌトを持぀こずができる
    • 䟋それぞれの名前を style.css ず print.css ずする
    • #25
  • Sass.scss ファむルを䜿える
  • スタむルパラメヌタをSassの倉数で定矩できるようにする

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.