├── .cursor
└── rules
│ └── do-not-edit-theme.mdc
├── .cursorindexingignore
├── .editorconfig
├── .env
├── .gitignore
├── .gitmodules
├── .jshintrc
├── .markdownlint.json
├── .prettierrc
├── DEVELOPMENT.md
├── LICENSE.md
├── README.md
├── THIRD-PARTY-NOTICES.md
├── assets
├── css
│ ├── custom.css
│ └── featherlight.min.css
└── js
│ ├── clipboard.min.js
│ ├── custom.js
│ ├── featherlight.min.js
│ ├── image-featherlight.js
│ ├── jquery-3.3.1.min.js
│ └── jquery.sticky.js
├── config
├── _default
│ ├── languages.toml
│ ├── menus.en.toml
│ ├── menus.ja.toml
│ ├── module.toml
│ └── params.toml
└── development
│ └── server.toml
├── content
├── _index.en.md
├── _index.md
├── authors
│ ├── _index.md
│ └── fraxinus-project.md
├── docs
│ ├── _index.md
│ ├── assembly
│ │ ├── 1k
│ │ │ ├── step1.md
│ │ │ ├── step2.md
│ │ │ ├── step3.md
│ │ │ ├── step4.md
│ │ │ ├── step5.md
│ │ │ ├── step6.md
│ │ │ ├── step7.md
│ │ │ ├── step8.md
│ │ │ └── step9.md
│ │ ├── about.en.md
│ │ └── about.md
│ ├── community.en.md
│ ├── community.md
│ ├── enclosure.en.md
│ ├── enclosure.md
│ ├── flying-gantry.en.md
│ ├── flying-gantry.md
│ ├── micro-printers.en.md
│ ├── micro-printers.md
│ ├── res
│ │ └── index.md
│ ├── roadmap.md
│ ├── trident.en.md
│ └── trident.md
├── pages
│ ├── about.en.md
│ ├── about.md
│ ├── discord.en.md
│ ├── discord.md
│ ├── privacy-policy.en.md
│ └── privacy-policy.md
└── sections
│ ├── call-to-action.md
│ └── variations.md
├── data
├── social.json
└── theme.json
├── go.mod
├── go.sum
├── hugo.toml
├── i18n
├── en.yaml
└── ja.yaml
├── layouts
├── _default
│ ├── list.html
│ ├── single.html
│ └── terms.html
├── docs
│ ├── list.html
│ └── single.html
├── index.html
├── index.llms.txt
└── partials
│ ├── analytics
│ └── cloudflare-analytics.html
│ ├── basic-seo.html
│ ├── components
│ ├── breadcrumb.html
│ └── language-switcher.html
│ ├── entry
│ └── content.html
│ ├── essentials
│ ├── head.html
│ └── header.html
│ └── svg
│ └── content
│ └── upload.svg
├── mise.toml
├── package-lock.json
├── package.json
├── scripts
├── build.sh
├── clearModules.js
├── projectSetup.js
├── removeDarkmode.js
├── run-build-in-docker.sh
├── run-server-in-docker.sh
├── run-server.bat
├── run-server.sh
├── themeSetup.js
├── themeUpdate.js
├── update_lastmod_date.sh
└── update_publish_date.sh
├── static
├── favicon.png
├── favicon.svg
└── images
│ ├── Fraxinus-1.jpg
│ ├── Fraxinus-2.jpg
│ ├── Fraxinus-3.jpg
│ ├── Fraxinus-4.jpg
│ ├── Fraxinus-5.jpg
│ ├── Fraxinus-photo-1.jpg
│ ├── Fraxinus-photo-2.jpg
│ ├── Fraxinus0-front-view.jpg
│ ├── Fraxinus00-photo-1.jpg
│ ├── Fraxinus00-photo-2.jpg
│ ├── Fraxinus00.jpg
│ ├── Fraxinus00w-photo-1.jpg
│ ├── Fraxinus00w.jpg
│ ├── Fraxinus00w2-compare.jpg
│ ├── Fraxinus00w2-photo-1.jpg
│ ├── Fraxinus00w2.jpg
│ ├── Fraxinus00w3-1.jpg
│ ├── Fraxinus00w3-2.jpg
│ ├── Fraxinus00w3-photo-1.jpg
│ ├── Fraxinus0w-compare.jpg
│ ├── Fraxinus0w-rev1.jpg
│ ├── Fraxinus0w-rev2.jpg
│ ├── Fraxinus1fg-detail.jpg
│ ├── Fraxinus1fg.jpg
│ ├── Fraxinus1k.jpg
│ ├── Fraxinus1kc-photo-1.jpg
│ ├── Fraxinus1kc2-photo-1.jpg
│ ├── Fraxinus1tc2-photo-1.jpg
│ ├── Fraxinus1tcl.jpg
│ ├── Fraxinus1tcl_1tc2_1ksc.jpg
│ ├── Fraxinus3e.jpg
│ ├── Fraxinus3ec-photo-1.jpg
│ ├── Fraxinus3fg-detail.jpg
│ ├── Fraxinus3fg-photo-1.jpg
│ ├── Fraxinus3fg.jpg
│ ├── Fraxinus3tc-photo-1.jpg
│ ├── Fraxinus3tcl.jpg
│ ├── Fraxinus5fg-detail.jpg
│ ├── Fraxinus5fg.jpg
│ ├── Fraxinus5ts.jpg
│ ├── Fraxinus9fg-photo-1.jpg
│ ├── Fraxinus9fg.jpg
│ ├── community
│ ├── Fraxinus00cw.jpg
│ ├── Fraxinus00tw.png
│ ├── Fraxinus1pk.jpg
│ ├── Fraxinus5ts_DAKSH_tool_changer.jpg
│ ├── Fraxinus5ts_IDEX.jpg
│ ├── Fukumi.jpg
│ ├── fraxinus-group-photo-1.jpg
│ ├── fraxinus-group-photo-2.jpg
│ ├── fraxinus-group-photo-3.jpg
│ ├── fraxinus-group-photo-4.jpg
│ └── prokosinus00.jpg
│ ├── fraxinus-appendix-electronics-connection.jpg
│ ├── fraxinus-appendix-nut-1.jpg
│ ├── fraxinus-appendix-nut-2.jpg
│ ├── fraxinus-appendix-nut-3.jpg
│ ├── fraxinus-appendix-nut-4.jpg
│ ├── fraxinus-appendix-nut-5.jpg
│ ├── fraxinus-appendix-nut-6.jpg
│ ├── fraxinus-appendix-nut-7.jpg
│ ├── fraxinus-assembly-1-print-colored.jpg
│ ├── fraxinus-assembly-1-print-jig.jpg
│ ├── fraxinus-assembly-1-print-slicer.jpg
│ ├── fraxinus-assembly-1-print-stl.jpg
│ ├── fraxinus-assembly-1-procurement-list.jpg
│ ├── fraxinus-assembly-2-parts-0.jpg
│ ├── fraxinus-assembly-2-parts-1.jpg
│ ├── fraxinus-assembly-2-parts-10.jpg
│ ├── fraxinus-assembly-2-parts-11.jpg
│ ├── fraxinus-assembly-2-parts-12.jpg
│ ├── fraxinus-assembly-2-parts-13.jpg
│ ├── fraxinus-assembly-2-parts-14.jpg
│ ├── fraxinus-assembly-2-parts-2.jpg
│ ├── fraxinus-assembly-2-parts-3.jpg
│ ├── fraxinus-assembly-2-parts-4.jpg
│ ├── fraxinus-assembly-2-parts-5.jpg
│ ├── fraxinus-assembly-2-parts-6.jpg
│ ├── fraxinus-assembly-2-parts-7.jpg
│ ├── fraxinus-assembly-2-parts-8.jpg
│ ├── fraxinus-assembly-2-parts-9.jpg
│ ├── fraxinus-assembly-3-frame-0.jpg
│ ├── fraxinus-assembly-3-frame-1.jpg
│ ├── fraxinus-assembly-3-frame-2.jpg
│ ├── fraxinus-assembly-3-frame-3.jpg
│ ├── fraxinus-assembly-3-frame-4.jpg
│ ├── fraxinus-assembly-3-frame-5.jpg
│ ├── fraxinus-assembly-3-frame-6.jpg
│ ├── fraxinus-assembly-3-frame-7.jpg
│ ├── fraxinus-assembly-3-frame-8.jpg
│ ├── fraxinus-assembly-4-teardown-kp3s-0.jpg
│ ├── fraxinus-assembly-4-teardown-kp3s-1.jpg
│ ├── fraxinus-assembly-4-teardown-kp3s-10.jpg
│ ├── fraxinus-assembly-4-teardown-kp3s-11.jpg
│ ├── fraxinus-assembly-4-teardown-kp3s-12.jpg
│ ├── fraxinus-assembly-4-teardown-kp3s-2.jpg
│ ├── fraxinus-assembly-4-teardown-kp3s-3.jpg
│ ├── fraxinus-assembly-4-teardown-kp3s-4.jpg
│ ├── fraxinus-assembly-4-teardown-kp3s-5.jpg
│ ├── fraxinus-assembly-4-teardown-kp3s-6.jpg
│ ├── fraxinus-assembly-4-teardown-kp3s-7.jpg
│ ├── fraxinus-assembly-4-teardown-kp3s-8.jpg
│ ├── fraxinus-assembly-4-teardown-kp3s-9.jpg
│ ├── fraxinus-assembly-5-z-bed-0.jpg
│ ├── fraxinus-assembly-5-z-bed-1.jpg
│ ├── fraxinus-assembly-5-z-bed-10.jpg
│ ├── fraxinus-assembly-5-z-bed-2.jpg
│ ├── fraxinus-assembly-5-z-bed-3.jpg
│ ├── fraxinus-assembly-5-z-bed-4.jpg
│ ├── fraxinus-assembly-5-z-bed-5.jpg
│ ├── fraxinus-assembly-5-z-bed-6.jpg
│ ├── fraxinus-assembly-5-z-bed-7.jpg
│ ├── fraxinus-assembly-5-z-bed-8.jpg
│ ├── fraxinus-assembly-5-z-bed-9.jpg
│ ├── fraxinus-assembly-6-x-carriage-0.jpg
│ ├── fraxinus-assembly-6-x-carriage-1.jpg
│ ├── fraxinus-assembly-6-x-carriage-2.jpg
│ ├── fraxinus-assembly-6-x-carriage-3.jpg
│ ├── fraxinus-assembly-6-x-carriage-4.jpg
│ ├── fraxinus-assembly-6-x-carriage-5.jpg
│ ├── fraxinus-assembly-6-x-carriage-6.jpg
│ ├── fraxinus-assembly-7-xy-gantry-0.jpg
│ ├── fraxinus-assembly-7-xy-gantry-1.jpg
│ ├── fraxinus-assembly-7-xy-gantry-2.jpg
│ ├── fraxinus-assembly-7-xy-gantry-3.jpg
│ ├── fraxinus-assembly-7-xy-gantry-4.jpg
│ ├── fraxinus-assembly-7-xy-gantry-5.jpg
│ ├── fraxinus-assembly-7-xy-gantry-6.jpg
│ ├── fraxinus-assembly-8-belt-head-0.jpg
│ ├── fraxinus-assembly-8-belt-head-1.jpg
│ ├── fraxinus-assembly-8-belt-head-2.jpg
│ ├── fraxinus-assembly-8-belt-head-3.jpg
│ ├── fraxinus-assembly-8-belt-head-4.jpg
│ ├── fraxinus-assembly-8-belt-head-5.jpg
│ ├── fraxinus-assembly-8-belt-head-6.jpg
│ ├── fraxinus-assembly-8-belt-head-7.jpg
│ ├── fraxinus-assembly-9-electronics-0.jpg
│ ├── fraxinus-assembly-9-electronics-1.jpg
│ ├── fraxinus-assembly-9-electronics-2.jpg
│ ├── fraxinus-assembly-9-electronics-3.jpg
│ ├── fraxinus-assembly-9-electronics-4.jpg
│ ├── fraxinus-assembly-9-electronics-5.jpg
│ ├── fraxinus-assembly-9-electronics-6.jpg
│ ├── fraxinus-assembly-9-electronics-7.jpg
│ ├── fraxinus-assembly-9-electronics-8.jpg
│ ├── fraxinus-roadmap.png
│ ├── logo_black.png
│ ├── logo_navbar_black.png
│ ├── logo_navbar_white.png
│ ├── logo_simple_black.svg
│ ├── logo_simple_white.svg
│ └── logo_white.png
├── tailwind-plugin
├── tw-bs-grid.js
└── tw-theme.js
├── themes
└── hugoplate
│ ├── assets
│ ├── css
│ │ ├── base.css
│ │ ├── buttons.css
│ │ ├── components.css
│ │ ├── custom.css
│ │ ├── main.css
│ │ ├── module-overrides.css
│ │ ├── navigation.css
│ │ ├── safe.css
│ │ └── utilities.css
│ ├── js
│ │ └── main.js
│ └── plugins
│ │ ├── maps
│ │ └── google-map.js
│ │ └── swiper
│ │ ├── swiper-bundle.css
│ │ └── swiper-bundle.js
│ └── layouts
│ ├── 404.en.html
│ ├── _default
│ ├── baseof.html
│ ├── list.html
│ ├── single.html
│ ├── taxonomy.html
│ └── terms.html
│ ├── about
│ └── list.html
│ ├── authors
│ ├── list.html
│ └── single.html
│ ├── blog
│ ├── list.html
│ └── single.html
│ ├── contact
│ └── list.html
│ ├── index.html
│ └── partials
│ ├── call-to-action.html
│ ├── components
│ ├── author-card.html
│ ├── blog-card.html
│ ├── breadcrumb.html
│ ├── language-switcher.html
│ ├── pagination.html
│ ├── theme-switcher.html
│ └── tw-size-indicator.html
│ ├── essentials
│ ├── footer.html
│ ├── head.html
│ ├── header.html
│ ├── script.html
│ └── style.html
│ ├── page-header.html
│ └── widgets
│ ├── categories.html
│ ├── tags.html
│ └── widget-wrapper.html
└── wrangler.toml
/.cursor/rules/do-not-edit-theme.mdc:
--------------------------------------------------------------------------------
1 | ---
2 | description:
3 | globs: themes/**
4 | alwaysApply: false
5 | ---
6 | Do NOT edit themes directory. Its okay to look.
7 | For files in ./themes/hugoplate/layouts, copy them into ./layouts and modify them.
8 |
--------------------------------------------------------------------------------
/.cursorindexingignore:
--------------------------------------------------------------------------------
1 | # Don't index SpecStory auto-save files, but allow explicit context inclusion via @ references
2 | .specstory/**
3 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | ; https://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | end_of_line = lf
8 | indent_size = 2
9 | indent_style = space
10 | trim_trailing_whitespace = true
11 | insert_final_newline = true
12 |
13 | [*.md]
14 | trim_trailing_whitespace = false
15 |
--------------------------------------------------------------------------------
/.env:
--------------------------------------------------------------------------------
1 | HUGO_VERSION="0.147.4"
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /bin/
2 |
3 | # Created by https://www.toptal.com/developers/gitignore/api/hugo,node
4 | # Edit at https://www.toptal.com/developers/gitignore?templates=hugo,node
5 |
6 | ### Hugo ###
7 | # Generated files by hugo
8 | /public/
9 | /resources/_gen/
10 | /assets/jsconfig.json
11 | hugo_stats.json
12 |
13 | # Executable may be added to repository
14 | hugo.exe
15 | hugo.darwin
16 | hugo.linux
17 |
18 | # Temporary lock file while building
19 | /.hugo_build.lock
20 |
21 | ### Node ###
22 | # Logs
23 | logs
24 | *.log
25 | npm-debug.log*
26 | yarn-debug.log*
27 | yarn-error.log*
28 | lerna-debug.log*
29 | .pnpm-debug.log*
30 |
31 | # Diagnostic reports (https://nodejs.org/api/report.html)
32 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
33 |
34 | # Runtime data
35 | pids
36 | *.pid
37 | *.seed
38 | *.pid.lock
39 |
40 | # Directory for instrumented libs generated by jscoverage/JSCover
41 | lib-cov
42 |
43 | # Coverage directory used by tools like istanbul
44 | coverage
45 | *.lcov
46 |
47 | # nyc test coverage
48 | .nyc_output
49 |
50 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
51 | .grunt
52 |
53 | # Bower dependency directory (https://bower.io/)
54 | bower_components
55 |
56 | # node-waf configuration
57 | .lock-wscript
58 |
59 | # Compiled binary addons (https://nodejs.org/api/addons.html)
60 | build/Release
61 |
62 | # Dependency directories
63 | node_modules/
64 | jspm_packages/
65 |
66 | # Snowpack dependency directory (https://snowpack.dev/)
67 | web_modules/
68 |
69 | # TypeScript cache
70 | *.tsbuildinfo
71 |
72 | # Optional npm cache directory
73 | .npm
74 |
75 | # Optional eslint cache
76 | .eslintcache
77 |
78 | # Optional stylelint cache
79 | .stylelintcache
80 |
81 | # Microbundle cache
82 | .rpt2_cache/
83 | .rts2_cache_cjs/
84 | .rts2_cache_es/
85 | .rts2_cache_umd/
86 |
87 | # Optional REPL history
88 | .node_repl_history
89 |
90 | # Output of 'npm pack'
91 | *.tgz
92 |
93 | # Yarn Integrity file
94 | .yarn-integrity
95 |
96 | # dotenv environment variable files
97 | .env
98 | .env.development.local
99 | .env.test.local
100 | .env.production.local
101 | .env.local
102 |
103 | # parcel-bundler cache (https://parceljs.org/)
104 | .cache
105 | .parcel-cache
106 |
107 | # Next.js build output
108 | .next
109 | out
110 |
111 | # Nuxt.js build / generate output
112 | .nuxt
113 | dist
114 |
115 | # Gatsby files
116 | .cache/
117 | # Comment in the public line in if your project uses Gatsby and not Next.js
118 | # https://nextjs.org/blog/next-9-1#public-directory-support
119 | # public
120 |
121 | # vuepress build output
122 | .vuepress/dist
123 |
124 | # vuepress v2.x temp and cache directory
125 | .temp
126 |
127 | # Docusaurus cache and generated files
128 | .docusaurus
129 |
130 | # Serverless directories
131 | .serverless/
132 |
133 | # FuseBox cache
134 | .fusebox/
135 |
136 | # DynamoDB Local files
137 | .dynamodb/
138 |
139 | # TernJS port file
140 | .tern-port
141 |
142 | # Stores VSCode versions used for testing VSCode extensions
143 | .vscode-test
144 |
145 | # yarn v2
146 | .yarn/cache
147 | .yarn/unplugged
148 | .yarn/build-state.yml
149 | .yarn/install-state.gz
150 | .pnp.*
151 |
152 | ### Node Patch ###
153 | # Serverless Webpack directories
154 | .webpack/
155 |
156 | # Optional stylelint cache
157 |
158 | # SvelteKit build / generate output
159 | .svelte-kit
160 |
161 | # End of https://www.toptal.com/developers/gitignore/api/hugo,node
162 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/.gitmodules
--------------------------------------------------------------------------------
/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "maxerr": 50,
3 | "bitwise": true,
4 | "camelcase": false,
5 | "curly": true,
6 | "eqeqeq": true,
7 | "forin": true,
8 | "freeze": true,
9 | "immed": true,
10 | "indent": 2,
11 | "latedef": true,
12 | "newcap": false,
13 | "noarg": true,
14 | "noempty": true,
15 | "nonbsp": true,
16 | "nonew": true,
17 | "plusplus": false,
18 | "undef": true,
19 | "unused": false,
20 | "strict": true,
21 | "maxparams": false,
22 | "maxdepth": 4,
23 | "maxstatements": false,
24 | "maxcomplexity": false,
25 | "maxlen": 400,
26 | "browser": true,
27 | "devel": true,
28 | "asi": false,
29 | "boss": false,
30 | "debug": false,
31 | "eqnull": false,
32 | "es3": false,
33 | "es5": false,
34 | "esversion": 12,
35 | "moz": false,
36 | "evil": true,
37 | "expr": true,
38 | "funcscope": false,
39 | "globalstrict": false,
40 | "iterator": false,
41 | "lastsemic": false,
42 | "laxbreak": false,
43 | "laxcomma": false,
44 | "loopfunc": true,
45 | "multistr": true,
46 | "noyield": false,
47 | "notypeof": false,
48 | "proto": false,
49 | "scripturl": false,
50 | "shadow": false,
51 | "sub": false,
52 | "supernew": false,
53 | "validthis": false,
54 | "globals": {
55 | "jQuery": false,
56 | "google": false,
57 | "$": false
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/.markdownlint.json:
--------------------------------------------------------------------------------
1 | {
2 | "MD033": false,
3 | "MD034": false,
4 | "MD013": false
5 | }
6 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": ["prettier-plugin-go-template"],
3 | "overrides": [
4 | {
5 | "files": ["*.html"],
6 | "options": {
7 | "parser": "go-template",
8 | "goTemplateBracketSpacing": true,
9 | "bracketSameLine": true
10 | }
11 | }
12 | ]
13 | }
14 |
--------------------------------------------------------------------------------
/DEVELOPMENT.md:
--------------------------------------------------------------------------------
1 | # 本サイトの開発について
2 | ## デプロイ
3 |
4 | 本プロジェクトはCloudflare Pagesでデプロイされています。`main`ブランチへのプッシュで自動的にデプロイが実行されます。
5 |
6 | ## 開発環境のセットアップ
7 |
8 | ローカルで編集・プレビューできます。
9 |
10 | ### 必要なツール
11 |
12 | - [Hugo](https://gohugo.io/) v0.144 or later
13 | - [Node.js](https://nodejs.org/) v22 or later
14 | - [Go](https://golang.org/) v1.24 or later
15 |
16 | 上記ツールのインストールには[mise](https://github.com/jdx/mise)を推奨
17 |
18 | ### 環境構築
19 |
20 | 1. リポジトリをクローン:
21 | ```bash
22 | git clone https://github.com/Fraxinus-3D/docs.git
23 | cd docs
24 | ```
25 |
26 | 2. 依存関係をインストール:
27 | ```bash
28 | npm install
29 | ```
30 |
31 | 3. 開発サーバーを起動:
32 | ```bash
33 | npm run dev
34 | ```
35 | または
36 | ```bash
37 | hugo server --bind=0.0.0.0 --watch --minify --gc --cleanDestinationDir
38 | ```
39 |
40 | ### ビルド
41 |
42 | #### 本番用ビルド
43 | ```bash
44 | npm run build
45 | ```
46 |
47 | #### プレビュービルド
48 | ```bash
49 | npm run preview
50 | ```
51 |
52 | ### その他のコマンド
53 |
54 | - `npm run format`: コードフォーマット(Prettier)
55 | - `npm run update-modules`: Hugo modulesの更新
56 | - `npm run theme-setup`: テーマの初期設定
57 | - `npm run update-theme`: テーマの更新
58 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Fraxinus
2 |
3 | Fraxinus(フラクシネス)は印刷サイズと比較しコンパクトで高速動作を実現した3Dプリンターなどのデジタル加工機です。
4 | [エンクロージャ版](../docs/enclosure)や[トライデント版](../docs/trident)、[フライングガントリー版](../docs/flying-gantry)、[マイクロ3Dプリンタ](../docs/micro-printers)もあり、
5 | さまざまな方々がハードウェア・ソフトウェアを学びながら様々な開発や改造をしています。
6 | 興味を持って頂きましたらぜひ一緒にノウハウ共有して、同好の方々と楽しく交流できると嬉しいです!
7 | 👉[Join Discord](https://fraxinus.jp/discord)
8 |
9 | 
10 |
11 | ## Editing
12 |
13 | 編集方法については[DEVELOPMENT.md](./DEVELOPMENT.md)を参照してください。
14 |
15 | ## License
16 |
17 | (C) 2022-2025 Fraxinus Project
18 |
19 | `static/images`および`content`フォルダ内のファイルは[CC BY-NC-SA 4.0](https://github.com/Fraxinus-3D/docs/blob/main/LICENSE.md#CC-BY-NC-SA)([日本語](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.ja))で公開されています。
20 |
21 | その他のファイルは[MITライセンス](https://github.com/Fraxinus-3D/docs/blob/main/LICENSE.md#MIT)([日本語](https://licenses.opensource.jp/MIT/MIT.html))で公開されています。
22 |
23 | ## Acknowledgements
24 |
25 | The following resources are included/used in the theme:
26 |
27 | - [hugoplate](https://github.com/zeon-studio/hugoplate) by Zeon Studio - Licensed under the [MIT License](https://github.com/zeon-studio/hugoplate/blob/349436c8d33b26b0c0d261f3b0a15aedd66ae22c/LICENSE).
28 | - [Feather](https://feather.netlify.com/) by Cole Bemis - Licensed under the [MIT License](https://github.com/colebemis/feather/blob/f81cd40fdcdd5e94f3f97eb670a5058e3aac528d/LICENSE).
29 |
30 | See [THIRD-PARTY-NOTICES.md](./THIRD-PARTY-NOTICES.md) for other third party resources.
31 |
--------------------------------------------------------------------------------
/assets/css/custom.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --link-color: #ff6b35;
3 | --link-hover-color: #0056b3;
4 | }
5 |
6 | :root.dark {
7 | /* Dark Theme Variables */
8 | --link-color: #ff6b35;
9 | --link-hover-color: #00d4ff;
10 | }
11 |
12 | /* Link Enhancement */
13 | .content a {
14 | color: var(--link-color);
15 | text-decoration: underline;
16 | transition: color 0.2s ease;
17 | }
18 |
19 | .content a:hover {
20 | color: var(--link-hover-color);
21 | text-decoration: underline;
22 | }
23 |
24 | /* end for link enhancement */
25 |
26 | /* CSS for featherlight image */
27 | .featherlight img {
28 | margin: 0 !important;
29 | }
30 |
31 | .content a.featherlight-img {
32 | border-bottom: none;
33 | }
34 |
35 | /* end for featherlight image */
36 |
37 | /* header logo image size */
38 | @media (max-width: 399px) {
39 | .navbar-brand {
40 | max-width: 120px;
41 | }
42 | }
43 | @media (max-width: 369px) {
44 | .navbar-brand {
45 | max-width: 100px;
46 | }
47 | }
48 | /* end for header logo image */
49 |
--------------------------------------------------------------------------------
/assets/css/featherlight.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Featherlight - ultra slim jQuery lightbox
3 | * Version 1.7.13 - http://noelboss.github.io/featherlight/
4 | *
5 | * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com)
6 | * MIT Licensed.
7 | **/
8 | html.with-featherlight{overflow:hidden}.featherlight{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;text-align:center;white-space:nowrap;cursor:pointer;background:#333;background:rgba(0,0,0,0)}.featherlight:last-of-type{background:rgba(0,0,0,.8)}.featherlight:before{content:'';display:inline-block;height:100%;vertical-align:middle}.featherlight .featherlight-content{position:relative;text-align:left;vertical-align:middle;display:inline-block;overflow:auto;padding:25px 25px 0;border-bottom:25px solid transparent;margin-left:5%;margin-right:5%;max-height:95%;background:#fff;cursor:auto;white-space:normal}.featherlight .featherlight-inner{display:block}.featherlight link.featherlight-inner,.featherlight script.featherlight-inner,.featherlight style.featherlight-inner{display:none}.featherlight .featherlight-close-icon{position:absolute;z-index:9999;top:0;right:0;line-height:25px;width:25px;cursor:pointer;text-align:center;font-family:Arial,sans-serif;background:#fff;background:rgba(255,255,255,.3);color:#000;border:0;padding:0}.featherlight .featherlight-close-icon::-moz-focus-inner{border:0;padding:0}.featherlight .featherlight-image{width:100%}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0;-webkit-overflow-scrolling:touch}.featherlight iframe{border:0}.featherlight *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media only screen and (max-width:1024px){.featherlight .featherlight-content{margin-left:0;margin-right:0;max-height:98%;padding:10px 10px 0;border-bottom:10px solid transparent}}@media print{html.with-featherlight>*>:not(.featherlight){display:none}}
--------------------------------------------------------------------------------
/assets/js/custom.js:
--------------------------------------------------------------------------------
1 | /* Custom JS */
2 |
--------------------------------------------------------------------------------
/assets/js/image-featherlight.js:
--------------------------------------------------------------------------------
1 | // Get Parameters from some url
2 | var getUrlParameter = function getUrlParameter(sPageURL) {
3 | var url = sPageURL.split('?');
4 | var obj = {};
5 | if (url.length == 2) {
6 | var sURLVariables = url[1].split('&'),
7 | sParameterName,
8 | i;
9 | for (i = 0; i < sURLVariables.length; i++) {
10 | sParameterName = sURLVariables[i].split('=');
11 | obj[sParameterName[0]] = sParameterName[1];
12 | }
13 | }
14 | return obj;
15 | };
16 |
17 | // Execute actions on images generated from Markdown pages
18 | jQuery(document).ready(function() {
19 | var images = $("div.container div.content img").not(".inline");
20 | // Wrap image inside a featherlight (to get a full size view in a popup)
21 | images.wrap(function(){
22 | var image =$(this);
23 | var o = getUrlParameter(image[0].src);
24 | var f = o['featherlight'];
25 | // IF featherlight is false, do not use feather light
26 | if (f != 'false') {
27 | if (!image.parent("a").length) {
28 | return "";
29 | }
30 | }
31 | });
32 |
33 | // Change styles, depending on parameters set to the image
34 | images.each(function(index){
35 | var image = $(this)
36 | var o = getUrlParameter(image[0].src);
37 | if (typeof o !== "undefined") {
38 | var h = o["height"];
39 | var w = o["width"];
40 | var c = o["classes"];
41 | image.css("width", function() {
42 | if (typeof w !== "undefined") {
43 | return w;
44 | } else {
45 | return "auto";
46 | }
47 | });
48 | image.css("height", function() {
49 | if (typeof h !== "undefined") {
50 | return h;
51 | } else {
52 | return "auto";
53 | }
54 | });
55 | if (typeof c !== "undefined") {
56 | var classes = c.split(',');
57 | for (i = 0; i < classes.length; i++) {
58 | image.addClass(classes[i]);
59 | }
60 | }
61 | }
62 | });
63 | });
64 |
65 | // Stick the top to the top of the screen when scrolling
66 | $(document).ready(function(){
67 | $("#top-bar").sticky({topSpacing:0, zIndex: 1000});
68 | });
69 |
70 |
71 | jQuery(document).ready(function() {
72 | // Add link button for every
73 | var text, clip = new ClipboardJS('.anchor');
74 | $("h1~h2,h1~h3,h1~h4,h1~h5,h1~h6").append(function(index, html){
75 | var element = $(this);
76 | var url = encodeURI(document.location.origin + document.location.pathname);
77 | var link = url + "#"+element[0].id;
78 | return " " +
79 | "" +
80 | ""
81 | ;
82 | });
83 |
84 | $(".anchor").on('mouseleave', function(e) {
85 | $(this).attr('aria-label', null).removeClass('tooltipped tooltipped-s tooltipped-w');
86 | });
87 |
88 | clip.on('success', function(e) {
89 | e.clearSelection();
90 | $(e.trigger).attr('aria-label', 'Link copied to clipboard!').addClass('tooltipped tooltipped-s');
91 | });
92 | $('code.language-mermaid').each(function(index, element) {
93 | var content = $(element).html().replace(/&/g, '&');
94 | $(element).parent().replaceWith('
' + content + '
');
95 | });
96 | });
97 |
--------------------------------------------------------------------------------
/config/_default/languages.toml:
--------------------------------------------------------------------------------
1 | [ja]
2 | lang = "ja"
3 | languageCode = "ja-jp"
4 | languageName = "Japanese"
5 | weight = 1
6 |
7 | [en]
8 | lang = "en"
9 | languageCode = "en-us"
10 | languageName = "English"
11 | contentDir = "content/english"
12 | weight = 10
13 |
--------------------------------------------------------------------------------
/config/_default/menus.en.toml:
--------------------------------------------------------------------------------
1 | ############# English navigation ##############
2 |
3 | # main menu
4 | [[main]]
5 | name = "Home"
6 | url = "/"
7 | weight = 1
8 |
9 | [[main]]
10 | name = "About"
11 | url = "/about"
12 | weight = 2
13 |
14 | [[main]]
15 | name = "Community"
16 | url = "/community"
17 | weight = 3
18 |
19 | [[main]]
20 | weight = 4
21 | name = "Pages"
22 |
23 | [[main]]
24 | parent = "Pages"
25 | name = "Assembly Document"
26 | url = "/docs/assembly/about"
27 | weight = 101
28 |
29 | [[main]]
30 | parent = "Pages"
31 | name = "Enclosure"
32 | url = "/docs/enclosure"
33 | weight = 102
34 |
35 | [[main]]
36 | parent = "Pages"
37 | name = "Trident"
38 | url = "/docs/trident"
39 | weight = 103
40 |
41 |
42 | # footer menu
43 | [[footer]]
44 | name = "About"
45 | url = "/about"
46 | weight = 1
47 |
48 | [[footer]]
49 | name = "Documentation List"
50 | url = "/docs"
51 | weight = 2
52 |
53 | [[footer]]
54 | name = "Privacy Policy"
55 | url = "/privacy-policy"
56 | weight = 3
57 |
--------------------------------------------------------------------------------
/config/_default/menus.ja.toml:
--------------------------------------------------------------------------------
1 | ############# English navigation ##############
2 |
3 | # main menu
4 | [[main]]
5 | name = "Home"
6 | url = "/"
7 | weight = 1
8 |
9 | [[main]]
10 | name = "Fraxinusについて"
11 | url = "/about"
12 | weight = 2
13 |
14 | [[main]]
15 | name = "コミュニティ"
16 | url = "/community"
17 | weight = 3
18 |
19 | [[main]]
20 | weight = 4
21 | name = "資料一覧"
22 |
23 | [[main]]
24 | parent = "資料一覧"
25 | name = "組立資料"
26 | url = "/docs/assembly/about"
27 | weight = 101
28 |
29 | [[main]]
30 | parent = "資料一覧"
31 | name = "エンクロージャ"
32 | url = "/docs/enclosure"
33 | weight = 102
34 |
35 | [[main]]
36 | parent = "資料一覧"
37 | name = "トライデント"
38 | url = "/docs/trident"
39 | weight = 103
40 |
41 | [[main]]
42 | parent = "資料一覧"
43 | name = "フライングガントリー"
44 | url = "/docs/flying-gantry"
45 | weight = 104
46 |
47 | [[main]]
48 | parent = "資料一覧"
49 | name = "マイクロ3Dプリンタ"
50 | url = "/docs/micro-printers"
51 |
52 |
53 |
54 | # footer menu
55 | [[footer]]
56 | name = "Fraxinusについて"
57 | url = "/about"
58 | weight = 1
59 |
60 | [[footer]]
61 | name = "資料一覧"
62 | url = "/docs"
63 | weight = 2
64 |
65 | [[footer]]
66 | name = "プライバシーポリシー"
67 | url = "/privacy-policy"
68 | weight = 3
69 |
--------------------------------------------------------------------------------
/config/_default/module.toml:
--------------------------------------------------------------------------------
1 | [hugoVersion]
2 | extended = true
3 | min = "0.141.0"
4 |
5 | # [[imports]]
6 | # path = "github.com/zeon-studio/hugoplate"
7 |
8 | [[imports]]
9 | path = "github.com/gethugothemes/hugo-modules/search"
10 |
11 | [[imports]]
12 | path = "github.com/gethugothemes/hugo-modules/pwa"
13 |
14 | [[imports]]
15 | path = "github.com/gethugothemes/hugo-modules/images"
16 |
17 | [[imports]]
18 | path = "github.com/gethugothemes/hugo-modules/videos"
19 |
20 | [[imports]]
21 | path = "github.com/gethugothemes/hugo-modules/icons/font-awesome"
22 |
23 | # [[imports]]
24 | # path = "github.com/gethugothemes/hugo-modules/icons/themify-icons"
25 |
26 | [[imports]]
27 | path = "github.com/gethugothemes/hugo-modules/gzip-caching"
28 |
29 | [[imports]]
30 | path = "github.com/gethugothemes/hugo-modules/adsense"
31 |
32 | [[imports]]
33 | path = "github.com/gethugothemes/hugo-modules/accordion"
34 |
35 | [[imports]]
36 | path = "github.com/gethugothemes/hugo-modules/table-of-contents"
37 |
38 | [[imports]]
39 | path = "github.com/gethugothemes/hugo-modules/tab"
40 |
41 | [[imports]]
42 | path = "github.com/gethugothemes/hugo-modules/modal"
43 |
44 | [[imports]]
45 | path = "github.com/gethugothemes/hugo-modules/gallery-slider"
46 |
47 | [[imports]]
48 | path = "github.com/gethugothemes/hugo-modules/components/preloader"
49 |
50 | [[imports]]
51 | path = "github.com/gethugothemes/hugo-modules/components/social-share"
52 |
53 | [[imports]]
54 | path = "github.com/gethugothemes/hugo-modules/components/cookie-consent"
55 |
56 | [[imports]]
57 | path = "github.com/gethugothemes/hugo-modules/components/announcement"
58 |
59 | [[imports]]
60 | path = "github.com/gethugothemes/hugo-modules/components/custom-script"
61 |
62 | [[imports]]
63 | path = "github.com/gethugothemes/hugo-modules/components/render-link"
64 |
65 | # [[imports]]
66 | # path = "github.com/gethugothemes/hugo-modules/components/valine-comment"
67 |
68 | # [[imports]]
69 | # path = "github.com/gethugothemes/hugo-modules/components/crisp-chat"
70 |
71 | [[imports]]
72 | path = "github.com/gethugothemes/hugo-modules/shortcodes/button"
73 |
74 | [[imports]]
75 | path = "github.com/gethugothemes/hugo-modules/shortcodes/notice"
76 |
77 | [[imports]]
78 | path = "github.com/gethugothemes/hugo-modules/seo-tools/basic-seo"
79 |
80 | [[imports]]
81 | path = "github.com/gethugothemes/hugo-modules/seo-tools/site-verifications"
82 |
83 | [[imports]]
84 | path = "github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager"
85 |
86 | # [[imports]]
87 | # path = "github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics"
88 |
89 | # [[imports]]
90 | # path = "github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics"
91 |
92 | # [[imports]]
93 | # path = "github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics"
94 |
95 | # [[imports]]
96 | # path = "github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics"
97 |
98 | [[imports]]
99 | path = "github.com/hugomods/mermaid"
100 |
--------------------------------------------------------------------------------
/config/development/server.toml:
--------------------------------------------------------------------------------
1 | # defaultContentLanguageInSubdir must be true for this to work.
2 |
3 | # Other languages redirects
4 | # [[redirects]]
5 | # from = '/fr/**'
6 | # to = '/fr/404.html'
7 | # status = 404
8 |
9 | # Default language must be last.
10 | # [[redirects]]
11 | # from = '/**'
12 | # to = '/en/404.html'
13 | # status = 404
14 |
--------------------------------------------------------------------------------
/content/_index.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | # Banner
3 | banner:
4 | title: "Fraxinus -- Fast and Compact"
5 | content: "Fraxinus is a compact and high-speed CoreXY 3D printer and digital fabrication machine project. We have various versions like the [Enclosure](./docs/enclosure), [Trident](./docs/trident), [Flying Gantry](./docs/flying-gantry), and [Micro 3D Printer](./docs/micro-printers). Many people are enjoying learning hardware and software through development and customization. If you are interested, we would love for you to join us, share knowledge, and connect with others who share your passion!"
6 | image: "/images/Fraxinus-5.jpg"
7 | button:
8 | enable: true
9 | label: "Join Discord"
10 | link: "/en/discord"
11 |
12 | # Features
13 | features:
14 | - title: "Building the Community Together"
15 | image: "/images/community/fraxinus-group-photo-1.jpg"
16 | content: "The Fraxinus project is community-driven. Centered in Japan, engineers, makers, and enthusiasts from around the world share designs, help each other with issues, and enjoy life with fabrication machines while exchanging information."
17 | bulletpoints:
18 | - "Sharing Hardware & Software Designs"
19 | - "Community-Driven Improvement and Development"
20 | - "Active Community for Sharing Knowledge and Experience"
21 | button:
22 | enable: true
23 | label: "About the Community"
24 | link: "/en/community"
25 |
26 | - title: "Build and Enjoy with Assembly Guides"
27 | image: "/images/fraxinus-assembly-1-print-stl.jpg"
28 | content: "The Fraxinus project provides documentation to help you assemble your Fraxinus. We strive to make the assembly process enjoyable for participants by providing step-by-step explanations and sharing necessary information. Why not pick up the guides and start building together with fellow community members?
Please note that some parts are currently assumed to be sourced within Japan. For more details, please ask on [Discord](/discord)."
29 | bulletpoints:
30 | - "Step-by-Step Assembly References"
31 | - "Sharing Parts and Tool Information"
32 | - "Visual Support with Photos and Illustrations"
33 | button:
34 | enable: true
35 | label: "View Assembly Guides"
36 | link: "/en/docs/assembly/about"
37 | ---
38 |
--------------------------------------------------------------------------------
/content/_index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Home
3 | description: Fraxinus(フラクシネス)公式サイトです。FraxinusはCoreXY型のコンパクトな3Dプリンターです。
4 | # Banner
5 | banner:
6 | title: "Fraxinus -- Fast and Compact"
7 | content: "
8 | Fraxinus(フラクシネス)は印刷サイズと比較しコンパクトで高速動作を実現した3Dプリンターなどのデジタル加工機です。
9 | [エンクロージャ版](../docs/enclosure)や[トライデント版](../docs/trident)、[フライングガントリー版](../docs/flying-gantry)、[マイクロ3Dプリンタ](../docs/micro-printers)もあり、 さまざまな方々がハードウェア・ソフトウェアを学びながら様々な開発や改造をしています。
10 | 興味を持って頂きましたらぜひ一緒にノウハウ共有して、同好の方々と楽しく交流できると嬉しいです!"
11 | image: "/images/Fraxinus-5.jpg"
12 | button:
13 | enable: true
14 | label: "Join Discord"
15 | link: "/discord"
16 |
17 | # Features
18 | features:
19 | - title: "共に創り上げていく
コミュニティ"
20 | image: "/images/community/fraxinus-group-photo-1.jpg"
21 | content: "Fraxinusのプロジェクトは、コミュニティが主体です。日本を中心に、世界中のエンジニア、メイカー、そして愛好家と共に、設計を共有したり、困ったことを助け合ったり、情報共有しながら加工機の理解を深めものづくりを楽しんでいます。"
22 | bulletpoints:
23 | - "ハードウェア&ソフトウェア設計の共有"
24 | - "コミュニティ主導の改善と開発"
25 | - "知識と経験を共有する活発なコミュニティ"
26 | button:
27 | enable: true
28 | label: "コミュニティについて"
29 | link: "/community"
30 |
31 | - title: "組み立て資料を参考に、
ビルドを楽しもう"
32 | image: "/images/fraxinus-assembly-1-print-stl.jpg"
33 | content: "Fraxinusプロジェクトでは、Fraxinusの組み立てを進める上で参考になる資料を公開しています。ステップごとの解説や必要な情報の共有を通じて、参加者の方々が組み立てのプロセスを楽しめるような場所づくりを目指しています。コミュニティの仲間と共にビルドを始めてみませんか?"
34 | bulletpoints:
35 | - "ビルドの参考になるステップ解説"
36 | - "部品やツールの情報を共有"
37 | - "写真やイラストを交えた視覚的なサポート"
38 | button:
39 | enable: true
40 | label: "組み立て資料を見る"
41 | link: "/docs/assembly/about"
42 |
43 | ---
44 |
--------------------------------------------------------------------------------
/content/authors/_index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Authors
3 | ---
4 |
--------------------------------------------------------------------------------
/content/authors/fraxinus-project.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Fraxinus Project
3 | email: fraxinus-3d@googlegroups.com
4 | image: "/images/logo.png"
5 | description: Fraxinus Project
6 | social:
7 | - name: github
8 | icon: fa-brands fa-github
9 | link: https://github.com/Fraxinus-3D
10 |
11 | - name: email
12 | icon: fa-solid fa-envelope
13 | link: mailto:fraxinus-3d@googlegroups.com
14 | ---
15 |
16 | Fraxinus(フラクシネス)は印刷サイズと比較しコンパクトで高速動作を実現した
17 | 3Dプリンターなどのデジタル加工機です。
18 | [エンクロージャ版](../docs/enclosure)や[トライデント版](../docs/trident)、[フライングガントリー版](../docs/flying-gantry)、[マイクロ3Dプリンタ](../docs/micro-printers)もあり、
19 | さまざまな方々がハードウェア・ソフトウェアを学びながら様々な開発や改造をしています。
20 |
--------------------------------------------------------------------------------
/content/docs/_index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Fraxinus Documentation
3 | meta_title: ""
4 | description: 本ページではFraxinus関連資料を紹介します。
5 | ---
6 |
--------------------------------------------------------------------------------
/content/docs/assembly/1k/step1.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "[STEP1] 部品の手配と印刷"
3 | meta_title: ""
4 | description: 本ページではFraxinus組み立てに必要な部品手配と部品印刷について紹介します。
5 | draft: false
6 | author: "Fraxinus Project"
7 | categories:
8 | - 組立資料
9 | tags:
10 | - Fraxinus1k
11 | date: 2022-06-13T01:02:10+09:00
12 | lastmod: 2023-03-01T23:06:04+09:00
13 | images:
14 | - /images/fraxinus-assembly-1-print-stl.jpg
15 | aliases:
16 | - /docs/assembly/1stgen/step1/
17 | ---
18 |
19 |
20 | 本ページではFraxinus組み立てに必要な部品手配と部品印刷について紹介します。
21 | 本ページ内の画像はクリックすると拡大できます。
22 |
23 | ## 部品手配
24 |
25 | BOM Listを元に必要部材の手配を行います。
26 |
27 | (BOM Listまもなく公開予定)
28 |
29 | 
30 |
31 | ## 部品印刷
32 |
33 | STLデータとBOM Listを元に印刷を行います。データはオススメ印刷方向に合わせていますので読み込んだままの向きでの印刷を推奨します。
34 |
35 | * 推奨設定
36 | * 素材:ABS(一部ABS以外のものもあります)
37 | * 押出幅:0.45mm以上
38 | * ウォールカウント:3以上
39 | * インフィル:40%以上
40 |
41 | STLデータ
42 |
43 | * Fraxinus1k: [https://github.com/Fraxinus-3D/Fraxinus-Hardware/tree/main/Fraxinus1k](https://github.com/Fraxinus-3D/Fraxinus-Hardware/tree/main/Fraxinus1k)
44 |
45 | [https://github.com/Fraxinus-3D/Fraxinus-Hardware/archive/refs/heads/main.zip](https://github.com/Fraxinus-3D/Fraxinus-Hardware/archive/refs/heads/main.zip)より最新版のハードウェアデータをまとめてZIPファイルでダウンロードできます。
46 | ダウンロード前に[README](https://github.com/Fraxinus-3D/Fraxinus-Hardware/blob/main/README.md)に記載のライセンスと免責事項についてご確認ください。ダウンロード時点で同意したものとします。
47 |
48 | 
49 | 
50 | 
51 | 
52 |
53 |
54 | ## NEXT
55 |
56 | [STEP2 部品の加工](../step2)
57 |
--------------------------------------------------------------------------------
/content/docs/assembly/1k/step2.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "[STEP2] 部品の加工"
3 | meta_title: ""
4 | description: 本ページではSTEP1で調達した部品の加工について紹介します。
5 | draft: false
6 | author: "Fraxinus Project"
7 | categories:
8 | - 組立資料
9 | tags:
10 | - Fraxinus1k
11 | toc: false
12 | date: 2022-06-13T01:02:10+09:00
13 | lastmod: 2023-03-01T23:06:10+09:00
14 | images:
15 | - /images/fraxinus-assembly-2-parts-0.jpg
16 | aliases:
17 | - /docs/assembly/1k/step2/
18 | ---
19 |
20 | 本ページでは[STEP1](../step1)で調達した部品の加工について紹介します。
21 | 本ページ内の画像はクリックすると拡大できます。
22 |
23 | 
24 | 
25 | 
26 | 
27 | 
28 | 
29 | 
30 | 
31 | 
32 | 
33 | 
34 | 
35 | 
36 |
37 | ## 参考
38 |
39 | 
40 |
41 |
42 | ## NEXT
43 |
44 | [STEP3](../step3)
45 |
--------------------------------------------------------------------------------
/content/docs/assembly/1k/step3.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "[STEP3] フレームの組立"
3 | meta_title: ""
4 | description: 本ページではSTEP2で加工した部品の組立について紹介します。
5 | draft: false
6 | author: "Fraxinus Project"
7 | categories:
8 | - 組立資料
9 | tags:
10 | - Fraxinus1k
11 | toc: false
12 | date: 2022-06-13T01:02:10+09:00
13 | lastmod: 2023-03-01T23:06:12+09:00
14 | images:
15 | - /images/fraxinus-assembly-3-frame-0.jpg
16 | aliases:
17 | - /docs/assembly/1stgen/step3/
18 | ---
19 |
20 | 本ページでは[STEP2](../step2)で加工した部品の組立について紹介します。
21 | 本ページ内の画像はクリックすると拡大できます。
22 |
23 | 
24 | 
25 | 
26 | 
27 | 
28 | 
29 | 
30 | 
31 |
32 | ## 参考
33 |
34 | 
35 | 
36 | 
37 | 
38 | 
39 | 
40 | 
41 |
42 | ## NEXT
43 |
44 | [STEP4](../step4)
45 |
--------------------------------------------------------------------------------
/content/docs/assembly/1k/step4.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "[STEP4] KP3Sの解体"
3 | meta_title: ""
4 | description: 本ページではKP3Sの解体方法を紹介します。
5 | draft: false
6 | author: "Fraxinus Project"
7 | categories:
8 | - 組立資料
9 | tags:
10 | - Fraxinus1k
11 | toc: false
12 | date: 2022-06-13T01:02:10+09:00
13 | lastmod: 2023-03-01T23:06:14+09:00
14 | images:
15 | - /images/fraxinus-assembly-4-teardown-kp3s-0.jpg
16 | ---
17 |
18 | 本ページではKP3Sの解体方法を紹介します。
19 | [STEP3](../step3)までの作業を終えてから解体することをおすすめします。
20 | 本ページ内の画像はクリックすると拡大できます。
21 |
22 | 
23 | 
24 | 
25 | 
26 | 
27 | 
28 | 
29 | 
30 | 
31 | 
32 | 
33 |
34 | ## 参考
35 |
36 | 
37 |
38 | ## NEXT
39 |
40 | [STEP5](../step5)
41 |
--------------------------------------------------------------------------------
/content/docs/assembly/1k/step5.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "[STEP5] Zベッドの組立"
3 | meta_title: ""
4 | description: 本ページではSTEP3で組立たフレームにZベッドを取り付けるまでを紹介します。
5 | draft: false
6 | author: "Fraxinus Project"
7 | categories:
8 | - 組立資料
9 | tags:
10 | - Fraxinus1k
11 | toc: false
12 | date: 2022-06-13T01:02:10+09:00
13 | lastmod: 2023-03-01T23:06:16+09:00
14 | aliases:
15 | - /docs/assembly/1stgen/step4/
16 | images:
17 | - /images/fraxinus-assembly-5-z-bed-0.jpg
18 | ---
19 |
20 | 本ページでは[STEP3](../step3)で組立たフレームに[STEP4](../step4)で解体して準備したKP3Sのバーツを使ってZベッドを取り付けるまでを紹介します。
21 | 本ページ内の画像はクリックすると拡大できます。
22 |
23 | 
24 | 
25 | 
26 | 
27 | 
28 | 
29 | 
30 | 
31 | 
32 | 
33 |
34 | ## NEXT
35 |
36 | [STEP6](../step6)
37 |
--------------------------------------------------------------------------------
/content/docs/assembly/1k/step6.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "[STEP6] Xキャリッジの組立"
3 | meta_title: ""
4 | description: 本ページではSTEP5までで組立たフレームにXキャリッジを取り付けるまでを紹介します。
5 | draft: false
6 | author: "Fraxinus Project"
7 | categories:
8 | - 組立資料
9 | tags:
10 | - Fraxinus1k
11 | toc: false
12 | date: 2022-06-13T01:02:10+09:00
13 | lastmod: 2023-03-01T23:06:18+09:00
14 | images:
15 | - /images/fraxinus-assembly-6-x-carriage-0.jpg
16 | aliases:
17 | - /docs/assembly/1stgen/step5/
18 | ---
19 |
20 | 本ページでは[STEP5](../step5)までで組立たフレームにXキャリッジを取り付けるまでを紹介します。
21 | 本ページ内の画像はクリックすると拡大できます。
22 |
23 | 
24 | 
25 | 
26 | 
27 | 
28 | 
29 |
30 | ## NEXT
31 |
32 | [STEP7](../step7)
33 |
--------------------------------------------------------------------------------
/content/docs/assembly/1k/step7.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "[STEP7] XYガントリーの組立"
3 | meta_title: ""
4 | description: 本ページではSTEP6までで組立たフレームにXYガントリーを取り付けるまでを紹介します。
5 | draft: false
6 | author: "Fraxinus Project"
7 | categories:
8 | - 組立資料
9 | tags:
10 | - Fraxinus1k
11 | toc: false
12 | date: 2022-06-13T01:02:10+09:00
13 | lastmod: 2023-03-01T23:06:20+09:00
14 | images:
15 | - /images/fraxinus-assembly-7-xy-gantry-0.jpg
16 | aliases:
17 | - /docs/assembly/1stgen/step6/
18 | ---
19 |
20 | 本ページでは[STEP6](../step6)までで組立たフレームにXYガントリーを取り付けるまでを紹介します。
21 | 本ページ内の画像はクリックすると拡大できます。
22 |
23 | 
24 | 
25 | 
26 | 
27 | 
28 | 
29 |
30 | ## NEXT
31 |
32 | [STEP8](../step8)
33 |
--------------------------------------------------------------------------------
/content/docs/assembly/1k/step8.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "[STEP8] ベルトとヘッドの組立"
3 | meta_title: ""
4 | description: 本ページではSTEP7までで組立たフレームにベルトとヘッドを取り付けるまでを紹介します。
5 | draft: false
6 | author: "Fraxinus Project"
7 | categories:
8 | - 組立資料
9 | tags:
10 | - Fraxinus1k
11 | toc: false
12 | date: 2022-06-13T01:02:10+09:00
13 | lastmod: 2023-03-01T23:06:22+09:00
14 | aliases:
15 | - /docs/assembly/1stgen/step7/
16 | images:
17 | - /images/fraxinus-assembly-8-belt-head-0.jpg
18 | ---
19 |
20 | 本ページでは[STEP7](../step7)までで組立たフレームにベルトとヘッドを取り付けるまでを紹介します。
21 | 本ページ内の画像はクリックすると拡大できます。
22 |
23 | 
24 | 
25 | 
26 | 
27 | 
28 | 
29 | 
30 |
31 | ## NEXT
32 |
33 | [STEP9](../step9)
34 |
--------------------------------------------------------------------------------
/content/docs/assembly/1k/step9.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "[STEP9] 電装周りの組立"
3 | meta_title: ""
4 | description: 本ページではSTEP8までで組立たフレームに電装周り一式を取り付けるまでを紹介します。
5 | draft: false
6 | author: "Fraxinus Project"
7 | categories:
8 | - 組立資料
9 | tags:
10 | - Fraxinus1k
11 | toc: false
12 | date: 2022-06-13T01:02:10+09:00
13 | lastmod: 2023-03-01T23:06:24+09:00
14 | images:
15 | - /images/fraxinus-assembly-9-electronics-0.jpg
16 | aliases:
17 | - /docs/assembly/1stgen/step8/
18 | ---
19 |
20 | 本ページでは[STEP8](../step8)までで組立たフレームに電装周り一式を取り付けるまでを紹介します。
21 | 本ページ内の画像はクリックすると拡大できます。
22 |
23 | 
24 | 
25 | 
26 | 
27 | 
28 | 
29 | 
30 | 
31 |
32 | ## 参考
33 |
34 | 
35 |
36 | ## NEXT
37 |
38 | 組み立ては終了です。動作確認とテスト印刷に進みます。
39 | (資料準備中)
40 |
--------------------------------------------------------------------------------
/content/docs/assembly/about.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: About Assembly
3 | meta_title: ""
4 | description: This page introduces how to assemble Fraxinus.
5 | draft: false
6 | author: "Fraxinus Project"
7 | categories:
8 | - Assembly Guide
9 | - Introduction Materials
10 | tags:
11 | - Fraxinus1k
12 | - Fraxinus3e
13 | date: 2022-06-13T01:01:10+09:00
14 | lastmod: 2023-11-04T00:21:08+09:00
15 | ---
16 |
17 | ## Precautions
18 |
19 | A 3D printer is a machine tool. When using it, pay close attention to safety and wear appropriate protective gear.
20 |
21 | The assembly procedures and modification methods introduced in this project are provided solely as reference information. Fraxinus Project assumes no responsibility whatsoever for any damages (injuries, fires, equipment damage, etc.) caused by using this information. Assembly, modification, and use are all at your own risk.
22 |
23 | ## PDF Version
24 |
25 | ### Fraxinus00tw
26 |
27 | v1 (Updated February 2025)
28 |
29 |
30 |
31 | ### Fraxinus1k
32 |
33 | v0.9 (Updated March 2023)
34 |
35 | PDF version is also available on Speaker Deck (Published July 2, 2023)
36 | https://speakerdeck.com/fukumay/fraxinus1k-assembly-instructions-english-v-0-dot-9
37 |
38 |
39 |
40 | ### Fraxinus3t
41 |
42 | v0.9 (Updated November 2023)
43 |
44 |
45 |
46 | ## Contributors
47 |
48 | Contributors to the assembly manual (in no particular order, titles omitted)
49 |
50 | * fukumay
51 | * nrtkbb
52 | * F1zzy-Boy
53 | * mazu-bunkai
54 | * tomorrow56
55 | * Eitoku
56 | * まる。
57 | * Pen-holi
58 | * Proko
59 | * 京都タラレバ息子
60 | * tiryoh
61 | * odaki
62 | * SummerOrange
63 | * kusa0
64 | * ysk1025
65 | * sato4645
66 |
--------------------------------------------------------------------------------
/content/docs/assembly/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 組立について
3 | meta_title: ""
4 | description: 本ページではFraxinus組み立てについて紹介します。
5 | draft: false
6 | author: "Fraxinus Project"
7 | categories:
8 | - 組立資料
9 | - 紹介資料
10 | tags:
11 | - Fraxinus1k
12 | - Fraxinus3e
13 | date: 2022-06-13T01:01:10+09:00
14 | lastmod: 2023-11-04T00:21:08+09:00
15 | ---
16 |
17 | ## 注意事項
18 |
19 | 3Dプリンタは工作機械です。使用時は安全に十分注意を払い、適切な保護具を着用してください。
20 |
21 | 本プロジェクトで紹介している組立手順や改造方法は、あくまでも参考情報として提供するものです。
22 | これらの情報を使用して生じたいかなる損害(怪我、火災、機器の破損等)についても、Fraxinusプロジェクトは一切の責任を負いかねます。組立・改造・使用は、すべて自己責任で行ってください。
23 |
24 | ## PDF版
25 |
26 | ### Fraxinus00tw
27 |
28 | v1 (2025年2月更新)
29 |
30 |
31 |
32 | ### Fraxinus1k
33 |
34 | v0.9 (2023年3月更新)
35 |
36 | Speaker DeckにPDF版も公開しています(2023年7月2日公開)
37 | https://speakerdeck.com/fukumay/fraxinus1k-zu-li-shuo-ming-shu-japanese-v-0-dot-9
38 |
39 | English Version: [Assembly Document](/en/docs/assembly/about/)
40 |
41 |
42 |
43 | ### Fraxinus3t
44 |
45 | v0.9 (2023年11月更新)
46 |
47 |
48 |
49 | ## Fraxinus1kの組立方
50 |
51 |
52 | ### 組立前の注意事項
53 |
54 | * まずKP3S+Klipper+3D Touchで印刷を経験することを強くお勧めします
55 | * Fraxinus組立後にうまく動かなかった場合のトラブルシューティングがやりやすくなります
56 | * Klipperが動く環境からのアップサイクルであれば、`printer.cfg`の一部変更のみで対応が可能です
57 | * ABSで印刷できる環境を準備することをお勧めします
58 | * 印刷部品を揃えるため、自宅もしくは職場や学校などで印刷できる環境を確保することをお勧めします
59 | * 一部部品は耐熱性や耐久性を要するためABSでの印刷をお勧めしています
60 | * Fraxinusに使用する部品は基本的にPLAでの印刷を推奨しません
61 | * 高温に晒されると溶解して火災等の要因となる場合もあります
62 | * 時間経過とともに劣化が進んで割れてしまうこともあります
63 | * 工具が揃っている前提の資料となっています
64 | * 組立に際し、はんだごて、電気ドリル&ドライバー、レンチ、ピンセット、ペンチ、タップなどの工具を使用します
65 | * 持っていない場合は、借りられる環境を探すか、この機会に揃えて頂く必要があります
66 |
67 | v0.9 (2023年3月更新)
68 |
69 | * [STEP1 部品の手配と印刷](../1k/step1)
70 | * [STEP2 部品の加工](../1k/step2)
71 | * [STEP3 フレームの組立](../1k/step3)
72 | * [STEP4 KP3Sの解体](../1k/step4)
73 | * [STEP5 Zベッドの組立](../1k/step5)
74 | * [STEP6 Xキャリッジの組立](../1k/step6)
75 | * [STEP7 XYガントリーの組立](../1k/step7)
76 | * [STEP8 ベルトとヘッドの組立](../1k/step8)
77 | * [STEP9 電装の組立](../1k/step9)
78 |
79 |
80 | ## 貢献者/Contributors
81 |
82 | 組立手順書の貢献者(順不同敬称略)
83 |
84 | * fukumay
85 | * nrtkbb
86 | * F1zzy-Boy
87 | * mazu-bunkai
88 | * tomorrow56
89 | * Eitoku
90 | * まる。
91 | * Pen-holi
92 | * Proko
93 | * 京都タラレバ息子
94 | * tiryoh
95 | * odaki
96 | * SummerOrange
97 | * kusa0
98 | * ysk1025
99 | * sato4645
100 |
--------------------------------------------------------------------------------
/content/docs/enclosure.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Enclosure
3 | meta_title: ""
4 | description: This page introduces the enclosure versions of Fraxinus.
5 | draft: false
6 | author: "Fraxinus Project"
7 | categories:
8 | - Fraxinus Introduction
9 | tags:
10 | - Fraxinus1kc
11 | - Fraxinus1kc2
12 | - Fraxinus1tcl
13 | - Fraxinus3ec
14 | - Fraxinus3tcl
15 | slug: enclosure
16 | date: 2022-08-11T17:42:10+09:00
17 | lastmod: 2025-05-27T10:44:56+09:00
18 | ---
19 |
20 | There are three types of enclosures for Fraxinus1k and two types for Fraxinus3e.
21 |
22 |
23 |
24 |
29 |
30 |
31 |
32 | ## Fraxinus1k
33 |
34 | There are three types: low-profile top hat (cl), integrated (c2), and top hat (c).
35 |
36 | 
37 |
38 | ### Fraxinus1kc
39 |
40 | 
41 |
42 | ### Fraxinus1kc2
43 |
44 | 
45 |
46 | ### Fraxinus1tcl
47 |
48 | 
49 |
50 | ## Fraxinus3e
51 |
52 | ### Fraxinus3ec
53 |
54 | 
55 |
56 | ### Fraxinus3tcl
57 |
58 | 
59 |
--------------------------------------------------------------------------------
/content/docs/enclosure.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: エンクロージャ
3 | meta_title: ""
4 | description: 本ページではエンクロージャ版Fraxinusについて紹介します。
5 | draft: false
6 | slug: enclosure
7 | author: "Fraxinus Project"
8 | categories:
9 | - Fraxinus紹介
10 | tags:
11 | - Fraxinus1kc
12 | - Fraxinus1kc2
13 | - Fraxinus1tcl
14 | - Fraxinus3ec
15 | - Fraxinus3tcl
16 | date: 2022-08-11T17:42:10+09:00
17 | lastmod: 2025-05-27T10:44:56+09:00
18 | ---
19 |
20 | Fraxinus1kについては3種類、Fraxinus3eについては2種類のエンクロージャがあります。
21 |
22 |
23 |
24 |
29 |
30 |
31 |
32 | ## Fraxinus1k
33 |
34 | 低背トップハット(cl)、一体型(c2)、トップハット(c)の3種類です。
35 |
36 | 
37 |
38 | ### Fraxinus1kc
39 |
40 | 
41 |
42 | ### Fraxinus1kc2
43 |
44 | 
45 |
46 | ### Fraxinus1tcl
47 |
48 | 
49 |
50 | ## Fraxinus3e
51 |
52 | ### Fraxinus3ec
53 |
54 | 
55 |
56 | ### Fraxinus3tcl
57 |
58 | 
59 |
--------------------------------------------------------------------------------
/content/docs/flying-gantry.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Flying Gantry
3 | meta_title: ""
4 | description: This page introduces Fraxinus with a flying gantry structure.
5 | draft: false
6 | slug: flying-gantry
7 | author: "Fraxinus Project"
8 | categories:
9 | - Fraxinus Introduction
10 | tags:
11 | - Fraxinus1fg
12 | - Fraxinus3fg
13 | - Fraxinus5fg
14 | - Fraxinus9fg
15 | date: 2024-11-18T02:01:52+09:00
16 | lastmod: 2024-11-18T02:04:16+09:00
17 | ---
18 |
19 | Fraxinus with a flying gantry features a flying gantry structure while maintaining compactness.
20 |
21 | There are four types with different sizes: 1fg, 3fg, 5fg, and 9fg.
22 |
23 |
24 |
25 |
30 |
31 |
32 | ## Fraxinus1fg
33 |
34 | 
35 |
36 | 
37 |
38 | ## Fraxinus3fg
39 |
40 | 
41 |
42 | 
43 |
44 | 
45 |
46 | ## Fraxinus5fg
47 |
48 | 
49 |
50 | 
51 |
52 | ## Fraxinus9fg
53 |
54 | 
55 |
56 | 
57 |
--------------------------------------------------------------------------------
/content/docs/flying-gantry.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: フライングガントリー
3 | meta_title: ""
4 | description: 本ページではフライングガントリー構造のFraxinusについて紹介します。
5 | draft: false
6 | slug: flying-gantry
7 | author: "Fraxinus Project"
8 | categories:
9 | - Fraxinus紹介
10 | tags:
11 | - Fraxinus1fg
12 | - Fraxinus3fg
13 | - Fraxinus5fg
14 | date: 2024-11-18T02:01:52+09:00
15 | lastmod: 2024-11-18T02:04:16+09:00
16 | ---
17 |
18 | フライングガントリーのFraxinusは、コンパクト性をキープしつつフライングガントリー構造を特徴としています。
19 |
20 | サイズ違いで1fg, 3fg, 5fg, 9fgの4種類があります。
21 |
22 |
23 |
24 |
29 |
30 |
31 | ## Fraxinus1fg
32 |
33 | 
34 |
35 | 
36 |
37 | ## Fraxinus3fg
38 |
39 | 
40 |
41 | 
42 |
43 | 
44 |
45 | ## Fraxinus5fg
46 |
47 | 
48 |
49 | 
50 |
51 | ## Fraxinus9fg
52 |
53 | 
54 |
55 | 
56 |
--------------------------------------------------------------------------------
/content/docs/micro-printers.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Micro 3D Printers
3 | meta_title: ""
4 | description: This page introduces the micro 3D printers of the Fraxinus project.
5 | draft: false
6 | slug: micro-printers
7 | author: "Fraxinus Project"
8 | categories:
9 | - Fraxinus Introduction
10 | tags:
11 | - Fraxinus00
12 | - Fraxinus00w
13 | - Fraxinus00w2
14 | - Fraxinus00w3
15 | - Fraxinus0w
16 | date: 2024-11-10T14:01:52+09:00
17 | lastmod: 2024-11-18T02:00:10+09:00
18 | ---
19 |
20 | There are 5 types of compact CoreXY micro 3D printers using acrylic frames, suitable for on-the-go demos and feature introductions.
21 |
22 | * [Fraxinus00](#fraxinus00)
23 | * [Fraxinus00w](#fraxinus00w)
24 | * [Fraxinus00w2](#fraxinus00w2)
25 | * [Fraxinus00w3](#fraxinus00w3)
26 | * [Fraxinus0w](#fraxinus0w)
27 |
28 | In addition, there are also [printers designed and built by community members](../community).
29 |
30 | 
31 |
32 |
33 |
34 |
39 |
40 |
41 |
42 | **About 3D Model Licenses**
43 | Includes models under the following licenses.
44 |
45 | * [Hummingbird Extruder](https://github.com/nhchiu/VoronMods/tree/main/Extruders/Hummingbird)
46 | * [@nhchiu](https://www.printables.com/@nhchiu)
47 | * [GPL-3.0](https://github.com/nhchiu/VoronMods/blob/main/LICENSE)
48 |
49 |
50 | ## Fraxinus00
51 |
52 | 
53 |
54 | 
55 |
56 | 
57 |
58 | ## Fraxinus00w
59 |
60 | 
61 |
62 | 
63 |
64 | ## Fraxinus00w2
65 |
66 | 
67 |
68 | 
69 |
70 | 
71 |
72 | ## Fraxinus00w3
73 |
74 | 
75 |
76 | 
77 |
78 | 
79 |
80 | ## Fraxinus0w
81 |
82 | 
83 |
84 | 
85 |
86 | 
87 |
--------------------------------------------------------------------------------
/content/docs/micro-printers.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: マイクロ3Dプリンタ
3 | meta_title: ""
4 | description: 本ページではFraxinusプロジェクトのマイクロ3Dプリンタについて紹介します。
5 | draft: false
6 | slug: micro-printers
7 | author: "Fraxinus Project"
8 | categories:
9 | - Fraxinus紹介
10 | tags:
11 | - Fraxinus00
12 | - Fraxinus00w
13 | - Fraxinus00w2
14 | - Fraxinus00w3
15 | - Fraxinus0w
16 | date: 2024-11-10T14:01:52+09:00
17 | lastmod: 2024-11-18T02:00:10+09:00
18 | ---
19 |
20 | Fraxinusシリーズはアクリルフレームを用いた、コンパクトで出先でのデモや機能紹介に好適なCoreXY構造のマイクロ3Dプリンタです。
21 |
22 | 現在5種類(00, 00w, 00w2, 00w3, 0w)あります。
23 |
24 | * [Fraxinus00](#fraxinus00)
25 | * [Fraxinus00w](#fraxinus00w)
26 | * [Fraxinus00w2](#fraxinus00w2)
27 | * [Fraxinus00w3](#fraxinus00w3)
28 | * [Fraxinus0w](#fraxinus0w)
29 |
30 | そのほかにも[コミュニティメンバーが設計製作したプリンタ](../community)もあります。
31 |
32 | 
33 |
34 |
35 |
36 |
41 |
42 |
43 |
44 | **3Dモデルのライセンスについて**
45 | 下記のライセンスのモデルを含みます。
46 |
47 | * [Hummingbird Extruder](https://github.com/nhchiu/VoronMods/tree/main/Extruders/Hummingbird)
48 | * [@nhchiu](https://www.printables.com/@nhchiu)
49 | * [GPL-3.0](https://github.com/nhchiu/VoronMods/blob/main/LICENSE)
50 |
51 |
52 | ## Fraxinus00
53 |
54 | 
55 |
56 | 
57 |
58 | 
59 |
60 | ## Fraxinus00w
61 |
62 | 
63 |
64 | 
65 |
66 | ## Fraxinus00w2
67 |
68 | 
69 |
70 | 
71 |
72 | 
73 |
74 | ## Fraxinus00w3
75 |
76 | 
77 |
78 | 
79 |
80 | 
81 |
82 | ## Fraxinus0w
83 |
84 | 
85 |
86 | 
87 |
88 | 
89 |
--------------------------------------------------------------------------------
/content/docs/res/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | headless: true
3 | ---
4 |
--------------------------------------------------------------------------------
/content/docs/roadmap.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: プロジェクトロードマップ
3 | description: Fraxinusプロジェクトのロードマップ
4 | draft: false
5 | slug: roadmap
6 | author: "Fraxinus Project"
7 | categories:
8 | - Fraxinus紹介
9 | tags:
10 | - Fraxinus
11 | date: 2022-08-11T17:02:10+09:00
12 | lastmod: 2022-08-11T17:02:10+09:00
13 | ---
14 |
15 | Fraxinusは2022年2月に事例紹介がされてから、クローズドベータ期間で組み立て再現性の確認をしてきました。
16 | 2022年8月からはオープンベータ期間とし、組み立て資料や印刷データなどの情報を一般公開開始しました。
17 |
18 | オープンベータ期間中にで各種資料や検討中データの更新を行い、その後、データの一般公開を目指しています。
19 |
20 | 
21 |
--------------------------------------------------------------------------------
/content/docs/trident.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Trident Version
3 | meta_title: ""
4 | description: This page introduces the trident version of Fraxinus.
5 | draft: false
6 | slug: trident
7 | author: "Fraxinus Project"
8 | categories:
9 | - Fraxinus Introduction
10 | tags:
11 | - Fraxinus1tc2
12 | - Fraxinus3tc
13 | - Fraxinus1tcl
14 | - Fraxinus3tcl
15 | - Fraxinus5ts
16 | date: 2023-07-06T09:28:10+09:00
17 | lastmod: 2025-05-27T10:44:46+09:00
18 | ---
19 |
20 | Fraxinus's t series is equipped with a trident-type bed adjustment mechanism.
21 |
22 |
23 |
24 |
29 |
30 |
31 | ## Fraxinus1tc2
32 |
33 | 
34 |
35 | ## Fraxinus3tc
36 |
37 | 
38 |
39 | ## Fraxinus1tcl
40 |
41 | 
42 |
43 | ## Fraxinus3tcl
44 |
45 | 
46 |
47 | ## Fraxinus5ts
48 |
49 | 
50 |
--------------------------------------------------------------------------------
/content/docs/trident.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: トライデント
3 | meta_title: ""
4 | description: 本ページではトライデント版Fraxinusについて紹介します。
5 | draft: false
6 | slug: trident
7 | author: "Fraxinus Project"
8 | categories:
9 | - Fraxinus紹介
10 | tags:
11 | - Fraxinus1tc2
12 | - Fraxinus3tc
13 | - Fraxinus1tcl
14 | - Fraxinus3tcl
15 | - Fraxinus5ts
16 | date: 2023-07-06T09:28:10+09:00
17 | lastmod: 2025-05-27T10:44:46+09:00
18 | ---
19 |
20 | Fraxinusのtシリーズはトライデント型ベッド調整機構を搭載しています。
21 |
22 |
23 |
24 |
29 |
30 |
31 | ## Fraxinus1tc2
32 |
33 | 
34 |
35 | ## Fraxinus3tc
36 |
37 | 
38 |
39 | ## Fraxinus1tcl
40 |
41 | 
42 |
43 | ## Fraxinus3tcl
44 |
45 | 
46 |
47 | ## Fraxinus5ts
48 |
49 | 
50 |
--------------------------------------------------------------------------------
/content/pages/about.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: About
3 | meta_title: "About"
4 | description: About Fraxinus
5 | draft: false
6 | slug: about
7 | author: "Fraxinus Project"
8 | categories:
9 | - Fraxinus Introduction
10 | ---
11 |
12 | Fraxinus is a compact 3D printer for home and small workshop use.
13 | Although it is compact, it still retains the high-speed capabilities thanks to its CoreXY design.
14 | Currently, we are developing 5 models with print sizes of 70mm³, 170mm³, 220mm³, 310mm³ and 510mm³.
15 |
16 | 
17 |
18 | ## Fraxinus1k
19 |
20 | * Body size: 260x285x356mm (excluding print head and tube)
21 | * Print size: 165x170x185mm
22 |
23 | 
24 |
25 | ## Fraxinus3e
26 |
27 | * Body size: 310x335x373mm (excluding print head and tube)
28 | * Print size: 215x220x220mm
29 |
30 | 
31 |
32 | ## Fraxinus5ts
33 |
34 | * Body size: 410x440x510mm (excluding print head and tube)
35 | * Print size: 310x310x310mm
36 |
37 | 
38 |
39 | ## Fraxinus00w
40 |
41 | * Body size: 153x152x176mm (excluding print head and tube)
42 | * Print size: 70x70x70mm
43 |
44 | 
45 |
46 | ## Size of Fraxinus
47 |
48 | 
49 | 
50 | 
51 |
--------------------------------------------------------------------------------
/content/pages/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: About
3 | meta_title: "About"
4 | description: Fraxinusの特徴やコンセプトについて
5 | draft: false
6 | slug: about
7 | author: "Fraxinus Project"
8 | categories:
9 | - Fraxinus紹介
10 | ---
11 |
12 | Fraxinus(フラクシネス)は自宅利用や省スペース工房で魅力的な3Dプリンターです。
13 | コンパクトでありながらCoreXY構造が持つ高速動作を実現しています。
14 | 2024年11月現在印刷サイズは70mm角、170mm角、220mm角、310mm角、510mm角の5種を展開しています。
15 | [エンクロージャ版](../docs/enclosure)や[トライデント版](../docs/trident)、[フライングガントリー版](../docs/flying-gantry)、[マイクロ3Dプリンタ](../docs/micro-printers)もあります。
16 |
17 | 
18 |
19 | ## Fraxinus00w3
20 |
21 | Fraxinus00w3はCoreXYの構造を持つコンパクトな3Dプリンターです。
22 | USB-PD電源やモバイルバッテリーで動作可能で、出先でのデモや機能紹介に好適です。
23 |
24 | * 本体サイズ:147x160x147mm(上部ヘッド、チューブ凸除く)
25 | * 印刷サイズ:66x70x66mm
26 |
27 | 
28 |
29 | ## Fraxinus0w
30 |
31 | Fraxinus0w rev2はCoreXYの構造を持つコンパクトな3Dプリンターです。
32 | USB-PD電源やモバイルバッテリーで動作可能で、出先でのデモや機能紹介に好適です。
33 |
34 | * 本体サイズ:147x160x147mm(上部ヘッド、チューブ凸除く)
35 | * 印刷サイズ:66x70x66mm
36 |
37 | 
38 |
39 | ## Fraxinus1k
40 |
41 | Fraxinus1kは[Kingroon KP3S](https://jp.kingroon.com/products/3d-printer-kp3s)をアップサイクルして作製できるCoreXYの構造を持つ3Dプリンターです。
42 | 高速動作が可能で、KP3Sと近似の170mm角程度の印刷サイズを持ち、よりコンパクトにできます。
43 |
44 | * 本体サイズ:260x285x356mm(上部ヘッド、チューブ凸除く)
45 | * 印刷サイズ:165x170x185mm
46 |
47 | 
48 |
49 | ## Fraxinus3e
50 |
51 | Fraxinus3eは[Ender-3 V2](https://www.creality.com/products/ender-3-v2-3d-printer-csco)やその互換機をアップサイクルして作製できるCoreXYの構造を持つ3Dプリンターです。
52 | 高速動作が可能で、Ender-3 V2と近似の220mm角程度の印刷サイズを持ち、大幅に本体をサイズダウンできます。
53 |
54 | * 本体サイズ:310x335x373mm(上部ヘッド、チューブ凸除く)
55 | * 印刷サイズ:215x220x220mm
56 |
57 | 
58 |
59 | ## Fraxinus3tcl
60 |
61 | Fraxinus3tclはトライデント型ベッド調整機構を搭載した低背トップハットなCoreXYの構造を持つ3Dプリンターです。Fraxinus3eがベースになっています。
62 | 高速動作が可能で、印刷/材料エリアフルカバー型のため220mm角の印刷サイズを持ちます。
63 |
64 | * 本体サイズ:310x335x429mm(上部ヘッド、チューブ凸除く)
65 | * 印刷サイズ:220x220x220mm
66 |
67 | 
68 |
69 | ## Fraxinus5ts
70 |
71 | Fraxinus5tsは[Kingroon KP5L](https://jp.kingroon.com/products/kingroon-kp5l-3d-printer)をアップサイクルして作製できるCoreXYの構造を持つ3Dプリンターです。
72 | 高速動作が可能で、KP5Lと近似の310mm角程度の印刷サイズを持ち、よりコンパクトにできます。
73 |
74 | * 本体サイズ:410x440x510mm(上部ヘッド、チューブ凸除く)
75 | * 印刷サイズ:310x310x310mm
76 |
77 | 
78 |
79 | ## Fraxinusのサイズ
80 |
81 | 
82 | 
83 |
84 | ## 実際の写真
85 |
86 | 
87 | 
88 |
89 | ## デザイン要件 / 優先度
90 |
91 | * 横幅を極力狭めたい。次に奥行きを狭めたい。高さはできなりでOK。
92 | * Voron 0より幅を狭めると緻密でカッコよくなりそう。
93 | * C面付2020アルミフレームを縦材に使う。
94 | * この材料みて設計しようかなと思いました。
95 | * 極力KP3Sの部材を用いる。
96 | * 特にMGN12のリニアレール2本、モータ、ベッド、基板、ハーネス類は移行したい。ただ流用したせいでかっこ悪くはしたくない。
97 | * どうせなら可逆設計する。
98 | * また別のセットに作り変えたくなる可能性も考慮して。元に戻せると何となくかっこいい気もする。
99 |
100 |
101 | ## Special Thanks / 謝辞
102 |
103 | 素晴らしいデザイン性とCoreXYの魅力を世界に広めて頂き、情報も積極的に共有頂けているVoron Design社に感謝と御礼を申し上げます。
104 | https://vorondesign.com/
105 |
106 | また素晴らしい性能と求めやすい価格、配置しやすいコンパクトさを両立したKP3Sを設計・製造・販売頂いているKingroon社に感謝と御礼を申し上げます。
107 | https://kingroon.com/
108 |
109 | Contributor : Klipper_jp group , Fraxinus group
110 | fantaro, tiryoh, popato, caesar, Баклажаны, おいしいチャーハン, ねず民, yuma, Eitoku, nrtkbb, mazu-bunkai, くうき, proko, まる。, みやた, pen-hori, psycho0h3ed, 孔明, tomorrow56, koma50, touken0515, f1zzy-boy, okuyasu, ochisamu, pirotsuku, and all member who participates in the test build.
111 |
112 | ## このサイトについて
113 |
114 | 当サイトは、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、 Amazonアソシエイト・プログラムの参加者です。
115 |
--------------------------------------------------------------------------------
/content/pages/discord.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Join Discord
3 | description: About Discord server
4 | redirect: https://discord.gg/fVrn9yaPUm
5 | draft: false
6 | ---
7 |
8 |
9 |
10 |
12 |
13 | redirecting to https://discord.gg/fVrn9yaPUm
14 |
--------------------------------------------------------------------------------
/content/pages/discord.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Join Discord
3 | description: About Discord server
4 | draft: false
5 | redirect: https://discord.gg/fVrn9yaPUm
6 | ---
7 |
8 |
9 |
10 |
12 |
13 | redirecting to https://discord.gg/fVrn9yaPUm
14 |
--------------------------------------------------------------------------------
/content/pages/privacy-policy.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Privacy Policy"
3 | meta_title: ""
4 | description: "Privacy Policy for This Site"
5 | draft: false
6 | ---
7 |
8 | This Privacy Policy (hereinafter referred to as "this Policy") defines the handling of personal information on the Fraxinus Project (hereinafter referred to as "this Site").
9 | This Site is a static site and does not have features like contact forms, but we will comply with laws and guidelines regarding personal information protection and operate as follows.
10 |
11 | ---
12 |
13 | ## 1. Information Collected and Collection Methods
14 |
15 | This Site does not have a mechanism to directly acquire information that can identify individual users. For analyzing traffic and performance, we use Cloudflare Analytics, which collects the following information anonymously and statistically.
16 |
17 | 1. **Access Log Information**
18 |
19 | * Page views, referrer information, browser type and version, OS information, access date and time, etc.
20 | * How it's used: Measured through Cloudflare's lightweight JavaScript beacon. Information is collected without setting any cookies or localStorage on the client side ([Cloudflare Docs][1], [Cloudflare Docs][2])
21 |
22 | ※The Site administrators do not acquire personal information such as names or email addresses.
23 |
24 | ---
25 |
26 | ## 2. Purpose of Use
27 |
28 | The anonymized data collected by this Site through Cloudflare Analytics will be used within the scope of the following purposes.
29 |
30 | * Analysis of site usage and statistical processing for service improvement
31 | * Optimization of site display and usability improvement
32 | * Security measures against unauthorized access and DDoS attacks, etc.
33 |
34 | ---
35 |
36 | ## 3. Provision of Information to Third Parties
37 |
38 | This Site will not provide collected information to third parties (excluding Cloudflare) without the user's consent. However, this shall not apply in the following cases:
39 |
40 | * When required by law
41 | * When necessary to protect a person's life, body, or property, and it is difficult to obtain the person's consent
42 | * When requested by public agencies for disclosure of information based on legal procedures
43 |
44 | ---
45 |
46 | ## 4. Use of Cloudflare Analytics
47 |
48 | This Site uses Cloudflare Analytics to analyze site traffic conditions and performance.
49 | Cloudflare Analytics does not set cookies or localStorage on the client side and measures visits by detecting changes in referrer information, etc. It does not collect any information that identifies individual users and only obtains anonymized aggregated data ([Cloudflare Docs][1]).
50 |
51 | ---
52 |
53 | ## 6. Linked Sites
54 |
55 | Regarding privacy protection on external sites/services linked from this Site, please follow the privacy policy of each respective site. This Site assumes no responsibility whatsoever for the content or operation of external sites.
56 |
57 | ---
58 |
59 | ## 7. Changes to the Policy
60 |
61 | This Policy may be revised without prior notice due to changes in laws or the operation of this Site. The latest revised content will be published on this page.
62 |
63 | ---
64 |
65 | ## 8. Contact Information
66 |
67 | This Site does not have a contact form. For questions or comments, please contact the email address below.
68 |
69 | ```txt
70 | Administrator: Fraxinus Project
71 | Email: fraxinus-3d@googlegroups.com
72 | ```
73 |
74 | ---
75 |
76 | ### Date of Enactment: May 26, 2025
77 |
78 | ### Last Revision Date: May 26, 2025
79 |
80 | [1]: https://developers.cloudflare.com/web-analytics/data-metrics/core-web-vitals/ "Core Web Vitals · Cloudflare Web Analytics docs"
81 | [2]: https://developers.cloudflare.com/speed/speed-test/rum-beacon/ "RUM beacon for Web Analytics · Cloudflare Speed docs"
82 |
--------------------------------------------------------------------------------
/content/pages/privacy-policy.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "プライバシーポリシー"
3 | meta_title: ""
4 | description: "このサイトでのプライバシーポリシー"
5 | draft: false
6 | ---
7 |
8 | 本プライバシーポリシー(以下「本ポリシー」)は、Fraxinus Project(以下「当サイト」)における、個人情報の取扱いについて定めるものです。
9 | 当サイトは静的サイトであり、お問い合わせフォーム等を設置しておりませんが、個人情報保護に関する法令およびガイドラインを遵守し、以下のとおり運用いたします。
10 |
11 | ---
12 |
13 | ## 1. 収集する情報と収集方法
14 |
15 | 当サイトでは、ユーザー個人を識別し得る情報を直接取得する仕組みを設けていません。トラフィックやパフォーマンスの解析には、Cloudflare Analytics を利用しており、以下の情報を匿名かつ統計的に取得します。
16 |
17 | 1. **アクセスログ情報**
18 |
19 | * ページビュー数、参照元(リファラー)情報、ブラウザの種類やバージョン、OS 情報、アクセス日時など
20 | * 利用方法:Cloudflare の軽量 JavaScript ビーコンを通じて計測。クライアント側に Cookie や localStorage 等を一切設置せずに取得します ([Cloudflare Docs][1], [Cloudflare Docs][2])
21 |
22 | ※当サイト運営者が名前・メールアドレス等の個人情報を取得することはありません。
23 |
24 | ---
25 |
26 | ## 2. 利用目的
27 |
28 | 当サイトが Cloudflare Analytics を通じて収集する匿名化データは、以下の目的の範囲内で利用します。
29 |
30 | * サイト利用状況の分析およびサービス向上のための統計処理
31 | * サイト表示の最適化およびユーザビリティ改善
32 | * 不正アクセスや DDoS 攻撃などのセキュリティ対策
33 |
34 | ---
35 |
36 | ## 3. 情報の第三者提供
37 |
38 | 当サイトでは、ユーザーの同意を得ることなく、収集した情報を第三者(Cloudflare を除く)に提供することはありません。ただし、以下の場合はこの限りではありません。
39 |
40 | * 法令に基づく場合
41 | * 人の生命・身体・財産の保護のために必要であり、本人の同意を得ることが困難な場合
42 | * 公的機関から法的な手続きに基づき情報開示を求められた場合
43 |
44 | ---
45 |
46 | ## 4. Cloudflare Analytics の利用
47 |
48 | 当サイトでは Cloudflare Analytics を利用して、サイトのトラフィック状況やパフォーマンスを解析しています。
49 | Cloudflare Analytics はクライアント側に Cookie や localStorage を設置せず、リファラー情報の変化検知などを用いて訪問数を計測します。個別ユーザーを識別する情報は一切収集せず、あくまで匿名化された集計データのみを取得します ([Cloudflare Docs][1])。
50 |
51 | ---
52 |
53 | ## 6. リンク先サイトについて
54 |
55 | 当サイトからリンクしている外部サイト/サービスにおけるプライバシー保護については、各サイトのプライバシーポリシーに従ってください。当サイトは外部サイトの内容・運営について一切の責任を負いません。
56 |
57 | ---
58 |
59 | ## 7. ポリシーの変更
60 |
61 | 本ポリシーは、法令改正や当サイトの運用変更に伴い、予告なく改訂されることがあります。改訂後の最新の内容は、当ページにて公表します。
62 |
63 | ---
64 |
65 | ## 8. お問い合わせ
66 |
67 | 当サイトにはお問い合わせフォームを設置しておりません。ご質問・ご意見等は、下記のメールアドレスまでお願いいたします。
68 |
69 | ```txt
70 | 運営者:Fraxinus Project
71 | メール:fraxinus-3d@googlegroups.com
72 | ```
73 |
74 | ---
75 |
76 | ### 制定日:2025年5月26日
77 |
78 | ### 最終改訂日:2025年5月26日
79 |
80 | [1]: https://developers.cloudflare.com/web-analytics/data-metrics/core-web-vitals/ "Core Web Vitals · Cloudflare Web Analytics docs"
81 | [2]: https://developers.cloudflare.com/speed/speed-test/rum-beacon/ "RUM beacon for Web Analytics · Cloudflare Speed docs"
82 |
--------------------------------------------------------------------------------
/content/sections/call-to-action.md:
--------------------------------------------------------------------------------
1 | ---
2 | enable: true
3 | title: "Ready to build your next project with Hugo?"
4 | image: "/images/call-to-action.png"
5 | description: "Experience the future of web development with Hugoplate and Hugo. Build lightning-fast static sites with ease and flexibility."
6 | button:
7 | enable: true
8 | label: "Get Started Now"
9 | link: "https://github.com/zeon-studio/hugoplate"
10 |
11 | # don't create a separate page
12 | build:
13 | render: "never"
14 | ---
15 |
--------------------------------------------------------------------------------
/content/sections/variations.md:
--------------------------------------------------------------------------------
1 | ---
2 | enable: true
3 | title: "Fraxinusの種類"
4 | description: "数あるFraxinusの一部を紹介します。 [コミュニティについて](/community)のページでは、派生機種のより詳細な情報をご覧いただけます。"
5 |
6 | variations:
7 | - name: "Fraxinus00 w3"
8 | designation: "Designed by @fukumay1"
9 | avatar: "/images/Fraxinus00w3-1.jpg"
10 | content: "Fraxinus00は66mm四方の印刷サイズを持ちUSB-PD電源で動作可能な、コンパクトで出先での紹介に好適なCoreXY構造の3Dプリンターです。"
11 |
12 | - name: "Fraxinus0w rev2"
13 | designation: "Designed by @fukumay1"
14 | avatar: "/images/Fraxinus0w-rev2.jpg"
15 | content: "Fraxinus00は120mm四方の印刷サイズを持ちUSB-PD電源やモバイルバッテリーで動作可能な、コンパクトで出先でのデモや機能紹介に好適なCoreXY構造の3Dプリンターです。"
16 |
17 | - name: "Fraxinus1k"
18 | designation: "Designed by @fukumay1"
19 | avatar: "/images/Fraxinus1k.jpg"
20 | content: "170mm四方の印刷サイズを持つ自宅利用や省スペース工房で魅力的な第2世代のCoreXY構造3Dプリンターです。"
21 |
22 | - name: "Fraxinus3e"
23 | designation: "Designed by @fukumay1"
24 | avatar: "/images/Fraxinus3e.jpg"
25 | content: "220mm四方の印刷サイズを持つ自宅利用や省スペース工房で魅力的な第2世代のCoreXY構造3Dプリンターです。"
26 |
27 | - name: "Fraxinus5ts"
28 | designation: "Designed by @fukumay1"
29 | avatar: "/images/Fraxinus5ts.jpg"
30 | content: "Fraxinus5tsは310mm四方の印刷サイズを持つ自宅利用や省スペース工房で魅力的なCoreXY構造3Dプリンターです。主要なアルミフレームを汎用的なNFS5-2020を用い、従来より入手性や剛性を向上させました。"
31 |
32 | # don't create a separate page
33 | build:
34 | render: "never"
35 | ---
36 |
--------------------------------------------------------------------------------
/data/social.json:
--------------------------------------------------------------------------------
1 | {
2 | "main": [
3 | {
4 | "name": "X",
5 | "icon": "fab fa-x-twitter",
6 | "link": "https://x.com/fukumay1"
7 | },
8 | {
9 | "name": "github",
10 | "icon": "fab fa-github",
11 | "link": "https://github.com/Fraxinus-3D"
12 | }
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/data/theme.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors": {
3 | "default": {
4 | "theme_color": {
5 | "primary": "#121212",
6 | "body": "#fff",
7 | "border": "#eaeaea",
8 | "light": "#f6f6f6",
9 | "dark": "#040404"
10 | },
11 | "text_color": {
12 | "text": "#444444",
13 | "text-dark": "#040404",
14 | "text-light": "#717171"
15 | }
16 | },
17 | "darkmode": {
18 | "theme_color": {
19 | "primary": "#fff",
20 | "body": "#1c1c1c",
21 | "border": "#3E3E3E",
22 | "light": "#222222",
23 | "dark": "#fff"
24 | },
25 | "text_color": {
26 | "text": "#B4AFB6",
27 | "text-dark": "#fff",
28 | "text-light": "#B4AFB6"
29 | }
30 | }
31 | },
32 | "fonts": {
33 | "font_family": {
34 | "primary": "Heebo:wght@400;600",
35 | "primary_type": "sans-serif",
36 | "secondary": "Signika:wght@500;700",
37 | "secondary_type": "sans-serif"
38 | },
39 | "font_size": {
40 | "base": "16",
41 | "scale": "1.2"
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/fraxinus-3d/docs
2 |
3 | go 1.21
4 |
5 | require (
6 | github.com/gethugothemes/hugo-modules/accordion v0.0.0-20250512035231-bb1514d411e2 // indirect
7 | github.com/gethugothemes/hugo-modules/adsense v0.0.0-20250512035231-bb1514d411e2 // indirect
8 | github.com/gethugothemes/hugo-modules/components/announcement v0.0.0-20250512035231-bb1514d411e2 // indirect
9 | github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20250512035231-bb1514d411e2 // indirect
10 | github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20250512035231-bb1514d411e2 // indirect
11 | github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20250512035231-bb1514d411e2 // indirect
12 | github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20250512035231-bb1514d411e2 // indirect
13 | github.com/gethugothemes/hugo-modules/components/social-share v0.0.0-20250512035231-bb1514d411e2 // indirect
14 | github.com/gethugothemes/hugo-modules/gallery-slider v0.0.0-20250512035231-bb1514d411e2 // indirect
15 | github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20250512035231-bb1514d411e2 // indirect
16 | github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20250512035231-bb1514d411e2 // indirect
17 | github.com/gethugothemes/hugo-modules/images v0.0.0-20250512035231-bb1514d411e2 // indirect
18 | github.com/gethugothemes/hugo-modules/modal v0.0.0-20250512035231-bb1514d411e2 // indirect
19 | github.com/gethugothemes/hugo-modules/pwa v0.0.0-20250512035231-bb1514d411e2 // indirect
20 | github.com/gethugothemes/hugo-modules/search v0.0.0-20250512035231-bb1514d411e2 // indirect
21 | github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20250512035231-bb1514d411e2 // indirect
22 | github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20250512035231-bb1514d411e2 // indirect
23 | github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20250512035231-bb1514d411e2 // indirect
24 | github.com/gethugothemes/hugo-modules/shortcodes/button v0.0.0-20250512035231-bb1514d411e2 // indirect
25 | github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20250512035231-bb1514d411e2 // indirect
26 | github.com/gethugothemes/hugo-modules/tab v0.0.0-20250512035231-bb1514d411e2 // indirect
27 | github.com/gethugothemes/hugo-modules/table-of-contents v0.0.0-20250512035231-bb1514d411e2 // indirect
28 | github.com/gethugothemes/hugo-modules/videos v0.0.0-20250512035231-bb1514d411e2 // indirect
29 | github.com/hugomods/mermaid v0.1.4 // indirect
30 | github.com/zeon-studio/hugoplate v0.0.0-20250507095558-974f11b1e3ff // indirect
31 | )
32 |
--------------------------------------------------------------------------------
/i18n/en.yaml:
--------------------------------------------------------------------------------
1 | home: Home
2 | read_more: Read More
3 | send: Send
4 | related_posts: Related Posts
5 | categories: Categories
6 | tags: Tags
7 | toc: Table of Contents
8 | share: Share
9 | search_input_placeholder: Search Post...
10 | search_no_results: No results for
11 | search_initial_message: Type something to search..
12 | search_navigate: to navigate
13 | search_select: to select
14 | search_close: to close
15 |
--------------------------------------------------------------------------------
/i18n/ja.yaml:
--------------------------------------------------------------------------------
1 | home: Home
2 | read_more: Read More
3 | send: Send
4 | related_posts: Related Posts
5 | categories: Categories
6 | tags: Tags
7 | toc: Table of Contents
8 | share: Share
9 | search_input_placeholder: Search Post...
10 | search_no_results: No results for
11 | search_initial_message: Type something to search..
12 | search_navigate: to navigate
13 | search_select: to select
14 | search_close: to close
15 |
--------------------------------------------------------------------------------
/layouts/_default/list.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 | {{ partial "page-header" . }}
3 |
4 |
5 | {{ if .Content }}
6 | {{ partial "entry/content" . }}
7 | {{ end }}
8 |
9 | {{ range .RegularPages }}
10 | -
11 |
14 | {{ .Title }}
15 |
16 |
17 | {{ end }}
18 |
19 |
20 |
21 | {{ end }}
22 |
--------------------------------------------------------------------------------
/layouts/_default/single.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 | {{ partial "page-header" . }}
3 |
4 |
5 | {{ partial "entry/content" . }}
6 |
7 |
8 | {{ end }}
9 |
--------------------------------------------------------------------------------
/layouts/_default/terms.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 | {{ partial "page-header" . }}
3 |
4 |
5 |
41 | {{ end }}
42 |
--------------------------------------------------------------------------------
/layouts/docs/list.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 | {{ partial "page-header" . }}
3 |
4 |
5 |
6 |
7 |
8 |
9 | {{ $paginator:= .Paginate .RegularPages }}
10 | {{ range $paginator.Pages }}
11 |
12 | {{ partial "components/blog-card" . }}
13 |
14 | {{ end }}
15 |
16 | {{ partial "components/pagination.html" . }}
17 |
18 |
19 |
20 |
21 | {{ $widget:= site.Params.widgets.sidebar }}
22 | {{ partialCached "widgets/widget-wrapper" ( dict "Widgets" $widget "Scope" . ) }}
23 |
24 |
25 |
26 |
27 | {{ end }}
28 |
--------------------------------------------------------------------------------
/layouts/docs/single.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 |
3 |
4 |
5 |
6 | {{ $image:= .Params.image }}
7 | {{ if $image }}
8 |
9 | {{ partial "image" (dict "Src" $image "Context" .Page "Alt" .Title "Class" "w-full rounded") }}
10 |
11 | {{ end }}
12 |
13 | {{ .Title }}
14 |
15 |
47 |
48 | {{ partial "toc.html" (dict "Class" "blog" "Collapsed" false "TableOfContents" .TableOfContents ) }}
49 | {{ .Content }}
50 |
51 |
52 | {{ $tags:= .Params.tags }}
53 | {{ if $tags }}
54 |
55 |
{{ T "tags" }} :
56 |
67 |
68 | {{ end }}
69 |
70 |
{{ T "share" }} :
71 | {{ partial "social-share" (dict "Context" . "Class" "share-icons" "Title" .Title "Whatsapp" false "Telegram" false "Linkedin" false "Pinterest" false "Tumblr" false "Vk" false "Reddit" false) }}
72 |
73 |
74 |
75 | {{ if site.Config.Services.Disqus.Shortname }}
76 |
77 | {{ template "_internal/disqus.html" . }}
78 |
79 | {{ end }}
80 |
81 |
82 |
83 |
84 | {{ $related := .Site.RegularPages.Related . | first 10 }}
85 | {{ $related = $related | shuffle | first 3 }}
86 | {{ with $related }}
87 |
88 |
{{ T "related_posts" }}
89 |
90 | {{ range . }}
91 |
92 | {{ partial "components/blog-card" . }}
93 |
94 | {{ end }}
95 |
96 |
97 | {{ end }}
98 |
99 |
100 | {{ end }}
101 |
--------------------------------------------------------------------------------
/layouts/index.llms.txt:
--------------------------------------------------------------------------------
1 | # {{ .Site.Title }}
2 |
3 | > {{ .Site.Params.Description }}
4 |
5 | ## Articles
6 | {{ $yearMonthGroups := slice -}}
7 | {{ range where (where (sort (.Site.GetPage "/docs").Pages "Date" "desc") "Draft" "ne" true) "Sitemap.Disable" "ne" true -}}
8 | {{ $yearMonth := .Date.Format "2006/01" -}}
9 | {{ if not (in $yearMonthGroups $yearMonth) }}
10 | * {{ $yearMonth -}}
11 | {{ $yearMonthGroups = $yearMonthGroups | append $yearMonth -}}
12 | {{ end }}
13 | * [{{ .Title }}]({{ .Permalink }})
14 | {{- end }}
15 |
16 | ## Others
17 |
18 | {{- $baseURL := .Site.BaseURL | strings.TrimSuffix "/" }}
19 | * [About]({{ $baseURL }}/about/): Fraxinus Projectについて
20 |
--------------------------------------------------------------------------------
/layouts/partials/analytics/cloudflare-analytics.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/layouts/partials/components/breadcrumb.html:
--------------------------------------------------------------------------------
1 | {{ $context := .Context }}
2 | {{ $class := .Class }}
3 | {{ $base := site.Home.RelPermalink }}
4 |
5 |
6 |
31 |
--------------------------------------------------------------------------------
/layouts/partials/components/language-switcher.html:
--------------------------------------------------------------------------------
1 |
2 | {{ if hugo.IsMultilingual }}
3 | {{ $class := .Class }}
4 | {{ $context := .Context }}
5 | {{ $pageLang := $context.Lang }}
6 | {{ $pageTranslations := newScratch }}
7 | {{/* First, fill all translations of the Home page (failsafe) */}}
8 | {{ range site.Home.AllTranslations }}
9 | {{ $pageTranslations.Set .Language.Lang .RelPermalink }}
10 | {{ end }}
11 | {{/* Second, if a translation exists for the current page for the target language, replace failsafe */}}
12 | {{ range $context.AllTranslations }}
13 | {{ $pageTranslations.Set .Language.Lang .RelPermalink }}
14 | {{ end }}
15 |
16 |
35 | {{ end }}
36 |
--------------------------------------------------------------------------------
/layouts/partials/entry/content.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{ .Content }}
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/layouts/partials/essentials/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
10 |
11 |
12 | {{ partialCached "favicon" . }}
13 |
14 |
15 |
16 | {{ partialCached "manifest" . }}
17 |
18 |
19 |
20 | {{ partialCached "site-verifications.html" . }}
21 |
22 |
23 |
24 | {{ partial "basic-seo.html" . }}
25 |
26 |
27 |
28 | {{ partialCached "custom-script.html" . }}
29 |
30 |
31 |
32 | {{ if and site.Config.Services.GoogleAnalytics.ID (ne site.Config.Services.GoogleAnalytics.ID "G-MEASUREMENT_ID") }}
33 | {{ template "_internal/google_analytics.html" . }}
34 | {{ end }}
35 |
36 |
37 |
38 | {{ partialCached "gtm.html" . }}
39 |
40 |
41 |
42 | {{ partial "analytics/cloudflare-analytics.html" . }}
43 |
44 |
45 |
46 | {{ partial "search-index.html" . }}
47 |
48 |
49 |
50 | {{/* {{ partialCached "matomo-analytics.html" . }} */}}
51 |
52 |
53 | {{/* {{ partialCached "baidu-analytics.html" . }} */}}
54 |
55 |
56 | {{/* {{ partialCached "plausible-analytics.html" . }} */}}
57 |
58 |
59 | {{/* {{ partialCached "counter-analytics.html" . }} */}}
60 |
61 |
62 | {{/* {{ partialCached "crisp-chat.html" . }} */}}
63 |
64 |
65 | {{ partial "mermaid/assets/js" . }}
66 |
67 |
68 | {{ if .Params.redirect }}
69 |
70 | {{ end }}
71 |
--------------------------------------------------------------------------------
/layouts/partials/svg/content/upload.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/mise.toml:
--------------------------------------------------------------------------------
1 | [tools]
2 | go = "1.24.3"
3 | node = "22.14.0"
4 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "fraxinus-docs",
3 | "description": "Fraxinus Project Documentation",
4 | "version": "0.1.0",
5 | "license": "MIT",
6 | "author": "Fraxinus Project",
7 | "scripts": {
8 | "dev": "hugo server --bind=0.0.0.0 --watch --minify --gc --cleanDestinationDir",
9 | "build": "./scripts/build.sh",
10 | "preview": "hugo server --disableFastRender --navigateToChanged --templateMetrics --templateMetricsHints --watch --forceSyncStatic -e production --minify",
11 | "update-modules": "node ./scripts/clearModules.js && hugo mod clean --all && hugo mod get -u ./... && hugo mod tidy",
12 | "remove-darkmode": "node ./scripts/removeDarkmode.js && yarn format",
13 | "project-setup": "node ./scripts/projectSetup.js",
14 | "theme-setup": "node ./scripts/themeSetup.js",
15 | "update-theme": "node ./scripts/themeUpdate.js",
16 | "format": "prettier -w ."
17 | },
18 | "devDependencies": {
19 | "@tailwindcss/cli": "^4.1.6",
20 | "@tailwindcss/forms": "^0.5.10",
21 | "@tailwindcss/typography": "^0.5.16",
22 | "prettier": "^3.5.3",
23 | "prettier-plugin-go-template": "0.0.15",
24 | "prettier-plugin-tailwindcss": "^0.6.11",
25 | "tailwindcss": "^4.1.6"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/scripts/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 |
4 | BASE_URL="https://fraxinus.jp/"
5 | if [[ $HUGO_ENV != "production" ]] && [[ -n $CF_PAGES_URL ]]; then
6 | BASE_URL="$CF_PAGES_URL"
7 | fi
8 |
9 | echo "Using base url: $BASE_URL"
10 |
11 | hugo --cleanDestinationDir --minify --enableGitInfo --gc --templateMetrics --templateMetricsHints --forceSyncStatic \
12 | --baseURL "$BASE_URL" -d public
13 |
--------------------------------------------------------------------------------
/scripts/clearModules.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 |
3 | const clearModules = (filePath) => {
4 | if (fs.existsSync(filePath)) {
5 | let fileContent = fs.readFileSync(filePath, "utf8");
6 | fileContent = fileContent.replace(/require\s*\([\s\S]*?\)/, "");
7 | fs.writeFileSync(filePath, fileContent, "utf8");
8 | } else {
9 | console.log("File does not exist.");
10 | }
11 | };
12 |
13 | clearModules("go.mod");
14 | clearModules("exampleSite/go.mod");
15 |
--------------------------------------------------------------------------------
/scripts/projectSetup.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 | const path = require("path");
3 |
4 | const toggleComment = ({ filepath, regex }) => {
5 | let updatedContent = fs.readFileSync(filepath, "utf8");
6 | const match = updatedContent.match(regex);
7 |
8 | if (filepath.endsWith("hugo.toml")) {
9 | updatedContent = updatedContent.replace(
10 | 'baseURL = "https://example.org"',
11 | 'baseURL = "/"',
12 | );
13 | }
14 |
15 | if (match) {
16 | const matchedContent = match[0];
17 | const hasComment = matchedContent.startsWith("# ");
18 | if (hasComment) {
19 | updatedContent = updatedContent.replace(
20 | regex,
21 | matchedContent.replace("# ", ""),
22 | );
23 | fs.writeFileSync(filepath, updatedContent, "utf8");
24 | } else {
25 | const hasLineBreak = matchedContent.includes("\n");
26 | if (hasLineBreak) {
27 | const content = matchedContent
28 | .split("\n")
29 | .map((line) => "# " + line)
30 | .join("\n");
31 | updatedContent = updatedContent.replace(regex, content);
32 | fs.writeFileSync(filepath, updatedContent, "utf8");
33 | }
34 | }
35 | }
36 | };
37 |
38 | const getFolderName = (rootFolder) => {
39 | const configPath = path.join(rootFolder, "exampleSite/hugo.toml");
40 | const getConfig = fs.readFileSync(configPath, "utf8");
41 | const match = getConfig.match(/theme\s*=\s*\[?"([^"\]]+)"\]?/);
42 | let selectedTheme = null;
43 | if (match && match[1]) {
44 | selectedTheme = match[1];
45 | }
46 | return selectedTheme;
47 | };
48 |
49 | const deleteFolder = (folderPath) => {
50 | if (fs.existsSync(folderPath)) {
51 | fs.rmSync(folderPath, { recursive: true, force: true });
52 | }
53 | };
54 |
55 | const createNewFolder = (rootFolder, folderName) => {
56 | const newFolder = path.join(rootFolder, folderName);
57 | fs.mkdirSync(newFolder, { recursive: true });
58 | return newFolder;
59 | };
60 |
61 | const iterateFilesAndFolders = (rootFolder, { destinationRoot }) => {
62 | const directory = path.join(rootFolder);
63 | const items = fs.readdirSync(directory, { withFileTypes: true });
64 | items.forEach((item) => {
65 | if (item.isDirectory()) {
66 | createNewFolder(destinationRoot, item.name);
67 | iterateFilesAndFolders(path.join(directory, item.name), {
68 | currentFolder: item.name,
69 | destinationRoot: path.join(destinationRoot, item.name),
70 | });
71 | } else {
72 | const sourceFile = path.join(directory, item.name);
73 | const destinationFile = path.join(destinationRoot, item.name);
74 | fs.renameSync(sourceFile, destinationFile);
75 | }
76 | });
77 | };
78 |
79 | const setupProject = () => {
80 | const rootFolder = path.join(__dirname, "../");
81 | if (!fs.existsSync(path.join(rootFolder, "themes"))) {
82 | // remove this part if you don't using theme demo as a module
83 | [
84 | {
85 | filepath: path.join(rootFolder, "exampleSite/hugo.toml"),
86 | regex: /^.*theme\s*=\s*("[^"\]]+"|\S+)/m,
87 | },
88 | {
89 | filepath: path.join(
90 | rootFolder,
91 | "exampleSite/config/_default/module.toml",
92 | ),
93 | regex: /\[\[imports\]\]\s*\r?\npath = "([^"]+)"/,
94 | },
95 | ].forEach(toggleComment);
96 |
97 | const folderList = ["layouts", "assets", "static", "tailwind-plugin"];
98 | const folderName = getFolderName(rootFolder);
99 | const newFolderName = createNewFolder(
100 | path.join(rootFolder, "themes"),
101 | folderName,
102 | );
103 |
104 | folderList.forEach((folder) => {
105 | const source = path.join(rootFolder, folder);
106 | const destination = path.join(newFolderName, folder);
107 | if (fs.existsSync(source)) {
108 | fs.mkdirSync(destination, { recursive: true });
109 | iterateFilesAndFolders(source, {
110 | currentFolder: folder,
111 | destinationRoot: destination,
112 | });
113 | deleteFolder(source);
114 | }
115 | });
116 |
117 | const exampleSite = path.join(rootFolder, "exampleSite");
118 | iterateFilesAndFolders(exampleSite, { destinationRoot: rootFolder });
119 | deleteFolder(exampleSite);
120 | } else {
121 | console.log("Project already setup");
122 | }
123 | };
124 |
125 | setupProject();
126 |
--------------------------------------------------------------------------------
/scripts/removeDarkmode.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 | const path = require("path");
3 |
4 | const rootDirs = ["assets/css", "layouts"];
5 | const configFiles = [
6 | {
7 | filePath: "exampleSite/data/theme.json",
8 | patterns: ["colors.darkmode"],
9 | },
10 | ];
11 |
12 | // asset paths
13 | const deleteAssetList = [
14 | "exampleSite/assets/images/logo-darkmode.png",
15 | "layouts/partials/components/theme-switcher.html",
16 | ];
17 |
18 | const filePaths = [
19 | {
20 | filePath: "layouts/partials/essentials/header.html",
21 | patterns: [
22 | '{{\\s*partial\\s*"components\\/theme-switcher"\\s*\\([^)]*\\)\\s*}}',
23 | ],
24 | },
25 | ];
26 |
27 | filePaths.forEach(({ filePath, patterns }) =>
28 | removeDarkModeFromFiles(filePath, patterns),
29 | );
30 |
31 | deleteAssetList.forEach((asset) => {
32 | try {
33 | fs.unlinkSync(asset);
34 | console.log(`${path.basename(asset)} deleted successfully!`);
35 | } catch (error) {
36 | console.error(`${asset} not found`);
37 | }
38 | });
39 |
40 | rootDirs.forEach(removeDarkModeFromPages);
41 | configFiles.forEach(removeDarkMode);
42 |
43 | function removeDarkModeFromFiles(filePath, regexPatterns) {
44 | const fileContent = fs.readFileSync(filePath, "utf8");
45 | let updatedContent = fileContent;
46 | regexPatterns.forEach((pattern) => {
47 | const regex = new RegExp(pattern, "g");
48 | updatedContent = updatedContent.replace(regex, "");
49 | });
50 |
51 | fs.writeFileSync(filePath, updatedContent, "utf8");
52 | }
53 |
54 | // like html file
55 | function removeDarkModeFromPages(directoryPath) {
56 | const files = fs.readdirSync(directoryPath);
57 |
58 | files.forEach((file) => {
59 | const filePath = path.join(directoryPath, file);
60 | const stats = fs.statSync(filePath);
61 | if (stats.isDirectory()) {
62 | removeDarkModeFromPages(filePath);
63 | } else if (stats.isFile()) {
64 | removeDarkModeFromFiles(filePath, [
65 | '(?:(?!["])\\S)*dark:(?:(?![,;"])\\S)*',
66 | "@apply?(\\s)*;",
67 | ]);
68 | }
69 | });
70 | }
71 |
72 | function removeDarkMode(configFile) {
73 | const { filePath, patterns } = configFile;
74 | const contentFile = JSON.parse(fs.readFileSync(filePath, "utf8"));
75 | patterns.forEach((pattern) => deleteNestedProperty(contentFile, pattern));
76 | fs.writeFileSync(filePath, JSON.stringify(contentFile));
77 | }
78 |
79 | function deleteNestedProperty(obj, propertyPath) {
80 | const properties = propertyPath.split(".");
81 | let currentObj = obj;
82 | for (let i = 0; i < properties.length - 1; i++) {
83 | const property = properties[i];
84 | if (currentObj.hasOwnProperty(property)) {
85 | currentObj = currentObj[property];
86 | } else {
87 | return; // Property not found, no need to continue
88 | }
89 | }
90 | delete currentObj[properties[properties.length - 1]];
91 | }
92 |
--------------------------------------------------------------------------------
/scripts/run-build-in-docker.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -eu
3 |
4 | SRC_DIR=$(cd $(dirname ${BASH_SOURCE:-$0})/../; pwd)
5 |
6 | . ${SRC_DIR}/.env
7 |
8 | BUILD_COMMAND="build --minify --enableGitInfo --gc -d public"
9 |
10 | if [ "$(uname -s)" = "Linux" ]; then
11 | docker run --rm -v /etc/group:/etc/group:ro -v /etc/passwd:/etc/passwd:ro -u $(id -u $USER):$(id -g $USER) -v ${PWD}:/src peaceiris/hugo:v${HUGO_VERSION} "" ${BUILD_COMMAND}
12 | elif [ "$(uname -s)" = "Darwin" ]; then
13 | docker run --rm -v ${PWD}:/src peaceiris/hugo:v${HUGO_VERSION} "" ${BUILD_COMMAND}
14 | fi
15 |
--------------------------------------------------------------------------------
/scripts/run-server-in-docker.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -eu
3 |
4 | SRC_DIR=$(cd $(dirname ${BASH_SOURCE:-$0})/../; pwd)
5 |
6 | . ${SRC_DIR}/.env
7 |
8 | SERVER_COMMAND="server --bind=0.0.0.0 --watch --minify --gc"
9 |
10 | if [ "$(uname -s)" = "Linux" ]; then
11 | docker run --rm -v /etc/group:/etc/group:ro -v /etc/passwd:/etc/passwd:ro -u $(id -u $USER):$(id -g $USER) -p 1313:1313 -v ${PWD}:/src peaceiris/hugo:v${HUGO_VERSION} ${SERVER_COMMAND}
12 | elif [ "$(uname -s)" = "Darwin" ]; then
13 | docker run --rm -p 1313:1313 -v ${PWD}:/src peaceiris/hugo:v${HUGO_VERSION} ${SERVER_COMMAND}
14 | fi
15 |
--------------------------------------------------------------------------------
/scripts/run-server.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | cd /d %~dp0\..
4 |
5 | hugo.exe server --bind=0.0.0.0 --watch --minify --gc
6 | pause
7 |
--------------------------------------------------------------------------------
/scripts/run-server.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -eu
3 |
4 | SRC_DIR=$(cd $(dirname ${BASH_SOURCE:-$0})/../; pwd)
5 | PATH=$PATH:$SRC_DIR/bin
6 | hugo server --bind=0.0.0.0 --watch --minify --gc
7 |
--------------------------------------------------------------------------------
/scripts/themeSetup.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 | const path = require("path");
3 |
4 | const toggleComment = ({ filepath, regex }) => {
5 | let updatedContent = fs.readFileSync(filepath, "utf8");
6 | const match = updatedContent.match(regex);
7 |
8 | if (filepath.endsWith("hugo.toml")) {
9 | updatedContent = updatedContent.replace(
10 | 'baseURL = "/"',
11 | 'baseURL = "https://example.org"',
12 | );
13 | }
14 |
15 | if (match) {
16 | const matchedContent = match[0];
17 | const hasComment = matchedContent.startsWith("# ");
18 | if (hasComment) {
19 | const hasLineBreak = matchedContent.includes("\n");
20 | if (hasLineBreak) {
21 | updatedContent = updatedContent.replace(
22 | regex,
23 | matchedContent.replace(/# /gm, ""),
24 | );
25 | fs.writeFileSync(filepath, updatedContent, "utf8");
26 | }
27 | } else {
28 | updatedContent = updatedContent.replace(regex, "# " + matchedContent);
29 | fs.writeFileSync(filepath, updatedContent, "utf8");
30 | }
31 | }
32 | };
33 |
34 | const createNewFolder = (rootFolder, folderName) => {
35 | const newFolder = path.join(rootFolder, folderName);
36 | fs.mkdirSync(newFolder, { recursive: true });
37 | return newFolder;
38 | };
39 |
40 | const deleteFolder = (folderPath) => {
41 | if (fs.existsSync(folderPath)) {
42 | fs.rmSync(folderPath, { recursive: true, force: true });
43 | }
44 | };
45 |
46 | const getFolderName = (rootFolder) => {
47 | const configPath = path.join(rootFolder, "exampleSite/hugo.toml");
48 | const getConfig = fs.readFileSync(configPath, "utf8");
49 | const match = getConfig.match(/theme\s*=\s*\[?"([^"\]]+)"\]?/);
50 | let selectedTheme = null;
51 | if (match && match[1]) {
52 | selectedTheme = match[1];
53 | }
54 | return selectedTheme;
55 | };
56 |
57 | const iterateFilesAndFolders = (rootFolder, { destinationRoot }) => {
58 | const directory = path.join(rootFolder);
59 | const items = fs.readdirSync(directory, { withFileTypes: true });
60 | items.forEach((item) => {
61 | if (item.isDirectory()) {
62 | createNewFolder(destinationRoot, item.name);
63 | iterateFilesAndFolders(path.join(directory, item.name), {
64 | currentFolder: item.name,
65 | destinationRoot: path.join(destinationRoot, item.name),
66 | });
67 | } else {
68 | const sourceFile = path.join(directory, item.name);
69 | const destinationFile = path.join(destinationRoot, item.name);
70 | fs.renameSync(sourceFile, destinationFile);
71 | }
72 | });
73 | };
74 |
75 | const setupTheme = () => {
76 | const rootFolder = path.join(__dirname, "../");
77 |
78 | if (!fs.existsSync(path.join(rootFolder, "exampleSite"))) {
79 | // remove this part if you don't using theme demo as a module
80 | [
81 | {
82 | filepath: path.join(rootFolder, "config/_default/module.toml"),
83 | regex: /# \[\[imports\]\]\s*\r?\n# path = "([^"]+)"/,
84 | },
85 | {
86 | filepath: path.join(rootFolder, "hugo.toml"),
87 | regex: /^.*theme\s*=\s*("[^"\]]+"|\S+)/m,
88 | },
89 | ].forEach(toggleComment);
90 |
91 | const includesFiles = [
92 | "go.mod",
93 | "hugo.toml",
94 | "assets",
95 | "config",
96 | "data",
97 | "content",
98 | "i18n",
99 | "static",
100 | "tailwind-plugin",
101 | ];
102 |
103 | const folder = createNewFolder(rootFolder, "exampleSite");
104 |
105 | fs.readdirSync(rootFolder, { withFileTypes: true }).forEach((file) => {
106 | if (includesFiles.includes(file.name)) {
107 | if (file.isDirectory()) {
108 | const destination = path.join(rootFolder, "exampleSite", file.name);
109 | fs.mkdirSync(destination, { recursive: true });
110 | iterateFilesAndFolders(path.join(rootFolder, file.name), {
111 | destinationRoot: destination,
112 | });
113 | deleteFolder(path.join(rootFolder, file.name));
114 | } else {
115 | fs.renameSync(
116 | path.join(rootFolder, file.name),
117 | path.join(folder, file.name),
118 | );
119 | }
120 | }
121 | });
122 |
123 | const themes = path.join(rootFolder, "themes");
124 | iterateFilesAndFolders(path.join(themes, getFolderName(rootFolder)), {
125 | destinationRoot: rootFolder,
126 | });
127 | deleteFolder(themes);
128 | }
129 | };
130 |
131 | setupTheme();
132 |
--------------------------------------------------------------------------------
/scripts/themeUpdate.js:
--------------------------------------------------------------------------------
1 | const { exec } = require("child_process");
2 |
3 | const repositoryUrl = "https://github.com/zeon-studio/hugoplate";
4 | const localDirectory = "./themes/hugoplate";
5 | const foldersToFetch = ["assets", "layouts"];
6 | const foldersToSkip = ["exampleSite"];
7 |
8 | const fetchFolder = (folder) => {
9 | exec(
10 | `curl -L ${repositoryUrl}/tarball/main | tar -xz --strip-components=1 --directory=${localDirectory} --exclude=$(curl -sL ${repositoryUrl}/tarball/main | tar -tz | grep -E "/(${foldersToSkip.join(
11 | "|",
12 | )})/") */${folder}`,
13 | );
14 | };
15 |
16 | // Fetch each specified folder
17 | foldersToFetch.forEach((folder) => {
18 | fetchFolder(folder);
19 | });
20 |
--------------------------------------------------------------------------------
/scripts/update_lastmod_date.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -eu
3 |
4 | PUBLISH_DATE=$(date '+%Y-%m-%dT%H:%M:%S%z' | sed -E 's/0900$/09:00/g')
5 |
6 | echo "$1 ($PUBLISH_DATE)"
7 | sed -E 's/lastmod: [0-9]{4}-.*\+[0-9]{2}:[0-9]{2}/lastmod: '$PUBLISH_DATE'/g' $1 > /tmp/temp.md
8 | cp /tmp/temp.md $1
9 |
10 | # 使用例
11 | # $ ./scripts/update_lastmod_date.sh ./content/docs/assembly/step1.md
--------------------------------------------------------------------------------
/scripts/update_publish_date.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -eu
3 |
4 | PUBLISH_DATE=$(date '+%Y-%m-%dT%H:%M:%S%z' | sed -E 's/0900$/09:00/g')
5 |
6 | echo "$1 ($PUBLISH_DATE)"
7 | sed -E 's/date: [0-9]{4}-.*\+[0-9]{2}:[0-9]{2}/date: '$PUBLISH_DATE'/g' $1 > /tmp/temp.md
8 | cp /tmp/temp.md $1
9 |
10 | # 使用例
11 | # $ ./scripts/update_publish_date.sh ./content/docs/assembly/step1.md
--------------------------------------------------------------------------------
/static/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/favicon.png
--------------------------------------------------------------------------------
/static/favicon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/static/images/Fraxinus-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus-1.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus-2.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus-3.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus-4.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus-5.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus-photo-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus-photo-1.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus-photo-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus-photo-2.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus0-front-view.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus0-front-view.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus00-photo-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00-photo-1.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus00-photo-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00-photo-2.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus00.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus00w-photo-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00w-photo-1.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus00w.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00w.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus00w2-compare.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00w2-compare.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus00w2-photo-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00w2-photo-1.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus00w2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00w2.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus00w3-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00w3-1.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus00w3-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00w3-2.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus00w3-photo-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus00w3-photo-1.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus0w-compare.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus0w-compare.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus0w-rev1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus0w-rev1.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus0w-rev2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus0w-rev2.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus1fg-detail.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus1fg-detail.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus1fg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus1fg.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus1k.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus1k.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus1kc-photo-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus1kc-photo-1.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus1kc2-photo-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus1kc2-photo-1.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus1tc2-photo-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus1tc2-photo-1.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus1tcl.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus1tcl.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus1tcl_1tc2_1ksc.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus1tcl_1tc2_1ksc.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus3e.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus3e.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus3ec-photo-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus3ec-photo-1.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus3fg-detail.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus3fg-detail.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus3fg-photo-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus3fg-photo-1.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus3fg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus3fg.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus3tc-photo-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus3tc-photo-1.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus3tcl.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus3tcl.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus5fg-detail.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus5fg-detail.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus5fg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus5fg.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus5ts.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus5ts.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus9fg-photo-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus9fg-photo-1.jpg
--------------------------------------------------------------------------------
/static/images/Fraxinus9fg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/Fraxinus9fg.jpg
--------------------------------------------------------------------------------
/static/images/community/Fraxinus00cw.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/Fraxinus00cw.jpg
--------------------------------------------------------------------------------
/static/images/community/Fraxinus00tw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/Fraxinus00tw.png
--------------------------------------------------------------------------------
/static/images/community/Fraxinus1pk.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/Fraxinus1pk.jpg
--------------------------------------------------------------------------------
/static/images/community/Fraxinus5ts_DAKSH_tool_changer.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/Fraxinus5ts_DAKSH_tool_changer.jpg
--------------------------------------------------------------------------------
/static/images/community/Fraxinus5ts_IDEX.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/Fraxinus5ts_IDEX.jpg
--------------------------------------------------------------------------------
/static/images/community/Fukumi.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/Fukumi.jpg
--------------------------------------------------------------------------------
/static/images/community/fraxinus-group-photo-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/fraxinus-group-photo-1.jpg
--------------------------------------------------------------------------------
/static/images/community/fraxinus-group-photo-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/fraxinus-group-photo-2.jpg
--------------------------------------------------------------------------------
/static/images/community/fraxinus-group-photo-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/fraxinus-group-photo-3.jpg
--------------------------------------------------------------------------------
/static/images/community/fraxinus-group-photo-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/fraxinus-group-photo-4.jpg
--------------------------------------------------------------------------------
/static/images/community/prokosinus00.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/community/prokosinus00.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-appendix-electronics-connection.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-appendix-electronics-connection.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-appendix-nut-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-appendix-nut-1.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-appendix-nut-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-appendix-nut-2.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-appendix-nut-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-appendix-nut-3.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-appendix-nut-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-appendix-nut-4.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-appendix-nut-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-appendix-nut-5.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-appendix-nut-6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-appendix-nut-6.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-appendix-nut-7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-appendix-nut-7.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-1-print-colored.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-1-print-colored.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-1-print-jig.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-1-print-jig.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-1-print-slicer.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-1-print-slicer.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-1-print-stl.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-1-print-stl.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-1-procurement-list.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-1-procurement-list.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-2-parts-0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-0.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-2-parts-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-1.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-2-parts-10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-10.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-2-parts-11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-11.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-2-parts-12.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-12.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-2-parts-13.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-13.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-2-parts-14.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-14.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-2-parts-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-2.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-2-parts-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-3.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-2-parts-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-4.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-2-parts-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-5.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-2-parts-6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-6.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-2-parts-7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-7.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-2-parts-8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-8.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-2-parts-9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-2-parts-9.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-3-frame-0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-3-frame-0.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-3-frame-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-3-frame-1.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-3-frame-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-3-frame-2.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-3-frame-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-3-frame-3.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-3-frame-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-3-frame-4.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-3-frame-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-3-frame-5.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-3-frame-6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-3-frame-6.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-3-frame-7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-3-frame-7.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-3-frame-8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-3-frame-8.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-4-teardown-kp3s-0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-0.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-4-teardown-kp3s-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-1.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-4-teardown-kp3s-10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-10.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-4-teardown-kp3s-11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-11.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-4-teardown-kp3s-12.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-12.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-4-teardown-kp3s-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-2.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-4-teardown-kp3s-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-3.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-4-teardown-kp3s-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-4.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-4-teardown-kp3s-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-5.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-4-teardown-kp3s-6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-6.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-4-teardown-kp3s-7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-7.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-4-teardown-kp3s-8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-8.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-4-teardown-kp3s-9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-4-teardown-kp3s-9.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-5-z-bed-0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-0.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-5-z-bed-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-1.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-5-z-bed-10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-10.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-5-z-bed-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-2.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-5-z-bed-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-3.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-5-z-bed-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-4.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-5-z-bed-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-5.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-5-z-bed-6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-6.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-5-z-bed-7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-7.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-5-z-bed-8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-8.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-5-z-bed-9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-5-z-bed-9.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-6-x-carriage-0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-6-x-carriage-0.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-6-x-carriage-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-6-x-carriage-1.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-6-x-carriage-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-6-x-carriage-2.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-6-x-carriage-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-6-x-carriage-3.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-6-x-carriage-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-6-x-carriage-4.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-6-x-carriage-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-6-x-carriage-5.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-6-x-carriage-6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-6-x-carriage-6.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-7-xy-gantry-0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-7-xy-gantry-0.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-7-xy-gantry-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-7-xy-gantry-1.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-7-xy-gantry-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-7-xy-gantry-2.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-7-xy-gantry-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-7-xy-gantry-3.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-7-xy-gantry-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-7-xy-gantry-4.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-7-xy-gantry-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-7-xy-gantry-5.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-7-xy-gantry-6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-7-xy-gantry-6.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-8-belt-head-0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-8-belt-head-0.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-8-belt-head-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-8-belt-head-1.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-8-belt-head-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-8-belt-head-2.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-8-belt-head-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-8-belt-head-3.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-8-belt-head-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-8-belt-head-4.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-8-belt-head-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-8-belt-head-5.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-8-belt-head-6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-8-belt-head-6.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-8-belt-head-7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-8-belt-head-7.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-9-electronics-0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-9-electronics-0.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-9-electronics-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-9-electronics-1.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-9-electronics-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-9-electronics-2.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-9-electronics-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-9-electronics-3.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-9-electronics-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-9-electronics-4.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-9-electronics-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-9-electronics-5.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-9-electronics-6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-9-electronics-6.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-9-electronics-7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-9-electronics-7.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-assembly-9-electronics-8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-assembly-9-electronics-8.jpg
--------------------------------------------------------------------------------
/static/images/fraxinus-roadmap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/fraxinus-roadmap.png
--------------------------------------------------------------------------------
/static/images/logo_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/logo_black.png
--------------------------------------------------------------------------------
/static/images/logo_navbar_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/logo_navbar_black.png
--------------------------------------------------------------------------------
/static/images/logo_navbar_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/logo_navbar_white.png
--------------------------------------------------------------------------------
/static/images/logo_simple_black.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/static/images/logo_simple_white.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/static/images/logo_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Fraxinus-3D/docs/945d57e9652d5842932fb0a75ea725712893803a/static/images/logo_white.png
--------------------------------------------------------------------------------
/tailwind-plugin/tw-bs-grid.js:
--------------------------------------------------------------------------------
1 | import plugin from "tailwindcss/plugin";
2 |
3 | (function () {
4 | "use strict";
5 | module.exports = plugin.withOptions(() => {
6 | return ({ addComponents }) => {
7 | const gridColumns = 12;
8 | const gridGutterWidth = "1.5rem";
9 | const gridGutters = {
10 | 0: "0",
11 | 1: "0.25rem",
12 | 2: "0.5rem",
13 | 3: "1rem",
14 | 4: "1.5rem",
15 | 5: "3rem",
16 | };
17 | const respectImportant = true;
18 | const columns = Array.from({ length: gridColumns }, (_, i) => i + 1);
19 | const rowColsSteps = columns.slice(0, Math.floor(gridColumns / 2));
20 |
21 | // row
22 | addComponents(
23 | {
24 | ".row": {
25 | "--bs-gutter-x": gridGutterWidth,
26 | "--bs-gutter-y": 0,
27 | display: "flex",
28 | flexWrap: "wrap",
29 | marginTop: "calc(var(--bs-gutter-y) * -1)",
30 | marginRight: "calc(var(--bs-gutter-x) / -2)",
31 | marginLeft: "calc(var(--bs-gutter-x) / -2)",
32 | "& > *": {
33 | boxSizing: "border-box",
34 | flexShrink: 0,
35 | width: "100%",
36 | maxWidth: "100%",
37 | paddingRight: "calc(var(--bs-gutter-x) / 2)",
38 | paddingLeft: "calc(var(--bs-gutter-x) / 2)",
39 | marginTop: "var(--bs-gutter-y)",
40 | },
41 | },
42 | },
43 | { respectImportant },
44 | );
45 |
46 | // columns
47 | addComponents(
48 | [
49 | {
50 | ".col": { flex: "1 0 0%" },
51 | ".row-cols-auto": { "& > *": { flex: "0 0 auto", width: "auto" } },
52 | },
53 | ...rowColsSteps.map((num) => ({
54 | [`.row-cols-${num}`]: {
55 | "& > *": { flex: "0 0 auto", width: `${100 / num}%` },
56 | },
57 | })),
58 | { ".col-auto": { flex: "0 0 auto", width: "auto" } },
59 | ...columns.map((num) => ({
60 | [`.col-${num}`]: {
61 | flex: "0 0 auto",
62 | width: `${(100 / gridColumns) * num}%`,
63 | },
64 | })),
65 | ],
66 | { respectImportant },
67 | );
68 |
69 | // offset
70 | addComponents(
71 | [0, ...columns.slice(0, -1)].map((num) => ({
72 | [`.offset-${num}`]: { marginLeft: `${(100 / gridColumns) * num}%` },
73 | })),
74 | { respectImportant },
75 | );
76 |
77 | // gutters
78 | if (Object.keys(gridGutters).length) {
79 | const gutterComponents = Object.entries(gridGutters).reduce(
80 | (acc, [key, value]) => {
81 | acc[`.g-${key}`] = {
82 | "--bs-gutter-x": value,
83 | "--bs-gutter-y": value,
84 | };
85 | acc[`.gx-${key}`] = { "--bs-gutter-x": value };
86 | acc[`.gy-${key}`] = { "--bs-gutter-y": value };
87 | return acc;
88 | },
89 | {},
90 | );
91 | addComponents(gutterComponents, { respectImportant });
92 | }
93 |
94 | // order
95 | addComponents(
96 | [
97 | {
98 | ".order-first": { order: "-1" },
99 | ".order-last": { order: gridColumns + 1 },
100 | },
101 | ...[0, ...columns].map((num) => ({
102 | [`.order-${num}`]: { order: String(num) },
103 | })),
104 | ],
105 | { respectImportant },
106 | );
107 | };
108 | });
109 | })();
110 |
--------------------------------------------------------------------------------
/themes/hugoplate/assets/css/base.css:
--------------------------------------------------------------------------------
1 | html {
2 | @apply text-base-sm md:text-base;
3 | }
4 |
5 | body {
6 | @apply bg-body text-base dark:bg-darkmode-body font-primary font-normal leading-relaxed text-text dark:text-darkmode-text;
7 | }
8 |
9 | h1,
10 | h2,
11 | h3,
12 | h4,
13 | h5,
14 | h6 {
15 | @apply font-secondary font-bold leading-tight text-text-dark dark:text-darkmode-text-dark;
16 | }
17 |
18 | h1,
19 | .h1 {
20 | @apply text-h1-sm md:text-h1;
21 | }
22 |
23 | h2,
24 | .h2 {
25 | @apply text-h2-sm md:text-h2;
26 | }
27 |
28 | h3,
29 | .h3 {
30 | @apply text-h3-sm md:text-h3;
31 | }
32 |
33 | h4,
34 | .h4 {
35 | @apply text-h4;
36 | }
37 |
38 | h5,
39 | .h5 {
40 | @apply text-h5;
41 | }
42 |
43 | h6,
44 | .h6 {
45 | @apply text-h6;
46 | }
47 |
48 | b,
49 | strong {
50 | @apply font-semibold;
51 | }
52 |
53 | code {
54 | @apply after:border-none;
55 | }
56 |
57 | blockquote > p {
58 | @apply !my-0;
59 | }
60 |
--------------------------------------------------------------------------------
/themes/hugoplate/assets/css/buttons.css:
--------------------------------------------------------------------------------
1 | .btn {
2 | @apply inline-block rounded border border-transparent px-5 py-2 font-semibold capitalize transition;
3 | }
4 |
5 | .btn-sm {
6 | @apply rounded-sm px-4 py-1.5 text-sm;
7 | }
8 |
9 | .btn-primary {
10 | @apply border-primary bg-primary dark:border-darkmode-primary dark:text-text-dark text-white dark:bg-darkmode-primary;
11 | }
12 |
13 | .btn-outline-primary {
14 | @apply border-dark text-text-dark hover:bg-dark dark:hover:text-text-dark bg-transparent hover:text-white dark:border-darkmode-primary dark:text-white dark:hover:bg-darkmode-primary;
15 | }
16 |
--------------------------------------------------------------------------------
/themes/hugoplate/assets/css/components.css:
--------------------------------------------------------------------------------
1 | /* section style */
2 | .section {
3 | @apply py-24 xl:py-28;
4 | }
5 |
6 | .section-sm {
7 | @apply py-16 xl:py-20;
8 | }
9 |
10 | /* container */
11 | .container {
12 | @apply mx-auto xl:!max-w-[1320px] px-4;
13 | }
14 |
15 | /* social icons */
16 | .social-icons {
17 | @apply space-x-4;
18 | }
19 | .social-icons li {
20 | @apply inline-block;
21 | }
22 | .social-icons li a {
23 | @apply flex h-9 w-9 items-center justify-center rounded-sm bg-primary text-center leading-9 text-white dark:bg-darkmode-primary dark:text-text-dark;
24 | }
25 | .social-icons li a svg {
26 | @apply h-5 w-5;
27 | }
28 |
29 | /* content style */
30 | .content {
31 | @apply prose max-w-none;
32 | @apply prose-headings:mb-[.3em] prose-headings:mt-[.6em] prose-headings:text-text-dark dark:prose-headings:text-darkmode-text-dark;
33 | @apply prose-h1:text-h1-sm md:prose-h1:text-h1;
34 | @apply prose-h2:text-h2-sm md:prose-h2:text-h2;
35 | @apply prose-h3:text-h3-sm md:prose-h3:text-h3;
36 | @apply prose-p:text-base prose-p:text-text dark:prose-p:text-darkmode-text;
37 | @apply prose-a:text-text prose-a:[&.btn]:no-underline dark:prose-a:text-darkmode-text;
38 | @apply prose-img:max-w-full prose-img:rounded;
39 | @apply prose-strong:text-text-dark dark:prose-strong:text-darkmode-text;
40 | @apply prose-hr:border-border dark:prose-hr:border-darkmode-border;
41 | @apply prose-pre:rounded-lg prose-pre:bg-light dark:prose-pre:bg-darkmode-light;
42 | @apply prose-code:text-darkmode-text-dark;
43 | @apply prose-li:text-text dark:prose-li:text-darkmode-text;
44 | @apply prose-blockquote:rounded-lg prose-blockquote:border prose-blockquote:border-l-[10px] prose-blockquote:border-primary prose-blockquote:bg-light prose-blockquote:px-8 prose-blockquote:py-10 prose-blockquote:font-secondary prose-blockquote:text-2xl prose-blockquote:not-italic prose-blockquote:text-text-dark dark:prose-blockquote:border-darkmode-primary dark:prose-blockquote:bg-darkmode-light dark:prose-blockquote:text-darkmode-text-light;
45 | @apply prose-table:relative prose-table:overflow-hidden prose-table:rounded-lg prose-table:before:absolute prose-table:before:left-0 prose-table:before:top-0 prose-table:before:h-full prose-table:before:w-full prose-table:before:rounded-[inherit] prose-table:before:border prose-table:before:border-border prose-table:before:content-[""] dark:prose-table:before:border-darkmode-border;
46 | @apply prose-thead:border-border prose-thead:bg-light dark:prose-thead:border-darkmode-border dark:prose-thead:bg-darkmode-light;
47 | @apply prose-th:relative prose-th:z-10 prose-th:px-4 prose-th:py-[18px] prose-th:text-text-dark dark:prose-th:text-darkmode-text;
48 | @apply prose-tr:border-border dark:prose-tr:border-darkmode-border;
49 | @apply prose-td:relative prose-td:z-10 prose-td:px-3 prose-td:py-[18px] dark:prose-td:text-darkmode-text;
50 | }
51 |
--------------------------------------------------------------------------------
/themes/hugoplate/assets/css/custom.css:
--------------------------------------------------------------------------------
1 | /* DO NOT WRITE ANY STYLE IN THIS FILE */
2 | /* If you want to add your own styles, please write it in the `./assets/css/custom.css` file. */
3 |
--------------------------------------------------------------------------------
/themes/hugoplate/assets/css/main.css:
--------------------------------------------------------------------------------
1 | @import "tailwindcss";
2 | @plugin "@tailwindcss/forms";
3 | @plugin "@tailwindcss/typography";
4 | @plugin "./tailwind-plugin/tw-theme";
5 | @plugin "./tailwind-plugin/tw-bs-grid";
6 | @source "hugo_stats.json";
7 |
8 | @custom-variant dark (&:where(.dark, .dark *));
9 |
10 | @import "./safe.css";
11 | @import "./utilities.css";
12 |
13 | @layer base {
14 | @import "./base.css";
15 | }
16 |
17 | @layer components {
18 | @import "./components.css";
19 | @import "./navigation.css";
20 | @import "./buttons.css";
21 | }
22 |
23 | @import "search.css";
24 | @import "social-share.css";
25 | @import "gallery-slider.css";
26 | @import "images.css";
27 | @import "toc.css";
28 | @import "tab.css";
29 | @import "accordion.css";
30 | @import "modal.css";
31 | @import "notice.css";
32 |
33 | @import "module-overrides.css";
34 | @import "custom.css";
35 |
--------------------------------------------------------------------------------
/themes/hugoplate/assets/css/module-overrides.css:
--------------------------------------------------------------------------------
1 | /* table of contents */
2 | .table-of-content {
3 | @apply overflow-hidden rounded;
4 | }
5 |
6 | /* share icons */
7 | .share-icons .share-link {
8 | @apply h-9 w-9 rounded leading-9 bg-primary hover:bg-primary dark:bg-darkmode-primary dark:hover:bg-darkmode-primary;
9 | }
10 |
11 | .share-icons .share-icon svg {
12 | @apply dark:fill-darkmode-light;
13 | }
14 |
15 | .fediverse-input-wrapper {
16 | @apply bg-body dark:bg-darkmode-body rounded;
17 | input {
18 | @apply rounded focus:border-primary focus:ring-0;
19 | }
20 | button {
21 | @apply rounded bg-primary dark:bg-darkmode-primary text-light dark:text-darkmode-light hover:bg-primary dark:hover:bg-darkmode-primary;
22 | }
23 | }
24 |
25 | /* notice */
26 | .notice {
27 | @apply rounded-lg;
28 | }
29 |
30 | /* tab */
31 | .tab {
32 | @apply border-border dark:border-darkmode-border overflow-hidden rounded-lg border;
33 | }
34 | .tab-nav {
35 | @apply border-border bg-light dark:border-darkmode-border dark:bg-darkmode-light pl-4;
36 | }
37 | .tab-nav-item {
38 | @apply text-text-dark dark:text-darkmode-text-dark px-8 !text-lg;
39 | }
40 | .tab-nav-item.active {
41 | @apply border-dark dark:border-darkmode-primary;
42 | }
43 |
44 | .tab-content-panel {
45 | @apply px-4 !pt-0;
46 | }
47 |
48 | /* accordion */
49 | .accordion {
50 | @apply border-border bg-light dark:border-darkmode-border dark:bg-darkmode-light mb-6 overflow-hidden rounded-lg border;
51 | }
52 | .accordion-header {
53 | @apply text-text-dark dark:text-darkmode-text-dark;
54 | }
55 |
56 | /* cookie consent */
57 | .cookie-box {
58 | @apply !rounded-lg;
59 | }
60 |
61 | /* slider */
62 | .gallery-slider {
63 | @apply !ml-0;
64 | }
65 |
--------------------------------------------------------------------------------
/themes/hugoplate/assets/css/navigation.css:
--------------------------------------------------------------------------------
1 | .header {
2 | @apply bg-body dark:bg-darkmode-body py-6;
3 | }
4 |
5 | /* navbar items */
6 | .navbar {
7 | @apply relative flex flex-wrap items-center justify-between;
8 | }
9 |
10 | .navbar-brand {
11 | @apply text-text-dark dark:text-darkmode-text-dark text-xl font-semibold;
12 | image {
13 | @apply max-h-full max-w-full;
14 | }
15 | }
16 |
17 | .navbar-nav {
18 | @apply text-center lg:text-left;
19 | }
20 |
21 | .nav-link {
22 | @apply text-text-dark hover:text-primary dark:text-darkmode-text-dark dark:hover:text-darkmode-primary block p-3 cursor-pointer font-semibold transition lg:px-2 lg:py-3;
23 | }
24 |
25 | .nav-dropdown {
26 | @apply mr-0;
27 | }
28 |
29 | .nav-dropdown > svg {
30 | @apply pointer-events-none;
31 | }
32 |
33 | .nav-dropdown.active .nav-dropdown-list {
34 | @apply block;
35 | }
36 |
37 | .nav-dropdown-list {
38 | @apply bg-body dark:bg-darkmode-body z-10 min-w-[180px] rounded p-4 shadow-sm hidden lg:invisible lg:absolute lg:block lg:opacity-0;
39 | }
40 |
41 | .nav-dropdown-item {
42 | @apply [&:not(:last-child)]:mb-2;
43 | }
44 |
45 | .nav-dropdown-link {
46 | @apply text-text-dark hover:text-primary dark:text-darkmode-text dark:hover:text-darkmode-primary block py-1 font-semibold transition;
47 | }
48 |
49 | /* theme-switcher */
50 | .theme-switcher {
51 | @apply inline-flex;
52 |
53 | label {
54 | @apply bg-border relative inline-block h-4 w-6 cursor-pointer rounded-2xl lg:w-10;
55 | }
56 |
57 | input {
58 | @apply absolute opacity-0;
59 | }
60 |
61 | span {
62 | @apply bg-dark absolute -top-1 left-0 flex h-6 w-6 items-center justify-center rounded-full transition-all duration-300 dark:bg-white;
63 | }
64 |
65 | input:checked + label {
66 | span {
67 | @apply lg:left-4;
68 | }
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/themes/hugoplate/assets/css/safe.css:
--------------------------------------------------------------------------------
1 | /* navbar toggler */
2 | input#nav-toggle:checked + label #show-button {
3 | @apply hidden;
4 | }
5 |
6 | input#nav-toggle:checked + label #hide-button {
7 | @apply block;
8 | }
9 |
10 | input#nav-toggle:checked ~ #nav-menu {
11 | @apply block;
12 | }
13 |
14 | /* swiper pagination */
15 | .swiper-pagination-bullet {
16 | @apply !h-2.5 !w-2.5 !bg-light !opacity-100 dark:!bg-darkmode-light;
17 | }
18 |
19 | .swiper-pagination-bullet-active {
20 | @apply !h-4 !w-4 !bg-primary dark:!bg-darkmode-primary;
21 | }
22 |
--------------------------------------------------------------------------------
/themes/hugoplate/assets/css/utilities.css:
--------------------------------------------------------------------------------
1 | @utility bg-gradient {
2 | @apply bg-linear-to-b from-[rgba(249,249,249,1)] from-[0.53%] to-white to-[83.28%] dark:from-darkmode-light dark:to-darkmode-body;
3 | }
4 |
5 | /* form style */
6 | @utility form-input {
7 | @apply w-full rounded border-transparent bg-light px-6 py-4 text-text-dark placeholder:text-text-light focus:border-primary dark:focus:border-darkmode-primary focus:ring-transparent dark:border-darkmode-border dark:bg-darkmode-light dark:text-darkmode-text-light;
8 | }
9 |
10 | @utility form-label {
11 | @apply mb-4 block font-secondary text-xl font-normal text-text-dark dark:text-darkmode-text-light;
12 | }
13 |
--------------------------------------------------------------------------------
/themes/hugoplate/assets/js/main.js:
--------------------------------------------------------------------------------
1 | // main script
2 | (function () {
3 | "use strict";
4 |
5 | // Dropdown Menu Toggler For Mobile
6 | // ----------------------------------------
7 | const dropdownMenuToggler = document.querySelectorAll(
8 | ".nav-dropdown > .nav-link",
9 | );
10 |
11 | dropdownMenuToggler.forEach((toggler) => {
12 | toggler?.addEventListener("click", (e) => {
13 | e.target.closest(".nav-item").classList.toggle("active");
14 | });
15 | });
16 |
17 | // Testimonial Slider
18 | // ----------------------------------------
19 | new Swiper(".testimonial-slider", {
20 | spaceBetween: 24,
21 | loop: true,
22 | pagination: {
23 | el: ".testimonial-slider-pagination",
24 | type: "bullets",
25 | clickable: true,
26 | },
27 | breakpoints: {
28 | 768: {
29 | slidesPerView: 2,
30 | },
31 | 992: {
32 | slidesPerView: 3,
33 | },
34 | },
35 | });
36 | })();
37 |
--------------------------------------------------------------------------------
/themes/hugoplate/assets/plugins/maps/google-map.js:
--------------------------------------------------------------------------------
1 | /*!***************************************************
2 | * Google Map
3 | *****************************************************/
4 |
5 | window.marker = null;
6 |
7 | function initialize() {
8 | var map,
9 | mapId = document.getElementById("map");
10 | var latitude = mapId.getAttribute("data-latitude");
11 | var longitude = mapId.getAttribute("data-longitude");
12 | var mapMarker = mapId.getAttribute("data-marker");
13 | var mapMarkerName = mapId.getAttribute("data-marker-name");
14 | var nottingham = new google.maps.LatLng(latitude, longitude);
15 | var style = [
16 | {
17 | featureType: "administrative",
18 | elementType: "all",
19 | stylers: [
20 | {
21 | saturation: "-100",
22 | },
23 | ],
24 | },
25 | {
26 | featureType: "administrative.province",
27 | elementType: "all",
28 | stylers: [
29 | {
30 | visibility: "off",
31 | },
32 | ],
33 | },
34 | {
35 | featureType: "landscape",
36 | elementType: "all",
37 | stylers: [
38 | {
39 | saturation: -100,
40 | },
41 | {
42 | lightness: 65,
43 | },
44 | {
45 | visibility: "on",
46 | },
47 | ],
48 | },
49 | {
50 | featureType: "poi",
51 | elementType: "all",
52 | stylers: [
53 | {
54 | saturation: -100,
55 | },
56 | {
57 | lightness: "50",
58 | },
59 | {
60 | visibility: "simplified",
61 | },
62 | ],
63 | },
64 | {
65 | featureType: "road",
66 | elementType: "all",
67 | stylers: [
68 | {
69 | saturation: "-100",
70 | },
71 | ],
72 | },
73 | {
74 | featureType: "road.highway",
75 | elementType: "all",
76 | stylers: [
77 | {
78 | visibility: "simplified",
79 | },
80 | ],
81 | },
82 | {
83 | featureType: "road.arterial",
84 | elementType: "all",
85 | stylers: [
86 | {
87 | lightness: "30",
88 | },
89 | ],
90 | },
91 | {
92 | featureType: "road.local",
93 | elementType: "all",
94 | stylers: [
95 | {
96 | lightness: "40",
97 | },
98 | ],
99 | },
100 | {
101 | featureType: "transit",
102 | elementType: "all",
103 | stylers: [
104 | {
105 | saturation: -100,
106 | },
107 | {
108 | visibility: "simplified",
109 | },
110 | ],
111 | },
112 | {
113 | featureType: "water",
114 | elementType: "geometry",
115 | stylers: [
116 | {
117 | hue: "#ffff00",
118 | },
119 | {
120 | lightness: -25,
121 | },
122 | {
123 | saturation: -97,
124 | },
125 | ],
126 | },
127 | {
128 | featureType: "water",
129 | elementType: "labels",
130 | stylers: [
131 | {
132 | lightness: -25,
133 | },
134 | {
135 | saturation: -100,
136 | },
137 | ],
138 | },
139 | ];
140 | var mapOptions = {
141 | center: nottingham,
142 | mapTypeId: google.maps.MapTypeId.ROADMAP,
143 | backgroundColor: "#000",
144 | zoom: 15,
145 | panControl: !1,
146 | zoomControl: !0,
147 | mapTypeControl: !1,
148 | scaleControl: !1,
149 | streetViewControl: !1,
150 | overviewMapControl: !1,
151 | zoomControlOptions: {
152 | style: google.maps.ZoomControlStyle.LARGE,
153 | },
154 | };
155 | map = new google.maps.Map(document.getElementById("map"), mapOptions);
156 | var mapType = new google.maps.StyledMapType(style, {
157 | name: "Grayscale",
158 | });
159 | map.mapTypes.set("grey", mapType);
160 | map.setMapTypeId("grey");
161 | var marker_image = mapMarker;
162 | var pinIcon = new google.maps.MarkerImage(
163 | marker_image,
164 | null,
165 | null,
166 | null,
167 | new google.maps.Size(30, 50),
168 | );
169 | marker = new google.maps.Marker({
170 | position: nottingham,
171 | map: map,
172 | icon: pinIcon,
173 | title: mapMarkerName,
174 | });
175 | }
176 | var map = document.getElementById("map");
177 | if (map != null) {
178 | google.maps.event.addDomListener(window, "load", initialize);
179 | }
180 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/404.en.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 |
3 |
4 |
5 |
6 |
8 | 404
9 |
10 |
Page not found
11 |
12 |
13 | The page you are looking for might have been removed, had its name
14 | changed, or is temporarily unavailable.
15 |
16 |
17 |
20 | Back to home
21 |
22 |
23 |
24 |
25 |
26 | {{ end }}
27 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/_default/baseof.html:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 | {{ partial "essentials/head.html" . }}
12 |
13 |
14 |
15 | {{ partialCached "essentials/style.html" . }}
16 |
17 |
18 |
19 |
20 |
21 | {{ if hugo.IsProduction }}
22 | {{ partialCached "preloader.html" . }}
23 | {{ partialCached "gtm-noscript.html" . }}
24 | {{ else }}
25 | {{ partial "preloader.html" . }}
26 |
27 |
28 |
29 | {{ partial "components/tw-size-indicator.html" . }}
30 | {{ end }}
31 |
32 |
33 |
34 | {{ partialCached "announcement.html" . }}
35 |
36 |
37 |
38 | {{ partial "essentials/header.html" . }}
39 | {{ partial "search-modal.html" (dict "Context" . ) }}
40 |
41 |
42 |
43 | {{ block "main" . }}{{ end }}
44 |
45 |
46 |
47 | {{ partial "essentials/footer.html" . }}
48 |
49 |
50 |
51 | {{ partialCached "essentials/script.html" . }}
52 |
53 |
54 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/_default/list.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 | {{ partial "page-header" . }}
3 |
4 |
5 |
20 | {{ end }}
21 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/_default/single.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 | {{ partial "page-header" . }}
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | {{ .Content }}
11 |
12 |
13 |
14 |
15 |
16 | {{ end }}
17 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/_default/taxonomy.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 | {{ partial "page-header" . }}
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | {{ range .Data.Pages }}
12 |
13 | {{ partial "components/blog-card" . }}
14 |
15 | {{ end }}
16 |
17 |
18 |
19 |
20 |
21 | {{ end }}
22 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/_default/terms.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 | {{ partial "page-header" . }}
3 |
4 |
5 |
41 | {{ end }}
42 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/about/list.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 |
3 |
4 |
5 |
6 | {{ partial "image" (dict "Src" .Params.image "Context" .Page "Alt" .Title "Class" "mx-auto mb-6" "Size" "200x200") }}
7 |
{{ .Title }}
8 |
{{ .Content }}
9 |
10 |
11 |
12 |
13 | {{ end }}
14 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/authors/list.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 | {{ partial "page-header" . }}
3 |
4 |
5 |
6 |
7 |
8 | {{ range .RegularPages }}
9 |
10 | {{ partial "components/author-card" . }}
11 |
12 | {{ end }}
13 |
14 |
15 |
16 | {{ end }}
17 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/authors/single.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 |
3 |
4 |
6 |
7 | {{ $image:= .Params.image }}
8 | {{ if $image }}
9 | {{ partial "image" (dict "Src" $image "Context" .Page "Alt" .Title "Class" "mx-auto" "Size" "200x200") }}
10 | {{ else if .Params.Email }}
11 |

17 | {{ end }}
18 |
{{ .Title }}
19 |
20 | {{ .Content }}
21 |
22 |
23 | {{ range .Params.social }}
24 | -
25 |
29 | {{ .title }}
30 |
31 |
32 |
33 | {{ end }}
34 |
35 |
36 |
37 |
38 |
39 | {{ $filterByAuthor := where site.RegularPages "Params.author" "==" .Title }}
40 | {{ range $filterByAuthor }}
41 |
42 | {{ partial "components/blog-card" . }}
43 |
44 | {{ end }}
45 |
46 |
47 |
48 | {{ end }}
49 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/blog/list.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 | {{ partial "page-header" . }}
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | {{ $paginator:= .Paginate .RegularPages }}
12 | {{ range $paginator.Pages }}
13 |
14 | {{ partial "components/blog-card" . }}
15 |
16 | {{ end }}
17 |
18 | {{ partial "components/pagination.html" . }}
19 |
20 |
21 |
22 |
23 | {{ $widget:= site.Params.widgets.sidebar }}
24 | {{ partialCached "widgets/widget-wrapper" ( dict "Widgets" $widget "Scope" . ) }}
25 |
26 |
27 |
28 |
29 | {{ end }}
30 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/blog/single.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 |
3 |
4 |
5 |
6 | {{ $image:= .Params.image }}
7 | {{ if $image }}
8 |
9 | {{ partial "image" (dict "Src" $image "Context" .Page "Alt" .Title "Class" "w-full rounded") }}
10 |
11 | {{ end }}
12 |
13 | {{ .Title }}
14 |
15 |
43 |
44 | {{ partial "toc.html" (dict "Class" "blog" "Collapsed" false "TableOfContents" .TableOfContents ) }}
45 | {{ .Content }}
46 |
47 |
48 | {{ $tags:= .Params.tags }}
49 | {{ if $tags }}
50 |
51 |
{{ T "tags" }} :
52 |
63 |
64 | {{ end }}
65 |
66 |
{{ T "share" }} :
67 | {{ partial "social-share" (dict "Context" . "Class" "share-icons" "Title" .Title "Whatsapp" false "Telegram" false "Linkedin" false "Pinterest" false "Tumblr" false "Vk" false "Reddit" false) }}
68 |
69 |
70 |
71 | {{ if site.Config.Services.Disqus.Shortname }}
72 |
73 | {{ template "_internal/disqus.html" . }}
74 |
75 | {{ end }}
76 |
77 |
78 |
79 |
80 | {{ $related := .Site.RegularPages.Related . | first 10 }}
81 | {{ $related = $related | shuffle | first 3 }}
82 | {{ with $related }}
83 |
84 |
{{ T "related_posts" }}
85 |
86 | {{ range . }}
87 |
88 | {{ partial "components/blog-card" . }}
89 |
90 | {{ end }}
91 |
92 |
93 | {{ end }}
94 |
95 |
96 | {{ end }}
97 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/contact/list.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 | {{ partial "page-header" . }}
3 |
4 |
5 |
49 |
50 |
51 | {{ with site.Params.google_map }}
52 | {{ if .enable }}
53 |
60 | {{ end }}
61 | {{ end }}
62 |
63 | {{ with site.Params.subscription }}
64 | {{ if .enable }}
65 |
66 |
97 |
107 |
110 |
111 | {{ end }}
112 | {{ end }}
113 |
114 | {{ if site.Params.google_map.enable }}
115 | {{ $gmap:= resources.Get "plugins/maps/google-map.js" }}
116 |
117 |
118 | {{ end }}
119 |
120 | {{ end }}
121 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/partials/call-to-action.html:
--------------------------------------------------------------------------------
1 |
2 | {{ with site.GetPage "sections/call-to-action" }}
3 | {{ if .Params.enable }}
4 |
5 |
6 |
8 |
9 |
10 | {{ partial "image" (dict "Src" .image "Alt" "call to action" "Class" "w-full") }}
11 |
12 |
13 |
14 | {{ .Title | markdownify }}
15 |
16 |
17 | {{ .Params.description | markdownify }}
18 |
19 | {{ with .Params.button }}
20 | {{ if .enable }}
21 |
22 | {{ .label }}
23 |
24 | {{ end }}
25 | {{ end }}
26 |
27 |
28 |
29 |
30 |
31 | {{ end }}
32 | {{ end }}
33 |
34 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/partials/components/author-card.html:
--------------------------------------------------------------------------------
1 |
2 | {{ $image:= .Params.image }}
3 | {{ if $image }}
4 | {{ partial "image" (dict "Src" $image "Context" .Page "Alt" .Title "Class" "mx-auto mb-6 rounded" "size" "120x120") }}
5 | {{ else if .Params.Email }}
6 |

12 | {{ end }}
13 |
16 |
17 | {{ .Summary | plainify }}
18 |
19 |
29 |
30 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/partials/components/blog-card.html:
--------------------------------------------------------------------------------
1 |
2 | {{ $image:= .Params.image }}
3 | {{ if $image }}
4 | {{ partial "image" (dict "Src" $image "Context" .Page "Alt" .Title "Class" "mb-6 w-full rounded") }}
5 | {{ end }}
6 |
11 | {{ $categories:= .Params.categories }}
12 | {{ if $categories }}
13 |
32 | {{ end }}
33 |
{{ .Summary | plainify }}
34 |
35 | {{ T "read_more" }}
36 |
37 |
38 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/partials/components/breadcrumb.html:
--------------------------------------------------------------------------------
1 | {{ $context := .Context }}
2 | {{ $class := .Class }}
3 | {{ $base := site.Home.Permalink }}
4 |
5 |
6 |
31 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/partials/components/language-switcher.html:
--------------------------------------------------------------------------------
1 |
2 | {{ if hugo.IsMultilingual }}
3 | {{ $class := .Class }}
4 | {{ $context := .Context }}
5 | {{ $pageLang := $context.Lang }}
6 | {{ $pageTranslations := newScratch }}
7 | {{/* First, fill all translations of the Home page (failsafe) */}}
8 | {{ range site.Home.AllTranslations }}
9 | {{ $pageTranslations.Set .Language.Lang .Permalink }}
10 | {{ end }}
11 | {{/* Second, if a translation exists for the current page for the target language, replace failsafe */}}
12 | {{ range $context.AllTranslations }}
13 | {{ $pageTranslations.Set .Language.Lang .Permalink }}
14 | {{ end }}
15 |
16 |
35 | {{ end }}
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/partials/components/theme-switcher.html:
--------------------------------------------------------------------------------
1 |
2 | {{ $class := .Class }}
3 | {{ if site.Params.theme_switcher }}
4 |
5 |
6 |
34 |
35 |
36 |
37 |
76 | {{ end }}
77 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/partials/components/tw-size-indicator.html:
--------------------------------------------------------------------------------
1 |
3 | all
4 | sm
5 | md
6 | lg
7 | xl
8 | 2xl
9 |
10 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/partials/essentials/footer.html:
--------------------------------------------------------------------------------
1 |
59 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/partials/essentials/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
10 |
11 |
12 | {{ partialCached "favicon" . }}
13 |
14 |
15 |
16 | {{ partialCached "manifest" . }}
17 |
18 |
19 |
20 | {{ partialCached "site-verifications.html" . }}
21 |
22 |
23 |
24 | {{ partial "basic-seo.html" . }}
25 |
26 |
27 |
28 | {{ partialCached "custom-script.html" . }}
29 |
30 |
31 |
32 | {{ if and site.Config.Services.GoogleAnalytics.ID (ne site.Config.Services.GoogleAnalytics.ID "G-MEASUREMENT_ID") }}
33 | {{ template "_internal/google_analytics.html" . }}
34 | {{ end }}
35 |
36 |
37 |
38 | {{ partialCached "gtm.html" . }}
39 |
40 |
41 |
42 | {{ partial "search-index.html" . }}
43 |
44 |
45 |
46 | {{/* {{ partialCached "matomo-analytics.html" . }} */}}
47 |
48 |
49 | {{/* {{ partialCached "baidu-analytics.html" . }} */}}
50 |
51 |
52 | {{/* {{ partialCached "plausible-analytics.html" . }} */}}
53 |
54 |
55 | {{/* {{ partialCached "counter-analytics.html" . }} */}}
56 |
57 |
58 | {{/* {{ partialCached "crisp-chat.html" . }} */}}
59 |
60 |
61 | {{ partial "mermaid/assets/js" . }}
62 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/partials/essentials/script.html:
--------------------------------------------------------------------------------
1 |
2 | {{ $scripts := slice }}
3 | {{ $scriptsLazy := slice }}
4 | {{ range site.Params.plugins.js }}
5 | {{ if findRE "^http" .link }}
6 |
10 | {{ else }}
11 | {{ if not .lazy }}
12 | {{ $scripts = $scripts | append (resources.Get .link) }}
13 | {{ else }}
14 | {{ $scriptsLazy = $scriptsLazy | append (resources.Get .link) }}
15 | {{ end }}
16 | {{ end }}
17 | {{ end }}
18 |
19 |
20 |
21 | {{ $scripts = $scripts | append (resources.Get "js/main.js") }}
22 | {{ $scripts = $scripts | resources.Concat "js/script.js" }}
23 |
24 | {{ $scriptsLazy = $scriptsLazy | resources.Concat "js/script-lazy.js" }}
25 |
26 | {{ if hugo.IsProduction }}
27 | {{ $scripts = $scripts | minify | fingerprint }}
28 | {{ $scriptsLazy = $scriptsLazy | minify | fingerprint }}
29 | {{ end }}
30 |
31 | {{/* scripts */}}
32 |
36 |
37 | {{/* scripts lazy */}}
38 |
44 |
45 |
46 | {{ partialCached "pwa.html" . }}
47 |
48 |
49 |
50 | {{ partialCached "cookie-consent.html" . }}
51 |
52 |
53 |
54 | {{ partialCached "adsense-script.html" . }}
55 |
56 |
57 |
58 | {{ partialCached "announcement-script.html" . }}
59 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/partials/essentials/style.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | {{ $pf:= site.Data.theme.fonts.font_family.primary }}
19 | {{ $sf:= site.Data.theme.fonts.font_family.secondary }}
20 |
21 |
22 |
31 |
32 |
33 | {{ $styles := slice }}
34 | {{ $stylesLazy := slice }}
35 |
36 | {{ range site.Params.plugins.css }}
37 | {{ if findRE "^http" .link }}
38 |
44 | {{ else }}
45 | {{ if not .lazy }}
46 | {{ $styles = $styles | append (resources.Get .link) }}
47 | {{ else }}
48 | {{ $stylesLazy = $stylesLazy | append (resources.Get .link) }}
49 | {{ end }}
50 | {{ end }}
51 | {{ end }}
52 |
53 | {{ $mainCSS := resources.Get "css/main.css" }}
54 | {{ $tailwindOpts := dict "inlineImports" true }}
55 | {{ $tailwindCSS := $mainCSS | css.TailwindCSS $tailwindOpts }}
56 |
57 | {{ $styles = $styles | append $tailwindCSS }}
58 | {{ $styles = $styles | resources.Concat "css/style.css" }}
59 |
60 | {{ $stylesLazy = $stylesLazy | resources.Concat "css/style-lazy.css" }}
61 |
62 | {{ if hugo.IsProduction }}
63 | {{ $styles = $styles | minify | fingerprint }}
64 | {{ $stylesLazy = $stylesLazy | minify | fingerprint }}
65 | {{ end }}
66 |
67 |
68 |
69 |
73 |
74 |
75 |
83 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/partials/page-header.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
{{ T (printf "%s" (lower .Title)) | default .Title | title }}
6 | {{ partial "components/breadcrumb" (dict "Context" . "Class" "mt-6") }}
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/partials/widgets/categories.html:
--------------------------------------------------------------------------------
1 |
2 | {{ if isset site.Taxonomies "categories" }}
3 | {{ if not (eq (len site.Taxonomies.categories) 0) }}
4 |
5 |
{{ T "categories" }}
6 |
21 |
22 | {{ end }}
23 | {{ end }}
24 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/partials/widgets/tags.html:
--------------------------------------------------------------------------------
1 |
2 | {{ if isset site.Taxonomies "tags" }}
3 | {{ if not (eq (len site.Taxonomies.tags) 0) }}
4 |
5 |
{{ T "tags" }}
6 |
21 |
22 | {{ end }}
23 | {{ end }}
24 |
--------------------------------------------------------------------------------
/themes/hugoplate/layouts/partials/widgets/widget-wrapper.html:
--------------------------------------------------------------------------------
1 | {{ range .Widgets }}
2 | {{ partial ( print "widgets/" . ) $.Scope }}
3 | {{ end }}
4 |
--------------------------------------------------------------------------------
/wrangler.toml:
--------------------------------------------------------------------------------
1 | # Generated by Wrangler on Sat May 24 2025 22:28:30 GMT+0900 (Japan Standard Time)
2 | name = "fraxinus"
3 | pages_build_output_dir = "public"
4 | compatibility_date = "2021-11-02"
5 |
6 | [vars]
7 | HUGO_VERSION = "0.147.4"
8 | GO_VERSION = "1.24.2"
9 | NODE_VERSION = "22.13.0"
10 |
11 | [env.production.vars]
12 | HUGO_ENV = "production"
13 | HUGO_VERSION = "0.147.4"
14 | GO_VERSION = "1.24.2"
15 | NODE_VERSION = "22.13.0"
16 |
--------------------------------------------------------------------------------