diff --git a/.gitignore b/.gitignore index 120a613c..12af0acd 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ doc/ tests/coverage config.yml .DS_Store +public/assets/css/.sass-cache/ diff --git a/Gemfile b/Gemfile index 2573bed1..5c6e9008 100644 --- a/Gemfile +++ b/Gemfile @@ -17,6 +17,7 @@ gem 'ago' gem 'mail' gem 'google-api-client', require: 'google/api_client' gem 'tilt' +gem 'erubis' platform :mri do gem 'magic' # sudo apt-get install file, For OSX: brew install libmagic diff --git a/Gemfile.lock b/Gemfile.lock index 0e367264..032b5a15 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -36,6 +36,7 @@ GEM debugger-linecache (1.2.0) debugger-ruby_core_source (1.3.2) docile (1.1.3) + erubis (2.7.0) extlib (0.9.16) fabrication (2.11.0) faker (1.3.0) @@ -191,6 +192,7 @@ DEPENDENCIES bcrypt capybara capybara_minitest_spec + erubis fabrication faker google-api-client diff --git a/app.rb b/app.rb index 93a321d7..90d5a6bc 100644 --- a/app.rb +++ b/app.rb @@ -396,11 +396,11 @@ post '/site_files/save/:filename' do |filename| end get '/terms' do - slim :'terms' + erb :'terms' end get '/privacy' do - slim :'privacy' + erb :'privacy' end get '/admin' do @@ -557,7 +557,7 @@ post '/custom_domain' do end get '/contact' do - slim :'contact' + erb :'contact' end post '/contact' do @@ -720,6 +720,13 @@ def current_site @site ||= Site[id: session[:id]] end +def title + out = "NeoCities" + return out if request.path == '/' + return "#{out} - #{@title}" if @title + "#{out} - #{request.path.gsub('/', '').capitalize}" +end + def encoding_fix(file) begin Rack::Utils.escape_html file diff --git a/environment.rb b/environment.rb index a4bcefe9..3eae5f9c 100644 --- a/environment.rb +++ b/environment.rb @@ -35,6 +35,8 @@ if defined?(Pry) Pry.commands.alias_command 'f', 'finish' end +Sidekiq::Logging.logger = nil unless ENV['RACK_ENV'] == 'production' + Sidekiq.configure_server do |config| config.redis = { namespace: 'neocitiesworker' } end @@ -59,10 +61,11 @@ Sequel::Migrator.apply DB, './migrations' Dir.glob('models/*.rb').each {|m| require File.join(DIR_ROOT, "#{m}") } DB.loggers << Logger.new(STDOUT) if ENV['RACK_ENV'] == 'development' -# If new, throw up a random Server for development. - -if ENV['RACK_ENV'] == 'development' && Server.count == 0 - Server.create ip: '127.0.0.1', slots_available: 999999 +if ENV['RACK_ENV'] == 'development' + # If new, throw up a random Server for development. + if Server.count == 0 + Server.create ip: '127.0.0.1', slots_available: 999999 + end end Mail.defaults do @@ -78,6 +81,8 @@ Mail.defaults do delivery_method :sendmail, options end +Sinatra::Application.set :erb, escape_html: true + class Sinatra::Base alias_method :render_original, :render def render(engine, data, options = {}, locals = {}, &block) diff --git a/models/site.rb b/models/site.rb index b3a934a1..b1f76d88 100644 --- a/models/site.rb +++ b/models/site.rb @@ -121,8 +121,10 @@ class Site < Sequel::Model FileUtils.mkdir_p files_path %w{index not_found}.each do |name| - File.write file_path("#{name}.html"), render_template("#{name}.slim") + File.write file_path("#{name}.html"), render_template("#{name}.erb") end + + FileUtils.cp template_file_path('cat.png'), file_path('cat.png') end def get_file(filename) @@ -205,7 +207,7 @@ class Site < Sequel::Model end def install_new_html_file(name) - File.write file_path(name), render_template('index.slim') + File.write file_path(name), render_template('index.erb') end def file_exists?(filename) @@ -273,7 +275,11 @@ class Site < Sequel::Model end def render_template(name) - Tilt.new(File.join(TEMPLATE_ROOT, name), pretty: true).render self + Tilt.new(template_file_path(name), pretty: true).render self + end + + def template_file_path(name) + File.join TEMPLATE_ROOT, name end def files_path(name=nil) diff --git a/public/assets/img/cat-larger.png b/public/assets/img/cat-larger.png index 919371ed..21973263 100644 Binary files a/public/assets/img/cat-larger.png and b/public/assets/img/cat-larger.png differ diff --git a/public/css/styles.css b/public/css/styles.css index 07cd18bf..b3205ac4 100644 --- a/public/css/styles.css +++ b/public/css/styles.css @@ -34,3 +34,17 @@ line-height:inherit; height:auto!important} max-height:400px; overflow:auto; } + +textarea { + margin-bottom: 10px +} + +input[type=submit] { + margin-top: 10px; +} + +.recaptcha { + background: #fff; + width: 440px; + overflow: auto; +} \ No newline at end of file diff --git a/public/humans.txt b/public/humans.txt index 4308d94e..1071bd87 100644 --- a/public/humans.txt +++ b/public/humans.txt @@ -7,50 +7,20 @@ * **************************************************************************** */ -Kyle Drake: +Kyle Drake: Creator, Lead Developer Website: http://kyledrake.net/ Twitter: @kyledrake Location: Portland, OR - -Scott O'Hara: +Scott O'Hara: Front-End Developer, Design, Ground Floor Website: http://scottohara.me/ Twitter: @scottohara Location: Boston, MA - -Victoria Wang: -Design, Tutorial Lead +Victoria Wang: +UX, Design Website: http://www.violasong.com/ Twitter: @violasong -Location: Chicago,IL - - - -/* **************************************************************************** -* -* Website Info: -* -**************************************************************************** */ - -Last update: 2013/12/13 - -SCSS -http://sass-lang.com/ - -jQuery -http://jquery.com/ - -Ground Floor -https://github.com/scottaohara/Ground-Floor - - - - - - - - - +Location: Chicago, IL diff --git a/tests/environment.rb b/tests/environment.rb index e888352c..0ad4794a 100644 --- a/tests/environment.rb +++ b/tests/environment.rb @@ -18,7 +18,8 @@ Bundler.require :test #require 'minitest/pride' require 'minitest/autorun' -require 'sidekiq/testing/inline' + +require 'sidekiq/testing' Site.bcrypt_cost = BCrypt::Engine::MIN_COST diff --git a/views/_footer.erb b/views/_footer.erb index a791f2d1..0b67007f 100644 --- a/views/_footer.erb +++ b/views/_footer.erb @@ -3,7 +3,7 @@
- Neocities.org is a completely open source startup. Follow us on twitter. + Neocities.org is a completely open source startup. Follow us on twitter.
Our Privacy Policy was last updated and posted on June 3, 2013. It governs the privacy terms of our Website, located at http://neocities.org. Any capitalized terms not defined in our Privacy Policy, have the meaning as specified in our Terms of Service.
+ +Your Privacy
Neocities follows all legal requirements to protect your privacy. Our Privacy Policy is a legal statement that explains how we may collect information from you, how we may share your information, and how you can limit our sharing of your information. You will see terms in our Privacy Policy that are capitalized. These terms have meanings as described in the Definitions section below.
Definitions
"Non Personal Information" is information that is not personally identifiable to you and that we automatically collect when you access our Website with a web browser. It may also include publicly available information that is shared between you and others.
"Personally Identifiable Information" is non-public information that is personally identifiable to you and obtained in order for us to provide you within our Website. Personally Identifiable Information may include information such as your name, email address, and other related information that you provide to us or that we obtain about you.
+ +Information We Collect
Generally, you control the amount and type of information you provide to us when using our Website.
As a Visitor, you can browse our website to find out more about our Website. You are not required to provide us with any Personally Identifiable Information as a Visitor.
+ +Computer Information Collected
When you use our Website, we automatically collect certain computer information by the interaction of your mobile phone or web browser with our Website. Such information is typically considered Non Personal Information. We also collect the following:
Cookies
Our Website uses "Cookies" to identify the areas of our Website that you have visited. A Cookie is a small piece of data stored on your computer or mobile device by your web browser. We use Cookies to personalize the Content that you see on our Website. Most web browsers can be set to disable the use of Cookies. However, if you disable Cookies, you may not be able to access functionality on our Website correctly or at all. We never place Personally Identifiable Information in Cookies.
Automatic Information
We automatically receive information from your web browser or mobile device. This information includes the name of the website from which you entered our Website, if any, as well as the name of the website to which you're headed when you leave our website. This information also includes the IP address of your computer/proxy server that you use to access the Internet, your Internet Website provider name, web browser type, type of mobile device, and computer operating system. We use all of this information to analyze trends among our Users to help improve our Website.
How We Use Your Information
We use the information we receive from you as follows:
Customizing Our Website
We may use the Personally Identifiable information you provide to us along with any computer information we receive to customize our Website.
Sharing Information with Affiliates and Other Third Parties
We do not sell, rent, or otherwise provide your Personally Identifiable Information to third parties for marketing purposes. We may provide your Personally Identifiable Information to affiliates that provide services to us with regards to our Website (i.e. payment processors, Website hosting companies, etc.); such affiliates will only receive information necessary to provide the respective services and will be bound by confidentiality agreements limiting the use of such information.
Data Aggregation
We retain the right to collect and use any Non Personal Information collected from your use of our Website and aggregate such data for internal analytics that improve our Website and Service as well as for use or resale to others. At no time is your Personally Identifiable Information included in such data aggregations.
Legally Required Releases of Information
We may be legally required to disclose your Personally Identifiable Information, if such disclosure is (a) required by subpoena, law, or other legal process; (b) necessary to assist law enforcement officials or government enforcement agencies; (c) necessary to investigate violations of or otherwise enforce our Legal Terms; (d) necessary to protect us from legal action or claims from third parties including you and/or other Members; and/or (e) necessary to protect the legal rights, personal/real property, or personal safety of Neocities, our Users, employees, and affiliates.
Links to Other Websites
Our Website may contain links to other websites that are not under our direct control. These websites may have their own policies regarding privacy. We have no control of or responsibility for linked websites and provide these links solely for the convenience and information of our visitors. You access such linked Websites at your own risk. These websites are not subject to this Privacy Policy. You should check the privacy policies, if any, of those individual websites to see how the operators of those third-party websites will utilize your personal information. In addition, these websites may contain a link to Websites of our affiliates. The websites of our affiliates are not subject to this Privacy Policy, and you should check their individual privacy policies to see how the operators of such websites will utilize your personal information.
Privacy Policy Updates
We reserve the right to modify this Privacy Policy at any time. You should review this Privacy Policy frequently. If we make material changes to this policy, we may notify you on our Website, by a blog post, by email, or by any method we determine. The method we chose is at our sole discretion. We will also change the "Last Updated" date at the beginning of this Privacy Policy. Any changes we make to our Privacy Policy are effective as of this Last Updated date and replace any prior Privacy Policies.
Questions About Our Privacy Practices or This Privacy Policy
If you have any questions about our Privacy Practices or this Policy, please contact us.
Our Privacy Policy was last updated and posted on June 3, 2013. It governs the privacy terms of our Website, located at http://neocities.org. Any capitalized terms not defined in our Privacy Policy, have the meaning as specified in our Terms of Service.
- -Your Privacy
Neocities follows all legal requirements to protect your privacy. Our Privacy Policy is a legal statement that explains how we may collect information from you, how we may share your information, and how you can limit our sharing of your information. You will see terms in our Privacy Policy that are capitalized. These terms have meanings as described in the Definitions section below.
Definitions
"Non Personal Information" is information that is not personally identifiable to you and that we automatically collect when you access our Website with a web browser. It may also include publicly available information that is shared between you and others.
"Personally Identifiable Information" is non-public information that is personally identifiable to you and obtained in order for us to provide you within our Website. Personally Identifiable Information may include information such as your name, email address, and other related information that you provide to us or that we obtain about you.
- -Information We Collect
Generally, you control the amount and type of information you provide to us when using our Website.
As a Visitor, you can browse our website to find out more about our Website. You are not required to provide us with any Personally Identifiable Information as a Visitor.
- -Computer Information Collected
When you use our Website, we automatically collect certain computer information by the interaction of your mobile phone or web browser with our Website. Such information is typically considered Non Personal Information. We also collect the following:
Cookies
Our Website uses "Cookies" to identify the areas of our Website that you have visited. A Cookie is a small piece of data stored on your computer or mobile device by your web browser. We use Cookies to personalize the Content that you see on our Website. Most web browsers can be set to disable the use of Cookies. However, if you disable Cookies, you may not be able to access functionality on our Website correctly or at all. We never place Personally Identifiable Information in Cookies.
Automatic Information
We automatically receive information from your web browser or mobile device. This information includes the name of the website from which you entered our Website, if any, as well as the name of the website to which you're headed when you leave our website. This information also includes the IP address of your computer/proxy server that you use to access the Internet, your Internet Website provider name, web browser type, type of mobile device, and computer operating system. We use all of this information to analyze trends among our Users to help improve our Website.
How We Use Your Information
We use the information we receive from you as follows:
Customizing Our Website
We may use the Personally Identifiable information you provide to us along with any computer information we receive to customize our Website.
Sharing Information with Affiliates and Other Third Parties
We do not sell, rent, or otherwise provide your Personally Identifiable Information to third parties for marketing purposes. We may provide your Personally Identifiable Information to affiliates that provide services to us with regards to our Website (i.e. payment processors, Website hosting companies, etc.); such affiliates will only receive information necessary to provide the respective services and will be bound by confidentiality agreements limiting the use of such information.
Data Aggregation
We retain the right to collect and use any Non Personal Information collected from your use of our Website and aggregate such data for internal analytics that improve our Website and Service as well as for use or resale to others. At no time is your Personally Identifiable Information included in such data aggregations.
Legally Required Releases of Information
We may be legally required to disclose your Personally Identifiable Information, if such disclosure is (a) required by subpoena, law, or other legal process; (b) necessary to assist law enforcement officials or government enforcement agencies; (c) necessary to investigate violations of or otherwise enforce our Legal Terms; (d) necessary to protect us from legal action or claims from third parties including you and/or other Members; and/or (e) necessary to protect the legal rights, personal/real property, or personal safety of Neocities, our Users, employees, and affiliates.
Links to Other Websites
Our Website may contain links to other websites that are not under our direct control. These websites may have their own policies regarding privacy. We have no control of or responsibility for linked websites and provide these links solely for the convenience and information of our visitors. You access such linked Websites at your own risk. These websites are not subject to this Privacy Policy. You should check the privacy policies, if any, of those individual websites to see how the operators of those third-party websites will utilize your personal information. In addition, these websites may contain a link to Websites of our affiliates. The websites of our affiliates are not subject to this Privacy Policy, and you should check their individual privacy policies to see how the operators of such websites will utilize your personal information.
Privacy Policy Updates
We reserve the right to modify this Privacy Policy at any time. You should review this Privacy Policy frequently. If we make material changes to this policy, we may notify you on our Website, by a blog post, by email, or by any method we determine. The method we chose is at our sole discretion. We will also change the "Last Updated" date at the beginning of this Privacy Policy. Any changes we make to our Privacy Policy are effective as of this Last Updated date and replace any prior Privacy Policies.
Questions About Our Privacy Practices or This Privacy Policy
If you have any questions about our Privacy Practices or this Policy, please contact us.
Privacy Policy by TermsFeed.com
\ No newline at end of file diff --git a/views/settings.slim b/views/settings.slim index c257088f..c37dadcd 100644 --- a/views/settings.slim +++ b/views/settings.slim @@ -63,4 +63,4 @@ .content h2.eps.txt-Center Custom Domain p.txt-Center: strong (advanced) - p You can configure a custom domain for your NeoCities site. Click Here for more information. + p You can configure a custom domain for your Neocities site. Click Here for more information. diff --git a/views/site_files/upload.slim b/views/site_files/upload.slim index d986c444..5c18d54c 100644 --- a/views/site_files/upload.slim +++ b/views/site_files/upload.slim @@ -43,7 +43,7 @@ javascript: .row .span5.text-center - h5 NeoCities uses a "drag and drop" file upload. Simply take files and drop them from your computer on the white box (or click it) and they are uploaded. + h5 Neocities uses a "drag and drop" file upload. Simply take files and drop them from your computer on the white box (or click it) and they are uploaded. div style="background-color: #FFFFFF;" form action="/site_files/upload" class="dropzone" id="uploads" input name="csrf_token" type="hidden" value="#{csrf_token}" diff --git a/views/templates/cat.png b/views/templates/cat.png new file mode 100644 index 00000000..d4be8f21 Binary files /dev/null and b/views/templates/cat.png differ diff --git a/views/templates/domain.erb b/views/templates/domain.erb index a0222906..67e8ed61 100644 --- a/views/templates/domain.erb +++ b/views/templates/domain.erb @@ -1,8 +1,8 @@ server { listen 80; - server_name <%= domain %> *.<%= domain %>; + server_name <%== domain %> *.<%== domain %>; access_log /var/log/nginx/neocities-domains.log neocitiesdomain; - root /home/web/neocities-web/public/sites/<%= username %>; + root /home/web/neocities-web/public/sites/<%== username %>; index /index.html; error_page 404 = @notfound; diff --git a/views/templates/index.erb b/views/templates/index.erb new file mode 100644 index 00000000..baa9dcbd --- /dev/null +++ b/views/templates/index.erb @@ -0,0 +1,38 @@ + + + + +This is a paragraph! Here's how you make a link: NeoCities.
+ +Here's how you can make bold and italic text.
+ +Here's how you can add an image:
+Here's how to make a list:
+ +To learn more HTML/CSS, check out these tutorials!
+ + \ No newline at end of file diff --git a/views/templates/index.slim b/views/templates/index.slim deleted file mode 100644 index ec629b3e..00000000 --- a/views/templates/index.slim +++ /dev/null @@ -1,31 +0,0 @@ -doctype html -html - head - meta charset="UTF-8" - - title #{username} - - meta name="description" content="" - meta name="keywords" content="" - - link href="//groundfloor.neocities.org/default.css" rel="stylesheet" media="all" - - - - body - - header - h1 Welcome to my Website! - nav - ul - li - Home - - main - p This is a new page! Coming soon. - p This page uses Ground Floor to style the page, click here to see some code examples. You can opt-out of this style and make your own design by removing the "default.css" link in the HTML. - - footer - p Copyright 2014 diff --git a/views/templates/not_found.erb b/views/templates/not_found.erb new file mode 100644 index 00000000..dc6a06c8 --- /dev/null +++ b/views/templates/not_found.erb @@ -0,0 +1,16 @@ + + + + +The requested page was not found.
+ + \ No newline at end of file diff --git a/views/templates/not_found.slim b/views/templates/not_found.slim deleted file mode 100644 index 4250d9f7..00000000 --- a/views/templates/not_found.slim +++ /dev/null @@ -1,17 +0,0 @@ -doctype html -html - head - meta http-equiv="Content-Type" content="text/html; charset=UTF-8" - - title #{username} - Page Not Found - - link href="//groundfloor.neocities.org/default.css" rel="stylesheet" type="text/css" media="all" - - - - body - .txt-Center - h1 Page Not Found - p The requested page was not found on this web site. diff --git a/views/templates/untitled.txt b/views/templates/untitled.txt new file mode 100644 index 00000000..e69de29b diff --git a/views/terms.erb b/views/terms.erb new file mode 100644 index 00000000..1f561686 --- /dev/null +++ b/views/terms.erb @@ -0,0 +1,24 @@ +This web page represents a legal document that serves as our Terms of Service and it governs the legal terms of our website, http://neocities.org, sub-domains, and any associated web-based and mobile applications (collectively, "Website"), as owned and operated by Neocities.
+Capitalized terms, unless otherwise defined, have the meaning specified within the Definitions section below. This Terms of Service, along with our Privacy Policy, any mobile license agreement, and other posted guidelines within our Website, collectively "Legal Terms", constitute the entire and only agreement between you and Neocities, and supersede all other agreements, representations, warranties and understandings with respect to our Website and the subject matter contained herein. We may amend our Legal Terms at any time without specific notice to you. The latest copies of our Legal Terms will be posted on our Website, and you should review all Legal Terms prior to using our Website. After any revisions to our Legal Terms are posted, you agree to be bound to any such changes to them. Therefore, it is important for you to periodically review our Legal Terms to make sure you still agree to them.
+By using our Website, you agree to fully comply with and be bound by our Legal Terms. Please review them carefully. If you do not accept our Legal Terms, do not access and use our Website. If you have already accessed our Website and do not accept our Legal Terms, you should immediately discontinue use of our Website.
+The last update to our Terms of Service was posted on June 3, 2013.
+ +Definitions
The terms "us" or "we" or "our" refers to Neocities, the owner of the Website.
A "Visitor" is someone who merely browses our Website, but has not registered as Member.
+A "Member" is an individual that has registered with us to use our Service.
+Our "Service" represents the collective functionality and features as offered through our Website to our Members.
+A "User" is a collective identifier that refers to either a Visitor or a Member.
+All text, information, graphics, audio, video, and data offered through our Website are collectively known as our "Content".
+ +Legal Compliance
You agree to comply with all applicable domestic and international laws, statutes, ordinances, and regulations regarding your use of our Website. Neocities reserves the right to investigate complaints or reported violations of our Legal Terms and to take any action we deem appropriate, including but not limited to canceling your Member account, reporting any suspected unlawful activity to law enforcement officials, regulators, or other third parties and disclosing any information necessary or appropriate to such persons or entities relating to your profile, email addresses, usage history, posted materials, IP addresses and traffic information, as allowed under our Privacy Policy.
Intellectual Property
Our Website may contain our service marks or trademarks as well as those of our hosted sites, affiliates or other companies, in the form of words, graphics, and logos. Your use of our Website does not constitute any right or license for you to use such service marks/trademarks, without the prior written permission of the corresponding service mark/trademark owner.
Links to Other Websites
Our Website may contain links to third party websites. These links are provided solely as a convenience to you. By linking to these websites, we do not create or have an affiliation with, or sponsor such third party websites. The inclusion of links within our Website does not constitute any endorsement, guarantee, warranty, or recommendation of such third party websites. Neocities has no control over the legal documents and privacy practices of third party websites; as such, you access any such third party websites at your own risk.
General Terms
Our Legal Terms shall be treated as though it were executed and performed in Oregon, United States, and shall be governed by and construed in accordance with the laws of Oregon, United States, without regard to conflict of law principles. In addition, you agree to submit to the personal jurisdiction and venue of such courts. Any cause of action by you with respect to our Website, must be instituted within one (1) year after the cause of action arose or be forever waived and barred. Should any part of our Legal Terms be held invalid or unenforceable, that portion shall be construed consistent with applicable law and the remaining portions shall remain in full force and effect. To the extent that any Content in our Website conflicts or is inconsistent with our Legal Terms, our Legal Terms shall take precedence. Our failure to enforce any provision of our Legal Terms shall not be deemed a waiver of such provision nor of the right to enforce such provision. The rights of Neocities under our Legal Terms shall survive the termination of our Legal Terms.
This web page represents a legal document that serves as our Terms of Service and it governs the legal terms of our website, http://neocities.org, sub-domains, and any associated web-based and mobile applications (collectively, "Website"), as owned and operated by Neocities.
-Capitalized terms, unless otherwise defined, have the meaning specified within the Definitions section below. This Terms of Service, along with our Privacy Policy, any mobile license agreement, and other posted guidelines within our Website, collectively "Legal Terms", constitute the entire and only agreement between you and Neocities, and supersede all other agreements, representations, warranties and understandings with respect to our Website and the subject matter contained herein. We may amend our Legal Terms at any time without specific notice to you. The latest copies of our Legal Terms will be posted on our Website, and you should review all Legal Terms prior to using our Website. After any revisions to our Legal Terms are posted, you agree to be bound to any such changes to them. Therefore, it is important for you to periodically review our Legal Terms to make sure you still agree to them.
-By using our Website, you agree to fully comply with and be bound by our Legal Terms. Please review them carefully. If you do not accept our Legal Terms, do not access and use our Website. If you have already accessed our Website and do not accept our Legal Terms, you should immediately discontinue use of our Website.
-The last update to our Terms of Service was posted on June 3, 2013.
- -Definitions
The terms "us" or "we" or "our" refers to Neocities, the owner of the Website.
A "Visitor" is someone who merely browses our Website, but has not registered as Member.
-A "Member" is an individual that has registered with us to use our Service.
-Our "Service" represents the collective functionality and features as offered through our Website to our Members.
-A "User" is a collective identifier that refers to either a Visitor or a Member.
-All text, information, graphics, audio, video, and data offered through our Website are collectively known as our "Content".
- -Legal Compliance
You agree to comply with all applicable domestic and international laws, statutes, ordinances, and regulations regarding your use of our Website. Neocities reserves the right to investigate complaints or reported violations of our Legal Terms and to take any action we deem appropriate, including but not limited to canceling your Member account, reporting any suspected unlawful activity to law enforcement officials, regulators, or other third parties and disclosing any information necessary or appropriate to such persons or entities relating to your profile, email addresses, usage history, posted materials, IP addresses and traffic information, as allowed under our Privacy Policy.
Intellectual Property
Our Website may contain our service marks or trademarks as well as those of our hosted sites, affiliates or other companies, in the form of words, graphics, and logos. Your use of our Website does not constitute any right or license for you to use such service marks/trademarks, without the prior written permission of the corresponding service mark/trademark owner.
Links to Other Websites
Our Website may contain links to third party websites. These links are provided solely as a convenience to you. By linking to these websites, we do not create or have an affiliation with, or sponsor such third party websites. The inclusion of links within our Website does not constitute any endorsement, guarantee, warranty, or recommendation of such third party websites. Neocities has no control over the legal documents and privacy practices of third party websites; as such, you access any such third party websites at your own risk.
General Terms
Our Legal Terms shall be treated as though it were executed and performed in Oregon, United States, and shall be governed by and construed in accordance with the laws of Oregon, United States, without regard to conflict of law principles. In addition, you agree to submit to the personal jurisdiction and venue of such courts. Any cause of action by you with respect to our Website, must be instituted within one (1) year after the cause of action arose or be forever waived and barred. Should any part of our Legal Terms be held invalid or unenforceable, that portion shall be construed consistent with applicable law and the remaining portions shall remain in full force and effect. To the extent that any Content in our Website conflicts or is inconsistent with our Legal Terms, our Legal Terms shall take precedence. Our failure to enforce any provision of our Legal Terms shall not be deemed a waiver of such provision nor of the right to enforce such provision. The rights of Neocities under our Legal Terms shall survive the termination of our Legal Terms.
Terms of Service by TermsFeed.com
\ No newline at end of file diff --git a/views/tutorials.erb b/views/tutorials.erb index 3e3bf0e7..d1326a3a 100644 --- a/views/tutorials.erb +++ b/views/tutorials.erb @@ -43,7 +43,7 @@CSS frameworks are pre-built CSS styles that make it easy to quickly build a nice looking web page, without having to "roll your own" set of styles. NeoCities itself uses one as the basis for our design (Brass Tacks). They are very useful, and definitely worth checking out once you have an understanding of how CSS works.
+CSS frameworks are pre-built CSS styles that make it easy to quickly build a nice looking web page, without having to "roll your own" set of styles. Neocities itself uses one as the basis for our design (Brass Tacks). They are very useful, and definitely worth checking out once you have an understanding of how CSS works.