Skip to content

Commit 0379cae

Browse files
dev: staging deployment configuration & make task
Create a book configuration for publishing to practicalli/neovim-staging website Define a make task to publish book to staging repository Add mkdocs-staging.yml to inclusive git ignore patterns Resolve: #67
1 parent 40a2f41 commit 0379cae

File tree

4 files changed

+227
-1
lines changed

4 files changed

+227
-1
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
!includes/
1414
!overrides/
1515
!mkdocs.yml
16+
!mkdocs-staging.yml
1617

1718
# ------------------------
1819
# Project automation
@@ -22,4 +23,3 @@
2223
# Version Control
2324
!.gitignore
2425
!.github/
25-

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
- basics: navigate git hunks with gitsigns key mappings
3030
- clojure: add parinfer paragraph to structural editing page
3131
- basics: refactor tools page
32+
- dev: book configuration & make task for deploying to staging
3233

3334
### Changed
3435
- ci: spell lychee & repository trufflehog linters warn only (false positives)

Makefile

+4
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,10 @@ docs-changed: ## Build only changed files and run mkdocs in local server (pytho
195195
docs-build: ## Build mkdocs (python venv)
196196
$(info -- Mkdocs Local Server -----------------)
197197
. ~/.local/venv/bin/activate; mkdocs build
198+
199+
docs-staging: ## Deploy to staging repository
200+
$(info -- Mkdocs Staging Deploy ---------------)
201+
. ~/.local/venv/bin/activate; mkdocs gh-deploy --force --no-history --config-file mkdocs-staging.yml
198202
# -------------------------------------- #
199203

200204
# ------- Docker Containers ------------ #

mkdocs-staging.yml

