Commit 464fe930 authored by William Chia's avatar William Chia

more paths update

parent 58df5955
Pipeline #32953723 passed with stages
in 28 minutes and 58 seconds
......@@ -20,7 +20,7 @@ It is the single source of truth for the following pages:
- [Update the features page (under `/features`)](#update-the-features-page-under-features)
- [Update the products page (under `/products`)](#update-the-products-page-under-products)
- [Update the gitlab-com page (under `/gitlab-com`)](#update-the-gitlab-com-page-under-gitlab-com)
- [Create or update the comparison pages (under `/comparison`)](#create-or-update-the-comparison-pages-under-comparison)
- [Create or update the comparison pages (under `/devops-tools`)](#create-or-update-the-comparison-pages-under-comparison)
- [Create or update the stage pages (under `/stages`)](#create-or-update-the-stage-pages-under-stages)
- [Update the Return on Investment calculator page (under `/roi`)](#update-the-return-on-investment-calculator-page-under-roi)
- [Why we use YAML for the stages, features, and pricing pages](#why-we-use-yaml-for-the-stages-features-and-pricing-pages)
......@@ -45,7 +45,7 @@ These instructions are deprecated. View up-to-date instructions for [adding feat
These instructions are deprecated. View up-to-date instructions for [adding features to webpages](/handbook/marketing/website/#adding-features-to-webpages) on the website handbook page.
## Create or update the comparison pages (under `/comparison`)
## Create or update the comparison pages (under `/devops-tools`)
These instructions are deprecated. View up-to-date instructions on [creating comparison pages](/handbook/marketing/website/#creating-a-comparison-page) on website handbook page.
......
......@@ -68,6 +68,6 @@ extra_css:
%h2 Connecting teams to accelerate innovation
%p We believe everyone should be able to able to easily and efficiently contribute and set out to make this easy for teams of all types and sizes by creating a single, shared space where everyone can work concurrently, get all the information needed in one place, and see changes in real time.
%section.tile.contribute-tile.flex-container.justify-center.align-center
%img{ src: "/images/comparison/gitlab-logo.svg" }
%img{ src: "/images/devops-tools/gitlab-logo.svg" }
%p GitLab accelerates your software development and delivery accross every stage of the DevOps lifecycle.
%a.text-center{href: "/product/"} Learn more →
......@@ -61,15 +61,15 @@ layout: false
= link_to feature.link_description, feature.link
%td.check-container.text-center
- if (feature.public_send(key_one) == "partially")
= partial "includes/icons/devops-tools/maybe-icon.svg"
= partial "includes/icons/comparison/maybe-icon.svg"
- if (feature.public_send(key_one) == true)
= partial "includes/icons/devops-tools/yes-icon.svg"
= partial "includes/icons/comparison/yes-icon.svg"
- if (feature.public_send(key_one) == false)
= partial "includes/icons/devops-tools/no-icon.svg"
= partial "includes/icons/comparison/no-icon.svg"
%td.check-container.text-center
- if (feature.public_send(key_two) == "partially")
= partial "includes/icons/devops-tools/maybe-icon.svg"
= partial "includes/icons/comparison/maybe-icon.svg"
- if (feature.public_send(key_two) == true)
= partial "includes/icons/devops-tools/yes-icon.svg"
= partial "includes/icons/comparison/yes-icon.svg"
- if (feature.public_send(key_two) == false)
= partial "includes/icons/devops-tools/no-icon.svg"
= partial "includes/icons/comparison/no-icon.svg"
......@@ -14,7 +14,7 @@ extra_js:
.header-container-content
.row
.col-xs-12.col-md-3.col-md-offset-1
%img.logo{ src: "/images/comparison/gitlab-logo.svg" }
%img.logo{ src: "/images/devops-tools/gitlab-logo.svg" }
.col-md-6.col-md-offset-1{ :style => "margin-top: 35px;" }
%h1.page-headline
Try GitLab Ultimate free
......
......@@ -248,7 +248,7 @@ Copy and paste this template:
### Creating a DevOps tools comparison page
The [`/comparison`](/comparison) section of the website shows info about DevOps tools and a feature comparison of those tools to Gitlab. Comparison pages are auto-generated from `features.yml`. All you need to do is add a tool to the `competitors` section and add that tool id to some features and the page will be created.
The [`/devops-tools`](/devops-tools) section of the website shows info about DevOps tools and a feature comparison of those tools to Gitlab. Comparison pages are auto-generated from `features.yml`. All you need to do is add a tool to the `competitors` section and add that tool id to some features and the page will be created.
To add a new comparison page:
1. Edit [`features.yml`](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/features.yml)
......
......@@ -1434,7 +1434,7 @@ who is responsible for it.
1. Feature should appear on the website (Marketing)
* For very significant features: Feature page on the website is made and
pushed, with the mention "Available from X.X"
* For other features: Feature should be listed on some page (/comparison,
* For other features: Feature should be listed on some page (/devops-tools,
Enterprise page, /features page).
1. Feature is launched with the release (Marketing)
* "Available from X.X" is removed
......@@ -1469,8 +1469,8 @@ This iteration may look like this, for example:
The interactive prototype video is a good time to reiterate the vision
with a blog post.
Additionally, the [direction page](/direction/#devops-stages) contains the specific vision for each devops stage along with
links to the epics that contain the work to be done. We aim to use these epics and issues as the single source of truth for
Additionally, the [direction page](/direction/#devops-stages) contains the specific vision for each devops stage along with
links to the epics that contain the work to be done. We aim to use these epics and issues as the single source of truth for
our plans, and as such we strive to maintain them up-to-date with the latest developments and plans.
### How and when to reject a feature request
......@@ -1710,7 +1710,7 @@ All Starter, Premium, and Ultimate features must:
- Work with GitLab.com Bronze / Silver / Gold subscriptions. This means there has to be
some way of toggling or using the feature at a namespace level.
- Have documentation.
- Be featured on [products](/products) and [comparison](/comparison) at launch.
- Be featured on [products](/products) and [DevOps tools](/devops-tools) at launch.
### Pricing plans
......
......@@ -81,7 +81,7 @@ offering plugins for the following reasons:
1. We think a single application provides a better user experience than a modular approach, as detailed by [this article from Stratechery](https://stratechery.com/2013/clayton-christensen-got-wrong/).
1. The open source nature of GitLab ensures that that we can combine great open source products.
1. Everyone can contribute to create a feature set that is [more complete than other tools](/comparison/). We'll focus on making all the parts work well together to create a better user experience.
1. Everyone can contribute to create a feature set that is [more complete than other tools](/devops-tools/). We'll focus on making all the parts work well together to create a better user experience.
1. Because GitLab is open source the enhancements can become [part of
the codebase instead](https://docs.gitlab.com/ee/project_services/project_services.html) of being external. This ensures the automated tests for all
functionality are continually run, ensuring that additions keep working. This is in contrast to externally maintained plugins that might not be updated.
......
......@@ -88,7 +88,7 @@ GitLab comes with basic search built-in. Advanced search functionality can be ad
GitLab search capabilities when using ElasticSearch are quiet comprehensive, and comparative to other competitor’s ([https://docs.gitlab.com/ee/user/search/advanced_global_search.html](https://docs.gitlab.com/ee/user/search/advanced_global_search.html)). However, when GitLab community edition is used, search requests cannot span multiple Git repositories.
## Adoption and Integrations
Quote from a competitor, “Developers time is very valuable, why force them to context switch between different tools? GitLab couldn’t have said it better ourselves! But not just for developers, for EVERYONE involved in delivering software changes. That’s why GitLab is one single application which covers user needs all the way from planning to monitoring. Not only does having all this in one application increase collaboration between teams and reduce friction in delivering, but it also means less time integrating separate tools. GitHub, the top code collaboration website, is based on Git and has commendably taught millions of developers how to use Git. GitLab is also based on Git, and has a similar user experience to GitHub, yet adds a lot functionality that is desired by enterprises self-hosting a Git repository ([https://about.gitlab.com/comparison/gitlab-eep-vs-github-enterprise.html#dropdown](/comparison/gitlab-eep-vs-github-enterprise.html#dropdown)). This is why more than 66% of enterprises self-hosting a Git repository have chosen GitLab ([https://about.gitlab.com/2017/06/29/whats-next-for-gitlab-ci](/2017/06/29/whats-next-for-gitlab-ci)).
Quote from a competitor, “Developers time is very valuable, why force them to context switch between different tools? GitLab couldn’t have said it better ourselves! But not just for developers, for EVERYONE involved in delivering software changes. That’s why GitLab is one single application which covers user needs all the way from planning to monitoring. Not only does having all this in one application increase collaboration between teams and reduce friction in delivering, but it also means less time integrating separate tools. GitHub, the top code collaboration website, is based on Git and has commendably taught millions of developers how to use Git. GitLab is also based on Git, and has a similar user experience to GitHub, yet adds a lot functionality that is desired by enterprises self-hosting a Git repository ([https://about.gitlab.com/devops-tools/github-vs-gitlab.html](/devops-tools/gihub-vs-gitlab.html)). This is why more than 66% of enterprises self-hosting a Git repository have chosen GitLab ([https://about.gitlab.com/2017/06/29/whats-next-for-gitlab-ci](/2017/06/29/whats-next-for-gitlab-ci)).
One competitor in this space proudly states that they “choose to focus on the core aspects of the developer experience”. This is a key difference between the GitLab philosophy and everybody else. While we agree that the developer experience is important, GitLab is focused on a great experience for the entire DevOps team, from developers, to QA, to Security, and Ops. Further, GitLab is doing it in one single application that everyone can collaborate through, rather than setting up a platform and then expecting everyone to piece the integrations together to achieve what they need.
......
......@@ -41,4 +41,4 @@
%h4 Cost-effective
%p GitLab is feature-packed, updated monthly, and is a fraction of the cost. No need for multiple products with different billing cycles or complex licensing rules.
.text-center
%a.btn.cta-btn.red{href: '/comparison'} Compare GitLab to other tools
%a.btn.cta-btn.red{href: '/devops-tools'} Compare GitLab to other tools
......@@ -22,7 +22,7 @@
%tr.single-application-row
- data.stages.stages.each do |stage_key, stage|
%td.solutions-container
%img.gitlab-logo{ src: "/images/comparison/gitlab-logo.svg" }
%img.gitlab-logo{ src: "/images/devops-tools/gitlab-logo.svg" }
%p
Since
= stage.established
......@@ -44,7 +44,7 @@
%td.competitors-container{ id: "#{stage.key}-competitors-container" }
- stage.competitors.each do |competitor|
%a.competitor-logo-container{ href: "/comparison/#{competitor.key.dup.tr('_', '-')}-vs-gitlab.html" }
%a.competitor-logo-container{ href: "/devops-tools/#{competitor.key.dup.tr('_', '-')}-vs-gitlab.html" }
.competitor-tooltip
%p.tooltip-text
= competitor.name
......@@ -52,7 +52,7 @@
%img.competitor-logo{ src: "#{competitor.logo}", alt: "#{competitor.name} logo png" }
.btn-group.margin-top20
%a.btn.cta-btn.accent.see-all-comparisons{ href: '/comparison/' } See and compare all DevOps tools
%a.btn.cta-btn.accent.see-all-comparisons{ href: '/devops-tools/' } See and compare all DevOps tools
%script{ src: "/javascripts/rotate-competitors.js" }
%script{ src: "/javascripts/libs/tweenmax.min.js" }
......@@ -152,7 +152,7 @@ $(function() {
return;
}
this.$el.attr('disabled', false);
var href = ('/comparison/' + competitor + '-vs-' + gitlabProduct + '.html').replace(/_/g, '-');
var href = ('/devops-tools/' + competitor + '-vs-' + gitlabProduct + '.html').replace(/_/g, '-');
this.$el.attr('href', href);
}
};
......
......@@ -18,7 +18,7 @@ As the Director of Product, you will be responsible for managing and building th
- Ensure that the next milestone contains the most relevant items to customers, users, and us
- Work with customers, users, and other teams to make feature proposals enticing, actionable, and small
- Make sure the [comparisons](/comparison/) are up to date
- Make sure the [DevOps tools](/devops-tools/) are up to date
- Keep [/direction](/direction) up to date as our high level roadmap
- Regularly join customer and partner visits that can lead to new features
- Ensure that we translate user demands in features that make them happy but keep the product UI clean and the codebase maintainable
......@@ -39,7 +39,7 @@ As the Director of Product, you will be responsible for managing and building th
The Director of Product, Ops Products leads the Ops parts of the [DevOps lifecycle](https://about.gitlab.com/handbook/product/categories/#devops-stages) (e.g. continuous integration, delivery, and deployment, Prometheus monitoring, and Secure) and reports to the Head of Product.
### Dev Products
### Dev Products
The Director of Product, Dev Products leads the Dev parts of the [Dev lifecycle](https://about.gitlab.com/handbook/product/categories/#dev-stages) (e.g manage, plan and create) and reports to the VP of Product.
......
......@@ -18,7 +18,7 @@ title: "Vice President of Product"
- Ensure that the next milestone contains the most relevant items to customers, users, and us
- Work with customers, users, and other teams to make feature proposals actionable and small
- Make sure the [comparisons](/comparison/) are up to date
- Make sure the [DevOps tools](/devops-tools/) are up to date
- Keep [/direction](/direction) up to date as our high level roadmap
- Regularly join customer and partner visits that can lead to new features
- Ensure that we translate user demands in features that make them happy but keep the product UI clean and the codebase maintainable
......
......@@ -30,7 +30,7 @@ extra_css:
data-tweet-limit="3">Tweets by @movingtogitlab</a>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
.tile.cta-tile.flex-container.justify-center.align-center
%img.tile-logo{ src: "/images/comparison/gitlab-logo.svg" }
%img.tile-logo{ src: "/images/devops-tools/gitlab-logo.svg" }
%p
For a limited time, you can get
%a{ href: "/2018/06/03/movingtogitlab/#new-users-get-a-75-discount-on-gitlabs-top-tier-plans", target: "_blank" } 75 percent off our top-tier self-managed and SaaS offerings, GitLab Ultimate or Gold
......
......@@ -45,7 +45,7 @@ You can **visualize your release process** in all versions of GitLab with GitLab
GitLab Enterprise Premium comes with [Deploy Boards](https://docs.gitlab.com/ee/user/project/deploy_boards.html) and
[Canary Deployments](/2017/04/22/gitlab-9-1-released/#canary-deployments-eep) for even more advanced control over deployments.
Visit our [Products page](/products) and [Comparisons page](/comparison/) to see how GitLab measures against other tools.
Visit our [Product page](/product) and [DevOps tools page](/devops-tools/) to see how GitLab measures against other tools.
To learn more about CI/CD and how it can help you release earlier and more often, watch our webcast, "[From Continuous Integration to Continuous Everything](https://page.gitlab.com/20170301_continuouseverything.html)" on demand.
{: .alert .alert-gitlab-orange}
......
......@@ -49,7 +49,7 @@ Some features have different names. For example a “pull request” in GitHub a
We figured since you're often making a request to `merge` a feature branch into the master branch, we call this a
"merge request" and you'll hear us talk about MRs and not PRs.
Read through this page for a full [comparison between MRs and PRs](/comparison/gitlab-merge-request-vs-github-pull-request.html).
Read through this page for a full [comparison between MRs and PRs](/devops-tools/github-vs-gitlab.html).
If you’re brand new to GitLab, we’ve made this handy cheat sheet to help you orient yourself and clear things up.
......
......@@ -23,7 +23,7 @@ In this scenario, you’re doing development work on one branch, in one part of
While doing my development work in my local development environment, I created another merge request for the documentation using the [Web IDE](https://docs.gitlab.com/ee/user/project/web_ide/), essentially working on two different Git branches at the same time, using two different editors.
In my quick example below, you can see a merge request to add [Jenkins](/comparison/jenkins-vs-gitlab.html) content to our [comparison](/comparison/) page. I’ve checked out this branch locally, and I have it open in my Atom editor. I’ve been doing some work by updating `features.yml`, as well as a Markdown file and a Haml file. All of these changes are related to one merge request. While I’m committing changes locally to the comparison page, I’m documenting each step in my Web IDE in a separate tab, to make sure my instructions are precise, helpful, and completed in real time.
In my quick example below, you can see a merge request to add [Jenkins](/devops-tools/jenkins-vs-gitlab.html) content to our [DevOps tools](/devops-tools/) page. I’ve checked out this branch locally, and I have it open in my Atom editor. I’ve been doing some work by updating `features.yml`, as well as a Markdown file and a Haml file. All of these changes are related to one merge request. While I’m committing changes locally to the comparison page, I’m documenting each step in my Web IDE in a separate tab, to make sure my instructions are precise, helpful, and completed in real time.
### Watch the demo
......
......@@ -9,7 +9,7 @@ extra_css:
%img.image-border.image-border-left{ src: "/images/home/icons-pattern-left.svg" }
%img.image-border.image-border-right{ src: "/images/home/icons-pattern-right.svg" }
.header-content
%img.hero-image-small{ src: "/images/comparison/gitlab-logo.svg" }
%img.hero-image-small{ src: "/images/devops-tools/gitlab-logo.svg" }
%h1 Product
%p
GitLab is the first single application for the entire DevOps lifecycle. Only GitLab enables
......@@ -37,7 +37,7 @@ extra_css:
- if stage.display_name.downcase === category.stage
.grid-item.flex-container.flex-column.flex-start
%a.category-title.flex-container.align-center.full-width{ href: "#{url}" }
%img.category-logo{ src: "/images/comparison/gitlab-logo.svg", alt: "GitLab logo svg" }
%img.category-logo{ src: "/images/devops-tools/gitlab-logo.svg", alt: "GitLab logo svg" }
%h3.margin0{ id: "#{key.gsub('_', '-').downcase}" }
= category.name
- if category.description? || category.description != ""
......
......@@ -19,10 +19,10 @@ extra_js:
%h2
= "Concurrent DevOps"
%h4
%img.solution-logo{ src: "/images/comparison/gitlab-logo.svg", alt: "GitLab logo" }
%img.solution-logo{ src: "/images/devops-tools/gitlab-logo.svg", alt: "GitLab logo" }
Enable faster cycle times
%p
= "Concurrent DevOps is a new way of thinking about how we create and ship software. Rather than organizing work in a sequence of steps and handoffs, the power of working concurrently is in unleashing collaboration across the organization."
= "Concurrent DevOps is a new way of thinking about how we create and ship software. Rather than organizing work in a sequence of steps and handoffs, the power of working concurrently is in unleashing collaboration across the organization."
%a.btn.cta-btn.red{href: "/concurrent-devops/"}
Learn how GitLab automates your software factory
......@@ -31,7 +31,7 @@ extra_js:
%h2
= "Value Stream Management"
%h4
%img.solution-logo{ src: "/images/comparison/gitlab-logo.svg", alt: "GitLab logo" }
%img.solution-logo{ src: "/images/devops-tools/gitlab-logo.svg", alt: "GitLab logo" }
Maximize the value of your software factory
%p
= "Enterprises need to manage, visualize and measure the business value created across multiple software delivery pipelines. Value Stream Management (VSM) aggregates data from multiple software delivery pipelines to provide visibility that an application release will deliver the value expected of it."
......@@ -43,7 +43,7 @@ extra_js:
%h2
= "DevSecOps"
%h4
%img.solution-logo{ src: "/images/comparison/gitlab-logo.svg", alt: "GitLab logo" }
%img.solution-logo{ src: "/images/devops-tools/gitlab-logo.svg", alt: "GitLab logo" }
Improve Quality and Security with DevSecOps
%p
= "'We’ll fix it in production' is the typical answer to late found defects or security issues on far too many software projects. Because testing and security are separate silos, often after multiple rounds of development work, it means that each defect or vulnerability can cause extensive rework. If only the issue was found when it was created. GitLab enables better quality and improved security by embedding testing, QA and security scans into every pipeline, giving developers the right feedback at the right time. "
......@@ -55,7 +55,7 @@ extra_js:
%h2
= "Accelerating Delivery"
%h4
%img.solution-logo{ src: "/images/comparison/gitlab-logo.svg", alt: "GitLab logo" }
%img.solution-logo{ src: "/images/devops-tools/gitlab-logo.svg", alt: "GitLab logo" }
IT Delivery at the Speed of Business
%p
= "Every business is a really software business and accelerating software delivery is critical to business success. DevOps is the answer, however often, DevOps leads to fragmented and disconnected tool chains, which increases friction, increases cost and ultimately makes it much harder to collaborate. GitLab’s comprehensive, single application end to end DevOps approach enables teams to accelerate delivery without compromise."
......@@ -91,7 +91,7 @@ extra_js:
%h2
= "Improve regulatory compliance"
%h4
%img.solution-logo{ src: "/images/comparison/gitlab-logo.svg", alt: "gitlab logo" }
%img.solution-logo{ src: "/images/devops-tools/gitlab-logo.svg", alt: "gitlab logo" }
Compliance and Governance at DevOps Velocity
%p
= "Worried about your next SDLC audit? Are your teams following the right controls and documenting every change? In many cases compliance is an expensive and error prone activity, where the stakes are incredibly high. GitLab’s workflows, audit trails and clear approval process makes it natural and easy to deliver at the speed of DevOps with compliance built in. See how GitLab can help with [Financial Services Regulatory Compliance](https://about.gitlab.com/solutions/financial-services-regulatory-compliance/), [PCI Compliance](https://about.gitlab.com/solutions/pci-compliance), [HIPAA](https://about.gitlab.com/solutions/hipaa-compliance), and [GDPR](https://about.gitlab.com/gdpr)."
......@@ -139,7 +139,7 @@ extra_js:
%h2
= "Team / Development Platform"
%h4
%img.solution-logo{ src: "/images/comparison/gitlab-logo.svg", alt: "Developer Platform" }
%img.solution-logo{ src: "/images/devops-tools/gitlab-logo.svg", alt: "Developer Platform" }
Create a productive and efficient workspace for delivery teams.
%p
= "GitLab is a single application supporting the entire development lifecyle. As such, GitLab helps teams connect, collaborate and accelerate delivery, helping to meet your business goals and improve team satisfaction. "
......
......@@ -10,7 +10,7 @@ $comparison-title-image-bg-color: rgba(85, 68, 136, .1);
}
.comparison-header {
background: url("/images/comparison/gitlab-icon-illustration.svg") no-repeat, linear-gradient(to right, $color-primary-alt, $color-primary-medium 40%, $color-primary);
background: url("/images/devops-tools/gitlab-icon-illustration.svg") no-repeat, linear-gradient(to right, $color-primary-alt, $color-primary-medium 40%, $color-primary);
background-position: center;
background-size: cover;
padding-top: 70px;
......
......@@ -64,19 +64,19 @@ extra_js:
%td.check-container.text-center
- feature_support = feature.public_send(key_one)
- if (feature_support == "partially")
= partial "includes/icons/devops-tools/maybe-icon.svg"
= partial "includes/icons/comparison/maybe-icon.svg"
- if (feature_support == true)
= partial "includes/icons/devops-tools/yes-icon.svg"
= partial "includes/icons/comparison/yes-icon.svg"
- if (feature_support == false)
= partial "includes/icons/devops-tools/no-icon.svg"
= partial "includes/icons/comparison/no-icon.svg"
%td.check-container.text-center
- feature_support = feature.public_send(key_two)
- if (feature_support == "partially")
= partial "includes/icons/devops-tools/maybe-icon.svg"
= partial "includes/icons/comparison/maybe-icon.svg"
- if (feature_support == true)
= partial "includes/icons/devops-tools/yes-icon.svg"
= partial "includes/icons/comparison/yes-icon.svg"
- if (feature_support == false)
= partial "includes/icons/devops-tools/no-icon.svg"
= partial "includes/icons/comparison/no-icon.svg"
.last-updated-section.text-center
%p.clearfix
......
......@@ -13,7 +13,7 @@ extra_js:
%img.image-border.image-border-left{ src: "/images/home/icons-pattern-left.svg" }
%img.image-border.image-border-right{ src: "/images/home/icons-pattern-right.svg" }
.header-content
%img.hero-image-small{ src: "/images/comparison/gitlab-logo.svg" }
%img.hero-image-small{ src: "/images/devops-tools/gitlab-logo.svg" }
%h1 What is GitLab?
%p
GitLab is the first single application for the entire DevOps lifecycle. Only GitLab enables
......@@ -36,7 +36,7 @@ extra_js:
If you're not using GitLab today, your DevOps lifecycle is spread across any number of applications. These silos take overhead to integrate, manage, configure, and maintain, slowing down your team. Moving to a single application will speed up your workflow and help you deliver better software, faster.
%a.btn.cta-btn.accent{ href: "/comparison/" } See how GitLab compares
%a.btn.cta-btn.accent{ href: "/devops-tools/" } See how GitLab compares
.content.tile
:markdown
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment