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
0e6c171424 chore(package): standardize author field in package.json 2023-03-06 19:43:44 +08:00
d45e09d7bf chore(ci): add lts/* to node-version in CI 2023-03-05 19:53:39 +08:00
eb2e5f532a chore(ci): rename Build and Release to Release 2023-03-05 19:39:45 +08:00
2e99e64a3e refactor(colors)!: rename $link-border to $a-border 2023-03-05 18:15:14 +08:00
877ea710d6 chore(ci): only run lint and build when specified files modified 2023-03-05 18:09:07 +08:00
df63212d6d chore(ci): use windows-2022 to create releases [skip actions] 2023-03-05 17:52:14 +08:00
ee89b96068 fix(code)!: respect shiki themes 2023-03-05 17:43:16 +08:00
63a6fc2072 refactor!: deprecate .prose class and lint 2023-03-05 17:39:51 +08:00
e54282e5f8 docs(readme): move documentation to Wiki 2023-03-05 17:14:04 +08:00
2b9619f2e2 refactor: migrate to modern module system 2023-03-05 15:00:12 +08:00
2cb60cc6c4 fix(markdown): remove invalid .highlight class 2023-03-05 13:55:52 +08:00
beedb0e803 docs(readme): remove unnecessary remark 2023-03-05 12:46:14 +08:00
77e57fe3ae chore: release v0.0.5 2023-03-05 12:33:18 +08:00
5f45d99381 Due to a restrict of npm, we cannot override the 0.0.3 version. 2023-03-05 12:33:00 +08:00
936615f48c chore: release v0.0.3 2023-03-04 22:54:05 +08:00
06f383891e docs(readme): use shorthand link with CDN 2023-03-04 22:48:59 +08:00
e7b3d3eb8d chore(package.json): add main value to support CDN services 2023-03-04 22:36:48 +08:00
7ffabe53bd revert: de8b9d621c [skip actions] 2023-03-04 19:51:29 +08:00
95a1576179 feat(fonts): add Sarasa Gothic to monospace font fallback 2023-03-04 19:13:56 +08:00
27 changed files with 111 additions and 175 deletions

View File

@ -4,6 +4,12 @@ on:
push:
branches:
- master
paths:
- src/**.scss
- package.json
- Gruntfile.coffee
- .stylelintrc
- .stylelintignore
pull_request:
branches:
- master
@ -35,7 +41,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
node-version: [16, 18, latest]
node-version: [16, 18, lts/*, latest]
os: [ubuntu-latest, windows-latest, macos-latest]
fail-fast: false
steps:

View File

@ -1,4 +1,4 @@
name: Build and Release
name: Release
on:
push:
@ -8,8 +8,8 @@ on:
jobs:
# NPM Registry & GitHub Release
release:
# Use Ubuntu 22.04 LTS
runs-on: ubuntu-22.04
# Use Windows Server 2022
runs-on: windows-2022
steps:
# Step I
- name: Get Source Code
@ -33,7 +33,7 @@ jobs:
uses: TheDoctor0/zip-release@0.7.1
with:
type: tar
path: dist/*
path: dist/
filename: build.tar.gz
# Step VI
- name: Publish to NPM Registry

View File

@ -14,37 +14,9 @@
According to [.browserslistrc](https://github.com/kuohuanhuan/x-markdown-css/blob/master/.browserslistrc), `x-markdown-css` supports **all browsers support CSS variables.**
## Usage
## Get Started
You can use `x-markdown-css` with:
1. 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. Note that `bundle.css` without `.min` stands for unminified version.*
2. A CSS (with Node.js) / Sass / SCSS project:
First, install it with NPM ([PNPM](https://pnpm.io) or [Yarn](https://yarnpkg.com) also works):
```sh
npm i x-markdown-css@latest
```
Then, add it to your `.css` / `.sass` / `.scss` file.
For example, in CSS / SCSS you do:
```css
@import 'x-markdown-css';
```
> *ps. Note that no path or file extention is required
> since the `style` and `sass` field in `package.json` is filled.
> Just simply use `'x-markdown-css'` to import it.*
Visit the [Wiki](https://github.com/kuohuanhuan/x-markdown-css/wiki) page for more information.
## Built with

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "x-markdown-css",
"version": "0.0.2",
"version": "0.0.5",
"lockfileVersion": 3,
"requires": true,
"packages": {

View File

@ -1,6 +1,6 @@
{
"name": "x-markdown-css",
"version": "0.0.2",
"version": "0.0.5",
"description": "A simple and customizable markdown CSS stylesheet for everyone.",
"keywords": [
"markdown",
@ -16,13 +16,18 @@
"article",
"documentation"
],
"sass": "src/index.scss",
"main": "dist/bundle.min.css",
"style": "dist/bundle.min.css",
"sass": "src/index.scss",
"repository": {
"type": "git",
"url": "git+https://github.com/kuohuanhuan/x-markdown-css.git"
},
"author": "kuohuanhuan",
"author": {
"name": "kuohuanhuan",
"email": "hi@nekohuan.cyou",
"url": "https://nekohuan.cyou"
},
"license": "MIT",
"bugs": {
"url": "https://github.com/kuohuanhuan/x-markdown-css/issues"

8
src/_content.scss Normal file
View File

@ -0,0 +1,8 @@
@use 'sass:meta';
@use 'partials/container';
.markdown-body {
@include container.container;
@include meta.load-css('partials/all');
}

View File

@ -1,4 +1,4 @@
@use 'sass:meta' as *;
@use 'sass:meta';
@use 'variables/constants';
@use 'variables/colors';
@ -7,20 +7,21 @@
@use 'variables/modes/dark';
:root {
@each $name, $val in module-variables('constants') {
@each $name, $val in meta.module-variables('constants') {
--xm-#{$name}: #{$val};
}
@each $name, $val in module-variables('colors') {
@each $name, $val in meta.module-variables('colors') {
--xm-c-#{$name}: #{$val};
}
}
.markdown-body {
@each $name, $val in module-variables('light') {
@each $name, $val in meta.module-variables('light') {
--xm-c-#{$name}: #{$val};
}
}
.dark .markdown-body {
@each $name, $val in module-variables('dark') {
@each $name, $val in meta.module-variables('dark') {
--xm-c-#{$name}: #{$val};
}
}

View File

@ -1,4 +1,2 @@
@use 'scss/vars' as *;
@import 'scss/markdown';
@import 'scss/prose';
@use 'vars';
@use 'content';

9
src/partials/_all.scss Normal file
View File

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

View File

@ -2,5 +2,9 @@
max-width: fit-content;
color: var(--xm-c-regular);
font-size: 1rem;
font-family: var(--xm-font-display) !important;
line-height: 1.75;
&:first-child {
margin-top: 1rem;
}
}

View File

@ -33,3 +33,9 @@ pre {
}
}
}
.shiki {
margin: .5rem 0;
font-size: 1.05rem;
font-family: var(--xm-font-code) !important;
line-height: 1.4;
}

13
src/partials/link.scss Normal file
View File

@ -0,0 +1,13 @@
a {
border-bottom: 1px solid var(--xm-c-a-border);
color: var(--xm-c-deeper);
font-weight: 500;
text-decoration: none;
transition: border .3s ease-in-out;
code {
color: var(--xm-c-code);
}
&:hover {
border-bottom: 1px solid var(--xm-c-regular);
}
}

View File

@ -1,5 +1,6 @@
img,
video {
width: 100%;
margin-top: 2rem;
margin-bottom: 2rem;
}

View File

@ -2,12 +2,14 @@ blockquote,
q {
margin-top: 1.65rem;
margin-bottom: 1.65rem;
padding-left: 1rem;
padding: .6rem 1.2rem;
border-left: .25rem solid var(--xm-c-quote-border);
color: inherit;
font-weight: 500;
font-style: italic;
line-height: 1.5rem;
quotes: '\201C''\201D''\2018''\2019';
opacity: .8;
p {
&:first-of-type::before {
content: open-quote;
@ -16,4 +18,12 @@ q {
content: close-quote;
}
}
> * {
&:first-child {
margin-top: 0;
}
&:last-child {
margin-bottom: 0;
}
}
}

View File

@ -55,10 +55,35 @@ h6 {
opacity: .5;
}
hr {
margin-top: 3rem;
margin-bottom: 3rem;
width: 50px;
margin-top: 2rem;
margin-bottom: 2rem;
border-color: var(--xm-c-hr-border);
+ * {
margin-top: 0;
}
}
.header-anchor {
float: left;
margin-top: .125rem;
margin-left: -1.25rem;
padding-right: .5rem;
border: 0 !important;
font-size: .875rem;
text-decoration: none;
opacity: 0;
&:hover,
&:focus {
text-decoration: none;
}
}
@for $i from 1 through 6 {
h#{$i} {
&:hover,
&:focus {
.header-anchor {
opacity: .35 + $i * .025;
}
}
}
}

View File

@ -1,103 +0,0 @@
.markdown-body {
color: var(--xm-c-regular);
font-family: var(--xm-font-display) !important;
pre:not(.shiki, .highlight) {
margin: 0;
padding: 0;
background: transparent;
}
.shiki,
.highlight {
margin: .5rem 0;
font-size: 1.05rem;
font-family: var(--xm-font-code) !important;
line-height: 1.4;
&.shiki-light {
background: var(--xm-c-shiki-light) !important;
}
&.shiki-dark {
background: var(--xm-c-shiki-dark) !important;
}
}
img {
width: 100%;
}
a {
border-bottom: 1px solid var(--xm-c-link-border);
font-weight: inherit;
text-decoration: none;
transition: border .3s ease-in-out;
&:hover {
border-bottom: 1px solid var(--xm-c-regular);
}
code {
color: inherit;
}
}
hr {
width: 50px;
margin-top: 2rem;
margin-bottom: 2rem;
}
blockquote,
q {
padding: .6rem 1.2rem;
font-weight: normal;
font-style: normal;
line-height: 1.5rem;
opacity: .8;
> * {
&:first-child {
margin-top: 0;
}
&:last-child {
margin-bottom: 0;
}
}
p:first-of-type {
&::before,
&::after {
content: none;
}
}
}
&:first-child {
margin-top: 1rem;
}
}
html:not(.dark) .shiki-dark,
.dark .shiki-light {
display: none;
}
.item {
text-decoration: none;
opacity: .6;
transition: .2s all ease-out;
&:hover {
opacity: 1;
}
}
.header-anchor {
float: left;
margin-top: .125rem;
margin-left: -1.25rem;
padding-right: .5rem;
border: 0 !important;
font-size: .875rem;
text-decoration: none;
opacity: 0;
&:hover,
&:focus {
text-decoration: none;
}
}
@for $i from 1 through 6 {
h#{$i} {
&:hover,
&:focus {
.header-anchor {
opacity: .35 + $i * .025;
}
}
}
}

View File

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

View File

@ -1,8 +0,0 @@
a {
color: var(--xm-c-deeper);
font-weight: 500;
text-decoration: none;
code {
color: var(--xm-c-code);
}
}

View File

@ -1,6 +0,0 @@
@use 'partials/container' as *;
.prose {
@include container;
@import 'partials/all';
}

View File

@ -7,12 +7,8 @@ $ol-counter: #6b7280;
$ul-counter: #d1d5db;
// Border
$link-border: hsla(0deg 0% 50% / .3);
$a-border: hsla(0deg 0% 50% / .3);
$hr-border: hsla(0deg 0% 50% / .3);
$quote-border: hsla(0deg 0% 50% / .3);
$thead-border: #d1d5db;
$tr-border: #e5e7eb;
// Shiki (code highlight)
$shiki-light: #f8f8f8;
$shiki-dark: #0e0e0e;

View File

@ -1,7 +1,7 @@
// Font stack
$font-sans: 'Open Sans', 'Inter', 'Roboto', 'Helvetica', 'Arial', 'Sarasa Gothic TC', 'Sarasa Gothic SC', 'Noto Sans TC', 'Noto Sans SC', 'Microsoft JhengHei', 'Microsoft YaHei', -apple-system, sans-serif;
$font-serif: 'Merriweather', 'Georgia', 'Times New Roman', 'Times', 'Source Han Serif Traditional Chinese', 'Source Han Serif Simplified Chinese', 'Noto Serif TC', 'Noto Serif SC', serif;
$font-mono: 'DM Mono', 'Fira Code', 'Jetbrains Mono', 'Input Mono', 'Menlo', 'MesloLGS NF', 'Ubuntu', monospace;
$font-mono: 'DM Mono', 'Fira Code', 'Jetbrains Mono', 'Input Mono', 'Menlo', 'MesloLGS NF', 'Ubuntu', 'Sarasa Gothic TC', 'Sarasa Gothic SC', monospace;
// Font defaults
$font-display: var(--xm-font-sans);