+221
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,221 @@
1+
---
2+
# Practicalli Neovim - Staging environment
3+
site_name: Practicalli Neovim (Staging)
4+
site_url: https://practical.li/neovim-staging
5+
site_description: Practical guide to Clojure development with Neovim
6+
site_author: Practicalli
7+
site_org: https://practical.li/
8+
copyright: Copyright &copy 2025 Practicali <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a>
9+
repo_url: https://github.com/practicalli/neovim-staging/
10+
edit_uri: https://github.com/practicalli/neovim-staging/edit/main/docs/
11+
12+
# Deployment
13+
# remote_name: staging
14+
remote_name: git@github.com:practicalli/neovim-staging.git
15+
remote_branch: gh-pages
16+
17+
# Theme and styling
18+
theme:
19+
name: material
20+
logo: assets/images/practicalli-logo.png
21+
favicon: assets/favicon.svg
22+
features:
23+
- announce.dismiss
24+
- content.action.edit
25+
- content.action.view
26+
- content.code.annotate
27+
- content.code.copy
28+
- content.tabs.link
29+
- navigation.footer
30+
- navigation.indexes # Nav sections can have files
31+
- navigation.instant # Avoid page reloading for internal links
32+
- navigation.top
33+
- navigation.tracking # Update URL with sub-heading anchor names
34+
palette:
35+
# Palette toggle for light mode
36+
- media: "(prefers-color-scheme: light)"
37+
scheme: default
38+
primary: teal
39+
accent: blue
40+
toggle:
41+
icon: material/brightness-7
42+
name: Switch to dark mode
43+
# Palette toggle for dark mode
44+
- media: "(prefers-color-scheme: dark)"
45+
scheme: slate
46+
primary: teal
47+
accent: deep purple
48+
toggle:
49+
icon: material/brightness-4
50+
name: Switch to light mode
51+
# Override theme
52+
custom_dir: overrides
53+
54+
extra_css:
55+
- assets/stylesheets/extra.css
56+
57+
## Additional styling
58+
markdown_extensions:
59+
- admonition
60+
- pymdownx.details
61+
- pymdownx.superfences
62+
- attr_list
63+
- md_in_html # Grids
64+
- footnotes # footnotes and abbreviations
65+
- pymdownx.emoji:
66+
emoji_index: !!python/name:material.extensions.emoji.twemoji
67+
emoji_generator: !!python/name:material.extensions.emoji.to_svg
68+
- pymdownx.highlight:
69+
anchor_linenums: true
70+
- pymdownx.inlinehilite
71+
- pymdownx.snippets:
72+
url_download: true
73+
- pymdownx.superfences:
74+
custom_fences:
75+
- name: mermaid
76+
class: mermaid
77+
format: !!python/name:pymdownx.superfences.fence_code_format ""
78+
- pymdownx.tabbed:
79+
alternate_style: true
80+
- pymdownx.keys # keyboard keys
81+
- pymdownx.magiclink
82+
- def_list # lists
83+
- pymdownx.tasklist:
84+
custom_checkbox: true # checkboxes
85+
- toc:
86+
permalink: λ︎
87+
88+
## Plugins
89+
plugins:
90+
# Explicitly add search plugin when defining plugins in this configuration file
91+
- search
92+
- callouts
93+
- glightbox # Image aligning
94+
- git-revision-date-localized:
95+
# Update and Creation date of each page
96+
# enable_creation_date: true
97+
fallback_to_build_date: true
98+
99+
# Generate Social Cards via CI only
100+
# in assets/images/social
101+
- social:
102+
cards: !ENV [ MKDOCS_SOCIAL_CARDS_GENERATE, true ]
103+
104+
# Redirect pages when moved or changed
105+
# - redirects:
106+
# redirect_maps:
107+
# changelog/insiders.md: insiders/changelog.md
108+
# reference/meta-tags.md: reference/index.md
109+
110+
# Footer / Social Media
111+
extra:
112+
analytics:
113+
provider: google
114+
property: G-P29SSN0GV6
115+
social:
116+
- icon: material/web
117+
link: https://practical.li/
118+
- icon: fontawesome/brands/linkedin
119+
link: https://www.linkedin.com/in/jr0cket/
120+
- icon: fontawesome/brands/slack
121+
link: https://clojurians.slack.com/messages/practicalli
122+
- icon: fontawesome/brands/twitter
123+
link: https://twitter.com/practical_li
124+
- icon: fontawesome/brands/github
125+
link: https://github.com/practicalli
126+
- icon: fontawesome/brands/docker
127+
link: https://hub.docker.com/u/practicalli
128+
129+
# Navigation
130+
nav:
131+
- Introduction:
132+
- Overview: index.md
133+
- REPL Workflow: introduction/repl-workflow.md
134+
- Features: introduction/features.md
135+
- Contributing: https://practical.li/contributing
136+
- Install:
137+
- Overview: install/index.md
138+
- Terminal: install/terminal-tools.md
139+
- Neovim: install/neovim.md
140+
- Multiple Configs: install/multiple-configurations.md
141+
- Neovide: install/neovide.md
142+
- Neovim Basics:
143+
- neovim-basics/index.md
144+
- File Buffer Window Tab: neovim-basics/file-buffer-window-tab.md
145+
- Notifications: neovim-basics/notifications.md
146+
- Multi-modal Editing: neovim-basics/multi-modal-editing.md
147+
- Navigation: neovim-basics/navigation.md
148+
- Registers: neovim-basics/registers.md
149+
- Search Replace:
150+
- neovim-basics/search-replace/index.md
151+
- Substitute: neovim-basics/search-replace/substitute.md
152+
- Spectre: neovim-basics/search-replace/spectre.md
153+
- Spell Check: neovim-basics/spell-check.md
154+
- Comments: neovim-basics/comments.md
155+
- Snippets: neovim-basics/snippets.md
156+
- Plugin Manager: neovim-basics/plugin-manager.md
157+
- Multiple Cursors: neovim-basics/multiple-cursors.md
158+
- Zen Mode: neovim-basics/zen-mode.md
159+
- Terminal: neovim-basics/terminal.md
160+
- Clojure REPL Workflow:
161+
- repl-driven-development/index.md
162+
- Conjure: repl-driven-development/conjure.md
163+
- Documentation: repl-driven-development/documentation.md
164+
- Structural Editing: repl-driven-development/structural-editing.md
165+
- Refactor Tools: repl-driven-development/refactor-tools.md
166+
- Testing: repl-driven-development/testing.md
167+
- Source Control:
168+
- source-control/index.md
169+
- source-control/diff.md
170+
- Lazygit: source-control/lazygit.md
171+
- Neogit: source-control/neogit.md
172+
- Octo: source-control/octo.md
173+
- API tools:
174+
- api-tools/index.md
175+
- Ultra-Mobile Neovim:
176+
- termux/index.md
177+
- F-Droid: termux/fdroid-install.md
178+
- Termux Setup: termux/setup.md
179+
- Using Termux: termux/using-termux.md
180+
- Git: termux/git.md
181+
- Zsh: termux/custom-shell.md
182+
- Clojure: termux/clojure-development.md
183+
- Neovim: termux/neovim.md
184+
- Reference:
185+
- Astro config Design:
186+
- reference/configuration/index.md
187+
- AstroCommunity: reference/configuration/astrocommunity.md
188+
- Modal Editing:
189+
- reference/modal-editing/index.md
190+
- reference/modal-editing/case.md
191+
- reference/modal-editing/g-menu.md
192+
- reference/modal-editing/key-binding-reference.md
193+
- reference/modal-editing/moving-around.md
194+
- reference/modal-editing/motions.md
195+
- reference/modal-editing/folding.md
196+
- reference/modal-editing/narrowing.md
197+
- reference/modal-editing/speaking-vim.md
198+
- reference/modal-editing/neovim-quick-reference.md
199+
- reference/modal-editing/tips-for-clojure.md
200+
- reference/modal-editing/visual-select.md
201+
- reference/modal-editing/z-menu.md
202+
- reference/aligning-text.md
203+
- Neovim:
204+
- reference/neovim/index.md
205+
- Standard Path: reference/neovim/standard-path.md
206+
- Quickfix: reference/neovim/quickfix.md
207+
- Changelist: reference/neovim/changelist.md
208+
- Jumplist: reference/neovim/jumplist.md
209+
- Language Providers: reference/neovim/language-providers.md
210+
- Lua Language:
211+
- reference/lua-language/index.md
212+
- Fennel: reference/fennel.md
213+
- Practicalli Config Design:
214+
- reference/configuration/practicalli/index.md
215+
- Config Design: reference/configuration/practicalli/config-design.md
216+
- Packer: reference/configuration/practicalli/packer.md
217+
- Packages:
218+
- reference/configuration/practicalli/packages/index.md
219+
- Status Line: reference/configuration/practicalli/packages/lualine.md
220+
- Treesitter: reference/configuration/practicalli/packages/nvim-treesitter.md
221+
- Writing Tips: https://practical.li/writing-tips/

0 commit comments

Comments
 (0)