Kategorie: Mac OS X

Customizing Bootstrap 4 without changing the core files

A simple instruction to customize the Bootstrap 4.0 using SASS and Autoprefixer.

But why? You can either…

  1. download the compiled version of Bootstrap or
  2. use the source of Bootstrap 4 and compile a custom version or
  3. use the CDN server

When you choose number 2, then it’s necessary to use SASS for compiling the style sheet and Autoprefixer for CSS vendor prefixing. And this is how to get a customized version of Bootstrap:

First make sure, you’ve installed SASS and Node.js.

Then create an empty folder my_directory with the following folders and files:

my_directory
+- node_modules [folder]
+- custom.scss
+- package.json

The node_modules folder is required for some node.js modules. custom.css will hold all your customized stylesheets and package.json is used for some node.js package settings. You will see this later.

Now it’s time to load the current version of Bootstrap. Download the source of Bootstrap 4 and extract the zip to the folder /node_modules/bootstrap/.

Point your terminal to my_directory and install some node.js modules with the following command:

npm install postcss-cli autoprefixer npm-run-all

Now you can open the custom.scss file and add some costumized styles. This file can look like this:

// Custom.scss

$mixable: #ca0027;

$colors: (
 "mixable": $mixable,
);
$theme-colors: (
 "primary": $mixable
);

// Required
@import "node_modules/bootstrap/scss/bootstrap";

In this simple example, we just set a new color and use this color as primary color. A more detailed description on how to customize your theme can be found in the Bootstrap docs.

Let’s say we have made all of our customizations, so let’s open the empty file package.json. Add the following lines, which are required to combine your custom stylesheet and the Bootstrap source:

{
  "scripts": {
    "style":"sass custom.scss | postcss --use autoprefixer -o custom.css",
    "style-min":"sass custom.scss --style compressed | postcss --use autoprefixer -o custom.min.css",
    "all":"npm-run-all --parallel style style-min"
  }
}

This file contains three scripts, which can be executed like this:

To create the output file custom.css:

npm run style

To create a compressed output file custom.min.css:

npm run style-min

And to create both files at once:

npm run all

That’s it. Keep in mind, that this will just compile the stylesheet. To compile the javascript, you should refer to the Bootstrap docs and the build tools there.

VI oder VIM beenden

Um den bei vielen Linux und Unix Installationen und Tools (wie bspw. git) standardmäßig genutzten VI Editor zu beenden muss man mit der „ESC“-Taste in den Kommandomodus wechseln (am besten mehrfach drücken um ggf. schon eingegeben Kommandos abzubrechen) . Und dort dann „:q“ eingeben und Enter drücken.
Dies beendet VIM wenn vorher nichts geändert wurde. Wurde etwas am Text der geöffneten Datei geändert und man will dies speichern so nutzt man den Befehl „:wq“. Will man die Änderungen verwerfen und VI verlassen, so hilft „:q!“.

Less (CSS) unter macOS installieren

Der einfachste Weg Less auf einem Server zu installieren ist über npm (dem node.js Paketmanager) mit:

$ npm install -g less

Wenn nicht vorhanden: Command Line Tools für Xcode installieren

xcode-select --install

Wenn nicht vorhanden: HomeBrew installieren

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Wenn nicht vorhanden: Node.js installieren

brew install node

LessCSS installieren

sudo npm install -g less

Nun lassen sich die lessc Befehle ausführen.

Shell: Ausgabe aller Zeilen einer Datei bis auf die ersten x

Wenn man alle Zeilen einer Datei bis auf die ersten x auf der Konsole ausgeben möchte, kann man tail nutzen. Normalerweise kann man damit die letzten 10 Zeilen tail namesliste.txt bzw. die letzten Y Zeilen mit tail -n Y namesliste.txt ausgeben.

Wenn man jedoch alles bis auf die ersten x Zeilen einer Datei ausgeben möchte, so kann man tail -n +(x+1) nutzen. In diesem Modus gibt tail ab der hinter dem + stehenden Zeile alles aus – daher x+1.

MacPorts: mehrere PHP-Versionen gleichzeitig

MacPorts unterstützt jegliche PHP-Versionen. Diese können auch ohne Probleme gleichzeitig installiert werden. Die Pakete werden in MacPorts unter php56, php70, php71, ... usw. gelistet. Die notwendigen Befehle, um eine einzelne Version zu installieren:

MacPorts aktualisieren:

sudo port selfupdate
sudo port upgrade outdated

PHP Version (beispielsweise PHP 7.0) und ggf. erforderliche Module installieren:

sudo port install php70
sudo port install php70-apache2handler
sudo port install php70-... (je nach erforderlichen Modulen)

Nun zum Aktivieren der gewünschten PHP-Version: hier muss beachtet werden, dass es einen Unterschied zwischen der Konsole und der Anwendung von PHP in Apache gibt! So aktiviert man die PHP-Version an den unterschiedlichen Stellen:

PHP für die Konsole aktivieren:

sudo port select php php70

Überprüfen kann man die Version in der Konsole mit php -v.

PHP für Apache aktivieren:
In der Datei /opt/local/apache2/conf/http.conf die folgende Zeile einfügen oder aktivieren.

#LoadModule php5_module modules/mod_php56.so
LoadModule php7_module modules/mod_php70.so

Überprüfen kann man die Version mit phpinfo() in einer einfachen PHP-Datei.

Apache Neustarten:

sudo port unload apache2
sudo port load apache2