mint 0.7.4 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +23 -14
- data/LICENSE +22 -0
- data/README.md +68 -79
- data/bin/mint +47 -10
- data/bin/mint-epub +1 -4
- data/config/templates/base/style.css +187 -0
- data/config/templates/default/layout.erb +10 -0
- data/config/templates/default/style.css +237 -0
- data/config/templates/garden/layout.erb +38 -0
- data/config/templates/garden/style.css +303 -0
- data/config/templates/nord/layout.erb +11 -0
- data/config/templates/nord/style.css +339 -0
- data/config/templates/nord-dark/layout.erb +11 -0
- data/config/templates/nord-dark/style.css +339 -0
- data/config/templates/zen/layout.erb +11 -0
- data/config/templates/zen/style.css +114 -0
- data/lib/mint/command_line.rb +253 -111
- data/lib/mint/css.rb +11 -4
- data/lib/mint/css_parser.rb +76 -0
- data/lib/mint/css_template.rb +37 -0
- data/lib/mint/document.rb +203 -43
- data/lib/mint/helpers.rb +50 -10
- data/lib/mint/layout.rb +2 -3
- data/lib/mint/markdown_template.rb +47 -0
- data/lib/mint/mint.rb +181 -114
- data/lib/mint/plugin.rb +3 -3
- data/lib/mint/plugins/epub.rb +1 -2
- data/lib/mint/resource.rb +19 -9
- data/lib/mint/style.rb +10 -14
- data/lib/mint/version.rb +1 -1
- data/lib/mint.rb +1 -0
- data/man/mint.1 +135 -0
- data/spec/cli/README.md +99 -0
- data/spec/cli/argument_parsing_spec.rb +237 -0
- data/spec/cli/bin_integration_spec.rb +348 -0
- data/spec/cli/configuration_management_spec.rb +363 -0
- data/spec/cli/full_workflow_integration_spec.rb +527 -0
- data/spec/cli/publish_workflow_spec.rb +368 -0
- data/spec/cli/template_management_spec.rb +300 -0
- data/spec/css_parser_spec.rb +149 -0
- data/spec/css_spec.rb +1 -1
- data/spec/document_spec.rb +102 -69
- data/spec/helpers_spec.rb +42 -42
- data/spec/mint_spec.rb +104 -80
- data/spec/plugin_spec.rb +141 -143
- data/spec/run_cli_tests.rb +95 -0
- data/spec/spec_helper.rb +8 -1
- data/spec/style_spec.rb +18 -16
- data/spec/support/cli_helpers.rb +169 -0
- data/spec/support/fixtures/content-2.md +16 -0
- data/spec/support/matchers.rb +1 -1
- metadata +116 -224
- data/config/syntax.yaml +0 -71
- data/config/templates/base/style.sass +0 -144
- data/config/templates/default/css/style.css +0 -158
- data/config/templates/default/layout.haml +0 -8
- data/config/templates/default/style.sass +0 -36
- data/config/templates/protocol/layout.haml +0 -7
- data/config/templates/protocol/style.sass +0 -20
- data/config/templates/zen/css/style.css +0 -145
- data/config/templates/zen/layout.haml +0 -7
- data/config/templates/zen/style.sass +0 -24
- data/features/config.feature +0 -21
- data/features/plugins/epub.feature +0 -23
- data/features/publish.feature +0 -73
- data/features/support/env.rb +0 -15
- data/features/templates.feature +0 -79
- data/spec/command_line_spec.rb +0 -87
- data/spec/plugins/epub_spec.rb +0 -242
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 49d66d53b189d1897ab9938358279f7dc0c4ede1d44926eba5f1b9b6f7d8344b
|
4
|
+
data.tar.gz: '08b1882ec1972dbedd02c87e0e6a4cf1f61ca0a631c7f56bca20b4dfeb1ea36b'
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3acb8ce3fc1856014e0efe3aa94d3720faeb8f677e2f9e3a46c541ecc8bd62f65a187558421ac10acc0599f813a8d161bed142bf44c75b51e6bc8f140351cc7f
|
7
|
+
data.tar.gz: 3851e818c5bad026bfde0302c8fe3184dfe4d79e93ca87479e85590015bb3fd082926fe88f7397144b8fbbb4163ae9e602bbb510bf23da009d20943b334896c2
|
data/Gemfile
CHANGED
@@ -1,18 +1,27 @@
|
|
1
|
-
source
|
1
|
+
source "https://rubygems.org"
|
2
2
|
|
3
|
-
|
4
|
-
gem "
|
5
|
-
gem "
|
6
|
-
gem "
|
7
|
-
gem "less"
|
8
|
-
gem "activesupport"
|
3
|
+
# General
|
4
|
+
gem "rubyzip", "~> 3.0", ">= 3.0.1"
|
5
|
+
gem "hashie", "~> 5.0"
|
6
|
+
gem "nokogiri", "1.15.5"
|
9
7
|
|
10
|
-
|
11
|
-
gem "
|
12
|
-
gem "
|
8
|
+
# Templates
|
9
|
+
gem "tilt", "~> 2.6", ">= 2.6.1"
|
10
|
+
gem "redcarpet", "~> 3.6", ">= 3.6.1"
|
11
|
+
gem "erubis", "~> 2.7"
|
12
|
+
gem "haml", "~> 6.3"
|
13
|
+
gem "sass-embedded", '~> 1.90'
|
13
14
|
|
14
|
-
|
15
|
-
gem "
|
16
|
-
gem "aruba"
|
15
|
+
# Helpers
|
16
|
+
gem "activesupport", "~> 8.0", ">= 8.0.2.1"
|
17
17
|
|
18
|
-
|
18
|
+
group :development do
|
19
|
+
gem "pry"
|
20
|
+
end
|
21
|
+
|
22
|
+
# Testing dependencies
|
23
|
+
group :test do
|
24
|
+
gem "rspec", "~> 3.13", ">= 3.13.1"
|
25
|
+
gem "rspec-its", "~> 1.3"
|
26
|
+
gem "colorize", "~> 1.1"
|
27
|
+
end
|
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2025 David Jacobs
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be included
|
14
|
+
in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
19
|
+
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
21
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
22
|
+
DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
@@ -1,111 +1,100 @@
|
|
1
|
-
|
2
|
-
-------------
|
1
|
+
# Mint
|
3
2
|
|
4
|
-
|
3
|
+
Transform your plain text documents into beautiful HTML documents with customizable styling and templates.
|
5
4
|
|
6
|
-
|
5
|
+
## Installation
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
- To make your documents available for scripting--for example, text analysis
|
7
|
+
```bash
|
8
|
+
gem install mint
|
9
|
+
```
|
12
10
|
|
13
|
-
|
11
|
+
## Quick Start
|
14
12
|
|
15
|
-
|
13
|
+
Transform a Markdown document into styled HTML:
|
16
14
|
|
17
|
-
|
18
|
-
|
15
|
+
```bash
|
16
|
+
mint publish Document.md
|
17
|
+
```
|
19
18
|
|
20
|
-
|
19
|
+
This creates `Document.html` in your current directory with beautiful default styling.
|
21
20
|
|
22
|
-
|
21
|
+
## Usage
|
23
22
|
|
24
|
-
|
23
|
+
### Basic Commands
|
25
24
|
|
26
|
-
|
25
|
+
```bash
|
26
|
+
# Publish a single document
|
27
|
+
mint publish Document.md
|
27
28
|
|
28
|
-
|
29
|
+
# Publish with a template
|
30
|
+
mint publish Document.md --template nord
|
29
31
|
|
30
|
-
|
32
|
+
# Publish to a specific directory
|
33
|
+
mint publish Document.md --destination public
|
31
34
|
|
32
|
-
|
35
|
+
# Publish multiple files
|
36
|
+
mint publish *.md --destination final-drafts
|
33
37
|
|
34
|
-
|
38
|
+
# Publish a digital garden, with linked navigation
|
39
|
+
mint publish content/**/*.md --template garden --destination public
|
40
|
+
```
|
35
41
|
|
36
|
-
|
42
|
+
### Common Options
|
37
43
|
|
38
|
-
|
44
|
+
| Flag | Description |
|
45
|
+
|------|-------------|
|
46
|
+
| `-t, --template TEMPLATE` | Use a built-in template (combines layout + style) |
|
47
|
+
| `-l, --layout LAYOUT` | Specify only the layout |
|
48
|
+
| `-s, --style STYLE` | Specify only the style |
|
49
|
+
| `-d, --destination DIR` | Output directory |
|
50
|
+
| `-o, --output-file FORMAT` | Custom output filename format |
|
51
|
+
| `--style-mode MODE` | How styles are included (inline, external, original) |
|
52
|
+
| `--style-destination PATH` | Create external stylesheet and link it (sets mode to external) |
|
53
|
+
| `-r, --recursive` | Find all Markdown files in any directories specified |
|
39
54
|
|
40
|
-
|
41
|
-
mint publish Minimalism.md --destination final --style-destination=styles
|
55
|
+
### Style modes
|
42
56
|
|
43
|
-
|
57
|
+
Mint offers three ways to include styles in your HTML output:
|
44
58
|
|
45
|
-
|
46
|
-
|
59
|
+
- **`inline`** (default) – CSS is embedded directly in the HTML document as `<style>` tags
|
60
|
+
- **`external`** – CSS is compiled and saved as separate files, linked with `<link>` tags
|
61
|
+
- **`original`** – Links directly to original CSS template files without processing (for live editing)
|
47
62
|
|
48
|
-
|
63
|
+
The `original` mode is particularly useful for template development, as it allows you to edit CSS files and see changes immediately without republishing. Only `.css` files are supported in this mode, and `@import` statements in CSS files will be included as additional `<link>` tags.
|
49
64
|
|
50
|
-
|
51
|
-
document.publish!
|
65
|
+
### Built-in templates
|
52
66
|
|
53
|
-
|
67
|
+
- `default` – Clean, minimal styling
|
68
|
+
- `nord` – Clean, uses Nord color scheme
|
69
|
+
- `nord-dark` – Dark version of Nord
|
70
|
+
- `garden` – For digital gardens; includes navigation
|
54
71
|
|
55
|
-
|
72
|
+
## Documentation
|
56
73
|
|
57
|
-
|
74
|
+
- **Complete usage guide:** [TUTORIAL.md](doc/TUTORIAL.md)
|
75
|
+
- **Man page:** `man mint` (after installation)
|
76
|
+
- **API documentation:** [RubyDoc](http://www.rubydoc.info/github/davejacobs/mint)
|
58
77
|
|
59
|
-
|
60
|
-
---------
|
78
|
+
## Why Mint?
|
61
79
|
|
62
|
-
|
80
|
+
- **Focus on writing** – Keep documents as plain text
|
81
|
+
- **Version control friendly** – Text files work great with Git
|
82
|
+
- **Scriptable** – Automate document processing
|
83
|
+
- **Beautiful output** – Professional-looking HTML ready for print or web
|
84
|
+
- **Highly customizable** – Create your own templates and styles
|
63
85
|
|
64
|
-
|
86
|
+
## Templates and customization
|
65
87
|
|
66
|
-
|
88
|
+
Mint supports layouts written in HAML or ERB and stylesheets can be written in CSS, SCSS, or SASS.
|
67
89
|
|
68
|
-
|
90
|
+
## Contributing
|
69
91
|
|
70
|
-
|
92
|
+
1. Fork the repository
|
93
|
+
2. Create a feature branch
|
94
|
+
3. Make your changes
|
95
|
+
4. Run the tests: `rspec`
|
96
|
+
5. Submit a pull request
|
71
97
|
|
72
|
-
|
73
|
-
|
74
|
-
!!!
|
75
|
-
%html
|
76
|
-
%head
|
77
|
-
%link(rel="stylesheet" href=stylesheet)
|
78
|
-
|
79
|
-
%body
|
80
|
-
#container= content
|
81
|
-
|
82
|
-
You can build stylesheets using [CSS][], [SASS/SCSS][] or [Less][]. They will always be compiled for you.
|
83
|
-
|
84
|
-
Mint comes preloaded with several styles and layouts.
|
85
|
-
|
86
|
-
1. Default
|
87
|
-
2. Zen
|
88
|
-
3. Resume\*
|
89
|
-
4. Protocol
|
90
|
-
5. Protocol Flow\* - requires Javascript and jQuery
|
91
|
-
|
92
|
-
> Note: Starred entries are not yet implemented. If you have a killer
|
93
|
-
> template you think should be included, send it my way. I'll check
|
94
|
-
> it out and see if it should be part of the standard template library.
|
95
|
-
> (Of course, you'll get all the credit.)
|
96
|
-
|
97
|
-
I've included a base stylesheet that is useful for setting sensible typographic defaults.
|
98
|
-
|
99
|
-
Plugins: A work in progress
|
100
|
-
---------------------------
|
101
|
-
|
102
|
-
I've designed the beginnings of a plugin system. With this system, you can implement a callback or two and have full control over document creation and sharing. I'll get documentation going soon. For now, look to lib/mint/plugins/epub.rb and bin/mint-epub for an example of how to build one. It's not complete and I'm open to API suggestions.
|
103
|
-
|
104
|
-
This is going to be useful for things like creating actual office documents or e-books or even bound novels. I'm actually thinking that half the power of this library is its plugin system.
|
105
|
-
|
106
|
-
[API]: http://github.com/davejacobs/mint/tree/master/doc/API.md
|
107
|
-
[Tilt templates]: http://github.com/rtomayko/tilt/blob/master/TEMPLATES.md "A listing of all templates supported by Tilt."
|
108
|
-
[CSS]: http://en.wikipedia.org/wiki/Cascading_Style_Sheets
|
109
|
-
[SASS/SCSS]: http://sass-lang.com/
|
110
|
-
[Less]: http://lesscss.org/
|
98
|
+
## License
|
111
99
|
|
100
|
+
MIT License. See [LICENSE](LICENSE) for details.
|
data/bin/mint
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
#
|
2
|
+
|
3
|
+
# Add /lib to path to override any local installations of Mint
|
4
|
+
$LOAD_PATH.unshift File.expand_path('../lib', __dir__)
|
4
5
|
|
5
6
|
require "mint"
|
6
7
|
require "shellwords"
|
@@ -8,7 +9,8 @@ require "shellwords"
|
|
8
9
|
argv, commandline_options, help =
|
9
10
|
Mint::CommandLine.parse(ARGV).values_at(:argv, :options, :help)
|
10
11
|
|
11
|
-
|
12
|
+
original_command = argv.first
|
13
|
+
case (argv.shift || "help").downcase.to_sym
|
12
14
|
when :publish
|
13
15
|
# Aruba chokes here, so we use this hack to convince Mint we're
|
14
16
|
# not in a pipeline
|
@@ -21,18 +23,46 @@ when :publish
|
|
21
23
|
end
|
22
24
|
end
|
23
25
|
Mint::CommandLine.publish!(files, commandline_options)
|
26
|
+
when :preview
|
27
|
+
# Preview mode uses live CSS links instead of inline styles
|
28
|
+
Mint.rendering_mode = :preview
|
29
|
+
files =
|
30
|
+
if $stdin.tty? || ENV["MINT_NO_PIPE"]
|
31
|
+
argv
|
32
|
+
else
|
33
|
+
$stdin.each_line.reduce [] do |list, line|
|
34
|
+
list.concat(Shellwords.split(line))
|
35
|
+
end
|
36
|
+
end
|
37
|
+
Mint::CommandLine.publish!(files, commandline_options)
|
24
38
|
when :help
|
25
39
|
Mint::CommandLine.help(help)
|
26
40
|
when :install
|
27
|
-
|
41
|
+
file = argv.shift
|
42
|
+
name = argv.shift
|
43
|
+
scope = commandline_options[:scope] || :local
|
44
|
+
Mint::CommandLine.install(file, name, scope)
|
28
45
|
when :uninstall
|
29
|
-
|
46
|
+
name = argv.shift
|
47
|
+
scope = commandline_options[:scope] || :local
|
48
|
+
Mint::CommandLine.uninstall(name, scope)
|
30
49
|
when :templates
|
31
|
-
|
32
|
-
|
33
|
-
Mint::CommandLine.
|
50
|
+
filter = argv.shift
|
51
|
+
scope = commandline_options[:scope] || :local
|
52
|
+
Mint::CommandLine.templates(filter, scope)
|
53
|
+
when :"edit-layout"
|
54
|
+
name = argv.shift
|
55
|
+
scope = commandline_options[:scope] || :local
|
56
|
+
Mint::CommandLine.edit(name, :layout, scope)
|
57
|
+
when :"edit-style"
|
58
|
+
name = argv.shift
|
59
|
+
scope = commandline_options[:scope] || :local
|
60
|
+
Mint::CommandLine.edit(name, :style, scope)
|
34
61
|
when :set
|
35
|
-
|
62
|
+
key = argv.shift
|
63
|
+
value = argv.shift
|
64
|
+
scope = commandline_options[:scope] || :local
|
65
|
+
Mint::CommandLine.set(key, value, scope)
|
36
66
|
when :config
|
37
67
|
Mint::CommandLine.config
|
38
68
|
else
|
@@ -43,8 +73,15 @@ else
|
|
43
73
|
# document list.
|
44
74
|
|
45
75
|
begin
|
46
|
-
|
76
|
+
if File.executable? "mint-#{original_command}"
|
77
|
+
system "mint-#{original_command} #{argv[1..-1].join ' '}"
|
78
|
+
else
|
79
|
+
$stderr.puts "Error: Unknown command '#{original_command}'"
|
80
|
+
Mint::CommandLine.help(help)
|
81
|
+
exit 1
|
82
|
+
end
|
47
83
|
rescue
|
48
84
|
Mint::CommandLine.help(help)
|
85
|
+
exit 1
|
49
86
|
end
|
50
87
|
end
|
data/bin/mint-epub
CHANGED
@@ -3,13 +3,10 @@
|
|
3
3
|
# A script for publishing Mint in the ePub format
|
4
4
|
# Usage: mint epub [command] [options] [files]
|
5
5
|
|
6
|
+
$LOAD_PATH.unshift File.expand_path('../lib', __dir__)
|
6
7
|
require "mint"
|
7
8
|
require "mint/plugins/epub"
|
8
9
|
|
9
|
-
# NOTE: This is not how I want this plugin to be called.
|
10
|
-
# However, I do want a first iteration of the plugin
|
11
|
-
# system on master, so we'll go with this for now.
|
12
|
-
|
13
10
|
def usage
|
14
11
|
abort "mint epub publish file"
|
15
12
|
end
|
@@ -0,0 +1,187 @@
|
|
1
|
+
@import '../reset.css';
|
2
|
+
|
3
|
+
body {
|
4
|
+
font-family: var(--body-font-family), Georgia, serif;
|
5
|
+
}
|
6
|
+
|
7
|
+
h1, h2 {
|
8
|
+
line-height: 1.3;
|
9
|
+
}
|
10
|
+
|
11
|
+
h2, h3, h4, h5, h6 {
|
12
|
+
line-height: var(--screen-line-height);
|
13
|
+
}
|
14
|
+
|
15
|
+
h1, h2, h3, h4, h5, h6 {
|
16
|
+
font-family: var(--header-font-family);
|
17
|
+
font-weight: normal;
|
18
|
+
}
|
19
|
+
|
20
|
+
h1 {
|
21
|
+
font-size: calc(var(--screen-font-size) * 1.5);
|
22
|
+
margin-top: var(--screen-unit);
|
23
|
+
margin-bottom: var(--screen-unit);
|
24
|
+
}
|
25
|
+
|
26
|
+
h2 {
|
27
|
+
font-size: calc(var(--screen-font-size) * 1.2);
|
28
|
+
margin-top: calc(var(--screen-unit) * 3 / 2);
|
29
|
+
margin-bottom: calc(var(--screen-unit) * 1 / 2);
|
30
|
+
}
|
31
|
+
|
32
|
+
h3 {
|
33
|
+
font-size: calc(var(--screen-font-size) * 1.1);
|
34
|
+
margin-top: calc(var(--screen-unit) * 7 / 4);
|
35
|
+
margin-bottom: calc(var(--screen-unit) * 1 / 4);
|
36
|
+
}
|
37
|
+
|
38
|
+
h4 {
|
39
|
+
font-size: calc(var(--screen-font-size) * 1.05);
|
40
|
+
margin-top: calc(var(--screen-unit) * 7 / 8);
|
41
|
+
margin-bottom: calc(var(--screen-unit) * 1 / 8);
|
42
|
+
}
|
43
|
+
|
44
|
+
h5, h6 {
|
45
|
+
font-size: var(--screen-font-size);
|
46
|
+
margin-top: calc(var(--screen-unit) * 7 / 8);
|
47
|
+
margin-bottom: calc(var(--screen-unit) * 1 / 8);
|
48
|
+
}
|
49
|
+
|
50
|
+
ul {
|
51
|
+
list-style-type: square;
|
52
|
+
}
|
53
|
+
|
54
|
+
ul ul {
|
55
|
+
list-style-type: circle;
|
56
|
+
}
|
57
|
+
|
58
|
+
ul, ol {
|
59
|
+
margin: calc(var(--screen-unit) / 4) 0 0 calc(var(--screen-unit) / 2);
|
60
|
+
padding-left: calc(var(--screen-unit) * 1.2);
|
61
|
+
}
|
62
|
+
|
63
|
+
ul li p, ol li p {
|
64
|
+
text-indent: 0 !important;
|
65
|
+
}
|
66
|
+
|
67
|
+
ul li + li, ol li + li {
|
68
|
+
margin-top: calc(var(--screen-unit) / 4);
|
69
|
+
}
|
70
|
+
|
71
|
+
p {
|
72
|
+
margin: calc(var(--screen-unit) / 2) 0;
|
73
|
+
}
|
74
|
+
|
75
|
+
ul + p, ol + p, blockquote + p, pre + p {
|
76
|
+
text-indent: 0;
|
77
|
+
}
|
78
|
+
|
79
|
+
a:link, a:visited, a:active {
|
80
|
+
color: var(--link-color);
|
81
|
+
text-decoration: none;
|
82
|
+
}
|
83
|
+
|
84
|
+
a:hover {
|
85
|
+
text-decoration: underline;
|
86
|
+
}
|
87
|
+
|
88
|
+
code {
|
89
|
+
font-family: Monaco, Menlo, Mensch, Consolas, Monotype, mono;
|
90
|
+
font-style: normal;
|
91
|
+
}
|
92
|
+
|
93
|
+
pre {
|
94
|
+
display: block;
|
95
|
+
margin-left: var(--screen-unit);
|
96
|
+
margin-right: calc(var(--screen-unit) * 2);
|
97
|
+
padding: calc(var(--screen-unit) / 3) var(--screen-unit);
|
98
|
+
padding-left: calc(var(--screen-unit) * 3 / 4);
|
99
|
+
white-space: pre;
|
100
|
+
}
|
101
|
+
|
102
|
+
blockquote {
|
103
|
+
display: block;
|
104
|
+
margin-left: var(--screen-unit);
|
105
|
+
margin-right: calc(var(--screen-unit) * 2);
|
106
|
+
padding: calc(var(--screen-unit) / 3) var(--screen-unit);
|
107
|
+
padding-left: calc(var(--screen-unit) * 3 / 4);
|
108
|
+
}
|
109
|
+
|
110
|
+
pre p, blockquote p {
|
111
|
+
margin: 0;
|
112
|
+
line-height: 1.35;
|
113
|
+
}
|
114
|
+
|
115
|
+
img {
|
116
|
+
display: block;
|
117
|
+
}
|
118
|
+
|
119
|
+
@media screen {
|
120
|
+
body {
|
121
|
+
font-size: var(--screen-font-size);
|
122
|
+
line-height: var(--screen-line-height);
|
123
|
+
background-color: #666;
|
124
|
+
color: var(--text-color);
|
125
|
+
}
|
126
|
+
|
127
|
+
#container {
|
128
|
+
display: block;
|
129
|
+
border: solid 1px #999;
|
130
|
+
width: 780px;
|
131
|
+
padding: 40px 60px;
|
132
|
+
margin: calc(var(--screen-unit) / 2) auto;
|
133
|
+
background-color: #fff;
|
134
|
+
box-sizing: border-box;
|
135
|
+
-moz-box-sizing: border-box;
|
136
|
+
-webkit-box-sizing: border-box;
|
137
|
+
}
|
138
|
+
|
139
|
+
code {
|
140
|
+
font-size: calc(var(--screen-font-size) * 7 / 8);
|
141
|
+
}
|
142
|
+
|
143
|
+
pre {
|
144
|
+
white-space: pre-wrap;
|
145
|
+
white-space: -moz-pre-wrap;
|
146
|
+
white-space: -o-pre-wrap;
|
147
|
+
word-wrap: break-word;
|
148
|
+
}
|
149
|
+
|
150
|
+
pre code {
|
151
|
+
font-size: calc(var(--screen-font-size) * 3 / 4);
|
152
|
+
}
|
153
|
+
}
|
154
|
+
|
155
|
+
@media print {
|
156
|
+
@page {
|
157
|
+
margin-left: 1in;
|
158
|
+
margin-right: 1in;
|
159
|
+
margin-top: 1in;
|
160
|
+
margin-bottom: 1in;
|
161
|
+
}
|
162
|
+
|
163
|
+
body {
|
164
|
+
font-size: var(--print-font-size);
|
165
|
+
line-height: var(--print-line-height);
|
166
|
+
width: auto;
|
167
|
+
margin: 0;
|
168
|
+
padding: 0;
|
169
|
+
}
|
170
|
+
|
171
|
+
code {
|
172
|
+
font-size: calc(var(--print-font-size) * 7 / 8);
|
173
|
+
}
|
174
|
+
|
175
|
+
pre code {
|
176
|
+
font-size: calc(var(--print-font-size) * 3 / 4);
|
177
|
+
}
|
178
|
+
|
179
|
+
h1, h2, h3, h4, h5, h6, li, blockquote {
|
180
|
+
page-break-inside: avoid;
|
181
|
+
}
|
182
|
+
|
183
|
+
p {
|
184
|
+
widows: 3;
|
185
|
+
orphans: 3;
|
186
|
+
}
|
187
|
+
}
|