Basics Drupal 8 Theming

Total Page:16

File Type:pdf, Size:1020Kb

Basics Drupal 8 Theming BACK TO BASICS DRUPAL 8 THEMING PRESENTED BY BRIAN PERRY June 28, 2018 Slides: http://bit.ly/basiCs-d4d BRIAN PERRY Hi! • Interactive Developer at HS2 Solutions • Rocking the Chicago suburbs • Lover of all things components • ... and Nintendo d.o: brianperry Twitter: bricomedy Github: backlineint Nintendo: wabrian brianperryinteractive.com HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY HS2 SOLUTIONS HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY NOVEMBER 19, 2015 NOV 19, 2015 - DRUPAL 8 IS RELEASED “Welp, guess I need to learn Twig…” Those were simpler times. HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY MODERN FRONT END IS AMAZING • Automation • NPM, Yarn, Gulp, Grunt, Webpack, etc. • SASS, PostCSS • CSS Grid • Design systems and pattern libraries • Component libraries - Bootstrap, Foundation • The Continued Rise of JS • ES6 • Frameworks – React, Vue, Angular • Ever growing module ecosystem HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY MODERN FRONT END IS A DUMPSTER FIRE • Automation • NPM, Yarn, Gulp, Grunt, Webpack, etc. • SASS, PostCSS • CSS Grid • Design systems and pattern libraries • Component libraries - Bootstrap, Foundation • The Continued Rise of JS • ES6 • Frameworks – React, Vue, Angular • Ever growing module ecosystem HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY SINCE NOVEMBER 19, 2015 I HAVE… • Become comfortable with Twig • Incorporated Pattern Lab Into workflow • Mapped data to components via Twig • Mapped data to components via UI Patterns Module • Managed Drupal sites with Composer • Decoupled • Progressively decoupled Drupal/Angular site • Fully Decoupled Drupal/React sites (SPA/Static) • Learned (some) ES6 • Dabbled with CSS Grid HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY While creating new processes,“ it might help to find a balance between things that break new ground, but maybe also might simplify the workflow. 'ANONYMOUS’ PERSON FROM MY PEER REVIEW WHO WAS PROBABLY 100% RIGHT BACK TO BASICS Ba*sic /basick/ adjective 1. forming an essential foundation or starting point; fundamental. BASIC != EASY OPO (ONE PERSON’S OPINION) WARNING HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 12 All. Of. The. Things. DEPENDENCY CSS LAYOUT COMPONENTS MANAGEMENT JAVASCRIPT SITE BUILDING AUTOMATION TWIG LOCAL DEV CSS PREPROCESSING ENVIRONMENTS DEPENDENCY MANAGEMENT DO ü Manage Drupal Dependencies with Composer ü Manage JS Dependencies with NPM DON’T o Use Bower (mostly a reminder for me) o Worry about the hot new thing (but feel free to use Yarn if team/project prefers it) Dependency hell is a real thing, but ignoring it won’t make it go away. NEXT STEPS • Get REALLY comfortable with managing Composer and NPM dependencies HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 14 DEPENDENCY MANAGEMENT • Where does all of this stuff go? • Composer dependencies – root of Drupal project (see drupal-composer/drupal-project for example) • Node dependencies – root of your theme HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 15 DEPENDENCY MANAGEMENT HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 16 AUTOMATION DO ü Use NPM to run scripts ü Use Gulp as a task runner (my personal preference) DON’T o Get caught up in a battle over Gulp / Grunt / Webpack. If it works better for your team, use it. It is worth the initial effort to let the robots do the work for you. HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 17 AUTOMATION HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 18 CSS PROCESSING DO ü Preprocess with SASS & compile to a single CSS file ü Use SASS variables ü Post process with Autoprefixer DON’T When used responsibly a o Nest like a madman little bit of CSS processing can go a long way. o Create individual css files per partial (yet) NEXT STEPS • Follow BEM class naming conventions HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 19 CSS PREPROCESSING PACKAGE.JSON GULPFILE.JS HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 20 CSS PREPROCESSING – NEXT STEPS - BEM HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 21 CSS PREPROCESSING HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 22 CSS LAYOUT DO ü Use CSS Grid if project browser requirements will allow it. DON’T o Default to using frameworks like bootstrap/foundation if you can use CSS Grid Build with CSS Grid today NEXT STEPS for a better tomorrow. • Build layouts you’ve never thought possible HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 23 CSS LAYOUT HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 24 JAVASCRIPT DO ü Properly include your JS as libraries ü Use Drupal behaviors DON’T o Just copy and paste some JS code from Stack Overflow and add it to a global library. The time to modernize your approach to o Default to using jQuery for everything JavaScript is now. NEXT STEPS • Use babel to compile your JS (wait, what?) • Start becoming familiar with ES6 (and beyond) syntax HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 25 JAVASCRIPT – DRUPAL BEHAVIORS HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 26 JAVASCRIPT – NEXT STEPS – COMPILE JS • Temporary Solution: • Repurpose package.json from /core in your theme • You will need to merge your own scripts / dependencies • Copy /scripts/js from /core into your theme • Run npm install to add dependencies • You can now run scripts to compile *.es6.js files: • npm run build:js • npm run watch:js • Bonus - you get Core’s linting rules as well. • Issue to support a less copy and paste solution: https://www.drupal.org/project/drupal/issues/2957390 HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 27 JAVASCRIPT HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 28 TWIG DO ü Get to know all of the great things Twig can do (tags, filters, functions, etc) ü Follow Drupal Twig conventions in Drupal templates ü Get great at debugging Twig can do a bunch of DON’T cool stuff, but at the end of the day it’s just the o Get too carried away with logic and Twig magic in markup that we know and templates love. HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 29 TWIG • Twig Recipes – Making Drupal 8 Render the Markup You Want • In the next session slot - 4:30 – 144 HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 30 TWIG HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 31 COMPONENTS DO ü Use template suggestions responsibly ü Twig Include/Extend/Embed for reuse DON’T o Overcomplicate your use of Twig Include / Extend Start by thinking in o Fail the ‘time to markup test’ components, and grow into using a full pattern library driven workflow. NEXT STEPS • Use a Pattern Library / Style Guide • Integrate with an external Pattern Library HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 32 COMPONENTS – INCLUDE/EXTEND/EMBED paragraph--marketing-content-section.html.twig HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 33 COMPONENTS HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 34 SITE BUILDING DO ü Use Responsive images ü Use Drupal Layouts (Layout API / Layout Discovery) DON’T o Make ‘manage display’ in the admin UI a liar NEXT STEPS Embrace layouts now to prepare for Drupal’s • Get ready for Layout Builder bright layout future. HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 35 SITE BUILDING - LAYOUTS • Registering Layouts mytheme.layouts.yml HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 36 SITE BUILDING HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 37 BONUS: LOCAL DEV ENVIRONMENT DO ü Use a local dev environment consistent with the rest of your team DON’T o Sink crazy amounts of time into maintaining your VM NEXT STEPS VM configuration can help eliminate versioning issues and make front end • Experiment with Docker VMs (my preference is Lando) tools more easily available. • Run all front end tooling in containers HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 38 BONUS: LOCAL DEV ENVIRONMENT HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 39 WAIT A MINUTE… Is Drupal not the hard part of Drupal theming? IN REVIEW DO ü Create beautiFul, responsive, Fast, accessible Drupal sites DON’T o Let the Bartik stereotype live on (be more Umami) D8 Front End FTW! NEXT STEPS • Share your work and contribute back HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 41 THANKS! Brian Perry Interactive Developer HS2 Solutions, Inc. [email protected] @bricomedy d.o: brianperry HOW COULD THERE POSSIBLY BE MORE QUESTIONS? HS2 SOLUTIONS | CONFIDENTIAL AND PROPRIETARY 43.
Recommended publications
  • Marketing Cloud Published: August 12, 2021
    Marketing Cloud Published: August 12, 2021 The following are notices required by licensors related to distributed components (mobile applications, desktop applications, or other offline components) applicable to the services branded as ExactTarget or Salesforce Marketing Cloud, but excluding those services currently branded as “Radian6,” “Buddy Media,” “Social.com,” “Social Studio,”“iGoDigital,” “Predictive Intelligence,” “Predictive Email,” “Predictive Web,” “Web & Mobile Analytics,” “Web Personalization,” or successor branding, (the “ET Services”), which are provided by salesforce.com, inc. or its affiliate ExactTarget, Inc. (“salesforce.com”): @formatjs/intl-pluralrules Copyright (c) 2019 FormatJS Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    [Show full text]
  • Paul M. Graffam Email: [email protected] ● Website: Paulgraffix.Com ​ ​ ​ ​ ​ ​ ​
    Paul Graffam Resume Paul M. Graffam Email: [email protected] ● Website: paulgraffix.com ​ ​ ​ ​ ​ ​ ​ Professional Profile ● 7+ years of work experience in programming and 4 years in agency. ● Ability to work collaboratively with colleagues across disciplines. Enthusiastic, ​ positive attitude and self-starter. ● Eager to meet challenges and quickly assimilate newest technologies, skills, concepts, and ideas. ● Self-motivated and detail orientated with strong ability to multitask. ● Superior computer skills. Proficiency with many applications as well as hand coding with a variety of IDEs. Highly capable with either PC or Mac. ● Creative troubleshooter/problem-solver who works hard and loves a challenge. ● Bilingual: fluent in both English and Spanish. Skills Front End Back End Other ● XHTML & HTML5 ● PHP ● Windows ​ ​ ​ ● CSS3 & CSS4 (postCSS) ● Python ● Mac ​ ​ ​ ● Javascript (ES5 & ES6) ● Ruby & Rails/ERB ● Linux ​ ​ ​ ● jQuery ● VB/C# .NET ● Adobe CS ​ ​ ​ ● LESS/SASS/Stylus ● SQL/NoSQL (mongoDB) ● Visual Studio ​ ​ ​ ● Grunt/Gulp/Browserify ● XML & XSL ● Sublime Text/Atom ​ ​ ​ ● Webpack ● Apache/Google App Engine ● WebStorm ​ ​ ​ ● React/Angular/Backbone ● Heroku/Firebase/Azure/AWS ● Git/SVN ​ ​ ​ ● Bower/NPM ● Node.js & Express ● SQL Server ​ ​ ​ ● Bootstrap/Foundation ● CMSes (Craft, Contentful, ● Unity3D ​ ​ ​ ● Handlerbars/Moustache Drupal, Sharepoint, Wordpress) ● Bash/SH ​ ​ ● Jade/HAML ● Social APIs ● Premiere/Final Cut ​ ​ ​ ● WebGL/Three.js Pro ​ Work Experience Interactive Developer for Stinkdigital - Dumbo, NY Oct ‘15 – Jul ‘16 ​ ​ ​ ​ ● Immersed into a massive project for Spotify’s Year in Music on the first day, ​ ​ ​ ​ working on both the front and back end. Consisting of a responsive WebGL experience via pixi.js and tied to Spotify’s API, translated into 35 languages all managed by a custom CMS. Received multiple Webbys, FWA and Awwwards winners.
    [Show full text]
  • Webinar - Kick Start Your Widget Development
    Webinar - Kick start your widget development Kickstart your widget development Jelte Lagendijk | Feb 5 2016 Thank you for joining the Expert webinar "Kickstart your widget development". My name is Jelte Lagendijk, I am a JavaScript developer for the Community team at Mendix. At the Community team we want to enable our Community to create content. In this particular case, we want to enable you as a JavaScript developer to develop your own widgets. For this webinar we expect you to know how a widget works, have technical knowledge about JavaScript and have a basic understanding what Node.js is. Agenda Agenda Scaffolding a widget in a minute Speeding up development using Grunt Updating existing widgets Deprecations (Bonus) Demo time! This webinar will demonstrate new tooling: the use of the Yeoman widget generator and Grunt. We’ll not go in-depth on how a widget works. We have a tutorial on how to create your first widget: https://world.mendix.com/display/howto6/Creating+a+Basic+Hello+World+Custom+Widget Scaffolding (1) Scaffolding (1) Previously Brackets + Mendix widget plugin . Visual and easy to use . Has a few bugs that are hard to fix . Less support – smaller community Introducing a new tool: Yeoman generator . Editor independent . Faster . Better maintainable The Developing a widget using Brackets how-to can be found here: https://world.mendix.com/display/howto6/Getting+started+with+the+Widget+Development +Plugin+for+Adobe+Brackets Scaffolding 2 Scaffolding (2) Yeoman is a scaffolding tool running on top of Node.js + Client uses generators as templates to scaffold various web applications or frameworks .
    [Show full text]
  • Webpack Cheatsheet
    12/25/18, 655 PM Page 1 of 1 ! Edit Webpack cheatsheet — Proudly sponsored by — Airbrake.io Full-stack error tracking & analytics for Python developers. Try it Free! ethical ads via CodeFund This is a very basic “getting started with Webpack” guide for use with Webpack v3. This doesnʼt cover all features, but it should get you started in understanding the config file format. Basic config webpack.config.js module.exports = { context: __dirname, entry: 'src/app.js', output: { path: __dirname + '/public', filename: 'app.js' } } Terminal npm install --save-dev webpack webpack build webpack -- -p build production webpack -- --watch compile continuously This compiles src/app.js into public/app.js. (Note: you may need to use ./node_modules/.bin/webpack as a command if youʼre not invoking Webpack via npm scripts.) Multiple files webpack.config.js module.exports = { entry: { app: 'src/app.js', vendor: 'src/vendor.js' }, output: { path: __dirname + '/public', filename: '[name].js' } } This creates app.js and vendor.js. # Loaders Babel Terminal npm install --save-dev \ babel-loader \ babel-preset-env \ babel-preset-react webpack.config.js module.exports = { ··· module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: [ { loader: 'babel-loader' } ] } ] } } .babelrc { "presets": [ "env", "react" ] } Adds support for Babel. CSS Terminal npm install --save-dev \ css-loader \ style-loader webpack.config.js module.exports = { ··· module: { rules: [ { test: /\.css$/, exclude: /node_modules/, use: [ { loader: 'style-loader' }, { loader: 'css-loader'
    [Show full text]
  • Open Source Licenses Visionize Lab Suite the Software of Visionize Lab Suite Contains Open Source Licenses Included in This Document
    Open Source Licenses VisioNize Lab Suite The software of VisioNize Lab Suite contains open source licenses included in this document. Package name License Website/Repository Publisher/Author @angular-devkit/[email protected] MIT https://github.com/angular/angular-cli Angular Authors @angular-devkit/[email protected] MIT https://github.com/angular/angular-cli Angular Authors @angular-devkit/build-optimiz- MIT https://github.com/angular/angular-cli Angular Authors [email protected] @angular-devkit/build-web- MIT https://github.com/angular/angular-cli Angular Authors [email protected] @angular-devkit/[email protected] MIT https://github.com/angular/angular-cli Angular Authors @angular-devkit/[email protected] MIT https://github.com/angular/angular-cli Angular Authors @angular/[email protected] MIT https://github.com/angular/angular angular @angular/[email protected] MIT https://github.com/angular/angular-cli Angular Authors @angular/[email protected] MIT https://github.com/angular/angular angular @angular/[email protected] MIT https://github.com/angular/angular @angular/[email protected] MIT https://github.com/angular/angular angular @angular/[email protected] MIT https://github.com/angular/angular angular @angular/[email protected] MIT https://github.com/angular/angular angular @angular/[email protected] MIT https://github.com/angular/angular angular @angular/platform-browser-dynam- MIT https://github.com/angular/angular angular [email protected] @angular/[email protected] MIT https://github.com/angular/angular angular @angular/[email protected] MIT https://github.com/angular/angular angular
    [Show full text]
  • Jquery Cloudflare Your Company Via Grunt-Contrib-Uglify Used to Build That Jquery
    JavaScript & Security get married Yan Zhu NCC Group SF Open Forum 9/17/15 F YEAH RUSTIC PENNSYLVANIA WEDDING THEME!! About me: ● Security Engineer at Yahoo! by day ● EFF Technology Fellow (Let’s Encrypt, HTTPS Everywhere) ● That’s a real photo of me -> Our story 09.??.1995 08.19.15 JavaScript released! Started investigating JS optimizer security as a side project. ??.??.1991 01.05.11 08.23.15 I was born! Wrote my first line of Got bored and mostly JavaScript. stopped working on this project. This talk is about JavaScript. (sorry not sorry) JAVASCRIPT What runs JS? ● Browsers ● Servers (node/io.js) ● Soon: everything Inspiration GET YOUR COPY TODAY PoC||GTFO 0x08 https://www.alchemistowl.org/pocorgtfo/ “No amount of source-level verification or scrutiny will protect you from using untrusted code. In demonstrating the possibility of this kind of attack, I picked on the C compiler. I could have picked on any program-handling program such as an assembler, a loader, or even hardware microcode. As the level of program gets lower, these bugs will be harder and harder to detect.” Ken Thompson, Reflections on Trusting Trust (1984) seen in the wild! JS isn’t “compiled,” but ... ● Transpilers to JS exist for every major language ● JS sugar (CoffeeScript, Coco, LiveScript, Sibilant) ● Optimizers (Closure, Uglify) ● Static typing (Closure, Flow, TypeScript, asm.js) ● Language extensions (React’s JSX) ● ES6 -> ES5 converter (Babel) more at https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that- compile-to-js Let’s get hackin’ Step 1: Pick a JS library Who uses UglifyJS2? INSERT OVERCROPPED LOGO gruntjs jquery cloudflare your company via grunt-contrib-uglify used to build that jquery.
    [Show full text]
  • How to Pick Your Build Tool
    How to Pick your Build Tool By Nico Bevacqua, author of JavaScript Application Design Committing to a build technology is hard. It's an important choice and you should treat it as such. In this article, based on the Appendix from JavaScript Application Design, you'll learn about three build tools used most often in front-end development workflows. The tools covered are Grunt, the configuration-driven build tool; npm, a package manager that can also double as a build tool; and Gulp, a code-driven build tool that's somewhere in between Grunt and npm. Deciding on a technology is always hard. You don't want to make commitments you won't be able to back out of, but eventually you'll have to make a choice and go for something that does what you need it to do. Committing to a build technology is no different in this regard: it's an important choice and you should treat it as such. There are three build tools I use most often in front-end development workflows. These are: Grunt, the configuration-driven build tool; npm, a package manager that can also double as a build tool; and Gulp, a code-driven build tool that's somewhere in between Grunt and npm. In this article, I'll lay out the situations in which a particular tool might be better than the others. Grunt: The good parts The single best aspect of Grunt is its ease of use. It enables programmers to develop build flows using JavaScript almost effortlessly. All that's required is searching for the appropriate plugin, reading its documentation, and then installing and configuring it.
    [Show full text]
  • Automated Large-Scale Multi-Language Dynamic Program
    Automated Large-Scale Multi-Language Dynamic Program Analysis in the Wild Alex Villazón Universidad Privada Boliviana, Bolivia [email protected] Haiyang Sun Università della Svizzera italiana, Switzerland [email protected] Andrea Rosà Università della Svizzera italiana, Switzerland [email protected] Eduardo Rosales Università della Svizzera italiana, Switzerland [email protected] Daniele Bonetta Oracle Labs, United States [email protected] Isabella Defilippis Universidad Privada Boliviana, Bolivia isabelladefi[email protected] Sergio Oporto Universidad Privada Boliviana, Bolivia [email protected] Walter Binder Università della Svizzera italiana, Switzerland [email protected] Abstract Today’s availability of open-source software is overwhelming, and the number of free, ready-to-use software components in package repositories such as NPM, Maven, or SBT is growing exponentially. In this paper we address two straightforward yet important research questions: would it be possible to develop a tool to automate dynamic program analysis on public open-source software at a large scale? Moreover, and perhaps more importantly, would such a tool be useful? We answer the first question by introducing NAB, a tool to execute large-scale dynamic program analysis of open-source software in the wild. NAB is fully-automatic, language-agnostic, and can scale dynamic program analyses on open-source software up to thousands of projects hosted in code repositories. Using NAB, we analyzed more than 56K Node.js, Java, and Scala projects. Using the data collected by NAB we were able to (1) study the adoption of new language constructs such as JavaScript Promises, (2) collect statistics about bad coding practices in JavaScript, and (3) identify Java and Scala task-parallel workloads suitable for inclusion in a domain-specific benchmark suite.
    [Show full text]
  • Spring Semester 2020 - Week 13
    Comp 324/424 - Client-side Web Design Spring Semester 2020 - Week 13 Dr Nick Hayward Systems Management - Build Tools & Project Development Extra notes Systems Environments & Distributions Build first - overview and usage Grunt basics integrate with project outline and development integrate with project release Webpack setup for local project basic usage assets for local project … JavaScript - Prototype intro along with the following traits of JS (ES6 …), functions as first-class objects versatile and useful structure of functions with closures combine generator functions with promises to help manage async code async & await… prototype object may be used to delegate the search for a particular property a prototype is a useful and convenient option for defining properties and functionality accessible to other objects a prototype is a useful option for replicating many concepts in traditional object oriented programming JavaScript - Prototype understanding prototypes in JS, we may create objects, e.g. using object-literal notation a simple value for the first property a function assigned to the second property another object assigned to the third object let testObject = { property1: 1, prooerty2: function() {}, property3: {} } as a dynamic language, JS will also allow us to modify these properties delete any not required or simply add a new one as necessary this dynamic nature may also completely change the properties in a given object this issue is often solved in traditional object-oriented languages using inheritance in JS, we can use prototype to implement inheritance JavaScript - Prototype basic idea of prototypes every object can have a reference to its prototype a delegate object with properties - default for child objects JS will initially search the onject for a property then, search the prototype i.e.
    [Show full text]
  • Jiho£Eská Univerzita V Ƒeských Bud¥Jovicích Postcss a Cssnext Jako
    Jiho£eská univerzita v eských Bud¥jovicích Pedagogická fakulta Katedra informatiky PostCSS a cssnext jako nástroje pro transformaci a modularitu CSS JavaScriptem PostCSS and cssnext, tools enabling transformation and modularity of CSS using JavaScript Bakalá°ská práce Vypracoval: Jakub Jetleb Vedoucí práce: PaedDr. Petr Pexa, Ph.D. eské Bud¥jovice 2018 Prohlá²ení Prohla²uji, ºe svoji bakalá°skou práci jsem vypracoval samostatn¥ pouze s po- uºitím pramen· a literatury uvedených v seznamu citované literatury. Prohla²uji, ºe v souladu s 47b zákona £. 111/1998 Sb. v platném zn¥ní sou- hlasím se zve°ejn¥ním své bakalá°ské práce, a to v nezkrácené podob¥ elektro- nickou cestou ve ve°ejn¥ p°ístupné £ásti databáze STAG provozované Jiho£es- kou univerzitou v eských Bud¥jovicích na jejích internetových stránkách, a to se zachováním mého autorského práva k odevzdanému textu této kvalika£ní práce. Souhlasím dále s tím, aby toutéº elektronickou cestou byly v souladu s uvedeným ustanovením zákona £. 111/1998 Sb. zve°ejn¥ny posudky ²kolitele a oponent· práce i záznam o pr·b¥hu a výsledku obhajoby kvalika£ní práce. Rovn¥º souhlasím s porovnáním textu mé kvalika£ní práce s databází kvali- ka£ních prací Theses.cz provozovanou Národním registrem vysoko²kolských kvalika£ních prací a systémem na odhalování plagiát·. V eských Bud¥jovicích dne 8. £ervence 2018. Abstrakt/Anotace Cílem bakalá°ské práce je zpracovat problematiku nástroj· PostCSS a CSSnext, které jsou ur£eny pro transformaci a modularitu CSS JavaScriptem vyuºitím prom¥nných a vkládaných import·. Tyto nástroje usnad¬ují práci p°i tvorb¥ front-end webových aplikací, díky standardizované syntaxi a modularit¥ nap°.
    [Show full text]
  • Maven Build Plugin Example
    Maven Build Plugin Example Animal and kneeling Emanuel redecorates, but Ingram papistically prong her econometrics. Is Cob always ectypal and tetchy when obsecrates some sox very penitently and apiece? Bernard interdigitate coevally as untrained Werner buzz her cestode animalize bitingly. There for all of cleaning up properly coded threads. Maven dependencies need additional plugins and test your plugin for property always have your project package content in order of questions and we do not. Each artifact per default values provided by them again later in the redundant build. Ports to clean install in maven javadoc for communication via maven continues processing time dependency to enable them early in their own. In maven code in the example, maven build plugin example. You can be used for building a small change with tools for more examples describe itself. The examples of requests are written to rollup all information and below plugin group id is. Dockerfile only exist in maven repositories like tomcat maven failsafe configurations in dev mode in every available. Pojos generally delivers a maven install the examples describe itself. If the build. The example a history of problems because the order, it does maven build plugin example. You generate such malformed projects using maven can easily by setting proxies transparently. How to a given, developers or millions. At build plugins available plugin example, not very basic usage of building an osgi manifest headers for delivering web. For managing internal ip address inconsistent and ai, with confidential vms and drools to configure maven, web application name. Dockerfile build plugins, maven plugin example, the building and suggestions or.
    [Show full text]
  • System Installation Instructions Team 9
    System Installation Instructions Team 9 Technologies and Frameworks used: AngularJS, SpringBoot, Maven 1) Clone repository https://github.ccs.neu.edu/cs5500/team-9.git into your system. 2) If you are checking out from version control from inside IDEA. a. Click no if this dialogue pops up. Back end setup: 3) Navigate to the folder “Logic” in <your_local_repository> -> team9 -> phaseC. 4) Open “Logic” as project in IntelliJ IDEA. 5) Right click on pom.xml in <your_local_repository> -> team9 -> phaseC -> Logic -> msd and click on “add as maven project”. 6) Add your project sdk. 7) Wait till maven install all dependencies. 8) Your backend is set up. Front end setup: 1) Navigate to “UI” folder in <your_local_repository> -> team9 -> phaseC. 2) Open “UI” as project in Web Storm or any web related IDE of your choice. 3) In the terminal of your web IDE or Windows PowerShell or terminal on the mac, make sure that the location is <your_local_repository> -> team9 -> phaseC -> UI. 4) Run these commands a. npm install grunt-cli b. npm install c. bower install Note: If the above command doesn’t work, run 1. npm install bower 2. bower install 5) The front end is set up. Running the System: 1) If you are on an apple system: a. Navigate to the file “FileUtils.java” b. Change line 18 to return classLoader + File.separator + "src" + File.separator + "main" + File.separator + “resources"; 2) Starting the backend server: run MsdApplication.java by clicking the “play” button next to public static void main. This starts your back-end server. 3) Starting the front-end server: run the following command in the terminal.
    [Show full text]