Serious 是一个用于构建网络情节(或连载)小说的框架。它需要许多以 Markdown 格式编写的源文件,并将这些文件编译成一个简单、结构化的单页 Web 应用程序,以便您部署到您的 Web 主机。
麻省理工学院许可证。
通过 NPM 安装: npm install -g serious-fiction
安装 Serious 后,您可以访问简单的 CLI 来构建您的故事。我是编写 CLI 的新手,因此它可能不会像您期望的那样功能齐全。
理想情况下,您应该在空目录中创建您的故事。在目录中运行serious init
即可开始。
运行serious build
来重建您的故事,并serious serve
以在本地查看它。您可以组合这两个命令(例如, serious build serve
或serious serve build
)来快速构建和查看故事。您还可以运行serious build
并刷新浏览器选项卡(有时可能需要硬刷新,即Ctrl + F5
)以查看更新,而无需再次提供网站服务。
Serious 使用 AJAX,因此您需要通过 localhost 提供服务,不能只打开index.html
文件。
当您运行serious init
时,一个config.json
文件将添加到您的目录中。将来,我希望将这部分作为 CLI 的一部分,但现在,您需要手动编辑它。默认情况下它看起来像这样:
{
"title" : " The Title of Your Story " ,
"displayTitle" : " " ,
"subtitle" : " " ,
"description" : " A description of your website (for web searches) goes here. " ,
"copyright" : " © [year] [your name]. All rights reserved. " ,
"posts" : " episodes " ,
"input" : " ./src " ,
"output" : " ./publish " ,
"links" : [
{ "text" : " Website " , "url" : " https://twinelab.net " , "label" : " Learn more about Serious. " },
{ "text" : " Blog " , "url" : " https://twinelab.net/blog " , "label" : " Visit my blog. " }
],
"recentMax" : 5 ,
"recentsExcerpts" : 1 ,
"episodesExcerpts" : 3 ,
"debug" : false ,
"disqusShortname" : " " ,
"googleAnalytics" : " " ,
"cookieWarning" : true ,
"nswf" : false ,
"version" : " latest "
}
选项 | 默认 | 描述 |
---|---|---|
title | "The Title of Your Story" | 这是你的故事的名称。它出现在最近剧集页面和剧集列表页面以及浏览器选项卡中。 Disqus 评论与标题相关,因此您可能不想更改它。 |
displayTitle | "" | 如果您在引号之间添加某些内容,它将替换故事中所有地方的标题,除了 Disqus 评论之外。 |
subtitle | "" | 它出现在某些页面的主要故事标题下方。您可以将其用作署名、副标题或简短的描述。 |
description | "A description of your website (for web searches) goes here. | 您在此处输入的内容不会出现在任何页面中,而是会在某些网站(例如搜索引擎或社交媒体网站)上列出,并附有故事链接。 |
copyright | "© [year] [your name]. All rights reserved." | 版权声明可以显示在每个页面的最底部,就在"Powered by Serious." 消息是。您不一定必须使用它来获取版权信息。 © 是 ©(版权符号)的 html 代码。 |
posts | "episodes" | 此选项可用于更改用于引用您的剧集帖子的单词,因此您可以根据您的需要将其更改为其他内容,例如"chapters" 或"verses" 。 |
input | "./src" | 这告诉 Serious 在哪里查找您的帖子(相对于config.json 。向其传递一个文件夹,它将递归地搜索 Markdown 文件(扩展名为.md )以将其转换为帖子。一般来说,您不需要更改此设置,只需将所有帖子放在src 文件夹中即可。 |
output | "./publish" | 与上面类似,这告诉 Serious 在哪里放置构建的网页以及从哪里运行它。同样,您通常不需要更改此设置。 |
links | ... | 您可以使用此选项将链接添加到侧边栏菜单。每个链接应如下所示: { "text": "Click here", "url": "www.somesite.com", "label": "this is a tooltip!" } 。 text 属性控制链接的显示文本,而url 是单击链接时链接所在的位置。当用户将鼠标悬停在链接上时, label 属性将显示为工具提示(使用title html 属性)。您可以使用它来创建指向您的个人博客、主网站、Patreon 等的链接。 |
recentMax | 5 | 这控制了《严肃》在最近页面(和登陆页面)上显示的剧集数量。 |
recentsExcerpts | 1 | 这控制最近列表中显示的内容的剧集数量。那些未显示的显示为椭圆 (&helli;)。如果您希望显示所有内容,请将其设置为等于(或高于) recentMax 。 |
episodesExcerpts | 3 | 这控制了剧集列表上有多少剧集显示其内容,类似于recentsExcerpts 。 |
debug | false | 这将打开调试功能,包括控制台日志和其他内容。大多数用户通常不需要。部署之前可能要确保它是错误的。 |
disqusShortname | "" | 您可以通过 Disqus 设置评论。评论线程将添加到每集,但不会添加到元帖子、列表等。只需在此处添加您的简称,无需进一步配置! |
googleAnalytics | "" | 您可以为您的严肃故事设置 Google Analytics。只需创建一个帐户,输入您网站的 URL,然后将跟踪 ID 复制并粘贴到此处即可。 |
cookieWarning | true | 向您的项目添加 Cookie Consent 生成的 cookie 同意警告。如果您有自己的解决方案,或者只是不在乎,您可以将其设置为 false。 Serious 本身不使用 cookie,仅当您使用 Disqus 和/或 Google Analytics 时才需要它们。 |
nsfw | false | 如果为 true,则添加一个全屏警告对话框,要求用户确认年龄,默认为超过 18 岁。您可以将该值更改为数字,例如13 或21 以要求用户确认他们是否超过您可能的其他年龄希望检查一下。 |
version | "latest" | 要包含的 Serious 渲染引擎的版本。建议使用“最新”,但如果您需要使用不同版本,可以在此处标记。有关版本列表,请参阅下面的变更日志。 |
您可以使用 GitHub Flavored Markdown 编写剧集。在每一集的顶部,您应该有 YAML 标题来描述该集:
---
title: Example Episode
subtitle: Serious Examples for Serious People
episode: 1
description: Welcome to Serious!
---
This is an **example episode**!
Welcome to Serious. To create episodes, you create a heading block like the one at the top of this file, then write your *markdown format content* after that.
范围 | 描述 |
---|---|
标题 | 该集的标题。必需的。 |
字幕 | 该集的副标题。选修的。 |
插曲 | 剧集编号。必需的。请参阅下面的更多内容。 |
描述 | 该情节的简要描述(不是摘录)。不是必需的,但推荐。 |
对剧集进行编号时,从 1 开始(不要从 0 开始,这会导致错误),并确保任何数字都不会加倍(也会导致错误)。剧集也不应该稀疏。如果有第一集和第三集,就应该有第二集;这不会导致错误,但可能会破坏生成的网站。
“元”帖子是存在于正常剧集结构之外的特殊帖子。诸如“关于”页面、回顾等内容。元帖子会作为链接自动添加到侧边栏;单击这些链接会呈现元帖子。要创建一个,请确保前面的episode
参数是meta
而不是数字。还有一个附加的link
参数可用于更改侧边栏链接文本;如果未提供link
参数,则使用title
。如果将link
参数设置为_
(单个下划线)以阻止创建侧边栏链接。
---
title: About My Story
link: About
label : Learn more...
subtitle: This is a meta post!
episode: meta
description: Meta posts are awesome!
---
By creating a post and making it's episode property in the header `meta` instead of a number, you can create a *meta post*, which will automatically appear as a link in the sidebar.
label
参数将标题属性(和“工具提示”)添加到侧边栏中生成的链接。
元帖子的参数在其他方面与正常剧集相同。请注意,元帖子的标题应该是唯一的;剧集没有这个限制(尽管这是明智的)。
您可以通过创建如下所示的链接来创建指向特定剧集的 Markdown 链接:
[Last week](./?ep=10) our heroes...
上面将创建第 10 集的链接。要创建元帖子的链接,您需要知道标题,该标题已标准化和 slugified(例如修剪、小写,并且所有非字母和非数字值都替换为破折号)。例如,如果title
参数是“ About
”,它将变为./?meta=about
,而Where is This Going?
会变成./?meta=where-is-this-going-
。
部署网站需要输出文件夹中的所有内容(默认为publish
)。将所有文件复制到您的托管解决方案以进行部署。
我设计的一些 CSS 主题。
您可以通过编辑输出目录中的theme.css
文件来创建主题。您可以恢复默认值或通过删除文件重新开始 - 下次构建时将生成一个新的空白theme.css
文件。您可以通过覆盖同一文件来下载并安装主题。
目前该项目有三个主要组件:NPM 包,即 Serious CLI;渲染引擎、脚本和样式的存储库,通过 CDN 提供给生成的 Web 应用程序;以及我制作的主题的存储库。所有这些组件都可以进行一些整理,但要点是这三个组件是同步开发的,但在功能上彼此几乎没有关系。
nsfw
配置设置。