Html: Difference between revisions

From 太極
Jump to navigation Jump to search
 
(21 intermediate revisions by the same user not shown)
Line 75: Line 75:
* To link a CSS file with your HTML file, you have to write the next script on your HTML file inside the head tag
* To link a CSS file with your HTML file, you have to write the next script on your HTML file inside the head tag
* To link a Js file with your HTML, you only have to add the source of the script inside the body tag or outside; it doesn’t matter.
* To link a Js file with your HTML, you only have to add the source of the script inside the body tag or outside; it doesn’t matter.
== Section tag, outline, layout ==
* https://www.w3schools.com/TAgs/tag_section.asp
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/section
* [https://stackoverflow.com/a/6941170 <nowiki>What is the difference between <section> and <div>? </nowiki>]
* [https://www.w3schools.com/html/html_layout.asp HTML Layout Elements]
* How to view the structural outline of a website with the HTML Outliner
** [[#HTML_5_outliner|HTML5 Outliner]] extension.
** https://gsnedders.html5.org/outliner/


= PHP =
= PHP =
Line 385: Line 394:
<link rel="stylesheet" type="text/css" href="mystyle.css">
<link rel="stylesheet" type="text/css" href="mystyle.css">
</pre>
</pre>
== href ==
* [https://stackoverflow.com/a/10659501 Starting with a forward slash in html for "href"]. One is a '''relative path''' and one an absolute path. So you don't need to use something like "../../page.html".
* [https://stackoverflow.com/a/7612930 hyperlink who's path is only a forward slash (/)]


== Links/Anchor ==
== Links/Anchor ==
Line 416: Line 429:
== @media, @keyframes, @-webkit-keyframes ...==
== @media, @keyframes, @-webkit-keyframes ...==
[https://www.w3schools.com/cssref/css3_pr_mediaquery.asp CSS Reference]
[https://www.w3schools.com/cssref/css3_pr_mediaquery.asp CSS Reference]
== Tile style ==
* [https://stackoverflow.com/a/11391063 Tile layout with CSS and HTML]
* [https://www.digitalocean.com/community/tutorials/how-to-build-a-tiled-layout-with-css-section-3 How To Build a Tiled Layout With CSS (Section 3)]


= Javascript =
= Javascript =
== Collapsibles/Accordion ==
== Collapsibles/Accordion ==
[https://www.w3schools.com/howto/howto_js_accordion.asp How TO - Collapsibles/Accordion]
[https://www.w3schools.com/howto/howto_js_accordion.asp How TO - Collapsibles/Accordion]
== Search box ==
* [https://youtu.be/ZFUOC-y4i0s JavaScript Project | Create Product Search Engine/Bar/Filter in JavaScript]
* [https://www.wikihow.com/Add-a-Google-Search-Bar-to-Your-Website How to Add a Google Search Bar to Your Website]
* [https://www.ionos.com/digitalguide/websites/website-creation/how-to-create-a-search-engine-for-your-website/ How to set up a website search engine]
* PHP and possibly MySQL
** [https://heytuts.com/web-dev/php/simple-search-engine-in-php Make a Simple Search Engine with PHP (open source download)] and MySQL.
** [http://www.learningaboutelectronics.com/How-to-create-own-search-engine-for-website-using-PHP.php How to Create Your Own Search Engine For Your Website]
** [https://www.sourcecodester.com/tutorials/php/12632/php-simple-search-box.html Creating a Simple Search Box using PHP]
** [https://www.studentstutorial.com/php/php-search.php How to create search option or feature using PHP]
* [https://www.w3schools.com/PHP/php_ajax_livesearch.asp AJAX Live Search]


= jQuery =
= jQuery =
Line 442: Line 470:
</pre>
</pre>


== Image slider/carousel/lightbox ==
== Image slider/carousel/lightbox/gallery ==
* [https://www.makeuseof.com/image-gallery-html-css-javascript/ How to Create a Simple Image Gallery Using HTML, CSS, and JavaScript]
* https://www.w3schools.com/howto/howto_js_slideshow.asp
* https://www.w3schools.com/howto/howto_js_slideshow.asp
* [http://nivo.dev7studios.com/ Nivo slider] Free to abuse.
* [http://nivo.dev7studios.com/ Nivo slider] Free to abuse.
Line 469: Line 498:
* [https://codeconvey.com/mobile-navigation-menu-css/ Mobile Navigation Menu using HTML & CSS].  
* [https://codeconvey.com/mobile-navigation-menu-css/ Mobile Navigation Menu using HTML & CSS].  
* [https://blog.teamtreehouse.com/create-an-absolute-basic-mobile-css-responsive-navigation-menu Create an Absolute Basic Mobile CSS Responsive Navigation Menu] including a demo and source code.
* [https://blog.teamtreehouse.com/create-an-absolute-basic-mobile-css-responsive-navigation-menu Create an Absolute Basic Mobile CSS Responsive Navigation Menu] including a demo and source code.
* Some random videos
** [https://youtu.be/ZYV6dYtz4HA 17: How to Make a Website Responsive | Learn HTML and CSS | HTML Tutorial | Basics of CSS] no free source code
** [https://youtu.be/68O6eOGAGqA Responsive CSS Grid Tutorial]
** [https://youtu.be/Q5m8cCGdiBo How to Make Images Responsive in HTML & CSS // Responsive Web Design Tutorial]. html files: '''viewport''', css files: '''@media screen and (max-width: 500px)'''
** [https://youtu.be/gXkqy0b4M5g Responsive Navigation Bar Tutorial | HTML CSS JAVASCRIPT]


== Test mobile-friendliness ==
== Test mobile-friendliness ==
Line 560: Line 594:
* http://fontawesome.io/icons/ and [http://r-addict.com/2016/10/03/Rocker-Presentation-eRka10.html here]
* http://fontawesome.io/icons/ and [http://r-addict.com/2016/10/03/Rocker-Presentation-eRka10.html here]
* [http://www.makeuseof.com/tag/icon-fonts-awesome-site/ Icon Fonts Are Awesome for Your Site: Here’s Why]
* [http://www.makeuseof.com/tag/icon-fonts-awesome-site/ Icon Fonts Are Awesome for Your Site: Here’s Why]
* [https://www.iconfinder.com/ iconfinder] Free


[[File:Font-icon.png|350px]]
[[File:Font-icon.png|350px]]
Line 623: Line 658:
* https://icons8.com/icon/
* https://icons8.com/icon/
* https://www.canva.com/learn/free-icons-download/
* https://www.canva.com/learn/free-icons-download/
* https://iconduck.com/
* https://bioicons.com/ free science illustrations for biologists, chemists, machine learning


Convert/crop an image to round shape, or different resolutions
Convert/crop an image to round shape, or different resolutions
Line 681: Line 718:
* https://www.urldecoder.org/
* https://www.urldecoder.org/
* https://www.url-encode-decode.com/
* https://www.url-encode-decode.com/
* R
* R: utils::URLdecode()
{{Pre}}
{{Pre}}
> URLdecode("https://www.worldjournal.com/5935170/article-%E8%97%A5%E8%8D%89%E9%A4%8A%E7%94%9F%E8%A1%93-%E6%A1%82%E8%8A%B1%E3%80%81%E8%91%A1%E8%90%84%E6%9F%9A%E7%B2%BE%E6%B2%B9-%E7%B4%93%E8%A7%A3%E9%AB%94%E6%AA%A2%E7%84%A6%E6%85%AE/")
> URLdecode("https://www.worldjournal.com/5935170/article-%E8%97%A5%E8%8D%89%E9%A4%8A%E7%94%9F%E8%A1%93-%E6%A1%82%E8%8A%B1%E3%80%81%E8%91%A1%E8%90%84%E6%9F%9A%E7%B2%BE%E6%B2%B9-%E7%B4%93%E8%A7%A3%E9%AB%94%E6%AA%A2%E7%84%A6%E6%85%AE/")
[1] "https://www.worldjournal.com/5935170/article-藥草養生術-桂花、葡萄柚精油-紓解體檢焦慮/"
[1] "https://www.worldjournal.com/5935170/article-藥草養生術-桂花、葡萄柚精油-紓解體檢焦慮/"
> urls <- c("https://zh.wikipedia.org/zh-tw/%E8%A1%80%E6%B8%85%E7%B4%A0",
            "https://example.com/%E8%A1%80%E6%B8%85%E7%B4%A0")
> sapply(urls, URLdecode, USE.NAMES = FALSE)
</pre>
</pre>


Line 725: Line 766:
[https://opensourceforu.com/2019/10/all-that-you-can-do-with-google-analytics-and-more/ All That You Can Do with Google Analytics, and More]
[https://opensourceforu.com/2019/10/all-that-you-can-do-with-google-analytics-and-more/ All That You Can Do with Google Analytics, and More]


= Developer Tools =
= Chrome browser =
 
== Developer Tools ==


== HTML 5 outliner ==
== HTML 5 outliner ==
Line 738: Line 781:
** [https://superuser.com/questions/4640/what-is-the-inspect-element-feature-in-google-chrome Inspect Element is Chrome's version of Firebug].  
** [https://superuser.com/questions/4640/what-is-the-inspect-element-feature-in-google-chrome Inspect Element is Chrome's version of Firebug].  
* Firefox: right click -> Inspect Element. See [https://developer.mozilla.org/en-US/docs/Tools/Page_Inspector/How_to/Open_the_Inspector Open the Inspector].
* Firefox: right click -> Inspect Element. See [https://developer.mozilla.org/en-US/docs/Tools/Page_Inspector/How_to/Open_the_Inspector Open the Inspector].
== Extensions ==
* [https://wpastra.com/chrome-developer-extensions/ 28 of the Best Chrome Extensions for Developers in 2022]
* [https://chrome.google.com/webstore/detail/web-developer/bfbameneiokkgbdmiekhjnmfkcnldhhm Web Developer] by chrispederick.com
* [https://chrome.google.com/webstore/detail/cssviewer/ggfgijbpiheegefliciemofobhmofgce CSSViewer]
* [https://themesgrove.com/best-chrome-extensions-for-web-developers/ 13 Best Chrome Extensions for Web Developers]
* [https://www.lambdatest.com/blog/27-best-chrome-extensions-for-developers/ Best Chrome Extensions for Developers and Designers]


= CGI/Perl =
= CGI/Perl =

Latest revision as of 16:08, 6 November 2023

Some useful HTML tags about form

http://www.w3schools.com/html/html_forms.asp

form

<form action="demo_form.asp">
First name: <input type="text" name="FirstName" value="Mickey"><br>
Last name: <input type="text" name="LastName" value="Mouse"><br>
<input type="submit" value="Submit">
</form>

radio button label and input

<form action="demo_form.asp">
  <label for="male">Male</label>
  <input type="radio" name="sex" id="male" value="male"><br>
  <label for="female">Female</label>
  <input type="radio" name="sex" id="female" value="female"><br>
  <input type="submit" value="Submit">
</form>

dropdown list select and option

<select>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
</select>

Let users choose which plot you want to show

Upload file using input

<form action="demo_form.asp">
  Select a file: <input type="file" name="img">
  <input type="submit">
</form>

map

HTML <map> Tag

div

<div style="color:#0000FF">
  <h3>This is a heading in a div element</h3>
  <p>This is some text in a div element.</p>
</div>

tabs

Full Page Tabs. Make sure to include a big div to wrap individual divs (tabs).

id attribute

https://www.w3schools.com/hTML/html_id.asp

<style>
#myHeader {
  background-color: lightblue;
  color: black;
  padding: 40px;
  text-align: center;
}
</style>

<h1 id="myHeader">My Header</h1>

CSS and JS

Link CSS and Js Files With an HTML File

  • To link a CSS file with your HTML file, you have to write the next script on your HTML file inside the head tag
  • To link a Js file with your HTML, you only have to add the source of the script inside the body tag or outside; it doesn’t matter.

Section tag, outline, layout

PHP

Simple examples

mywebpage.php

<?php
echo "Today is " . date('Y-m-d H:i:s');

Differences between a standard HTML doc and a PHP doc

  • PHP scripts should be saved with the .php file extension.
  • You place PHP code within <?php and ?> tags, normally withink the context of some HTML.
  • PHP is a server-side technology. So PHP scripts must be run on a PHP-enabled Web server. This means that PHP must be run through a URL (i.e. http://yourdomain/mypage.php).

If the php source code is

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<body>
<?php
# This script does nothing much.

echo '<p>This is a line of text.<br />This is another line of text.</p>';

/*
echo 'This line will not be executed.';
*/

echo "<p>Now I'm done.</p>"; // End of PHP code.

?>
</body>
</html>

then when we view the page source from a web browser, it will look like

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<body>
<p>This is a line of text.<br />This is another line of text.</p><p>Now I'm done.</p>
</body>
</html>

Resource

Debugging techniques

  • Run PHP scripts through a URL; i.e. it must be requested through http://something.
  • Know what version of PHP you're running; run phpinfo.php to confirm.
  • Make sure display_errors is on. This is related to PHP configuration setting.
  • CHeck the HTML source code.
  • Trust the error message.

Quick sheet

  • print_r($_SERVER); print 'ABCD';
  • Use /* and */ for comments
  • Variables are case-sensitive!
  • Constants define('PI', 3.14);
  • Strings: "Hello, $first_name", "I said \"How are you?\"". Note that backslash is used to escape the quotation.
  • Arrays can be used by using either indexed array or associative array. For indexed arrays, the key is 0,1,2,3,... and for associative arrays, the key is a string. For example, $name[0]='Don' and $state['VT'] = 'Vermont'.
  • Single quotation marks are treated literally; items within double quotation marks are extrapolated. This means that within double quotation marks, a variable's name is replaced with its value, but the same is not true for single quotation marks.
  • XHTML are different from HTML
    • the code needs to be in all lowercase letters
    • every tag attribute must be enclosed in quotes
    • For example, <INPUT TYPE=TEXT NAME=address SIZE=40> in HTML becomes <input text="text" name="address" size="40"> in XHTML
  • For avoiding security problems in form, use PHP functions like htmlspecialchars(), htmlentities(), strip_tags().
    • htmlspecialchars() converts certain HTMLM tags into their entity versions. The entity version appears in the output but isn't rendered.
    • htmlentities() turns all HTML tags into their entity versions.
    • strip_tags() removes all HTML and PHP tags.
  • foreach() {}
  • abcd

PHP, form and POST method

PHP form handling
# index.php welcome.php
1.
<html>
<body>

<form action="welcome.php" method="post">
Name: <input type="text" name="fname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>

</body>
</html>
 <html>
 <body>

 Welcome <?php echo $_POST["fname"]; ?>!<br />
 You are <?php echo $_POST["age"]; ?> years old.

 </body>
 </html>

The 'action' attribute in <form> defines an absolute or a relative URL. That is, the action could be pointing to an asp, cgi page or something like "mailto:[email protected]".

PHP, form and GET method

GET method
index.php welcome.php
<form action="welcome.php" method="get">
Name: <input type="text" name="fname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
Welcome <?php echo $_GET["fname"]; ?>.<br />
You are <?php echo $_GET["age"]; ?> years old!

GET, the default, will send the form input in an URL, whereas POST sends it in the body of the submission. The latter method means you can send larger amounts of data, and that the URL of the form results doesn't show the encoded form.

MySQL basic operations

  • Log into root
$ mysql -u root -h myserver-sever.com -p
  • Create a new mysql database called demo
mysql> CREATE DATABASE demo;
  • create a new user and GRANT (add) privileges to a newly created user on all tables in the demo database.
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL ON demo.* TO 'user1'@'localhost';

OR

mysql> GRANT ALL ON demo.* TO user1@localhost IDENTIFIED BY 'mypassword';
  • How to connect to the demo database on local/remote MySQL server?
$ mysql -u user1 -h mysql.server.com -p demo
  • To remove an account
DROP USER 'user1'@'localhost'
  • Create a table on the demo database
mysql> USE demo;
mysql> DROP TABLE Employee;

mysql> CREATE TABLE Employee (
    ->     Name VARCHAR(50),
    ->     Phone VARCHAR(15)
    -> );
Query OK, 0 rows affected (0.21 sec)

mysql> Show tables;
mysql> Describe Employee;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| Name  | varchar(50) | YES  |     | NULL    |       |
| Phone | varchar(15) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.03 sec)

mysql> INSERT INTO Employee (Name, Phone) VALUES ('Joe Wang', '666 2323');
Query OK, 1 row affected (0.04 sec)

mysql> INSERT INTO Employee (Name) VALUES ('John Doe');
Query OK, 1 row affected (0.02 sec)

mysql> INSERT INTO Employee (Name, Phone) VALUES ('John Doe', NULL);
Query OK, 1 row affected (0.01 sec)

mysql> Select * from Employee;
+----------+----------+
| Name     | Phone    |
+----------+----------+
| Joe Wang  | 666 2323 |
| John Doe | NULL     |
| John Doe | NULL     |
+----------+----------+

Username/password

  1. http://taichi.selfip.net:81/lang/php/w3/login/login.php

File upload

Need to change the folder permission/property. See here.

  • chmod -R 777 FOLDERNAME
  • sudo usermod www-data --apend --groups GROUPNAME

where GROUPNAME is the group name of the folder and www-data is the user that runs the web server.

  • sudo chown -R .www-data FOLDERNAME

where the dot means no change for the owner's name. We just change the group name. It is also helpful to do chmod -R 775 FOLDERNAME.

  • just edit /etc/group file. See the link above.

Examples:

  1. http://taichi.selfip.net:81/lang/php/w3/uploadphp/
  2. http://taichi.selfip.net:81/lang/php/xqto/index.php

Login/out + File upload

The following test page combines the ideas of login/out and file upload.

  1. http://taichi.selfip.net:81/lang/php/w3/loginuploadphp/loginupload.php

PHP and database

Books

http://www.amazon.com/Head-First-MySQL-Lynn-Beighley/dp/0596006306/ref=tmm_pap_title_0?ie=UTF8&qid=1360359135&sr=8-2

Modules

sudo dpkg --get-selections | grep -i php

CSS

Three Styles

  1. Store an exteranl style sheet in a separate file
  2. Embed an internal style sheet inside an HTML document (inside the <head> section your page).
  3. Inline style

Anatomy of a Rule

selector { property: value }

Example:

  h1 { text-align: center;
       color: blue }

Web colors

Normally hex form requires 6 digits but the short form only requires 3 digits. For example, #09C is the same as #0099CC.

(Outdated) Google chrome devtools provides a color magnifier which can be used to identify the color code of a specific pixel on the screen. Here is a gif showing the process to get the color picker.

  1. Open devtools
  2. Right click on a website and choose 'inspect'
  3. Click somewhere having class. The style definition will be shown in a small panel
  4. If color was used somewhere, there should be a small square showing the defined color. Click the square.
  5. Now if we move the cursor to the website, a magnifier will be shown up

Important Tools

http://www.lifehack.org/314802/10-best-tools-optimize-and-audit-css-code

  • Notepad++ - color coded formatting
  • Stylizer - CSS editor with preview and has 8 built-in browsers
  • Blueprint - CSS framework
  • ProCSSor - cleans and organizes your css the way you want it
  • CSS Compressor - reducing the size of your CSS code and helping your website to load much faster as a result

Simple example

<style>
body
{
    background-color:#d0e4fe;
}
h1
{
    color:orange;
    text-align:center;
}
p
{
    font-family:"Times New Roman";
    font-size:20px;
}
</style>

To insert a CSS in an html file, use

<link rel="stylesheet" type="text/css" href="mystyle.css">

href

Links/Anchor

CSS Links

a {
  color: hotpink;
}

Margin vs padding

Add vertical space

https://stackoverflow.com/a/9141084

What’s the difference between comma separated identifiers and space separated?

Overlapping elements

CSS position -> overlapping elements

Float an image

CSS floating -> How Elements Float

Text in Transparent Box

CSS Image Opacity

@media, @keyframes, @-webkit-keyframes ...

CSS Reference

Tile style

Javascript

Collapsibles/Accordion

How TO - Collapsibles/Accordion

Search box

jQuery

To use the javascript in the HTML code, we can grab the script from internet, local directory or defined in the html.

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="../jquery.nivo.slider.js"></script>
<script type="text/javascript">
    $(window).load(function() {
        $('#slider').nivoSlider();
          effect: 'random'
    });
</script>

Image slider/carousel/lightbox/gallery

It seems if we want to create lightbox image gallery, we need to create thumbnails first. We can skip creating thumbnail images if we don't need javascript and lightbox effect.

Tree

Responsive Design

Test mobile-friendliness

https://www.google.com/webmasters/tools/mobile-friendly/

How to emulate a mobile device in a desktop browser

https://www.digitalcitizen.life/emulate-mobile-device-desktop-browser

Twitter Bootstrap

Tutorial

Examples

Plugins

Misc

Design a Stunning Website

Want to Design a Stunning Website? 10 Tips to Impress Your Client

Portfolio Website

How to Create a Portfolio Website From Scratch

Cheatsheet

https://hostingfacts.com/html-cheat-sheet/ (23 pages in pdf or 1 in png)

Show modified date

$ cat test.html
<!DOCTYPE html>
<html>
   <body>
      <script>
	function myFunction() {
	  update = new Date(document.lastModified)
	  theMonth = update.getMonth() + 1
	  theDate = update.getDate()
	  theYear = update.getFullYear()
	  document.writeln("<I>Last updated:" + theMonth + "/" + theDate + "/" + theYear + "</I>")
	}
      </script>
      This file was <script>myFunction();</script>

   </body>
</html>

To change the file's modified date attribute on Linux, use the touch command, for example, touch -mt200801120000 test.html

Intro to Graphic Design

https://www.udemy.com/introduction-to-graphic-design/?dtcode=onMH2sD3bj21

Table of contents/TOC

Identify font in a web page

Font size

p { 
  font: 12pt/14pt sans-serif
}

Fonts, icons

Font-icon.png

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>MUO Icon Fonts</title>
		<link rel="stylesheet" type="text/css" 
                  href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
		<style>
			html {
				font-family: helvetica, arial;
			}

            @keyframes move {
              from { margin-left: 0; }
              to { margin-left: 400px; }
            }

            .bike {
              animation-name: move;
              animation-duration: 4s;
            }
		</style>
	</head>
	<body>
        <i class="fa fa-cog"></i> My First Icon

        <i class="fa fa-battery-0 fa-lg"></i>
        <i class="fa fa-battery-1 fa-2x"></i>
        <i class="fa fa-battery-2 fa-3x"></i>
        <i class="fa fa-battery-3 fa-4x"></i>
        <i class="fa fa-battery-4 fa-5x"></i>

        <i class="fa fa-refresh fa-spin fa-3x"></i>

        <i class="fa fa-motorcycle fa-5x bike"></i>
	</body>
</html>

Editor

Free images

Optimize images

My favorite Linux commands for optimizing web images

HTML symbols/icons

Free icons

Convert/crop an image to round shape, or different resolutions

Design logos, banners, book covers, icons, covers, menus, ...

10 Things You Can Create With Canva With Zero Effort

Cookies

An example to inform visitors https://www.jamescoyle.net/how-to/116-simple-apache-reverse-proxy-example

https://www.cookielaw.org/the-cookie-law/

DAP: Digital Analytics Program

Web analytics

List of web analytics software such as AWStats

Section 508 compliant

An example is to add alt="" to provide an alternative text for an image. Note that alt attribute is not allowed for an a element.

<a href="abc.png"><img src="abc.png" alt="">Visit me</a>

How to force pdf files to open or downloaded in browser

https://stackoverflow.com/questions/6293893/how-to-force-files-to-open-in-browser-instead-of-download-pdf

Examples of R package html page

Display Chinese characters

Include the following in head tag. See how to display chinese character in HTML

<meta charset="utf-8"> 

Acute accent character

What is a URL

What Is a URL, and How Can You Edit One?

Spaces in URL links

Can I use spaces (blank space chars) in links (link href), images (img src) and other URLs? Ans: Replace each space character with %20

URL Encode/decode (such as Chinese characters) using UTF-8 encoding

> URLdecode("https://www.worldjournal.com/5935170/article-%E8%97%A5%E8%8D%89%E9%A4%8A%E7%94%9F%E8%A1%93-%E6%A1%82%E8%8A%B1%E3%80%81%E8%91%A1%E8%90%84%E6%9F%9A%E7%B2%BE%E6%B2%B9-%E7%B4%93%E8%A7%A3%E9%AB%94%E6%AA%A2%E7%84%A6%E6%85%AE/")
[1] "https://www.worldjournal.com/5935170/article-藥草養生術-桂花、葡萄柚精油-紓解體檢焦慮/"

> urls <- c("https://zh.wikipedia.org/zh-tw/%E8%A1%80%E6%B8%85%E7%B4%A0",
            "https://example.com/%E8%A1%80%E6%B8%85%E7%B4%A0")
> sapply(urls, URLdecode, USE.NAMES = FALSE)

Check websites for broken links

Calculate page loading time

Get pageload time using command line. This works on local servers too.

$ time wget -pq --no-cache --delete-after http://10.42.0.66/wiki/index.php/C
real	4m30.402s
user	0m0.036s
sys	0m0.032s

It seems apache/mediawiki have a cache system. If I repeat the testing on the same page, it will be fast. But if I test on a new page, it will be slow again.

We can also use curl. Testing a website from Linux command line

$ curl --trace-time -o /dev/null http://10.42.0.66/wiki/index.php/Virtualbox
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  145k    0  145k    0     0   5161      0 --:--:--  0:00:28 --:--:-- 32638

Code beautify/validator/formatter

Print with PDF

Tested on this page

Google Analytics

All That You Can Do with Google Analytics, and More

Chrome browser

Developer Tools

HTML 5 outliner

Inspect

Extensions

CGI/Perl

On Ubuntu, the CGI script should be placed in /usr/lib/cgi-bin folder.

$ ls -l /usr/lib/cgi-bin/hello.cgi
-rwxr-xr-x 1 root root 139 2012-11-21 12:19 /usr/lib/cgi-bin/hello.cgi

Notice that mode is 755 for the executable file. The script

$ cat /usr/lib/cgi-bin/hello.cgi
#!/usr/bin/perl

print "Content-type: text/html\n\n";

print <<END_HTML;
<html>
<head></head>
<body>Hello, World!</body>
</html>
END_HTML

Open a web browser and enter http://localhost/cgi-bin/hello.cgi.

If the cgi was used in html form, the html code should look like

<FORM ACTION="/cgi-bin/mycgi.pl">
favorite color: <INPUT name="favecolor">
<INPUT TYPE=SUBMIT VALUE="Submit">
</FORM>

CGIwithR