WordPress theme for 73k.us
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Adam Piontek f12a0767a5 remove reference to sprite-loader 6 days ago
assets remove reference to sprite-loader 6 days ago
content-templates switched to using webpack & svgo to optimize SVG files, and inline them via PHP 6 days ago
page-templates initial commit, yay 2 years ago
src switched to using webpack & svgo to optimize SVG files, and inline them via PHP 6 days ago
.gitignore updating ignored root assets 3 weeks ago
404.php 404 page working, fixed some purgecss issues 3 weeks ago
README.md switched to using webpack & svgo to optimize SVG files, and inline them via PHP 6 days ago
comments.php working: footer widgets, searchform, search results 3 weeks ago
composer.json add composer and update 2 years ago
composer.lock add composer and update 2 years ago
custom-functions.php switched to using webpack & svgo to optimize SVG files, and inline them via PHP 6 days ago
custom-shortcodes.php switched to using webpack & svgo to optimize SVG files, and inline them via PHP 6 days ago
footer.php working: footer widgets, searchform, search results 3 weeks ago
front-page.php fixed front page layout issues on mobile 3 weeks ago
functions.php rearranged social icon handling, implemented shortcodes, front-page now uses page content 3 weeks ago
header.php switched to using webpack & svgo to optimize SVG files, and inline them via PHP 6 days ago
index.php working: footer widgets, searchform, search results 3 weeks ago
package-lock.json switched to using webpack & svgo to optimize SVG files, and inline them via PHP 6 days ago
package.json switched to using webpack & svgo to optimize SVG files, and inline them via PHP 6 days ago
page-resume.php switched to using webpack & svgo to optimize SVG files, and inline them via PHP 6 days ago
page.php Resume page working, many other small improvements 3 weeks ago
postcss.config.js replace tailwind with bootstrap: initial webpack config for development 1 month ago
screenshot.png adding screenshot thumbnail for dashboard theme list 3 weeks ago
search.php working: footer widgets, searchform, search results 3 weeks ago
searchform.php switched to using webpack & svgo to optimize SVG files, and inline them via PHP 6 days ago
socials.php switched to using webpack & svgo to optimize SVG files, and inline them via PHP 6 days ago
style.css fixing forked references 3 weeks ago
svgo.config.js switched to using webpack & svgo to optimize SVG files, and inline them via PHP 6 days ago
webpack.config.js switched to using webpack & svgo to optimize SVG files, and inline them via PHP 6 days ago

README.md

73k WordPress Bootstrap 5/PurgeCSS Theme

The WordPress theme for 73k.us, based on Bootstrap 5 and PurgeCSS.

Requirements

How to get started

  1. Clone or download the project onto your themes directory (./wp-content/themes)
  2. Run a find/replace for the following strings:
  • wp-73k
  • WP_73k
  • wp_73k_
  1. Run composer install
  2. Run npm install
  3. Set environment variables for BrowserSyncPlugin to the domain/ports you need (see webpack.config.js for variables needed).
  4. Run npm start to begin development server.

Webpack

The theme uses Webpack as its bundler with ES6 modules for JavaScript files.

Inline SVGs

SVG images and icons can be optimized and injected inline; in order to do this, @import them in main.js (see that file for examples). Optimized output files are named per config in webpack.config.js with prefixes supported for some icon packs (@mdi/svg, bootstrap-icons, heroicons), or a default prefix of svg-.

Insert one in the theme using inline_svg() function defined in custom-functions.php -- it takes two arguments: the icon file name (minus .svg extension), and a key-value array to handle svg class, outer div with class for icons, and some accessibility options. For standard square icons, use a div class if icon baseline - in rare situations just icon. For non-icon images, skip the div_class and use an svg_class as needed.

This theme also supports icons in the navbar menu items via setting icon-<PREFIX>-<ICON-NAME> in the class field for a menu item in the Wordpress menu editor.

Syntax Highlighting

This theme supports server-side syntax highlighting via the Syntax-highlighting Code Block plugin. In classes.php the plugin-provided styling is disabled, and the theme incorporates sass styling from the highlight.js node package, imported in _code-highlight.scss (to change the highlight style, change the import there).

However, the plugin doesn't support highlighting inline code, but I like that option, so the theme also incorporates highlight.js in main.js with a DOM Loaded action to highlight any code blocks tagged with the class to-highlight (must also have language-$LANG class) -- this should be done in WordPress in the editor, where you can edit a paragraph as HTML and add the classes (e.g. <code class="to-highlight language-python">).

Static Files via nginx

Static files under assets/_root cal be served by nginx with location config like below - otherwise they (or your versions of whatever you want served from your WordPress site root) should be moved to your WordPress site root.

location ~ /(robots.txt|favicon.ico|android-chrome-192x192.png|android-chrome-512x512.png|browserconfig.xml|mstile-150x150.png) {
    root /var/www/dev1/wordpress-5.8-RC2/wp-content/themes/wp-73k/assets/_root/;
    allow all;
    log_not_found off;
    access_log off;
}

Deployment

npm run build

This will run both a production and development set of webpack tasks. The enqueue hook will load the correct version of the JS file, based on whether your development/staging server's SCRIPT_DEBUG constant is set to true.

Bootstrap

You can customize Bootstrap SCSS & JavaScript imports in the assets/css/app.scss and assets/js/main.js files.

PurgeCSS

WP 73k uses PurgeCSS to remove unused styles from the production build. It scans your project directory for strings that match SCSS declarations. You can modify the directories to search for in the webpack.config.js file. Always check your production build to make sure styles you were developing with compiled correctly.