Compare commits

..

9 Commits
master ... 4.0

Author SHA1 Message Date
A.C.Sukazyo Eyre dcf921d2af
update books 2024-01-16 18:17:19 +08:00
A.C.Sukazyo Eyre 2761198ba2
add icon and home intro 2024-01-15 20:35:06 +08:00
A.C.Sukazyo Eyre 3aee1715c6
update books 2024-01-15 14:12:19 +08:00
A.C.Sukazyo Eyre 39fb6be9d7
ph-bookshelf update 2023-03-28 17:54:30 +08:00
A.C.Sukazyo Eyre 78fdd5f654
add regex highlight intro 2023-03-27 23:49:24 +08:00
A.C.Sukazyo Eyre 1ea9034221
update with ph-Bookshelf 2023-03-27 19:17:05 +08:00
A.C.Sukazyo Eyre ebe5c90963
add support for md front matter & open page unlisted
- support page config define in front matter
  - support `title`, which can set HTML title.
    - if `title` is not set, then HTML title will try find page title defined in book.xml
	- if `title` is set but <h1> title not set, it will generated a <h1> title using the value of `title`
  - support `configurations` which can set page level configs here.
- now can open page that has .md file but not defined in book.xml (must in a book defined)
- old.title.gen is not supported yet.
2023-03-25 20:07:41 +08:00
A.C.Sukazyo Eyre 900d9c9281
update sub-books config version 2.0 2023-02-26 22:21:44 +08:00
A.C.Sukazyo Eyre 66bd98484d
更新为 version 2.0 配置文件格式,书籍目录添加 Separator 支持,解析器部分跟进更新
- 支持了新的 bookshelf 以及其中的 config/link/book 解析
- 支持了新的 page/chapter/separator 以及 root_book 的解析
- 暂不支持 book.xml 根配置的解析
- 添加了为 Separator 设置的 css 样式
2023-02-26 16:12:34 +08:00
11 changed files with 257 additions and 41 deletions

21
%assets/ph-bookshelf.svg Normal file
View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="_圖層_1" data-name="圖層 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 405.73 514.65">
<defs>
<style>
.cls-1 {
fill: #91c6ff;
}
.cls-1, .cls-2 {
stroke-width: 0px;
}
.cls-2 {
fill: #e8f0fe;
}
</style>
</defs>
<rect class="cls-1" width="405.73" height="514.65" rx="55.41" ry="55.41"/>
<rect class="cls-2" x="53.03" y="118.03" width="60.47" height="265.36" rx="30.24" ry="30.24"/>
<rect class="cls-2" x="53.03" y="37.39" width="60.47" height="60.47" rx="30.24" ry="30.24"/>
</svg>

After

Width:  |  Height:  |  Size: 615 B

View File

