(Translated by https://www.hiragana.jp/)
GitHub - ksky521/nodeppt: This is probably the best web presentation tool so far!
Skip to content

ksky521/nodeppt

Repository files navigation

nodeppt 2.0

るいるいかつ过做 PPT てき
> 查看效果こうかhttps://nodeppt.js.org

Markpress npm badge

nodeppt 2.0 もとwebslides、webpack、markdown-it、posthtml じゅう构,しん效果こうか

Install

npm install -g nodeppt

TODO

  • bug fix
  • 增加ぞうか页编辑公共こうきょう资源,说人话就 splitChunks

Usage

简化りょう,就さん个命れい

  • new:使用しよう线上ばん创建いち个新てき md ぶんけん
  • serve:启动いち个 md ぶんけんてき webpack dev server
  • build:编译产出いち个 md ぶんけん
# create a new slide with an official template
$ nodeppt new slide.md

# create a new slide straight from a github template
$ nodeppt new slide.md -t username/repo

# start local sever show slide
$ nodeppt serve slide.md

# to build a slide
$ nodeppt build slide.md

帮助

# help
nodeppt -h
# 获取帮助
nodeppt serve -h

えんじ讲者しき

nodeppt ゆうえんじ讲者しきざい页面 url きさきめん增加ぞうか?mode=speaker すんで以打开演讲者しきそうへいどう

Keyboard Shortcuts

  • Page: ↑/↓/←/→ Space Home End
  • Fullscreen: F
  • Overview: -/+
  • Speaker Note: N
  • Grid Background: Enter

公共こうきょう资源:public ぶんけん

如果项目ぶんけん夹下,存在そんざいpublicぶんけん夹,直接ちょくせつどおり过 url 访问,参考さんこうwebpack dev serverてき contentBase 选项。

ざいbuildてき时候,public ぶんけん夹中てきぶんけんかい完全かんぜん copy いたdistぶんけん夹中

编写

さいけいからだ验是 chrome 浏览本来ほんらい就是给做えんじしめせようてき所以ゆえん就别こう虑非 Chrome 浏览けんよう问题りょう

这里说下怎么编写。

基本きほん语法

せい个 markdown ぶんけんぶん为两部分ぶぶんだい一部分是写在最前面的配置はいちしかきさき使用しよう<slide>へだた开的ごと页幻とうかた内容ないよう

配置はいち

nodeppt てき配置はいちちょく接写せっしゃざい md ぶんけん顶部てきさいよう yaml 语法,れい如下めん配置はいち

title: nodeppt markdown えんじしめせ
speaker: 三水さみずきよし
url: https://github.com/ksky521/nodeppt
js:
    - https://www.echartsjs.com/asset/theme/shine.js
prismTheme: solarizedlight
plugins:
    - echarts
    - mermaid
    - katex
  • title: えんじ讲主题
  • speaker:えんじ讲者
  • url:
  • js:js ぶん件数けんすう组,いた body まえ
  • css:css ぶん件数けんすう组,いた头部
  • prismTheme:prism 配色はいしょく值范围 ['dark', 'coy', 'funky', 'okaidia', 'tomorrow', 'solarizedlight', 'twilight']
  • plugins:目前もくぜん支持しじ echartsmermaid katex さん个插けん

插件

目前もくぜん nodeppt 支持しじ 图表 echartsりゅうほど图 mermaid数学すうがく符号ふごう KaTeX さん个插けん

echarts

echarts しゅ题配しょく直接ちょくせつざいyaml配置はいちてき js ちゅう引入。echarts さいようfence语法,如下:

{
    xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
        type: 'value'
    },
    series: [{
        data: [820, 932, 901, 934, 1290, 1330, 1320],
        type: 'line'
    }]
}

详见site/echarts.md

mermaid

mermaid しゅ题配しょく直接ちょくせつざいyaml配置はいちてき js ちゅう引入。mermaid さいようfence语法,如下:

sequenceDiagram
    Alice ->> Bob: Hello Bob, how are you?
    Bob-->>John: How about you John?
    Bob--x Alice: I am good thanks!
    Bob-x John: I am good thanks!
    Note right of John: Bob thinks a long<br/>long time, so long<br/>that the text does<br/>not fit on a row.

    Bob-->Alice: Checking with John...
    Alice->John: Yes... John, how are you?
Loading

详见site/mermaid.md

ketex

参考さんこうmarkdown-it-katex语法

<slide> 语法

