diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 000000000..1fe380a5b Binary files /dev/null and b/.DS_Store differ diff --git a/.gitignore b/.gitignore deleted file mode 100644 index f0ada5cd0..000000000 --- a/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -.bundle -.sass-cache -_site -.DS_Store -Gemfile.lock -*.gem diff --git a/Gemfile b/Gemfile deleted file mode 100644 index 3be9c3cd8..000000000 --- a/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -source "https://rubygems.org" -gemspec diff --git a/LICENSE.txt b/LICENSE.txt index 391529651..2d8f47b9b 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2016 broccolini +Copyright (c) 2024 David Ochoa Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md deleted file mode 100644 index 7973a0c4f..000000000 --- a/README.md +++ /dev/null @@ -1,61 +0,0 @@ -# Swiss Jekyll Theme - -[![Gem Version](https://badge.fury.io/rb/jekyll-swiss.svg)](https://badge.fury.io/rb/jekyll-swiss) - -Swiss is a bold Jekyll theme inspired by Swiss design and the works of Massimo Vignelli. This theme lends itself well to sites heavy on written content. - -### Features: -* Mobile-first design ensures this theme performs fastest on mobile while scaling elegantly to desktop-size screens. -* Designed for blogs and sites heavy on written content, with bold typography styles, homepage summaries, and previous/next snippets. -* Supports a wide range of HTML elements and markdown. -* Flexible styles that can be reused for customization without adding additional CSS. -* Dynamically generated navigation links. See docs for adding pages with specific post category for-loops. - -## Installation - -Add this line to your Jekyll site's Gemfile: - -```ruby -gem "github-pages", group: :jekyll_plugins -``` - -And add this line to your Jekyll site: - -```yaml -remote_theme: broccolini/swiss -``` - -And then execute: - - $ bundle - -## Usage - -This theme comes in eight different color variations. The default is set to the black theme, to change to a different theme edit the config under `theme_color: black` to one of the following colors: - -| | | -|:-----------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------| -| `theme_color: black` | `theme_color: red` | -| black | red | -| `theme_color: white` | `theme_color: gray` | -| white | gray | -| `theme_color: blue` | `theme_color: magenta` | -| blue | magenta | -| `theme_color: orange` | `theme_color: yellow` | -| orange | yellow | - -## Contributing - -Bug reports and pull requests are welcome on GitHub at https://github.com/broccolini/swiss. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct. - -## Development - -To set up your environment to develop this theme, run `bundle install`. - -Your theme is setup just like a normal Jekyll site! To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal. - -When your theme is released, only the files in `_layouts`, `_includes`, and `_sass` tracked with Git will be released. - -## License - -The theme is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT). diff --git a/_config.yml b/_config.yml deleted file mode 100644 index 51aa8b8a7..000000000 --- a/_config.yml +++ /dev/null @@ -1,33 +0,0 @@ -# Welcome to Jekyll! -# -# This config file is meant for settings that affect your whole site, values -# which you are expected to set up once and rarely edit after that. If you find -# yourself editing these this file very often, consider using Jekyll's data files -# feature for the data you need to update frequently. -# -# For technical reasons, this file is *NOT* reloaded automatically when you use -# 'jekyll serve'. If you change this file, please restart the server process. - -# Site settings -# These are used to personalize your new site. If you look in the HTML files, -# you will see them accessed via {{ site.title }}, {{ site.github_repo }}, and so on. -# You can create any custom variable you would like, and they will be accessible -# in the templates via {{ site.myvariable }}. -title: Swiss Jekyll Theme -description: A bold typographic theme inspired by Swiss design. -baseurl: "" # the subpath of your site, e.g. /blog -url: "" # the base hostname & protocol for your site, e.g. http://example.com -github_repo: jekyll # the GitHub repo name for your project -github_username: jekyll - -# Optional social link, you can choose from the following options: -# twitter (default), instagram, medium, or dribbble -social_link: twitter -social_username: jekyllrb - -# Set theme color here -# Choose from: black (default), blue, gray, magenta, orange, red, white, and yellow. -theme_color: black - -# Build settings -markdown: kramdown diff --git a/_includes/dot-accent.html b/_includes/dot-accent.html deleted file mode 100644 index c329351cc..000000000 --- a/_includes/dot-accent.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/_includes/dot.html b/_includes/dot.html deleted file mode 100644 index 3c0cfcaf0..000000000 --- a/_includes/dot.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/_includes/dribbble.html b/_includes/dribbble.html deleted file mode 100644 index fabf93267..000000000 --- a/_includes/dribbble.html +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/_includes/footer.html b/_includes/footer.html deleted file mode 100644 index 707950b41..000000000 --- a/_includes/footer.html +++ /dev/null @@ -1,13 +0,0 @@ -
-
-

This project is maintained by {{ site.github_username }}

- -
-
diff --git a/_includes/github.html b/_includes/github.html deleted file mode 100644 index 5398249eb..000000000 --- a/_includes/github.html +++ /dev/null @@ -1,4 +0,0 @@ - - - diff --git a/_includes/head.html b/_includes/head.html deleted file mode 100644 index cc35426ef..000000000 --- a/_includes/head.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - {% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %} - - - {% assign user_url = site.url | append: site.baseurl %} - {% assign full_base_url = user_url | default: site.github.url %} - - - - - - - diff --git a/_includes/header.html b/_includes/header.html deleted file mode 100644 index 4dbfeb829..000000000 --- a/_includes/header.html +++ /dev/null @@ -1,20 +0,0 @@ -
-
- - {{ site.title }} - -
-
- -
-
diff --git a/_includes/instagram.html b/_includes/instagram.html deleted file mode 100644 index 530a0502c..000000000 --- a/_includes/instagram.html +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/_includes/medium.html b/_includes/medium.html deleted file mode 100644 index 05a6bc4ea..000000000 --- a/_includes/medium.html +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/_includes/post_block.html b/_includes/post_block.html deleted file mode 100644 index 7f6ed435b..000000000 --- a/_includes/post_block.html +++ /dev/null @@ -1,8 +0,0 @@ - -
- {{ post.date | date: "%b %-d, %Y" }} -

- {{ post.title }} -

-

{{ post.content | strip_html | truncatewords:30 }}

-
diff --git a/_includes/previous-next.html b/_includes/previous-next.html deleted file mode 100644 index 3ac67a49f..000000000 --- a/_includes/previous-next.html +++ /dev/null @@ -1,21 +0,0 @@ - -{% assign user_url = site.url | append: site.baseurl %} -{% assign full_base_url = user_url | default: site.github.url %} -{% if page.previous.url %} -
- - Previous - -

{{ page.previous.content | strip_html | truncatewords:20 }}

-
-
- {% endif %} - {% if page.next.url %} -
- - Next - -

{{ page.next.content | strip_html | truncatewords:20 }}

-
-
-{% endif %} diff --git a/_includes/previous-next_has-categories.html b/_includes/previous-next_has-categories.html deleted file mode 100644 index 55bd883ec..000000000 --- a/_includes/previous-next_has-categories.html +++ /dev/null @@ -1,39 +0,0 @@ - -{% if page.categories %} - {% assign category = page.categories[0] %} - {% assign posts = site.categories[category] %} - {% for post in posts %} - {% if post.url == page.url %} - {% assign post_index0 = forloop.index0 %} - {% assign post_index1 = forloop.index %} - {% endif %} - {% endfor %} - {% for post in posts %} - {% if post_index0 == forloop.index %} - {% assign next_post = post %} - {% endif %} - {% if post_index1 == forloop.index0 %} - {% assign prev_post = post %} - {% endif %} - {% endfor %} -{% endif %} -{% assign user_url = site.url | append: site.baseurl %} -{% assign full_base_url = user_url | default: site.github.url %} -{% if prev_post %} -
- - Previous - -

{{ page.previous.content | strip_html | truncatewords:20 }}

-
-
-{% endif %} -{% if next_post %} -
- - Next - -

{{ page.next.content | strip_html | truncatewords:20 }}

-
-
-{% endif %} diff --git a/_includes/twitter.html b/_includes/twitter.html deleted file mode 100644 index defca532f..000000000 --- a/_includes/twitter.html +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/_layouts/home.html b/_layouts/home.html index 141be67e2..4275bf925 100644 --- a/_layouts/home.html +++ b/_layouts/home.html @@ -19,11 +19,17 @@ {% endif %} {% endfor %} + +
+

{{ site.title }}

+ +
+
@@ -53,14 +59,10 @@

{{ site.t

- -
- {% for post in site.posts %} - {% include post_block.html %} - {% endfor %} -
+
+
{% include footer.html %} diff --git a/_posts/2016-08-05-welcome-to-jekyll.md b/_posts/2016-08-05-welcome-to-jekyll.md deleted file mode 100644 index 59f702110..000000000 --- a/_posts/2016-08-05-welcome-to-jekyll.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -layout: category-post -title: "Welcome to Jekyll!" -date: 2016-08-05 20:20:56 -0400 -categories: writing ---- -You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated. - -To add new posts, simply add a file in the `_posts` directory that follows the convention `YYYY-MM-DD-name-of-post.ext` and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works. - -Jekyll also offers powerful support for code snippets: - -``` -def print_hi(name) - puts "Hi, #{name}" -end -print_hi('Tom') -#=> prints 'Hi, Tom' to STDOUT. -``` - -Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk]. - -[jekyll-docs]: http://jekyllrb.com/docs/home -[jekyll-gh]: https://github.com/jekyll/jekyll -[jekyll-talk]: https://talk.jekyllrb.com/ diff --git a/_posts/2016-08-07-bacoms-are-delicious.md b/_posts/2016-08-07-bacoms-are-delicious.md deleted file mode 100644 index 2483d6ce1..000000000 --- a/_posts/2016-08-07-bacoms-are-delicious.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: post -title: "Bacoms are delicious" -date: 2016-08-07 ---- - -Lorem ipsizzle funky fresh i'm in the shizzle boom shackalack, consectetizzle adipiscing my shizz. Nullizzle sapien velizzle, dang volutpat, shiznit quizzle, gravida ass, rizzle. - -```html -
- test -
-``` - -Lorem ipsizzle funky fresh i'm in the shizzle boom shackalack, consectetizzle adipiscing my shizz. Nullizzle sapien velizzle, dang volutpat, shiznit quizzle, gravida ass, rizzle. Pot get down get down tortor. Sed erizzle. Black go to hizzle dolizzle dapibizzle turpis fo shizzle my nizzle yo. Maurizzle pellentesque nibh et check it out. Bow wow wow check it out tortizzle. Pellentesque for sure rhoncizzle bow wow wow. In owned habitasse brizzle dictumst. Nizzle dapibizzle. Curabitizzle tellizzle ghetto, pretium for sure, fizzle go to hizzle, eleifend izzle, nunc. Dope suscipizzle. Integizzle boom shackalack velit ass purus. - -Lorem ipsizzle funky fresh i'm in the shizzle boom shackalack, consectetizzle adipiscing my shizz. Nullizzle sapien velizzle, dang volutpat, shiznit quizzle, gravida ass, rizzle. Pot get down get down tortor. Sed erizzle. Black go to hizzle dolizzle dapibizzle turpis fo shizzle my nizzle yo. Maurizzle pellentesque nibh et check it out. Bow wow wow check it out tortizzle. Pellentesque for sure rhoncizzle bow wow wow. In owned habitasse brizzle dictumst. Nizzle dapibizzle. Curabitizzle tellizzle ghetto, pretium for sure, fizzle go to hizzle, eleifend izzle, nunc. Dope suscipizzle. Integizzle boom shackalack velit ass purus. diff --git a/_posts/2016-08-3-potatoes.md b/_posts/2016-08-3-potatoes.md deleted file mode 100644 index 31dc24b66..000000000 --- a/_posts/2016-08-3-potatoes.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: category-post -title: "Potatoes" -date: 2015-11-25 -categories: writing ---- - -Lorem ipsizzle funky fresh i'm in the shizzle boom shackalack, consectetizzle adipiscing my shizz. Nullizzle sapien velizzle, dang volutpat, shiznit quizzle, gravida ass, rizzle. Pot get down get down tortor. Sed erizzle. Black go to hizzle dolizzle dapibizzle turpis fo shizzle my nizzle yo. Maurizzle pellentesque nibh et check it out. Bow wow wow check it out tortizzle. Pellentesque for sure rhoncizzle bow wow wow. In owned habitasse brizzle dictumst. Nizzle dapibizzle. Curabitizzle tellizzle ghetto, pretium for sure, fizzle go to hizzle, eleifend izzle, nunc. Dope suscipizzle. Integizzle boom shackalack velit ass purus. - -# Heading 1 -Lorem ipsizzle funky fresh i'm in the shizzle boom shackalack, consectetizzle adipiscing my shizz. Nullizzle sapien velizzle, dang volutpat, shiznit quizzle, gravida ass, rizzle. Pot get down get down tortor. Sed erizzle. Black go to hizzle dolizzle dapibizzle turpis fo shizzle my nizzle yo. Maurizzle pellentesque nibh et check it out. Bow wow wow check it out tortizzle. Pellentesque for sure rhoncizzle bow wow wow. In owned habitasse brizzle dictumst. Nizzle dapibizzle. Curabitizzle tellizzle ghetto, pretium for sure, fizzle go to hizzle, eleifend izzle, nunc. Dope suscipizzle. Integizzle boom shackalack velit ass purus. - -## Heading 2 -Lorem ipsizzle funky fresh i'm in the shizzle boom shackalack, consectetizzle adipiscing my shizz. Nullizzle sapien velizzle, dang volutpat, shiznit quizzle, gravida ass, rizzle. Pot get down get down tortor. Sed erizzle. Black go to hizzle dolizzle dapibizzle turpis fo shizzle my nizzle yo. Maurizzle pellentesque nibh et check it out. Bow wow wow check it out tortizzle. Pellentesque for sure rhoncizzle bow wow wow. In owned habitasse brizzle dictumst. Nizzle dapibizzle. Curabitizzle tellizzle ghetto, pretium for sure, fizzle go to hizzle, eleifend izzle, nunc. Dope suscipizzle. Integizzle boom shackalack velit ass purus. - -### Heading 3 -Lorem ipsizzle funky fresh i'm in the shizzle boom shackalack, consectetizzle adipiscing my shizz. Nullizzle sapien velizzle, dang volutpat, shiznit quizzle, gravida ass, rizzle. Pot get down get down tortor. Sed erizzle. Black go to hizzle dolizzle dapibizzle turpis fo shizzle my nizzle yo. Maurizzle pellentesque nibh et check it out. Bow wow wow check it out tortizzle. Pellentesque for sure rhoncizzle bow wow wow. In owned habitasse brizzle dictumst. Nizzle dapibizzle. Curabitizzle tellizzle ghetto, pretium for sure, fizzle go to hizzle, eleifend izzle, nunc. Dope suscipizzle. Integizzle boom shackalack velit ass purus. - -#### Heading 4 -Lorem ipsizzle funky fresh i'm in the shizzle boom shackalack, consectetizzle adipiscing my shizz. Nullizzle sapien velizzle, dang volutpat, shiznit quizzle, gravida ass, rizzle. Pot get down get down tortor. Sed erizzle. Black go to hizzle dolizzle dapibizzle turpis fo shizzle my nizzle yo. Maurizzle pellentesque nibh et check it out. Bow wow wow check it out tortizzle. Pellentesque for sure rhoncizzle bow wow wow. In owned habitasse brizzle dictumst. Nizzle dapibizzle. Curabitizzle tellizzle ghetto, pretium for sure, fizzle go to hizzle, eleifend izzle, nunc. Dope suscipizzle. Integizzle boom shackalack velit ass purus. - -##### Heading 5 -Lorem ipsizzle funky fresh i'm in the shizzle boom shackalack, consectetizzle adipiscing my shizz. Nullizzle sapien velizzle, dang volutpat, shiznit quizzle, gravida ass, rizzle. Pot get down get down tortor. Sed erizzle. Black go to hizzle dolizzle dapibizzle turpis fo shizzle my nizzle yo. Maurizzle pellentesque nibh et check it out. Bow wow wow check it out tortizzle. Pellentesque for sure rhoncizzle bow wow wow. In owned habitasse brizzle dictumst. Nizzle dapibizzle. Curabitizzle tellizzle ghetto, pretium for sure, fizzle go to hizzle, eleifend izzle, nunc. Dope suscipizzle. Integizzle boom shackalack velit ass purus. - -###### Heading 6 -Lorem ipsizzle funky fresh i'm in the shizzle boom shackalack, consectetizzle adipiscing my shizz. Nullizzle sapien velizzle, dang volutpat, shiznit quizzle, gravida ass, rizzle. Pot get down get down tortor. Sed erizzle. Black go to hizzle dolizzle dapibizzle turpis fo shizzle my nizzle yo. Maurizzle pellentesque nibh et check it out. Bow wow wow check it out tortizzle. Pellentesque for sure rhoncizzle bow wow wow. In owned habitasse brizzle dictumst. Nizzle dapibizzle. Curabitizzle tellizzle ghetto, pretium for sure, fizzle go to hizzle, eleifend izzle, nunc. Dope suscipizzle. Integizzle boom shackalack velit ass purus. - -```html -
- test -
-``` diff --git a/_posts/2016-09-04-markdown-sample.md b/_posts/2016-09-04-markdown-sample.md deleted file mode 100644 index 94b62aef8..000000000 --- a/_posts/2016-09-04-markdown-sample.md +++ /dev/null @@ -1,172 +0,0 @@ ---- -layout: post -title: "Markdown sample" -date: 2016-09-04 ---- - -### Markdown test document - -Text can be **bold**, _italic_, or ~~strikethrough~~. [Links](https://github.com) should be have dotted underlines and solid underlines on hover. - -There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. - -There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. - -> There should be no margin above this first sentence. -> -> Blockquotes should be a italicized with a gray border along the left side. -> -> There should be no margin below this final sentence. - -# Heading 1 - -This is a normal paragraph following a Heading. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. - -## Heading 2 - -This is a normal paragraph following a Heading. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. - - -> This is a blockquote following a Heading. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. - -This is a normal paragraph following a Heading. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. - - -### Heading 3 - -``` -This is a code block following a Heading. -``` - -#### Heading 4 - -* This is an unordered list following a Heading. -* This is an unordered list following a Heading. -* This is an unordered list following a Heading. - -##### Heading 5 - -1. This is an ordered list following a Heading. -2. This is an ordered list following a Heading. -3. This is an ordered list following a Heading. - -###### Heading 6 - -| What | Follows | -|-----------|-----------------| -| A table | A Heading | -| A table | A Heading | -| A table | A Heading | - ----------------- - -There's a horizontal rule above and below this. - ----------------- - -Here is an unordered list: - -* Salt-n-Pepa -* Bel Biv DeVoe -* Kid 'N Play - -And an ordered list: - -1. Michael Jackson -2. Michael Bolton -3. Michael Bublé - -And a nested list: - -* Jackson 5 - * Michael - * Tito - * Jackie - * Marlon - * Jermaine -* TMNT - * Leonardo - * Michelangelo - * Donatello - * Raphael - -Definition lists can be used with HTML syntax. Definition terms are bold and italic. - -
-
Name
-
Godzilla
-
Born
-
1952
-
Birthplace
-
Japan
-
Color
-
Green
-
- ----------------- - -Tables should have bold headings and alternating shaded rows. - -| Artist | Album | Year | -|-------------------|-----------------|------| -| Michael Jackson | Thriller | 1982 | -| Prince | Purple Rain | 1984 | -| Beastie Boys | License to Ill | 1986 | - -If a table is too wide, it should condense down and/or scroll horizontally. - -| Artist | Album | Year | Label | Awards | Songs | -|-------------------|-----------------|------|-------------|----------|-----------| -| Michael Jackson | Thriller | 1982 | Epic Records | Grammy Award for Album of the Year, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Selling Album, Grammy Award for Best Engineered Album, Non-Classical | Wanna Be Startin' Somethin', Baby Be Mine, The Girl Is Mine, Thriller, Beat It, Billie Jean, Human Nature, P.Y.T. (Pretty Young Thing), The Lady in My Life | -| Prince | Purple Rain | 1984 | Warner Brothers Records | Grammy Award for Best Score Soundtrack for Visual Media, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Soundtrack/Cast Recording, Grammy Award for Best Rock Performance by a Duo or Group with Vocal | Let's Go Crazy, Take Me With U, The Beautiful Ones, Computer Blue, Darling Nikki, When Doves Cry, I Would Die 4 U, Baby I'm a Star, Purple Rain | -| Beastie Boys | License to Ill | 1986 | Mercury Records | noawardsbutthistablecelliswide | Rhymin & Stealin, The New Style, She's Crafty, Posse in Effect, Slow Ride, Girls, (You Gotta) Fight for Your Right, No Sleep Till Brooklyn, Paul Revere, Hold It Now, Hit It, Brass Monkey, Slow and Low, Time to Get Ill | - ----------------- - -Code snippets like `var foo = "bar";` can be shown inline. - -Also, `this should vertically align` ~~`with this`~~ ~~and this~~. - -Code can also be shown in a block element. -```` -var foo = "bar"; -```` - -Code can also use syntax highlighting. -````Javascript -var foo = "bar"; -```` - -``` -Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this. -``` - -```Javascript -var foo = "The same thing is true for code with syntax highlighting. A single line of code should horizontally scroll if it is really long."; -``` - -Inline code inside table cells should still be distinguishable. - -| Language | Code | -|-------------|--------------------| -| Javascript | `var foo = "bar";` | -| Ruby | `foo = "bar"` | - ----------------- - -Small images should be shown at their actual size. - -![](http://placekitten.com/g/300/200/) - -Large images should always scale down and fit in the content container. - -![](http://placekitten.com/g/1200/800/) - -``` -This is the final element on the page and there should be no margin below this. -``` - - -## License - -[MIT](./LICENSE) diff --git a/_posts/2023-22-02-jaccard.md b/_posts/2023-22-02-jaccard.md new file mode 100644 index 000000000..83021a7e9 --- /dev/null +++ b/_posts/2023-22-02-jaccard.md @@ -0,0 +1,83 @@ +--- +layout: category-post +title: "Jaccard" +date: 2023-02-22 +categories: writing +--- + +# The Jaccard similarity coefficient + +Hello, I intend to make an amazingly simple explanation about the Jaccard index: it is a measure of similarity, it measures the similarity between two sets of information. The Jaccard similarity coefficient was created by Grove Karl Gilbert in 1884 and has the most diverse applications from [behavioral research](https://basurafernando.github.io/papers/AnticipationCVPR21.pdf) to [stability of unicellular clusters](https://pubmed.ncbi.nlm.nih.gov/33165513/), obviously going through the NPL. To understand clearly you need to study a bit of set theory, or if you're a SQL coder it can be interpreted as the measure of an inner join. + +![Venn](https://github.com/devicemxl/devicemxl.github.io/blob/master/_posts/imgs/20232202jaccard.002.png?raw=true) + +I know sometimes is very not necessary learn all that things, sure? + +To get started in python we need to define two sets, obviously after loading the libraries. + +```python +# libraries +import matplotlib.pyplot as plt +import matplotlib_venn as venn +``` + +```python +GroupA = {1, 2, 3} +GroupB = {3, 4, 5} +``` + +To see the ven diagrams we use the matplotlib_venn library + +```python +venn.venn2([GroupA, GroupB], set_labels=('Group A','GroupB')) +plt.show() +``` + +![Venn Intersection](https://github.com/devicemxl/devicemxl.github.io/blob/master/_posts/imgs/20232202jaccard.003.png?raw=true) + +```python +# Intersection method +# +Intersection = GroupA.intersection(GroupB) +print("Intersection of GroupA and GroupB:", Intersection) +``` + +Intersection of GroupA and GroupB: {3} + + +Now we can see how the intersection of the two datasets are in "3", then to calculate the jaccard we need follow the formula: + +![JaccardFormula](https://github.com/devicemxl/devicemxl.github.io/blob/master/_posts/imgs/20232202jaccard.001.svg?raw=true) + +And the expression can be canceptually translated as: + +```math + +Jaccard = Intersection / ( GroupA + GroupB - Intersection ) + +Jaccard = 1 / ( 3 + 3 - 1) +Jaccard = 1/5 +Jaccard = 0.2 + +``` + +In python a specific code can be: + +```python +# specific code +# +len(Intersection) / ( len(GroupA) + len(GroupB) - len(Intersection) ) +``` + +Of course generally you need to compare list of items, then you need make loop in the Source list to compare in each record of the comparison list. I make a little code for this. you can review, enjoy and make corrections. Always are welcome! + + +The notebook version of this text: [Notebook](https://github.com/devicemxl/devicemxl.github.io/blob/master/_posts/jupyter/20232202-jaccard.ipynb) + + +The code of jaccard: [exercise](https://github.com/devicemxl/ETL-Helper/blob/raiz/TextTools.py) + + +```html + +``` \ No newline at end of file diff --git a/_posts/2023-23-02-GaussianOutliers.md b/_posts/2023-23-02-GaussianOutliers.md new file mode 100644 index 000000000..344b07e0d --- /dev/null +++ b/_posts/2023-23-02-GaussianOutliers.md @@ -0,0 +1,83 @@ +--- +layout: category-post +title: "Jaccard" +date: 2023-02-22 +categories: writing +--- + +# The Jaccard similarity coefficient + +Hello, I intend to make an amazingly simple explanation about the Jaccard index: it is a measure of similarity, it measures the similarity between two sets of information. The Jaccard similarity coefficient was created by Grove Karl Gilbert in 1884 and has the most diverse applications from [behavioral research](https://basurafernando.github.io/papers/AnticipationCVPR21.pdf) to [stability of unicellular clusters](https://pubmed.ncbi.nlm.nih.gov/33165513/), obviously going through the NPL. To understand clearly you need to study a bit of set theory, or if you're a SQL coder it can be interpreted as the measure of an inner join. + +![Venn](https://github.com/devicemxl/devicemxl.github.io/blob/master/_posts/imgs/20232202jaccard.002.png?raw=true) + +I know sometimes is very innecesary learn all that things, sure? + +To get started in python we need to define two sets, obviously after loading the libraries. + +```python +# libraries +import matplotlib.pyplot as plt +import matplotlib_venn as venn +``` + +```python +GroupA = {1, 2, 3} +GroupB = {3, 4, 5} +``` + +To see the ven diagrams we use the matplotlib_venn library + +```python +venn.venn2([GroupA, GroupB], set_labels=('Group A','GroupB')) +plt.show() +``` + +![Venn Intersection](https://github.com/devicemxl/devicemxl.github.io/blob/master/_posts/imgs/20232202jaccard.003.png?raw=true) + +```python +# Intersection method +# +Intersection = GroupA.intersection(GroupB) +print("Intersection of GroupA and GroupB:", Intersection) +``` + +Intersection of GroupA and GroupB: {3} + + +Now we can see how the intersection of the two datasets are in "3", then to calculate the jaccard we need follow the formula: + +![JaccardFormula](https://github.com/devicemxl/devicemxl.github.io/blob/master/_posts/imgs/20232202jaccard.001.svg?raw=true) + +And the expression can be canceptually translated as: + +```math + +Jaccard = Intersection / ( GroupA + GroupB - Intersection ) + +Jaccard = 1 / ( 3 + 3 - 1) +Jaccard = 1/5 +Jaccard = 0.2 + +``` + +In python a specific code can be: + +```python +# specific code +# +len(Intersection) / ( len(GroupA) + len(GroupB) - len(Intersection) ) +``` + +Of course generally you need to compare list of items, then you need make loop in the Source list to compare in each record of the comparison list. I make a little code for this. you can review, enjoy and make corrections. Always are welcome! + + +The notebook version of this text: [Notebook](https://github.com/devicemxl/devicemxl.github.io/blob/master/_posts/jupyter/20232202-jaccard.ipynb) + + +The code of jaccard: [exercise](https://github.com/devicemxl/ETL-Helper/blob/raiz/TextTools.py) + + +```html + +``` \ No newline at end of file diff --git a/_posts/imgs/20232202jaccard.001.svg b/_posts/imgs/20232202jaccard.001.svg new file mode 100644 index 000000000..96a2d67aa --- /dev/null +++ b/_posts/imgs/20232202jaccard.001.svg @@ -0,0 +1,75 @@ + +{\displaystyle J(A,B)={{|A\cap B|} \over {|A\cup B|}}={{|A\cap B|} \over {|A|+|B|-|A\cap B|}}.} + + + \ No newline at end of file diff --git a/_posts/imgs/20232202jaccard.002.png b/_posts/imgs/20232202jaccard.002.png new file mode 100644 index 000000000..6f0b58b1f Binary files /dev/null and b/_posts/imgs/20232202jaccard.002.png differ diff --git a/_posts/imgs/20232202jaccard.003.png b/_posts/imgs/20232202jaccard.003.png new file mode 100644 index 000000000..f803f1c0a Binary files /dev/null and b/_posts/imgs/20232202jaccard.003.png differ diff --git a/_posts/jupyter/20232202-jaccard.ipynb b/_posts/jupyter/20232202-jaccard.ipynb new file mode 100644 index 000000000..f72bac5df --- /dev/null +++ b/_posts/jupyter/20232202-jaccard.ipynb @@ -0,0 +1,167 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# The Jaccard similarity coefficient" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Hi, i pretend make a very simple explication about the jaccard index: is a measure of simmilarity, basically measure the similitude between 2 sets of information. The Jaccard similarity coefficient, it was created by Grove Karl Gilbert in 1884 and have the most diverse applications from [conductual research](https://basurafernando.github.io/papers/AnticipationCVPR21.pdf) to [single-cell cluster stability](https://pubmed.ncbi.nlm.nih.gov/33165513/), passing evidently by the NPL. To understand clearly is necesary study a little bit of set theory, or if you are a SQL coder can be interpretated as the measure of a inner join.\n", + "\n", + "![Venn](https://github.com/devicemxl/devicemxl.github.io/blob/master/_posts/imgs/20232202jaccard.002.png?raw=true)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "I know sometimes is very innecesary learn all that things, sure?" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### To start\n", + "\n", + "In python we need to define two sets, evidently over load the libraries." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# If you dont have the libraries, uncomment each faltant and run\n", + "#!pip install matplotlib --user --upgrade\n", + "#!pip install matplotlib_venn --user --upgrade" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# libraries\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib_venn as venn" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "GroupA = {1, 2, 3}\n", + "GroupB = {3, 4, 5}" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAFqCAYAAACHyFlYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA2N0lEQVR4nO3de3Bd1X02/mfvc7/q6C5Lsi62ZWNDbIydAAFSDCQEPGE6fXnJkGQKadJpE5JQIGkzkz9Cf9P+eqNl0iadN+9kStsJkEmnaTulkIQ2TriH4AsX27IQliXbsi0d6ehy7pe93j92LNv4pstZZ5299vOZOWNLsq2vdLzPfrTWd61lCCEEiIiIyLVM1QUQERGRWgwDRERELscwQERE5HIMA0RERC7HMEBERORyDANEREQuxzBARETkcgwDRERELscwQERE5HIMA0RERC7HMEBERORyDANEREQuxzBARETkcgwDRERELscwQERE5HIMA0RERC7HMEBERORyDANEREQuxzBARETkcgwDRERELscwQERE5HIMA0RERC7HMEBERORyDANEREQuxzBARETkcgwDRERELscwQERE5HIMA0RERC7HMEBERORyDANEREQuxzBARETkcgwDRERELscwQERE5HIMA0RERC7HMEBERORyDANEREQuxzBARETkcgwDRERELscwQERE5HIMA0RERC7nVV0A0ZKVSkClAljWmcf737YswDQBjwfwes88fD77fUSXUbEqKFkllK3ywqNiVWAJC6ZhnvPwmJ5z3zY88Hl8qr8EokVjGKD6IAQwPw/MzQG53KUflrWyz+XxAH6//QgEgGj0zCMSOfP7UKg6XxvVlVwph3QxjXQxjUwps/D7dDGNQrmAYqWIYqWIiqis6POYhomQN4SQL3TRX+OBOGL+GAzDqNJXR7Q8hhBCqC6CXKRUAmZmzn/Mzdk/3dcTj8cOB7EY0NgINDfbj8ZGji7UuYpVQSqfwlR2ClO5KaRyKcwX55EpZlZ8k682j+FBPBBHIpg478HRBaoVhgGSp1wGJiaAU6fsx9QUkMmormrlTBNoaDgTDk4/OJKgRK6Uw1RuauHGP5WdwmxhFpZY4QhSHYj4ImgON6M90o72aDvaIm3wmhzQpepjGKDqSaeBkyfP3Pynp1c+pO8k8TjQ2XnmEQ6rrkhL2VIW4/PjC4+5wpzq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ufwXQY7FaQKNDAwM4KmnnsK9996LDRs2LOyEJoTAyMgInnrqKZimed5c5YV84hOfwI4dO/CNb3wDR44cwZYtW/DTn/4U//Ef/4E/+IM/wNq1axf+7Oc//3n8+Z//OT7/+c9j+/bteOGFFzA0NHTRf3tkZAR33XUXPv7xj+PVV1/F97//fXzqU5+65IvNk08+CY/Hg507d17w43fddRe+8Y1v4Ac/+AEefvjhy359RNVSreuuHq6548ePL0zHFYtFvPnmm/jud7+LlpYWThHoTuFKBpJkeHhYfOELXxDr1q0TwWBQhEIhccUVV4jf//3fF/v27Tvnz953330iEolc8N+Zn58XDz30kOjs7BQ+n08MDAyIv/qrvxKWZZ3z57LZrPjc5z4nGhoaRCwWE/fcc4+YmJi46DKnAwcOiLvvvlvEYjHR2NgovvSlL4lcLnfRr6dYLIrm5mZx0003XfLr7u/vF1u3br3Md4dIjsVed/V6zb1/aaFpmqKtrU3ce++9C8saSV88m4Bq5tFHH8Uf//EfY3JyEi0tLarLIdIerzlaLPYMEBERuRzDABERkcsxDBAREbkcewaIiIhcjiMDRERELscwQERE5HIMA0RERC7HMEBERORyDANEREQuxzBARETkcgwDRERELscwQERE5HIMA0RERC73/wB117Tzwn5w9gAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "venn.venn2([GroupA, GroupB], set_labels=('Group A','GroupB'))\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Intersection of GroupA and GroupB: {3}\n" + ] + } + ], + "source": [ + "# Intersection method\n", + "#\n", + "Intersection = GroupA.intersection(GroupB)\n", + "print(\"Intersection of GroupA and GroupB:\", Intersection)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.2" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(Intersection) / ( len(GroupA) + len(GroupB) - len(Intersection) )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Of course generally you need to compare list of items, then you need make loop in the Source list to compare in each record of the comparison list" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.0" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "c261aea317cc0286b3b3261fbba9abdec21eaa57589985bb7a274bf54d6cc0a7" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/_sass/_base.scss b/_sass/_base.scss deleted file mode 100644 index b88e4cdb7..000000000 --- a/_sass/_base.scss +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Reset some basic elements -*/ - -* { - box-sizing: border-box !important; - margin: 0; } - -input, -select, -textarea, -button { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - - -body, h1, h2, h3, h4, h5, h6, -p, blockquote, pre, hr, -dl, dd, ol, ul, figure { - margin: 0; - padding: 0; -} - - -/** - * Basic styling - */ -body { - font-family: $body-font-family; - font-size: $body-font-size; - line-height: 1.5; - color: $color-body-text; - background-color: #fff; -} - -p { - margin-top: 0; - margin-bottom: 0.5em; -} - -h1, h2, h3, h4, h5, h6 { - margin-top: 1em; - margin-bottom: 0.25em; -} - -h1, .h1 { font-size: $h1-size; } -h2, .h2 { font-size: $h2-size; } -h3, .h3 { font-size: $h3-size; } -h4, .h4 { font-size: $h4-size; } -h5, .h5 { font-size: $h5-size; } -h6, .h6 { font-size: $h6-size; text-transform: uppercase; letter-spacing: 0.02em; } - -a { - color: inherit; - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} diff --git a/_sass/_components.scss b/_sass/_components.scss deleted file mode 100644 index a21ef35b7..000000000 --- a/_sass/_components.scss +++ /dev/null @@ -1,139 +0,0 @@ -// Styling markdown output - -// Code formatting -pre { - border-left: $spacer-1 solid $color-border; - margin: $spacer-3 0; - padding-left: 16px; - width: (9 / 12 * 100%); // matches col-9 - overflow-x: auto; -} - -code { - color: $color-code; - font-size: $body-font-size; - padding: 1px 0px; -} - - -.prose { - - a { - text-decoration: underline dotted; - - &:hover { - text-decoration: underline; - } - } - - p, ol, ul { - font-size: $prose-font-size; - margin-bottom: 1em; - width: 100%; - - @media (min-width: $breakpoint-lg) { - width: (10 / 12 * 100%); // matches col-10 - } - - } - - ul, ol { - padding-left: 40px; - } - - li { - margin-bottom: 0.5em; - - ul li, ol li { - margin-bottom: 0; - } - } - - img { - - max-width: 100%; - - @media (min-width: $breakpoint-lg) { - max-width: (12 / 10 * 100%); // make image fill width of container on desktop - } - - } - - blockquote { - line-height: 1.375; - padding-left: 20px; - margin: 40px 0 40px -16px; - border-left: $spacer-1 solid $color-border; - font-style: italic; - - p { - font-size: 24px; - } - - @media (min-width: $breakpoint-lg) { - padding-left: $spacer-3; - margin: $spacer-4 0 $spacer-4 -40px; - max-width: (11 / 10 * 100%); - - p { - font-size: 32px; - } - - } - - } - - hr { - color: $color-body-text; - border-style: solid; - border-width: thin; - margin-top: 0.5em; - margin-bottom: 0.5em; - } - - dt { - font-weight: bold; - font-style: italic; - line-height: 1.25; - } - - dd { - font-style: italic; - margin-bottom: 0.5em; - } - - // Markdown tables - table { - border-collapse: collapse; - display: block; - width: 100%; - margin-bottom: 1.5em; - overflow: auto; - // For Firefox to horizontally scroll wider tables. - word-break: normal; - word-break: keep-all; - - th { - font-weight: bold; - text-align: left; - } - - th, - td { - padding: $spacer-2 $spacer-3 $spacer-2 2px; - border-top: 1px solid $color-body-text; - border-bottom: 1px solid $color-body-text; - } - - tr { - background-color: #fff; - border-top: 1px solid $color-body-text; - } - - tr th { - border-top: 2px solid $color-body-text; - border-bottom: 2px solid $color-body-text; - } - } - -} diff --git a/_sass/_theme-black.scss b/_sass/_theme-black.scss deleted file mode 100644 index f6136da9b..000000000 --- a/_sass/_theme-black.scss +++ /dev/null @@ -1,31 +0,0 @@ -// Default black theme - -// Color variables -$black: #181818; -$red: #E74727; -$red-small: #DC3918; -$white: #fff; - -// Config -$color-background: $black !default; -$color-dot-accent: $red !default; -$color-foreground: $white !default; -$color-title: $white !default; -$color-body-text: $black !default; -$color-text-accent: $red !default; -$color-code: $red-small !default; -$color-nav-link: $red !default; -$color-primary-link: $red !default; - -.font-smoothing { - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -// Import sass partials (used in all themes) -@import - "variables", - "base", - "components", - "utilities" -; diff --git a/_sass/_theme-blue.scss b/_sass/_theme-blue.scss deleted file mode 100644 index cc644363d..000000000 --- a/_sass/_theme-blue.scss +++ /dev/null @@ -1,31 +0,0 @@ -// Blue theme - -// Color variables -$blue: #009DDB; -$blue-small: #007AB3; -$gray: #45474A; -$white: #fff; - -// Config -$color-background: $gray !default; -$color-dot-accent: $blue !default; -$color-foreground: $white !default; -$color-title: $blue !default; -$color-body-text: $gray !default; -$color-text-accent: $blue !default; -$color-code: $blue-small !default; -$color-nav-link: $blue !default; -$color-primary-link: $blue !default; - -.font-smoothing { - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -// Import sass partials (used in all themes) -@import - "variables", - "base", - "components", - "utilities" -; diff --git a/_sass/_theme-gray.scss b/_sass/_theme-gray.scss deleted file mode 100644 index a917564c3..000000000 --- a/_sass/_theme-gray.scss +++ /dev/null @@ -1,28 +0,0 @@ -// Gray theme - -// Color variables -$white: #fff; -$black: #181818; -$gray: #444; -$gray-light: #777; -$gray-lighter: #bbb; - -// Config -$color-background: $gray-lighter !default; -$color-dot-accent: $white !default; -$color-foreground: $black !default; -$color-title: $black !default; -$color-body-text: $black !default; -$color-text-accent: $gray-light !default; -$color-code: $gray-light !default; -$color-nav-link: $gray !default; -$color-primary-link: $gray-light !default; - - -// Import sass partials (used in all themes) -@import - "variables", - "base", - "components", - "utilities" -; diff --git a/_sass/_theme-magenta.scss b/_sass/_theme-magenta.scss deleted file mode 100644 index 5969f3842..000000000 --- a/_sass/_theme-magenta.scss +++ /dev/null @@ -1,25 +0,0 @@ -// Pink theme - links on inside pages? - -// Color variables -$magenta: #CD2DA8; -$black: #2F2323; -$white: #fff; - -// Config -$color-background: $magenta !default; -$color-dot-accent: $black !default; -$color-foreground: $white !default; -$color-title: $white !default; -$color-body-text: $black !default; -$color-text-accent: $magenta !default; -$color-code: $magenta !default; -$color-nav-link: $black !default; -$color-primary-link: $magenta !default; - -// Import sass partials (used in all themes) -@import - "variables", - "base", - "components", - "utilities" -; diff --git a/_sass/_theme-orange.scss b/_sass/_theme-orange.scss deleted file mode 100644 index a6c22017e..000000000 --- a/_sass/_theme-orange.scss +++ /dev/null @@ -1,27 +0,0 @@ -// Orange theme - -$orange: #fa8224; -$orange-dark: #DF6D16; -$gray: #767676; -$white: #fff; -$black: #181818; - -$color-background: $orange !default; -$color-dot-accent: $black !default; -$color-foreground: $black !default; -$color-title: $white !default; -$color-body-text: $black !default; -$color-text-accent: $orange-dark !default; -$color-code: $gray !default; -$color-nav-link: $white !default; -$color-primary-link: $orange !default; -$color-border: $orange; - - -// Import sass partials (used in all themes) -@import - "variables", - "base", - "components", - "utilities" -; diff --git a/_sass/_theme-red.scss b/_sass/_theme-red.scss deleted file mode 100644 index 2e8dc3b23..000000000 --- a/_sass/_theme-red.scss +++ /dev/null @@ -1,26 +0,0 @@ -// Default black theme - -// Color variables -$black: #181818; -$red: #E74727; -$red-dark: #DC3918; -$white: #fff; - -// Config -$color-background: $red !default; -$color-dot-accent: $black !default; -$color-foreground: $black !default; -$color-title: $white !default; -$color-body-text: $black !default; -$color-text-accent: $red-dark !default; -$color-code: $red-dark !default; -$color-nav-link: $white !default; -$color-primary-link: $red !default; - -// Import sass partials (used in all themes) -@import - "variables", - "base", - "components", - "utilities" -; diff --git a/_sass/_theme-white.scss b/_sass/_theme-white.scss deleted file mode 100644 index 960c1aa56..000000000 --- a/_sass/_theme-white.scss +++ /dev/null @@ -1,28 +0,0 @@ -// White theme - -// Color variables -$black: #181818; -$red: #E74727; -$red-dark: #DC3918; -$gray-light: #f5f5f5; -$white: #fff; - -// Config -$color-background: $gray-light !default; -$color-dot-accent: $red !default; -$color-foreground: $black !default; -$color-title: $black !default; -$color-body-text: $black !default; -$color-text-accent: $red-dark !default; -$color-code: $red-dark !default; -$color-nav-link: $red-dark !default; -$color-primary-link: $red-dark !default; - - -// Import sass partials (used in all themes) -@import - "variables", - "base", - "components", - "utilities" -; diff --git a/_sass/_theme-yellow.scss b/_sass/_theme-yellow.scss deleted file mode 100644 index c9cfb2650..000000000 --- a/_sass/_theme-yellow.scss +++ /dev/null @@ -1,29 +0,0 @@ -// Yellow theme - could do yellow on borders? - links on inside pages? - -// Color variables -$black: #181818; -$white: #fff; -$gray: #777; -$yellow: #fec92e; - - -// Config -$color-background: $yellow !default; -$color-dot-accent: $white !default; -$color-foreground: $black !default; -$color-title: $black !default; -$color-body-text: $black !default; -$color-text-accent: $gray !default; -$color-code: $gray !default; -$color-nav-link: $white !default; -$color-primary-link: $gray !default; -$color-border: $yellow; - - -// Import sass partials (used in all themes) -@import - "variables", - "base", - "components", - "utilities" -; diff --git a/_sass/_utilities.scss b/_sass/_utilities.scss deleted file mode 100644 index bba916514..000000000 --- a/_sass/_utilities.scss +++ /dev/null @@ -1,182 +0,0 @@ -/* Type utilities */ -.h0 { - font-size: $h0-mobile; - line-height: 1.0125; - margin-top: 0.85em; - word-wrap: break-word; - - @media (min-width: $breakpoint-lg) { - font-size: $h0-desktop; - } -} - -.text-right { text-align: right; } - -.no-underline { - text-decoration: none !important; - - &:hover { - text-decoration: none !important; - } -} - -.bold { font-weight: bold; } -.uppercase { text-transform: uppercase; } - -.lh-condensed { line-height: 1.25; } - -.list-reset { - list-style: none; - padding-left: 0; -} - -/* Border utilities */ -.border-bottom-thick { border-bottom: 2px solid; border-color: currentColor; } -.border-bottom-thin { border-bottom: 1px solid; border-color: currentColor; } -.border-top-thick { border-top: 2px solid; border-color: currentColor; } -.border-top-thin { border-top: 1px solid; border-color: currentColor; } -.border-0 { border: 0; } - - -/* Theme color utilities */ -.header-background { background-color: $color-background; } -.header-border { border-color: $color-foreground; } -.header-title { color: $color-title; } -.header-text { color: $color-foreground; } -.header-social { fill: $color-foreground; } -.header-social-accent { fill: $color-dot-accent; } -.header-link:hover { color: $color-nav-link !important; } // used for navigation links on homepage -.text-accent { color: $color-text-accent; } // used for date in post list and home link - -/* Layout utilities */ -.container { max-width: $container-width; } - -.col-1 { width: (1 / 12 * 100%); } -.col-2 { width: (2 / 12 * 100%); } -.col-3 { width: (3 / 12 * 100%); } -.col-4 { width: (4 / 12 * 100%); } -.col-5 { width: (5 / 12 * 100%); } -.col-6 { width: (6 / 12 * 100%); } -.col-7 { width: (7 / 12 * 100%); } -.col-8 { width: (8 / 12 * 100%); } -.col-9 { width: (9 / 12 * 100%); } -.col-10 { width: (10 / 12 * 100%); } -.col-11 { width: (11 / 12 * 100%); } -.col-12 { width: 100%; } - -@media (max-width: $breakpoint-lg) { - .sm-width-full { width: 100% !important; } -} - -.block { display: block !important; } -.inline-block { display: inline-block !important; } - -.table { display: table !important; } - -.left { float: left; } -.right { float: right; } - -.clearfix:before, -.clearfix:after { - content: " "; - display: table -} -.clearfix:after { clear: both } - -.align-middle { vertical-align: middle; } - -/* Padding */ -.px-0 { padding-left: 0; padding-right: 0 } -.py-0 { padding-top: 0; padding-bottom: 0 } - -.px-1 { padding-left: $spacer-1; padding-right: $spacer-1 } -.py-1 { padding-top: $spacer-1; padding-bottom: $spacer-1 } - -.px-2 { padding-left: $spacer-2; padding-right: $spacer-2; } -.py-2 { padding-top: $spacer-2; padding-bottom: $spacer-2; } - -.px-3 { padding-left: $spacer-3; padding-right: $spacer-3; } -.py-3 { padding-top: $spacer-3; padding-bottom: $spacer-3; } - -.px-4 { padding-left: $spacer-4; padding-right: $spacer-4; } -.py-4 { padding-top: $spacer-4; padding-bottom: $spacer-4; } - -/* Margin */ -.mx-auto { margin-left: auto; margin-right: auto; } - -.mt-0 { margin-top: 0; } -.mr-0 { margin-right: 0; } -.mb-0 { margin-bottom: 0; } -.ml-0 { margin-left: 0; } - -.mt-1 { margin-top: $spacer-1; } -.mr-1 { margin-right: $spacer-1; } -.mb-1 { margin-bottom: $spacer-1; } -.ml-1 { margin-left: $spacer-1; } - -.mt-2 { margin-top: $spacer-2; } -.mr-2 { margin-right: $spacer-2; } -.mb-2 { margin-bottom: $spacer-2; } -.ml-2 { margin-left: $spacer-2; } - -.mt-3 { margin-top: $spacer-3; } -.mr-3 { margin-right: $spacer-3; } -.mb-3 { margin-bottom: $spacer-3; } -.ml-3 { margin-left: $spacer-3; } - -.mt-4 { margin-top: $spacer-4; } -.mr-4 { margin-right: $spacer-4; } -.mb-4 { margin-bottom: $spacer-4; } -.ml-4 { margin-left: $spacer-4; } - -// Responsive margin -@media (min-width: 52em) { - .mx-lg-auto { margin-left: auto; margin-right: auto; } - - .mt-lg-0 { margin-top: 0; } - .mr-lg-0 { margin-right: 0; } - .mb-lg-0 { margin-bottom: 0; } - .ml-lg-0 { margin-left: 0; } - - .mt-lg-1 { margin-top: $spacer-1; } - .mr-lg-1 { margin-right: $spacer-1; } - .mb-lg-1 { margin-bottom: $spacer-1; } - .ml-lg-1 { margin-left: $spacer-1; } - - .mt-lg-2 { margin-top: $spacer-2; } - .mr-lg-2 { margin-right: $spacer-2; } - .mb-lg-2 { margin-bottom: $spacer-2; } - .ml-lg-2 { margin-left: $spacer-2; } - - .mt-lg-3 { margin-top: $spacer-3; } - .mr-lg-3 { margin-right: $spacer-3; } - .mb-lg-3 { margin-bottom: $spacer-3; } - .ml-lg-3 { margin-left: $spacer-3; } - - .mt-lg-4 { margin-top: $spacer-4; } - .mr-lg-4 { margin-right: $spacer-4; } - .mb-lg-4 { margin-bottom: $spacer-4; } - .ml-lg-4 { margin-left: $spacer-4; } -} - -// Link styles for social icons -.link-social { - text-decoration: none; - font-weight: bold; - line-height: 1; - - &:hover { - text-decoration: none !important; - } -} - -// Link styles for navigation -.link-primary { - font-weight: bold; - text-decoration: none !important; - - &:hover { - color: $color-primary-link; - text-decoration: none !important; - } -} diff --git a/_sass/_variables.scss b/_sass/_variables.scss deleted file mode 100644 index 66b0361a0..000000000 --- a/_sass/_variables.scss +++ /dev/null @@ -1,35 +0,0 @@ - -// Font family -$body-font-family: "Helvetica Neue", Arial, sans-serif; -$body-font-size: 16px; -$prose-font-size: 20px; - - -// Type scale -$h0-mobile: 64px; -$h0-desktop: 128px; - -$h1-size: 40px !default; -$h2-size: 32px !default; -$h3-size: 24px !default; -$h4-size: 20px !default; -$h5-size: 16px !default; -$h6-size: 12px !default; - -// Default border color -$color-border: #ddd !default; - -// Container width -$container-width: 64em; - -// Large breakpoint -$breakpoint-lg: 52em; - -// Spacing unit -$spacer: 8px !default; - -// Spacing scale -$spacer-1: $spacer !default; // 8px -$spacer-2: ($spacer * 2) !default; // 16px -$spacer-3: ($spacer * 4) !default; // 32px -$spacer-4: ($spacer * 8) !default; // 64px diff --git a/about.md b/about.md index 135105244..0d2fd8cb8 100644 --- a/about.md +++ b/about.md @@ -4,18 +4,14 @@ title: About permalink: /about/ --- -Swiss is a bold Jekyll theme inspired by Swiss design and the works of Massimo Vignelli. This theme lends itself well to sites heavy on written content. +I aspire to be a MadMath: trying advanced algorithms like 1 + 1, print ("hello world")... -### Features: -* Mobile-first design ensures this theme performs fastest on mobile while scaling elegantly to desktop-size screens. -* Designed for blogs and sites heavy on written content, with bold typography styles, homepage summaries, and previous/next snippets. -* Supports a wide range of HTML elements and markdown. -* Flexible styles that can be reused for customization without adding additional CSS. -* Simple styling for code snippets (if you want something with syntax highlighting, checkout ....) -* Dynamically generated navigation links. See docs below for adding pages with specific post category for-loops. +I working as a Data consultant, i studied Architecture and Urbanism, Electromechanical Technician as well; +in the 80's and early 90's Digital Graphic Design and Programmer. +Patterns and Coding has been my hobby since I was a kid. -## Themes - -## Browser Support - -## Installation +### Stack: +* Python/Julia +* MS-SQL/MySQL/Spark +* Qgis/ARCgis +* XML:RDF/HTML/JS/CSS. diff --git a/assets/ICON.svg b/assets/ICON.svg new file mode 100644 index 000000000..4c2b665ab --- /dev/null +++ b/assets/ICON.svg @@ -0,0 +1,53 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/assets/circle1018.png b/assets/circle1018.png new file mode 100644 index 000000000..81571c1b6 Binary files /dev/null and b/assets/circle1018.png differ diff --git a/assets/css/base.css b/assets/css/base.css new file mode 100644 index 000000000..e69de29bb diff --git a/assets/css/light_blue.css b/assets/css/light_blue.css new file mode 100644 index 000000000..e69de29bb diff --git a/assets/css/variables.css b/assets/css/variables.css new file mode 100644 index 000000000..e69de29bb diff --git a/data/json/analytics_notes.json b/data/json/analytics_notes.json new file mode 100644 index 000000000..2069ccccc --- /dev/null +++ b/data/json/analytics_notes.json @@ -0,0 +1,3 @@ +{ + "article_0": "an20240720A.md" +} \ No newline at end of file diff --git a/data/json/coding_notes.json b/data/json/coding_notes.json new file mode 100644 index 000000000..05917c27f --- /dev/null +++ b/data/json/coding_notes.json @@ -0,0 +1,3 @@ +{ + "article_0": "cn20240720A.md" +} \ No newline at end of file diff --git a/data/json/math_mad_notes.json b/data/json/math_mad_notes.json new file mode 100644 index 000000000..98ce5574e --- /dev/null +++ b/data/json/math_mad_notes.json @@ -0,0 +1,3 @@ +{ + "article_0": "mmn20240720A.md" +} \ No newline at end of file diff --git a/data/json/menu_items.json b/data/json/menu_items.json new file mode 100644 index 000000000..185eb02ea --- /dev/null +++ b/data/json/menu_items.json @@ -0,0 +1,46 @@ +{ + "item_0": { + "name": "Math_mad_notes", + "file": "math_mad_notes.json", + "group": "modal" + }, + "item_1": { + "name": "Analytics_notes", + "file": "analytics_notes.json", + "group": "modal" + }, + "item_2": { + "name": "Coding_notes", + "file": "coding_notes.json", + "group": "modal" + }, + "item_3": { + "name": "Portfolio", + "file": "portfolio.json", + "group": "modal" + }, + "item_4": { + "group": "spacer" + }, + "item_5": { + "group": "link", + "name": "Medium", + "href": "https://david-ok.medium.com/" + }, + "item_6": { + "group": "link", + "name": "Linkedin", + "href": "https://Linkedin.com/in/david-ok" + }, + "item_7": { + "group": "spacer" + }, + "item_8": { + "group": "link", + "name": "Github", + "href": "https://github.com/devicemxl/" + }, + "item_9": { + "group": "spacer" + } +} \ No newline at end of file diff --git a/data/json/portfolio.json b/data/json/portfolio.json new file mode 100644 index 000000000..99c4d17ac --- /dev/null +++ b/data/json/portfolio.json @@ -0,0 +1,4 @@ +{ + "article_0": "20240720A copy.md", + "article_1": "20240720A.md" +} \ No newline at end of file diff --git a/data/md/analytics_notes/an20240720A.md b/data/md/analytics_notes/an20240720A.md new file mode 100644 index 000000000..1e6570349 --- /dev/null +++ b/data/md/analytics_notes/an20240720A.md @@ -0,0 +1,5 @@ + + +# Title + +Absurd content \ No newline at end of file diff --git a/data/md/code.csv b/data/md/code.csv new file mode 100644 index 000000000..bbf1a341a --- /dev/null +++ b/data/md/code.csv @@ -0,0 +1,2 @@ +name, href +Github,https://github.com/devicemxl/ \ No newline at end of file diff --git a/data/md/coding_notes/cn20240720A.md b/data/md/coding_notes/cn20240720A.md new file mode 100644 index 000000000..1e6570349 --- /dev/null +++ b/data/md/coding_notes/cn20240720A.md @@ -0,0 +1,5 @@ + + +# Title + +Absurd content \ No newline at end of file diff --git a/data/md/math_mad_notes/mmn20240720A.md b/data/md/math_mad_notes/mmn20240720A.md new file mode 100644 index 000000000..1e6570349 --- /dev/null +++ b/data/md/math_mad_notes/mmn20240720A.md @@ -0,0 +1,5 @@ + + +# Title + +Absurd content \ No newline at end of file diff --git a/data/md/portfolio/20240720A copy.md b/data/md/portfolio/20240720A copy.md new file mode 100644 index 000000000..1e6570349 --- /dev/null +++ b/data/md/portfolio/20240720A copy.md @@ -0,0 +1,5 @@ + + +# Title + +Absurd content \ No newline at end of file diff --git a/data/md/portfolio/20240720A.md b/data/md/portfolio/20240720A.md new file mode 100644 index 000000000..1e6570349 --- /dev/null +++ b/data/md/portfolio/20240720A.md @@ -0,0 +1,5 @@ + + +# Title + +Absurd content \ No newline at end of file diff --git a/data/md/social.csv b/data/md/social.csv new file mode 100644 index 000000000..5ba756d16 --- /dev/null +++ b/data/md/social.csv @@ -0,0 +1,3 @@ +name, href +Medium,https://david-ok.medium.com/ +Linkedin,https://Linkedin.com/in/david-ok \ No newline at end of file diff --git a/generator/create_items.py b/generator/create_items.py new file mode 100644 index 000000000..9f98c4dd4 --- /dev/null +++ b/generator/create_items.py @@ -0,0 +1,134 @@ +""" +This script processes CSV and Markdown files in a specified directory to generate JSON files +for a web portfolio. +""" + +import os +import json +import pandas as pd + +# Define working and public directories +RAW_DIR = './data/md/' # Directory containing CSV and Markdown files +JSON_DIR = './data/json/' # Directory to store generated JSON files + +def list_csv_files(working_dir): + """Lists all CSV files in the specified working directory. + + Args: + working_dir (str): Path to the working directory. + + Returns: + list: A list of CSV file names. + """ + return [file for file in os.listdir(path=working_dir) if file.endswith('.csv')] + +def list_subdirectories(working_dir): + """Lists all subdirectories in the specified working directory. + + Args: + working_dir (str): Path to the working directory. + + Returns: + list: A list of subdirectory names. + """ + return next(os.walk(working_dir))[1] + +def process_markdown_files(subdirectory, working_dir): + """Processes Markdown files in a given subdirectory and creates a dictionary. + + Args: + subdirectory (str): Name of the subdirectory. + working_dir (str): Path to the working directory. + + Returns: + dict: A dictionary mapping article indices to file names. + """ + articles = [file for file in os.listdir(path=working_dir + subdirectory) if file.endswith('.md')] + article_dict = {} + for i, article in enumerate(articles): + article_dict[f"article_{i}"] = article + return article_dict + +def process_csv_files(link_list, working_dir, item_number, dict_json): + """Processes CSV files and adds their content to the main JSON dictionary. + + Args: + link_list (list): A list of CSV file names. + working_dir (str): Path to the working directory. + item_number (int): Starting index for JSON items. + dict_json (dict): The main JSON dictionary. + + Returns: + tuple: A tuple containing the updated item number and the modified JSON dictionary. + """ + for link in link_list: + local_list = pd.read_csv(working_dir + link) + local_list.columns = ['name', 'href'] + for row in range(len(local_list)): + dict_json[f'item_{item_number}'] = { + "group": "link", + "name": local_list['name'][row], + "href": local_list['href'][row] + } + item_number += 1 + dict_json[f'item_{item_number}'] = {"group": "spacer"} + item_number += 1 + return item_number, dict_json + +def save_json(data, filename): + """Saves the given data as a JSON file. + + Args: + data (dict): The data to be saved. + filename (str): The name of the output JSON file. + """ + with open(filename, 'w', encoding='utf-8') as js_file: + json.dump(data, js_file, indent=3) + +def save_js(data, filename): + """Saves the given data as a JavaScript file. + + Args: + data (str): The data to be saved. + filename (str): The name of the output JavaScript file. + """ + with open(filename, 'w', encoding='utf-8') as js_file: + js_file.write(data) + +def main(): + """Main function to orchestrate the entire process. + + This function initializes counters, processes subdirectories and CSV files, + and generates the necessary JSON and JavaScript files for the web portfolio. + """ + item_number = 0 # Counter for items in the main JSON structure + dict_json = {} # Main JSON dictionary to store all items + + link_list = list_csv_files(RAW_DIR) + subdirectories = list_subdirectories(RAW_DIR) + + for subdir in subdirectories: + dict_json[f'item_{item_number}'] = { + "name": subdir.capitalize(), # Folder name capitalized + "file": f'{subdir}.json', # Name of the JSON file for this folder + "group": "modal" + } + + article_dict = process_markdown_files(subdir, RAW_DIR) + save_json(article_dict, f'{JSON_DIR}{subdir}.json') + + item_number += 1 + + dict_json[f'item_{item_number}'] = {"group": "spacer"} + item_number += 1 + + item_number, dict_json = process_csv_files(link_list, RAW_DIR, item_number, dict_json) + + inverse_dict = dict(sorted(dict_json.items(), reverse=False)) + json_dict = json.dumps(inverse_dict, indent=3) + + js_object = "menu_items = " + str(json_dict) + ';\nexport let menu_items;' + save_js(js_object, f'{JSON_DIR}menu_items.js') + +if __name__ == '__main__': + main() diff --git a/index.html b/index.html index 9ac187e64..c3a0dd1d0 100644 --- a/index.html +++ b/index.html @@ -1,5 +1,948 @@ ---- -layout: home ---- + + - + + + + + David Ok + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jekyll-swiss-0.1.0.gem b/jekyll-swiss-0.1.0.gem deleted file mode 100644 index 084f01344..000000000 Binary files a/jekyll-swiss-0.1.0.gem and /dev/null differ diff --git a/jekyll-swiss.gemspec b/jekyll-swiss.gemspec deleted file mode 100644 index ba83529f5..000000000 --- a/jekyll-swiss.gemspec +++ /dev/null @@ -1,20 +0,0 @@ -# coding: utf-8 - -Gem::Specification.new do |spec| - spec.name = "jekyll-swiss" - spec.version = "1.0.0" - spec.authors = ["broccolini"] - spec.email = ["diana.mounter@gmail.com"] - - spec.summary = %q{A bold typographic theme for Jekyll, inspired by Swiss design.} - spec.homepage = "http://broccolini.net/swiss" - spec.license = "MIT" - - spec.files = `git ls-files -z`.split("\x0").select do |f| - f.match(%r{^(assets|_(includes|layouts|sass)/|(LICENSE|README)((\.(txt|md|markdown)|$)))}i) - end - - spec.add_development_dependency "jekyll", "~> 3.2" - spec.add_development_dependency "bundler", "~> 1.12" - spec.add_development_dependency "rake", "~> 10.0" -end diff --git a/main.go b/main.go new file mode 100644 index 000000000..2721c418d --- /dev/null +++ b/main.go @@ -0,0 +1,34 @@ +package main + +import ( + "flag" + "fmt" + "log" + "net/http" +) + +type Server struct { + listenAddr string +} + +func NewServer(listenAddr string) *Server { + return &Server{ + listenAddr: listenAddr, + } +} + +func (s *Server) Start() error { + // Serve static files from the "static" directory + fs := http.FileServer(http.Dir("./")) + http.Handle("/", fs) + + return http.ListenAndServe(s.listenAddr, nil) +} + +func main() { + listenAddr := flag.String("listenaddr", ":3000", "the server address") + flag.Parse() + server := NewServer(*listenAddr) + fmt.Println("Server running on", *listenAddr) + log.Fatal(server.Start()) +} diff --git a/test.html b/test.html new file mode 100644 index 000000000..eece13766 --- /dev/null +++ b/test.html @@ -0,0 +1,39 @@ + + + + + + + Markdown to HTML + + + + + +
+ + + + \ No newline at end of file diff --git a/test.md b/test.md new file mode 100644 index 000000000..f9909a625 --- /dev/null +++ b/test.md @@ -0,0 +1,2 @@ +## Hello World! +This is **Markdown** content. \ No newline at end of file diff --git a/thumbnail.png b/thumbnail.png deleted file mode 100644 index 3e67123c4..000000000 Binary files a/thumbnail.png and /dev/null differ diff --git a/wdd130/images/03_ValledeLosGigantes-scaled.jpg b/wdd130/images/03_ValledeLosGigantes-scaled.jpg new file mode 100644 index 000000000..7e8240932 Binary files /dev/null and b/wdd130/images/03_ValledeLosGigantes-scaled.jpg differ diff --git a/wdd130/images/profile.jpeg b/wdd130/images/profile.jpeg new file mode 100644 index 000000000..8bbff1620 Binary files /dev/null and b/wdd130/images/profile.jpeg differ diff --git a/wdd130/images/readme.md b/wdd130/images/readme.md new file mode 100644 index 000000000..c291c0912 --- /dev/null +++ b/wdd130/images/readme.md @@ -0,0 +1 @@ +images diff --git a/wdd130/index.html b/wdd130/index.html new file mode 100644 index 000000000..3010a78b6 --- /dev/null +++ b/wdd130/index.html @@ -0,0 +1,67 @@ + + + + + + + + + + + David Ochoa Corrales ! WDD 130 + + + + + +
+ +
+
+
+

David Ochoa ! WDD 130

+ Hi! I'm David Ochoa +

Hi! I'm David Ochoa from mexico, i enjoy read, walk and the food 🐷. i don't know what else write + then i use a kafka's text from blindtextgenerator.com/lorem-ipsum:

+

+ "One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into + a + horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his + brown + belly, slightly domed and divided by arches into stiff sections..." +

+ +
+ +
+
+

©️2024 David Ochoa, Mexico

+
+ + + \ No newline at end of file diff --git a/wdd130/quiz.html b/wdd130/quiz.html new file mode 100644 index 000000000..c83ffb8ed --- /dev/null +++ b/wdd130/quiz.html @@ -0,0 +1,90 @@ + + + + + + + + + + Quiz | WDD 130 David Ochoa + + + + +
+ +
+ + +

Basic HTML and CSS quiz

+
+
+ +
+
+ + +
+ + + +
+ +
+ + +
+
+ + +
+ +
margin: 10px 5px 15px;
+ +
+
+ +
+ +
+
+
+ +
+ + diff --git a/wdd130/readme.md b/wdd130/readme.md new file mode 100644 index 000000000..25a2813a1 --- /dev/null +++ b/wdd130/readme.md @@ -0,0 +1 @@ +wdd130 class excersices diff --git a/wdd130/styles/quiz.css b/wdd130/styles/quiz.css new file mode 100644 index 000000000..eea244e84 --- /dev/null +++ b/wdd130/styles/quiz.css @@ -0,0 +1,193 @@ +:root { + border: 0; + margin: 0; + left: 0; + top: 0; + --total-input-width: 340px; + --total-input-height: 25px; + --gray-250: rgb(252, 252, 252); + --gray-235: rgb(235, 235, 235); + --gray-050: rgb(55, 55, 55); + --gray-005: rgb(5, 5, 5); + --blue-160: rgb(0, 100, 160); + --main-bg-color: var(--gray-250); + --box-bg-color: var(--gray-235); +} + +body { + position: relative; + display: flex; + background-color: var(--main-bg-color); + flex-direction: row; + flex-wrap: nowrap; + justify-content: center; + align-items: center; +} + +.main { + display: flex; + position: absolute; + top: 50%; + transform: translateY(50%); +} + +.quiz_container { + display: flex; + width: 400px; + height: 450px; + background-color: var(--box-bg-color); + flex-direction: column; + flex-wrap: nowrap; + justify-content: space-evenly; + align-items: center; +} +select, +input[type="checkbox"]:not(input[type="submit"]) { + appearance: none; +} + +input[type="submit"] { + appearance: unset; +} +input[type="checkbox"] { + pointer-events: none; +} + +label { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + align-items: flex-start; + justify-content: flex-start; + padding: 0; + margin: 0; + font-size: 12px; +} + +.t_box { + display: flex; + top: -50px; + position: absolute; + width: 100%; + flex-direction: row; + flex-wrap: nowrap; + justify-content: space-between; + align-items: baseline; + z-index: -5; +} + +.t_box input[type="checkbox"] { + cursor: none; + background-color: var(--gray-050); + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e"); + width: 15px; + height: 15px; + appearance: none; + border-radius: 5px; + border-color: var(--gray-050); + border-width: 0.5px; + margin-left: 12px; + margin-right: 10px; +} + +.title { + display: flex; + flex-direction: row; + position: absolute; + align-items: baseline; + flex-wrap: nowrap; + margin-left: 15px; + justify-content: center; +} + +.numeracion, +.title h1 { + color: var(--blue-160); + font-weight: 500; +} + +.title h1 { + font-family: "Times New Roman", Times, serif; + font-size: 22px; + height: calc(var(--total-input-width) - 50px); +} + +.q_box { + display: flex; + flex-direction: column; + flex-wrap: nowrap; + align-items: flex-start; + justify-content: center; +} + +.q_box textarea, +.q_box select, +.q_box input { + font-size: 14px; + width: var(--total-input-width); + border-radius: 5px; + border-color: var(--gray-050); + border-width: 0.5px; +} + +.q_box input[type="text"], +.q_box input[type="number"] { + line-height: var(--total-input-height); +} + + +textarea { + line-height: calc(var(--total-input-height) * 1.5); +} + +select { + background-color: var(--gray-250); + font-size: 14px; + width: var(--total-input-width); + border-radius: 5px; + border-color: var(--gray-050); + border-width: 0.5px; + height: var(--total-input-height); + max-width: 100%; /* useful when width is set to anything other than 100% */ + + background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"); + /*linear-gradient(to bottom, #ffffff 0%,#e5e5e5 100%);*/ + background-repeat: no-repeat, repeat; + /* arrow icon position (1em from the right, 50% vertical) , then gradient position*/ + background-position: right 0.7em top 50%, 0 0; + /* icon size, then gradient */ + background-size: 0.65em auto, 100%; +} + +.q_box input[type="submit"] { + font-size: 14px; + width: calc(var(--total-input-width) + 5px); + height: calc(var(--total-input-height) + 10px); + border-radius: 5px; + border-width: 0.5px; + background: var(--blue-160); + color: white; + border-style: outset; + border-color: var(--blue-160); + text-shadow: none; +} + +.q_box input[type="submit"]:hover { + opacity: 0.8; +} +.q_box input[type="submit"]:active { + opacity: 1; +} + +.gray_box { + width: 250px; + height: var(--total-input-height); + background-color: var(--gray-050); + color: var(--gray-250); + font-size: 11px; + padding-left: 30px; + margin-bottom: 15px; + align-self: center; + display: grid; + align-items: center; +} \ No newline at end of file diff --git a/wdd130/styles/styles.css b/wdd130/styles/styles.css new file mode 100644 index 000000000..23e4f1a13 --- /dev/null +++ b/wdd130/styles/styles.css @@ -0,0 +1,127 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; + text-decoration: none; +} + +main { + max-width: 840px; +} + +img { + width: 150px; + height: auto; + border: 1px solid steelblue; + padding: 2px; + box-shadow: 0 0 30px gray; +} + +main img { + margin: 0 1rem 0 1rem; + padding: 0; + /* */ + width: 150px; + height: auto; + /* nothing to declare here */ + float: right; +} + +main p { + margin: 0 1rem 0 1rem; + padding: 0; +} + +aside { + width: 20rem; + text-align: center; + position: relative; + margin: 1rem; + border: 1px solid rgba(0, 0, 0, 0.2); + padding: 1rem; + background-color: #ecf3f9; + color: #333; +} + +aside img { + width: 200px; + height: auto; +} + +aside h2 { + position: absolute; + top: 47px; + left: 75px; +} + +nav { + background-color: steelblue; + padding: 1rem; + display: flex; + justify-content: space-evenly; + align-items: center; +} + +nav a { + display: block; + padding: 0.5rem; + text-decoration: none; + font-size: 1.2rem; + font-weight: 700; + color: #ffffff; +} + +h1 { + color: steelblue; + border-bottom: solid 1px cornflowerblue; + padding: 0.5em; + margin-bottom: 0.5em; + +} + +p { + padding: 0; +} + +header, +footer { + max-width: 840px; + margin: 0 auto; +} +/* +div { + max-width: 840px; + margin: 0 auto; +} +*/ +footer { + margin-top: 15px; + border-top: 1px solid #000; + text-align: center; +} + +/* Class Selectors */ +.box { + margin: 1rem; + padding: 1rem; + border: 1px solid rgba(0, 0, 0, .1); + background-color: #ddd; + color: #000; +} + +.grid { + display: grid; + align-items: center; +} + +main { + grid-column: 2/3; + margin: 1rem; +} + +aside { + width: 20rem; + position: relative; + grid-column: 1/2; + grid-row: 1/2; +} \ No newline at end of file diff --git a/wdd130/week02/box-model.html b/wdd130/week02/box-model.html new file mode 100644 index 000000000..8ad17fecf --- /dev/null +++ b/wdd130/week02/box-model.html @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + >A box model example + + +
+
+ Paul the Apostle +
+

11 Not that I speak in respect of want: for I have learned, in whatsoever state I am, therewith to be content.

+

12 I know both how to be abased, and I know how to abound: every where and in all things I am instructed both to be full and to be hungry, both to abound and to suffer need.

+

13 I can do all things through Christ which strengtheneth me.

+
+ Philippians 4:11-13 +
+
+
+ \ No newline at end of file diff --git a/wdd130/week02/holygrail.html b/wdd130/week02/holygrail.html new file mode 100644 index 000000000..d68dd1b69 --- /dev/null +++ b/wdd130/week02/holygrail.html @@ -0,0 +1,46 @@ + + + + + + + + + + >A Holy Grail Layout Example + + + +
+

A Holy Grail Layout Example

+
+ +
+
+
+

Article 1

+

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Asperiores, eum...

+
+
+
+
+

Article 2

+

Lorem ipsum dolor sit amet consectetur adipisicing elit. Distinctio, harum....

+
+
+
+ +
+

David Ochoa, Mexico

+
+ + + \ No newline at end of file diff --git a/wdd130/week02/styles/box-model.css b/wdd130/week02/styles/box-model.css new file mode 100644 index 000000000..7303f63f5 --- /dev/null +++ b/wdd130/week02/styles/box-model.css @@ -0,0 +1,46 @@ +:root{ + + background-color: #dfe9f1; +} +.callout { + /* + maximum width, margin, border, padding, background color, and text color + */ + width: 450px; + margin: 10px; + border: 1px solid rgba(0, 0, 0, .1); + padding: 15px; + background-color: #247; + color: #fff; +} + +.callout img { + /* + position (float), margin, border, padding, background color, width, height + */ + float: right; + margin: 0 0 10px 15px; + border: 1px solid #000; + padding: 3px; + background-color: #adb5bb; + width: 100px; + height: auto; +} + +blockquote { + /* + margin + */ + margin: 0; +} + +cite { + /* + display, top border, top padding, text alignment, size of font + */ + display: block; + border-top: 1px dotted #f2fafc; + padding-top: 3px; + text-align: right; + font-size: smaller; +} \ No newline at end of file diff --git a/wdd130/week02/wireframe.html b/wdd130/week02/wireframe.html new file mode 100644 index 000000000..7f3b8d020 --- /dev/null +++ b/wdd130/week02/wireframe.html @@ -0,0 +1,115 @@ + + + + + + + + + + Wireframe to HTML + + + + +
+
+ logo +
+ +
+
+ + + + +
+
+ + + + + + +
+ + + \ No newline at end of file diff --git a/wdd130/week03/overlay.html b/wdd130/week03/overlay.html new file mode 100644 index 000000000..08294a8cd --- /dev/null +++ b/wdd130/week03/overlay.html @@ -0,0 +1,41 @@ + + + + + + + + + + + David Ochoa Corrales ! WDD 130 + + + + + + + + Document + + + + +
+

CSS Layout: Position Absolute

+
+ Kitten placeholder image +
+

About Me

+

Gender: Female

+

Age: 1

+

Shots?: Yes

+
+
+
  • +
    +
    Footer Content: note the footer using a position - fixed declaration
    + + + + \ No newline at end of file diff --git a/wdd130/week03/styles/overlay.css b/wdd130/week03/styles/overlay.css new file mode 100644 index 000000000..824fd0388 --- /dev/null +++ b/wdd130/week03/styles/overlay.css @@ -0,0 +1,58 @@ +* { + margin: 0; + padding: 0; +} + +main { + max-width: 800px; + margin: 2rem auto; + font-family: Roboto, Arial, sans-serif; +} + +h2 { + text-align: center; + font-size: 1.5rem; + text-shadow: 3px 3px 5px #777; +} + +.herodiv { + margin: 10px auto; + /* If removed, what happens? */ + position: relative; +} + +.herodiv img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.stats { + position: absolute; + top: 25px; + right: 15px; + bottom: 25px; + left: 15px; + background: radial-gradient(#eee, #3e5a92d0); + border: 1px solid #000; + padding: 0.65rem; + box-shadow: 0 0 30px #111; + opacity: 0.8; +} + +h3 { + text-shadow: 0 0 15px #333; + border-bottom: 1px solid #999; + margin-bottom: 0.3rem; +} + +footer { + position: fixed; + bottom: 0; + margin: 1rem; + border-top: 1px solid #000; + padding: 0.5rem; + color: rgb(20, 20, 87); + font-weight: 700; + font-style: italic; +} \ No newline at end of file diff --git a/wdd130/wwr/about.html b/wdd130/wwr/about.html new file mode 100644 index 000000000..fc891ffa7 --- /dev/null +++ b/wdd130/wwr/about.html @@ -0,0 +1,117 @@ + + + + + + + Baja Rafting | About Us + + + + + + + + +
    + + + + + + +
    + +
    + +
    + +

    Baja Rafting

    +
    +

    + Baja Rafting: Your door to the heart of the Colorado River.
    + Adventure and excitement in each rapid. Explore natural wonders + and discover the adrenaline in the Colorado River with Baja Rafting. +
    + More than a trip, an unforgettable experience. +

    + motto +
    +
    + +
    +

    History

    +
    +

    + In 2024, Baja Rafting set out on a mission to share our passion for + river rafting with the world. Born from a love of adrenaline-pumping + rapids and breathtaking scenery, we started offering guided weekend + trips on the Colorado River. Word quickly spread among + adventure-seekers, and soon, we were leading groups of all skill + levels down challenging whitewater runs and tranquil stretches, + immersing them in the untamed beauty of California. +

    + rafting history +

    + Baja Rafting has grown from a local gem to a regional leader, now + spanning ten counties across the border and recognized as one of the + most reputable adventure companies. Our user-friendly website + empowers you to embark on your wild ride effortlessly. Browse + detailed descriptions of our rafting adventures, from heart-pounding + rapids to serene stretches, all amidst the stunning landscapes of + Baja California. And after your unforgettable journey, share your + breathtaking photos and feedback with our community – inspiring the + next wave of adventurers! +

    +
    +
    + +
    +

    Adventure Awaits You!

    +
    + Rafting +
    rafting 1
    +
    +
    + Rafting +
    rafting 2
    +
    +
    + Rafting +
    rafting 3
    +
    +
    + Rafting +
    rafting 4
    +
    +
    + Rafting +
    rafting 5
    +
    +
    +
    +
    +
    +

    ©️2024 Baja Rafting 🚣🌞 David Ochoa | WDD 130

    + +
    + + diff --git a/wdd130/wwr/contact.html b/wdd130/wwr/contact.html new file mode 100644 index 000000000..cec2cd1ce --- /dev/null +++ b/wdd130/wwr/contact.html @@ -0,0 +1,243 @@ + + + + + + + Baja Rafting | Contact Us + + + + + + + + +
    + + + + + + +
    + +
    + +
    + +

    Baja Rafting

    +
    +
    +

    Reach Our Team

    +

    + We love questions and feedback – and we're always happy to help! Here + are some ways to contact us. +

    +
    + +
    + +
    +
    + Rafting +
    +

    John Doe

    + + Concierge + +

    Already enjoy our services?

    +
    +
    +
    +
    +
    + Rafting +
    +

    Jane Roe

    + + Sales + +

    Pricing, billing & Product Discovering

    +
    +
    +
    +
    +
    + Rafting +
    +

    Richard Miles

    + + B2B sales + +

    Looking adventure for you partners?

    +
    +
    +
    + +
    + + +
    + +
    + +
    +

    Headquarters

    +

    Mexicali, Baja California

    + +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    +

    Send Us a Message

    +

    Send us a message and we'll respond within 24 hours.

    +
    +
    +
    + +
    +
    + Purpose of the message + + + +
    +
    + +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + +
    + + +
    +
    +
    + +
    +
    + + + diff --git "a/wdd130/wwr/images/Vall\303\251e_de_l'Ubaye_Rafting.jpg" "b/wdd130/wwr/images/Vall\303\251e_de_l'Ubaye_Rafting.jpg" new file mode 100644 index 000000000..bef0221a8 Binary files /dev/null and "b/wdd130/wwr/images/Vall\303\251e_de_l'Ubaye_Rafting.jpg" differ diff --git a/wdd130/wwr/images/action.jpg b/wdd130/wwr/images/action.jpg new file mode 100644 index 000000000..77ff53554 Binary files /dev/null and b/wdd130/wwr/images/action.jpg differ diff --git a/wdd130/wwr/images/daisy.jpg b/wdd130/wwr/images/daisy.jpg new file mode 100644 index 000000000..1fd3415f8 Binary files /dev/null and b/wdd130/wwr/images/daisy.jpg differ diff --git a/wdd130/wwr/images/donald.jpg b/wdd130/wwr/images/donald.jpg new file mode 100644 index 000000000..1c5296336 Binary files /dev/null and b/wdd130/wwr/images/donald.jpg differ diff --git a/wdd130/wwr/images/facebook_icon.png b/wdd130/wwr/images/facebook_icon.png new file mode 100644 index 000000000..59f617633 Binary files /dev/null and b/wdd130/wwr/images/facebook_icon.png differ diff --git a/wdd130/wwr/images/happy.png b/wdd130/wwr/images/happy.png new file mode 100644 index 000000000..b094a426f Binary files /dev/null and b/wdd130/wwr/images/happy.png differ diff --git a/wdd130/wwr/images/hero.png b/wdd130/wwr/images/hero.png new file mode 100644 index 000000000..20d5ffb67 Binary files /dev/null and b/wdd130/wwr/images/hero.png differ diff --git a/wdd130/wwr/images/history.jpg b/wdd130/wwr/images/history.jpg new file mode 100644 index 000000000..14acc028e Binary files /dev/null and b/wdd130/wwr/images/history.jpg differ diff --git a/wdd130/wwr/images/ignite.png b/wdd130/wwr/images/ignite.png new file mode 100644 index 000000000..10c40140a Binary files /dev/null and b/wdd130/wwr/images/ignite.png differ diff --git a/wdd130/wwr/images/instagram_icon.png b/wdd130/wwr/images/instagram_icon.png new file mode 100644 index 000000000..2c15c4931 Binary files /dev/null and b/wdd130/wwr/images/instagram_icon.png differ diff --git a/wdd130/wwr/images/kayak001.jpg b/wdd130/wwr/images/kayak001.jpg new file mode 100644 index 000000000..bc37db922 Binary files /dev/null and b/wdd130/wwr/images/kayak001.jpg differ diff --git a/wdd130/wwr/images/logo.png b/wdd130/wwr/images/logo.png new file mode 100644 index 000000000..acd2d1438 Binary files /dev/null and b/wdd130/wwr/images/logo.png differ diff --git a/wdd130/wwr/images/main_bg.jpg b/wdd130/wwr/images/main_bg.jpg new file mode 100644 index 000000000..0145ff396 Binary files /dev/null and b/wdd130/wwr/images/main_bg.jpg differ diff --git a/wdd130/wwr/images/main_bg.png b/wdd130/wwr/images/main_bg.png new file mode 100644 index 000000000..f821b18b6 Binary files /dev/null and b/wdd130/wwr/images/main_bg.png differ diff --git a/wdd130/wwr/images/mickey.jpg b/wdd130/wwr/images/mickey.jpg new file mode 100644 index 000000000..4edffa53b Binary files /dev/null and b/wdd130/wwr/images/mickey.jpg differ diff --git a/wdd130/wwr/images/palette.png b/wdd130/wwr/images/palette.png new file mode 100644 index 000000000..edc0cf5ba Binary files /dev/null and b/wdd130/wwr/images/palette.png differ diff --git a/wdd130/wwr/images/rafting1.jpg b/wdd130/wwr/images/rafting1.jpg new file mode 100644 index 000000000..1a440245e Binary files /dev/null and b/wdd130/wwr/images/rafting1.jpg differ diff --git a/wdd130/wwr/images/rafting2.jpg b/wdd130/wwr/images/rafting2.jpg new file mode 100644 index 000000000..037389b1c Binary files /dev/null and b/wdd130/wwr/images/rafting2.jpg differ diff --git a/wdd130/wwr/images/rafting3.jpg b/wdd130/wwr/images/rafting3.jpg new file mode 100644 index 000000000..14562f95b Binary files /dev/null and b/wdd130/wwr/images/rafting3.jpg differ diff --git a/wdd130/wwr/images/rafting4.jpg b/wdd130/wwr/images/rafting4.jpg new file mode 100644 index 000000000..6fc53678d Binary files /dev/null and b/wdd130/wwr/images/rafting4.jpg differ diff --git a/wdd130/wwr/images/rafting5.jpg b/wdd130/wwr/images/rafting5.jpg new file mode 100644 index 000000000..7b03c2845 Binary files /dev/null and b/wdd130/wwr/images/rafting5.jpg differ diff --git a/wdd130/wwr/images/rect1.png b/wdd130/wwr/images/rect1.png new file mode 100644 index 000000000..b2f000ad5 Binary files /dev/null and b/wdd130/wwr/images/rect1.png differ diff --git a/wdd130/wwr/images/squared_001.jpg b/wdd130/wwr/images/squared_001.jpg new file mode 100644 index 000000000..ffbc530bc Binary files /dev/null and b/wdd130/wwr/images/squared_001.jpg differ diff --git a/wdd130/wwr/images/squared_001.png b/wdd130/wwr/images/squared_001.png new file mode 100644 index 000000000..af28accf8 Binary files /dev/null and b/wdd130/wwr/images/squared_001.png differ diff --git a/wdd130/wwr/images/squared_002.png b/wdd130/wwr/images/squared_002.png new file mode 100644 index 000000000..f7a6fb048 Binary files /dev/null and b/wdd130/wwr/images/squared_002.png differ diff --git a/wdd130/wwr/images/squared_003.png b/wdd130/wwr/images/squared_003.png new file mode 100644 index 000000000..b7973cd10 Binary files /dev/null and b/wdd130/wwr/images/squared_003.png differ diff --git a/wdd130/wwr/images/twitter_icon.png b/wdd130/wwr/images/twitter_icon.png new file mode 100644 index 000000000..c7924bf35 Binary files /dev/null and b/wdd130/wwr/images/twitter_icon.png differ diff --git a/wdd130/wwr/index.html b/wdd130/wwr/index.html new file mode 100644 index 000000000..1074bec14 --- /dev/null +++ b/wdd130/wwr/index.html @@ -0,0 +1,118 @@ + + + + + + + Baja Rafting | Home + + + + + + + +
    + + + + + + +
    + +
    + +
    +

    Ignite Your Inner Adventurer!

    +
    +

    + with Baja Rafting +

    +
    + +
    + +
    +
    +

    Reach Our Team

    +

    Challenge your limits and live a unique experience with Baja Rafting.
    Our seasoned guides ensure your safety and maximize your enjoyment, empowering you to conquer each rapid with confidence.

    +
    + +
    + +
    + +
    +
    +
    +
    +

    See our destinations

    +
    +
    + Estes Park +
    Rafting in Estes Park
    +
    +
    +
    +
    + Westwater +
    Westwater Canyon
    +
    +
    +
    +
    + Rafting boat +
    Drowsy Water Ranch
    +
    +
    +
    +
    + + + \ No newline at end of file diff --git a/wdd130/wwr/site-plan-rafting.html b/wdd130/wwr/site-plan-rafting.html new file mode 100644 index 000000000..f4d75149e --- /dev/null +++ b/wdd130/wwr/site-plan-rafting.html @@ -0,0 +1,102 @@ + + + + + + + + Rafting Site Plan | David Ochoa + + + + + + + + +
    +

    Rafting Site Plan

    +

    David Ochoa

    +
    +
    +

    Overview

    +

    Purpose

    +

    + Feel the spray on your face, the roar of the rapids in your ears, and the adrenaline coursing through your + veins as you navigate the wild rivers of California with Baja Rafting! +

    +

    + Whether you're a seasoned rafter eager for an epic challenge or a curious newcomer seeking an unforgettable + adventure, we have the perfect trip tailored just for you. +

    +

    + Our expert guides will lead you through breathtaking canyons, past towering rock formations, and into hidden + coves teeming with marine life. Prepare to be dazzled by the vibrant turquoise waters, golden beaches, and + endless skies that make California a true paddler's paradise. +

    +

    + At Baja Rafting, we're more than just a rafting company; we're about creating memories that will last a + lifetime. +

    +

    + So join us and experience the magic of Baja rafting! Book your adventure today and get ready to make a + splash! +

    +

    Audience

    +

    Baja Rafting welcomes everyone! Whether you're an adrenaline junkie seeking epic rapids or a curious family + wanting to splash into a new adventure, we have the perfect trip for you. +

    +

    + For the novice rafter: Embark on a gentle guided journey, soaking in the stunning scenery and learning the + ropes (and paddles!) at your own pace. +

    +

    + For the seasoned adventurer: Conquering thrilling whitewater becomes your playground. Navigate challenging + rapids, test your skills, and forge memories that will echo in your soul. +

    +

    + Beyond the thrill: We're not just about adrenaline. Families can bond over laughter and teamwork, while + corporate groups discover the power of collaboration through the shared rhythm of the river. +

    +

    + Join us, connect with nature, and forge unforgettable memories with Baja Rafting! +

    + +

    Branding

    + +

    Website Logo

    + + Rafting Site Logo + +

    Style Guide

    + +

    Color Palette

    +

    +

    Typography

    +

    Headings Example Font

    +

    Normal Text/Paragraph Example Font

    +

    Example text - Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolor, laborum.

    +

    Colored Callout Example Font

    +

    Example text - Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis, corrupti.

    +

    Navigation

    + + +

    Wireframes

    +

    Home Page Wireframe

    + Home Page Wireframe Example Design +

    About Us Page Wireframe

    + About Us Page Wireframe Design +
    +
    +

    ©️2024 Rafting Site Document 🚣🌞 David Ochoa | WDD 130

    +
    + + + \ No newline at end of file diff --git a/wdd130/wwr/styles/rafting.css b/wdd130/wwr/styles/rafting.css new file mode 100644 index 000000000..b284ee0f4 --- /dev/null +++ b/wdd130/wwr/styles/rafting.css @@ -0,0 +1,978 @@ +@import url("https://fonts.googleapis.com/css2?family=Glegoo:wght@700&family=Montserrat:wght@200&display=swap"); + + +/* +palette: +https://coolors.co/user/palettes/65ad6f4f361e26000b8923b6 +palette generated by adobe from image: +https://commons.wikimedia.org/wiki/File:Vall%C3%A9e_de_l%27Ubaye_Rafting.jpg +*/ +:root { + --primary-color: #ddeee9; + --secondary-color: #98a6a2; + --accent1-color: #9b0713; + --accent2-color: #e6b31a; + --accent2-color-translucid: #e6b31ab0; + --accent3-color: #545956; + --heading-font: "Glegoo", serif; + --paragraph-font: "Montserrat", sans-serif; + --nav-link-color: var(--accent1-color); + --nav-background-color: var(--secondary-color); + --nav-hover-background-color: var(--accent3-color); + --nav-hover-link-color: var(--accent2-color); + /* + */ +} + +body { + border: 0; + margin: 0; + padding: 0; + left: 0; + position: absolute; + font-family: var(--paragraph-font); + font-size: 1.1rem; + /**/ + overflow-x: hidden; + /**/ + background-color: #fff; +} + +header { + margin: 1rem auto; + display: grid; + grid-template-columns: 120px 1fr 2fr; + align-items: center; + border-bottom: 1px solid var(--primary-color); + max-width: 1000px; +} + +.logo { + margin: 0 0.25rem 0 1rem; + width: auto; + height: 5em; + max-height: 95px; +} + +nav { + text-align: right; +} + +.navigation { + display: flex; + list-style: none; +} + +.navigation a { + display: block; + color: var(--nav-link-color); + margin-left: 3.5em; + text-decoration: none; + width: 8rem; + max-width: 150px; +} + +.navigation a:hover { + color: var(--nav-hover-link-color); + font-weight: 700; + text-decoration: none; +} + +a { + text-decoration: none; +} + +/* +Hero properties +*/ +.hero { + padding: 0; + margin: 0; + margin-bottom: 50px; + position: relative; + height: 80vh; + overflow: hidden; + background-image: url(../images/action.jpg); + background-position-x: left; + background-position-y: top; + background-size: cover; + resize: both; + align-content: center; + top: 0; + width: 100%; + font-family: var(--heading-font); + color: var(--accent1-color); + opacity: 1; + display: flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: center; + align-items: center; +} + +.hero_contact, +.hero_trip { + padding: 0; + margin: 0; + margin-bottom: 50px; + position: relative; + height: 40vh; + width: 100vw; + overflow: hidden; + background-image: url(../images/action.jpg); + background-size: cover; + background-position-y: center; + resize: both; + display: flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: center; + align-items: center; +} + +.hero_index { + padding: 0; + margin: 0; + margin-bottom: 50px; + position: relative; + height: 80vh; + width: 100vw; + overflow: hidden; + background-image: url(../images/ignite.png); + background-size: cover; + background-position-y: center; + resize: both; + display: flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: center; + align-items: center; +} + +.h1_index { + position: absolute; + width: 100%; + font-size:5vh; + color: #fff; /*var(--primary-color);*/ + text-shadow: 0px 0px 3px var(--nav-hover-background-color), + 0px 0px 15px var(--accent1-color), 0px 0px 40px var(--accent3-color); + display: flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: center; + align-items: center; + position: absolute; + top: 20vh; +} + +.hero h1, +.hero_trip h1, +.hero_contact h1 { + position: absolute; + top: 0; + width: 100%; + font-family: var(--heading-font); + color: #fff; /*var(--primary-color);*/ + text-shadow: 0px 0px 3px var(--nav-hover-background-color), + 0px 0px 15px var(--accent1-color), 0px 0px 40px var(--accent3-color); + opacity: 1; + display: flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: center; + align-items: center; +} + +.hero article { + position: absolute; + top: 40%; + width: 70%; + max-width: 1000px; + padding: 1rem; + background-color: var(--accent2-color-translucid); + display: flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: space-between; + align-items: center; + border-radius: 1vh; + box-shadow: rgba(0, 0, 0, 0.25) 0px 30px 45px -12px inset, + rgba(24, 23, 23, 0.3) 0px 18px 36px -18px inset; +} + +.hero article p { + color: var(--accent1-color); + font-weight: bold; + /**/ + padding: 1rem; +} + +.hero article img { + align-self: center; + text-align: end; + border-radius: 1vh; +} + +.history { + padding: 1rem; + /**/ + overflow: hidden; +} + +/* +TRIPS SECTION +*/ +.verbosity { + max-width: 45%; + margin: 0 5% 5% 5%; +} + +/* +TEAM SECTION +*/ + +.team { + display: flex; + flex-direction: column; + justify-content: center; + flex-wrap: nowrap; + align-items: center; + position: absolute; + height: 60vh; + width: 80vw; + max-width: 1000px; + top: calc(40vh + 50px); + left: 50%; + transform: translate(-50%, -35%) scale(0.9); + z-index: 10; + border-radius: 1rem; + background-image: url(../images/hero.png); + background-position-x: right; + background-position-y: center; + background-color: #ddeee987; + background-size: initial; + background-blend-mode: hue; + box-shadow: rgba(50, 50, 93, 0.25) 0px 50px 100px -20px, + rgba(0, 0, 0, 0.3) 0px 30px 60px -30px, + rgba(10, 37, 64, 0.35) 0px -2px 6px 0px inset; + text-shadow: 0px 0px 3px var(--primary-color), + 0px 0px 15px var(--primary-color), 0px 0px 40px var(--primary-color); + font-weight: 700; +} + +.call_to_act { + display: flex; + flex-direction: column; + justify-content: center; + flex-wrap: nowrap; + align-items: center; + position: absolute; + height: 50vh; + width: 25vw; + max-width: 1000px; + top: calc(40vh + 50px); + left: 70%; + transform: translate(-50%, -35%) scale(0.9); + z-index: 10; + border-radius: 1rem; + background-image: url(../images/hero.png); + background-position-x: right; + background-position-y: bottom; + background-color: #ddeee987; + background-size: initial; + background-blend-mode: hue; + box-shadow: rgba(50, 50, 93, 0.25) 0px 50px 100px -20px, + rgba(0, 0, 0, 0.3) 0px 30px 60px -30px, + rgba(10, 37, 64, 0.35) 0px -2px 6px 0px inset; + text-shadow: 0px 0px 3px var(--primary-color), + 0px 0px 15px var(--primary-color), 0px 0px 40px var(--primary-color); + font-weight: 700; + padding: 50px; +} + +.team_content { + display: flex; + flex-wrap: nowrap; + flex-direction: row; + justify-content: center; +} + +.team_card { + padding-left: 10%; + padding-right: 10%; +} + +.team_describe { + font-family: var(--paragraph-font); +} + +.team_name { + font-family: var(--heading-font); +} + +.team_member_pic { + border-radius: 50%; + width: 150px; + height: 150px; + border-color: var(--accent2-color); + border-style: ridge; + border-width: 0.4vw; +} +/* call to action */ + +.button-wrapper-cta { + display: block; + text-align: center; + margin-top: 50px; +} + +.button-cta:hover { + background-color: var(--accent2-color); + color: var(--nav-hover-background-color); + font-weight: 900; +} +.button-cta { + background-color: #b3282f; + color: var(--primary-color); + text-shadow: none; +} +.cta-button { + border: none; + border-radius: 3em; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.2); + display: inline-block; + font-size: 1em; + text-decoration: none; + padding: 1em 2em; + width: auto; +} + +/* THE MAP */ + +.map { + position: sticky; + display: flex; + align-content: center; + justify-content: space-between; + align-items: flex-start; + justify-items: center; + flex-wrap: wrap; + flex-direction: row; + margin-top: 47.5vh; + + background-color: rgb(227, 221, 207); +} + +.headquarters { + color: var(--accent3-color); + padding: 5vw; +} + +.headquarters h2 { + color: var(--accent1-color); +} + +.gmap_canvas iframe { + height: 35vh; + width: 80vh; + overflow: hidden; + border: 0 transparent !important; + margin: 0; +} + +.map_object { + padding: 0; + margin: 0; + border: 0; +} +/* +CONTACT FORM +*/ + +.subscribe_form_container, +.contact_form_container { + display: flex; + flex-direction: column; + flex-wrap: nowrap; + justify-content: center; + align-items: center; + position: sticky; + margin-top: -25px; +} + +.contact_form_container { + height: 60vh; + background-color: var(--accent3-color); + color: var(--primary-color); +} + +.subscribe_form_container { + height: 30vh; + background-color: transparent; + color: var(--accent3-color); + position: absolute; + bottom: -85vh; + left: -75vw; +} + +.contact_form_container form { + display: flex; + flex-direction: column; + flex-wrap: nowrap; + justify-content: center; + align-items: center; +} + +fieldset legend, +.contact_form_container label { + font-weight: 700; + font-size: small; + font-family: var(--heading-font); + color: #fff; +} + +fieldset label { + font-weight: 400; + font-size: small; + padding: 0; + margin: 0; + color: #fff; +} + +.form_contents { + display: flex; + max-width: 550px; + align-content: center; + flex-direction: row; + flex-wrap: wrap; + justify-content: center; + align-items: center; +} + +.form_contents * :not(fieldset) { + padding: 3px; + border-radius: 4px; +} + +fieldset { + padding: 0; + border-radius: 4px; + border: transparent; + padding: 0; + margin: 0; +} + +.input_group { + display: flex; + flex-direction: column; + flex-wrap: nowrap; + justify-content: center; + align-items: stretch; +} + +.form_contents input[type="text"], +.form_contents input[type="email"] { + width: 40vw; + max-width: 230px; + margin: 10px; +} + +.full_long, +.form_contents textarea { + width: 82vw; + max-width: 480px; + margin: 1vw; +} + +.form_contents input[type="text"], +.form_contents input[type="email"], +.form_contents textarea { + font-weight: 600; + + font-family: var(--paragraph-font); + color: var(--accent1-color); +} + +.form_contents input[type="submit"] { + height: 3vh; + max-height: 30px; + margin: 10px; + background-color: var(--accent3-color); + border-style: solid; + /**/ + appearance: none; + box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px; + transition: box-shadow 0.3s ease-in-out; + color: var(--accent2-color); + font-weight: 900; + padding-left: 5px; + padding-right: 5px; +} + +.form_contents textarea:hover, +.form_contents input:hover { + border-color: transparent !important; + box-shadow: rgba(0, 0, 0, 0.25) 0px 54px 55px, + rgba(0, 0, 0, 0.12) 0px -12px 30px, rgba(0, 0, 0, 0.12) 0px 4px 6px, + rgba(0, 0, 0, 0.17) 0px 12px 13px, rgba(0, 0, 0, 0.09) 0px -3px 5px; +} + +.form_contents input[type="submit"]:focus { + background-color: var(--accent2-color-translucid); + border-color: transparent !important; + box-shadow: rgba(50, 50, 93, 0.25) 0px 30px 60px -12px inset, + rgba(24, 23, 23, 0.3) 0px 18px 36px -18px inset; + color: var(--accent1-color); +} +/* +history properties +*/ + +.history, +.contact { + text-align: center; + padding: 20px; + border: 1px solid black; + margin-bottom: 10px; +} + +.history h2 { + text-align: center; + width: 100%; + margin-bottom: 20px; +} + +.history_content { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + align-content: center; + justify-content: center; + align-items: center; +} + +.history_content p { + text-align: left; + font-size: 0.9rem; + line-height: 1.2rem; + padding: 8px; + max-width: 40%; +} + +.history_content img { + max-width: 100%; + max-height: 220px; + display: block; + margin: 0 auto; + /* + border-radius: 50%; + */ + padding: 8px; +} + +/* +adventures styling +*/ + +.adventures { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: center; + gap: 20px; + padding: 4rem; + border-bottom: 1px solid black; + margin-bottom: 10px; +} + +.adventures h2 { + text-align: center; + width: 100%; + margin-bottom: 20px; +} + +figure { + flex: 1; + text-align: center; + margin: 0; +} + +figure img { + width: 12rem; + height: 7rem; + display: block; + margin: 0 auto; +} + +figcaption { + margin-top: 10px; + font-family: var(--paragraph-font); + font-weight: 700; + font-size: smaller; +} + +/* +Footer +*/ +footer { + display: flex; + flex-direction: row; + justify-content: space-evenly; + align-items: center; + flex-wrap: nowrap; + bottom: -50px; + position: absolute; + width: 100%; +} + +footer p { + font-size: smaller; +} + +.social_links a { + padding: 0.5rem; +} + +.social_links img { + width: 1.95em; + filter: saturate(2%); + /* + filter: brightness(100%); + fill-opacity: 0.8;*/ + transition-timing-function: ease-out; + transition-timing-function: cubic-bezier(0, 0, 0.58, 3); +} + +.social_links img:hover { + filter: saturate(100%); +} + +/* + +trips slider + +*/ + +a { + text-decoration: none !important; + min-width: fit-content; + width: -webkit-fit-content; + width: -moz-fit-content; +} + +a, +button { + transition: 0.5s; +} +a, +button, +input, +textarea, +select { + outline: none !important; +} + +fieldset { + border: 0; +} + +.title, +.sub_title { + font-family: var(--title_font); + font-weight: 400; + margin: 0; +} + +.flex, +.fixed_flex { + display: flex; +} + +.flex_content { + width: 100%; + position: relative; +} + +.padding_1x { + padding: 1rem; +} + +.padding_2x { + padding: 2rem; +} + +.padding_3x { + padding: 3rem; +} + +.padding_4x { + padding: 4rem; +} + +.medium { + font-size: 2em; +} + +.small { + font-size: 1.3em; +} + +.btn { + padding: 1rem; + border-radius: 5px; + color: var(--primary-color); + position: relative; + border: 0; + text-align: center; +} + +.btn_3 { + display: block; + position: relative; + font-family: var(--default_font); + font-weight: 400; + text-transform: uppercase; + color: var(--accent2-color); +} + +.btn_3:before { + content: ""; + border-radius: 50%; + background-color: var(--accent3-color); + position: absolute; + left: 0; + top: 50%; + width: 40px; + height: 40px; + transition: 0.5s; + transform: translate(0%, -50%); + z-index: -1; +} + +.btn_3:after { + content: " >"; + margin-left: 5px; +} + +.btn_3:hover:before { + border-radius: 40px; + width: 100%; +} + +.slider { + position: relative; + width: 100%; + height: 70vh; + min-height: 800px; + margin-top: 10vh; +} + +.slider li { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 70vh; + min-height: 800px; + background-repeat: no-repeat; + transition: clip 0.7s ease-in-out, z-index 0s 0.7s; + clip: rect(0, 100vw, 100vh, 100vw); + display: flex; + align-items: center; + justify-content: left; +} + +.slider li:before { + content: ""; + position: absolute; + top: -20px; + right: 0; + width: 250px; + height: 250px; + background-image: url("https://i.postimg.cc/02zcww6c/slider-shape.png"); + background-size: 100% 100%; + transition-delay: 1s; + transform: rotate(-90deg); + z-index: 1; +} + +.slider li:after { + content: ""; + position: absolute; + bottom: 0; + left: 0; + width: 300px; + height: 300px; + background-image: url("https://i.postimg.cc/KjKbwDfR/slider-shape-2.png"); + background-size: 100% 100%; + transform: rotate(360deg); + transition: all 1.5s cubic-bezier(0, 0, 0.2, 1); + z-index: 1; + background-position: center left; +} + +.slider li:nth-child(1) { + background: linear-gradient( + to right, + rgba(1, 1, 1, 1) 10%, + rgba(1, 1, 1, 0.8) 51%, + rgba(1, 1, 1, 0.2) 100% + ), + url("../images/Vallée_de_l'Ubaye_Rafting.jpg"); + background-size: cover; + background-position: center center; +} + +.slider li:nth-child(2) { + background: linear-gradient( + to right, + rgba(1, 1, 1, 1) 10%, + rgba(1, 1, 1, 0.8) 51%, + rgba(1, 1, 1, 0.2) 100% + ), + url("../images/rafting2.jpg"); + background-size: cover; + background-position: center center; +} + +.slider li:nth-child(3) { + background: linear-gradient( + to right, + rgba(1, 1, 1, 1) 10%, + rgba(1, 1, 1, 0.8) 51%, + rgba(1, 1, 1, 0.2) 100% + ), + url("../images/rafting5.jpg"); + background-size: cover; + background-position: center center; +} + +.slider article { + width: 50vw; + margin-top: 4rem; + color: var(--primary-color); + z-index: 11; +} + +.slider h3 { + font-size: 3.5em; + color: var(--accent2-color); +} +.slider h3 + p { + display: inline-block; + color: var(--primary-color); + font-weight: 300; +} + +.slider h3, +.slider h3 + p, +.slider p + .btn, +li:after { + opacity: 0; + transition: opacity 0.7s 0s, transform 0.5s 0.2s; + transform: translate3d(0, 50%, 0); +} + +li.current h3, +li.current h3 + p, +li.current p + .btn, +li.current:after { + opacity: 1; + transition-delay: 0.5s; + transform: translate3d(0, 0, 0); +} + +.slider li:before { + transition: 0.5s; + top: -250px !important; +} + +li.current:before { + transition-delay: 0.5s; + transform: rotate(-90deg); + top: -20px !important; +} + +li.current { + z-index: 1; + clip: rect(0, 100vw, 100vh, 0); +} + +li.prev { + clip: rect(0, 0, 100vh, 0); +} + +.slider aside { + position: absolute; + bottom: 2rem; + left: 2rem; + text-align: center; + z-index: 10; +} + +.slider aside a { + display: inline-block; + width: 10px; + height: 10px; + min-width: 10px; + min-height: 10px; + background-color: var(--primary-color); + margin: 0 0.2rem; + transition: transform 0.3s; +} + +.slider em { + background: var(--primary-color); + -webkit-text-fill-color: transparent; + -webkit-background-clip: text; +} + +a.current_dot { + transform: scale(1.8); + background: var(--accent1-color) !important; +} + +/* +grids +*/ +.home_grid { + background-color: rgb(227, 221, 207); + margin-top: 52vh; + padding-bottom: 5vh; + display: grid; + grid-template-columns: repeat(10, 1fr); +} +.estes_card { + grid-column: 2/4; + grid-row: 2/3; +} +.west_card{ + grid-column: 5/7; + grid-row: 2/3; +} +.drowsy_card{ + grid-column: 8/10; + grid-row: 2/3; +} +.card_img{ + width: 200px; + height: 200px; + border: 0 transparent; + box-shadow: rgba(50, 50, 93, 0.25) 0px 50px 100px -20px, rgba(0, 0, 0, 0.3) 0px 30px 60px -30px, rgba(10, 37, 64, 0.35) 0px -2px 6px 0px inset; +} +.main_index{ + display: flex; + flex-direction: column; + flex-wrap: nowrap; + align-items: center; +} +.contact_container{ + top: 60vh; + right: 20vw; + position: absolute; + display: flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: space-around; + align-items: flex-end; +} \ No newline at end of file diff --git a/wdd130/wwr/styles/site-plan-rafting.css b/wdd130/wwr/styles/site-plan-rafting.css new file mode 100644 index 000000000..d4a291193 --- /dev/null +++ b/wdd130/wwr/styles/site-plan-rafting.css @@ -0,0 +1,82 @@ +@import url('https://fonts.googleapis.com/css2?family=Glegoo:wght@700&family=Montserrat:wght@200&display=swap'); + +/* +palette: +https://coolors.co/user/palettes/65ad6f4f361e26000b8923b6 +palette generated by adobe from image: +https://commons.wikimedia.org/wiki/File:Vall%C3%A9e_de_l%27Ubaye_Rafting.jpg +*/ +:root { + --primary-color: #CCD9D5; + --secondary-color: #98A6A2; + --accent1-color: #BA1F2C; + --accent2-color: #E6B31A; + --accent3-color: #545956; + --heading-font: 'Glegoo', serif; + --paragraph-font: 'Montserrat', sans-serif; + --nav-link-color: var(--accent1-color); + --nav-background-color: var(--secondary-color); + --nav-hover-background-color: var(--accent3-color); + --nav-hover-link-color: var(--accent2-color); +} + +body { + /* + background-color: var(--primary-color); + */ + font-family: var(--paragraph-font); + max-width: 960px; + padding: 20px; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: var(--heading-font); + color: var(--accent2-color); +} + +header { + padding: 20px; + background-color:var(--primary-color); +} + +p { + padding: 0.7em; +} + +nav { + background-color:var(--nav-background-color); + font-size: 1.2em; + display: flex; +} + +nav a { + display: block; + color: var(--nav-link-color); + text-decoration:none; + padding: 1rem; +} + +nav a:link, +nav a:visited { + color: var(--nav-link-color); +} + +nav a:hover { + color: var(--nav-hover-link-color); + background-color:var(--nav-hover-background-color); +} + +.JoinUs { + color: var(--nav-link-color); + text-decoration:none +} + +.JoinUs:hover { + color: var(--nav-hover-link-color); + background-color:var(--nav-hover-background-color); +} \ No newline at end of file diff --git a/wdd130/wwr/temp.html b/wdd130/wwr/temp.html new file mode 100644 index 000000000..d11662be5 --- /dev/null +++ b/wdd130/wwr/temp.html @@ -0,0 +1,434 @@ + + + + + + + + + + +
    +
    +
      +
    • +
      +

      O ccupational Health

      +

      Lorem Ipsum is simply dummy text of the printing and typesetting industry.

      + More about us +
      +
    • +
    • +
      +

      Fire Fighting Spill Response.

      +

      Lorem Ipsum is simply dummy text of the printing and typesetting industry.

      + View Issues +
      +
    • +
    • +
      +

      Fire Fighting Spill Response.

      +

      Lorem Ipsum is simply dummy text of the printing and typesetting industry.

      + View Issues +
      +
    • + +
    +
    + +
    + + \ No newline at end of file diff --git a/wdd130/wwr/temp2.html b/wdd130/wwr/temp2.html new file mode 100644 index 000000000..0a702b3af --- /dev/null +++ b/wdd130/wwr/temp2.html @@ -0,0 +1,875 @@ + + + + + + + Whitewater Rafting Vacations | Dry Oar Boating | Rivers + + + +
    +
    + + + + +
    +
    +
    + Wide shot of a river and mountains +
    +
    +

    Explore The Water

    +

    Discover the Canyons of the west

    +
    +
    +

    Locations

    +
    +

    +   Dry Oar runs a variety of different rivers designed for novice and expert white water rafters. + The class of a river and rapids helps you to determine what trips you want to experience and what each trip goer is ready for. + +

    +
    +
    +
    +
    Main Fork of the Salmon River, Idaho
    +
    Class I-IV 
    +
    +

    +   Nestled deep in the Frank Church Wilderness of No Return winds the Salmon river. + The Salmon was given the nickname long ago as the River of No Return by the people living near it because of + the number of folks that came to visit and fell so in love with the rugged beauty of the river that they never left. +

    +   Herds of elk and deer graze on the hillsides around the river and bear and bighorn sheep are also commonly sighted. + The river corridor is also lined with awe inspiring ponderosa pine which tower over the sandy beaches in the campsites + and provide shelter from sun or rain when needed. +

    +   Let's not forget the rapids! They range from class I-IV. The Salmon is one of the longest undammed rivers in the United States. + As a free flowing river the water is higher, faster, and colder in the early summer and lower, slower, and warmer in the late summer. + There are good rapids all summer...but families with children who like to swim tend to appreciate the late summer's slower, warmer water more. +

    +
    +
    + Picture of the Salmon River +
    +
    +
    +
    +
    Desolation and Gray Canyon, Utah
    +
    Class II/III 
    +
    +

    +  Winding through canyons in central Utah, in some of the most desolate land anywhere, the Green river flows towards the mighty Colorado river and the sea. + High grey stone cliffs, beautiful desert scenery, and great rapids have made this run famous. + This 84-mile trip runs from from Sand Wash to Swaseys Rapid (just outside Green River Utah) and boasts outstanding scenery, interesting geologic formations, + evidence of prehistoric and historic human activity, and great whitewater opportunities. +

    + Desolation is rated a Class II/III and is usually done in 6 days +

    + Desolation Canyon has been recognized as a National Landmark. This designation is based on the uniqueness and rich history that the canyon tells. +

    +
    +
    + Picture of the Green River +
    +
    +
    +
    Grand Canyon, Arizona
    +
    Class I-X 
    +
    +

    +   This is the grand daddy of all canyons and the grand daddy of all river trips. You will never forget your visit to the Grand Canyon. +

    +   Grand Canyon river rafting combines world-class whitewater with breathtaking scenery to make one truly unforgettable river experience. + The canyon is filled not only with exhilarating whitewater rapids, but with side canyons and ancient indian ruins accessible only by river. +

    +   CLASS I - X: The Grand Canyon uses a unique river rating scale. + The rapids in the Canyon are technically rated I - X ( 1 - 10) to accommodate such a wide variety of rapids and river variances. + However, most people are familiar with the regular I - V river rating scale, so we often refer to both. +

    +
    +
    + Picture of the Salmon River +
    +
    +
    +
    + +
    + + \ No newline at end of file diff --git a/wdd130/wwr/trips.html b/wdd130/wwr/trips.html new file mode 100644 index 000000000..61c1f18fd --- /dev/null +++ b/wdd130/wwr/trips.html @@ -0,0 +1,178 @@ + + + + + + + Baja Rafting | See what we are offering to you + + + + + + + +
    + + + + + + +
    + +
    + +
    +

    Baja Rafting

    +
    +
    +

    Reach Our Team

    +

    Challenge your limits and live a unique experience with Baja Rafting.
    Our seasoned guides ensure your safety and maximize your enjoyment, empowering you to conquer each rapid with confidence.

    +
    + + + +
    +
    +
    + +
    +

    Ready to embark on an unforgettable adventure?

    +
    +

    Select your trip from the carousel and dive deeper into the details. Let Baja Rafting be your trusted companion as you navigate the exciting rapids and create memories that will last a lifetime!

    +
    +
    +
    +
    +
      +
    • +
      +

      Rafting in Estes Park

      +

      Plunge into the Poudre or Colorado Rivers for an day or afternoon of thrilling drops, bumps and fun! Several whitewater raft companies service Estes Park, although river access is out of the area. Once there, you'll get outfitted with the necessary gear and safety equipment. Then hit the river! The Poudre and Colorado offer several classes of whitewater excitement, from beginners to more seasoned rafters.

      + Variety for Every ThrillSeeker +
      +
    • +
    • +
      +

      Westwater Canyon

      +

      With its combination of colorful stone walls and serious whitewater, Westwater Canyon is often compared to the Grand Canyon, and it should be at the top of every rafter’s bucket list.

      + Ignite Your Inner Adventurer +
      +
    • +
    • +
      +

      Drowsy Water Ranch

      +

      Dude Ranch. All inclusive package vacations primarily weekly. All meals, horseback riding, daily maid service, kids programs, evening entertainment, fall hunting camps included.

      + Unforgettable Immersions in Nature +
      +
    • + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/writing.html b/writing.html deleted file mode 100644 index abb6e24e2..000000000 --- a/writing.html +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: category_index -title: Writing -permalink: /writing/ -category_name: writing ---- - -