├── .editorconfig
├── .eslintrc.json
├── .gitattributes
├── .github
└── workflows
│ └── manual.yml
├── .gitignore
├── .htmlhintrc
├── .stylelintrc
├── CODEOWNERS
├── README.md
├── css
├── app.css
└── normalize.min.css
├── img
├── .gitkeep
├── chasing-the-snow.jpg
├── headerimage.jpg
├── profilepic.jpg
├── seeing-clearly.png
├── social-google.png
├── social-instagram.png
├── social-twitter.png
├── something-to-remember.jpg
└── village-in-the-valley.jpg
├── index.html
└── js
└── app.js
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 4
6 | end_of_line = lf
7 | charset = utf-8
8 | trim_trailing_whitespace = true
9 | insert_final_newline = true
10 |
11 | [*.md]
12 | trim_trailing_whitespace = false
13 |
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "eslint:recommended",
3 | "parserOptions": {
4 | "ecmaVersion": 6
5 | },
6 | "env": {
7 | "browser": true
8 | },
9 | "rules": {
10 | "curly": [
11 | "error",
12 | "all"
13 | ],
14 | "eqeqeq": [
15 | "error",
16 | "allow-null"
17 | ],
18 | "no-alert": "error",
19 | "no-caller": "error",
20 | "no-console": "off",
21 | "no-empty-function": "error",
22 | "no-eval": "error",
23 | "no-multi-spaces": "error",
24 | "no-multi-str": "error",
25 | "no-global-assign": "error",
26 | "no-new": "error",
27 | "no-new-func": "error",
28 | "no-new-wrappers": "error",
29 | "no-return-assign": "error",
30 | "no-script-url": "error",
31 | "no-sequences": "error",
32 | "no-unused-expressions": "error",
33 | "no-with": "error",
34 | "yoda": "error",
35 | "array-bracket-spacing": [
36 | "error",
37 | "never"
38 | ],
39 | "brace-style": [
40 | "error",
41 | "1tbs"
42 | ],
43 | "no-shadow": "error",
44 | "no-shadow-restricted-names": "error",
45 | "no-undef-init": "error",
46 | "camelcase": "error",
47 | "comma-spacing": "error",
48 | "eol-last": "error",
49 | "quotes": [
50 | "error",
51 | "single",
52 | {
53 | "avoidEscape": true,
54 | "allowTemplateLiterals": true
55 | }
56 | ],
57 | "indent": [
58 | "error",
59 | 4,
60 | {
61 | "SwitchCase": 1
62 | }
63 | ],
64 | "key-spacing": [
65 | "error",
66 | {
67 | "beforeColon": false,
68 | "afterColon": true
69 | }
70 | ],
71 | "keyword-spacing": "error",
72 | "new-cap": "error",
73 | "new-parens": "error",
74 | "no-array-constructor": "error",
75 | "no-multiple-empty-lines": [
76 | "error",
77 | {
78 | "max": 2
79 | }
80 | ],
81 | "no-new-object": "error",
82 | "func-call-spacing": [
83 | "error",
84 | "never"
85 | ],
86 | "no-trailing-spaces": "error",
87 | "semi": [
88 | "error",
89 | "always"
90 | ],
91 | "semi-spacing": [
92 | "error",
93 | {
94 | "before": false,
95 | "after": true
96 | }
97 | ],
98 | "space-before-blocks": [
99 | "error",
100 | "always"
101 | ],
102 | "space-before-function-paren": [
103 | "error",
104 | {
105 | "anonymous": "always",
106 | "named": "never"
107 | }
108 | ],
109 | "space-in-parens": [
110 | "error",
111 | "never"
112 | ],
113 | "space-infix-ops": "error"
114 | }
115 | }
116 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Set the default behavior, in case people don't have core.autocrlf set.
2 | # https://help.github.com/articles/dealing-with-line-endings/
3 | * text=auto
4 |
--------------------------------------------------------------------------------
/.github/workflows/manual.yml:
--------------------------------------------------------------------------------
1 | # Workflow to ensure whenever a Github PR is submitted,
2 | # a JIRA ticket gets created automatically.
3 | name: Manual Workflow
4 |
5 | # Controls when the action will run.
6 | on:
7 | # Triggers the workflow on pull request events but only for the master branch
8 | pull_request_target:
9 | types: [assigned, opened, reopened]
10 |
11 | # Allows you to run this workflow manually from the Actions tab
12 | workflow_dispatch:
13 |
14 | jobs:
15 | test-transition-issue:
16 | name: Convert Github Issue to Jira Issue
17 | runs-on: ubuntu-latest
18 | steps:
19 | - name: Checkout
20 | uses: actions/checkout@master
21 |
22 | - name: Login
23 | uses: atlassian/gajira-login@master
24 | env:
25 | JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
26 | JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
27 | JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
28 |
29 | - name: Create NEW JIRA ticket
30 | id: create
31 | uses: atlassian/gajira-create@master
32 | with:
33 | project: CONUPDATE
34 | issuetype: Task
35 | summary: |
36 | Github PR - nd104 PDSND | Repo: course-git-blog-project | PR# ${{github.event.number}}
37 | description: |
38 | Repo link: https://github.com/${{ github.repository }}
39 | PR no. ${{ github.event.pull_request.number }}
40 | PR title: ${{ github.event.pull_request.title }}
41 | PR description: ${{ github.event.pull_request.description }}
42 | In addition, please resolve other issues, if any.
43 | fields: '{"components": [{"name":"nd104 - Programming for Data Science"}], "customfield_16449":"https://classroom.udacity.com/nanodegrees/nd000/parts/e36917bf-8075-4d97-8045-f610b37f041f", "customfield_16450":"Resolve the PR", "labels": ["github"], "priority":{"id": "4"}}'
44 |
45 | - name: Log created issue
46 | run: echo "Issue ${{ steps.create.outputs.issue }} was created"
47 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | project.docx
2 | .DS_Store
3 | .github/**
4 |
--------------------------------------------------------------------------------
/.htmlhintrc:
--------------------------------------------------------------------------------
1 | {
2 | "tagname-lowercase": true,
3 | "attr-lowercase": true,
4 | "attr-value-double-quotes": true,
5 | "attr-no-duplication": true,
6 | "doctype-first": true,
7 | "id-unique": true,
8 | "src-not-empty": true,
9 | "alt-require": true,
10 | "spec-char-escape": true,
11 | "tag-pair": true,
12 | "title-require": true,
13 | "doctype-html5": true,
14 | "style-disabled": true,
15 | "head-script-disabled": true
16 | }
17 |
--------------------------------------------------------------------------------
/.stylelintrc:
--------------------------------------------------------------------------------
1 | {
2 | "rules": {
3 | "block-closing-brace-newline-after": "always",
4 | "block-closing-brace-newline-before": "always-multi-line",
5 | "block-no-empty": true,
6 | "block-opening-brace-newline-after": "always-multi-line",
7 | "block-opening-brace-space-before": "always",
8 | "color-hex-case": "lower",
9 | "color-hex-length": "long",
10 | "color-no-invalid-hex": true,
11 | "comment-empty-line-before": "always",
12 | "comment-whitespace-inside": "always",
13 | "declaration-block-no-shorthand-property-overrides": true,
14 | "declaration-block-semicolon-newline-after": "always",
15 | "declaration-block-semicolon-space-before": "never",
16 | "declaration-block-trailing-semicolon": "always",
17 | "declaration-colon-space-after": "always",
18 | "declaration-colon-space-before": "never",
19 | "declaration-no-important": true,
20 | "function-calc-no-unspaced-operator": true,
21 | "function-comma-space-after": "always",
22 | "function-comma-space-before": "never",
23 | "function-parentheses-space-inside": "never",
24 | "function-whitespace-after": "always",
25 | "indentation": 4,
26 | "media-feature-colon-space-after": "always",
27 | "media-feature-colon-space-before": "never",
28 | "media-feature-name-no-vendor-prefix": true,
29 | "media-feature-range-operator-space-after": "always",
30 | "media-feature-range-operator-space-before": "always",
31 | "media-query-list-comma-space-after": "always-single-line",
32 | "media-query-list-comma-space-before": "never",
33 | "no-eol-whitespace": true,
34 | "number-leading-zero": "always",
35 | "number-no-trailing-zeros": true,
36 | "length-zero-no-unit": true,
37 | "rule-non-nested-empty-line-before": ["always", { "except": ["after-single-line-comment"] }],
38 | "selector-combinator-space-after": "always",
39 | "selector-combinator-space-before": "always",
40 | "selector-list-comma-newline-after": "always",
41 | "selector-list-comma-space-before": "never",
42 | "selector-pseudo-element-colon-notation": "double",
43 | "value-list-comma-space-after": "always",
44 | "value-list-comma-space-before": "never"
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @udacity/active-public-content
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Version Control with Git
2 |
3 | This is the repo for [Udacity's Version Control with Git course](https://www.udacity.com/course/version-control-with-git--ud123). In the course, students will learn version control while learning the basics to intermediate knowledge of Git.
4 |
5 | This repo contains the source code of a blog project that will be used throughout the course.
6 |
7 | ## Table of Contents
8 |
9 | * [Instructions](#instructions)
10 | * [Creator](#creators)
11 |
12 | ## Instructions
13 |
14 | * clone the project
15 | * open the index file in a browser
16 |
17 | ## Creators
18 |
19 | * Richard Kalehoff
20 | - [https://github.com/richardkalehoff](https://github.com/richardkalehoff)
21 | - [https://twitter.com/richardkalehoff](https://twitter.com/richardkalehoff)
22 |
23 | With the help of:
24 |
25 | * Colt
26 | * James
27 | * Julia
28 |
--------------------------------------------------------------------------------
/css/app.css:
--------------------------------------------------------------------------------
1 | /*** Site Colors ***
2 |
3 | pale-grey: #fafbfc
4 | pale-grey-two: #dbe2e8
5 | dark: #2e3d49
6 | bluegrey: #7d97ad
7 | aquamarine: #02ccba
8 |
9 | */
10 |
11 | html {
12 | box-sizing: border-box;
13 | }
14 |
15 | *,
16 | *::before,
17 | *::after {
18 | box-sizing: inherit;
19 | }
20 |
21 | body {
22 | background-color: #fafbfc;
23 | color: #2e3d49;
24 | font-family: Georgia, Times, 'Times New Roman', serif;
25 | }
26 |
27 | h1 {
28 | font-family: 'Montserrat', sans-serif;
29 | }
30 |
31 | h2,
32 | h3,
33 | h4 {
34 | font-family: 'Open Sans', sans-serif;
35 | }
36 |
37 | p {
38 | line-height: 1.5;
39 | }
40 |
41 | .container {
42 | margin: auto;
43 | max-width: 1300px;
44 | }
45 |
46 |
47 | /*** Header Styling ***/
48 | .page-header {
49 | background-image: url('../img/headerimage.jpg');
50 | background-position: 50% 75%;
51 | background-size: cover;
52 | text-align: center;
53 | padding: 1em;
54 | margin-bottom: 2rem;
55 | min-height: 25vh;
56 | }
57 |
58 | h1 {
59 | letter-spacing: 8px;
60 | position: relative;
61 | text-transform: uppercase;
62 | text-shadow: 0 0 1px white;
63 | }
64 |
65 | h1::after {
66 | border: 5px solid #02ccba;
67 | border-radius: 50%;
68 | content: '';
69 | height: 15px;
70 | width: 15px;
71 | position: absolute;
72 | }
73 |
74 |
75 | /*** Article Styling ***/
76 | article,
77 | aside {
78 | margin: 2em;
79 | }
80 |
81 | article header {
82 | display: flex;
83 | align-items: baseline;
84 | justify-content: space-between;
85 | }
86 |
87 | time {
88 | color: #7d97ad;
89 | }
90 |
91 | article img {
92 | height: auto;
93 | width: 100%;
94 | }
95 |
96 | .read-more {
97 | color: #02ccba;
98 | font-family: 'Open Sans', sans-serif;
99 | font-weight: bold;
100 | text-decoration: none;
101 | text-transform: uppercase;
102 | }
103 |
104 | .read-more::after {
105 | content: '►';
106 | position: relative;
107 | left: 7px;
108 | font-size: 80%;
109 | top: -1px;
110 | }
111 |
112 |
113 | /*** Sidebar Styling ***/
114 | aside {
115 | border-top: 2px solid #dbe2e8;
116 | margin-top: 2em;
117 | padding-top: 2em;
118 | }
119 |
120 | .social-link {
121 | display: inline-block;
122 | margin-right: 0.75em;
123 | }
124 |
125 |
126 | /*** Footer Styling ***/
127 | footer {
128 | border-top: 2px solid #dbe2e8;
129 | margin-top: 4em;
130 | padding: 2em;
131 | text-align: center;
132 | }
133 |
134 |
135 | /*** Reponsive Styles ***/
136 | @media (min-width: 650px) {
137 | aside {
138 | display: flex;
139 | }
140 |
141 | .sidebar-text {
142 | margin-left: 2em;
143 | }
144 |
145 | .sidebar-text h2 {
146 | margin-top: 0;
147 | }
148 | }
149 |
150 | @media (min-width: 1000px) {
151 | .page-header {
152 | min-height: 35vh;
153 | }
154 |
155 | .container {
156 | display: flex;
157 | }
158 |
159 | main {
160 | flex: 1 1 70%;
161 | }
162 |
163 | aside {
164 | display: block;
165 | border-top: 0;
166 | border-left: 2px solid #dbe2e8;
167 | margin: 0;
168 | padding: 2em;
169 | flex: 0 1 30%;
170 | align-self: flex-start;
171 | }
172 |
173 | .sidebar-text {
174 | margin-left: 0;
175 | }
176 |
177 | .sidebar-text h2 {
178 | margin-top: 0.5em;
179 | }
180 | }
181 |
182 | /*** Helper Classes ***/
183 |
184 | /* from the HTML5 Boilerplate project for hidden, but accessible headings: https://github.com/h5bp/html5-boilerplate/blob/master/dist/css/main.css#L126-L145 */
185 | .visuallyhidden {
186 | border: 0;
187 | clip: rect(0 0 0 0);
188 | height: 1px;
189 | margin: -1px;
190 | overflow: hidden;
191 | padding: 0;
192 | position: absolute;
193 | width: 1px;
194 | white-space: nowrap;
195 | }
196 |
--------------------------------------------------------------------------------
/css/normalize.min.css:
--------------------------------------------------------------------------------
1 | button,hr,input{overflow:visible}audio,canvas,progress,video{display:inline-block}progress,sub,sup{vertical-align:baseline}html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0} menu,article,aside,details,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{}button,select{text-transform:none}[type=submit], [type=reset],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}[hidden],template{display:none}/*# sourceMappingURL=normalize.min.css.map */
2 |
--------------------------------------------------------------------------------
/img/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udacity/course-git-blog-project/b0da0bd4af16ae0b81cde66810f1b9a7a3d77f9f/img/.gitkeep
--------------------------------------------------------------------------------
/img/chasing-the-snow.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udacity/course-git-blog-project/b0da0bd4af16ae0b81cde66810f1b9a7a3d77f9f/img/chasing-the-snow.jpg
--------------------------------------------------------------------------------
/img/headerimage.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udacity/course-git-blog-project/b0da0bd4af16ae0b81cde66810f1b9a7a3d77f9f/img/headerimage.jpg
--------------------------------------------------------------------------------
/img/profilepic.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udacity/course-git-blog-project/b0da0bd4af16ae0b81cde66810f1b9a7a3d77f9f/img/profilepic.jpg
--------------------------------------------------------------------------------
/img/seeing-clearly.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udacity/course-git-blog-project/b0da0bd4af16ae0b81cde66810f1b9a7a3d77f9f/img/seeing-clearly.png
--------------------------------------------------------------------------------
/img/social-google.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udacity/course-git-blog-project/b0da0bd4af16ae0b81cde66810f1b9a7a3d77f9f/img/social-google.png
--------------------------------------------------------------------------------
/img/social-instagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udacity/course-git-blog-project/b0da0bd4af16ae0b81cde66810f1b9a7a3d77f9f/img/social-instagram.png
--------------------------------------------------------------------------------
/img/social-twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udacity/course-git-blog-project/b0da0bd4af16ae0b81cde66810f1b9a7a3d77f9f/img/social-twitter.png
--------------------------------------------------------------------------------
/img/something-to-remember.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udacity/course-git-blog-project/b0da0bd4af16ae0b81cde66810f1b9a7a3d77f9f/img/something-to-remember.jpg
--------------------------------------------------------------------------------
/img/village-in-the-valley.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udacity/course-git-blog-project/b0da0bd4af16ae0b81cde66810f1b9a7a3d77f9f/img/village-in-the-valley.jpg
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Blog Project
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
20 | Articles
21 |
22 |
23 |
24 | Chasing the Snow
25 | May 12
26 |
27 |
28 |
29 |
30 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nisi, laborum dolorem, dolor error nihil vitae similique necessitatibus omnis iure quasi vel iste repellendus alias! Asperiores voluptatem, maiores quibusdam eaque consequatur.
31 |
32 | Read more
33 |
34 |
35 |
36 |
37 | Seeing Clearly
38 | May 09
39 |
40 |
41 |
42 |
43 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nisi, laborum dolorem, dolor error nihil vitae similique necessitatibus omnis iure quasi vel iste repellendus alias! Asperiores voluptatem, maiores quibusdam eaque consequatur.
44 |
45 | Read more
46 |
47 |
48 |
49 |
50 | Something to Remember
51 | May 06
52 |
53 |
54 |
55 |
56 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nisi, laborum dolorem, dolor error nihil vitae similique necessitatibus omnis iure quasi vel iste repellendus alias! Asperiores voluptatem, maiores quibusdam eaque consequatur.
57 |
58 | Read more
59 |
60 |
61 |
62 |
63 | Village in the Valley
64 | May 06
65 |
66 |
67 |
68 |
69 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nisi, laborum dolorem, dolor error nihil vitae similique necessitatibus omnis iure quasi vel iste repellendus alias! Asperiores voluptatem, maiores quibusdam eaque consequatur.
70 |
71 | Read more
72 |
73 |
74 |
75 |
76 |
77 |
78 |
95 |
96 |
97 |
98 |
99 | Made with ♥ by Richard @ Udacity
100 |
101 |
102 |
103 |
104 |
105 |
--------------------------------------------------------------------------------
/js/app.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/udacity/course-git-blog-project/b0da0bd4af16ae0b81cde66810f1b9a7a3d77f9f/js/app.js
--------------------------------------------------------------------------------