nodeppt かいすえ<slide>对整个 markdown ぶんけん进行拆分,拆成单页てき幻灯げんとうへん内容ないよう<slide> 标签支持しじ下面かめん标签:

  • class/style とう正常せいじょうてき class 类,以通过这个控せい居中きょちゅう(aligncenter),内容ないよう位置いち背景はいけいしょくとう
  • image:背景はいけい图片,基本きほん语法 image="img_url"
  • video:背景はいけい视频,基本きほん语法 video="video_src1,video_src2"
  • :class:wrap てき class,下面かめん详解

まい个 slide かい解析かいせきなり下面かめんてき html 结构:

<section class="slide" attrs...><div class="wrap" wrap="true">// 具体ぐたい markdown 渲染てき内容ないよう</div></section>

其中<slide> てきclassとうかい解析かいせきいた <section>标签上面うわつら,而:class则被解析かいせきいたdiv.wrap上面うわつられい如:

<slide :class="size-50" class="bg-primary"></slide>

output 为:

<section class="slide bg-primary"><div class="wrap size-50" wrap="true">// 具体ぐたい markdown 渲染てき内容ないよう</div></section>

背景はいけい:图片

<slide>てきimage かい解析かいせきなり背景はいけいだい图,つね见的支持しじ方式ほうしきゆう

<slide image="https://source.unsplash.com/UJbHNoVPZW0/">

# 这是一个普通的背景图

<slide image="https://source.unsplash.com/UJbHNoVPZW0/ .dark">

# 这张背景はいけい图会ざい图片上面うわつらこうむ一层偏黑色的透明层

<slide image="https://source.unsplash.com/UJbHNoVPZW0/ .light">

# 这张背景はいけい图会ざい图片上面うわつらこうむ一层偏白色的透明层

<slide class="bg-black aligncenter" image="https://source.unsplash.com/n9WPPWiPPJw/ .anim">

# 这张背景はいけい图会缓慢动

详见site/background.mdざい线演しめせ

样式

样式ふとおお具体ぐたい详见site/classes.mdざい线演しめせ

ぬのきょく

nodeppt 这次使用しようwebslidesてきぬのきょく支持しじ丰富てきぬのきょく,实在ふとりょう直接ちょくせつぶんsite/layout.mdざい线演しめせ

attribute

参考さんこうmarkdown-it-attrs支持しじりょうattributeおさむあらため增加ぞうか class 支持しじとうこうのう

其中:..classかい往上いち级节てん添加てんか class,支持しじ{.class1.class2}这种 class てき语法。用法ようほう举例:

# header {.style-me.class2}

paragraph {data-toggle=modal}

Output:

<h1 class="style-me class2">header</h1>
<p data-toggle="modal">paragraph</p>
Use the css-module green on this paragraph. {.text-intro}

Output:

<p class="text-intro">Use the css-module green on this paragraph.</p>
-   list item **bold** {.red}

Output:

<ul>
    <li class="red">list item <strong>bold</strong></li>
</ul>
-   list item **bold**
    {.red}

Output:

<ul class="red">
    <li>list item <strong>bold</strong></li>
</ul>

image 增强ぞうきょう

对于 image ,支持しじ外面がいめんつつみ裹一层的うつしほう具体ぐたい语法 !![](图片 属性ぞくせい)れい如:

