1
0
mirror of https://github.com/kuohuanhuan/x-markdown-css.git synced 2024-11-25 06:18:19 +00:00

Compare commits

...

19 Commits

Author SHA1 Message Date
7684e092da chore: release v0.0.0-20230301.7 2023-03-01 23:08:07 +08:00
5b0584ce4b docs: add README.md and CONTRIBUTING.md 2023-03-01 23:07:31 +08:00
a3f3100f2c chore: release v0.0.0-20230301.6 2023-03-01 20:42:42 +08:00
ea73260661 chore(ci): ref. https://github.com/JS-DevTools/npm-publish/pull/68 2023-03-01 20:42:25 +08:00
51046f4088 chore: release v0.0.0-20230301.5 2023-03-01 20:34:20 +08:00
a7492b1975 chore(ci): use different .gitignore with GitHub Actions 2023-03-01 20:34:07 +08:00
6179dc8634 chore: release v0.0.0-20230301.4 2023-03-01 20:28:50 +08:00
941e73a889 fix(code): fix incorrect font-family value 2023-03-01 20:28:10 +08:00
af46b8e083 chore: release v0.0.0-20230301.3 2023-03-01 20:22:48 +08:00
e2aeb767cd fix(blockquote): fix incorrect border configuration 2023-03-01 20:22:34 +08:00
6616b76811 chore: release v0.0.0-20230301.2 2023-03-01 20:14:30 +08:00
8be8e8793e chore(browserslist): deprecate browsers before 2015 2023-03-01 20:13:29 +08:00
2aa806938e BREAKING CHANGE: normalize number values 2023-03-01 20:12:33 +08:00
ebac47e0d7 refactor(prose): use _partial/all to replace a lot of components 2023-03-01 20:03:44 +08:00
61079f3627 refactor(colors): use value 0 instead of 0% 2023-03-01 19:51:29 +08:00
e9c955a8f1 BREAKING CHANGE: deprecate .markdown-body used as .prose 2023-03-01 19:51:17 +08:00
3db644fa05 fix(typo): fix wrong CSS variable name 2023-03-01 19:50:23 +08:00
ca1ccd9b4b chore(lint): configure ignored paths & files to Stylelint 2023-03-01 19:47:12 +08:00
f9ffa18565 chore(build): add postcss-preset-env to inject polyfills 2023-03-01 19:45:58 +08:00
21 changed files with 1178 additions and 59 deletions

View File

@ -1,4 +1,4 @@
# Browserslist <https://browsersl.ist> # Browserslist <https://browsersl.ist>
defaults defaults
since 2012 since 2015

View File

@ -29,11 +29,16 @@ jobs:
- name: Build Project - name: Build Project
run: npm run build run: npm run build
# Step V # Step V
- name: Regenerate `.gitignore`
run: |
rm -f .gitignore
echo 'node_modules/' >> .gitignore
# Step VI
- name: Publish to NPM Registry - name: Publish to NPM Registry
uses: JS-DevTools/npm-publish@v1 uses: rxfork/npm-publish@v1
with: with:
token: ${{ secrets.NPM_TOKEN }} token: ${{ secrets.NPM_TOKEN }}
# Step VI # Step VII
- name: Generate Changelog - name: Generate Changelog
run: npx changelogithub@0.12 run: npx changelogithub@0.12
env: env:

1
.gitignore vendored
View File

@ -1 +1,2 @@
node_modules/ node_modules/
dist/

3
.stylelintignore Normal file
View File

