Version 5.0 of the Documentation theme for Jekyll changes some fundamental ways the theme works to provide product-specific sidebars, intended to accommodate a site where multiple products are grouped together on the same site rather than generated out as separate outputs.
放一个数据看看
In previous versions of the theme, I built the theme to generate different outputs for different scenarios based on various filtering attributes that might include product, version, platform, and audience variants.
However, this model results in siloed outputs and lots of separate file directories to manage. Instead of having 30 separate sites for your content (or however many variants you might have been producing), in this version of the theme I’ve moved towards a strategy of having one site with multiple products.
For each product, you can associate a unique sidebar with each of the product’s pages. This allows you to have all your documentation on one site, but with separate navigation that is tailored to a view of that product.
You can still output to both web and PDF. And if you really need multiple site outputs, you can still do so by using multiple configuration files that trigger different builds. But my conclusion after using the multiple site output model for some years is that it’s a bad practice for tech comm.
Permalinks
With this theme, since you’ll be publishing to one site, I’ve implement permalinks instead of relative links. Using permalinks means the way you store pages is much more flexible. You can store topics in folders and subfolders, etc., to any degree. But note that with permalinks you can’t view the content offline (outside of Jekyll’s preview server) nor on a separate site other than the one specified in the configuration file. Permalinks are how Jekyll was designed to work, and the sites just work better that way.
Kramdown and Rouge
I also switched from redcarpet and Pygments to Kramdown and Rouge to align with the current direction of Jekyll 3.0. Kramdown is a Markdown filter (it’s slightly different from Github-flavored Markdown). Rouge is a syntax highlighter. Pygments had some dependencies on Python, which made it more cumbersome for Windows users.
Blog feature
I included a blog feature with this version of the theme. You can write posts and view them through the News link. There’s also an archive for blog posts that sorts posts by year.
Additionally, the tagging system works across both the blog and pages, so your tags allow users to move laterally across the site based on topics they’re interested in. When you view a tag archive, the sidebar shows a list of tags.
Updated documentation
I updated the documentation for the theme. The switch from the multi-site outputs to the single-site with multiple sidebars required updating a lot of different parts of the documentation and code.
Fixed errors
Previously I had some errors with the HTML that showed up in w3c HTML validator analyses. This caused some small problems in certain browsers or systems less tolerant of the errors. I fixed all of the errors.
Accessing the old theme
If you want to access the old theme, you can still find it here.
orzh-introduction
X-WAF-README
nginx-lua-module-zh-wiki
orange_about
pra_flame_how
orzh-introduction
X-WAF-README
nginx-lua-module-zh-wiki
orange_about
titlepage
tocpage
p1_landing_page
p1_sample1
p1_sample2
p1_sample3
p1_sample4
p1_sample5
p1_sample6
p1_sample7
titlepage
tocpage
p2_landing_page
p2_sample1
p2_sample2
p2_sample3
p2_sample4
p2_sample5
p2_sample6
p2_sample7
p2_sample8
p2_sample9
p2_sample10
p2_sample11
p2_sample12
p2_sample13
p2_sample14
titlepage
tocpage
p1_landing_page
p1_sample1
p1_sample2
p1_sample3
p1_sample4
p1_sample5
p1_sample6
p1_sample7
titlepage
tocpage
X-WAF-README
xwaf_installation
xwaf_depoly
xwaf_README
xwaf_advanced_readme
xwaf_getting_started
xwaf_faqs_readme
xwaf_roadmap
titlepage
tocpage
nginx-lua-module-zh-wiki
titlepage
tocpage
orange_api_server
orange_build_plugin
orange_dashboard_usage
orange_README
orange_basic_auth
orange_basic_info
orange_divide
orange_key_auth
orange_monitor
orange_rate_limiting
orange_redirect
orange_rewrite
orange_stat
orange_waf
orange_condition
orange_expression
orange_extraction
orange_extractor
orange_handle
orange_judge
orange_rule
orange_about
orange_contributing
orange_issues
orange_usages
titlepage
tocpage
add_new_lua_api
cosocket
get_req_body
get_url_param
helloworld
how_request_http
inline_var
install
install_on_centos
install_on_ubuntu
install_on_windows
install_osx
log_response
outtest
response
safe_sql
share_var
simple_api
sub_request
work_with_location
array_size
break
brief
build_env
call_user_func_array
capture
class
control_structrues
dot_diff
dummy_var
FFI
file
for
function_before_use
function_define
function_descrip
function_parameter
function_result
if_else
local
main
math_library
metatable
module_is_evil
module
not_nill
not_use_lib
not_use_module
object_oriented
operator
re
repeat
string_library
table_library
time_date_function
what_jit
while
pra_flame_how
pra_flame_install
pra_flame_what
pra_flame_when
pra_ngx_lua_allow_deny
pra_ngx_lua_block_io
pra_ngx_lua_cache
pra_ngx_lua_capture
pra_ngx_lua_continue_after_eof
pra_ngx_lua_debug
pra_ngx_lua_ffi
pra_ngx_lua_hot_load
pra_ngx_lua_how_one_instance_time
pra_ngx_lua_how_use_third_lib
pra_ngx_lua_keepalive
pra_ngx_lua_log
pra_ngx_lua_lua-limit
pra_ngx_lua_lua_opt
pra_ngx_lua_lua-variable-scope
pra_ngx_lua_on_abort
pra_ngx_lua_phase
pra_ngx_lua_resolve_the_domain_name
pra_ngx_lua_shared_get_keys
pra_ngx_lua_sleep
pra_ngx_lua_timer
pra_ngx_lua_use_case
pra_ngx_lua_whats_cosocket
pra_redis_auth_connect
pra_redis_dynamic_redis_module_method
pra_redis_out_package
pra_redis_pipeline
pra_redis_pub_sub_package
pra_redis_script
pra_redis_select-keeplive
pra_postgres_health_check
pra_postgres_how_to_use
pra_postgres_not_support_transaction
pra_postgres_sql_inject
pra_postgres_timeout
pra_nginx_balancer
pra_nginx_co-work_of_location
pra_nginx_if_is_evil
pra_nginx_match_uri
pra_nginx_nginx_brief
pra_nginx_nginx_local_pcre
pra_nginx_nginx_log
pra_nginx_nginx
pra_nginx_pitfalls_and_common_mistakes
pra_nginx_reverse_proxy
pra_nginx_static_file
titlepage
tocpage
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_scan_port
candylab_common_sites_log_system
candylab_graylog_clickhouse
candylab_clickhouse_basic
candylab_logs_and_gateway
candylab_sec_system_arch
candylab_logs_dsl_waf
candylab_opensock_list
candylab_opensock_practice
candylab_opensock_email
candylab_base_on_openresty_waf
candylab_dsl_waf
candylab_honeypot_system
candylab_monitor_redis
candylab_threat_replay
candylab_pcap_monitor
candylab_monitor_website
candylab_openrestyplus_waf
candylab_windows_bigdata
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
candylab_clickhouse_basic
mydoc_hyperlinks.html#automatedlinks
mydoc_hyperlinks.html#bookmarklinks
mydoc_pages.html#someIdTag
news
nginx-lua-module-zh-wiki
nginx-development-guide-zh
orange_about
X-WAF-README
pra_flame_how