!![](https://webslides.tv/static/images/iphone.png .size-50.alignleft)

Output:

<img src="https://webslides.tv/static/images/iphone.png" class="size-50 alignleft" />
!![figure](https://webslides.tv/static/images/setup.png .aligncenter)

Output:

<figure><img src="https://webslides.tv/static/images/setup.png" class="aligncenter" /></figure>

button

nodeppt てき button 类似link语法てき支持しじ蓝色、圆角、そらこころかず icon 版本はんぽんてき button:

[普通ふつう按钮](){.button} [圆角普通ふつう按钮](){.button.radius}

[そらこころ](){.button.ghost} [:fa-github: 前面ぜんめん带 icon](){.button}

Icon:FontAwesome

nodeppt てき icon 支持しじ FontAwesome 语法:

  • :fa-xxx:<i class="fa fa-xxx"></i>
  • :~fa-xxx:~<span><i class="fa fa-xxx"></i></span>
  • ::fa-xxx:: → 块级<i class="fa fa-xxx"></i>そくかいpつつみ

span

だい码修あらためmarkdown-it-span支持しじ attr语法,基本きほん用法ようほう

:span:
:span: {.text-span}

动效

nodeppt 一如既往的支持动效,2.0 版本はんぽん支持しじ动效主要しゅよう页面ないてき动效。

支持しじ动效包括ほうかつ

  • fadeIn
  • zoomIn
  • rollIn
  • moveIn
  • fadeInUp
  • slow

ざい需要じゅよう支持しじてき动效ちち节点添加てんか.buildあるものざい具体ぐたいてきぼう元素げんそじょう添加てんか.tobuild+动效 classそく

按照惯例,nodeppt 还支持しじanimate.cssてき动效哦~

详细查看ぶんけんsite/animation.mdざい线演しめせ

使用しよう强大きょうだいてき:::完成かんせい复杂ぬのきょく

:::语法扩展りょう markdown-it-container 语法,だま认是任意にんい tag,れい

:::div {.content-left}

## title

:::

Output:

<div class="content-left"><h2>title</h2></div>

支持しじtag はま套,じょ此之がい支持しじてき组件包括ほうかつ

  • card:卡片,いち边是图片,いち边是内容ないよう
  • column:column 栏布きょく
  • shadowbox:带阴かげてき盒子
  • steps:骤组けん
  • cta:
  • gallery:图片
  • flexblock:flex block ぬのきょく支持しじ个子类型
  • note: えんじ讲注释

基本きほん语法

:::TYPE {.attrs}

## だいいち部分ぶぶん

使用しよう hr 标签隔开

---

## だい部分ぶぶん

这里てき内容ないよう也是哦

:::

详细以看 component 部分ぶぶんてき markdown ぶんけんざい线演しめせ

しるし?导出 pdf?

chrome 浏览直接ちょくせつざいだいいちcommand+P/ctrl+P そく

こう级玩ほう

如果上面うわつら

nodeppt.config.js

ざい nodeppt 执行みち创建nodeppt.config.jsぶんけん配置はいちwebpackあい关的选项,另外支持しじとぎ nodeppt 插件。

だま认内おけてきconfig.js内容ないよう如下:

/**
 * @file だま配置はいち
 */
module.exports = () => ({
    // project deployment base
    baseUrl: '/',

    // where to output built files
    outputDir: 'dist',

    // where to put static assets (js/css/img/font/...)
    assetsDir: '',

    // filename for index.html (relative to outputDir)
    indexPath: 'index.html',
    // 插件,包括ほうかつ markdown  posthtml
    plugins: [],
    // chainWebpack: [],

    // whether filename will contain hash part
    filenameHashing: true,

    // boolean, use full build?
    runtimeCompiler: false,

    // deps to transpile
    transpileDependencies: [
        /* string or regex */
    ],

    // sourceMap for production build?
    productionSourceMap: true,

    // use thread-loader for babel & TS in production build
    // enabled by default if the machine has more than 1 cores
    parallel: () => {
        try {
            return require('os').cpus().length > 1;
        } catch (e) {
            return false;
        }
    },

    // multi-page config
    pages: undefined,

    // <script type="module" crossorigin="use-credentials">
    // #1656, #1867, #2025
    crossorigin: undefined,

    // subresource integrity
    integrity: false,

    css: {
        extract: true
        // modules: false,
        // localIdentName: '[name]_[local]_[hash:base64:5]',
        // sourceMap: false,
        // loaderOptions: {}
    },

    devServer: {
        /*
      host: '0.0.0.0',
      port: 8080,
      https: false,
      proxy: null, // string | Object
      before: app => {}
    */
    }
});

parser plugin

解析かいせき插件ぶん两类: markdown-it posthtml

  • markdown-it:解析かいせき markdown ぶんけんてき,如果增强ぞうきょう markdown 语法,以用这类插件
  • posthtml:处理 html 标签てき,如果おさむあらため输出てき html 内容ないよう以用这类插件

てい义一个 plugin :

module.exports = {
    // 这里てき id 必须以 markdown/posthtml开头
    // ぶん别对应 markdown-it posthtml 插件语法
    id: 'markdown-xxx',
    // 这里てき apply 插件实际てき内容ないよう,详细查看 markdown-it posthtml 插件开发
    apply: () => {}
};

webslides plugin

WebSlides 插件需要じゅよううつしいたいち个 js ぶんけんちゅうしかきさきさく为数组放いたwindow.WSPlugins_なかしかきさきどおり过在 md 页面てき配置はいち(yaml)添加てんか js てき方法ほうほう引入。

js: - webslide_plugins.js
// webslide_plugins.js内容ないよう
window.WSPlugins_ = [
    {
        id: 'webslide_plugin_name',
        // 下面かめん对应てき插件类
        apply: class Plugin {}
    }
];

参考さんこうWebSlides ぶん

Template:自制じせいばん

参考さんこうnodeppt-template-default

しかきさき使用しようnodeppt new username/repo xxx.md使用しよう

Thanks