Instal Cepat
Hanya satu perintah yang anda butuhkan untuk membuat website baru.
After Dark termasuk skrip instalasi portabel untuk pengaturan cepat. Silahkan instal
Hugo 0.51
atau yang lebih besar sebelum menjalankan skrip:
Perluas untuk melihat skrip
1#!/bin/sh -e
2#
3# Copyright (C) 2019 VHS <vhsdev@tutanota.com>
4#
5# This file is part of After Dark.
6#
7# After Dark is free software: you can redistribute it and/or modify
8# it under the terms of the GNU Affero General Public License as published
9# by the Free Software Foundation, either version 3 of the License, or
10# (at your option) any later version.
11#
12# After Dark is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU Affero General Public License for more details.
16#
17# You should have received a copy of the GNU Affero General Public License
18# along with this program. If not, see <https://www.gnu.org/licenses/>.
19#
20
21validate_hugo () {
22 # Exit with error if hugo is not installed
23 if ! hash hugo 2>/dev/null ; then
24 echo "Error: After Dark requires Hugo version 0.51 or greater" >&2; exit 1
25 fi
26
27 # Exit with error if not minimum required hugo version
28 re="v(0\d*\.([5-9][1-9]|[6-9])|[1-9]).*"
29 if ! hugo version | grep -qE "$re" ; then
30 echo "Error: After Dark requires Hugo version 0.51 or greater" >&2; exit 1
31 fi
32}
33
34create_site_dir () {
35 SITE_DIR="flying-toasters"
36 if [ "$1" != "" ] ; then
37 SITE_DIR="$1"
38 fi
39
40 SITE_DIR_ABS="$PWD/$SITE_DIR"
41 mkdir -p "$SITE_DIR"
42}
43
44create_site () {
45 echo "Creating a new Hugo site ..."
46 hugo new site "$SITE_DIR" 1>/dev/null
47 cd "$SITE_DIR" || exit 1
48}
49
50download_theme () {
51 echo "Downloading the latest version of After Dark ..."
52 LATEST_META=$(wget -qO - https://registry.npmjs.org/after-dark/latest)
53 vers=$(echo "$LATEST_META" | grep -oE "\"version\".*[^,]*," | cut -d ',' -f1 | cut -d ':' -f2 | tr -d '" ')
54 mkdir -p themes/after-dark
55 wget -qO - https://registry.npmjs.org/after-dark/-/after-dark-"$vers".tgz | tar --strip-components=1 -xz -C themes/after-dark
56 echo "Version $vers downloaded to $SITE_DIR/themes/after-dark"
57}
58
59download_module () {
60 [ -z "$1" ] && { echo "Error: Attempt to download undefined module" >&2; exit 1; }
61 echo "Downloading $1 module for After Dark ..."
62 meta=$(wget -qO - https://registry.npmjs.org/"$1"/latest)
63 vers=$(echo "$meta" | grep -oE "\"version\".*[^,]*," | cut -d ',' -f1 | cut -d ':' -f2 | tr -d '" ')
64 mkdir -p themes/"$1"
65 wget -qO - https://registry.npmjs.org/"$1"/-/"$1"-"$vers".tgz | tar --strip-components=1 -xz -C themes/"$1"
66 echo "Version $vers downloaded to $SITE_DIR/themes/$1"
67}
68
69configure_theme () {
70 echo "Configuring basic After Dark theme settings ..."
71 tee "config.toml" > /dev/null <<TOML
72baseurl = "https://domain.example" # Controls base URL sitewide
73languageCode = "en-US" # Controls site language
74title = "After Dark" # Homepage title and page title suffix
75paginate = 11 # Number of posts to show before paginating
76copyright = "Copyright © Copyright Owner. Licensed under <a target=\"_blank\" rel=\"external noopener license\" href=\"https://creativecommons.org/licenses/by-nd/4.0/\">CC-BY-ND-4.0</a>." # Optional, remove to suppress copyright notices
77
78# Controls default theme and theme components
79theme = [
80 "fractal-forest", # OBSD
81 "after-dark" # AGPL-3.0-or-later
82]
83
84disableLiveReload = false # Optional, set true to disable live reload
85enableRobotsTXT = true # Suggested, enable robots.txt file
86sectionPagesMenu = "main" # Enable menu system for lazy bloggers
87
88[markup.goldmark.renderer]
89 unsafe = true # Optional, allows HTML inside your CommonMark content
90[markup.tableOfContents]
91 startLevel = 1 # Suggested, draws TOC using all heading levels
92 endLevel = 6 # Suggested, draws TOC using all heading levels
93[markup.highlight]
94 noClasses = false # Suggested, used for custom syntax highlighting
95
96[params]
97 description = "" # Suggested, controls default description meta
98 author = "" # Optional, controls author name display on posts
99 hide_author = false # Optional, set true to hide author name on posts
100 disable_csp = false # Optional, set true to disable content security policy
101 images = [
102 "https://source.unsplash.com/collection/983219/2000x1322"
103 ] # Suggested, controls default Open Graph images
104
105[params.layout.menu.main]
106 hidden = true # Optional, set false or remove to show section menu
107
108[params.layout.footer]
109 hidden = false # Optional, set true to hide footer
110
111[params.modules.fractal_forest]
112 enabled = true # Optional, set false to disable module
113 decoders = ["bpgdec8a"] # Optional, 8-bit javascript decoder with animation
114TOML
115}
116
117update_archetypes () {
118 echo "Updating the default content archetype ..."
119 rm -f archetypes/default.md
120 cp themes/after-dark/archetypes/default.md archetypes
121}
122
123create_welcome_post () {
124 echo "Creating welcome post ..."
125 hugo new post/welcome.md 1>/dev/null
126}
127
128serve_site () {
129 echo "Starting site server ..."
130 hugo serve --buildDrafts --navigateToChanged --port 1313 1>/dev/null &
131}
132
133generate_help_docs () {
134 echo "Generating help documentation ..."
135 THEME_PATH=themes/after-dark
136 meta_path="$THEME_PATH"/data/npm
137 mkdir -p "$meta_path" && echo "$LATEST_META" | tr '\r\n' ' ' > "$meta_path"/latest.json
138 cd "$THEME_PATH"/docs && mkdir themes && ln -s ../.. "$THEME_PATH"
139 hugo new validate.md --kind validate 1>/dev/null
140}
141
142serve_help () {
143 echo "Starting help server ..."
144 hugo serve --disableLiveReload --port 1414 1>/dev/null &
145}
146
147echo "Welcome to the After Dark quick installer. Press CTRL-C at any time to abort."
148
149validate_hugo
150create_site_dir "$1"
151create_site
152download_theme
153update_archetypes
154download_module "fractal-forest"
155configure_theme
156create_welcome_post
157serve_site
158generate_help_docs
159serve_help
160
161YELLOW='\033[0;33m'
162NC='\033[0m'
163
164printf "${YELLOW}Installation successful!${NC}\n"
165echo "Site created in $SITE_DIR_ABS"
166echo "Site server started at http://localhost:1313/"
167echo "To stop it run \"kill \$(ps aux | awk '/[h]ugo.*1313/ {print \$2}')\"."
168echo "Help server started at http://localhost:1414/"
169echo "To stop and restart it run \"./themes/after-dark/bin/help\"."
170echo "Thank you for choosing After Dark."
Skrip telah diuji pada GNU/Linux dan BSD (Darwin) dan Windows melalui Cmder.
Berikut adalah tiga metode untuk men-download dan menjalankan:
-
Unduh dan kirim ke
sh
secara langsung:wget -qO - https://codeberg.org/vhs/after-dark/raw/branch/trunk/bin/install | sh
-
Unduh di file baru,
chmod
dan jalankan:curl -O https://cdn.jsdelivr.net/npm/after-dark@latest/bin/install && \ chmod +x install && ./install
-
Dari kanonik
git
klon:# sumber klon dan ubah ke direktori sumber git klon https://codeberg.org/vhs/after-dark.git && cd "$_" # gunakan npm cli untuk mendapatkan hash rilis echo "${$(npm run integrity)#*sha512-}" # jalankan instal cepat setelah memvalidasi ./bin/install
Skrip harus selesai dalam 5-10 detik sehingga menghasilkan sampel situs dan dokumen bantuan:
Situs baru Anda akan disebut flying-toaster
. Ubah ke nama proyek anda kapan saja anda suka. Akses situs dengan menavigasi ke https://localhost:1313.
Konfigurasi Multi-situs (Lanjutan)
After Dark memungkingkan menjalankan manajemen multi situs dari satu instalasi. Untuk mengelola beberapa website gunakan -c
dan -d
bendera untuk menentukan konten dan tujuan direktori secara berurutan.
Misalnya, untuk mengahasilkan situs audio menggunakan instalasi After Dark saat ini, buat skrip yang dapat dieksekusi untuk menghasilkan situs tersebut:
#!/bin/sh
hugo -c sites/audio -d public/static.domain.example
Dimana audio
berisi konten untuk situs itu:
├── layouts
├── sites
│ └── audio
│ ├── audiobooks
│ │ ├── gaining-currency.md
│ │ └── the-power-of-now.md
│ └── clips
│ └── war-of-the-worlds.md
├── static
Dan public
berisi folder untuk setiap situs:
public
└── static.domain.example
├── categories
│ └── index.xml
├── audiobooks
│ └── index.html
├── clips
│ └── index.html
├── css
├── index.html
├── index.xml
├── js
├── sitemap.xml
└── tags
└── index.xml
Dan buat skrip lain untuk menyajikan konten untuk diedit:
#!/bin/sh
hugo -c sites/audio
Setiap subdirektori public
kemudian menjadi website yang independen dan dapat disebarkan serta salinan persisnya disimpan untuk konten tujuan yang dihasilkan.
hugo --help
dan modifikasi skrip anda menggunakan --theme
dan --config
flags.
Multi situs sangat cocok untuk mempertahankan tampilan dan rasa yang konsisten di berbagai domain asal sekaligus membatasi kebutuhan untuk menjalankannya Upgrade Script untuk setiap situs.