@ -1,7 +1,38 @@
# Workshop Documentations / Rebuild In Progress # Workshop Documentations Home
`# WIP` 这里存放着所有工房(或许还有工房成员的一些)文档。
## 资源测试 这里应该有点东西,不过在主站 <https://sukazyo.cc/> 还未重建完成的当下,这里还没法放什么东西。所以你目前可以做的也只有,在侧边栏中打开 **Books** 部分以寻找想看的内容。
![test_screenshot](./test_screenshot.png) ---
由于工房在经历很多的重建所以文档站or pretty much many things还没有恢复这里列出一些工房正在进行恢复的内容
- **工房主站**
之前一直是 blog而且 mostly like 工房主人自己的 blog现在工房主人的 blog 已经迁移至了子域名。主域名未来大概会弄一些资源索引什么的。<small>[关于友链](#关于-sukazyocc-的友链)</small>
- **Workshop Documentations**
- Hyper Translation Spec
- ws-wiki 应该会以另一种形式存在,或许就并到主站了。
- SSSPFG
<small>( Super Statement (StapxSteve Sourced) Salted Powerless Fish Group )</small> 可能会没了,如果没有人想要的话。
- 以及一些大概会有(新建)的工具链文档:
- Resource Tools (java)
- messiva (java)
- 锐意策划中的 da4a
- 别的暂时想不起来了
- **Workshop Services**
(aka. [srv.sukazyo.cc](https://srv.sukazyo.cc)), 锐意策划中
- **Urara Sukazyo**
(aka. [urara.sukazyo.cc](https://urara.sukazyo.cc)),同样是锐意策划中。(有人想要,所以应该会有。)
---
## 关于 sukazyo.cc 的友链
曾经主站 <https://sukazyo.cc> 还在做 blog 的时候有一些友链。由于现在工房和安妮aka. Sukazyo个人已经在进行分开的工作所以之前的 blog 已经相当于是完全翻新并转移到了子域名下。Workshop 正在考虑是否有必要设置工房团队的 Official Blog目前的想法是似乎没有什么必要毕竟也会有 fediverse 账号),不过如果有人<small>(aka. You)</small>觉得有必要的话,工房大概也会做一个。
所以,现在的计划是等到主站和安妮的个人 blog 都准备好的时候,将友链转移到个人 blog 的子域名下。如果未来真的会有工房 Blog 的话,或许也可以选择使用工房的 blog。
---
以及 [Super Secret Page](./super-secret-page)!

View File

@ -0,0 +1,18 @@
# 超级秘密页面
```xml
<Chapter root="test-collection/">
<caption><![CDATA[<i>__test_collection</i>]]></caption>
<Page id="enhanced-frontend/test-regex-highlight">RegEX 着色</Page>
<Page id="enhanced-frontend/test-code-highlight">codeblock highlight</Page>
<!-- <Page id="language-parsing/rest">ReST Parser</Page> -->
<!-- <Page id="language-parsing/tex">LaTeX Parser</Page> -->
<Page id="enhanced-frontend/rolling-title">滚动标题栏</Page>
</Chapter>
```
- [RegEX 着色](./test-collection/enhanced-frontend/test-regex-highlight)
- [codeblock highlight](./test-collection/enhanced-frontend/test-code-highlight)
- ~~[ReST Parser](./test-collection/language-parsing/rest.rst)~~
- ~~[LaTeX Parser](./test-collection/language-parsing/tex.tex)~~
- [滚动标题栏](./test-collection/enhanced-frontend/rolling-title.md)

View File

@ -1,3 +1,9 @@
---
title: 这是一个正在滚动的网页标题
configurations:
web-title.rolling: 'true'
---
# 滚动标题 # 滚动标题
↖ 看浏览器标题栏 ↖ 看浏览器标题栏

View File

@ -0,0 +1,110 @@
---
configurations:
prism.plugins: "treeview"
---
代码纯手打,没有经过 IDE 查错,如发现错误还请立即 issue
## 创建资源文件索引对象
要使用 ResourceTools首先需要建立一个 ResourcesPackage 对象,它是你的项目的资源文件的索引对象。
```java
// 导入类
import cc.sukazyo.restools.ResourcesPackage;
/* ... */
//创建对象
ResourcesPackage pack = new ResourcesPackage(Test.class, "assets");
```
构造函数的第一个参数是一个 Class 对象,用于确定你的项目。
第二个参数是在项目文件为根目录的路径下,你的资源文件的位置。
一般来说在IDE等项目管理环境下一个项目的源文件路径如下
```treeview
src/
|-- main/
| |-- java/
| └── resources/
└── test/
|-- java/
└── resources/
```
这个路径指的就是在{.lang-url}`src/main/resources`目录下的{.lang-url}`assets`文件夹。
## 获取资源文件
不同于 Java 中的 `java.io.File`{.lang-java} 的是ResourceTools 使用了文件和文件夹对象分离的方式因此ResourcesPackage 对象拥有以下两个 get 方法:
```java
// 获取文件
public ResFile getResource (String path) throws IOException;
// 获取目录
public ResDir getResDir (String path) throws IOException;
```
前一个用于获取文件对象,后一个则是获取目录对象。
其中的 `path` 参数为文件/目录相对于设置的资源文件根目录(`"assetes"`)的位置。
例如如果一个项目的 resources结构如下
```treeview
resources/
|-- assets/
| |-- propertes.io
| └── lang/
| └── default.lang
└── idn/
|-- ios/
└── windows/
```
若要获取`default.lang`文件,则使用以下方法:
```java
/** 之前创建的资源文件索引类:
* ResourcesPackage pack = new ResourcesPackage(Test.class, "assets");
*/
pack.getResource("/lang/default.lang");
```
## ResFile 使用
```java
// 获取到一个文件
ResFile res = pack.getResource("/lang/default.lang");
InputStream ins = res.read(); // 获取到这个文件的流
String content = res.readAsString(); // 直接获取这个文件的纯文本字符串
// 没有测试如果将其应用在非纯文本文件上的效果,
// 同时 Sukazyo 认为也不会有硬读非纯文本文件的人
// 硬读纯文本文件的话,后果请自负
```
## ResDir 使用
```java
// 获取到一个目录
ResFile res = pack.getResource("/");
ResFile[] reses = res.listFiles(); // 读取到直接属于这个目录下的文件
// 不读间接属于目录的文件
// 在这个例子中会读取到 properties.io
ResDir[] dirs = res.listDirs(); // 和上文类似,读取直接属于此目录的子目录
// 这个例子中会读到 lang 目录
File target = new File("./assets/"); // 一个 File 对象,指向的是程序运行目录下的 assets 子目录
res.extract(target, false); // 将这个目录下的所有文件和文件夹解压到目标目录中
// 会解压 properties.io lang/ lang/default.lang
// 如果 target 目录不存在的话会创建这个目录
// 第二个参数决定是否覆盖已存在的文件true为覆盖false为不覆盖
res.extract(target); // 上一个方法的简略版
// 覆盖开关始终为 true
```

View File

@ -1,3 +1,21 @@
---
title: RegEx 着色
configurations:
regex.highlight: 'true'
prism: 'true'
---
# regex highight
[regex-colorizer]: https://github.com/suk-ws/regex-colorizer
[Prism]: https://prismjs.com
[source][regex-colorizer]
<small>base colorized by *[regexr.com](https://regexr.com)*</small>
<code class="regex"><span class="reg-anchor">^</span><span class="reg-group"><span class="reg-group-tag">(?:</span><span class="reg-char">https</span><span class="reg-quantifier">?</span><span class="reg-char">://</span><span class="reg-group-tag">)</span></span><span class="reg-quantifier">?</span><span class="reg-group"><span class="reg-group-tag">(</span><span class="reg-group"><span class="reg-group-tag">(?:</span><span class="reg-group"><span class="reg-group-tag">(?:</span><span class="reg-char">c</span><span class="reg-cescape">\\.</span><span class="reg-group-tag">)</span></span><span class="reg-quantifier">?</span><span class="reg-char">vx</span><span class="reg-alter">|</span><span class="reg-char">fx</span><span class="reg-alter">|</span><span class="reg-char">www</span><span class="reg-cescape">\\.</span><span class="reg-group-tag">)</span></span><span class="reg-quantifier">?</span><span class="reg-char">twitter</span><span class="reg-cescape">\\.</span><span class="reg-char">com</span><span class="reg-group-tag">)</span></span><span class="reg-char">/</span><span class="reg-group"><span class="reg-group-tag">(</span><span class="reg-group"><span class="reg-group-tag">(</span><span class="reg-cclass">\w</span><span class="reg-quantifier">{1,}</span><span class="reg-group-tag">)</span></span><span class="reg-char">/status/</span><span class="reg-group"><span class="reg-group-tag">(</span><span class="reg-cclass">\d</span><span class="reg-quantifier">+</span><span class="reg-group-tag">)</span></span><span class="reg-group"><span class="reg-group-tag">(?:</span><span class="reg-char">/photo/</span><span class="reg-group"><span class="reg-group-tag">(</span><span class="reg-cclass">\d</span><span class="reg-quantifier">+</span><span class="reg-group-tag">)</span></span><span class="reg-group-tag">)</span></span><span class="reg-quantifier">?</span><span class="reg-group-tag">)</span></span><span class="reg-char">/</span><span class="reg-quantifier">?</span><span class="reg-group"><span class="reg-group-tag">(</span><span class="reg-cescape">\?</span><span class="reg-set"><span class="reg-set-tag">[</span><span class="reg-cclass">\w</span><span class="reg-char">&=-</span><span class="reg-set-tag">]</span></span><span class="reg-quantifier">+</span><span class="reg-group-tag">)</span></span><span class="reg-quantifier">?</span><span class="reg-anchor">$</span></code> <code class="regex"><span class="reg-anchor">^</span><span class="reg-group"><span class="reg-group-tag">(?:</span><span class="reg-char">https</span><span class="reg-quantifier">?</span><span class="reg-char">://</span><span class="reg-group-tag">)</span></span><span class="reg-quantifier">?</span><span class="reg-group"><span class="reg-group-tag">(</span><span class="reg-group"><span class="reg-group-tag">(?:</span><span class="reg-group"><span class="reg-group-tag">(?:</span><span class="reg-char">c</span><span class="reg-cescape">\\.</span><span class="reg-group-tag">)</span></span><span class="reg-quantifier">?</span><span class="reg-char">vx</span><span class="reg-alter">|</span><span class="reg-char">fx</span><span class="reg-alter">|</span><span class="reg-char">www</span><span class="reg-cescape">\\.</span><span class="reg-group-tag">)</span></span><span class="reg-quantifier">?</span><span class="reg-char">twitter</span><span class="reg-cescape">\\.</span><span class="reg-char">com</span><span class="reg-group-tag">)</span></span><span class="reg-char">/</span><span class="reg-group"><span class="reg-group-tag">(</span><span class="reg-group"><span class="reg-group-tag">(</span><span class="reg-cclass">\w</span><span class="reg-quantifier">{1,}</span><span class="reg-group-tag">)</span></span><span class="reg-char">/status/</span><span class="reg-group"><span class="reg-group-tag">(</span><span class="reg-cclass">\d</span><span class="reg-quantifier">+</span><span class="reg-group-tag">)</span></span><span class="reg-group"><span class="reg-group-tag">(?:</span><span class="reg-char">/photo/</span><span class="reg-group"><span class="reg-group-tag">(</span><span class="reg-cclass">\d</span><span class="reg-quantifier">+</span><span class="reg-group-tag">)</span></span><span class="reg-group-tag">)</span></span><span class="reg-quantifier">?</span><span class="reg-group-tag">)</span></span><span class="reg-char">/</span><span class="reg-quantifier">?</span><span class="reg-group"><span class="reg-group-tag">(</span><span class="reg-cescape">\?</span><span class="reg-set"><span class="reg-set-tag">[</span><span class="reg-cclass">\w</span><span class="reg-char">&=-</span><span class="reg-set-tag">]</span></span><span class="reg-quantifier">+</span><span class="reg-group-tag">)</span></span><span class="reg-quantifier">?</span><span class="reg-anchor">$</span></code>
<!-- <code class="regex"> <!-- <code class="regex">
@ -83,14 +101,23 @@
<span class="reg-anchor">$</span> <span class="reg-anchor">$</span>
</code> --> </code> -->
<small>regex code auto-colorized by *[regex-colorizer]*</small>
<code class="regex regex_dbg">^(?:https?://)?((?:(?:c\\.)?vx|fx|www\\.)?twitter\\.com)/((\w{1,})/status/(\d+)(?:/photo/(\d+))?)/?(\?[\w&=-]+)?$</code> <code class="regex regex_dbg">^(?:https?://)?((?:(?:c\\.)?vx|fx|www\\.)?twitter\\.com)/((\w{1,})/status/(\d+)(?:/photo/(\d+))?)/?(\?[\w&=-]+)?$</code>
<small>regex code auto-colorized by *[Prism]*</small>
`^(?:https?://)?((?:(?:c\.)?vx|fx|www\.)?twitter\.com)/((\w{1,})/status/(\d+)(?:/photo/(\d+))?)/?(\?[\w&=-]+)?$`{.lang-regex}
<small>regex code itself</small>
`^(?:https?://)?((?:(?:c\.)?vx|fx|www\.)?twitter\.com)/((\w{1,})/status/(\d+)(?:/photo/(\d+))?)/?(\?[\w&=-]+)?$` `^(?:https?://)?((?:(?:c\.)?vx|fx|www\.)?twitter\.com)/((\w{1,})/status/(\d+)(?:/photo/(\d+))?)/?(\?[\w&=-]+)?$`
<small>regex code auto-colorized by *[regex-colorizer]*</small>
<code class="regex regex_dbg">\\92\\1^\\d{0,3,5}\\n{9c}\\b{0,2}(\\B{,5}){3})\\01{}\\2{,}\\001${0,}</code> <code class="regex regex_dbg">\\92\\1^\\d{0,3,5}\\n{9c}\\b{0,2}(\\B{,5}){3})\\01{}\\2{,}\\001${0,}</code>
<small>regex code itself</small>
`\92\1^\d{0,3,5}\n{9c}\b{0,2}(\b{,5}){3})\01{}\2{,}\001${0,}` `\92\1^\d{0,3,5}\n{9c}\b{0,2}(\b{,5}){3})\01{}\2{,}\001${0,}`
<small>regex code auto-colorized by *[regex-colorizer]*</small>
<code class="regex regex_dbg">([A-Z])\\w+\\x7kk\\xaf5ke\\xne\\u17kc\\u1ea7nss</code> <code class="regex regex_dbg">([A-Z])\\w+\\x7kk\\xaf5ke\\xne\\u17kc\\u1ea7nss</code>
<small>regex code itself</small>
`([A-Z])\w+\x7kk\xaf5ke\xne\u17kc\u1ea7nss` `([A-Z])\w+\x7kk\xaf5ke\xne\u17kc\u1ea7nss`

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

1
.gitignore vendored
View File

@ -1 +1,2 @@
data-backup data-backup
.vscode

View File

@ -1,50 +1,52 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8"?>
<BookShelf siteName="Workshop Documentations"> <BookShelf
xmlns="https://book.sukazyo.cc/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
https://book.sukazyo.cc/ ../assets/xsd/bookshelf.xsd
"
version="2.0"
>
<site_name>Workshop Documentations</site_name>
<site_icon>/ph-bookshelf.svg</site_icon>
<configurations> <configurations>
<old.title.gen /> <!-- <old.title.gen></old.title.gen>-->
<highlightjs>true</highlightjs>
<highlightjs.languages />
<!-- <highlightjs.theme>base16/atelier-lakeside-light</highlightjs.theme>--> <!-- <highlightjs.theme>base16/atelier-lakeside-light</highlightjs.theme>-->
<!-- <codeblock.bg-color>#ebf8ff</codeblock.bg-color>--> <!-- <codeblock.bg-color>#ebf8ff</codeblock.bg-color>-->
<highlightjs.theme>base16/default-light</highlightjs.theme>
<codeblock.bg-color>#f8f8f8</codeblock.bg-color> <codeblock.bg-color>#f8f8f8</codeblock.bg-color>
<codeblock.fg-color>#383838</codeblock.fg-color> <codeblock.fg-color>#383838</codeblock.fg-color>
<codeblock.tab-size>4</codeblock.tab-size> <codeblock.tab-size>4</codeblock.tab-size>
<regex.highlight>true</regex.highlight> <regex.highlight>true</regex.highlight>
<listing.marker.rainbow>true</listing.marker.rainbow> <listing.marker.rainbow>true</listing.marker.rainbow>
<title.permalink.flash>false</title.permalink.flash> <title.permalink.flash>false</title.permalink.flash>
<site.robots><![CDATA[allow]]></site.robots> <!-- <web-title.rolling></web-title.rolling>-->
<site.robots>allow</site.robots>
</configurations> </configurations>
<links> <links>
<Link name="工房主站 /(500 Currently)" href="https://sukazyo.cc" /> <Link href="https://sukazyo.cc">工房主站 /(500 Currently</Link>
<Link name="Github Orginazation" href="https://github.com/suk-ws" /> <Link href="https://github.com/suk-ws">Github Organization</Link>
<Collection name="一些别的特殊链接"> <Collection>
<Link name="Sukazyo Github(保留了部分未迁移项目和非工房(纯个人)项目)" href="https://github.com/Eyre-S" /> <caption>一些别的特殊链接</caption>
<Link name="【广告】友情加盟 - Sukazyo 的占卜室" href="https://urara.sukazyo.cc/" /> <Link href="https://github.com/Eyre-S">Sukazyo Github(保留了部分未迁移项目和非工房(纯个人)项目)</Link>
<Link href="https://urara.sukazyo.cc/">【广告】友情加盟 - Sukazyo 的占卜室</Link>
</Collection> </Collection>
</links> </links>
<books> <books>
<!-- <Collection name="程序项目"> <Book id="morny">Morny Cono 的说明书</Book>
<Book id="srv" name="Workshop Services 文档" /> <Book id="ph-bookshelf">ph-Bookshelf Wiki</Book>
<Collection name="iCee Series">
<Book id="icee" name="iCee 核心文档" />
<Book id="icee-module-dev" name="iCee 模块开发手册" />
</Collection>
<Book id="res-tools" name="ResourceTools 文档" />
</Collection>
<Collection name="自研协议">
<Book id="hytrans" name=".htrans Hyper Translation File" />
</Collection> -->
<Book id="morny" name="Morny Cono 的说明书" />
<Book id="ph-bookshelf" name="ph-Bookshelf Wiki" />
</books> </books>
<rootBook id="%root" name="Workshop Documentations">
<Page id="main" name="book.sukazyo.cc:: Rebuild In Progress" /> <root_book>
<Chapter name="__test_collection__">
<Page id="test-collection/enhanced-frontend/test-regex-highlight" name="RegEx 着色" /> <!-- <book_name>Workshop Documentations</book_name>-->
<Page id="test-collection/language-parsing/rest" name="ReST Parser" />
<Page id="test-collection/language-parsing/tex" name="LaTeX Parser" /> <Page id="main">Workshop Documentation</Page>
<Page id="test-collection/enhanced-frontend/rolling-title" name="滚动标题栏" web-title.rolling="true" />
</Chapter> </root_book>
</rootBook>
</BookShelf> </BookShelf>

2
morny

@ -1 +1 @@
Subproject commit 46d4ebb523afc71a44647a48f4aa7ecd6bf2f7a3 Subproject commit 3024caf22d55205f902a580de447730f3d1a5f2d

@ -1 +1 @@
Subproject commit 01ecade69d4246aa587622b55cd49ca1f1185736 Subproject commit 5c9cf4d4ae301090efa5fe77bdd5265c9586db96