@ -0,0 +1,3 @@
**/*.js
dist/*.css
node_modules

View File

@ -1,4 +1,5 @@
{ {
"ignoreDisables": true,
"extends": "stylelint-config-standard-scss", "extends": "stylelint-config-standard-scss",
"plugins": [ "plugins": [
"stylelint-scss", "stylelint-scss",

7
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,7 @@
{
"recommendations": [
"editorconfig.editorconfig",
"stylelint.vscode-stylelint",
"ecmel.vscode-html-css"
]
}

26
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,26 @@
# Contributing
This document describes contribution guidelines for `x-markdown-css`.
## Coding Style
The project `x-markdown-css` uses [Stylelint](https://stylelint.io) to manage the SCSS coding style in a holistic way. In the meantime, please:
- **DO** give priority to the current style of the project or file you're changing even if it diverges from the general guidelines or your preferences.
- **DO NOT** send PRs for style changes. For example, do not send PRs that are focused on changing `.stylelintrc` rules.
- **DO NOT** send PRs for upgrading code to use newer language features, though it's ok to use newer language features as part of new code that's written.
- **DO NOT** send PRs for linting existing code.
## Pull Requests
- **DO** submit all code changes via pull requests (PRs) rather than through a direct commit. PRs will be reviewed and potentially merged by the repo maintainers after a peer review that includes at least one maintainer.
- **DO** give PRs short-but-descriptive names (e.g. "Fix layout drift (solve #123)", not just "Solve issue #123")
- **DO** refer to any relevant issues, and include [keywords](https://help.github.com/articles/closing-issues-via-commit-messages) that automatically close issues when the PR is merged.
- **DO** tag any users that should know about and/or review the change.
- **DO** ensure each commit successfully builds and passes Stylelint. The entire PR must pass all tests in the Continuous Integration (CI) system before it'll be merged.
- **DO** address PR feedback in an additional commit(s) rather than amending the existing commits, and only rebase/squash them when necessary. This makes it easier for reviewers to track changes.
- **BE CAREFUL OF** submitting "work in progress" PRs. Generally, a PR should only be submitted when it is considered ready for review and subsequent merging by the contributor.
- **DO NOT** send PRs only for changing build environments (begins with `chore:`), although the tool(s) might be outdated.
- **DO NOT** fix merge conflicts using a merge commit. Prefer `git rebase`.
- **DO NOT** mix independent, unrelated changes in one PR. Separate real product/test code changes from larger code formatting/dead code removal changes. Separate unrelated fixes into separate PRs, especially if they are in different partials.
- *The last one and also the most important*: **DO NOT** destroy the existing codebase.

View File

@ -1,7 +1,9 @@
module.exports = (grunt) -> module.exports = (grunt) ->
require('load-grunt-tasks')(grunt) # Load Grunt Tasks
require('load-grunt-tasks') grunt
grunt.initConfig( # Project Configuration
grunt.initConfig
# NPM Package Declare # NPM Package Declare
pkg: grunt.file.readJSON('package.json') pkg: grunt.file.readJSON('package.json')
# Sass Compile # Sass Compile
@ -26,19 +28,23 @@ module.exports = (grunt) ->
annotation: 'dist/' annotation: 'dist/'
exp: exp:
options: options:
processors: [require('autoprefixer')()] processors: [
require('postcss-preset-env')()
require('autoprefixer')()
]
src: 'dist/bundle.css' src: 'dist/bundle.css'
dest: 'dist/bundle.css' dest: 'dist/bundle.css'
min: min:
options: options:
processors: [ processors: [
require('postcss-preset-env')()
require('autoprefixer')() require('autoprefixer')()
require('cssnano')( require('cssnano')(preset: 'default')
preset: 'default'
)
] ]
src: 'dist/bundle.min.css' src: 'dist/bundle.min.css'
dest: 'dist/bundle.min.css' dest: 'dist/bundle.min.css'
) # Register Grunt Tasks
grunt.registerTask 'build', [
grunt.registerTask('build', ['sass', 'postcss']) 'sass'
'postcss'
]

55
README.md Normal file
View File

@ -0,0 +1,55 @@
<h1 align="center">x-markdown-css</h1>
<center>
[![Version](https://img.shields.io/npm/v/x-markdown-css.svg)](https://www.npmjs.com/package/x-markdown-css)
[![Node.js Requirement](https://img.shields.io/badge/node-%3E%3D16-blue.svg)](https://github.com/kuohuanhuan/x-markdown-css/blob/master/package.json)
[![MIT License](https://img.shields.io/github/license/kuohuanhuan/x-markdown-css)](https://github.com/kuohuanhuan/x-markdown-css/blob/master/LICENSE)
</center>
> A simple and customizable Markdown CSS for everyone.
## Requirement
- Node.js >=16
## Install
```sh
npm install
```
## Build
```sh
npm run build
```
## Usage
You can use the minified CSS file with a CDN service:
- UNPKG: `https://unpkg.com/x-markdown-css@latest/dist/bundle.min.css`
- jsDelivr: `https://fastly.jsdelivr.net/npm/x-markdown-css@latest/dist/bundle.min.css`
- CDNJS: *Coming soon. **Waiting for you to make `x-markdown-css` [popular enough](https://github.com/cdnjs/packages/blob/master/CONTRIBUTING.md#policy-rules-and-guidelines)**!*
> *ps. `bundle.css` without `.min` stands for unminified version.*
## Uses
- [SCSS](https://sass-lang.com): CSS pre-processor.
- [Grunt](https://gruntjs.com): Automating build tasks.
- [PostCSS](https://postcss.org): Transforming CSS dist.
- [Stylelint](https://stylelint.io): Linting SCSS codes.
*...and much more.*
## Contributing
PRs, issues and feature requests are welcome!
Feel free to check [Issues](https://github.com/kuohuanhuan/x-markdown-css/issues) page. You can also take a look at the [Contributing Guide](https://github.com/kuohuanhuan/x-markdown-css/blob/master/CONTRIBUTING.md).
## License
Copyright (c) 2023 [kuohuanhuan](https://github.com/kuohuanhuan), licensed under [MIT](https://github.com/kuohuanhuan/x-markdown-css/blob/master/LICENSE).

1032
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "x-markdown-css", "name": "x-markdown-css",
"version": "0.0.0-20230229.1", "version": "0.0.0-20230301.7",
"description": "A simple and customizable Markdown CSS for everyone.", "description": "A simple and customizable Markdown CSS for everyone.",
"keywords": [ "keywords": [
"markdown", "markdown",
@ -49,6 +49,7 @@
"grunt-sass": "^3.1.0", "grunt-sass": "^3.1.0",
"load-grunt-tasks": "^5.1.0", "load-grunt-tasks": "^5.1.0",
"postcss": "^8.4.21", "postcss": "^8.4.21",
"postcss-preset-env": "^8.0.1",
"stylelint": "^15.2.0", "stylelint": "^15.2.0",
"stylelint-config-standard-scss": "^7.0.1", "stylelint-config-standard-scss": "^7.0.1",
"stylelint-order": "^6.0.2", "stylelint-order": "^6.0.2",

View File

@ -0,0 +1 @@
@import 'title', 'text', 'link', 'code', 'quote', 'figure', 'list', 'table', 'media';

View File

@ -1,6 +1,7 @@
code { code {
font-size: .875rem; font-size: .85rem;
font-weight: 600; font-weight: 600;
font-family: var(--xm-font-mono);
color: var(--xm-c-dark); color: var(--xm-c-dark);
&::before, &::after { &::before, &::after {
content: '`'; content: '`';
@ -8,12 +9,12 @@ code {
} }
pre { pre {
overflow-x: auto; overflow-x: auto;
margin-top: 1.7143rem; margin-top: 1.75rem;
padding-top: .8571rem, 1.1429rem; padding-top: .85rem, 1.15rem;
font-size: .875rem; font-size: .85rem;
color: var(--xm-c-pre); color: var(--xm-c-pre);
line-height: 1.7143; line-height: 1.75;
margin-bottom: 1.7143rem; margin-bottom: 1.75rem;
border-radius: .375rem; border-radius: .375rem;
code { code {
padding: 0; padding: 0;

View File

@ -1,12 +1,6 @@
%container { @mixin container {
max-width: fit-content; max-width: fit-content;
font-size: 1rem; font-size: 1rem;
color: var(--xm-c-general); color: var(--xm-c-general);
line-height: 1.75; line-height: 1.75;
> :first-child {
margin-top: 0;
}
> :last-child {
margin-bottom: 0;
}
} }

View File

@ -2,10 +2,10 @@ figure {
margin-top: 2rem; margin-top: 2rem;
margin-bottom: 2rem; margin-bottom: 2rem;
figcaption { figcaption {
margin-top: .8571rem; margin-top: .85rem;
font-size: .875rem; font-size: .85rem;
color: var(--xm-c-figcaption); color: var(--xm-c-figcaption);
line-height: 1.4286; line-height: 1.45;
} }
> * { > * {
margin-top: 0; margin-top: 0;

View File

@ -28,7 +28,7 @@ ul {
&::before { &::before {
content: ''; content: '';
position: absolute; position: absolute;
top: calc(.875rem - .1875rem); top: .685rem;
left: .25rem; left: .25rem;
width: .375rem; width: .375rem;
height: .375rem; height: .375rem;

View File

@ -1,14 +1,13 @@
blockquote, blockquote,
q { q {
margin-top: 1.6rem; margin-top: 1.65rem;
margin-bottom: 1.65rem;
padding-left: 1rem; padding-left: 1rem;
font-weight: 500; font-weight: 500;
font-style: italic; font-style: italic;
color: inherit; color: inherit;
border-color: var(--xm-c-blockquote-color); border-left: .25rem solid var(--xm-c-blockquote-border);
border-left-width: .25rem;
quotes: '\201C''\201D''\2018''\2019'; quotes: '\201C''\201D''\2018''\2019';
margin-bottom: 1.6rem;
p { p {
&:first-of-type::before { &:first-of-type::before {
content: open-quote; content: open-quote;

View File

@ -3,9 +3,9 @@ table {
margin-bottom: 2rem; margin-bottom: 2rem;
width: 100%; width: 100%;
table-layout: auto; table-layout: auto;
font-size: .875rem; font-size: .85rem;
text-align: left; text-align: left;
line-height: 1.7143; line-height: 1.75;
} }
thead { thead {
font-weight: 600; font-weight: 600;
@ -14,9 +14,9 @@ thead {
border-bottom-color: var(--xm-c-thead-border); border-bottom-color: var(--xm-c-thead-border);
th { th {
vertical-align: bottom; vertical-align: bottom;
padding-right: .5714rem; padding-right: .575rem;
padding-bottom: .5714rem; padding-bottom: .575rem;
padding-left: .5714rem; padding-left: .575rem;
&:first-child { &:first-child {
padding-left: 0; padding-left: 0;
} }
@ -35,7 +35,7 @@ tbody {
} }
td { td {
vertical-align: top; vertical-align: top;
padding: .5714rem; padding: .575rem;
&:first-child { &:first-child {
padding-left: 0; padding-left: 0;
} }

View File

@ -4,7 +4,7 @@ h1 {
font-size: 2.25rem; font-size: 2.25rem;
font-weight: 800; font-weight: 800;
color: var(--xm-c-darker); color: var(--xm-c-darker);
line-height: 1.1111; line-height: 1.15;
} }
h2 { h2 {
margin-top: 2rem; margin-top: 2rem;
@ -12,9 +12,9 @@ h2 {
font-weight: 700; font-weight: 700;
color: var(--xm-c-dark); color: var(--xm-c-dark);
margin-bottom: 1rem; margin-bottom: 1rem;
line-height: 1.3334; line-height: 1.35;
code { code {
font-size: .875rem; font-size: .85rem;
} }
+ * { + * {
margin-top: 0; margin-top: 0;

View File

@ -1,11 +1,11 @@
$shiki-light: #f8f8f8; $shiki-light: #f8f8f8;
$shiki-dark: #0e0e0e; $shiki-dark: #0e0e0e;
$link-border: hsla(0deg 0% 50% / .3); $link-border: hsla(0deg 0 50% / .3);
$code: #111827; $code: #111827;
$ol-counter: #6b7280; $ol-counter: #6b7280;
$ul-counter: #d1d5db; $ul-counter: #d1d5db;
$hr-border: hsla(0deg 0% 50% / .3); $hr-border: hsla(0deg 0 50% / .3);
$blockquote-border: hsla(0deg 0% 50% / .3); $blockquote-border: hsla(0deg 0 50% / .3);
$figcaption: #6b7280; $figcaption: #6b7280;
$pre: #e5e7eb; $pre: #e5e7eb;
$thead: #111827; $thead: #111827;

View File

@ -1,15 +1,6 @@
@use '_partial/container' as *; @use '_partial/container' as *;
.markdown-body,
.prose { .prose {
@extend %container; @include container;
@import '_partial/title'; @import '_partial/all';
@import '_partial/text';
@import '_partial/link';
@import '_partial/code';
@import '_partial/quote';
@import '_partial/figure';
@import '_partial/list';
@import '_partial/table';
@import '_partial/media';
} }